diff --git a/addons/stock/report/picking_barcode.rml b/addons/stock/report/picking_barcode.rml new file mode 100644 index 00000000000..60a9fef9778 --- /dev/null +++ b/addons/stock/report/picking_barcode.rml @@ -0,0 +1,13 @@ + + + + + + [[ packaging_id.product_id.ean13 ]] + + + diff --git a/addons/stock/static/src/js/widgets.js b/addons/stock/static/src/js/widgets.js index e1c377d2ecc..1e075828acd 100644 --- a/addons/stock/static/src/js/widgets.js +++ b/addons/stock/static/src/js/widgets.js @@ -82,6 +82,7 @@ function openerp_picking_widgets(instance){ this.$('.js_pack_row').each(function(){ var pack_id = parseInt($(this).attr('pack-id')); + $('.js_pack_print', this).click(function(){ model.print_package(pack_id); }); $('.js_pack_plus', this).click(function(){ model.copy_package(pack_id); }); $('.js_pack_minus', this).click(function(){ model.delete_package(pack_id); }); $('.js_pack_select', this).click(function(){ @@ -229,7 +230,17 @@ function openerp_picking_widgets(instance){ .call('action_done_from_packing_ui',[self.picking.id]) .then(function(new_picking_id){ console.log('New picking id:',new_picking_id); - //return self.refresh_ui(new_picking_id); + return self.refresh_ui(new_picking_id); + }); + }, + print_package: function(package_id){ + var self = this; + console.log('Print Package:',package_id); + new instance.web.Model('stock.quant.package') + .call('action_print',[[package_id]]) + .then(function(action){ + console.log('Print Package Repport Action:',action); + return self.do_action(action); }); }, copy_package: function(package_id){ diff --git a/addons/stock/static/src/xml/picking.xml b/addons/stock/static/src/xml/picking.xml index c90d8a6e520..77215e20729 100644 --- a/addons/stock/static/src/xml/picking.xml +++ b/addons/stock/static/src/xml/picking.xml @@ -130,11 +130,12 @@ + - Package + Package @@ -142,8 +143,9 @@ - copy - delete + Print + Copy + Delete diff --git a/addons/stock/stock.py b/addons/stock/stock.py index c697f696670..e5de04b0664 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -3847,6 +3847,10 @@ class stock_picking_out(osv.osv): # ------------------------- # Packaging related stuff # ------------------------- + +from openerp.report import report_sxw +report_sxw.report_sxw('report.stock.quant.package.barcode', 'stock.quant.package', 'addons/stock/report/picking_barcode.rml') + class stock_package(osv.osv): """ These are the packages, it replaces the stock.tracking and are applied on quants instead of on moves @@ -3879,6 +3883,20 @@ class stock_package(osv.osv): (_check_location, 'All quant inside a package should share the same location', ['location_id']), ] + def action_print(self, cr, uid, ids, context=None): + if context is None: + context = {} + datas = { + 'ids': context.get('active_id') and [context.get('active_id')] or ids, + 'model': 'stock.quant.package', + 'form': self.read(cr, uid, ids)[0] + } + return { + 'type': 'ir.actions.report.xml', + 'report_name': 'report.stock.quant.package.barcode', + 'datas': datas + } + def action_copy(self, cr, uid, ids, context=None): quant_obj = self.pool.get('stock.quant') stock_operation_obj = self.pool.get('stock.pack.operation') diff --git a/addons/stock/stock_report.xml b/addons/stock/stock_report.xml index 792f8b0b29d..1cd72b90a83 100644 --- a/addons/stock/stock_report.xml +++ b/addons/stock/stock_report.xml @@ -3,6 +3,7 @@ + diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index b4c6b220263..b2d48db901f 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -1434,6 +1434,14 @@ + + Stock picking + stock.ui + stock + + + +