From 89bfbe1f9da8427e033cf4417f4df1156cf733c6 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Wed, 28 Jan 2015 23:20:36 +0100 Subject: [PATCH] [MIG] stock_picking_valued_report: Migrating to v8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bugfixes Don't show amounts if picking don't belongs to a sale.order Propused fixes done Cambios sugeridos No mostrar el albaran valorado si el partner está configurado para que no se valoren --- stock_valued_picking_report/README.rst | 13 + stock_valued_picking_report/__init__.py | 20 ++ stock_valued_picking_report/__openerp__.py | 53 +++ stock_valued_picking_report/i18n/es.po | 102 ++++++ .../i18n/stock_valued_picking.pot | 102 ++++++ .../models/__init__.py | 22 ++ .../models/res_partner.py | 30 ++ .../models/stock_move.py | 58 ++++ .../models/stock_picking.py | 76 +++++ .../report/shipping.rml | 302 ++++++++++++++++++ .../report/shipping.sxw | Bin 0 -> 51298 bytes .../report/shipping_convert.sh | 1 + .../report/stock_valued_report.xml | 14 + .../views/res_partner_view.xml | 18 ++ .../views/stock_picking_view.xml | 34 ++ 15 files changed, 845 insertions(+) create mode 100644 stock_valued_picking_report/README.rst create mode 100644 stock_valued_picking_report/__init__.py create mode 100644 stock_valued_picking_report/__openerp__.py create mode 100644 stock_valued_picking_report/i18n/es.po create mode 100644 stock_valued_picking_report/i18n/stock_valued_picking.pot create mode 100644 stock_valued_picking_report/models/__init__.py create mode 100644 stock_valued_picking_report/models/res_partner.py create mode 100644 stock_valued_picking_report/models/stock_move.py create mode 100644 stock_valued_picking_report/models/stock_picking.py create mode 100644 stock_valued_picking_report/report/shipping.rml create mode 100644 stock_valued_picking_report/report/shipping.sxw create mode 100755 stock_valued_picking_report/report/shipping_convert.sh create mode 100644 stock_valued_picking_report/report/stock_valued_report.xml create mode 100644 stock_valued_picking_report/views/res_partner_view.xml create mode 100644 stock_valued_picking_report/views/stock_picking_view.xml diff --git a/stock_valued_picking_report/README.rst b/stock_valued_picking_report/README.rst new file mode 100644 index 0000000..29e0f7f --- /dev/null +++ b/stock_valued_picking_report/README.rst @@ -0,0 +1,13 @@ +Valued pickings +=============== + +Add amount information to picking list report and delivery order view. +You can select at partner level if picking list report must be valued or not. + +Credits +======= + +Contributors +------------ +* Pedro M. Baeza +* Antonio Espinosa diff --git a/stock_valued_picking_report/__init__.py b/stock_valued_picking_report/__init__.py new file mode 100644 index 0000000..01ebe5c --- /dev/null +++ b/stock_valued_picking_report/__init__.py @@ -0,0 +1,20 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +# 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 +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## +from . import models diff --git a/stock_valued_picking_report/__openerp__.py b/stock_valued_picking_report/__openerp__.py new file mode 100644 index 0000000..7cd8dc8 --- /dev/null +++ b/stock_valued_picking_report/__openerp__.py @@ -0,0 +1,53 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) +# Pedro M. Baeza +# Copyright (c) 2015 Antiun Ingenieria (http://www.antiun.com) +# Antonio Espinosa +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +{ + "name": "Valued picking list", + "version": "1.0", + "author": "Serv. Tecnol. Avanzados - Pedro M. Baeza", + "website": "www.serviciosbaeza.com", + "category": "Warehouse Management", + "description": """ +Valued pickings +=============== + +Add amount information to picking list report and delivery order view. + +You can select at partner level if picking list report must be valued or not. +""", + "license": "GPL-3", + "depends": [ + "base", + "account", + "stock", + "sale", + "delivery", + ], + "data": [ + 'views/res_partner_view.xml', + 'views/stock_picking_view.xml', + 'report/stock_valued_report.xml', + ], + "installable": True +} diff --git a/stock_valued_picking_report/i18n/es.po b/stock_valued_picking_report/i18n/es.po new file mode 100644 index 0000000..dba6cd3 --- /dev/null +++ b/stock_valued_picking_report/i18n/es.po @@ -0,0 +1,102 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * stock_valued_picking +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-29 10:48+0000\n" +"PO-Revision-Date: 2014-05-29 09:18+0000\n" +"Last-Translator: Pedro Manuel Baeza \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-10-21 07:24+0000\n" +"X-Generator: Launchpad (build 17203)\n" + +#. module: stock_valued_picking +#: code:_description:0 +#: model:ir.model,name:stock_valued_picking.model_stock_picking_out +#, python-format +msgid "Delivery Orders" +msgstr "Albaranes de salida" + +#. module: stock_valued_picking +#: code:_description:0 +#: model:ir.model,name:stock_valued_picking.model_res_partner +#, python-format +msgid "Partner" +msgstr "Empresa" + +#. module: stock_valued_picking +#: code:_description:0 +#: model:ir.model,name:stock_valued_picking.model_stock_picking +#, python-format +msgid "Picking List" +msgstr "Albarán" + +#. module: stock_valued_picking +#: field:stock.move,sale_price_subtotal:0 +msgid "Price subtotal" +msgstr "Subtotal" + +#. module: stock_valued_picking +#: field:stock.picking,currency_id:0 +#: field:stock.picking.out,currency_id:0 +msgid "Sale currency" +msgstr "Moneda de la venta" + +#. module: stock_valued_picking +#: field:stock.move,sale_discount:0 +msgid "Sale discount (%)" +msgstr "Descuento de la venta (%)" + +#. module: stock_valued_picking +#: field:stock.move,sale_price_unit:0 +msgid "Sale price unit" +msgstr "Precio unitario de la venta" + +#. module: stock_valued_picking +#: code:_description:0 +#: model:ir.model,name:stock_valued_picking.model_stock_move +#, python-format +msgid "Stock Move" +msgstr "Movimiento de existencias" + +#. module: stock_valued_picking +#: field:stock.picking,amount_tax:0 +#: field:stock.picking.out,amount_tax:0 +#: report:sale.shipping:0 +msgid "Taxes" +msgstr "Impuestos" + +#. module: stock_valued_picking +#: field:stock.picking,amount_total:0 +#: field:stock.picking.out,amount_total:0 +#: report:sale.shipping:0 +msgid "Total" +msgstr "Total" + +#. module: stock_valued_picking +#: field:stock.picking,amount_untaxed:0 +#: field:stock.picking.out,amount_untaxed:0 +#: report:sale.shipping:0 +msgid "Untaxed amount" +msgstr "Base imponible" + +#. module: stock_valued_picking +#: field:res.partner,valued_picking:0 +msgid "Valued picking" +msgstr "Albarán valorado" + +#. module: stock_valued_picking +#: report:sale.shipping:0 +msgid "Unit price" +msgstr "Precio unitario" + +#. module: stock_valued_picking +#: report:sale.shipping:0 +msgid "Subtotal" +msgstr "Subtotal" diff --git a/stock_valued_picking_report/i18n/stock_valued_picking.pot b/stock_valued_picking_report/i18n/stock_valued_picking.pot new file mode 100644 index 0000000..1545f5c --- /dev/null +++ b/stock_valued_picking_report/i18n/stock_valued_picking.pot @@ -0,0 +1,102 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * stock_valued_picking +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-29 10:48+0000\n" +"PO-Revision-Date: 2014-04-29 12:49+0100\n" +"Last-Translator: Pedro Manuel Baeza \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" + +#. module: stock_valued_picking +#: code:_description:0 +#: model:ir.model,name:stock_valued_picking.model_stock_picking_out +#, python-format +msgid "Delivery Orders" +msgstr "" + +#. module: stock_valued_picking +#: code:_description:0 +#: model:ir.model,name:stock_valued_picking.model_res_partner +#, python-format +msgid "Partner" +msgstr "" + +#. module: stock_valued_picking +#: code:_description:0 +#: model:ir.model,name:stock_valued_picking.model_stock_picking +#, python-format +msgid "Picking List" +msgstr "" + +#. module: stock_valued_picking +#: field:stock.move,sale_price_subtotal:0 +msgid "Price subtotal" +msgstr "" + +#. module: stock_valued_picking +#: field:stock.picking,currency_id:0 +#: field:stock.picking.out,currency_id:0 +msgid "Sale currency" +msgstr "" + +#. module: stock_valued_picking +#: field:stock.move,sale_discount:0 +msgid "Sale discount (%)" +msgstr "" + +#. module: stock_valued_picking +#: field:stock.move,sale_price_unit:0 +msgid "Sale price unit" +msgstr "" + +#. module: stock_valued_picking +#: code:_description:0 +#: model:ir.model,name:stock_valued_picking.model_stock_move +#, python-format +msgid "Stock Move" +msgstr "" + +#. module: stock_valued_picking +#: field:stock.picking,amount_tax:0 +#: field:stock.picking.out,amount_tax:0 +#: report:sale.shipping:0 +msgid "Taxes" +msgstr "" + +#. module: stock_valued_picking +#: field:stock.picking,amount_total:0 +#: field:stock.picking.out,amount_total:0 +#: report:sale.shipping:0 +msgid "Total" +msgstr "" + +#. module: stock_valued_picking +#: field:stock.picking,amount_untaxed:0 +#: field:stock.picking.out,amount_untaxed:0 +#: report:sale.shipping:0 +msgid "Untaxed amount" +msgstr "" + +#. module: stock_valued_picking +#: field:res.partner,valued_picking:0 +msgid "Valued picking" +msgstr "" + +#. module: stock_valued_picking +#: report:sale.shipping:0 +msgid "Unit price" +msgstr "" + +#. module: stock_valued_picking +#: report:sale.shipping:0 +msgid "Subtotal" +msgstr "" + diff --git a/stock_valued_picking_report/models/__init__.py b/stock_valued_picking_report/models/__init__.py new file mode 100644 index 0000000..e7621b0 --- /dev/null +++ b/stock_valued_picking_report/models/__init__.py @@ -0,0 +1,22 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +# 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 +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## +from . import res_partner +from . import stock_move +from . import stock_picking diff --git a/stock_valued_picking_report/models/res_partner.py b/stock_valued_picking_report/models/res_partner.py new file mode 100644 index 0000000..0c78931 --- /dev/null +++ b/stock_valued_picking_report/models/res_partner.py @@ -0,0 +1,30 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) +# Pedro M. Baeza +# Copyright (c) 2015 Antiun Ingenieria (http://www.antiun.com) +# Antonio Espinosa +# +# 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 +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp import fields, models + + +class ResPartner(models.Model): + _inherit = 'res.partner' + # You can select which partners has valued pickings + valued_picking = fields.Boolean(string='Valued picking', default=True) diff --git a/stock_valued_picking_report/models/stock_move.py b/stock_valued_picking_report/models/stock_move.py new file mode 100644 index 0000000..4088968 --- /dev/null +++ b/stock_valued_picking_report/models/stock_move.py @@ -0,0 +1,58 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) +# Pedro M. Baeza +# Copyright (c) 2015 Antiun Ingenieria (http://www.antiun.com) +# Antonio Espinosa +# +# 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 +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp import fields, models, api + + +class StockMove(models.Model): + _inherit = "stock.move" + + sale_price_unit = fields.Float( + string="Sale price unit", readonly=True, + related='procurement_id.sale_line_id.price_unit') + sale_discount = fields.Float( + string="Sale discount (%)", readonly=True, + related='procurement_id.sale_line_id.discount') + sale_price_subtotal = fields.Float( + string="Price subtotal", readonly=True, + compute='_get_sale_price_subtotal') + + @api.one + @api.depends( + 'sale_price_unit', + 'sale_discount', + 'product_qty', + 'procurement_id.sale_line_id.order_id.currency_id', + ) + def _get_sale_price_subtotal(self): + subtotal = (self.sale_price_unit * self.product_qty * + (1 - (self.sale_discount or 0.0) / 100.0)) + # Only get subtotal if this stock.move belongs to a + # stock.picking created from a sale.order + if self.procurement_id and self.procurement_id.sale_line_id: + # Round by currency precision + currency = self.procurement_id.sale_line_id.order_id.currency_id + if currency: + subtotal = currency.round(subtotal) + # Write subtotal into record (cache because this field is store=False) + self.sale_price_subtotal = subtotal diff --git a/stock_valued_picking_report/models/stock_picking.py b/stock_valued_picking_report/models/stock_picking.py new file mode 100644 index 0000000..8d88085 --- /dev/null +++ b/stock_valued_picking_report/models/stock_picking.py @@ -0,0 +1,76 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (c) 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com) +# Pedro M. Baeza +# Copyright (c) 2015 Antiun Ingenieria (http://www.antiun.com) +# Antonio Espinosa +# +# 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 +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp import fields, models, api +from openerp.addons.decimal_precision import decimal_precision as dp + + +class StockPicking(models.Model): + _inherit = "stock.picking" + + valued = fields.Boolean( + string='Valued', related='partner_id.valued_picking', store=True, + readonly=True) + currency_id = fields.Many2one( + string='Sale currency', related='sale_id.currency_id', store=True, + readonly=True) + amount_untaxed = fields.Float( + string='Untaxed amount', compute='_compute_amounts', + digits=dp.get_precision('Account'), store=True, readonly=True) + amount_tax = fields.Float( + string='Taxes', compute='_compute_amounts', + digits=dp.get_precision('Account'), store=True, readonly=True) + amount_total = fields.Float( + string='Total', compute='_compute_amounts', + digits=dp.get_precision('Account'), store=True, readonly=True) + + @api.one + @api.depends( + 'move_lines.sale_price_subtotal', + 'move_lines.product_id', + 'move_lines.procurement_id.sale_line_id.tax_id', + 'move_lines.procurement_id.sale_line_id.order_id.partner_id', + ) + def _compute_amounts(self): + # Calculate untaxed amount + untaxed = 0.0 + for move in self.move_lines: + untaxed += move.sale_price_subtotal + # Calculate taxed amount + tax = 0.0 + for move in self.move_lines: + if not (move.procurement_id and + move.procurement_id.sale_line_id): + continue + sale_line = move.procurement_id.sale_line_id + for c in sale_line.tax_id.compute_all( + move.sale_price_subtotal, move.product_qty, + move.product_id, sale_line.order_id.partner_id)['taxes']: + tax += c.get('amount', 0.0) + currency = self.currency_id + if currency: + tax = currency.round(tax) + # Write calculated amounts into recorrd + self.amount_untaxed = untaxed + self.amount_tax = tax + self.amount_total = untaxed + tax diff --git a/stock_valued_picking_report/report/shipping.rml b/stock_valued_picking_report/report/shipping.rml new file mode 100644 index 0000000..0ae0875 --- /dev/null +++ b/stock_valued_picking_report/report/shipping.rml @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [[repeatIn(objects,'o')]] + + + + [[ (not(o.sale_id) and o.type== 'out') and 'Error, no sale order attached to this picking !' or removeParentNode('para') ]] + + + + Invoiced to + [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.name or '']] + [[ o.sale_id and o.sale_id.partner_invoice_id and display_address(o.sale_id.partner_invoice_id) ]] + + + [[ o.partner_id and o.partner_id and o.partner_id.name or '' ]] + [[ o.partner_id and o.partner_id and display_address(o.partner_id) ]] + + + + Delivery Order : [[ o.name ]] + + + + + + + Order Ref. + + + Order Date + + + Shipping Date + + + Carrier + + + Weight + + + + + + + [[ o.sale_id and o.sale_id.name ]] + + + [[ formatLang(o.date,date_time=True) ]] + + + [[ formatLang(o.min_date,date_time = True) ]] + + + [[ o.carrier_id and o.carrier_id.name or '' ]] + + + [[ formatLang(o.weight) ]] + + + + + + + + + + + + + [[ o.sale_id and o.sale_id.partner_id and o.sale_id.partner_id.valued_picking and ' ' or removeParentNode('tr') ]] Description + + + Unit price + + + Quantity + + + Subtotal + + + + + Description + + + [[ o.sale_id and o.sale_id.partner_id and not o.sale_id.partner_id.valued_picking and ' ' or removeParentNode('tr') ]] + + + Lot + + + Quantity + + + +
+ [[repeatIn(o.move_lines,'line')]] + + + + [[line.product_id.code ]] [[ line.product_id and line.product_id.name or '']] + + + [[ o.sale_id and o.sale_id.partner_id and o.sale_id.partner_id.valued_picking and formatLang(line.sale_price_unit, dp='Product Price', currency_obj=o.sale_id.currency_id) or removeParentNode('tr') ]] + + + [[ formatLang(line.product_qty) ]] [[ line.product_uom and line.product_uom.name ]] + + + [[ formatLang(line.sale_price_subtotal, dp='Account', currency_obj=o.sale_id.currency_id) ]] + + + + + [[line.product_id.code ]] [[ line.product_id and line.product_id.name or '']] + + + [[ o.sale_id and o.sale_id.partner_id and not o.sale_id.partner_id.valued_picking and ' ' or removeParentNode('tr') ]] + + + [[ (line.prodlot_id and (line.prodlot_id.name + (line.prodlot_id.ref and ('/' + line.prodlot_id.ref) or ''))) or ' ' ]] + + + [[ formatLang(line.product_qty) ]] [[ line.product_uom and line.product_uom.name ]] + + + +
+ + + + [[ o.sale_id and o.sale_id.partner_id and o.sale_id.partner_id.valued_picking and ' ' or removeParentNode('tr') ]] + + + Untaxed amount + + + [[ formatLang(o.amount_untaxed, dp='Account', currency_obj=o.sale_id.currency_id) ]] + + + + + [[ o.sale_id and o.sale_id.partner_id and o.sale_id.partner_id.valued_picking and ' ' or removeParentNode('tr') ]] + + + Taxes + + + [[ formatLang(o.amount_tax, dp='Account', currency_obj=o.sale_id.currency_id) ]] + + + + + [[ o.sale_id and o.sale_id.partner_id and o.sale_id.partner_id.valued_picking and ' ' or removeParentNode('tr') ]] + + + Total + + + [[ formatLang(o.amount_total, dp='Account', currency_obj=o.sale_id.currency_id) ]] + + + + + + + + + + + + + + + + + + + + + + + +
+
+ diff --git a/stock_valued_picking_report/report/shipping.sxw b/stock_valued_picking_report/report/shipping.sxw new file mode 100644 index 0000000000000000000000000000000000000000..98e751b95076c539416b728fdf76a4abafc86702 GIT binary patch literal 51298 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

xocvb3RR)EDi)C28MsWv*j+{f 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 Iox>m=06#EPAOHXW literal 0 HcmV?d00001 diff --git a/stock_valued_picking_report/report/shipping_convert.sh b/stock_valued_picking_report/report/shipping_convert.sh new file mode 100755 index 0000000..f503dc4 --- /dev/null +++ b/stock_valued_picking_report/report/shipping_convert.sh @@ -0,0 +1 @@ +python /opt/openerp/v7/ocb-addons/base_report_designer/openerp_sxw2rml/openerp_sxw2rml.py ./shipping.sxw > ./shipping.rml diff --git a/stock_valued_picking_report/report/stock_valued_report.xml b/stock_valued_picking_report/report/stock_valued_report.xml new file mode 100644 index 0000000..01aecd2 --- /dev/null +++ b/stock_valued_picking_report/report/stock_valued_report.xml @@ -0,0 +1,14 @@ + + + + + + Valued delivery order + stock.picking + stock_valued_picking_report.report_shipping + stock_valued_picking/report/shipping.rml + + + + + diff --git a/stock_valued_picking_report/views/res_partner_view.xml b/stock_valued_picking_report/views/res_partner_view.xml new file mode 100644 index 0000000..1f7957b --- /dev/null +++ b/stock_valued_picking_report/views/res_partner_view.xml @@ -0,0 +1,18 @@ + + + + + + Partner view (Valued picking) + res.partner + + + + + + + + + + diff --git a/stock_valued_picking_report/views/stock_picking_view.xml b/stock_valued_picking_report/views/stock_picking_view.xml new file mode 100644 index 0000000..a372370 --- /dev/null +++ b/stock_valued_picking_report/views/stock_picking_view.xml @@ -0,0 +1,34 @@ + + + + + + + Valued Stock Picking + stock.picking + + + + + + + + + + +

+ + + + + +