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,
'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,
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:
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:
<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">
<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">
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)
'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: '/',
}
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:
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>
</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"/>
<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.