diff options
| author | Indoteknik . <andrifebriyadiputra@gmail.com> | 2025-05-05 11:48:57 +0700 |
|---|---|---|
| committer | Indoteknik . <andrifebriyadiputra@gmail.com> | 2025-05-05 11:48:57 +0700 |
| commit | 921bbc2f0b5b82945aebc11e96ba3847c6f2904d (patch) | |
| tree | d870c77031b5b79154c199549c0d2dde5e2f9269 | |
| parent | b00d3caf6cd21ae74872031536ceb2f1ff570316 (diff) | |
(andri) Make the SPPKP & Customer Type columns read-only in SO and ensure the data (along with NPWP) is connected to the contact
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 13 | ||||
| -rwxr-xr-x | indoteknik_custom/views/sale_order.xml | 4 |
2 files changed, 9 insertions, 8 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index baa72dc0..0711e33a 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -202,9 +202,9 @@ class SaleOrder(models.Model): customer_type = fields.Selection([ ('pkp', 'PKP'), ('nonpkp', 'Non PKP') - ], required=True) - sppkp = fields.Char(string="SPPKP", required=True, tracking=True) - npwp = fields.Char(string="NPWP", required=True, tracking=True, compute='_compute_npwp') + ], required=True, compute='_compute_partner_field') + sppkp = fields.Char(string="SPPKP", required=True, tracking=True, compute='_compute_partner_field') + npwp = fields.Char(string="NPWP", required=True, tracking=True, compute='_compute_partner_field') purchase_total = fields.Monetary(string='Purchase Total', compute='_compute_purchase_total') voucher_id = fields.Many2one(comodel_name='voucher', string='Voucher', copy=False) applied_voucher_id = fields.Many2one(comodel_name='voucher', string='Applied Voucher', copy=False) @@ -994,12 +994,13 @@ class SaleOrder(models.Model): # return [('id', 'not in', order_ids)] # return ['&', ('order_line.invoice_lines.move_id.move_type', 'in', ('out_invoice', 'out_refund')), ('order_line.invoice_lines.move_id', operator, value)] - @api.depends('partner_id') - def _compute_npwp(self): + def _compute_partner_field(self): for order in self: partner = order.partner_id.parent_id or order.partner_id - order.npwp = partner.npwp + order.npwp = partner.npwp + order.sppkp = partner.sppkp + order.customer_type = partner.customer_type @api.onchange('partner_id') def onchange_partner_contact(self): diff --git a/indoteknik_custom/views/sale_order.xml b/indoteknik_custom/views/sale_order.xml index 376ccb20..633ac6d1 100755 --- a/indoteknik_custom/views/sale_order.xml +++ b/indoteknik_custom/views/sale_order.xml @@ -98,9 +98,9 @@ <field name="pareto_status" /> </field> <field name="analytic_account_id" position="after"> - <field name="customer_type" required="1" /> + <field name="customer_type" readonly="1" /> <field name="npwp" placeholder='99.999.999.9-999.999' readonly="1" /> - <field name="sppkp" attrs="{'required': [('customer_type', '=', 'pkp')]}" /> + <field name="sppkp" attrs="{'required': [('customer_type', '=', 'pkp')]}" readonly="1" /> <field name="email" required="1" /> <field name="unreserve_id" /> <field name="due_id" readonly="1" /> |
