FIX mrp_usability: define sold out in bottom page
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 > x.reserved_availability))"/>
|
t-value="any(o.move_raw_ids.filtered(lambda x: x.product_uom_qty > 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 > x.reserved_availability)"/>
|
t-value="o.move_raw_ids.filtered(lambda x: x.product_uom_qty > 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>
|
||||||
|
|||||||
Reference in New Issue
Block a user