From e2faace9e13ff3c262acaa39f163c2754d0c8db0 Mon Sep 17 00:00:00 2001 From: Bhoomi Date: Thu, 5 Sep 2019 10:38:02 -0400 Subject: [PATCH] IMP `sale_payment_deposit` Implement flat deposit on Payment Terms and implement functionality on sale order and account invoice. --- sale_payment_deposit/models/account.py | 4 +++- sale_payment_deposit/models/sale.py | 9 ++++++--- sale_payment_deposit/views/account_views.xml | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/sale_payment_deposit/models/account.py b/sale_payment_deposit/models/account.py index 111e748f..7250de61 100644 --- a/sale_payment_deposit/models/account.py +++ b/sale_payment_deposit/models/account.py @@ -5,7 +5,9 @@ class AccountPaymentTerm(models.Model): _inherit = 'account.payment.term' deposit_percentage = fields.Float(string='Deposit Percentage', - help='Require deposit when paying on the front end.') + help='Require Percentage deposit when paying on the front end.') + deposit_flat = fields.Float(string='Deposit Flat', + help='Require Flat deposit when paying on the front end.') class PaymentTransaction(models.Model): diff --git a/sale_payment_deposit/models/sale.py b/sale_payment_deposit/models/sale.py index 4a15fdc2..a7b44b32 100644 --- a/sale_payment_deposit/models/sale.py +++ b/sale_payment_deposit/models/sale.py @@ -10,7 +10,10 @@ class SaleOrder(models.Model): @api.depends('amount_total', 'payment_term_id.deposit_percentage') def _amount_total_deposit(self): for order in self: - order.amount_total_deposit = order.amount_total * float(order.payment_term_id.deposit_percentage) / 100.0 + percent_deposit = order.amount_total * float(order.payment_term_id.deposit_percentage) / 100.0 + flat_deposite = float(order.payment_term_id.deposit_flat) + order.amount_total_deposit = percent_deposit + flat_deposite + def action_confirm(self): res = super(SaleOrder, self).action_confirm() @@ -22,8 +25,8 @@ class SaleOrder(models.Model): for sale in self.sudo().filtered(lambda o: not o.invoice_ids and o.amount_total_deposit): # Create Deposit Invoices wizard = wizard_model.create({ - 'advance_payment_method': 'percentage', - 'amount': sale.payment_term_id.deposit_percentage, + 'advance_payment_method': 'fixed', + 'amount': sale.amount_total_deposit, }) wizard.with_context(active_ids=sale.ids).create_invoices() # Validate Invoices diff --git a/sale_payment_deposit/views/account_views.xml b/sale_payment_deposit/views/account_views.xml index aa174032..d46a6a2c 100644 --- a/sale_payment_deposit/views/account_views.xml +++ b/sale_payment_deposit/views/account_views.xml @@ -7,6 +7,7 @@ +