summaryrefslogtreecommitdiff
path: root/indoteknik_custom
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-08-30 14:59:50 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-08-30 14:59:50 +0700
commitedafc890045d833289ad3b53ce3375625f18e54c (patch)
treea0b8ff9d4029517bead2d7cfd060463ffc8ae3ea /indoteknik_custom
parent6d90f84246b1c6ef01b3ba3f1231450b11862719 (diff)
<iman> update jika sppkp diganti di order, parent sppkp juga terganti
Diffstat (limited to 'indoteknik_custom')
-rwxr-xr-xindoteknik_custom/models/sale_order.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py
index 710e99de..16a1f415 100755
--- a/indoteknik_custom/models/sale_order.py
+++ b/indoteknik_custom/models/sale_order.py
@@ -942,3 +942,38 @@ class SaleOrder(models.Model):
order_line.tax_id = tax_id
order_line.discount = discount
order_line.order_id.use_button = True
+
+ @api.model
+ def create(self, vals):
+ # Ensure partner details are updated when a sale order is created
+ order = super(SaleOrder, self).create(vals)
+ order._update_partner_details()
+ return order
+
+ def write(self, vals):
+ # Call the super method to handle the write operation
+ res = super(SaleOrder, self).write(vals)
+
+ # Check if the update is coming from a save operation
+ if any(field in vals for field in ['sppkp', 'npwp', 'email', 'customer_type']):
+ self._update_partner_details()
+
+ return res
+
+ def _update_partner_details(self):
+ for order in self:
+ partner = order.partner_id.parent_id or order.partner_id
+ if partner:
+ # Update partner details
+ partner.sppkp = order.sppkp
+ partner.npwp = order.npwp
+ partner.email = order.email
+ partner.customer_type = order.customer_type
+
+ # Save changes to the partner record
+ partner.write({
+ 'sppkp': partner.sppkp,
+ 'npwp': partner.npwp,
+ 'email': partner.email,
+ 'customer_type': partner.customer_type,
+ }) \ No newline at end of file