From 92cf447add0a4c64b273457572ff5bbda07e43cf Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 3 Dec 2020 22:43:10 +0100 Subject: [PATCH] [MIG] sale_stock_usability --- sale_stock_usability/__init__.py | 2 +- sale_stock_usability/__manifest__.py | 13 ++- sale_stock_usability/i18n/fr.po | 89 ++++++++----------- sale_stock_usability/models/__init__.py | 1 + .../{sale_stock.py => models/sale_order.py} | 33 +++++-- .../views/procurement_group.xml | 22 +++++ .../sale_order.xml} | 44 ++------- sale_stock_usability/views/stock_move.xml | 21 +++++ sale_stock_usability/views/stock_picking.xml | 21 +++++ 9 files changed, 145 insertions(+), 101 deletions(-) create mode 100644 sale_stock_usability/models/__init__.py rename sale_stock_usability/{sale_stock.py => models/sale_order.py} (63%) create mode 100644 sale_stock_usability/views/procurement_group.xml rename sale_stock_usability/{sale_stock_view.xml => views/sale_order.xml} (51%) create mode 100644 sale_stock_usability/views/stock_move.xml create mode 100644 sale_stock_usability/views/stock_picking.xml diff --git a/sale_stock_usability/__init__.py b/sale_stock_usability/__init__.py index d2b1458..0650744 100644 --- a/sale_stock_usability/__init__.py +++ b/sale_stock_usability/__init__.py @@ -1 +1 @@ -from . import sale_stock +from . import models diff --git a/sale_stock_usability/__manifest__.py b/sale_stock_usability/__manifest__.py index 7c018ed..1d9c449 100644 --- a/sale_stock_usability/__manifest__.py +++ b/sale_stock_usability/__manifest__.py @@ -1,11 +1,11 @@ -# Copyright 2015-2019 Akretion (http://www.akretion.com) +# Copyright 2015-2020 Akretion (http://www.akretion.com) # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { 'name': 'Sale Stock Usability', - 'version': '12.0.1.0.0', + 'version': '14.0.1.0.0', 'category': 'Sales Management', 'license': 'AGPL-3', 'summary': 'Small usability improvements to the sale_stock module', @@ -22,6 +22,11 @@ This module has been written by Alexis de Lattre from Akretion \n" +"POT-Creation-Date: 2020-12-03 21:31+0000\n" +"PO-Revision-Date: 2020-12-03 21:31+0000\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" +"Content-Transfer-Encoding: \n" "Plural-Forms: \n" -"Language: fr\n" -"X-Generator: Poedit 1.8.7.1\n" #. module: sale_stock_usability -#: view:sale.order:sale_stock_usability.view_order_form_inherit -msgid "Delivery Orders" -msgstr "Livraisons" - -#. module: sale_stock_usability -#: view:procurement.group:sale_stock_usability.procurement_group_form_view -#: field:procurement.group,picking_ids:0 -msgid "Pickings" -msgstr "Préparations" - -#. module: sale_stock_usability -#: model:ir.model,name:sale_stock_usability.model_procurement_group -msgid "Procurement Requisition" -msgstr "Demande d'approvisionnement" - -#. module: sale_stock_usability -#: view:procurement.group:sale_stock_usability.procurement_group_form_view -#: field:procurement.group,sale_ids:0 -msgid "Sale Orders" -msgstr "Sale Orders" - -#. module: sale_stock_usability -#: model:ir.model,name:sale_stock_usability.model_sale_order -msgid "Sales Order" -msgstr "Bon de commande" - -#. module: sale_stock_usability -#: model:ir.model,name:sale_stock_usability.model_sale_order_line -msgid "Sales Order Line" -msgstr "Ligne de commandes de vente" - -#. module: sale_stock_usability -#: selection:sale.order,picking_status:0 +#: model:ir.model.fields.selection,name:sale_stock_usability.selection__sale_order__picking_status__cancel msgid "Delivery Cancelled" msgstr "Livraison annulée" #. module: sale_stock_usability +#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: sale_stock_usability +#: model:ir.model.fields.selection,name:sale_stock_usability.selection__sale_order__picking_status__delivered #: model_terms:ir.ui.view,arch_db:sale_stock_usability.view_sales_order_filter -#: selection:sale.order,picking_status:0 msgid "Fully Delivered" msgstr "Entierement Livré " +#. module: sale_stock_usability +#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__id +msgid "ID" +msgstr "" + #. module: sale_stock_usability #: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__incoterm -msgid "Incoterms" -msgstr "Incoterms" +msgid "Incoterm" +msgstr "" #. module: sale_stock_usability #: model:ir.model.fields,help:sale_stock_usability.field_sale_order__incoterm -msgid "International Commercial Terms are a series of predefined commercial terms used in international transactions." -msgstr "Les Incoterms sont une série de termes commerciaux prédéfinie utilisés dans les transactions internationales." +msgid "" +"International Commercial Terms are a series of predefined commercial terms " +"used in international transactions." +msgstr "" +"Les Incoterms sont une série de termes commerciaux prédéfinie utilisés dans " +"les transactions internationales." + +#. module: sale_stock_usability +#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" #. module: sale_stock_usability #: model_terms:ir.ui.view,arch_db:sale_stock_usability.view_sales_order_filter @@ -76,29 +61,29 @@ msgid "Not Fully Delivered" msgstr "Livraison à faire" #. module: sale_stock_usability -#: selection:sale.order,picking_status:0 +#: model:ir.model.fields.selection,name:sale_stock_usability.selection__sale_order__picking_status__no msgid "Nothing to Deliver" msgstr "Rien à livrer" #. module: sale_stock_usability -#: selection:sale.order,picking_status:0 +#: model:ir.model.fields.selection,name:sale_stock_usability.selection__sale_order__picking_status__partially_delivered msgid "Partially Delivered" -msgstr "Livré partielement" +msgstr "Partiellement livré" #. module: sale_stock_usability #: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__picking_status msgid "Picking Status" -msgstr "Status de BL" +msgstr "Statut de la livraison" #. module: sale_stock_usability #: model:ir.model,name:sale_stock_usability.model_sale_order -msgid "Sale Order" +msgid "Sales Order" msgstr "Bon de commande" #. module: sale_stock_usability -#: selection:sale.order,picking_status:0 +#: model:ir.model.fields.selection,name:sale_stock_usability.selection__sale_order__picking_status__to_deliver msgid "To Deliver" -msgstr "Prêt à livrer" +msgstr "À livrer" #. module: sale_stock_usability #: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__warehouse_id diff --git a/sale_stock_usability/models/__init__.py b/sale_stock_usability/models/__init__.py new file mode 100644 index 0000000..6aacb75 --- /dev/null +++ b/sale_stock_usability/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order diff --git a/sale_stock_usability/sale_stock.py b/sale_stock_usability/models/sale_order.py similarity index 63% rename from sale_stock_usability/sale_stock.py rename to sale_stock_usability/models/sale_order.py index fedecab..0e59dd2 100644 --- a/sale_stock_usability/sale_stock.py +++ b/sale_stock_usability/models/sale_order.py @@ -1,15 +1,16 @@ -# Copyright 2015-2019 Akretion France (http://www.akretion.com) +# Copyright 2015-2020 Akretion France (http://www.akretion.com) # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import models, fields, api +from odoo import api, fields, models +from odoo.tools import float_compare, float_round class SaleOrder(models.Model): _inherit = 'sale.order' - warehouse_id = fields.Many2one(track_visibility='onchange') - incoterm = fields.Many2one(track_visibility='onchange') + warehouse_id = fields.Many2one(tracking=True) + incoterm = fields.Many2one(tracking=True) picking_status = fields.Selection([ ('delivered', 'Fully Delivered'), ('partially_delivered', 'Partially Delivered'), @@ -17,7 +18,7 @@ class SaleOrder(models.Model): ('cancel', 'Delivery Cancelled'), ('no', 'Nothing to Deliver') ], string='Picking Status', compute='_compute_picking_status', - store=True, readonly=True) + store=True) @api.depends('state', 'picking_ids.state') def _compute_picking_status(self): @@ -48,3 +49,25 @@ class SaleOrder(models.Model): for state in pstates]): picking_status = 'to_deliver' order.picking_status = picking_status + + def report_qty_to_deliver(self): + # Can be useful for delivery report + self.ensure_one() + res = [] + prec = self.env['decimal.precision'].precision_get( + 'Product Unit of Measure') + for line in self.order_line: + if ( + line.product_id.type in ('product', 'consu') and + float_compare( + line.product_uom_qty, line.qty_delivered, + precision_digits=prec) > 0): + qty_to_deliver = float_round( + line.product_uom_qty - line.qty_delivered, precision_digits=prec) + res.append({ + 'product': line.product_id, + 'name': line.name, + 'uom': line.product_uom, + 'qty_to_deliver': qty_to_deliver, + }) + return res diff --git a/sale_stock_usability/views/procurement_group.xml b/sale_stock_usability/views/procurement_group.xml new file mode 100644 index 0000000..4e60a09 --- /dev/null +++ b/sale_stock_usability/views/procurement_group.xml @@ -0,0 +1,22 @@ + + + + + + + + sale_stock_usability.procurement.group.form + procurement.group + + + + + + + + + diff --git a/sale_stock_usability/sale_stock_view.xml b/sale_stock_usability/views/sale_order.xml similarity index 51% rename from sale_stock_usability/sale_stock_view.xml rename to sale_stock_usability/views/sale_order.xml index 73b9922..287ddbc 100644 --- a/sale_stock_usability/sale_stock_view.xml +++ b/sale_stock_usability/views/sale_order.xml @@ -1,41 +1,18 @@ - - - sale_stock_usability.stock.picking.form - stock.picking - - - - - - - - - - sale_stock_usability.stock_move.form - stock.move - - - - - - - - sale_stock_usability.order.form sale.order - + - + @@ -47,7 +24,7 @@ - + @@ -63,20 +40,9 @@ domain="[('picking_status', 'in', ('to_deliver', 'partially_delivered'))]"/> + - - sale_stock_usability.procurement.group.form - procurement.group - - - - - - - - - diff --git a/sale_stock_usability/views/stock_move.xml b/sale_stock_usability/views/stock_move.xml new file mode 100644 index 0000000..b6debcb --- /dev/null +++ b/sale_stock_usability/views/stock_move.xml @@ -0,0 +1,21 @@ + + + + + + + sale_stock_usability.stock_move.form + stock.move + + + + + + + + + diff --git a/sale_stock_usability/views/stock_picking.xml b/sale_stock_usability/views/stock_picking.xml new file mode 100644 index 0000000..b337a7c --- /dev/null +++ b/sale_stock_usability/views/stock_picking.xml @@ -0,0 +1,21 @@ + + + + + + + sale_stock_usability.stock.picking.form + stock.picking + + + + + + + + +