summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/commision.py
diff options
context:
space:
mode:
Diffstat (limited to 'indoteknik_custom/models/commision.py')
-rw-r--r--indoteknik_custom/models/commision.py68
1 files changed, 55 insertions, 13 deletions
diff --git a/indoteknik_custom/models/commision.py b/indoteknik_custom/models/commision.py
index 03d32d2d..97184cdb 100644
--- a/indoteknik_custom/models/commision.py
+++ b/indoteknik_custom/models/commision.py
@@ -148,6 +148,7 @@ class CustomerCommision(models.Model):
_order = 'id desc'
_inherit = ['mail.thread']
_rec_name = 'number'
+ _description = 'Customer Benefits'
number = fields.Char(string='Document No', index=True, copy=False, readonly=True)
date_from = fields.Date(string='Date From', required=True)
@@ -175,12 +176,22 @@ class CustomerCommision(models.Model):
('approved', 'Approved'),
('reject', 'Rejected'),
], string='Status')
- commision_percent = fields.Float(string='Commision %', tracking=3)
- commision_amt = fields.Float(string='Commision Amount', tracking=3)
- cashback = fields.Float(string='Cashback', compute="compute_cashback")
- total_commision = fields.Float(string='Total Commision', compute="compute_cashback")
+
+ # commision_percent = fields.Float(string='Commision %', tracking=3)
+ commision_percent = fields.Float(string='Persentase (%)', tracking=3)
+
+ # commision_amt = fields.Float(string='Commision Amount', tracking=3)
+ commision_amt = fields.Float(string='Amount', tracking=3)
+
+ # cashback = fields.Float(string='Cashback', compute="compute_cashback")
+ cashback = fields.Float(string='PPh Cashback', compute="compute_cashback")
+
+ # total_commision = fields.Float(string='Total Commision', compute="compute_cashback")
+ total_commision = fields.Float(string='Cashback yang dibayarkan', compute="compute_cashback")
+
total_cashback = fields.Float(string='Total Cashback')
- commision_amt_text = fields.Char(string='Commision Amount Text', compute='compute_delivery_amt_text')
+ commision_amt_text = fields.Char(string='Amount Text', compute='compute_delivery_amt_text')
+ total_cashback_text = fields.Char(string='Cashback Text', compute='compute_total_cashback_text')
total_dpp = fields.Float(string='Total DPP', compute='_compute_total_dpp')
commision_type = fields.Selection([
('fee', 'Fee'),
@@ -271,6 +282,20 @@ class CustomerCommision(models.Model):
except:
record.commision_amt_text = res
+ def compute_total_cashback_text(self):
+ tb = Terbilang()
+
+ for record in self:
+ res = ''
+ try:
+ if record.total_commision > 0:
+ tb.parse(int(record.total_commision))
+ res = tb.getresult().title()
+ record.total_cashback_text = f"{res} Rupiah" if res else ""
+ except Exception as e:
+ record.total_cashback_text = ""
+ _logger.error("Error computing cashback text: %s", str(e))
+
def _compute_grouped_numbers(self):
for rec in self:
so_numbers = set()
@@ -348,14 +373,31 @@ class CustomerCommision(models.Model):
@api.model
def create(self, vals):
- vals['number'] = self.env['ir.sequence'].next_by_code('customer.commision') or '0'
- # if vals['commision_amt'] > 0:
- # commision_amt = vals['commision_amt']
- # total_dpp = vals['total_dpp']
- # commision_percent = commision_amt / total_dpp * 100
- # vals['commision_percent'] = commision_percent
- result = super(CustomerCommision, self).create(vals)
- return result
+ commision_type = vals.get('commision_type')
+
+ if commision_type == 'cashback':
+ sequence_code = 'customer.commision.cashback'
+ elif commision_type == 'fee':
+ sequence_code = 'customer.commision.fee'
+ elif commision_type == 'rebate':
+ sequence_code = 'customer.commision.rebate'
+ else:
+ raise UserError('Tipe komisi tidak dikenal!')
+
+ vals['number'] = self.env['ir.sequence'].next_by_code(sequence_code) or '0'
+
+ return super(CustomerCommision, self).create(vals)
+
+ # @api.model
+ # def create(self, vals):
+ # vals['number'] = self.env['ir.sequence'].next_by_code('customer.commision') or '0'
+ # # if vals['commision_amt'] > 0:
+ # # commision_amt = vals['commision_amt']
+ # # total_dpp = vals['total_dpp']
+ # # commision_percent = commision_amt / total_dpp * 100
+ # # vals['commision_percent'] = commision_percent
+ # result = super(CustomerCommision, self).create(vals)
+ # return result
def action_confirm_customer_commision(self):
jakarta_tz = pytz.timezone('Asia/Jakarta')