diff options
Diffstat (limited to 'base_accounting_kit/models/credit_limit.py')
| -rwxr-xr-x | base_accounting_kit/models/credit_limit.py | 56 |
1 files changed, 39 insertions, 17 deletions
diff --git a/base_accounting_kit/models/credit_limit.py b/base_accounting_kit/models/credit_limit.py index 63bba0c..ceef4d7 100755 --- a/base_accounting_kit/models/credit_limit.py +++ b/base_accounting_kit/models/credit_limit.py @@ -81,36 +81,58 @@ class SaleOrder(models.Model): outstanding_amount = 0 # this is only outstanding per user, must add outstanding parent + partners = [] + parent_id = 0 if rec.partner_id.parent_id: - partners = self.env['res.partner'].search([ - ('active', '=', True), - ('parent_id', '=', rec.partner_id.parent_id.id) - ]) + # partners = self.env['res.partner'].search([ + # '&', + # ('active', '=', True), + # ('type', '=', 'contact'), + # '|', + # ('parent_id', '=', rec.partner_id.parent_id.id), + # ('id', '=', rec.partner_id.id), + # ]) + parent_id = rec.partner_id.parent_id else: - partners = rec.partner_id + parent_id = rec.partner_id + partners += parent_id.child_ids + partners.append(parent_id) + for partner in partners: - all_order_ids = self.env['sale.order'].search([ - ('state', 'in', ['sale', 'done']), - ('partner_id', '=', partner.id), - ('id', '!=', rec.id) - ]) + if partner.type != 'contact': + continue + print(partner.name) + # all_order_ids = self.env['sale.order'].search([ + # ('state', 'in', ['sale', 'done']), + # ('partner_id', '=', partner.id), + # ('id', '!=', rec.id) + # ]) paid_invoice_ids = self.env['account.move'].search([ - ('payment_state', '=', 'paid'), + # ('payment_state', '=', 'paid'), ('partner_id', '=', partner.id), - ('move_type', '=', 'out_invoice') + ('move_type', '=', 'out_invoice'), + ('amount_residual_signed', '>', 0), + ('state', '=', 'posted') ]) + # amount_residual_signed - if all_order_ids: - for order in all_order_ids: - all_order_amount += order.amount_total + # if all_order_ids: + # # print("-----check here-----") + # for order in all_order_ids: + # # print(order.name) + # # print(order.amount_total) + # all_order_amount += order.amount_total if paid_invoice_ids: + print("-----check invoice here-----") for invoice in paid_invoice_ids: + print(invoice.name) + print(invoice.amount_total) paid_invoice_amount += invoice.amount_total - outstanding_amount = all_order_amount - paid_invoice_amount - print(outstanding_amount) + # outstanding_amount = all_order_amount - paid_invoice_amount + outstanding_amount = paid_invoice_amount rec.outstanding_amount = outstanding_amount has_due = fields.Boolean() |
