Skip to content
Extraits de code Groupes Projets
Valider 2cbc9daf rédigé par Rémi - Le Filament's avatar Rémi - Le Filament
Parcourir les fichiers

[IMP] pre-commit

parent 899ed1f2
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 226 ajouts et 147 suppressions
LICENSE 100755 → 100644
Le mode du fichier est passé de 100755 à 100644
Le mode du fichier est passé de 100755 à 100644
# Copyright 2021 Le Filament (<http://www.le-filament.com>) # Copyright 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models from . import models, report
from . import report
{ {
'name': "FUMAISON OCC - Ventes", "name": "FUMAISON OCC - Ventes",
'summary': "Ventes", "summary": "Ventes",
'author': "Le Filament", "author": "Le Filament",
'website': "https://www.le-filament.com", "website": "https://www.le-filament.com",
'version': '14.0.1.0.1', "version": "14.0.1.0.1",
'license': "AGPL-3", "license": "AGPL-3",
'depends': [ "depends": [
'product', "fumoc_partner",
'product_expiry', "product_expiry",
'sale_stock', "stock_picking_invoice_link",
'fumoc_partner',
'stock_picking_invoice_link',
], ],
'data': [ "data": [
# datas # datas
# views # views
'views/product_views.xml', "views/product_views.xml",
'views/res_config_settings.xml', "views/res_config_settings.xml",
'views/sale_order.xml', "views/sale_order.xml",
'views/stock_move_line.xml', "views/stock_move_line.xml",
'views/stock_picking.xml', "views/stock_picking.xml",
'views/stock_quant.xml', "views/stock_quant.xml",
# reports # reports
'report/report_deliveryslip.xml', "report/report_deliveryslip.xml",
'report/report_invoice.xml', "report/report_invoice.xml",
'report/report_pricelist.xml', "report/report_pricelist.xml",
'report/report_saleorder.xml', "report/report_saleorder.xml",
'report/report_stockpicking_operations.xml', "report/report_stockpicking_operations.xml",
# views menu # views menu
# wizard # wizard
], ],
'qweb': [ "qweb": [
# "static/src/xml/*.xml", # "static/src/xml/*.xml",
], ],
'installable': True, "installable": True,
'auto_install': False, "auto_install": False,
} }
...@@ -5,7 +5,7 @@ from odoo import models ...@@ -5,7 +5,7 @@ from odoo import models
class FumocAccountMove(models.Model): class FumocAccountMove(models.Model):
_inherit = 'account.move' _inherit = "account.move"
def _get_invoiced_lot_values(self): def _get_invoiced_lot_values(self):
""" """
...@@ -13,7 +13,6 @@ class FumocAccountMove(models.Model): ...@@ -13,7 +13,6 @@ class FumocAccountMove(models.Model):
""" """
result = super(FumocAccountMove, self)._get_invoiced_lot_values() result = super(FumocAccountMove, self)._get_invoiced_lot_values()
for lot_values in result: for lot_values in result:
lot_id = self.env['stock.production.lot'].\ lot_id = self.env["stock.production.lot"].browse(lot_values.get("lot_id"))
browse(lot_values.get('lot_id')) lot_values["expiration_date"] = lot_id.expiration_date
lot_values['expiration_date'] = lot_id.expiration_date
return result return result
...@@ -5,7 +5,7 @@ from odoo import fields, models ...@@ -5,7 +5,7 @@ from odoo import fields, models
class ProductTemplate(models.Model): class ProductTemplate(models.Model):
_inherit = 'product.template' _inherit = "product.template"
# ------------------------------------------------------ # ------------------------------------------------------
# Fields declaration # Fields declaration
......
# © 2021 Le Filament (<http://www.le-filament.com>) # © 2021 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models, api from odoo import _, api, fields, models
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError
class FumocCompany(models.Model): class FumocCompany(models.Model):
_inherit = 'res.company' _inherit = "res.company"
year_reference_lot = fields.Integer( year_reference_lot = fields.Integer(string="Année de référence lot")
string='Année de référence lot')
@api.constrains('year_reference_lot') @api.constrains("year_reference_lot")
def _check_year_reference_lot(self): def _check_year_reference_lot(self):
for r in self: for r in self:
if not 2000 < r.year_reference_lot < 2050: if not 2000 < r.year_reference_lot < 2050:
raise ValidationError( raise ValidationError(
_(
"L'année de référence renseignée (%s) ne semble pas " "L'année de référence renseignée (%s) ne semble pas "
"cohérente" % r.year_reference_lot) "cohérente" % r.year_reference_lot
)
)
...@@ -5,9 +5,10 @@ from odoo import fields, models ...@@ -5,9 +5,10 @@ from odoo import fields, models
class FumocConfigSettings(models.TransientModel): class FumocConfigSettings(models.TransientModel):
_inherit = 'res.config.settings' _inherit = "res.config.settings"
year_reference_lot = fields.Integer( year_reference_lot = fields.Integer(
string='Année de référence lot', string="Année de référence lot",
related='company_id.year_reference_lot', related="company_id.year_reference_lot",
readonly=False) readonly=False,
)
...@@ -5,17 +5,17 @@ from odoo import fields, models ...@@ -5,17 +5,17 @@ from odoo import fields, models
class FumocSaleOrder(models.Model): class FumocSaleOrder(models.Model):
_inherit = 'sale.order' _inherit = "sale.order"
departure_day_ids = fields.Many2many( departure_day_ids = fields.Many2many(
string="Jours de départ", string="Jours de départ", related="partner_id.departure_day_ids"
related='partner_id.departure_day_ids') )
res_transporter_id = fields.Many2one( res_transporter_id = fields.Many2one(
string='Transporteur', string="Transporteur", related="partner_id.res_transporter_id"
related='partner_id.res_transporter_id') )
packaging_id = fields.Many2one( packaging_id = fields.Many2one(
string="Emballage", string="Emballage", related="partner_id.packaging_id"
related='partner_id.packaging_id') )
billing_type_id = fields.Many2one( billing_type_id = fields.Many2one(
string="Type de facturation", string="Type de facturation", related="partner_id.billing_type_id"
related='partner_id.billing_type_id') )
...@@ -5,7 +5,7 @@ from odoo import models ...@@ -5,7 +5,7 @@ from odoo import models
class StockMove(models.Model): class StockMove(models.Model):
_inherit = 'stock.move' _inherit = "stock.move"
def _prepare_move_line_vals(self, quantity=None, reserved_quant=None): def _prepare_move_line_vals(self, quantity=None, reserved_quant=None):
vals = super()._prepare_move_line_vals(quantity, reserved_quant) vals = super()._prepare_move_line_vals(quantity, reserved_quant)
......
...@@ -5,22 +5,21 @@ from odoo import fields, models ...@@ -5,22 +5,21 @@ from odoo import fields, models
class FumocStockPicking(models.Model): class FumocStockPicking(models.Model):
_inherit = 'stock.picking' _inherit = "stock.picking"
# ------------------------------------------------------ # ------------------------------------------------------
# Fields declaration # Fields declaration
# ------------------------------------------------------ # ------------------------------------------------------
res_transporter_id = fields.Many2one( res_transporter_id = fields.Many2one(
string='Transporteur', string="Transporteur", related="sale_id.res_transporter_id"
related='sale_id.res_transporter_id') )
packaging_id = fields.Many2one( packaging_id = fields.Many2one(string="Emballage", related="sale_id.packaging_id")
string="Emballage",
related='sale_id.packaging_id')
partner_contact_id = fields.Many2one( partner_contact_id = fields.Many2one(
comodel_name='res.partner', comodel_name="res.partner",
string='Contact associé', string="Contact associé",
compute='_compute_partner_contact_id') compute="_compute_partner_contact_id",
)
# ------------------------------------------------------ # ------------------------------------------------------
# Compute # Compute
...@@ -30,7 +29,7 @@ class FumocStockPicking(models.Model): ...@@ -30,7 +29,7 @@ class FumocStockPicking(models.Model):
partner = r.partner_id partner = r.partner_id
is_contact = False is_contact = False
while not is_contact: while not is_contact:
if partner.type != 'contact': if partner.type != "contact":
if partner.parent_id: if partner.parent_id:
partner = partner.parent_id partner = partner.parent_id
else: else:
......
...@@ -4,12 +4,12 @@ ...@@ -4,12 +4,12 @@
import datetime import datetime
import re import re
from odoo import models, fields, api from odoo import _, api, fields, models
from odoo.exceptions import UserError from odoo.exceptions import UserError
class FumocStockProductionLot(models.Model): class FumocStockProductionLot(models.Model):
_inherit = 'stock.production.lot' _inherit = "stock.production.lot"
# ------------------------------------------------------ # ------------------------------------------------------
# Business method # Business method
...@@ -17,27 +17,29 @@ class FumocStockProductionLot(models.Model): ...@@ -17,27 +17,29 @@ class FumocStockProductionLot(models.Model):
def _get_dates(self, product_id=None, lotname=None): def _get_dates(self, product_id=None, lotname=None):
"""Replaces existing method.""" """Replaces existing method."""
mapped_fields = { mapped_fields = {
'expiration_date': 'expiration_time', "expiration_date": "expiration_time",
'use_date': 'use_time', "use_date": "use_time",
'removal_date': 'removal_time', "removal_date": "removal_time",
'alert_date': 'alert_time' "alert_date": "alert_time",
} }
res = dict.fromkeys(mapped_fields, False) res = dict.fromkeys(mapped_fields, False)
product = self.env['product.product'].browse(product_id) or self.product_id product = self.env["product.product"].browse(product_id) or self.product_id
lot_name = lotname or self.name lot_name = lotname or self.name
if product and lot_name: if product and lot_name:
if not self.env.user.company_id.year_reference_lot: if not self.env.user.company_id.year_reference_lot:
raise UserError('L\'année de référence pour les lots n\'a pas été ' raise UserError(
'configurée !') _("L'année de référence pour les lots n'a pas été " "configurée !")
suffix = re.findall('([\d]+)\D*', lot_name)[-1] )
suffix = re.findall(r"([\d]+)\D*", lot_name)[-1]
if len(suffix) >= 4: if len(suffix) >= 4:
readable_suffix = suffix[-4:] readable_suffix = suffix[-4:]
year_ref = self.env.user.company_id.year_reference_lot year_ref = self.env.user.company_id.year_reference_lot
year_index = int(readable_suffix[:1]) year_index = int(readable_suffix[:1])
year = year_ref + year_index year = year_ref + year_index
quantieme = int(readable_suffix[1:]) quantieme = int(readable_suffix[1:])
production_date = datetime.datetime(year, 1, 1) + \ production_date = datetime.datetime(year, 1, 1) + datetime.timedelta(
datetime.timedelta(days=quantieme-1) days=quantieme - 1
)
for field in mapped_fields: for field in mapped_fields:
duration = getattr(product, mapped_fields[field]) duration = getattr(product, mapped_fields[field])
if duration: if duration:
...@@ -49,13 +51,16 @@ class FumocStockProductionLot(models.Model): ...@@ -49,13 +51,16 @@ class FumocStockProductionLot(models.Model):
@api.model_create_multi @api.model_create_multi
def create(self, vals_list): def create(self, vals_list):
for vals in vals_list: for vals in vals_list:
dates = self._get_dates(vals.get('product_id') or self.env.context.get('default_product_id'), vals.get('name') or self.env.context.get('default_name')) dates = self._get_dates(
vals.get("product_id") or self.env.context.get("default_product_id"),
vals.get("name") or self.env.context.get("default_name"),
)
for d in dates: for d in dates:
if not vals.get(d): if not vals.get(d):
vals[d] = dates[d] vals[d] = dates[d]
return super().create(vals_list) return super().create(vals_list)
@api.onchange('name') @api.onchange("name")
def _onchange_name(self): def _onchange_name(self):
dates_dict = self._get_dates() dates_dict = self._get_dates()
for field, value in dates_dict.items(): for field, value in dates_dict.items():
...@@ -67,6 +72,11 @@ class FumocStockProductionLot(models.Model): ...@@ -67,6 +72,11 @@ class FumocStockProductionLot(models.Model):
res = super().name_get() res = super().name_get()
if self.env.context.get("show_qty"): if self.env.context.get("show_qty"):
res = self.browse([r[0] for r in res]).mapped( res = self.browse([r[0] for r in res]).mapped(
lambda r: (r.id, r.name and (r.name + " (en stock : %.0f)" % r.product_qty) or r.name) lambda r: (
r.id,
r.name
and (r.name + " (en stock : %.0f)" % r.product_qty)
or r.name,
)
) )
return res return res
...@@ -5,17 +5,15 @@ from odoo import fields, models ...@@ -5,17 +5,15 @@ from odoo import fields, models
class FumocStockQuant(models.Model): class FumocStockQuant(models.Model):
_inherit = 'stock.quant' _inherit = "stock.quant"
# ------------------------------------------------------ # ------------------------------------------------------
# Fields declaration # Fields declaration
# ------------------------------------------------------ # ------------------------------------------------------
expiration_date = fields.Datetime( expiration_date = fields.Datetime(
string="DLC", string="DLC", related="lot_id.expiration_date", store=True
related='lot_id.expiration_date', store=True) )
use_date = fields.Datetime( use_date = fields.Datetime(string="DDM", related="lot_id.use_date", store=True)
string="DDM",
related='lot_id.use_date', store=True)
alert_date = fields.Datetime( alert_date = fields.Datetime(
string="Alerte", string="Alerte", related="lot_id.alert_date", store=True
related='lot_id.alert_date', store=True) )
...@@ -4,10 +4,12 @@ ...@@ -4,10 +4,12 @@
from odoo import models from odoo import models
class report_product_pricelist(models.AbstractModel): class ReportProductPricelist(models.AbstractModel):
_inherit = 'report.product.report_pricelist' _inherit = "report.product.report_pricelist"
def _get_product_data(self, is_product_tmpl, product, pricelist, quantities): def _get_product_data(self, is_product_tmpl, product, pricelist, quantities):
data = super()._get_product_data(is_product_tmpl, product, pricelist, quantities) data = super()._get_product_data(
data['barcode'] = product.barcode is_product_tmpl, product, pricelist, quantities
)
data["barcode"] = product.barcode
return data return data
...@@ -4,13 +4,18 @@ ...@@ -4,13 +4,18 @@
<odoo> <odoo>
<!-- Inheritance from stock --> <!-- Inheritance from stock -->
<template id="fumoc_sale_stock_report_delivery_document" <template
inherit_id="stock.report_delivery_document"> id="fumoc_sale_stock_report_delivery_document"
inherit_id="stock.report_delivery_document"
>
<xpath expr="//t[@name='partner_header']" position="replace"> <xpath expr="//t[@name='partner_header']" position="replace">
<t t-if="partner" name="partner_header"> <t t-if="partner" name="partner_header">
<t t-set="address"> <t t-set="address">
<div t-esc="partner" t-options="{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;], &quot;no_marker&quot;: True}"/> <div
t-esc="partner"
t-options="{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;], &quot;no_marker&quot;: True}"
/>
</t> </t>
</t> </t>
</xpath> </xpath>
...@@ -23,17 +28,28 @@ ...@@ -23,17 +28,28 @@
<xpath expr="//div[@name='div_sched_date']" position="replace"> <xpath expr="//div[@name='div_sched_date']" position="replace">
<div class="col-auto" name="div_sched_date"> <div class="col-auto" name="div_sched_date">
<strong>Date :</strong> <strong>Date :</strong>
<p t-field="o.scheduled_date" t-options="{&quot;widget&quot;: &quot;date&quot;}"/> <p
t-field="o.scheduled_date"
t-options="{&quot;widget&quot;: &quot;date&quot;}"
/>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<div t-if="o.res_transporter_id" class="col-auto" name="div_transporter"> <div
t-if="o.res_transporter_id"
class="col-auto"
name="div_transporter"
>
<strong>Transporteur :</strong> <strong>Transporteur :</strong>
<p t-field="o.res_transporter_id" /> <p t-field="o.res_transporter_id" />
</div> </div>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<t t-if="o.partner_contact_id"> <t t-if="o.partner_contact_id">
<div t-if="o.partner_contact_id.delivery_note" class="col-auto" name="div_delivery_note"> <div
t-if="o.partner_contact_id.delivery_note"
class="col-auto"
name="div_delivery_note"
>
<strong>Note :</strong> <strong>Note :</strong>
<p t-field="o.partner_contact_id.delivery_note" /> <p t-field="o.partner_contact_id.delivery_note" />
</div> </div>
...@@ -42,8 +58,10 @@ ...@@ -42,8 +58,10 @@
</xpath> </xpath>
</template> </template>
<template id="fumoc_sale_stock_report_delivery_barcode" <template
inherit_id="stock.stock_report_delivery_has_serial_move_line"> id="fumoc_sale_stock_report_delivery_barcode"
inherit_id="stock.stock_report_delivery_has_serial_move_line"
>
<xpath expr="/t/td/p" position="after"> <xpath expr="/t/td/p" position="after">
<p t-if="move_line.product_id.barcode"> <p t-if="move_line.product_id.barcode">
...@@ -54,8 +72,10 @@ ...@@ -54,8 +72,10 @@
</template> </template>
<!-- Inheritance from product_expiry --> <!-- Inheritance from product_expiry -->
<template id="fumoc_sale_stock_report_delivery_document2" <template
inherit_id="product_expiry.stock_report_delivery_document_inherit_product_expiry"> id="fumoc_sale_stock_report_delivery_document2"
inherit_id="product_expiry.stock_report_delivery_document_inherit_product_expiry"
>
<xpath expr="//t[@name='expiry_date']/th" position="replace"> <xpath expr="//t[@name='expiry_date']/th" position="replace">
<th class="text-center">DLC</th> <th class="text-center">DLC</th>
...@@ -64,10 +84,16 @@ ...@@ -64,10 +84,16 @@
</template> </template>
<!-- Inheritance from product_expiry --> <!-- Inheritance from product_expiry -->
<template id="fumoc_sale_stock_report_delivery_has_serial_move_line_inherit_product_expiry" inherit_id="product_expiry.stock_report_delivery_has_serial_move_line_inherit_product_expiry"> <template
id="fumoc_sale_stock_report_delivery_has_serial_move_line_inherit_product_expiry"
inherit_id="product_expiry.stock_report_delivery_has_serial_move_line_inherit_product_expiry"
>
<xpath expr="//t[@t-if='has_expiry_date']" position="replace"> <xpath expr="//t[@t-if='has_expiry_date']" position="replace">
<t t-if="has_expiry_date"> <t t-if="has_expiry_date">
<td><span t-field="move_line.expiration_date" t-options='{"widget": "date"}'/></td> <td><span
t-field="move_line.expiration_date"
t-options='{"widget": "date"}'
/></td>
</t> </t>
</xpath> </xpath>
</template> </template>
......
...@@ -3,10 +3,17 @@ ...@@ -3,10 +3,17 @@
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<template id="fumoc_sale_stock_report_invoice_document" inherit_id="sale_stock.sale_stock_report_invoice_document"> <template
id="fumoc_sale_stock_report_invoice_document"
inherit_id="sale_stock.sale_stock_report_invoice_document"
>
<xpath expr="//div[@name='origin']" position="replace"> <xpath expr="//div[@name='origin']" position="replace">
<div class="col-auto col-3 mw-100 mb-2" t-if="o.invoice_origin" name="origin"> <div
class="col-auto col-3 mw-100 mb-2"
t-if="o.invoice_origin"
name="origin"
>
<strong>Commande :</strong> <strong>Commande :</strong>
<p class="m-0" t-field="o.invoice_origin" /> <p class="m-0" t-field="o.invoice_origin" />
</div> </div>
...@@ -23,7 +30,10 @@ ...@@ -23,7 +30,10 @@
</th> </th>
</xpath> </xpath>
<xpath expr="//table//tbody//t[@name='account_invoice_line_accountable']//td[hasclass('o_price_total')]" position="replace"> <xpath
expr="//table//tbody//t[@name='account_invoice_line_accountable']//td[hasclass('o_price_total')]"
position="replace"
>
<td class="text-right o_price_total"> <td class="text-right o_price_total">
<span class="text-nowrap" t-field="line.price_subtotal" /> <span class="text-nowrap" t-field="line.price_subtotal" />
<span class="text-nowrap" t-field="line.price_total" /> <span class="text-nowrap" t-field="line.price_total" />
......
...@@ -3,7 +3,10 @@ ...@@ -3,7 +3,10 @@
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<template id="fumoc_sale_report_pricelist_page" inherit_id="product.report_pricelist_page"> <template
id="fumoc_sale_report_pricelist_page"
inherit_id="product.report_pricelist_page"
>
<xpath expr="//table/thead/tr/th[1]" position="after"> <xpath expr="//table/thead/tr/th[1]" position="after">
<th>Codes-Barre</th> <th>Codes-Barre</th>
......
...@@ -3,7 +3,10 @@ ...@@ -3,7 +3,10 @@
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<template id="fumoc_sale_report_saleorder_document" inherit_id="sale_stock.report_saleorder_document_inherit_sale_stock"> <template
id="fumoc_sale_report_saleorder_document"
inherit_id="sale_stock.report_saleorder_document_inherit_sale_stock"
>
<xpath expr="//div[@id='informations']" position="replace"> <xpath expr="//div[@id='informations']" position="replace">
<div class="row mt32 mb32" id="informations"> <div class="row mt32 mb32" id="informations">
...@@ -11,19 +14,45 @@ ...@@ -11,19 +14,45 @@
<strong>Référence :</strong> <strong>Référence :</strong>
<p class="m-0" t-field="doc.client_order_ref" /> <p class="m-0" t-field="doc.client_order_ref" />
</div> </div>
<div t-if="doc.date_order and doc.state not in ['draft','sent']" class="col-auto col-3 mw-100 mb-2"> <div
t-if="doc.date_order and doc.state not in ['draft','sent']"
class="col-auto col-3 mw-100 mb-2"
>
<strong>Date de la commande :</strong> <strong>Date de la commande :</strong>
<p class="m-0" t-field="doc.date_order" t-options="{&quot;widget&quot;: &quot;date&quot;}"/> <p
class="m-0"
t-field="doc.date_order"
t-options="{&quot;widget&quot;: &quot;date&quot;}"
/>
</div> </div>
<div t-if="doc.date_order and doc.state in ['draft','sent']" class="col-auto col-3 mw-100 mb-2"> <div
t-if="doc.date_order and doc.state in ['draft','sent']"
class="col-auto col-3 mw-100 mb-2"
>
<strong>Date du devis :</strong> <strong>Date du devis :</strong>
<p class="m-0" t-field="doc.date_order" t-options="{&quot;widget&quot;: &quot;date&quot;}"/> <p
class="m-0"
t-field="doc.date_order"
t-options="{&quot;widget&quot;: &quot;date&quot;}"
/>
</div> </div>
<div t-if="doc.validity_date and doc.state in ['draft', 'sent']" class="col-auto col-3 mw-100 mb-2" name="expiration_date"> <div
t-if="doc.validity_date and doc.state in ['draft', 'sent']"
class="col-auto col-3 mw-100 mb-2"
name="expiration_date"
>
<strong>Expiration :</strong> <strong>Expiration :</strong>
<p class="m-0" t-field="doc.validity_date" t-options="{&quot;widget&quot;: &quot;date&quot;}"/> <p
class="m-0"
t-field="doc.validity_date"
t-options="{&quot;widget&quot;: &quot;date&quot;}"
/>
</div> </div>
<div class="col-3" t-if="doc.incoterm" groups="sale_stock.group_display_incoterm"> <div
class="col-3"
t-if="doc.incoterm"
groups="sale_stock.group_display_incoterm"
>
<strong>Incoterm :</strong> <strong>Incoterm :</strong>
<p t-field="doc.incoterm.code" /> <p t-field="doc.incoterm.code" />
</div> </div>
......
...@@ -3,8 +3,7 @@ ...@@ -3,8 +3,7 @@
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<template id="fumoc_sale_stock_report_picking" <template id="fumoc_sale_stock_report_picking" inherit_id="stock.report_picking">
inherit_id="stock.report_picking">
<xpath expr="//div[@name='div_sched_date']" position="after"> <xpath expr="//div[@name='div_sched_date']" position="after">
<div class="col-auto" name="div_transporter"> <div class="col-auto" name="div_transporter">
...@@ -20,7 +19,11 @@ ...@@ -20,7 +19,11 @@
<xpath expr="//table[1]" position="before"> <xpath expr="//table[1]" position="before">
<div class="row mt48 mb32"> <div class="row mt48 mb32">
<t t-if="o.partner_contact_id"> <t t-if="o.partner_contact_id">
<div t-if="o.partner_contact_id.delivery_note" class="col-auto" name="div_delivery_note"> <div
t-if="o.partner_contact_id.delivery_note"
class="col-auto"
name="div_delivery_note"
>
<strong>Note :</strong> <strong>Note :</strong>
<p t-field="o.partner_contact_id.delivery_note" /> <p t-field="o.partner_contact_id.delivery_note" />
</div> </div>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter