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
-
+