From 0385a20150ee9a1d9a16cfb4b2b0b06b395c8500 Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Mon, 9 Sep 2013 15:37:08 +0200 Subject: [PATCH 01/10] [ADD] delivery_slip draft --- stock_picking_webkit/report.xml | 9 ++++ .../report/delivery_slip.mako | 53 +++++++++++++++++++ stock_picking_webkit/report/stock_report.py | 13 +++++ 3 files changed, 75 insertions(+) create mode 100644 stock_picking_webkit/report/delivery_slip.mako diff --git a/stock_picking_webkit/report.xml b/stock_picking_webkit/report.xml index 805014b..b6e7d7f 100644 --- a/stock_picking_webkit/report.xml +++ b/stock_picking_webkit/report.xml @@ -20,6 +20,15 @@ report_type="webkit" header="False" webkit_header="base_headers_webkit.base_minimum_reports_portrait_header" /> + diff --git a/stock_picking_webkit/report/delivery_slip.mako b/stock_picking_webkit/report/delivery_slip.mako new file mode 100644 index 0000000..1dd6925 --- /dev/null +++ b/stock_picking_webkit/report/delivery_slip.mako @@ -0,0 +1,53 @@ + + + + + + + <%page expression_filter="entity"/> + <% + def carriage_returns(text): + return text.replace('\n', '
') + %> + %for picking in objects: + <% setLang(picking.partner_id.lang) %> +
+ + %if picking.partner_id.parent_id: + + + <% address_lines = picking.partner_id.contact_address.split("\n")[1:] %> + %else: + + <% address_lines = picking.partner_id.contact_address.split("\n") %> + %endif + %for part in address_lines: + %if part: + + %endif + %endfor +
${picking.partner_id.parent_id.name or ''}
${picking.partner_id.title and picking.partner_id.title.name or ''} ${picking.partner_id.name }
${picking.partner_id.title and picking.partner_id.title.name or ''} ${picking.partner_id.name }
${part}
+
+ +

${_(u'Delivery Order') } ${picking.name}

+ + + + + + + + + + + + + + +
${_("Stock Journal")}${_("Origin")}${_("Scheduled Date")}${_('Weight')}
${picking.stock_journal_id and picking.stock_journal_id.name or ''}${picking.origin or ''}${formatLang(picking.min_date, date=True)}${picking.weight}
+ + %endfor + + diff --git a/stock_picking_webkit/report/stock_report.py b/stock_picking_webkit/report/stock_report.py index af5bd81..42f9004 100644 --- a/stock_picking_webkit/report/stock_report.py +++ b/stock_picking_webkit/report/stock_report.py @@ -21,6 +21,7 @@ import operator from report import report_sxw import pooler +import time class NullMove(object): """helper class to generate empty lines in the delivery report""" @@ -114,6 +115,13 @@ class PrintPick(report_sxw.rml_parse): objects.append(PickingAgregation(agr[0], agr[1], agreg[agr])) return super(PrintPick, self).set_context(objects, data, ids, report_type=report_type) +class DeliverySlip(report_sxw.rml_parse): + def __init__(self, cr, uid, name, context): + super(DeliverySlip, self).__init__(cr, uid, name, context=context) + self.localcontext.update({ + 'time': time, + }) + report_sxw.report_sxw('report.webkit.aggregated_picking', 'stock.picking', 'addons/stock_picking_webkit/report/picking.html.mako', @@ -123,3 +131,8 @@ report_sxw.report_sxw('report.webkit.aggregated_delivery', 'stock.picking', 'addons/stock_picking_webkit/report/delivery.html.mako', parser=PrintPick) + +report_sxw.report_sxw('report.webkit.delivery_slip', + 'stock.picking', + 'addons/stock_picking_webkit/report/delivery_slip.mako', + parser=DeliverySlip) From f6fc616cc311513ea610b419fb8aa121cedf491e Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Mon, 9 Sep 2013 15:51:34 +0200 Subject: [PATCH 02/10] [add] picking lines --- .../report/delivery_slip.mako | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/stock_picking_webkit/report/delivery_slip.mako b/stock_picking_webkit/report/delivery_slip.mako index 1dd6925..64a9fd9 100644 --- a/stock_picking_webkit/report/delivery_slip.mako +++ b/stock_picking_webkit/report/delivery_slip.mako @@ -48,6 +48,31 @@ + + + + + + + + + + %for line in picking.move_lines: + + + + + + %endfor +
${_("Description")}${_("Serial Number")}${_("Quantity")}
${ line.name }${ line.prodlot_id and line.prodlot_id.name or ''}${ formatLang(line.product_qty) } ${line.product_uom.name}
+ +
+ %if picking.note : +

${picking.note | carriage_returns}

+ %endif + +

+
%endfor From 570b972e9f5373a9dd1ce660403a395cfb1c4dbb Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Mon, 9 Sep 2013 16:23:23 +0200 Subject: [PATCH 03/10] [add] contact --- stock_picking_webkit/report/delivery_slip.mako | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stock_picking_webkit/report/delivery_slip.mako b/stock_picking_webkit/report/delivery_slip.mako index 64a9fd9..3f95b72 100644 --- a/stock_picking_webkit/report/delivery_slip.mako +++ b/stock_picking_webkit/report/delivery_slip.mako @@ -35,13 +35,13 @@ - + - + From cb90dab956029183c1192f4ad7ab0e48ef12635c Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Wed, 11 Sep 2013 14:12:52 +0200 Subject: [PATCH 04/10] [ADD] invoice address --- stock_picking_webkit/report/delivery_slip.mako | 15 +++++++++++++++ stock_picking_webkit/report/stock_report.py | 9 +++++++++ 2 files changed, 24 insertions(+) diff --git a/stock_picking_webkit/report/delivery_slip.mako b/stock_picking_webkit/report/delivery_slip.mako index 3f95b72..c4a182a 100644 --- a/stock_picking_webkit/report/delivery_slip.mako +++ b/stock_picking_webkit/report/delivery_slip.mako @@ -29,6 +29,21 @@ %endif %endfor
${_("Stock Journal")}${_("Contact")} ${_("Origin")} ${_("Scheduled Date")} ${_('Weight')}
${picking.stock_journal_id and picking.stock_journal_id.name or ''}${user.name} ${picking.origin or ''} ${formatLang(picking.min_date, date=True)} ${picking.weight}
+ <% + invoice_addr = invoice_address(picking.partner_id.id) + %> + + + + %if invoice_addr.contact_address: + <% address_lines = invoice_addr.contact_address.split("\n") %> + %for part in address_lines: + %if part: + + %endif + %endfor + %endif +
${_("Invoice address:")}
${invoice_addr.title and invoice_addr.title.name or ''} ${invoice_addr.name }
${part}

${_(u'Delivery Order') } ${picking.name}

diff --git a/stock_picking_webkit/report/stock_report.py b/stock_picking_webkit/report/stock_report.py index 42f9004..6e9be84 100644 --- a/stock_picking_webkit/report/stock_report.py +++ b/stock_picking_webkit/report/stock_report.py @@ -116,10 +116,19 @@ class PrintPick(report_sxw.rml_parse): return super(PrintPick, self).set_context(objects, data, ids, report_type=report_type) class DeliverySlip(report_sxw.rml_parse): + + def _get_invoice_address(self, partner_id): + partner_obj = self.pool.get('res.partner') + partner = partner_obj.browse(self.cr, self.uid, partner_id) + invoice_address_id = partner.address_get(adr_pref=['invoice'])['invoice'] + return partner_obj.browse( + self.cr, self.uid, invoice_address_id) + def __init__(self, cr, uid, name, context): super(DeliverySlip, self).__init__(cr, uid, name, context=context) self.localcontext.update({ 'time': time, + 'invoice_address': self._get_invoice_address, }) report_sxw.report_sxw('report.webkit.aggregated_picking', From 475a6b84e8fbb8a4dd747c1c0e58356bcdc50217 Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Wed, 11 Sep 2013 14:59:50 +0200 Subject: [PATCH 05/10] [ADD] delivery method and incoterm --- stock_picking_webkit/report/delivery_slip.mako | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stock_picking_webkit/report/delivery_slip.mako b/stock_picking_webkit/report/delivery_slip.mako index c4a182a..d9e5d93 100644 --- a/stock_picking_webkit/report/delivery_slip.mako +++ b/stock_picking_webkit/report/delivery_slip.mako @@ -54,12 +54,16 @@ ${_("Origin")} ${_("Scheduled Date")} ${_('Weight')} + ${_('Delivery Method')} + ${_('Incoterm')} ${user.name} ${picking.origin or ''} ${formatLang(picking.min_date, date=True)} ${picking.weight} + ${picking.carrier_id and picking.carrier_id.name or ''} + ${picking.sale_id and picking.sale_id.incoterm and picking.sale_id.incoterm.name or ''} From fddacc0e08f63ac5e8984827e269b8973009d7f0 Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Wed, 11 Sep 2013 15:14:24 +0200 Subject: [PATCH 06/10] [imp] replace standard delivery slip --- stock_picking_webkit/report.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stock_picking_webkit/report.xml b/stock_picking_webkit/report.xml index b6e7d7f..b42c6d2 100644 --- a/stock_picking_webkit/report.xml +++ b/stock_picking_webkit/report.xml @@ -20,12 +20,12 @@ report_type="webkit" header="False" webkit_header="base_headers_webkit.base_minimum_reports_portrait_header" /> - From d1a99fbf46637cfab0024e1b4bd5e75bdac77825 Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Wed, 11 Sep 2013 15:22:36 +0200 Subject: [PATCH 07/10] [IMP] using sale order invoicing address, if exists --- stock_picking_webkit/report/delivery_slip.mako | 2 +- stock_picking_webkit/report/stock_report.py | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/stock_picking_webkit/report/delivery_slip.mako b/stock_picking_webkit/report/delivery_slip.mako index d9e5d93..9f0b950 100644 --- a/stock_picking_webkit/report/delivery_slip.mako +++ b/stock_picking_webkit/report/delivery_slip.mako @@ -30,7 +30,7 @@ %endfor <% - invoice_addr = invoice_address(picking.partner_id.id) + invoice_addr = invoice_address(picking) %> diff --git a/stock_picking_webkit/report/stock_report.py b/stock_picking_webkit/report/stock_report.py index 6e9be84..15469d0 100644 --- a/stock_picking_webkit/report/stock_report.py +++ b/stock_picking_webkit/report/stock_report.py @@ -3,6 +3,8 @@ # # Copyright (c) 2011-2013 Camptocamp SA (http://www.camptocamp.com) # @author Nicolas Bessi +# Copyright (c) 2013 Agile Business Group (http://www.agilebg.com) +# @author Lorenzo Battistini # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -117,10 +119,11 @@ class PrintPick(report_sxw.rml_parse): class DeliverySlip(report_sxw.rml_parse): - def _get_invoice_address(self, partner_id): + def _get_invoice_address(self, picking): + if picking.sale_id: + return picking.sale_id.partner_invoice_id partner_obj = self.pool.get('res.partner') - partner = partner_obj.browse(self.cr, self.uid, partner_id) - invoice_address_id = partner.address_get(adr_pref=['invoice'])['invoice'] + invoice_address_id = picking.partner_id.address_get(adr_pref=['invoice'])['invoice'] return partner_obj.browse( self.cr, self.uid, invoice_address_id) From 3a628853a7f9499b5986b2c5320f5c8ac7ba5b6b Mon Sep 17 00:00:00 2001 From: Leonardo Pistone Date: Wed, 11 Sep 2013 15:41:40 +0200 Subject: [PATCH 08/10] [imp] delivery slip: pep8 --- stock_picking_webkit/report/stock_report.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/stock_picking_webkit/report/stock_report.py b/stock_picking_webkit/report/stock_report.py index 15469d0..4561a71 100644 --- a/stock_picking_webkit/report/stock_report.py +++ b/stock_picking_webkit/report/stock_report.py @@ -117,16 +117,19 @@ class PrintPick(report_sxw.rml_parse): objects.append(PickingAgregation(agr[0], agr[1], agreg[agr])) return super(PrintPick, self).set_context(objects, data, ids, report_type=report_type) + class DeliverySlip(report_sxw.rml_parse): - + def _get_invoice_address(self, picking): if picking.sale_id: return picking.sale_id.partner_invoice_id partner_obj = self.pool.get('res.partner') - invoice_address_id = picking.partner_id.address_get(adr_pref=['invoice'])['invoice'] + invoice_address_id = picking.partner_id.address_get( + adr_pref=['invoice'] + )['invoice'] return partner_obj.browse( self.cr, self.uid, invoice_address_id) - + def __init__(self, cr, uid, name, context): super(DeliverySlip, self).__init__(cr, uid, name, context=context) self.localcontext.update({ From 488a4b8d15b3a6b52967a777a6bb69f331c536e8 Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Fri, 18 Oct 2013 15:25:17 +0200 Subject: [PATCH 09/10] [IMP] module description --- stock_picking_webkit/__openerp__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/stock_picking_webkit/__openerp__.py b/stock_picking_webkit/__openerp__.py index 70a40ec..7d94ca3 100644 --- a/stock_picking_webkit/__openerp__.py +++ b/stock_picking_webkit/__openerp__.py @@ -3,6 +3,8 @@ # # Copyright (c) 2011-2013 Camptocamp SA (http://www.camptocamp.com) # @author Nicolas Bessi +# Copyright (c) 2013 Agile Business Group (http://www.agilebg.com) +# @author Lorenzo Battistini # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -24,7 +26,11 @@ 'version': '1.0', 'category': 'Reports/Webkit', 'description': """ -Replaces the legacy rml picking Order report by a brand new webkit report. +Replaces the legacy rml picking Order report by brand new webkit reports. +Three reports are provided: + - Aggregated pickings + - Aggregated deliveries + - Delivery Slip """, 'author': 'Camptocamp', 'website': 'http://www.openerp.com', From cdb09e877ba36540da2eeca7c1e5d6d66a4e2ac3 Mon Sep 17 00:00:00 2001 From: Lorenzo Battistini Date: Fri, 18 Oct 2013 15:26:26 +0200 Subject: [PATCH 10/10] [IMP] module name --- stock_picking_webkit/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stock_picking_webkit/__openerp__.py b/stock_picking_webkit/__openerp__.py index 7d94ca3..f83aed9 100644 --- a/stock_picking_webkit/__openerp__.py +++ b/stock_picking_webkit/__openerp__.py @@ -22,7 +22,7 @@ ############################################################################## { - 'name': 'Picking report using Webkit Library', + 'name': 'Picking reports using Webkit Library', 'version': '1.0', 'category': 'Reports/Webkit', 'description': """
${_("Invoice address:")}