diff options
Diffstat (limited to 'indoteknik_custom/models/commision.py')
| -rw-r--r-- | indoteknik_custom/models/commision.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/indoteknik_custom/models/commision.py b/indoteknik_custom/models/commision.py index 955d1634..fe65de84 100644 --- a/indoteknik_custom/models/commision.py +++ b/indoteknik_custom/models/commision.py @@ -156,7 +156,17 @@ class CustomerCommision(models.Model): # add status for type of commision, fee, rebate / cashback # include child or not? - @api.constrains('commision_percent') + @api.constrains('partner_ids') + def _onchange_partner_ids(self): + commision = self.env['cust.commision'].search([ + ('partner_id', 'in', [rec.id for rec in self.partner_ids]), + ]) + + if commision: + max_commision = max(commision.mapped('commision_percent')) + self.commision_percent = max_commision + + # @api.constrains('commision_percent', 'partner_ids') def _onchange_commision_percent(self): print('masuk onchange commision percent') if self.commision_amt == 0: @@ -165,8 +175,8 @@ class CustomerCommision(models.Model): @api.constrains('commision_amt') def _onchange_commision_amt(self): print('masuk onchange commision amt') - if self.commision_percent == 0: - self.commision_percent = (self.commision_amt / self.total_dpp * 100) + if self.total_dpp > 0: + self.commision_percent = (self.commision_amt / self.total_dpp) * 100 def _compute_total_dpp(self): for data in self: @@ -208,6 +218,9 @@ class CustomerCommision(models.Model): else: self._generate_customer_commision_rebate() + self._onchange_commision_percent() + self._onchange_commision_amt() + def _generate_customer_commision_rebate(self): for rec in self: # partners = rec.partner_ids.child_ids + rec.partner_ids |
