summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-10-19 14:48:23 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-10-19 14:48:23 +0700
commit27b232baf04f2e4501e3e90cd5902bffc3e2cfa5 (patch)
treed041700c76db3705136aa8669de503a245ecb05b
parent9dee43d8a7cdcfa362e67adc2119eb4cbeb10ba6 (diff)
bug fix outstanding invoice in credit limit validation
-rwxr-xr-xbase_accounting_kit/models/credit_limit.py82
1 files changed, 34 insertions, 48 deletions
diff --git a/base_accounting_kit/models/credit_limit.py b/base_accounting_kit/models/credit_limit.py
index ceef4d7..f7ca002 100755
--- a/base_accounting_kit/models/credit_limit.py
+++ b/base_accounting_kit/models/credit_limit.py
@@ -77,21 +77,13 @@ class SaleOrder(models.Model):
continue
all_order_amount = 0
- paid_invoice_amount = 0
+ outstanding_invoice_amount = 0
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),
- # ('type', '=', 'contact'),
- # '|',
- # ('parent_id', '=', rec.partner_id.parent_id.id),
- # ('id', '=', rec.partner_id.id),
- # ])
parent_id = rec.partner_id.parent_id
else:
parent_id = rec.partner_id
@@ -102,37 +94,23 @@ class SaleOrder(models.Model):
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([
+ outstanding_invoice_ids = self.env['account.move'].search([
# ('payment_state', '=', 'paid'),
('partner_id', '=', partner.id),
('move_type', '=', 'out_invoice'),
('amount_residual_signed', '>', 0),
('state', '=', 'posted')
])
- # amount_residual_signed
- # 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:
+ if outstanding_invoice_ids:
print("-----check invoice here-----")
- for invoice in paid_invoice_ids:
+ for invoice in outstanding_invoice_ids:
print(invoice.name)
print(invoice.amount_total)
- paid_invoice_amount += invoice.amount_total
+ outstanding_invoice_amount += invoice.amount_total
- # outstanding_amount = all_order_amount - paid_invoice_amount
- outstanding_amount = paid_invoice_amount
+ outstanding_amount = outstanding_invoice_amount
rec.outstanding_amount = outstanding_amount
has_due = fields.Boolean()
@@ -226,30 +204,38 @@ class AccountMove(models.Model):
if not rec.id:
continue
- all_order_amount = 0
- paid_invoice_amount = 0
- outstanding_amount = 0
-
- all_order_ids = self.env['sale.order'].search([
- ('state','in',['sale','done']),
- ('partner_id','=',rec.partner_id.id)
- ])
+ outstanding_invoice_amount = 0
+ partners = []
+ parent_id = 0
+ if rec.partner_id.parent_id:
+ parent_id = rec.partner_id.parent_id
+ else:
+ parent_id = rec.partner_id
+ partners += parent_id.child_ids
+ partners.append(parent_id)
- paid_invoice_ids = self.env['account.move'].search([
- ('payment_state','=','paid'),
- ('partner_id','=',rec.partner_id.id),
- ('move_type','=','out_invoice')
- ])
+ for partner in partners:
+ if partner.type != 'contact':
+ continue
+ print(partner.name)
- if all_order_ids:
- for order in all_order_ids:
- all_order_amount += order.amount_total
+ outstanding_invoice_ids = self.env['account.move'].search([
+ # ('payment_state', '=', 'paid'),
+ ('partner_id', '=', partner.id),
+ ('move_type', '=', 'out_invoice'),
+ ('amount_residual_signed', '>', 0),
+ ('state', '=', 'posted')
+ ])
- if paid_invoice_ids:
- for invoice in paid_invoice_ids:
- paid_invoice_amount += invoice.amount_total
+ if outstanding_invoice_ids:
+ print("-----check invoice here-----")
+ for invoice in outstanding_invoice_ids:
+ print(invoice.name)
+ print(invoice.amount_total)
+ outstanding_invoice_amount += invoice.amount_total
- outstanding_amount = all_order_amount - paid_invoice_amount
+ # outstanding_amount = all_order_amount - paid_invoice_amount
+ outstanding_amount = outstanding_invoice_amount
rec.outstanding_amount = outstanding_amount
def action_post(self):