From 96e9867220f00f546542cf02ecb56b656f2b8950 Mon Sep 17 00:00:00 2001 From: Nicola Malcontenti Date: Wed, 2 Mar 2016 10:25:00 +0100 Subject: [PATCH] [FIX] Fixed functional method --- mrp_repair_discount/models/mrp_repair.py | 30 ++++++++++++++----- mrp_repair_discount/views/mrp_repair_view.xml | 2 +- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/mrp_repair_discount/models/mrp_repair.py b/mrp_repair_discount/models/mrp_repair.py index 49e9c7395..317cabb87 100644 --- a/mrp_repair_discount/models/mrp_repair.py +++ b/mrp_repair_discount/models/mrp_repair.py @@ -2,14 +2,28 @@ # © 2015 Nicola Malcontenti - Agile Business Group # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openerp import fields, models -from openerp.osv import orm +from openerp.osv import orm, fields +import openerp.addons.decimal_precision as dp -class MrpRepairLine(models.Model): +class MrpRepairLine(orm.Model): _inherit = 'mrp.repair.line' - discount = fields.Float(string='Discount (%)') + def _amount_line(self, cr, uid, ids, field_name, arg, context=None): + res = super(MrpRepairLine, self)._amount_line( + cr, uid, ids, field_name, arg, context=None) + for line in self.browse(cr, uid, ids, context=context): + price = res[line.id] * (1 - (line.discount or 0.0) / 100.0) + res[line.id] = price + return res + + _columns = { + 'discount': fields.float(string='Discount (%)'), + 'price_subtotal': fields.function( + _amount_line, string='Subtotal', + digits_compute=dp.get_precision('Account')), + + } class MrpRepair(orm.Model): @@ -18,7 +32,9 @@ class MrpRepair(orm.Model): def action_invoice_create(self, cr, uid, ids, group=False, context=None): res = super(MrpRepair, self).action_invoice_create( cr, uid, ids, group, context) - repair_obj = self.browse(cr, uid, ids, context=context) - for op in repair_obj.operations: - op.invoice_line_id.discount = op.discount + repair = self.browse(cr, uid, ids, context=context) + for op in repair.operations: + if op.to_invoice: + op.invoice_line_id.discount = op.discount + repair.invoice_id.button_reset_taxes() return res diff --git a/mrp_repair_discount/views/mrp_repair_view.xml b/mrp_repair_discount/views/mrp_repair_view.xml index 13d5c7365..e3544d325 100644 --- a/mrp_repair_discount/views/mrp_repair_view.xml +++ b/mrp_repair_discount/views/mrp_repair_view.xml @@ -6,7 +6,7 @@ mrp.repair - +