summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-06-15 17:33:46 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-06-15 17:33:46 +0700
commit50769e870756dd350421a205e6d49ab555023764 (patch)
treea3aaa4d3a95ca1061c888b89a44db6af21d8cb52
parentf5fc52453c0f7e52b6c87fa57d2de5120c3041e0 (diff)
<miqdad> fix state view and add ingoing field
-rw-r--r--indoteknik_custom/models/tukar_guling.py21
-rw-r--r--indoteknik_custom/views/tukar_guling.xml14
2 files changed, 24 insertions, 11 deletions
diff --git a/indoteknik_custom/models/tukar_guling.py b/indoteknik_custom/models/tukar_guling.py
index 36819ad4..b4a901d0 100644
--- a/indoteknik_custom/models/tukar_guling.py
+++ b/indoteknik_custom/models/tukar_guling.py
@@ -10,18 +10,17 @@ class TukarGuling(models.Model):
name = fields.Char('Number', required=True, copy=False, readonly=True, default='New')
date = fields.Datetime('Date', default=fields.Datetime.now, required=True)
- out_num = fields.Many2one('stock.picking', 'Nomor BU/Out', required=True,
+ out_num = fields.Many2one('stock.picking', 'Nomor BU/Out',
domain=[('picking_type_id.code', '=', 'outgoing')])
+ in_num = fields.Many2one('stock.picking', 'Nomor BU/In', domain=[('picking_type_id.code', '=', 'incoming')])
ba_num = fields.Text('Nomor BA')
notes = fields.Text('Notes')
return_type = fields.Selection(String='Return Type', selection=[
- ('tukar_guling', 'Tukar Guling'),
- ('revisi_so', 'Revisi SO'),
+ ('tukar_guling', 'Tukar Guling'), # -> barang yang sama
+ ('revisi_so', 'Revisi SO'), # -> ganti barang ?
('revisi_po', 'Revisi PO'),
- ('credit_memo', 'Credit Memo'),
- ('debit_memo', 'Debit Memo'),
- ('lain_lain', 'Lain-lain')])
-
+ ('credit_memo', 'Credit Memo'), # -> dijadiin credit memo
+ ('debit_memo', 'Debit Memo')])
state = fields.Selection(string='Status', selection=[
('draft', 'Draft'),
('waiting', 'Waiting for Approval'),
@@ -31,6 +30,14 @@ class TukarGuling(models.Model):
line_ids = fields.One2many('tukar.guling.line', 'tukar_guling_id', string='Product Lines')
+ @api.constrains('return_type', 'out_num', 'in_num')
+ def _check_return_type_fields(self):
+ for rec in self:
+ if rec.return_type in ['tukar_guling', 'credit_memo', 'revisi_so'] and not rec.out_num:
+ raise ValidationError("Field BU/Out wajib diisi untuk jenis return type tersebut.")
+ if rec.return_type in ['debit_memo', 'revisi_po'] and not rec.in_num:
+ raise ValidationError("Field BU/In wajib diisi untuk jenis return type tersebut.")
+
@api.constrains('line_ids', 'state')
def _check_product_lines(self):
"""Constraint: Product lines harus ada jika state bukan draft"""
diff --git a/indoteknik_custom/views/tukar_guling.xml b/indoteknik_custom/views/tukar_guling.xml
index 8fffcbb0..9b490cd0 100644
--- a/indoteknik_custom/views/tukar_guling.xml
+++ b/indoteknik_custom/views/tukar_guling.xml
@@ -38,6 +38,7 @@
<field name="name"/>
<field name="date"/>
<field name="out_num" string="BU/Out"/>
+ <field name="in_num" string="BU/In"/>
<field name="ba_num" string="Nomor BA"/>
<field name="return_type" string="Return Type"/>
<field name="state" widget="badge"
@@ -70,8 +71,7 @@
class="btn-secondary"
attrs="{'invisible': [('state', '!=', 'cancel')]}"
confirm="Are you sure you want to reset this record to draft?"/>
- <field name="state" widget="statusbar"
- statusbar_visible="draft,waiting,done,cancel"/>
+ <field name="state" widget="statusbar" readonly="1"/>
</header>
<sheet>
<div class="oe_title">
@@ -83,13 +83,19 @@
<group>
<group>
<field name="date" string="Date" readonly="1"/>
- <field name="out_num" string="BU/Out"/>
+ <field name="out_num" string="BU/Out"
+ attrs="{'invisible': [('return_type', 'not in', ['tukar_guling', 'credit_memo', 'revisi_so'])],
+ 'required': [('return_type', 'in', ['tukar_guling', 'credit_memo', 'revisi_so'])]}"/>
+
+ <field name="in_num" string="BU/In"
+ attrs="{'invisible': [('return_type', 'not in', ['debit_memo', 'revisi_po'])],
+ 'required': [('return_type', 'in', ['debit_memo', 'revisi_po'])]}"/>
<field name="ba_num" string="Nomor BA"/>
</group>
<group>
<field name="return_type"/>
<field name="notes"/>
- <field name="state" readonly="1"/>
+<!-- <field name="state" readonly="1"/>-->
</group>
</group>