FIX mrp_usability: define sold out in bottom page

This commit is contained in:
David Beal
2020-10-06 16:28:43 +02:00
parent 58f01d9673
commit f605b56a5e
3 changed files with 36 additions and 22 deletions

View File

@@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 12.0\n" "Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 13:56+0000\n" "POT-Creation-Date: 2020-10-06 13:37+0000\n"
"PO-Revision-Date: 2019-07-16 16:01+0200\n" "PO-Revision-Date: 2020-10-06 15:38+0200\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -15,41 +15,52 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n" "Plural-Forms: \n"
"Language: fr\n" "Language: fr\n"
"X-Generator: Poedit 2.0.6\n" "X-Generator: Poedit 2.3\n"
#. module: mrp_usability #. module: mrp_usability
#: model_terms:ir.ui.view,arch_db:mrp_usability.mrp_production_form_view #: model_terms:ir.ui.view,arch_db:mrp_usability.mrp_production_form_view
msgid "Are you sure you want to cancel this manufacturing order?" msgid "Are you sure you want to cancel this manufacturing order?"
msgstr "Etes vous sur de vouloir annuler cet ordre de production" msgstr "Etes vous sur de vouloir annuler cet ordre de production"
#. module: mrp_usability
#: model_terms:ir.ui.view,arch_db:mrp_usability.product_template_form_view_bom_button
msgid "Bill of Materials"
msgstr "Nomenclature"
#. module: mrp_usability #. module: mrp_usability
#: model_terms:ir.ui.view,arch_db:mrp_usability.report_mrporder #: model_terms:ir.ui.view,arch_db:mrp_usability.report_mrporder
msgid "Lot" msgid "Lot"
msgstr "" msgstr ""
#. module: mrp_usability #. module: mrp_usability
#: model:ir.model,name:mrp_usability.model_product_product
#: model_terms:ir.ui.view,arch_db:mrp_usability.report_mrporder #: model_terms:ir.ui.view,arch_db:mrp_usability.report_mrporder
msgid "Product" msgid "Product"
msgstr "Article" msgstr "Article"
#. module: mrp_usability
#: model:ir.model,name:mrp_usability.model_product_template
msgid "Product Template"
msgstr "Modèle d'article"
#. module: mrp_usability #. module: mrp_usability
#: model:ir.model,name:mrp_usability.model_mrp_production #: model:ir.model,name:mrp_usability.model_mrp_production
msgid "Production Order" msgid "Production Order"
msgstr "Ordre de production" msgstr ""
#. module: mrp_usability #. module: mrp_usability
#: model_terms:ir.ui.view,arch_db:mrp_usability.report_mrporder #: model_terms:ir.ui.view,arch_db:mrp_usability.report_mrporder
msgid "Quantity" msgid "Sold Out Quantity"
msgstr "Quantité" msgstr "Quantité en Rupture"
#. module: mrp_usability #. module: mrp_usability
#: model_terms:ir.ui.view,arch_db:mrp_usability.report_mrporder #: model_terms:ir.ui.view,arch_db:mrp_usability.report_mrporder
msgid "" msgid ""
"These products were unavailable (or partially) while edition of this Manufacturing Order.\n" "These products were unavailable (or partially) while edition of this Manufacturing Order.\n"
" Here is complete quantities for these." " Here is missing quantities."
msgstr "" msgstr ""
"Les produits ci-dessous étaient indisponibles (complètement ou partiellement) lors de l'édition de l'OF.<br/>\n" "Les produits ci-dessous étaient indisponibles (complètement ou partiellement) lors de l'édition de l'OF.<br/>\n"
"Voici les quantités totales de ceux-ci." "Voici les quantités manquantes."
#. module: mrp_usability #. module: mrp_usability
#: model_terms:ir.ui.view,arch_db:mrp_usability.view_mrp_bom_filter #: model_terms:ir.ui.view,arch_db:mrp_usability.view_mrp_bom_filter

View File

@@ -3,9 +3,18 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models from odoo import api, models
class MrpProduction(models.Model): class MrpProduction(models.Model):
_inherit = 'mrp.production' _inherit = 'mrp.production'
_order = 'id desc' _order = 'id desc'
@api.model
def get_stock_move_sold_out_report(self, move):
lines = move.active_move_line_ids
qty_in_lots = sum([x.product_uom_qty for x in lines])
diff = round(move.product_qty - qty_in_lots, 3)
if diff == 0.0:
return ""
return diff

View File

@@ -11,37 +11,31 @@
<td t-if="has_serial_number"><span t-field="ml.lot_id"/></td> <td t-if="has_serial_number"><span t-field="ml.lot_id"/></td>
</xpath> </xpath>
<xpath expr="//table[1]//tbody//td[3]" position="inside">
<span t-if="ml.state !='done' and (ml.move_id.product_qty - ml.product_uom_qty > 0.0)"> => rupture </span>
<span t-esc="round(ml.move_id.product_qty - ml.product_uom_qty, 3)" t-if="ml.state !='done' and (ml.move_id.product_qty - ml.product_uom_qty > 0.0)"/>
</xpath>
<xpath expr="//div[hasclass('oe_structure')][2]" position="after"> <xpath expr="//div[hasclass('oe_structure')][2]" position="after">
<t t-set="has_product_unavailable" <t t-set="has_product_unavailable"
t-value="any(o.move_raw_ids.filtered(lambda x: x.product_uom_qty &gt; x.reserved_availability))"/> t-value="any(o.move_raw_ids.filtered(lambda x: x.product_uom_qty &gt; x.reserved_availability))"/>
<h4 if="has_product_unavailable"> <h4 if="has_product_unavailable">
These products were unavailable (or partially) while edition of this Manufacturing Order. These products were unavailable (or partially) while edition of this Manufacturing Order.
Here is complete quantities for these. Here is missing quantities.
</h4> </h4>
<table class="table table-sm" t-if="o.move_raw_ids and has_product_unavailable"> <table class="table table-sm" t-if="o.move_raw_ids and has_product_unavailable">
<thead> <thead>
<tr> <tr>
<th>Product</th> <th>Product</th>
<th>Quantity</th> <th>Sold Out Quantity</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<t t-set="lines" <t t-set="moves"
t-value="o.move_raw_ids.filtered(lambda x: x.product_uom_qty &gt; x.reserved_availability)"/> t-value="o.move_raw_ids.filtered(lambda x: x.product_uom_qty &gt; x.reserved_availability)"/>
<t t-foreach="lines" t-as="ml"> <t t-foreach="moves" t-as="m">
<tr> <tr>
<td> <td>
<span t-field="ml.product_id"/> <span t-field="m.product_id"/>
</td> </td>
<td> <td>
<span t-esc="ml.product_uom_qty" t-if="ml.state !='done'"/> <span t-esc="o.get_stock_move_sold_out_report(m)" t-if="m.state !='done'"/>
<span t-esc="ml.qty_done" t-if="ml.state =='done'"/> <span t-field="m.product_uom" groups="uom.group_uom"/>
<span t-field="ml.product_uom" groups="uom.group_uom"/>
</td> </td>
</tr> </tr>
</t> </t>