diff options
| author | Goffin Simon <sig@odoo.com> | 2016-07-13 13:29:30 +0200 |
|---|---|---|
| committer | Goffin Simon <sig@odoo.com> | 2016-07-14 09:01:58 +0200 |
| commit | e71d136d6ff0fae13d558457ed9334e98e2ab786 (patch) | |
| tree | 63a77c9b721afef457c3899636e080baedca6f33 | |
| parent | 7c2c169906bd8de254647316ec738ded101912ba (diff) | |
[FIX] sale: making an advance payment in percent
When making an advance payment in percent, the function onchange_advance_payment_method
set the Down Payment Product to False. Then each time an advanced payment in percent
was made, a new down payment product was created and set in sale.config.setting in the field
deposit_product_id_setting.
Now the function onchange_advance_payment_method let the Down Payment Product
even if the payment method is in percent.
opw:683167
| -rw-r--r-- | addons/sale/wizard/sale_make_invoice_advance.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/addons/sale/wizard/sale_make_invoice_advance.py b/addons/sale/wizard/sale_make_invoice_advance.py index 0320aeac0a4..1497fb692d3 100644 --- a/addons/sale/wizard/sale_make_invoice_advance.py +++ b/addons/sale/wizard/sale_make_invoice_advance.py @@ -23,6 +23,19 @@ class SaleAdvancePaymentInv(models.TransientModel): return 'all' return 'delivered' + @api.model + def _default_product_id(self): + product_id = self.env['ir.values'].get_default('sale.config.settings', 'deposit_product_id_setting') + return self.env['product.product'].browse(product_id) + + @api.model + def _default_deposit_account_id(self): + return self._default_product_id().property_account_income_id + + @api.model + def _default_deposit_taxes_id(self): + return self._default_product_id().taxes_id + advance_payment_method = fields.Selection([ ('delivered', 'Invoiceable lines'), ('all', 'Invoiceable lines (deduct down payments)'), @@ -30,17 +43,17 @@ class SaleAdvancePaymentInv(models.TransientModel): ('fixed', 'Down payment (fixed amount)') ], string='What do you want to invoice?', default=_get_advance_payment_method, required=True) product_id = fields.Many2one('product.product', string='Down Payment Product', domain=[('type', '=', 'service')],\ - default=lambda self: self.env['ir.values'].get_default('sale.config.settings', 'deposit_product_id_setting')) + default=_default_product_id) count = fields.Integer(default=_count, string='# of Orders') amount = fields.Float('Down Payment Amount', digits=dp.get_precision('Account'), help="The amount to be invoiced in advance, taxes excluded.") deposit_account_id = fields.Many2one("account.account", string="Income Account", domain=[('deprecated', '=', False)],\ - help="Account used for deposits") - deposit_taxes_id = fields.Many2many("account.tax", string="Customer Taxes", help="Taxes used for deposits") + help="Account used for deposits", default=_default_deposit_account_id) + deposit_taxes_id = fields.Many2many("account.tax", string="Customer Taxes", help="Taxes used for deposits", default=_default_deposit_taxes_id) @api.onchange('advance_payment_method') def onchange_advance_payment_method(self): if self.advance_payment_method == 'percentage': - return {'value': {'amount':0, 'product_id':False}} + return {'value': {'amount': 0}} return {} @api.multi |
