From 4793f48b336ff04ddf678c37834cc4aff24a143c Mon Sep 17 00:00:00 2001 From: Carlos G?lvez Date: Tue, 16 Jul 2019 12:31:57 +0200 Subject: [PATCH] Get the residual_amount also for sales in state 'draft' and 'quotation'. #038295 --- sale.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sale.py b/sale.py index 931d256..b34bf76 100644 --- a/sale.py +++ b/sale.py @@ -127,9 +127,8 @@ class Sale(metaclass=PoolMeta): @classmethod def get_residual_amount(cls, sales, name): - return {s.id: s.total_amount - s.paid_amount if s.state in ( - 'confirmed', 'processing', 'done') else - Decimal(0) for s in sales} + return {s.id: s.total_amount - s.paid_amount if s.state != 'cancel' + else Decimal(0) for s in sales} @classmethod def search_residual_amount(cls, name, clause): @@ -149,7 +148,12 @@ class Sale(metaclass=PoolMeta): ).select( sale.id, where=((sale.total_amount_cache != None) & - (sale.state.in_(['confirmed', 'processing', 'done']))), + (sale.state.in_([ + 'draft', + 'quotation', + 'confirmed', + 'processing', + 'done']))), group_by=(sale.id), having=( (Sum(Coalesce(payline.amount, 0)) < sale.total_amount_cache)