[WIP] remove stock.picking.in and stock.picking.out and replace by picking_type_id
bzr revid: jco@openerp.com-20130723164755-39wldz6jdjkqjvkk
This commit is contained in:
parent
f02c1dabf7
commit
15f509178b
|
@ -13,7 +13,7 @@
|
|||
<record id="crm_claim_from_delivery" model="ir.ui.view">
|
||||
<field name="name">crm.claim.from_delivery.form</field>
|
||||
<field name="model">stock.picking.out</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_form"/>
|
||||
<field name="inherit_id" ref="stock.view_picking_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/sheet/h1" position="before">
|
||||
<div class="oe_right oe_button_box">
|
||||
|
|
|
@ -253,7 +253,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree4" model="ir.actions.act_window">
|
||||
<record id="action_picking_tree" model="ir.actions.act_window">
|
||||
<field name="name">Picking to be invoiced</field>
|
||||
<field name="res_model">stock.picking.out</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
|
@ -330,7 +330,7 @@
|
|||
|
||||
<record id="view_picking_withcarrier_in_form" model="ir.ui.view">
|
||||
<field name="name">delivery.stock.picking_withcarrier.in.form.view</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="company_id" position="before">
|
||||
|
|
|
@ -899,6 +899,7 @@ class mrp_production(osv.osv):
|
|||
'move_dest_id': production.move_prod_id.id,
|
||||
'state': 'waiting',
|
||||
'company_id': production.company_id.id,
|
||||
'picking_type_id': self.pool.get("ir.model.data").get_object_reference(cr, uid, 'stock', 'picking_type_internal')[1],
|
||||
}
|
||||
move_id = stock_move.create(cr, uid, data, context=context)
|
||||
production.write({'move_created_ids': [(6, 0, [move_id])]}, context=context)
|
||||
|
@ -928,6 +929,7 @@ class mrp_production(osv.osv):
|
|||
'state': 'waiting',
|
||||
'company_id': production.company_id.id,
|
||||
'procure_method': 'make_to_order',
|
||||
'picking_type_id': self.pool.get("ir.model.data").get_object_reference(cr, uid, 'stock', 'picking_type_internal')[1],
|
||||
})
|
||||
production.write({'move_lines': [(4, move_id)]}, context=context)
|
||||
return move_id
|
||||
|
|
|
@ -715,10 +715,7 @@
|
|||
<field name="product_qty"/>
|
||||
<field name="product_uom" string="Unit of Measure" groups="product.group_uom"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<button name="%(stock.action_partial_move_server)d"
|
||||
string="Partial"
|
||||
type="action" states="confirmed,assigned"
|
||||
icon="gtk-justify-fill"/>
|
||||
<!--TODO: should have a partial picking here-->
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_stock_picking,stock.picking,stock.model_stock_picking,portal.group_portal,1,0,0,0
|
||||
access_stock_picking.out,stock.picking.out,stock.model_stock_picking_out,portal.group_portal,1,0,0,0
|
||||
access_stock_move,stock.move,stock.model_stock_move,portal.group_portal,1,0,0,0
|
||||
access_stock_warehouse_orderpoint,stock.warehouse.orderpoint,stock.model_stock_warehouse_orderpoint,portal.group_portal,1,0,0,0
|
||||
|
|
|
|
@ -9,13 +9,5 @@
|
|||
<field name="domain_force">[('message_follower_ids','in',[user.partner_id.id])]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="portal_stock_picking_out_user_rule" model="ir.rule">
|
||||
<field name="name">Portal Personal Out Pickings</field>
|
||||
<field name="model_id" ref="stock.model_stock_picking_out"/>
|
||||
<field name="domain_force">[('message_follower_ids','in',[user.partner_id.id])]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -60,7 +60,7 @@ Dashboard / Reports for Purchase Management will include:
|
|||
'purchase_view.xml',
|
||||
'stock_view.xml',
|
||||
'partner_view.xml',
|
||||
'process/purchase_process.xml',
|
||||
# 'process/purchase_process.xml',
|
||||
'report/purchase_report_view.xml',
|
||||
'board_purchase_view.xml',
|
||||
'edi/purchase_order_action_data.xml',
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
</record>
|
||||
|
||||
<record id="process_node_packinglist0" model="process.node">
|
||||
<field name="menu_id" ref="stock.menu_action_picking_tree4"/>
|
||||
<field name="menu_id" ref="stock.menu_action_picking_tree"/>
|
||||
<field name="model_id" ref="stock.model_stock_picking"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Incoming Products"""" name="name"/>
|
||||
|
|
|
@ -192,7 +192,7 @@ class purchase_order(osv.osv):
|
|||
'validator' : fields.many2one('res.users', 'Validated by', readonly=True),
|
||||
'notes': fields.text('Terms and Conditions'),
|
||||
'invoice_ids': fields.many2many('account.invoice', 'purchase_invoice_rel', 'purchase_id', 'invoice_id', 'Invoices', help="Invoices generated for a purchase order"),
|
||||
'picking_ids': fields.one2many('stock.picking.in', 'purchase_id', 'Picking List', readonly=True, help="This is the list of incoming shipments that have been generated for this purchase order."),
|
||||
'picking_ids': fields.one2many('stock.picking', 'purchase_id', 'Picking List', readonly=True, help="This is the list of incoming shipments that have been generated for this purchase order."),
|
||||
'shipped':fields.boolean('Received', readonly=True, select=True, help="It indicates that a picking has been done"),
|
||||
'shipped_rate': fields.function(_shipped_rate, string='Received Ratio', type='float'),
|
||||
'invoiced': fields.function(_invoiced, string='Invoice Received', type='boolean', help="It indicates that an invoice has been paid"),
|
||||
|
@ -373,7 +373,7 @@ class purchase_order(osv.osv):
|
|||
for po in self.browse(cr, uid, ids, context=context):
|
||||
pick_ids += [picking.id for picking in po.picking_ids]
|
||||
|
||||
action_model, action_id = tuple(mod_obj.get_object_reference(cr, uid, 'stock', 'action_picking_tree4'))
|
||||
action_model, action_id = tuple(mod_obj.get_object_reference(cr, uid, 'stock', 'action_picking_tree'))
|
||||
action = self.pool[action_model].read(cr, uid, action_id, context=context)
|
||||
ctx = eval(action['context'])
|
||||
ctx.update({
|
||||
|
@ -623,7 +623,7 @@ class purchase_order(osv.osv):
|
|||
|
||||
def _prepare_order_picking(self, cr, uid, order, context=None):
|
||||
return {
|
||||
'name': self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.in'),
|
||||
'name': self.pool.get('ir.sequence').get(cr, uid, 'stock.picking'),
|
||||
'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,
|
||||
|
|
|
@ -84,8 +84,6 @@
|
|||
<!--Inventory control-->
|
||||
<menuitem id="menu_procurement_management_inventory" name="Incoming Products"
|
||||
parent="base.menu_purchase_root" sequence="4"/>
|
||||
<menuitem action="stock.action_picking_tree4" id="menu_action_picking_tree4" parent="menu_procurement_management_inventory"
|
||||
name="Incoming Shipments" sequence="9"/>
|
||||
<menuitem action="stock.action_reception_picking_move" id="menu_action_picking_tree_in_move"
|
||||
parent="menu_procurement_management_inventory" sequence="11"/>
|
||||
|
||||
|
|
|
@ -43,6 +43,7 @@ class stock_picking(osv.osv):
|
|||
_columns = {
|
||||
'purchase_id': fields.many2one('purchase.order', 'Purchase Order',
|
||||
ondelete='set null', select=True),
|
||||
'warehouse_id': fields.related('purchase_id', 'warehouse_id', type='many2one', relation='stock.warehouse', string='Destination Warehouse'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
@ -125,28 +126,18 @@ class stock_picking(osv.osv):
|
|||
if picking.purchase_id:
|
||||
purchase_obj.write(cursor, user, [picking.purchase_id.id], {'invoice_ids': [(4, invoice_id)]})
|
||||
return super(stock_picking, self)._invoice_hook(cursor, user, picking, invoice_id)
|
||||
#
|
||||
# class stock_partial_picking(osv.osv_memory):
|
||||
# _inherit = 'stock.partial.picking'
|
||||
#
|
||||
# # Overridden to inject the purchase price as true 'cost price' when processing
|
||||
# # incoming pickings. The price is always stored in the company currency.
|
||||
# def _product_cost_for_average_update(self, cr, uid, move):
|
||||
# if move.picking_id.purchase_id:
|
||||
# currency_obj = self.pool.get("res.currency")
|
||||
# new_price = currency_obj.compute(cr, uid, move.picking_id.purchase_id.pricelist_id.currency_id.id, move.company_id.currency_id.id,
|
||||
# move.purchase_line_id.price_unit, round=False)
|
||||
# return {'cost': new_price}
|
||||
# return super(stock_partial_picking, self)._product_cost_for_average_update(cr, uid, move)
|
||||
|
||||
class stock_partial_picking(osv.osv_memory):
|
||||
_inherit = 'stock.partial.picking'
|
||||
|
||||
# Overridden to inject the purchase price as true 'cost price' when processing
|
||||
# incoming pickings. The price is always stored in the company currency.
|
||||
def _product_cost_for_average_update(self, cr, uid, move):
|
||||
if move.picking_id.purchase_id:
|
||||
currency_obj = self.pool.get("res.currency")
|
||||
new_price = currency_obj.compute(cr, uid, move.picking_id.purchase_id.pricelist_id.currency_id.id, move.company_id.currency_id.id,
|
||||
move.purchase_line_id.price_unit, round=False)
|
||||
return {'cost': new_price}
|
||||
return super(stock_partial_picking, self)._product_cost_for_average_update(cr, uid, move)
|
||||
|
||||
# Redefinition of the new field in order to update the model stock.picking.in in the orm
|
||||
# FIXME: this is a temporary workaround because of a framework bug (ref: lp996816). It should be removed as soon as
|
||||
# the bug is fixed
|
||||
class stock_picking_in(osv.osv):
|
||||
_inherit = 'stock.picking.in'
|
||||
_columns = {
|
||||
'purchase_id': fields.many2one('purchase.order', 'Purchase Order',
|
||||
ondelete='set null', select=True),
|
||||
'warehouse_id': fields.related('purchase_id', 'warehouse_id', type='many2one', relation='stock.warehouse', string='Destination Warehouse'),
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<record id="stock_picking_in_inherit_purchase" model="ir.ui.view">
|
||||
<field name="name">Incoming Picking Inherited</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='date']" position="before">
|
||||
|
@ -28,8 +28,8 @@
|
|||
|
||||
<record id="view_picking_in_search_picking_inherit" model="ir.ui.view">
|
||||
<field name="name">stock.picking.in.search.inherit</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_search"/>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_internal_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='product_id']" position="before">
|
||||
<field name="purchase_id"/>
|
||||
|
@ -55,15 +55,15 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree4_picking_to_invoice" model="ir.actions.act_window">
|
||||
<record id="action_picking_tree_picking_to_invoice" model="ir.actions.act_window">
|
||||
<field name="name">On Incoming Shipments</field>
|
||||
<field name="res_model">stock.picking.in</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain">[('type','=','in'),('purchase_id.invoice_method','=','picking')]</field>
|
||||
<field name="domain">[('purchase_id.invoice_method','=','picking')]</field>
|
||||
<field name="context">{"default_type": "in", "contact_display": "partner_address", "search_default_done": 1, "search_default_to_invoice": 1}</field>
|
||||
<field name="search_view_id" ref="stock.view_picking_in_search"/>
|
||||
<field name="search_view_id" ref="stock.view_picking_internal_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new incoming shipment.
|
||||
|
@ -76,8 +76,8 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_picking_tree4_picking_to_invoice"
|
||||
id="menu_action_picking_tree4_picking_to_invoice"
|
||||
<menuitem action="action_picking_tree_picking_to_invoice"
|
||||
id="menu_action_picking_tree_picking_to_invoice"
|
||||
parent="purchase.menu_procurement_management_invoice" sequence="90"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -61,7 +61,7 @@ class picking(osv.osv):
|
|||
}
|
||||
|
||||
class stock_picking_in(osv.osv):
|
||||
_inherit = "stock.picking.in"
|
||||
_inherit = "stock.picking"
|
||||
_columns = {
|
||||
'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', readonly=True)
|
||||
}
|
||||
|
|
|
@ -98,7 +98,7 @@
|
|||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_in">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="move_type" position="before">
|
||||
|
@ -109,7 +109,7 @@
|
|||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree_in">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="state" position="before">
|
||||
|
@ -120,8 +120,8 @@
|
|||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_out">
|
||||
<field name="name">stock.picking.journal.view.form</field>
|
||||
<field name="model">stock.picking.out</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_form" />
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="move_type" position="before">
|
||||
<field name="invoice_type_id"/>
|
||||
|
@ -131,7 +131,7 @@
|
|||
|
||||
<record model="ir.ui.view" id="sale_journal_picking_order_tree_out">
|
||||
<field name="name">stock.picking.journal.view.tree</field>
|
||||
<field name="model">stock.picking.out</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_tree" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="state" position="before">
|
||||
|
@ -178,8 +178,8 @@
|
|||
|
||||
<record id="view_picking_out_search" model="ir.ui.view">
|
||||
<field name="name">stock.picking.out.search.inherit</field>
|
||||
<field name="model">stock.picking.out</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_search"/>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_internal_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//group/filter[@string='Journal']" position="after">
|
||||
<filter string="Invoice Type" domain="[]" context="{'group_by':'invoice_type_id'}"/>
|
||||
|
@ -189,7 +189,7 @@
|
|||
|
||||
<record id="view_picking_in_search" model="ir.ui.view">
|
||||
<field name="name">stock.picking.in.search.inherit</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//group/filter[@string='Journal']" position="after">
|
||||
|
|
|
@ -63,7 +63,7 @@ class sale_order(osv.osv):
|
|||
#TODO: not better to use picking
|
||||
pickingstates = []
|
||||
for pick in sale.picking_ids:
|
||||
pickingstates += [x.state not in ['cancel', 'done'] for x in pick.move_lines]
|
||||
pickingstates += [x.state not in ['cancel', 'done'] for x in pick.move_lines if x]
|
||||
if any(pickingstates):
|
||||
res[sale.id] = False
|
||||
return res
|
||||
|
@ -175,7 +175,7 @@ class sale_order(osv.osv):
|
|||
if len(pick_ids) > 1:
|
||||
result['domain'] = "[('id','in',["+','.join(map(str, pick_ids))+"])]"
|
||||
else:
|
||||
res = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_out_form')
|
||||
res = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_form')
|
||||
result['views'] = [(res and res[1] or False, 'form')]
|
||||
result['res_id'] = pick_ids and pick_ids[0] or False
|
||||
return result
|
||||
|
|
|
@ -118,13 +118,4 @@ class stock_picking(osv.osv):
|
|||
self.pool.get('sale.order').message_post(cr, uid, [record.sale_id.id], body=_("Products delivered"), context=context)
|
||||
return super(stock_picking, self).action_done(cr, uid, ids, context=context)
|
||||
|
||||
# Redefinition of the new field in order to update the model stock.picking.out in the orm
|
||||
# FIXME: this is a temporary workaround because of a framework bug (ref: lp996816). It should be removed as soon as
|
||||
# the bug is fixed
|
||||
class stock_picking_out(osv.osv):
|
||||
_inherit = 'stock.picking.out'
|
||||
_columns = {
|
||||
'sale_id': fields.many2one('sale.order', 'Sale Order',
|
||||
ondelete='set null', select=True),
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<record id="action_sale_picking_out_form_view" model="ir.actions.act_window.view">
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="stock.view_picking_out_form"/>
|
||||
<field name="view_id" ref="stock.view_picking_form"/>
|
||||
<field name="act_window_id" ref="act_sale_order_2_stock_picking"/>
|
||||
</record>
|
||||
-->
|
||||
|
@ -41,8 +41,8 @@
|
|||
|
||||
<record id="stock_picking_out_inherit_sale" model="ir.ui.view">
|
||||
<field name="name">Outgoing picking Inherited</field>
|
||||
<field name="model">stock.picking.out</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_form"/>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="move_type" position="after">
|
||||
<field name="sale_id"/>
|
||||
|
@ -57,9 +57,9 @@
|
|||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain">[('type','=','out')]</field>
|
||||
<field name="domain">[('location_id.usage','=','internal'), ('location_dest_id.usage','!=','internal')]</field>
|
||||
<field name="context">{'default_type': 'out', 'contact_display': 'partner_address', 'search_default_to_invoice': 1, 'search_default_done': 1, 'default_invoice_state': '2binvoiced'}</field>
|
||||
<field name="search_view_id" ref="stock.view_picking_out_search"/>
|
||||
<field name="search_view_id" ref="stock.view_picking_internal_search"/>
|
||||
</record>
|
||||
<menuitem action="outgoing_picking_list_to_invoice" id="menu_action_picking_list_to_invoice" parent="base.menu_invoiced" groups="sale_stock.group_invoice_deli_orders" sequence="20"/>
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ class procurement_rule(osv.osv):
|
|||
'location_id': fields.many2one('stock.location', 'Destination Location'),
|
||||
'location_src_id': fields.many2one('stock.location', 'Source Location',
|
||||
help="Source location is action=move"),
|
||||
'picking_type_id': fields.many2one('stock.picking.type', 'Picking Type',
|
||||
'picking_type_id': fields.many2one('stock.picking.type', 'Picking Type', required=True,
|
||||
help="Picking Type determines the way the picking should be shown in the view, reports, ...")
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@ class procurement_order(osv.osv):
|
|||
'move_dest_id': procurement.move_dest_id and procurement.move_dest_id.id or False,
|
||||
#'cancel_cascade': procurement.rule_id and procurement.rule_id.cancel_cascade or False,
|
||||
'group_id': procurement.group_id and procurement.group_id.id or False,
|
||||
'picking_type': self.pool.get('stock.move').get_type_from_usage(cr, uid, procurement.rule_id.location_src_id, procurement.rule_id.location_id, context=context)
|
||||
'picking_type_id': procurement.rule_id.picking_type_id.id,
|
||||
}
|
||||
|
||||
def _run(self, cr, uid, procurement, context=None):
|
||||
|
|
|
@ -9,11 +9,7 @@ access_stock_location_user,stock.location.user,model_stock_location,base.group_u
|
|||
access_stock_journal_user,stock.journal.user,model_stock_journal,base.group_user,1,0,0,0
|
||||
access_stock_journal_manager,stock.journal.manager,model_stock_journal,stock.group_stock_manager,1,1,1,1
|
||||
access_stock_picking_user,stock.picking user,model_stock_picking,stock.group_stock_user,1,1,1,1
|
||||
access_stock_picking_in_user,stock.picking.in,model_stock_picking_in,stock.group_stock_user,1,1,1,1
|
||||
access_stock_picking_out_user,stock.picking.out,model_stock_picking_out,stock.group_stock_user,1,1,1,1
|
||||
access_stock_picking_manager,stock.picking manager,model_stock_picking,stock.group_stock_manager,1,1,0,0
|
||||
access_stock_picking_in_manager,stock.picking.in manager,model_stock_picking_in,stock.group_stock_manager,1,0,0,0
|
||||
access_stock_picking_out_manager,stock.picking.out manager,model_stock_picking_out,stock.group_stock_manager,1,0,0,0
|
||||
access_stock_production_lot_manager,stock.production.lot manager,model_stock_production_lot,stock.group_stock_manager,1,0,0,0
|
||||
access_stock_production_lot_user,stock.production.lot user,model_stock_production_lot,stock.group_stock_user,1,1,1,1
|
||||
access_stock_move_manager,stock.move manager,model_stock_move,stock.group_stock_manager,1,1,1,1
|
||||
|
|
|
|
@ -440,7 +440,7 @@ class stock_picking(osv.osv):
|
|||
'name': fields.char('Reference', size=64, select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
|
||||
'origin': fields.char('Source Document', size=64, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="Reference of the document", select=True),
|
||||
'backorder_id': fields.many2one('stock.picking', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
|
||||
'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
|
||||
#'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
|
||||
'note': fields.text('Notes', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
|
||||
'stock_journal_id': fields.many2one('stock.journal','Stock Journal', select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
|
||||
'move_type': fields.selection([('direct', 'Partial'), ('one', 'All at once')], 'Delivery Method', required=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="It specifies goods to be deliver partially or all at once"),
|
||||
|
@ -470,13 +470,13 @@ class stock_picking(osv.osv):
|
|||
'partner_id': fields.many2one('res.partner', 'Partner', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True, select=True, states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}),
|
||||
'pack_operation_ids': fields.one2many('stock.pack.operation', 'picking_id', string='Related Packing Operations'),
|
||||
'picking_type_id': fields.many2one('stock.picking.type', string="Picking Type"),
|
||||
|
||||
|
||||
# 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'),
|
||||
'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"),
|
||||
}
|
||||
_defaults = {
|
||||
'name': lambda self, cr, uid, context: '/',
|
||||
|
@ -484,7 +484,6 @@ class stock_picking(osv.osv):
|
|||
'partner_id': lambda self, cr, uid, context: self.pool.get('stock.move')._default_destination_address(cr, uid, context=context),
|
||||
'state': 'draft',
|
||||
'move_type': 'direct',
|
||||
'type': 'internal',
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.picking', context=c)
|
||||
}
|
||||
|
@ -504,14 +503,6 @@ class stock_picking(osv.osv):
|
|||
default['backorder_id'] = False
|
||||
return super(stock_picking, self).copy(cr, uid, id, default, context)
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
|
||||
if view_type == 'form' and not view_id:
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
if self._name == "stock.picking.in":
|
||||
model, view_id = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_in_form')
|
||||
if self._name == "stock.picking.out":
|
||||
model, view_id = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_out_form')
|
||||
return super(stock_picking, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
|
||||
|
||||
def action_confirm(self, cr, uid, ids, context=None):
|
||||
""" Confirms picking.
|
||||
|
@ -760,18 +751,14 @@ class stock_picking(osv.osv):
|
|||
self.make_packaging(cr, uid, picking.id, todo_move_ids, context=context)
|
||||
|
||||
# views associated to each picking type
|
||||
_VIEW_LIST = {
|
||||
'out': 'view_picking_out_form',
|
||||
'in': 'view_picking_in_form',
|
||||
'internal': 'view_picking_form',
|
||||
}
|
||||
def _get_view_id(self, cr, uid, type):
|
||||
"""Get the view id suiting the given type
|
||||
|
||||
@param type: the picking type as a string
|
||||
@return: view i, or False if no view found
|
||||
"""
|
||||
res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', self._VIEW_LIST.get(type, 'view_picking_form'))
|
||||
res = self.pool.get('ir.model.data').get_object_reference(cr, uid,
|
||||
'stock', 'view_picking_form')
|
||||
return res and res[1] or False
|
||||
|
||||
def _get_picking_for_packing_ui(self, cr, uid, context=None):
|
||||
|
@ -1014,8 +1001,9 @@ class stock_move(osv.osv):
|
|||
|
||||
# used for colors in tree views:
|
||||
'scrapped': fields.related('location_dest_id','scrap_location',type='boolean',relation='stock.location',string='Scrapped', readonly=True),
|
||||
'type': fields.related('picking_id', 'type', type='selection', selection=[('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal')], string='Shipping Type'),
|
||||
'quant_ids': fields.many2many('stock.quant', 'stock_quant_move_rel', 'move_id', 'quant_id', 'Quants'),
|
||||
'picking_type_id': fields.many2one('stock.picking.type', 'Picking Type', help="The picking type will be used for composing the views and reports the related picking", required=True),
|
||||
#'type': fields.related('picking_id', 'type', type='selection', selection=[('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal')], string='Shipping Type'),
|
||||
'quant_ids': fields.many2many('stock.quant', 'stock_quant_move_rel', 'move_id', 'quant_id', 'Quants'),
|
||||
'reserved_quant_ids': fields.one2many('stock.quant', 'reservation_id', 'Reserved quants'),
|
||||
'remaining_qty': fields.function(_get_remaining_qty, type='float', string='Remaining Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), states={'done': [('readonly', True)]}),
|
||||
'group_id': fields.many2one('procurement.group', 'Procurement Group'),
|
||||
|
@ -1126,7 +1114,7 @@ class stock_move(osv.osv):
|
|||
'location_id': _default_location_source,
|
||||
'location_dest_id': _default_location_destination,
|
||||
'partner_id': _default_destination_address,
|
||||
'type': _default_move_type,
|
||||
# 'picking_type_id': lambda self, cr, uid, c: self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'picking_type_internal')[1],
|
||||
'state': 'draft',
|
||||
'priority': '1',
|
||||
'product_qty': 1.0,
|
||||
|
@ -1293,7 +1281,7 @@ class stock_move(osv.osv):
|
|||
result['location_dest_id'] = loc_dest_id
|
||||
return {'value': result}
|
||||
|
||||
def onchange_move_type(self, cr, uid, ids, type, context=None):
|
||||
def onchange_move_type(self, cr, uid, ids, picking_type_id, context=None):
|
||||
""" On change of move type gives sorce and destination location.
|
||||
@param type: Move Type
|
||||
@return: Dictionary of values
|
||||
|
@ -1301,6 +1289,7 @@ class stock_move(osv.osv):
|
|||
mod_obj = self.pool.get('ir.model.data')
|
||||
location_source_id = 'stock_location_stock'
|
||||
location_dest_id = 'stock_location_stock'
|
||||
type="internal"
|
||||
if type == 'in':
|
||||
location_source_id = 'stock_location_suppliers'
|
||||
location_dest_id = 'stock_location_stock'
|
||||
|
@ -1337,7 +1326,7 @@ class stock_move(osv.osv):
|
|||
original_picking = pick_obj.browse(cr, uid, context.get('backorder_of'), context=context)
|
||||
new_picking_name = original_picking.name
|
||||
#TODO back_order_name is False currently => find why
|
||||
back_order_name = sequence_obj.get(cr, uid, 'stock.picking.%s' % (original_picking.type))
|
||||
back_order_name = sequence_obj.get(cr, uid, 'stock.picking') #TODO: Need to have sequence for every picking type
|
||||
pick_obj.write(cr, uid, [original_picking.id], {'name': back_order_name})
|
||||
pick = pick_obj.copy(cr, uid, original_picking.id, {'name': new_picking_name,
|
||||
'move_lines': [],
|
||||
|
@ -1350,7 +1339,7 @@ class stock_move(osv.osv):
|
|||
#a backorder picking doesn't exist yet, create a new one
|
||||
values = {'origin': move.origin,
|
||||
'company_id': move.company_id and move.company_id.id or False,
|
||||
'type': 'internal',
|
||||
# 'type': 'internal',
|
||||
'move_type': 'one',
|
||||
'partner_id': move.partner_id and move.partner_id.id or False,
|
||||
#'invoice_state': move.invoice_state
|
||||
|
@ -1872,7 +1861,8 @@ class stock_inventory(osv.osv):
|
|||
'product_id': line.product_id.id,
|
||||
'product_uom': line.product_uom.id,
|
||||
'date': inv.date,
|
||||
'company_id': line.location_id.company_id.id
|
||||
'company_id': line.location_id.company_id.id,
|
||||
'picking_type_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'stock', 'picking_type_inventory')[1],
|
||||
}
|
||||
|
||||
if change > 0:
|
||||
|
@ -1978,95 +1968,6 @@ class stock_warehouse(osv.osv):
|
|||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------
|
||||
# "Empty" Classes that are used to vary from the original stock.picking (that are dedicated to the internal pickings)
|
||||
# in order to offer a different usability with different views, labels, available reports/wizards..
|
||||
# --> TO BE REPLACED by stock_picking_type
|
||||
#----------------------------------------------------------
|
||||
|
||||
class stock_picking_in(osv.osv):
|
||||
_name = "stock.picking.in"
|
||||
_inherit = "stock.picking"
|
||||
_table = "stock_picking"
|
||||
_description = "Incoming Shipments"
|
||||
|
||||
# def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
|
||||
# return self.pool.get('stock.picking').search(cr, user, args, offset, limit, order, context, count)
|
||||
#
|
||||
# def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
|
||||
# return self.pool.get('stock.picking').read(cr, uid, ids, fields=fields, context=context, load=load)
|
||||
|
||||
def check_access_rights(self, cr, uid, operation, raise_exception=True):
|
||||
#override in order to redirect the check of acces rights on the stock.picking object
|
||||
return self.pool.get('stock.picking').check_access_rights(cr, uid, operation, raise_exception=raise_exception)
|
||||
|
||||
def check_access_rule(self, cr, uid, ids, operation, context=None):
|
||||
#override in order to redirect the check of acces rules on the stock.picking object
|
||||
return self.pool.get('stock.picking').check_access_rule(cr, uid, ids, operation, context=context)
|
||||
|
||||
_columns = {
|
||||
'backorder_id': fields.many2one('stock.picking.in', 'Back Order of', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
|
||||
'state': fields.selection(
|
||||
[('draft', 'Draft'),
|
||||
('auto', 'Waiting Another Operation'),
|
||||
('confirmed', 'Waiting Availability'),
|
||||
('assigned', 'Ready to Receive'),
|
||||
('done', 'Received'),
|
||||
('cancel', 'Cancelled')],
|
||||
'Status', readonly=True, select=True,
|
||||
help="""* Draft: not confirmed yet and will not be scheduled until confirmed\n
|
||||
* Waiting Another Operation: waiting for another move to proceed before it becomes automatically available (e.g. in Make-To-Order flows)\n
|
||||
* Waiting Availability: still waiting for the availability of products\n
|
||||
* Ready to Receive: products reserved, simply waiting for confirmation.\n
|
||||
* Received: has been processed, can't be modified or cancelled anymore\n
|
||||
* Cancelled: has been cancelled, can't be confirmed anymore"""),
|
||||
}
|
||||
_defaults = {
|
||||
'type': 'in',
|
||||
}
|
||||
|
||||
class stock_picking_out(osv.osv):
|
||||
_name = "stock.picking.out"
|
||||
_inherit = "stock.picking"
|
||||
_table = "stock_picking"
|
||||
_description = "Delivery Orders"
|
||||
|
||||
# def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
|
||||
# return self.pool.get('stock.picking').search(cr, user, args, offset, limit, order, context, count)
|
||||
#
|
||||
# def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'):
|
||||
# return self.pool.get('stock.picking').read(cr, uid, ids, fields=fields, context=context, load=load)
|
||||
|
||||
def check_access_rights(self, cr, uid, operation, raise_exception=True):
|
||||
#override in order to redirect the check of acces rights on the stock.picking object
|
||||
return self.pool.get('stock.picking').check_access_rights(cr, uid, operation, raise_exception=raise_exception)
|
||||
|
||||
def check_access_rule(self, cr, uid, ids, operation, context=None):
|
||||
#override in order to redirect the check of acces rules on the stock.picking object
|
||||
return self.pool.get('stock.picking').check_access_rule(cr, uid, ids, operation, context=context)
|
||||
|
||||
_columns = {
|
||||
'backorder_id': fields.many2one('stock.picking.out', 'Back Order of', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
|
||||
'state': fields.selection(
|
||||
[('draft', 'Draft'),
|
||||
('auto', 'Waiting Another Operation'),
|
||||
('confirmed', 'Waiting Availability'),
|
||||
('assigned', 'Ready to Deliver'),
|
||||
('done', 'Delivered'),
|
||||
('cancel', 'Cancelled')],
|
||||
'Status', readonly=True, select=True,
|
||||
help="""* Draft: not confirmed yet and will not be scheduled until confirmed\n
|
||||
* Waiting Another Operation: waiting for another move to proceed before it becomes automatically available (e.g. in Make-To-Order flows)\n
|
||||
* Waiting Availability: still waiting for the availability of products\n
|
||||
* Ready to Deliver: products reserved, simply waiting for confirmation.\n
|
||||
* Delivered: has been processed, can't be modified or cancelled anymore\n
|
||||
* Cancelled: has been cancelled, can't be confirmed anymore"""),
|
||||
}
|
||||
_defaults = {
|
||||
'type': 'out',
|
||||
}
|
||||
|
||||
|
||||
# -------------------------
|
||||
# Packaging related stuff
|
||||
# -------------------------
|
||||
|
@ -2410,7 +2311,8 @@ class stock_picking_type(osv.osv):
|
|||
_columns = {
|
||||
'name': fields.char('name', size=30),
|
||||
'pack': fields.boolean('Pack', 'This picking type needs packing interface'),
|
||||
'print_delivery': fields.boolean('Print delivery'),
|
||||
'delivery': fields.boolean('Print delivery'),
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -98,27 +98,11 @@ watch your stock valuation, and track production lots upstream and downstream (b
|
|||
<field name="location_id" ref="stock_location_company"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Procurement rules
|
||||
-->
|
||||
|
||||
<record id="procurement_rule_customer0" model="procurement.rule">
|
||||
<field name="name">Output > Customer</field>
|
||||
<field name="action">move</field>
|
||||
<field name="location_id" ref="stock_location_customers"/>
|
||||
<field name="location_src_id" ref="stock_location_output"/>
|
||||
</record>
|
||||
|
||||
<record id="procurement_rule_customer1" model="procurement.rule">
|
||||
<field name="name">Stock > Output</field>
|
||||
<field name="action">move</field>
|
||||
<field name="location_id" ref="stock_location_output"/>
|
||||
<field name="location_src_id" ref="stock_location_stock"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Picking types
|
||||
-->
|
||||
|
||||
<record id="picking_type_in" model="stock.picking.type">
|
||||
<field name="name">in</field>
|
||||
</record>
|
||||
|
@ -128,6 +112,24 @@ watch your stock valuation, and track production lots upstream and downstream (b
|
|||
<record id="picking_type_internal" model="stock.picking.type">
|
||||
<field name="name">internal</field>
|
||||
</record>
|
||||
<record id="picking_type_inventory" model="stock.picking.type">
|
||||
<field name="name">inventory</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Procurement rules
|
||||
-->
|
||||
|
||||
<record id="procurement_rule_customer0" model="procurement.rule">
|
||||
<field name="name">Stock > Customer</field>
|
||||
<field name="action">move</field>
|
||||
<field name="location_id" ref="stock_location_customers"/>
|
||||
<field name="location_src_id" ref="stock_location_stock"/>
|
||||
<field name="picking_type_id" ref="picking_type_out"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Properties
|
||||
|
|
|
@ -66,11 +66,11 @@
|
|||
location_id: location_refrigerator
|
||||
-
|
||||
!record {model: stock.picking, id: outgoing_shipment}:
|
||||
type: out
|
||||
location_dest_id: location_delivery_counter
|
||||
-
|
||||
!record {model: stock.move, id: outgoing_shipment_icecream}:
|
||||
picking_id: outgoing_shipment
|
||||
picking_type_id: picking_type_out
|
||||
product_id: product_icecream
|
||||
product_uom: product.product_uom_kgm
|
||||
product_uom_qty: 130.0
|
||||
|
@ -78,12 +78,12 @@
|
|||
location_dest_id: location_delivery_counter
|
||||
-
|
||||
!record {model: stock.picking, id: incomming_shipment}:
|
||||
type: in
|
||||
partner_id: base.res_partner_address_9
|
||||
location_dest_id: location_refrigerator
|
||||
-
|
||||
!record {model: stock.move, id: incomming_shipment_icecream}:
|
||||
picking_id: incomming_shipment
|
||||
picking_type_id: picking_type_in
|
||||
product_id: product_icecream
|
||||
product_uom: product.product_uom_kgm
|
||||
product_uom_qty: 50.0
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
<report auto="False" id="report_product_history" model="product.product" name="stock.product.history" string="Stock Level Forecast"/>
|
||||
<report id="report_picking_list" model="stock.picking" name="stock.picking.list.internal" string="Picking Slip" rml="stock/report/picking_internal.rml"/>
|
||||
<report id="report_quant_package_barcode" model="stock.quant.package" name="stock.quant.package.barcode" string="Picking BarCode" rml="stock/report/picking_barcode.rml"/>
|
||||
<report id="report_picking_list_in" model="stock.picking.in" name="stock.picking.list" string="Receipt Slip" rml="stock/report/picking.rml"/>
|
||||
<report id="report_picking_list_out" model="stock.picking.out" name="stock.picking.list" string="Delivery Slip" rml="stock/report/picking.rml"/>
|
||||
<report id="report_picking_list_in" model="stock.pickin" name="stock.picking.list" string="Receipt Slip" rml="stock/report/picking.rml"/>
|
||||
<report id="report_picking_list_out" model="stock.picking" name="stock.picking.list" string="Delivery Slip" rml="stock/report/picking.rml"/>
|
||||
<report id="report_move_labels" model="stock.move" name="stock.move.label" string="Item Labels" xml="stock/report/lot_move_label.xml" xsl="stock/report/lot_move_label.xsl"/>
|
||||
<report auto="False" id="report_location_overview" model="stock.location" name="lot.stock.overview" string="Location Inventory Overview" rml="stock/report/lot_overview.rml"/>
|
||||
<report id="report_location_overview_all" model="stock.location" name="lot.stock.overview_all" string="Location Content" rml="stock/report/lot_overview_all.rml"/>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
Sequences for pickings
|
||||
-->
|
||||
|
||||
<record id="seq_picking_in" model="ir.sequence">
|
||||
<!--<record id="seq_picking_in" model="ir.sequence">
|
||||
<field name="name">Picking IN</field>
|
||||
<field name="code">stock.picking.in</field>
|
||||
<field name="prefix">IN/</field>
|
||||
|
@ -38,7 +38,7 @@
|
|||
<field name="prefix">OUT/</field>
|
||||
<field name="padding">5</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
</record>-->
|
||||
|
||||
<record id="seq_picking_internal" model="ir.sequence">
|
||||
<field name="name">Picking INT</field>
|
||||
|
|
|
@ -554,7 +554,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id">
|
||||
<field name="origin"/>
|
||||
<field name="type"/>
|
||||
<field name="picking_type_id"/>
|
||||
<field name="partner_id"/>
|
||||
</calendar>
|
||||
</field>
|
||||
|
@ -629,7 +629,7 @@
|
|||
<group>
|
||||
<group>
|
||||
<field name="move_type"/>
|
||||
<field name="type" invisible="1"/>
|
||||
<field name="picking_type_id"/>
|
||||
<field name="auto_picking" groups="base.group_user"/>
|
||||
</group>
|
||||
<group>
|
||||
|
@ -671,13 +671,13 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree6" model="ir.actions.act_window">
|
||||
<record id="action_picking_tree" model="ir.actions.act_window">
|
||||
<field name="name">Internal Moves</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain">[('type','=','internal')]</field>
|
||||
<field name="domain"></field>
|
||||
<field name="context">{'contact_display': 'partner_address', 'search_default_available': 1}</field>
|
||||
<field name="search_view_id" ref="view_picking_internal_search"/>
|
||||
<field name="help" type="html">
|
||||
|
@ -691,270 +691,22 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window.view" id="action_picking_tree6_tree_view">
|
||||
<record model="ir.actions.act_window.view" id="action_picking_tree_tree_view">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="vpicktree"/>
|
||||
<field name="act_window_id" ref="action_picking_tree6"/>
|
||||
<field name="act_window_id" ref="action_picking_tree"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_picking_tree6_form_view">
|
||||
<record model="ir.actions.act_window.view" id="action_picking_tree_form_view">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_picking_form"/>
|
||||
<field name="act_window_id" ref="action_picking_tree6"/>
|
||||
</record>
|
||||
|
||||
<!-- Sending Products -->
|
||||
<record model="ir.ui.view" id="stock_picking_out_calendar">
|
||||
<field name="name">stock.picking.out.calendar</field>
|
||||
<field name="model">stock.picking.out</field>
|
||||
<field name="priority" eval="2"/>
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id">
|
||||
<field name="origin"/>
|
||||
<field name="type"/>
|
||||
<field name="partner_id"/>
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_picking_out_tree" model="ir.ui.view">
|
||||
<field name="name">stock.picking.out.tree</field>
|
||||
<field name="model">stock.picking.out</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state == 'draft';grey:state == 'cancel';red:state not in ('cancel', 'done') and min_date < current_date" string="Delivery Orders">
|
||||
<field name="name"/>
|
||||
<field name="partner_id" string="Customer"/>
|
||||
<field name="origin"/>
|
||||
<field name="min_date"/>
|
||||
<field name="date"/>
|
||||
<field name="backorder_id"/>
|
||||
<field name="stock_journal_id"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_picking_out_form" model="ir.ui.view">
|
||||
<field name="name">stock.picking.out.form</field>
|
||||
<field name="model">stock.picking.out</field>
|
||||
<field name="inherit_id" ref="view_picking_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="date_done" position="attributes" version="7.0">
|
||||
<attribute name="string">Date of Delivery</attribute>
|
||||
</field>
|
||||
<xpath expr="/form/header//button[@name='%(act_stock_return_picking)d']" position="replace">
|
||||
<button name="%(report_picking_list_out)d" string="Print Delivery Slip" type="action" states="done" class="oe_highlight"/>
|
||||
<button name="%(act_stock_return_picking)d" string="Return Products" states="done" type="action"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/header//button[@name='draft_validate']" position="replace">
|
||||
<button name="draft_validate" states="draft" string="Confirm & Deliver" type="object" class="oe_highlight"/>
|
||||
<button name="action_assign" states="confirmed" string="Check Availability" type="object" class="oe_highlight"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/header//button[@name='do_partial']" position="replace">
|
||||
<button name="do_partial" states="assigned" string="Deliver" type="object" class="oe_highlight"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/header//field[@name='state']" position="replace">
|
||||
<field name="state" nolabel="1" readonly="1" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"auto":"blue", "confirmed":"blue"}'/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='move_lines']" position="replace">
|
||||
<field name="move_lines" context="{'address_out_id': partner_id, 'picking_type': 'out', 'form_view_ref':'view_move_picking_form', 'tree_view_ref':'view_move_picking_tree'}"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/sheet" position="after">
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_picking_out_search" model="ir.ui.view">
|
||||
<field name="name">stock.picking.out.search</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Picking list">
|
||||
<field name="name" string="Picking List" filter_domain="['|',('name','ilike', self),('origin','ilike',self)]"/>
|
||||
<filter icon="terp-check" name="available" string="Ready" domain="[('state','=','assigned')]" help="Assigned Delivery Orders"/>
|
||||
<filter icon="terp-camera_test" name="confirmed" string="Waiting" domain="[('state','=','confirmed')]" help="Confirmed Delivery Orders"/>
|
||||
<filter icon="terp-dialog-close" name="done" string="Done" domain="[('state','=','done')]" help="Delivery orders already processed"/>
|
||||
<separator/>
|
||||
<filter icon="terp-accessories-archiver-minus" string="Back Orders" domain="[('backorder_id', '!=', False)]" help="Is a Back Order"/>
|
||||
<separator/>
|
||||
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="stock_journal_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
|
||||
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'min_date'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'stock_journal_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree" model="ir.actions.act_window">
|
||||
<field name="name">Delivery Orders</field>
|
||||
<field name="res_model">stock.picking.out</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain">[('type','=','out')]</field>
|
||||
<field name="context">{'default_type': 'out', 'contact_display': 'partner_address'}</field>
|
||||
<field name="search_view_id" ref="view_picking_out_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a delivery order.
|
||||
</p><p>
|
||||
This is the list of all delivery orders that have to be
|
||||
prepared, according to your different sales orders and your
|
||||
logistics rules.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_picking_tree_out_view1_waiting" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_picking_out_tree"/>
|
||||
<field name="act_window_id" ref="action_picking_tree"/>
|
||||
</record>
|
||||
<record id="action_picking_tree_out_view2_waiting" model="ir.actions.act_window.view">
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_picking_out_form"/>
|
||||
<field name="act_window_id" ref="action_picking_tree"/>
|
||||
</record>
|
||||
<record id="action_picking_tree_out_view2_waiting_cal" model="ir.actions.act_window.view">
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="view_mode">calendar</field>
|
||||
<field name="view_id" ref="stock_picking_out_calendar"/>
|
||||
<field name="act_window_id" ref="action_picking_tree"/>
|
||||
</record>
|
||||
<menuitem action="action_picking_tree" id="menu_action_picking_tree" parent="menu_stock_warehouse_mgmt" sequence="3"/>
|
||||
|
||||
<!-- Incomming Shipments -->
|
||||
<record model="ir.ui.view" id="stock_picking_in_calendar">
|
||||
<field name="name">stock.picking.in.calendar</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="priority" eval="2"/>
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id">
|
||||
<field name="origin"/>
|
||||
<field name="type"/>
|
||||
<field name="partner_id"/>
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_picking_in_tree" model="ir.ui.view">
|
||||
<field name="name">stock.picking.in.tree</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="blue:state == 'draft';grey:state == 'done';red:state not in ('cancel', 'done') and date < current_date" string="Picking list">
|
||||
<field name="name"/>
|
||||
<field name="partner_id" string="Supplier"/>
|
||||
<field name="backorder_id"/>
|
||||
<field name="origin"/>
|
||||
<field name="date"/>
|
||||
<field name="min_date"/>
|
||||
<field name="stock_journal_id" widget="selection"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_picking_in_form" model="ir.ui.view">
|
||||
<field name="name">stock.picking.in.form</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="inherit_id" ref="view_picking_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="date_done" position="attributes" version="7.0">
|
||||
<attribute name="string">Date of Reception</attribute>
|
||||
</field>
|
||||
<xpath expr="/form/header//button[@name='%(act_stock_return_picking)d']" position="replace">
|
||||
<button name="%(act_stock_return_picking)d" string="Return Products" states="done" type="action"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='draft_validate']" position="replace">
|
||||
<button name="draft_validate" states="draft" string="Confirm & Receive" type="object" class="oe_highlight"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='do_partial']" position="replace">
|
||||
<button name="do_partial" states="assigned" string="Receive" type="object" class="oe_highlight"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='move_lines']" position="replace">
|
||||
<field name="move_lines" context="{'address_in_id': partner_id, 'picking_type': 'in', 'form_view_ref':'view_move_picking_form', 'tree_view_ref':'view_move_picking_tree'}"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/sheet" position="after">
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_picking_in_search" model="ir.ui.view">
|
||||
<field name="name">stock.picking.in.search</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Incoming Shipments">
|
||||
<field name="name" string="Incoming Shipments" filter_domain="['|',('name','ilike',self),('origin','ilike',self)]"/>
|
||||
<filter icon="terp-check" name="available" string="Ready to Process" domain="[('state','=','assigned')]" help="Incoming Shipments Available"/>
|
||||
<filter icon="terp-dialog-close" name="done" string="Done" domain="[('state','=','done')]" help="Incoming Shipments already processed"/>
|
||||
<separator/>
|
||||
<filter icon="terp-accessories-archiver-minus" string="Back Orders" domain="[('backorder_id', '!=', False)]" help="Is a Back Order"/>
|
||||
<separator/>
|
||||
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
|
||||
<field name="stock_journal_id"/>
|
||||
<field name="product_id"/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter icon="terp-stock_effects-object-colorize" name="state" string="Status" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
|
||||
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'min_date'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'stock_journal_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_picking_tree4" model="ir.actions.act_window">
|
||||
<field name="name">Incoming Shipments</field>
|
||||
<field name="res_model">stock.picking.in</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain">[('type','=','in')]</field>
|
||||
<field name="context">{'contact_display': 'partner_address', 'default_type': 'in'}</field>
|
||||
<field name="search_view_id" ref="view_picking_in_search"/>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create an incoming shipment.
|
||||
</p><p>
|
||||
The Incoming Shipments is the list of all orders you will
|
||||
receive from your suppliers. An incoming shipment contains a
|
||||
list of products to be received according to the original
|
||||
purchase order.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_invoice_tree5_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_picking_in_tree"/>
|
||||
<field name="act_window_id" ref="action_picking_tree4"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree5_view2" model="ir.actions.act_window.view">
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_picking_in_form"/>
|
||||
<field name="act_window_id" ref="action_picking_tree4"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree5_view2_cal" model="ir.actions.act_window.view">
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="view_mode">calendar</field>
|
||||
<field name="view_id" ref="stock_picking_in_calendar"/>
|
||||
<field name="act_window_id" ref="action_picking_tree4"/>
|
||||
</record>
|
||||
<menuitem action="action_picking_tree4" id="menu_action_picking_tree4" parent="menu_stock_warehouse_mgmt" sequence="1"/>
|
||||
<menuitem action="action_picking_tree" id="menu_action_picking_tree" parent="menu_stock_warehouse_mgmt" sequence="0"/>
|
||||
|
||||
<menuitem action="action_picking_tree6" id="menu_action_picking_tree6" parent="menu_stock_warehouse_mgmt" sequence="2" groups="stock.group_locations"/>
|
||||
|
||||
<record id="view_move_tree" model="ir.ui.view">
|
||||
<field name="name">stock.move.tree</field>
|
||||
|
@ -965,7 +717,7 @@
|
|||
<field name="name"/>
|
||||
<field name="picking_id" string="Reference"/>
|
||||
<field name="origin"/>
|
||||
<field name="type" on_change="onchange_move_type(type)"/>
|
||||
<field name="picking_type_id" on_change="onchange_move_type(picking_type_id)"/>
|
||||
<field name="create_date" invisible="1" groups="base.group_no_one"/>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id,location_id,location_dest_id, False)"/>
|
||||
<field name="product_uom_qty" on_change="onchange_quantity(product_id, product_uom_qty, product_uom, product_uos)"/>
|
||||
|
@ -1053,8 +805,8 @@
|
|||
</group>
|
||||
<group name="origin_grp" string="Origin">
|
||||
<field name="origin"/>
|
||||
<field name="picking_id" domain="[('type','=',type)]"/>
|
||||
<field name="type" on_change="onchange_move_type(type)"/>
|
||||
<field name="picking_id" domain="[('picking_type_id','=',picking_type_id)]"/>
|
||||
<field name="picking_type_id" on_change="onchange_move_type(picking_type_id)"/>
|
||||
<field name="location_id" groups="stock.group_locations"/>
|
||||
<field name="create_date" groups="base.group_no_one"/>
|
||||
</group>
|
||||
|
@ -1087,7 +839,7 @@
|
|||
<group>
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="product_id" on_change="onchange_product_id(product_id,location_id,location_dest_id, parent.partner_id)"/>
|
||||
<field name="type" invisible="1"/>
|
||||
<field name="picking_type_id" invisible="1"/>
|
||||
<field name="procure_method"/>
|
||||
<label for="product_uom_qty"/>
|
||||
<div>
|
||||
|
@ -1251,9 +1003,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_id.usage', 'in', ['customer','supplier']),'&',('picking_id','!=',False),('picking_id.type','=','in')]</field>
|
||||
<field name="domain">['|','&',('picking_id','=',False),('location_id.usage', 'in', ['customer','supplier']),'&',('picking_id','!=',False)]</field>
|
||||
<field name="view_id" ref="view_move_tree_reception_picking"/>
|
||||
<field name="context">{'product_receive': True, 'search_default_future': True, 'picking_type': 'in'}</field>
|
||||
<field name="context">{'product_receive': True, 'search_default_future': True}</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to register a product reception.
|
||||
|
@ -1337,33 +1089,8 @@
|
|||
<field name="name">Open Products</field>
|
||||
<field eval="'ir.actions.act_window,%d'%action_view_stock_location_product" name="value"/>
|
||||
</record>
|
||||
<record id="action_picking_tree_out" model="ir.actions.act_window">
|
||||
<field name="name">Customers Packings</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain">[('type','=','out')]</field>
|
||||
<field name="context">{'default_type': 'out', 'contact_display': 'partner',"search_default_available":1}</field>
|
||||
<field name="search_view_id" ref="view_picking_in_search"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree5_out" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="view_picking_in_tree"/>
|
||||
<field name="act_window_id" ref="action_picking_tree_out"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree5_view2_out" model="ir.actions.act_window.view">
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="view_picking_in_form"/>
|
||||
<field name="act_window_id" ref="action_picking_tree_out"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree5_viewout_cal" model="ir.actions.act_window.view">
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="view_mode">calendar</field>
|
||||
<field name="act_window_id" ref="action_picking_tree_out"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<record id="action_out_picking_move" model="ir.actions.act_window">
|
||||
<field name="name">Deliver Products</field>
|
||||
|
@ -1586,6 +1313,7 @@
|
|||
<field name="location_src_id"/>
|
||||
<field name="location_id"/>
|
||||
<field name="action"/>
|
||||
<field name="picking_type_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -210,18 +210,12 @@ class stock_return_picking(osv.osv_memory):
|
|||
pick_obj.write(cr, uid, [pick.id], {'invoice_state':'none'}, context=context)
|
||||
pick_obj.signal_button_confirm(cr, uid, [new_picking])
|
||||
pick_obj.force_assign(cr, uid, [new_picking], context)
|
||||
# Update view id in context, lp:702939
|
||||
model_list = {
|
||||
'out': 'stock.picking.out',
|
||||
'in': 'stock.picking.in',
|
||||
'internal': 'stock.picking',
|
||||
}
|
||||
return {
|
||||
'domain': "[('id', 'in', ["+str(new_picking)+"])]",
|
||||
'name': _('Returned Picking'),
|
||||
'view_type':'form',
|
||||
'view_mode':'tree,form',
|
||||
'res_model': model_list.get(new_type, 'stock.picking'),
|
||||
'res_model': 'stock.picking',
|
||||
'type':'ir.actions.act_window',
|
||||
'context':context,
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
id="act_stock_return_picking"/>
|
||||
<act_window name="Return Shipment"
|
||||
res_model="stock.return.picking"
|
||||
src_model="stock.picking.in"
|
||||
src_model="stock.picking"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
|
@ -19,7 +19,7 @@
|
|||
id="act_stock_return_picking_in"/>
|
||||
<act_window name="Return Shipment"
|
||||
res_model="stock.return.picking"
|
||||
src_model="stock.picking.out"
|
||||
src_model="stock.picking"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
|
|
|
@ -53,10 +53,10 @@
|
|||
</record>-->
|
||||
|
||||
|
||||
<record id="view_picking_in_search_inherit" model="ir.ui.view">
|
||||
<record id="view_picking_internal_search_inherit" model="ir.ui.view">
|
||||
<field name="name">stock.picking.in.search.inherit</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_search"/>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_internal_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='partner_id']" position="before">
|
||||
<filter string="To Invoice" name="to_invoice" icon="terp-dolar" domain="[('invoice_state', '=', '2binvoiced')]"/>
|
||||
|
@ -66,7 +66,7 @@
|
|||
<record id="view_picking_out_search_inherit" model="ir.ui.view">
|
||||
<field name="name">stock.picking.out.search.inherit</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_search"/>
|
||||
<field name="inherit_id" ref="stock.view_picking_internal_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='partner_id']" position="before">
|
||||
<filter icon="terp-dolar" name="to_invoice" string="To Invoice" domain="[('invoice_state','=','2binvoiced')]" help="Delivery orders to invoice"/>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
<act_window name="Create Invoice"
|
||||
res_model="stock.invoice.onshipping"
|
||||
src_model="stock.picking.out"
|
||||
src_model="stock.picking"
|
||||
key2="client_action_multi"
|
||||
multi="True"
|
||||
view_mode="form"
|
||||
|
@ -33,7 +33,7 @@
|
|||
|
||||
<act_window name="Create Draft Invoices"
|
||||
res_model="stock.invoice.onshipping"
|
||||
src_model="stock.picking.in"
|
||||
src_model="stock.picking"
|
||||
key2="client_action_multi"
|
||||
multi="True"
|
||||
view_mode="form"
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- Picking type dropship-->
|
||||
<record id="picking_type_dropship" model="stock.picking.type">
|
||||
<field name="name">dropship</field>
|
||||
</record>
|
||||
<!-- Drop Shipping-->
|
||||
<record id="route_drop_shipping" model='stock.location.route'>
|
||||
<field name="name">Drop Shipping</field>
|
||||
|
@ -15,6 +19,7 @@
|
|||
<field name="location_src_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="procure_method">make_to_stock</field>
|
||||
<field name="route_id" ref="route_drop_shipping"/>
|
||||
<field name="picking_type_id" ref="picking_type_dropship"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
@ -25,6 +30,7 @@
|
|||
<field name="location_id" ref="stock.stock_location_output"/>
|
||||
<field name="location_src_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="route_id" ref="stock_location.route_warehouse0_crossdock"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_in"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -63,7 +63,8 @@ class stock_location_path(osv.osv):
|
|||
("2binvoiced", "To Be Invoiced"),
|
||||
("none", "Not Applicable")], "Invoice Status",
|
||||
required=True,),
|
||||
'picking_type': fields.selection([('out','Sending Goods'),('in','Getting Goods'),('internal','Internal')], 'Shipping Type', required=True, select=True, help="Depending on the company, choose whatever you want to receive or send products"),
|
||||
# 'picking_type': fields.selection([('out','Sending Goods'),('in','Getting Goods'),('internal','Internal')], 'Shipping Type', required=True, select=True, help="Depending on the company, choose whatever you want to receive or send products"),
|
||||
'picking_type_id': fields.many2one('stock.picking.type', 'Picking Type', help="This is the picking type associated with the different pickings"),
|
||||
'auto': fields.selection(
|
||||
[('auto','Automatic Move'), ('manual','Manual Operation'),('transparent','Automatic No Step Added')],
|
||||
'Automatic Move',
|
||||
|
@ -78,7 +79,6 @@ class stock_location_path(osv.osv):
|
|||
'auto': 'auto',
|
||||
'delay': 1,
|
||||
'invoice_state': 'none',
|
||||
'picking_type': 'internal',
|
||||
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'procurement.order', context=c)
|
||||
}
|
||||
def _apply(self, cr, uid, rule, move, context=None):
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
<field name="location_src_id" ref="stock.stock_location_stock"/>
|
||||
<field name="procure_method">make_to_stock</field>
|
||||
<field name="route_id" ref="route_warehouse0_mts"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
</record>
|
||||
|
||||
<record id="procurement_rule_customer1_mts" model="procurement.rule">
|
||||
|
@ -37,6 +38,7 @@
|
|||
<field name="location_src_id" ref="stock.stock_location_output"/>
|
||||
<field name="procure_method">make_to_order</field>
|
||||
<field name="route_id" ref="route_warehouse0_mts"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_out"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
@ -52,6 +54,7 @@
|
|||
<field name="location_src_id" ref="stock.stock_location_stock"/>
|
||||
<field name="procure_method">make_to_order</field>
|
||||
<field name="route_id" ref="route_warehouse0_mto"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
</record>
|
||||
|
||||
<record id="route_warehouse0_crossdock" model='stock.location.route'>
|
||||
|
@ -66,6 +69,7 @@
|
|||
<field name="location_src_id" ref="stock.stock_location_output"/>
|
||||
<field name="procure_method">make_to_order</field>
|
||||
<field name="route_id" ref="route_warehouse0_crossdock"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_out"/>
|
||||
</record>
|
||||
|
||||
<!--TODO: pack zone must be in data of stock_location, not demo -->
|
||||
|
@ -83,6 +87,7 @@
|
|||
<field name="location_src_id" ref="stock.stock_location_stock"/>
|
||||
<field name="procure_method">make_to_stock</field>
|
||||
<field name="route_id" ref="route_warehouse0_pack"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
</record>
|
||||
|
||||
<record id="procurement_rule_customer1_pack" model="procurement.rule">
|
||||
|
@ -92,6 +97,7 @@
|
|||
<field name="location_src_id" ref="stock.stock_location_output"/>
|
||||
<field name="procure_method">make_to_order</field>
|
||||
<field name="route_id" ref="route_warehouse0_pack"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_out"/>
|
||||
</record>
|
||||
|
||||
<record id="procurement_rule_customer2_pack" model="procurement.rule">
|
||||
|
@ -101,9 +107,8 @@
|
|||
<field name="location_src_id" ref="location_pack_zone"/>
|
||||
<field name="procure_method">make_to_order</field>
|
||||
<field name="route_id" ref="route_warehouse0_pack"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
|
||||
<record id="procurement_rule_customer0_mto_pack" model="procurement.rule">
|
||||
|
@ -113,6 +118,7 @@
|
|||
<field name="location_src_id" ref="stock.stock_location_stock"/>
|
||||
<field name="procure_method">make_to_order</field>
|
||||
<field name="route_id" ref="route_warehouse0_mto"/>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
<field eval="0" name="scrap_location"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="usage">internal</field>
|
||||
<field name="chained_location_type">none</field>
|
||||
<field name="name">Quality Control</field>
|
||||
</record>
|
||||
<record id="stock_location_path_4" model="stock.location.path">
|
||||
|
@ -24,7 +23,7 @@
|
|||
<field name="name">Receptions to Quality Control</field>
|
||||
<field name="location_dest_id" ref="stock_location_qualitytest0"/>
|
||||
<field name="location_from_id" ref="stock.stock_location_stock"/>
|
||||
<field name="picking_type">in</field>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
</record>
|
||||
<record id="stock_location_path_5" model="stock.location.path">
|
||||
<field name="location_from_id" ref="stock_location_qualitytest0"/>
|
||||
|
@ -34,7 +33,7 @@
|
|||
<field name="name">Store in Shelf</field>
|
||||
<field eval="5" name="delay"/>
|
||||
<field name="location_dest_id" ref="stock.stock_location_14"/>
|
||||
<field name="picking_type">internal</field>
|
||||
<field name="picking_type_id" ref="stock.picking_type_internal"/>
|
||||
</record>
|
||||
|
||||
<record id="product_pulled_flow_l0" model="procurement.rule">
|
||||
|
@ -47,7 +46,7 @@
|
|||
<field name="type_proc">move</field>
|
||||
<field eval="0" name="cancel_cascade"/>
|
||||
<field name="procure_method">make_to_order</field>
|
||||
<field name="picking_type">in</field>
|
||||
<field name="picking_type_id" ref="stock.picking_type_in"/>
|
||||
<field name="name">Receive from Warehouse</field>
|
||||
<field name="action">move</field>
|
||||
</record>
|
||||
|
@ -61,7 +60,7 @@
|
|||
<field name="company_id" ref="base.main_company"/>
|
||||
<field eval="0" name="cancel_cascade"/>
|
||||
<field name="procure_method">make_to_stock</field>
|
||||
<field name="picking_type">out</field>
|
||||
<field name="picking_type_id" ref="stock.picking_type_out"/>
|
||||
<field name="name">Deliver Shop</field>
|
||||
<field name="action">move</field>
|
||||
</record>
|
||||
|
|
|
@ -36,4 +36,4 @@
|
|||
product_id: product.product_product_10
|
||||
location_from_id: stock.stock_location_output
|
||||
location_dest_id: location_pack_zone
|
||||
picking_type: internal
|
||||
picking_type_id: stock.picking_type_internal
|
||||
|
|
|
@ -75,8 +75,8 @@
|
|||
!python {model: stock.picking }: |
|
||||
self.draft_force_assign(cr, uid, [ref("stock_picking_in0")], {"lang": "en_US",
|
||||
"search_default_available": 1, "tz": False, "active_model": "ir.ui.menu",
|
||||
"contact_display": "partner_address", "active_ids": [ref("stock.menu_action_picking_tree4")],
|
||||
"active_id": ref("stock.menu_action_picking_tree4"), })
|
||||
"contact_display": "partner_address", "active_ids": [ref("stock.menu_action_picking_tree")],
|
||||
"active_id": ref("stock.menu_action_picking_tree"), })
|
||||
-
|
||||
I check that the outgoing order of the supplier is create with two move line.
|
||||
Stock/Input To Quality test and Quality test To Stock.
|
||||
|
|
Loading…
Reference in New Issue