diff options
| author | Miqdad <ahmadmiqdad27@gmail.com> | 2025-06-15 17:33:46 +0700 |
|---|---|---|
| committer | Miqdad <ahmadmiqdad27@gmail.com> | 2025-06-15 17:33:46 +0700 |
| commit | 50769e870756dd350421a205e6d49ab555023764 (patch) | |
| tree | a3aaa4d3a95ca1061c888b89a44db6af21d8cb52 | |
| parent | f5fc52453c0f7e52b6c87fa57d2de5120c3041e0 (diff) | |
<miqdad> fix state view and add ingoing field
| -rw-r--r-- | indoteknik_custom/models/tukar_guling.py | 21 | ||||
| -rw-r--r-- | indoteknik_custom/views/tukar_guling.xml | 14 |
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> |
