diff --git a/stock_picking_report_summary/README.rst b/stock_picking_report_summary/README.rst new file mode 100644 index 0000000..f3ab7ea --- /dev/null +++ b/stock_picking_report_summary/README.rst @@ -0,0 +1,94 @@ +============================ +Stock Picking Report Summary +============================ + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-quentinDupont%2Fstock--logistics--reporting-lightgray.png?logo=github + :target: https://github.com/quentinDupont/stock-logistics-reporting/tree/12.0_ADD_picking_summary_report/stock_picking_report_summary + :alt: quentinDupont/stock-logistics-reporting + +|badge1| |badge2| |badge3| + +This module adds the possibility to select several Pickings and +print a Report summary with two sheets : + +* Products Summary (where the total sum is calculated for each product) + +* Detail Part (each Picking is shown) + +You can choose to print standard prices or not. It can be useful to check some +values when you prepare your pickings. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to + +* go to Inventory + +* Choose a Operation + +* Select any pickings and click on 'Action' / 'Print Picking Summary (PDF)' + +* Choose your options + +.. figure:: https://raw.githubusercontent.com/quentinDupont/stock-logistics-reporting/12.0_ADD_picking_summary_report/stock_picking_report_summary/static/description/wizard.png + +.. figure:: https://raw.githubusercontent.com/quentinDupont/stock-logistics-reporting/12.0_ADD_picking_summary_report/stock_picking_report_summary/static/description/pdf_report.png + +Without prices : + +.. figure:: https://raw.githubusercontent.com/quentinDupont/stock-logistics-reporting/12.0_ADD_picking_summary_report/stock_picking_report_summary/static/description/pdf_report_wo_prices.png + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Grap + +Contributors +~~~~~~~~~~~~ + +* Quentin DUPONT (quentin.dupont@grap.coop) + +Maintainers +~~~~~~~~~~~ + +.. |maintainer-quentinDupont| image:: https://github.com/quentinDupont.png?size=40px + :target: https://github.com/quentinDupont + :alt: quentinDupont + +Current maintainer: + +|maintainer-quentinDupont| + +This module is part of the `quentinDupont/stock-logistics-reporting `_ project on GitHub. + +You are welcome to contribute. diff --git a/stock_picking_report_summary/__init__.py b/stock_picking_report_summary/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/stock_picking_report_summary/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/stock_picking_report_summary/__manifest__.py b/stock_picking_report_summary/__manifest__.py new file mode 100644 index 0000000..a56555b --- /dev/null +++ b/stock_picking_report_summary/__manifest__.py @@ -0,0 +1,26 @@ +# Copyright (C) 2020 - Today: GRAP (http://www.grap.coop) +# @author: Quentin DUPONT (quentin.dupont@grap.coop) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "Stock Picking Report Summary", + "summary": "Stock Picking Report Summary", + "version": "12.0.1.0.0", + "author": "Grap, " + "Odoo Community Association (OCA)", + "maintainers": ["quentinDupont"], + "website": "https://github.com/OCA/stock-logistics-reporting", + "category": "Warehouse Management", + "license": "AGPL-3", + "depends": [ + "stock", + ], + 'data': [ + 'reports/report_paperformat.xml', + 'reports/report_print_picking_summary.xml', + 'reports/report_print_picking_summary_template.xml', + 'views/view_picking_summary_wizard.xml', + 'views/action.xml', + ], + "installable": True, +} diff --git a/stock_picking_report_summary/i18n/fr.po b/stock_picking_report_summary/i18n/fr.po new file mode 100644 index 0000000..a97b4e2 --- /dev/null +++ b/stock_picking_report_summary/i18n/fr.po @@ -0,0 +1,225 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_picking_report_summary +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-05-11 09:34+0000\n" +"PO-Revision-Date: 2022-05-11 09:34+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.view_picking_summary_wizard_form +msgid "Cancel" +msgstr "Annuler" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Category" +msgstr "Catégorie" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__standard_price +msgid "Cost" +msgstr "Coût" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,help:stock_picking_report_summary.field_picking_summary_wizard_product__standard_price +msgid "Cost used for stock valuation in standard price and as a first price to set in average/fifo. Also used as a base price for pricelists. Expressed in the default unit of measure of the product." +msgstr "Également utilisé comme prix de base pour les listes. Exprimé dans l'unité de mesure par défaut du produit." + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__create_uid +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking__create_uid +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__create_date +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking__create_date +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__display_name +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking__display_name +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.view_picking_summary_wizard_form +msgid "General Parameters" +msgstr "Paramètres généraux" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__id +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking__id +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__id +msgid "ID" +msgstr "" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard____last_update +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking____last_update +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__write_uid +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking__write_uid +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__write_date +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking__write_date +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__picking_line_qty +msgid "Number of Selected Picking" +msgstr "Quantité selectionné" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking__picking_id +msgid "Picking" +msgstr "Opération de manutention" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__picking_line_ids +msgid "Picking Line" +msgstr "Ligne de bon de livraison" + +#. module: stock_picking_report_summary +#: model:ir.actions.report,name:stock_picking_report_summary.report_picking_summary +msgid "Picking Summary (PDF)" +msgstr "Résumé des opérations (PDF)" + +#. module: stock_picking_report_summary +#: model:ir.model,name:stock_picking_report_summary.model_picking_summary_wizard +msgid "Picking Summary Wizard" +msgstr "" + +#. module: stock_picking_report_summary +#: model:ir.model,name:stock_picking_report_summary.model_picking_summary_wizard_picking +msgid "Picking Summary Wizard Picking" +msgstr "" + +#. module: stock_picking_report_summary +#: model:ir.model,name:stock_picking_report_summary.model_picking_summary_wizard_product +msgid "Picking Summary Wizard Product" +msgstr "" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.view_picking_summary_wizard_form +msgid "Pickings Details" +msgstr "Détails des opérations" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Pickings List" +msgstr "Liste des bons de livraison" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__print_detail +msgid "Print Detail" +msgstr "Imprimer le détail" + +#. module: stock_picking_report_summary +#: model:ir.actions.act_window,name:stock_picking_report_summary.action_picking_summary +msgid "Print Picking Summary (PDF)" +msgstr "Résumé des opérations (PDF)" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.view_picking_summary_wizard_form +msgid "Print Product Summary" +msgstr "Imprimer le résumé des opérations" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__print_prices +msgid "Print Standard Prices" +msgstr "Imprimer les prix de revient" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__print_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.view_picking_summary_wizard_form +msgid "Print Summary" +msgstr "Imprimer le résumé" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__print_unity_in_list +msgid "Print Unit in Pickings List" +msgstr "Afficher l'unité des produits" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__product_id +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Product" +msgstr "Article" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__product_line_ids +msgid "Product Line" +msgstr "Ligne de produit" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Products Summary" +msgstr "Synthèse des bons de livraison" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Quantity" +msgstr "Quantité" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__quantity_total +msgid "Quantity Total" +msgstr "Quantité total" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard__standard_price_total +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__standard_price_total +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Standard Price Total" +msgstr "Total prix de vente" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Standard Unit Price" +msgstr "Coût unitaire" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.view_picking_summary_wizard_form +msgid "Summary" +msgstr "Résumé" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Total price" +msgstr "Prix total" + +#. module: stock_picking_report_summary +#: model_terms:ir.ui.view,arch_db:stock_picking_report_summary.picking_summary +msgid "Unity" +msgstr "Unité" + +#. module: stock_picking_report_summary +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_picking__wizard_id +#: model:ir.model.fields,field_description:stock_picking_report_summary.field_picking_summary_wizard_product__wizard_id +msgid "Wizard" +msgstr "Assistant" diff --git a/stock_picking_report_summary/models/__init__.py b/stock_picking_report_summary/models/__init__.py new file mode 100644 index 0000000..f8a9895 --- /dev/null +++ b/stock_picking_report_summary/models/__init__.py @@ -0,0 +1,3 @@ +from . import picking_summary_wizard +from . import picking_summary_wizard_picking +from . import picking_summary_wizard_product diff --git a/stock_picking_report_summary/models/picking_summary_wizard.py b/stock_picking_report_summary/models/picking_summary_wizard.py new file mode 100644 index 0000000..ba480c8 --- /dev/null +++ b/stock_picking_report_summary/models/picking_summary_wizard.py @@ -0,0 +1,94 @@ +# Copyright (C) 2015 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models +from odoo.addons import decimal_precision as dp + + +class PickingSummaryWizard(models.TransientModel): + _name = 'picking.summary.wizard' + _description = 'Picking Summary Wizard' + + # Columns Section + print_summary = fields.Boolean( + string='Print Summary', default=True) + + print_detail = fields.Boolean( + string='Print Detail', default=True) + + print_unity_in_list = fields.Boolean( + string='Print Unit in Pickings List', default=True) + + print_prices = fields.Boolean( + string='Print Standard Prices', default=False) + + product_line_ids = fields.One2many( + comodel_name='picking.summary.wizard.product', + inverse_name='wizard_id', + default=lambda self: self._default_product_line_ids()) + + standard_price_total = fields.Float( + compute='_compute_standard_price_total', + digits=dp.get_precision('Product Price')) + + picking_line_ids = fields.One2many( + comodel_name='picking.summary.wizard.picking', + inverse_name='wizard_id', + default=lambda self: self._default_picking_line_ids()) + + picking_line_qty = fields.Integer( + string='Number of Selected Picking', readonly=True, + default=lambda self: self._default_picking_line_qty()) + + # Default Section + def _default_picking_line_qty(self): + return len(self._context.get('active_ids', [])) + + def _default_picking_line_ids(self): + picking_obj = self.env['stock.picking'] + res = [] + picking_ids = self._context.get('active_ids', []) + for picking in picking_obj.browse(picking_ids): + res.append((0, 0, { + 'picking_id': picking.id, + })) + return res + + def _default_product_line_ids(self): + picking_obj = self.env['stock.picking'] + res = [] + product_lines = {} + picking_ids = self.env.context.get('active_ids', []) + # move.product_qty is real quantity with referent uom + for picking in picking_obj.browse(picking_ids): + for move in picking.move_lines: + if move.product_id.id not in product_lines.keys(): + product_lines[move.product_id.id] = { + 'name': move.product_id.name, + 'categ': move.product_id.categ_id.name.capitalize(), + 'qty': move.product_qty + } + else: + old_qty = product_lines[move.product_id.id]['qty'] + product_lines[move.product_id.id] = { + 'name': move.product_id.name, + 'categ': move.product_id.categ_id.name.capitalize(), + 'qty': old_qty + move.product_qty + } + # Arranged in alphabetical order for category then product name + product_lines_sorted = sorted( + product_lines.items(), key=lambda x: (x[1]['categ'], x[1]['name'])) + for product_id, name_qty in product_lines_sorted: + res.append((0, 0, { + 'product_id': product_id, + 'quantity_total': name_qty['qty'], + })) + return res + + # Compute Section + @api.multi + def _compute_standard_price_total(self): + self.ensure_one() + self.standard_price_total = sum( + self.mapped('product_line_ids.standard_price_total')) diff --git a/stock_picking_report_summary/models/picking_summary_wizard_picking.py b/stock_picking_report_summary/models/picking_summary_wizard_picking.py new file mode 100644 index 0000000..d0231b8 --- /dev/null +++ b/stock_picking_report_summary/models/picking_summary_wizard_picking.py @@ -0,0 +1,14 @@ +# Copyright (C) 2015 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import fields, models + + +class PickingSummaryWizardPicking(models.TransientModel): + _name = 'picking.summary.wizard.picking' + _description = 'Picking Summary Wizard Picking' + + wizard_id = fields.Many2one(comodel_name='picking.summary.wizard') + + picking_id = fields.Many2one(comodel_name='stock.picking') diff --git a/stock_picking_report_summary/models/picking_summary_wizard_product.py b/stock_picking_report_summary/models/picking_summary_wizard_product.py new file mode 100644 index 0000000..db38042 --- /dev/null +++ b/stock_picking_report_summary/models/picking_summary_wizard_product.py @@ -0,0 +1,31 @@ +# Copyright (C) 2015 - Today: GRAP (http://www.grap.coop) +# @author: Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models +from odoo.addons import decimal_precision as dp + + +class PickingSummaryWizardProduct(models.TransientModel): + _name = 'picking.summary.wizard.product' + _description = 'Picking Summary Wizard Product' + + wizard_id = fields.Many2one(comodel_name='picking.summary.wizard') + + product_id = fields.Many2one(comodel_name='product.product') + + quantity_total = fields.Float() + + standard_price = fields.Float( + related='product_id.standard_price', + digits=dp.get_precision('Product Price')) + + standard_price_total = fields.Float( + compute='_compute_standard_price_total', + digits=dp.get_precision('Product Price')) + + @api.multi + def _compute_standard_price_total(self): + for line in self: + line.standard_price_total =\ + line.product_id.standard_price * line.quantity_total diff --git a/stock_picking_report_summary/readme/CONTRIBUTORS.rst b/stock_picking_report_summary/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000..a5cc8a8 --- /dev/null +++ b/stock_picking_report_summary/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Quentin DUPONT (quentin.dupont@grap.coop) diff --git a/stock_picking_report_summary/readme/DESCRIPTION.rst b/stock_picking_report_summary/readme/DESCRIPTION.rst new file mode 100644 index 0000000..6792935 --- /dev/null +++ b/stock_picking_report_summary/readme/DESCRIPTION.rst @@ -0,0 +1,9 @@ +This module adds the possibility to select several Pickings and +print a Report summary with two sheets : + +* Products Summary (where the total sum is calculated for each product) + +* Detail Part (each Picking is shown) + +You can choose to print standard prices or not. It can be useful to check some +values when you prepare your pickings. diff --git a/stock_picking_report_summary/readme/USAGE.rst b/stock_picking_report_summary/readme/USAGE.rst new file mode 100644 index 0000000..6c4be3d --- /dev/null +++ b/stock_picking_report_summary/readme/USAGE.rst @@ -0,0 +1,17 @@ +To use this module, you need to + +* go to Inventory + +* Choose a Operation + +* Select any pickings and click on 'Action' / 'Print Picking Summary (PDF)' + +* Choose your options + +.. figure:: ../static/description/wizard.png + +.. figure:: ../static/description/pdf_report.png + +Without prices : + +.. figure:: ../static/description/pdf_report_wo_prices.png diff --git a/stock_picking_report_summary/reports/report_paperformat.xml b/stock_picking_report_summary/reports/report_paperformat.xml new file mode 100644 index 0000000..1687a82 --- /dev/null +++ b/stock_picking_report_summary/reports/report_paperformat.xml @@ -0,0 +1,23 @@ + + + + + + Picking Report Summary + A4 + 0 + 0 + Portrait + 10 + 15 + 8 + 8 + + 43 + 90 + + + diff --git a/stock_picking_report_summary/reports/report_print_picking_summary.xml b/stock_picking_report_summary/reports/report_print_picking_summary.xml new file mode 100644 index 0000000..0b718ff --- /dev/null +++ b/stock_picking_report_summary/reports/report_print_picking_summary.xml @@ -0,0 +1,11 @@ + + + + diff --git a/stock_picking_report_summary/reports/report_print_picking_summary_template.xml b/stock_picking_report_summary/reports/report_print_picking_summary_template.xml new file mode 100644 index 0000000..b061044 --- /dev/null +++ b/stock_picking_report_summary/reports/report_print_picking_summary_template.xml @@ -0,0 +1,114 @@ + + + + + diff --git a/stock_picking_report_summary/static/description/icon.png b/stock_picking_report_summary/static/description/icon.png new file mode 100644 index 0000000..7630b14 Binary files /dev/null and b/stock_picking_report_summary/static/description/icon.png differ diff --git a/stock_picking_report_summary/static/description/index.html b/stock_picking_report_summary/static/description/index.html new file mode 100644 index 0000000..d5fd539 --- /dev/null +++ b/stock_picking_report_summary/static/description/index.html @@ -0,0 +1,444 @@ + + + + + + +Stock Picking Report Summary + + + +
+

Stock Picking Report Summary

+ + +

Beta License: AGPL-3 quentinDupont/stock-logistics-reporting

+

This module adds the possibility to select several Pickings and +print a Report summary with two sheets :

+
    +
  • Products Summary (where the total sum is calculated for each product)
  • +
  • Detail Part (each Picking is shown)
  • +
+

You can choose to print standard prices or not. It can be useful to check some +values when you prepare your pickings.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to

+
    +
  • go to Inventory
  • +
  • Choose a Operation
  • +
  • Select any pickings and click on ‘Action’ / ‘Print Picking Summary (PDF)’
  • +
  • Choose your options
  • +
+
+https://raw.githubusercontent.com/quentinDupont/stock-logistics-reporting/12.0_ADD_picking_summary_report/stock_picking_report_summary/static/description/wizard.png +
+
+https://raw.githubusercontent.com/quentinDupont/stock-logistics-reporting/12.0_ADD_picking_summary_report/stock_picking_report_summary/static/description/pdf_report.png +
+

Without prices :

+
+https://raw.githubusercontent.com/quentinDupont/stock-logistics-reporting/12.0_ADD_picking_summary_report/stock_picking_report_summary/static/description/pdf_report_wo_prices.png +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Grap
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

Current maintainer:

+

quentinDupont

+

This module is part of the quentinDupont/stock-logistics-reporting project on GitHub.

+

You are welcome to contribute.

+
+
+
+ + diff --git a/stock_picking_report_summary/static/description/pdf_report.png b/stock_picking_report_summary/static/description/pdf_report.png new file mode 100644 index 0000000..e1a09ac Binary files /dev/null and b/stock_picking_report_summary/static/description/pdf_report.png differ diff --git a/stock_picking_report_summary/static/description/pdf_report_wo_prices.png b/stock_picking_report_summary/static/description/pdf_report_wo_prices.png new file mode 100644 index 0000000..2d9354d Binary files /dev/null and b/stock_picking_report_summary/static/description/pdf_report_wo_prices.png differ diff --git a/stock_picking_report_summary/static/description/wizard.png b/stock_picking_report_summary/static/description/wizard.png new file mode 100644 index 0000000..f8e14d1 Binary files /dev/null and b/stock_picking_report_summary/static/description/wizard.png differ diff --git a/stock_picking_report_summary/views/action.xml b/stock_picking_report_summary/views/action.xml new file mode 100644 index 0000000..ac0d83f --- /dev/null +++ b/stock_picking_report_summary/views/action.xml @@ -0,0 +1,18 @@ + + + + + + Print Picking Summary (PDF) + picking.summary.wizard + form + form + new + + + + diff --git a/stock_picking_report_summary/views/view_picking_summary_wizard.xml b/stock_picking_report_summary/views/view_picking_summary_wizard.xml new file mode 100644 index 0000000..6765248 --- /dev/null +++ b/stock_picking_report_summary/views/view_picking_summary_wizard.xml @@ -0,0 +1,35 @@ + + + + + + picking.summary.wizard + +
+ + + + + + + + + + + + + + +
+
+
+ +