From 8e223c8aba12256a44290b1fd710929473bdfd10 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Fri, 13 Jun 2014 17:44:03 +0200 Subject: [PATCH] [IMP] Invoice_state based on delivery wizard recheck + returns and invoice_state --- addons/purchase/purchase.py | 6 +- addons/stock_account/__openerp__.py | 1 + addons/stock_account/stock.py | 18 +++-- addons/stock_account/stock_account_view.xml | 4 +- addons/stock_account/wizard/__init__.py | 1 + .../wizard/stock_invoice_onshipping.py | 66 +++++++++++++------ .../wizard/stock_invoice_onshipping_view.xml | 11 ---- .../wizard/stock_return_picking.py | 60 +++++++++++++++++ .../wizard/stock_return_picking_view.xml | 14 ++++ 9 files changed, 137 insertions(+), 44 deletions(-) create mode 100644 addons/stock_account/wizard/stock_return_picking.py create mode 100644 addons/stock_account/wizard/stock_return_picking_view.xml diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index f12e7026332..bdd8af1afd8 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -700,6 +700,7 @@ class purchase_order(osv.osv): 'origin': order.name, 'route_ids': order.picking_type_id.warehouse_id and [(6, 0, [x.id for x in order.picking_type_id.warehouse_id.route_ids])] or [], 'warehouse_id':order.picking_type_id.warehouse_id.id, + 'invoice_state': order.invoice_method == 'picking' and '2binvoiced' or 'none' } diff_quantity = order_line.product_qty @@ -709,9 +710,10 @@ class purchase_order(osv.osv): tmp.update({ 'product_uom_qty': min(procurement_qty, diff_quantity), 'product_uos_qty': min(procurement_qty, diff_quantity), - 'move_dest_id': procurement.move_dest_id.id, # blabla - 'group_id': procurement.group_id.id or group_id, # blabla to check ca devrait etre bon et groupé dans le meme picking qd meme + 'move_dest_id': procurement.move_dest_id.id, #move destination is same as procurement destination + 'group_id': procurement.group_id.id or group_id, #move group is same as group of procurements if it exists, otherwise take another group 'procurement_id': procurement.id, + 'invoice_state': procurement.rule_id.invoice_state or (procurement.location_id and procurement.location_id.usage == 'customer' and procurement.invoice_state) or (order.invoice_method == 'picking' and '2binvoiced') or 'none', #dropship case takes from sale }) diff_quantity -= min(procurement_qty, diff_quantity) res.append(tmp) diff --git a/addons/stock_account/__openerp__.py b/addons/stock_account/__openerp__.py index a2dab1289f4..5c67002f61f 100644 --- a/addons/stock_account/__openerp__.py +++ b/addons/stock_account/__openerp__.py @@ -53,6 +53,7 @@ Dashboard / Reports for Warehouse Management includes: 'wizard/stock_change_standard_price_view.xml', 'wizard/stock_invoice_onshipping_view.xml', 'wizard/stock_valuation_history_view.xml', + 'wizard/stock_return_picking_view.xml', 'product_data.xml', 'product_view.xml', 'stock_account_view.xml', diff --git a/addons/stock_account/stock.py b/addons/stock_account/stock.py index db08ba39eb4..44590353e1b 100644 --- a/addons/stock_account/stock.py +++ b/addons/stock_account/stock.py @@ -27,11 +27,10 @@ class stock_location_path(osv.osv): 'invoice_state': fields.selection([ ("invoiced", "Invoiced"), ("2binvoiced", "To Be Invoiced"), - ("none", "Not Applicable")], "Invoice Status", - required=True,), + ("none", "Not Applicable")], "Invoice Status",), } _defaults = { - 'invoice_state': 'none', + 'invoice_state': '', } #---------------------------------------------------------- @@ -43,11 +42,10 @@ class procurement_rule(osv.osv): 'invoice_state': fields.selection([ ("invoiced", "Invoiced"), ("2binvoiced", "To Be Invoiced"), - ("none", "Not Applicable")], "Invoice Status", - required=True), + ("none", "Not Applicable")], "Invoice Status",), } _defaults = { - 'invoice_state': 'none', + 'invoice_state': '', } #---------------------------------------------------------- @@ -61,16 +59,16 @@ class procurement_order(osv.osv): 'invoice_state': fields.selection([("invoiced", "Invoiced"), ("2binvoiced", "To Be Invoiced"), ("none", "Not Applicable") - ], "Invoice Control", required=True), + ], "Invoice Control"), } def _run_move_create(self, cr, uid, procurement, context=None): res = super(procurement_order, self)._run_move_create(cr, uid, procurement, context=context) - res.update({'invoice_state': (procurement.rule_id.invoice_state in ('none', False) and procurement.invoice_state or procurement.rule_id.invoice_state) or 'none'}) + res.update({'invoice_state': procurement.rule_id.invoice_state or procurement.invoice_state or 'none'}) return res _defaults = { - 'invoice_state': 'none' + 'invoice_state': '' } @@ -92,7 +90,7 @@ class stock_move(osv.osv): } def _get_master_data(self, cr, uid, move, company, context=None): - ''' returns a tupple (browse_record(res.partner), ID(res.users), ID(res.currency)''' + ''' returns a tuple (browse_record(res.partner), ID(res.users), ID(res.currency)''' return move.picking_id.partner_id, uid, company.currency_id.id def _create_invoice_line_from_vals(self, cr, uid, move, invoice_line_vals, context=None): diff --git a/addons/stock_account/stock_account_view.xml b/addons/stock_account/stock_account_view.xml index 3b3ab37b212..867f2eaee34 100644 --- a/addons/stock_account/stock_account_view.xml +++ b/addons/stock_account/stock_account_view.xml @@ -32,8 +32,8 @@ -