[MERGE] [FIX] mrp_repair: add missing invalidation functions for stored field amount_total, courtesy of Alexandre Fayolle (camptocamp)
bzr revid: mat@openerp.com-20140307150939-yp54rpqw67hvdpe8
This commit is contained in:
commit
43217b22b3
|
@ -56,7 +56,8 @@ The following topics should be covered by this module:
|
||||||
'test/test_mrp_repair_b4inv.yml',
|
'test/test_mrp_repair_b4inv.yml',
|
||||||
'test/test_mrp_repair_afterinv.yml',
|
'test/test_mrp_repair_afterinv.yml',
|
||||||
'test/test_mrp_repair_cancel.yml',
|
'test/test_mrp_repair_cancel.yml',
|
||||||
'test/mrp_repair_report.yml'
|
'test/mrp_repair_report.yml',
|
||||||
|
'test/test_mrp_repair_fee.yml',
|
||||||
],
|
],
|
||||||
'installable': True,
|
'installable': True,
|
||||||
'auto_install': False,
|
'auto_install': False,
|
||||||
|
|
|
@ -109,10 +109,12 @@ class mrp_repair(osv.osv):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _get_lines(self, cr, uid, ids, context=None):
|
def _get_lines(self, cr, uid, ids, context=None):
|
||||||
result = {}
|
return self.pool['mrp.repair'].search(
|
||||||
for line in self.pool.get('mrp.repair.line').browse(cr, uid, ids, context=context):
|
cr, uid, [('operations', 'in', ids)], context=context)
|
||||||
result[line.repair_id.id] = True
|
|
||||||
return result.keys()
|
def _get_fee_lines(self, cr, uid, ids, context=None):
|
||||||
|
return self.pool['mrp.repair'].search(
|
||||||
|
cr, uid, [('fees_lines', 'in', ids)], context=context)
|
||||||
|
|
||||||
_columns = {
|
_columns = {
|
||||||
'name': fields.char('Repair Reference',size=24, required=True, states={'confirmed':[('readonly',True)]}),
|
'name': fields.char('Repair Reference',size=24, required=True, states={'confirmed':[('readonly',True)]}),
|
||||||
|
@ -163,16 +165,19 @@ class mrp_repair(osv.osv):
|
||||||
store={
|
store={
|
||||||
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
|
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
|
||||||
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
||||||
|
'mrp.repair.fee': (_get_fee_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
||||||
}),
|
}),
|
||||||
'amount_tax': fields.function(_amount_tax, string='Taxes',
|
'amount_tax': fields.function(_amount_tax, string='Taxes',
|
||||||
store={
|
store={
|
||||||
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
|
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
|
||||||
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
||||||
|
'mrp.repair.fee': (_get_fee_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
||||||
}),
|
}),
|
||||||
'amount_total': fields.function(_amount_total, string='Total',
|
'amount_total': fields.function(_amount_total, string='Total',
|
||||||
store={
|
store={
|
||||||
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
|
'mrp.repair': (lambda self, cr, uid, ids, c={}: ids, ['operations'], 10),
|
||||||
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
'mrp.repair.line': (_get_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
||||||
|
'mrp.repair.fee': (_get_fee_lines, ['price_unit', 'price_subtotal', 'product_id', 'tax_id', 'product_uom_qty', 'product_uom'], 10),
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
-
|
||||||
|
Testing total amount update function
|
||||||
|
-
|
||||||
|
I check the total amount of mrp_repair_rmrp1 is 100
|
||||||
|
-
|
||||||
|
!assert {model: mrp.repair, id: mrp_repair_rmrp1, string=amount_total should be 100}:
|
||||||
|
- amount_total == 100
|
||||||
|
-
|
||||||
|
I add a new fee line
|
||||||
|
-
|
||||||
|
!record {model: mrp.repair, id: mrp_repair_rmrp1}:
|
||||||
|
fees_lines:
|
||||||
|
- name: 'Assembly Service Cost'
|
||||||
|
product_id: product.product_assembly
|
||||||
|
product_uom_qty: 1.0
|
||||||
|
product_uom: product.product_uom_hour
|
||||||
|
price_unit: 12.0
|
||||||
|
to_invoice: True
|
||||||
|
-
|
||||||
|
I check the total amount of mrp_repair_rmrp1 is now 112
|
||||||
|
-
|
||||||
|
!assert {model: mrp.repair, id: mrp_repair_rmrp1, string=amount_total should be 112}:
|
||||||
|
- amount_total == 112
|
Loading…
Reference in New Issue