summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indoteknik_custom/models/commission_internal.py84
1 files changed, 56 insertions, 28 deletions
diff --git a/indoteknik_custom/models/commission_internal.py b/indoteknik_custom/models/commission_internal.py
index ce074bcc..bc668c28 100644
--- a/indoteknik_custom/models/commission_internal.py
+++ b/indoteknik_custom/models/commission_internal.py
@@ -2,6 +2,7 @@ from odoo import models, api, fields
from odoo.exceptions import AccessError, UserError, ValidationError
from datetime import timedelta, date
import logging
+import pandas as pd
_logger = logging.getLogger(__name__)
@@ -178,11 +179,14 @@ class CommissionInternal(models.Model):
# fill later TODO @stephan
def calculate_commission_internal_result(self):
+ exception = ['ONGKOS KIRIM SO/20']
query = [
('commission_internal_id.id', '=', self.id),
- ('helper2', '!=', False)
+ ('helper2', '!=', False),
+ ('helper1', 'not in', exception)
]
lines = self.env['commission.internal.line'].search(query)
+ all_invoices_and_sales = []
for line in lines:
list_so = list_invoice = []
list_key = line.helper2.split()
@@ -202,7 +206,17 @@ class CommissionInternal(models.Model):
'salesperson': r.user_id.name,
'amount_untaxed': r.amount_untaxed,
'amount_tax': r.amount_tax,
- 'amount_total': r.amount_total
+ 'amount_total': r.amount_total,
+ 'uang_masuk_line_id': line.account_move_line_id.id,
+ 'uang_masuk_id': line.account_move_id.id,
+ 'date_uang_masuk': line.date,
+ 'label_uang_masuk': line.label,
+ 'nomor_uang_masuk': line.number,
+ 'uang_masuk': line.balance,
+ # 'linenetamt_prorate': net_amount_prorate,
+ 'helper1': line.helper1,
+ 'commission_internal_id': line.commission_internal_id.id,
+ 'commission_internal_line_id': line.id,
})
sale_data = orders.mapped(lambda r: {
'res_name': 'sale.order',
@@ -213,34 +227,48 @@ class CommissionInternal(models.Model):
'salesperson': r.user_id.name,
'amount_untaxed': r.amount_untaxed,
'amount_tax': r.amount_tax,
- 'amount_total': r.grand_total
+ 'amount_total': r.grand_total,
+ 'uang_masuk_line_id': line.account_move_line_id.id,
+ 'uang_masuk_id': line.account_move_id.id,
+ 'date_uang_masuk': line.date,
+ 'label_uang_masuk': line.label,
+ 'nomor_uang_masuk': line.number,
+ 'uang_masuk': line.balance,
+ # 'linenetamt_prorate': net_amount_prorate,
+ 'helper1': line.helper1,
+ 'commission_internal_id': line.commission_internal_id.id,
+ 'commission_internal_line_id': line.id,
})
invoices_and_sales = invoice_data + sale_data
- total_amount = sum(item.get('amount_total', 0.0) for item in invoices_and_sales)
- for data in invoices_and_sales:
- prorate = data.get('amount_total', 0.0) / total_amount
- # net_amount_prorate = data.get('amount_total', 0.0) * prorate
- net_amount_prorate = line.balance * prorate
- self.env['commission.internal.result'].create([{
- 'commission_internal_id': line.commission_internal_id.id,
- 'commission_internal_line_id': line.id,
- 'date_doc': data['date'],
- 'number': data['name'],
- 'res_name': data['res_name'],
- 'res_id': data['res_id'],
- 'name': data['name'],
- 'salesperson': data['salesperson'],
- 'totalamt': data['amount_total'],
- 'uang_masuk_line_id': line.account_move_line_id.id,
- 'uang_masuk_id': line.account_move_id.id,
- 'date_uang_masuk': line.date,
- 'label_uang_masuk': line.label,
- 'nomor_uang_masuk': line.number,
- 'uang_masuk': line.balance,
- 'linenetamt_prorate': net_amount_prorate,
- 'helper1': line.helper1
- }])
- print(1)
+ sum_amount_total = sum(item['amount_total'] for item in invoices_and_sales)
+ for item in invoices_and_sales:
+ item['sum_amount_total'] = sum_amount_total
+ all_invoices_and_sales.extend(invoices_and_sales)
+
+ for data in all_invoices_and_sales:
+ # total_amount = sum(item.get('amount_total', 0.0) for item in invoices_and_sales)
+ # net_amount_prorate = data.get('amount_total', 0.0) * prorate
+ prorate = data.get('amount_total', 0.0) / data.get('sum_amount_total', 0.0)
+ net_amount_prorate = data.get('uang_masuk', 0.0) * prorate
+ self.env['commission.internal.result'].create([{
+ 'commission_internal_id': data['commission_internal_id'],
+ 'commission_internal_line_id': data['commission_internal_line_id'],
+ 'date_doc': data['date'],
+ 'number': data['name'],
+ 'res_name': data['res_name'],
+ 'res_id': data['res_id'],
+ 'name': data['name'],
+ 'salesperson': data['salesperson'],
+ 'totalamt': data['amount_total'],
+ 'uang_masuk_line_id': data['uang_masuk_line_id'],
+ 'uang_masuk_id': data['uang_masuk_id'],
+ 'date_uang_masuk': data['date_uang_masuk'],
+ 'label_uang_masuk': data['label_uang_masuk'],
+ 'nomor_uang_masuk': data['nomor_uang_masuk'],
+ 'uang_masuk': data['uang_masuk'],
+ 'linenetamt_prorate': net_amount_prorate,
+ 'helper1': data['helper1']
+ }])
print(1)
# this button / method works for train data in July 2025