[IMP] stock: two different reports for picking with move lines and picking with pack operations instead of one
It is confusing to show once pack operations and once move lines without the user being aware. As sometimes the pack operations don't get updated the report would not show all the products available for example.
This commit is contained in:
@@ -88,6 +88,7 @@ Dashboard / Reports for Warehouse Management will include:
|
||||
'views/report_lot_barcode.xml',
|
||||
'views/report_location_barcode.xml',
|
||||
'views/report_stockpicking.xml',
|
||||
'views/report_stockpicking_operations.xml',
|
||||
'views/report_stockinventory.xml',
|
||||
'views/stock.xml',
|
||||
'report/report_stock_forecast.xml',
|
||||
|
||||
@@ -940,13 +940,10 @@ function openerp_picking_widgets(instance){
|
||||
},
|
||||
print_picking: function(){
|
||||
var self = this;
|
||||
return new instance.web.Model('stock.picking.type').call('read', [[self.picking_type_id], ['code'], new instance.web.CompoundContext()])
|
||||
.then(function(pick_type){
|
||||
return new instance.web.Model('stock.picking').call('do_print_picking',[[self.picking.id]])
|
||||
.then(function(action){
|
||||
return self.do_action(action);
|
||||
});
|
||||
});
|
||||
return new instance.web.Model('stock.picking').call('do_print_picking_operations',[[self.picking.id]])
|
||||
.then(function(action){
|
||||
return self.do_action(action);
|
||||
});
|
||||
},
|
||||
picking_next: function(){
|
||||
for(var i = 0; i < this.pickings.length; i++){
|
||||
|
||||
@@ -871,6 +871,10 @@ class stock_picking(osv.osv):
|
||||
context = dict(context or {}, active_ids=ids)
|
||||
return self.pool.get("report").get_action(cr, uid, ids, 'stock.report_picking', context=context)
|
||||
|
||||
def do_print_picking_operations(self, cr, uid, ids, context=None):
|
||||
'''This function prints the picking list with the pack operations and should be used in the bar code interface'''
|
||||
context = dict(context or {}, active_ids=ids)
|
||||
return self.pool.get("report").get_action(cr, uid, ids, 'stock.report_picking_operations', context=context)
|
||||
|
||||
def action_confirm(self, cr, uid, ids, context=None):
|
||||
todo = []
|
||||
|
||||
@@ -10,6 +10,14 @@
|
||||
name="stock.report_picking"
|
||||
file="stock.report_picking"
|
||||
/>
|
||||
<report
|
||||
string="Picking Operations"
|
||||
id="action_report_picking_operations"
|
||||
model="stock.picking"
|
||||
report_type="qweb-pdf"
|
||||
name="stock.report_picking_operations"
|
||||
file="stock.report_picking_operations"
|
||||
/>
|
||||
<report
|
||||
string="Inventory"
|
||||
id="action_report_inventory"
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
</table>
|
||||
<br/>
|
||||
<br/>
|
||||
<table class="table table-condensed" t-if="not o.pack_operation_ids">
|
||||
<table class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Product</strong></th>
|
||||
@@ -104,46 +104,6 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed" t-if="o.pack_operation_ids">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Product</strong></th>
|
||||
<th class="text-right"><strong>Quantity</strong></th>
|
||||
<t t-if="o.picking_type_id.code != 'incoming'"><th><strong>Source</strong></th></t>
|
||||
<th><strong>Barcode</strong></th>
|
||||
<t t-if="o.picking_type_id.code != 'outgoing'"><th><strong>Destination</strong></th></t>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr t-foreach="o.pack_operation_ids" t-as="pack_operation">
|
||||
<td><span t-field="pack_operation.product_id"/>
|
||||
<t t-if="not pack_operation.product_id and pack_operation.package_id"><span t-field="pack_operation.package_id"/></t></td>
|
||||
<td class="text-right"><span t-field="pack_operation.product_qty"/> <span t-field="pack_operation.product_uom_id" groups="product.group_uom"/></td>
|
||||
<t t-if="o.picking_type_id.code != 'incoming'"><td><span t-field="pack_operation.location_id"/>
|
||||
<span t-if="pack_operation.package_id">:</span>
|
||||
<span t-field="pack_operation.package_id"/>
|
||||
<span t-if="pack_operation.lot_id">:</span>
|
||||
<span t-field="pack_operation.lot_id"/>
|
||||
</td>
|
||||
</t>
|
||||
<td>
|
||||
<span t-if="pack_operation.lot_id">
|
||||
<img t-att-src="'/report/barcode/?type=%s&value=%s&width=%s&height=%s' % ('Code128', pack_operation.lot_id.name, 600, 100)" style="width:300px;height:50px"/>
|
||||
</span>
|
||||
<span t-if="pack_operation.product_id and not pack_operation.lot_id and pack_operation.product_id.barcode">
|
||||
<img t-att-src="'/report/barcode/?type=%s&value=%s&width=%s&height=%s' % ('Barcode', pack_operation.product_id.barcode, 600, 100)" style="width:300px;height:50px"/>
|
||||
</span>
|
||||
<span t-if="pack_operation.package_id and not pack_operation.product_id">
|
||||
<img t-att-src="'/report/barcode/?type=%s&value=%s&width=%s&height=%s' % ('Code128', pack_operation.package_id.name, 600, 100)" style="width:300px;height:50px"/>
|
||||
</span>
|
||||
</td>
|
||||
<t t-if="o.picking_type_id.code != 'outgoing'"><td><span t-field="pack_operation.location_dest_id"/>
|
||||
<span t-if="pack_operation.result_package_id">:</span>
|
||||
<span t-field="pack_operation.result_package_id"/>
|
||||
</td></t>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<template id="report_picking_operations">
|
||||
<t t-call="report.html_container">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<t t-call="report.external_layout">
|
||||
<div class="page">
|
||||
<div class="row"><div class="col-xs-4 pull-right">
|
||||
<img t-att-src="'/report/barcode/?type=%s&value=%s&width=%s&height=%s' % ('Code128', o.name, 600, 100)" style="width:300px;height:50px;"/>
|
||||
</div></div>
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<div t-if="o.picking_type_id.code=='incoming' and o.partner_id">
|
||||
<span><strong>Supplier Address:</strong></span>
|
||||
</div>
|
||||
<div t-if="o.picking_type_id.code=='internal' and o.partner_id">
|
||||
<span><strong>Warehouse Address:</strong></span>
|
||||
</div>
|
||||
<div t-if="o.picking_type_id.code=='outgoing' and o.partner_id">
|
||||
<span><strong>Customer Address:</strong></span>
|
||||
</div>
|
||||
<div t-if="o.partner_id" name="partner_header">
|
||||
<div t-field="o.partner_id"
|
||||
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
|
||||
<p t-if="o.partner_id.vat">VAT: <span t-field="o.partner_id.vat"/></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-5 col-xs-offset-1">
|
||||
<div t-if="o.move_lines and o.move_lines[0].partner_id and o.move_lines[0].partner_id.id != o.partner_id.id">
|
||||
<span><strong>Delivery Address:</strong></span>
|
||||
<div t-field="o.move_lines[0].partner_id"
|
||||
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
|
||||
</div>
|
||||
<div t-if="o.picking_type_id.code != 'internal' and (not o.move_lines or not o.move_lines[0].partner_id) and o.picking_type_id.warehouse_id.partner_id">
|
||||
<span><strong>Warehouse Address:</strong></span>
|
||||
<div t-field="o.picking_type_id.warehouse_id.partner_id"
|
||||
t-field-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": true}'/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>
|
||||
<span t-field="o.picking_type_id"/>:
|
||||
<span t-field="o.name"/>
|
||||
</h2>
|
||||
<table class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Order (Origin)</strong></th>
|
||||
<th><strong>State</strong></th>
|
||||
<th><strong>Commitment Date</strong></th>
|
||||
<th name="td_sched_date_h"><strong>Scheduled Date</strong></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<span t-field="o.origin"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="o.state"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="o.date"/>
|
||||
</td>
|
||||
<td name="td_sched_date">
|
||||
<span t-field="o.min_date"/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br/>
|
||||
<br/>
|
||||
<table class="table table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Product</strong></th>
|
||||
<th class="text-right"><strong>Quantity</strong></th>
|
||||
<t t-if="o.picking_type_id.code != 'incoming'"><th><strong>Source</strong></th></t>
|
||||
<th><strong>Barcode</strong></th>
|
||||
<t t-if="o.picking_type_id.code != 'outgoing'"><th><strong>Destination</strong></th></t>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr t-foreach="o.pack_operation_ids" t-as="pack_operation">
|
||||
<td><span t-field="pack_operation.product_id"/>
|
||||
<t t-if="not pack_operation.product_id and pack_operation.package_id"><span t-field="pack_operation.package_id"/></t></td>
|
||||
<td class="text-right"><span t-field="pack_operation.product_qty"/> <span t-field="pack_operation.product_uom_id" groups="product.group_uom"/></td>
|
||||
<t t-if="o.picking_type_id.code != 'incoming'"><td><span t-field="pack_operation.location_id"/>
|
||||
<span t-if="pack_operation.package_id">:</span>
|
||||
<span t-field="pack_operation.package_id"/>
|
||||
<span t-if="pack_operation.lot_id">:</span>
|
||||
<span t-field="pack_operation.lot_id"/>
|
||||
</td>
|
||||
</t>
|
||||
<td>
|
||||
<span t-if="pack_operation.lot_id">
|
||||
<img t-att-src="'/report/barcode/?type=%s&value=%s&width=%s&height=%s' % ('Code128', pack_operation.lot_id.name, 600, 100)" style="width:300px;height:50px"/>
|
||||
</span>
|
||||
<span t-if="pack_operation.product_id and not pack_operation.lot_id and pack_operation.product_id.barcode">
|
||||
<img t-att-src="'/report/barcode/?type=%s&value=%s&width=%s&height=%s' % ('Barcode', pack_operation.product_id.barcode, 600, 100)" style="width:300px;height:50px"/>
|
||||
</span>
|
||||
<span t-if="pack_operation.package_id and not pack_operation.product_id">
|
||||
<img t-att-src="'/report/barcode/?type=%s&value=%s&width=%s&height=%s' % ('Code128', pack_operation.package_id.name, 600, 100)" style="width:300px;height:50px"/>
|
||||
</span>
|
||||
</td>
|
||||
<t t-if="o.picking_type_id.code != 'outgoing'"><td><span t-field="pack_operation.location_dest_id"/>
|
||||
<span t-if="pack_operation.result_package_id">:</span>
|
||||
<span t-field="pack_operation.result_package_id"/>
|
||||
</td></t>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
</data>
|
||||
</openerp>
|
||||
Reference in New Issue
Block a user