From 50769e870756dd350421a205e6d49ab555023764 Mon Sep 17 00:00:00 2001 From: Miqdad Date: Sun, 15 Jun 2025 17:33:46 +0700 Subject: fix state view and add ingoing field --- indoteknik_custom/models/tukar_guling.py | 21 ++++++++++++++------- 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 @@ + - +
@@ -83,13 +83,19 @@ - + + + - + -- cgit v1.2.3