diff options
| author | Josse Colpaert <jco@openerp.com> | 2013-07-24 17:32:35 +0200 |
|---|---|---|
| committer | Josse Colpaert <jco@openerp.com> | 2013-07-24 17:32:35 +0200 |
| commit | ffdabcbc525e7c2c8aecae48c92f9fe7c8a2c315 (patch) | |
| tree | aebe4fe444c53606ff11e78a89fc957a64cb8237 /addons | |
| parent | 61e652da5560c6141a8f79adc2c73508a76144b6 (diff) | |
[WIP] Sequence on picking types
bzr revid: jco@openerp.com-20130724153235-0we14ofbquanuo2h
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/purchase/purchase.py | 7 | ||||
| -rw-r--r-- | addons/stock/product.py | 6 | ||||
| -rw-r--r-- | addons/stock/product_view.xml | 4 | ||||
| -rw-r--r-- | addons/stock/stock.py | 22 | ||||
| -rw-r--r-- | addons/stock/stock_data.xml | 36 | ||||
| -rw-r--r-- | addons/stock/stock_view.xml | 6 |
6 files changed, 63 insertions, 18 deletions
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 18e1f98c477..319b1260a6a 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -622,13 +622,15 @@ class purchase_order(osv.osv): return user_date.strftime(DEFAULT_SERVER_DATETIME_FORMAT) def _prepare_order_picking(self, cr, uid, order, context=None): + type_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'picking_type_in')[1] + type = self.pool.get("picking.type").browse(cr, uid, type_id, context=context) + return { - 'name': self.pool.get('ir.sequence').get(cr, uid, 'stock.picking'), + 'name': self.pool.get('ir.sequence').get(cr, uid, type.sequence_id.id, 'id'), 'origin': order.name + ((order.origin and (':' + order.origin)) or ''), 'date': self.date_to_datetime(cr, uid, order.date_order, context), 'partner_id': order.dest_address_id.id or order.partner_id.id, 'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none', - 'type': 'in', 'partner_id': order.dest_address_id.id or order.partner_id.id, 'purchase_id': order.id, 'company_id': order.company_id.id, @@ -652,7 +654,6 @@ class purchase_order(osv.osv): 'partner_id': order.dest_address_id.id or order.partner_id.id, 'move_dest_id': order_line.move_dest_id.id, 'state': 'draft', - 'type':'in', 'purchase_line_id': order_line.id, 'company_id': order.company_id.id, 'price_unit': order_line.price_unit, diff --git a/addons/stock/product.py b/addons/stock/product.py index fbd8c21d88b..1563ee1416a 100644 --- a/addons/stock/product.py +++ b/addons/stock/product.py @@ -31,7 +31,8 @@ class product_product(osv.osv): move_pool=self.pool.get('stock.move') moves = move_pool.read_group(cr, uid, [ ('product_id', 'in', ids), - ('picking_id.type', '=', 'in'), + ('location_id.usage', '!=', 'internal'), + ('location_dest_id.usage', '=', 'internal'), ('state','in',('confirmed','assigned','pending')) ], ['product_id'], ['product_id']) for move in moves: @@ -39,7 +40,8 @@ class product_product(osv.osv): res[product_id]['reception_count'] = move['product_id_count'] moves = move_pool.read_group(cr, uid, [ ('product_id', 'in', ids), - ('picking_id.type', '=', 'out'), + ('location_id.usage', '=', 'internal'), + ('location_dest_id.usage', '!=', 'internal'), ('state','in',('confirmed','assigned','pending')) ], ['product_id'], ['product_id']) for move in moves: diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml index 6a9bc5b304e..d057c47cc80 100644 --- a/addons/stock/product_view.xml +++ b/addons/stock/product_view.xml @@ -48,7 +48,7 @@ <field name="type">ir.actions.act_window</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="domain">[('picking_id.type','=','in')]</field> + <field name="domain">[('picking_type_id','=',ref("picking_type_in")), ('location_id.usage','!=','internal'), ('location_dest_id.usage', '=', 'internal')]</field> <field name="view_id" ref="view_move_tree_reception_picking"/> <field name="context" eval="'{\'search_default_product_id\': [active_id]}'"/> <field name="help" type="html"> @@ -68,8 +68,8 @@ <field name="type">ir.actions.act_window</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="domain">[('picking_id.type','=','out')]</field> <field name="view_id" ref="view_move_tree_reception_picking"/> + <field name="domain">[('picking_type_id','=',ref("picking_type_out")), ('location_id.usage','=','internal'), ('location_dest_id.usage', '!=', 'internal')]</field> <field name="context" eval="'{\'search_default_product_id\': [active_id]}'"/> <field name="help" type="html"> <p class="oe_view_nocontent_create"> diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 5adaca5c7db..f952b9e9c17 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -403,7 +403,12 @@ class stock_picking(osv.osv): def create(self, cr, user, vals, context=None): if ('name' not in vals) or (vals.get('name') in ('/', False)): - vals['name'] = self.pool.get('ir.sequence').get(cr, user, self._name) + import pdb + pdb.set_trace() + if 'move_lines' in vals: + if vals['move_lines'][0] and vals['move_lines'][0][2] and vals['move_lines'][0][2]['picking_type_id']: + sequence_id = self.pool.get('stock.picking.type').browse(cr, user, vals['move_lines'][0][2]['picking_type_id'], context=context).sequence_id.id + vals['name'] = self.pool.get('ir.sequence').get_id(cr, user, sequence_id, 'id', context=context) return super(stock_picking, self).create(cr, user, vals, context) @@ -468,11 +473,11 @@ class stock_picking(osv.osv): 'pack_operation_ids': fields.one2many('stock.pack.operation', 'picking_id', string='Related Packing Operations'), # Used to search a product on pickings - 'product_id': fields.related('move_lines', 'product_id', type='many2one', relation='product.product', string='Product'), - 'location_id': fields.related('move_lines', 'location_id', type='many2one', relation='stock.location', string='Location'), - 'location_dest_id': fields.related('move_lines', 'location_dest_id', type='many2one', relation='stock.location', string='Destination Location'), - 'group_id': fields.related('move_lines', 'group_id', type='many2one', relation='procurement.group', string='Procurement Group'), - 'picking_type_id': fields.related('move_lines', 'picking_type_id', type='many2one', relation='stock.picking.type', string="Picking Type"), + 'product_id': fields.related('move_lines', 'product_id', type='many2one', relation='product.product', string='Product'),#? + 'location_id': fields.related('move_lines', 'location_id', type='many2one', relation='stock.location', string='Location', readonly=True), + 'location_dest_id': fields.related('move_lines', 'location_dest_id', type='many2one', relation='stock.location', string='Destination Location', readonly=True), + 'group_id': fields.related('move_lines', 'group_id', type='many2one', relation='procurement.group', string='Procurement Group', readonly=True), + 'picking_type_id': fields.related('move_lines', 'picking_type_id', type='many2one', relation='stock.picking.type', string="Picking Type", readonly=True), } _defaults = { 'name': lambda self, cr, uid, context: '/', @@ -2301,13 +2306,14 @@ class product_product(osv.osv): } class stock_picking_type(osv.osv): - _name="stock.picking.type" + _name = "stock.picking.type" _columns = { 'name': fields.char('name', size=30), 'pack': fields.boolean('Pack', 'This picking type needs packing interface'), 'delivery': fields.boolean('Print delivery'), - + 'sequence_id': fields.many2one('ir.sequence', 'Sequence', required = True), } + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/stock/stock_data.xml b/addons/stock/stock_data.xml index ba0e2dcbd5d..9e776a69b9c 100644 --- a/addons/stock/stock_data.xml +++ b/addons/stock/stock_data.xml @@ -103,17 +103,53 @@ watch your stock valuation, and track production lots upstream and downstream (b Picking types --> + <!-- Sequences for picking types --> + <record id="seq_picking_type_in" model="ir.sequence"> + <field name="name">Picking in</field> + <field name="prefix">IN</field> + <field name="padding">5</field> + <field name="company_id" eval="False"/> + </record> + + <record id="seq_picking_type_out" model="ir.sequence"> + <field name="name">Picking out</field> + <field name="prefix">OUT</field> + <field name="padding">5</field> + <field name="company_id" eval="False"/> + </record> + + <record id="seq_picking_type_internal" model="ir.sequence"> + <field name="name">Picking internal</field> + <field name="prefix">INT</field> + <field name="padding">5</field> + <field name="company_id" eval="False"/> + </record> + + <record id="seq_picking_type_inventory" model="ir.sequence"> + <field name="name">Picking inventory</field> + <field name="prefix">INV</field> + <field name="padding">5</field> + <field name="company_id" eval="False"/> + </record> + <record id="picking_type_in" model="stock.picking.type"> <field name="name">in</field> + <field name="sequence_id" ref="seq_picking_type_in"/> </record> + + <record id="picking_type_out" model="stock.picking.type"> <field name="name">out</field> + <field name="sequence_id" ref="seq_picking_type_out"/> </record> + <record id="picking_type_internal" model="stock.picking.type"> <field name="name">internal</field> + <field name="sequence_id" ref="seq_picking_type_internal"/> </record> <record id="picking_type_inventory" model="stock.picking.type"> <field name="name">inventory</field> + <field name="sequence_id" ref="seq_picking_type_inventory"/> </record> diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index 7358cf0cead..8f86f75c722 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -610,7 +610,7 @@ </group> <notebook> <page string="Products"> - <field name="move_lines" context="{'address_in_id': partner_id, 'form_view_ref':'view_move_picking_form', 'tree_view_ref':'view_move_picking_tree', 'picking_type': 'internal'}"/> + <field name="move_lines" context="{'address_in_id': partner_id, 'form_view_ref':'view_move_picking_form', 'tree_view_ref':'view_move_picking_tree'}"/> <field name="pack_operation_ids" domain="[('result_package_id', '!=', False)]"> <tree editable="top"> <field name="product_id"/> @@ -1097,9 +1097,9 @@ <field name="type">ir.actions.act_window</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> - <field name="domain">['|','&',('picking_id','=',False),('location_dest_id.usage', 'in', ['customer','supplier']),'&',('picking_id','!=',False),('picking_id.type','=','out')]</field> + <field name="domain">['|','&',('picking_id','=',False),('location_dest_id.usage', 'in', ['customer','supplier']),'&',('picking_id','!=',False)]</field> <field name="view_id" ref="view_move_tree_reception_picking"/> - <field name="context">{'picking_type': 'out', 'search_default_future': True}</field> + <field name="context">{'search_default_future': True}</field> <field name="help" type="html"> <p class="oe_view_nocontent_create"> Click to register a product delivery. |
