diff options
| author | Denis Ledoux <dle@odoo.com> | 2014-12-12 15:44:44 +0100 |
|---|---|---|
| committer | Denis Ledoux <dle@odoo.com> | 2014-12-12 15:44:44 +0100 |
| commit | 162eb8443801fa7dbe8d3c4c48c17313d7c97f25 (patch) | |
| tree | e75df57bd1f2ef040f6469f71b9b2ad8c315e0c7 | |
| parent | e11d1c2b7ac37d03c4567355dc007a7e414c08ae (diff) | |
| parent | f46fa1d0263ec6f7dd2e0f6dd5c4b90eca8d299e (diff) | |
[MERGE] forward port of branch 7.0 up to f46fa1d
| -rw-r--r-- | addons/purchase/purchase.py | 21 | ||||
| -rw-r--r-- | addons/purchase/purchase_workflow.xml | 2 | ||||
| -rw-r--r-- | addons/sale_margin/sale_margin.py | 5 | ||||
| -rw-r--r-- | openerp/addons/base/res/res_country_data.xml | 2 |
4 files changed, 23 insertions, 7 deletions
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 475a4960239..c1f99e218f9 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -269,6 +269,22 @@ class purchase_order(osv.osv): return super(purchase_order, self).unlink(cr, uid, unlink_ids, context=context) + def set_order_line_status(self, cr, uid, ids, status, context=None): + line = self.pool.get('purchase.order.line') + order_line_ids = [] + move_ids = [] + proc_obj = self.pool.get('procurement.order') + for order in self.browse(cr, uid, ids, context=context): + order_line_ids += [po_line.id for po_line in order.order_line] + move_ids += [po_line.move_dest_id.id for po_line in order.order_line if po_line.move_dest_id] + if order_line_ids: + line.write(cr, uid, order_line_ids, {'state': status}, context=context) + if order_line_ids and status == 'cancel': + procs = proc_obj.search(cr, uid, [('move_id', 'in', move_ids)], context=context) + if procs: + proc_obj.write(cr, uid, procs, {'state': 'exception'}, context=context) + return True + def button_dummy(self, cr, uid, ids, context=None): return True @@ -585,6 +601,10 @@ class purchase_order(osv.osv): return True return False + def wkf_action_cancel(self, cr, uid, ids, context=None): + self.write(cr, uid, ids, {'state': 'cancel'}, context=context) + self.set_order_line_status(cr, uid, ids, 'cancel', context=context) + def action_cancel(self, cr, uid, ids, context=None): for purchase in self.browse(cr, uid, ids, context=context): for pick in purchase.picking_ids: @@ -603,7 +623,6 @@ class purchase_order(osv.osv): .signal_invoice_cancel(cr, uid, map(attrgetter('id'), purchase.invoice_ids)) self.pool['purchase.order.line'].write(cr, uid, [l.id for l in purchase.order_line], {'state': 'cancel'}) - self.write(cr,uid,ids,{'state':'cancel'}) self.signal_purchase_cancel(cr, uid, ids) return True diff --git a/addons/purchase/purchase_workflow.xml b/addons/purchase/purchase_workflow.xml index ec4632c45a9..39e8acacdbd 100644 --- a/addons/purchase/purchase_workflow.xml +++ b/addons/purchase/purchase_workflow.xml @@ -31,7 +31,7 @@ <field name="name">cancel</field> <field name="kind">function</field> <field name="flow_stop">True</field> - <field name="action">write({'state':'cancel'})</field> + <field name="action">wkf_action_cancel()</field> </record> <record id="act_except_invoice" model="workflow.activity"> <field name="wkf_id" ref="purchase_order"/> diff --git a/addons/sale_margin/sale_margin.py b/addons/sale_margin/sale_margin.py index b5c1821ab98..ec1bd83dd50 100644 --- a/addons/sale_margin/sale_margin.py +++ b/addons/sale_margin/sale_margin.py @@ -52,10 +52,7 @@ class sale_order_line(osv.osv): for line in self.browse(cr, uid, ids, context=context): res[line.id] = 0 if line.product_id: - if line.purchase_price: - res[line.id] = round((line.price_unit*line.product_uos_qty*(100.0-line.discount)/100.0) -(line.purchase_price*line.product_uos_qty), 2) - else: - res[line.id] = round((line.price_unit*line.product_uos_qty*(100.0-line.discount)/100.0) -(line.product_id.standard_price*line.product_uos_qty), 2) + res[line.id] = round(line.price_subtotal - ((line.purchase_price or line.product_id.standard_price) * line.product_uos_qty), 2) return res _columns = { diff --git a/openerp/addons/base/res/res_country_data.xml b/openerp/addons/base/res/res_country_data.xml index 13c1025cf6b..b40fc0d0e07 100644 --- a/openerp/addons/base/res/res_country_data.xml +++ b/openerp/addons/base/res/res_country_data.xml @@ -798,7 +798,7 @@ <record id="my" model="res.country"> <field name="name">Malaysia</field> <field name="code">my</field> - <field name="currency_id" ref="MXN"/> + <field name="currency_id" ref="MYR"/> </record> <record id="mz" model="res.country"> <field name="name">Mozambique</field> |
