sale_usability+sale_stock_usability: update FR translation
sale_usability: remove wizard discount on all lines, which is mostly native
This commit is contained in:
@@ -4,42 +4,38 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 14.0\n"
|
"Project-Id-Version: Odoo Server 16.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-12-03 21:31+0000\n"
|
"POT-Creation-Date: 2024-07-04 16:09+0000\n"
|
||||||
"PO-Revision-Date: 2020-12-03 21:31+0000\n"
|
"PO-Revision-Date: 2024-07-04 16:09+0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: Alexis de Lattre <alexis.delattre@akretion.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
|
"Language: fr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: \n"
|
"Content-Transfer-Encoding: \n"
|
||||||
"Plural-Forms: \n"
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
#. module: sale_stock_usability
|
#. module: sale_stock_usability
|
||||||
#: model:ir.model.fields.selection,name:sale_stock_usability.selection__sale_order__picking_status__cancel
|
#: model:ir.model.fields,help:sale_stock_usability.field_sale_order__picking_policy
|
||||||
msgid "Delivery Cancelled"
|
msgid ""
|
||||||
msgstr "Livraison annulée"
|
"If you deliver all products at once, the delivery order will be scheduled "
|
||||||
|
"based on the greatest product lead time. Otherwise, it will be based on the "
|
||||||
#. module: sale_stock_usability
|
"shortest."
|
||||||
#: 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
|
|
||||||
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 ""
|
msgstr ""
|
||||||
|
"Si vous livrez tous les produits en même temps, le bon de livraison sera "
|
||||||
|
"planifié sur base du produit avec le délai le plus long. Autrement, il le sera"
|
||||||
|
" sur le plus court."
|
||||||
|
|
||||||
#. module: sale_stock_usability
|
#. module: sale_stock_usability
|
||||||
#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__incoterm
|
#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__incoterm
|
||||||
msgid "Incoterm"
|
msgid "Incoterm"
|
||||||
msgstr ""
|
msgstr "Incoterm"
|
||||||
|
|
||||||
|
#. module: sale_stock_usability
|
||||||
|
#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__incoterm_location
|
||||||
|
msgid "Incoterm Location"
|
||||||
|
msgstr "Lieu associé à l'incoterm"
|
||||||
|
|
||||||
#. module: sale_stock_usability
|
#. module: sale_stock_usability
|
||||||
#: model:ir.model.fields,help:sale_stock_usability.field_sale_order__incoterm
|
#: model:ir.model.fields,help:sale_stock_usability.field_sale_order__incoterm
|
||||||
@@ -47,33 +43,8 @@ msgid ""
|
|||||||
"International Commercial Terms are a series of predefined commercial terms "
|
"International Commercial Terms are a series of predefined commercial terms "
|
||||||
"used in international transactions."
|
"used in international transactions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Les Incoterms sont une série de termes commerciaux prédéfinie utilisés dans "
|
"Les termes commerciaux internationaux sont une série de termes commerciaux "
|
||||||
"les transactions internationales."
|
"prédéfinis 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
|
|
||||||
msgid "Not Fully Delivered"
|
|
||||||
msgstr "Livraison à faire"
|
|
||||||
|
|
||||||
#. module: sale_stock_usability
|
|
||||||
#: 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
|
|
||||||
#: model:ir.model.fields.selection,name:sale_stock_usability.selection__sale_order__picking_status__partially_delivered
|
|
||||||
msgid "Partially Delivered"
|
|
||||||
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 "Statut de la livraison"
|
|
||||||
|
|
||||||
#. module: sale_stock_usability
|
#. module: sale_stock_usability
|
||||||
#: model:ir.model,name:sale_stock_usability.model_sale_order
|
#: model:ir.model,name:sale_stock_usability.model_sale_order
|
||||||
@@ -81,11 +52,12 @@ msgid "Sales Order"
|
|||||||
msgstr "Bon de commande"
|
msgstr "Bon de commande"
|
||||||
|
|
||||||
#. module: sale_stock_usability
|
#. module: sale_stock_usability
|
||||||
#: model:ir.model.fields.selection,name:sale_stock_usability.selection__sale_order__picking_status__to_deliver
|
#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__picking_policy
|
||||||
msgid "To Deliver"
|
msgid "Shipping Policy"
|
||||||
msgstr "À livrer"
|
msgstr "Politique d'expédition"
|
||||||
|
|
||||||
#. module: sale_stock_usability
|
#. module: sale_stock_usability
|
||||||
#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__warehouse_id
|
#: model:ir.model.fields,field_description:sale_stock_usability.field_sale_order__warehouse_id
|
||||||
|
#: model_terms:ir.ui.view,arch_db:sale_stock_usability.view_order_product_search
|
||||||
msgid "Warehouse"
|
msgid "Warehouse"
|
||||||
msgstr "Entrepôt"
|
msgstr "Entrepôt"
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
'views/account_move.xml',
|
'views/account_move.xml',
|
||||||
# 'views/res_company.xml', TODO uncomment once account_usa is ported
|
# 'views/res_company.xml', TODO uncomment once account_usa is ported
|
||||||
"views/res_partner.xml",
|
"views/res_partner.xml",
|
||||||
'wizards/sale_invoice_discount_all_lines_view.xml',
|
|
||||||
'security/ir.model.access.csv',
|
|
||||||
],
|
],
|
||||||
'installable': True,
|
'installable': True,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,63 +4,21 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 14.0\n"
|
"Project-Id-Version: Odoo Server 16.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-09-18 08:22+0000\n"
|
"POT-Creation-Date: 2024-07-04 16:06+0000\n"
|
||||||
"PO-Revision-Date: 2022-09-18 18:19+0200\n"
|
"PO-Revision-Date: 2024-07-04 16:06+0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: \n"
|
||||||
"Language: fr\n"
|
"Plural-Forms: \n"
|
||||||
"X-Generator: Poedit 2.0.4\n"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields.selection,name:sale_usability.selection__sale_invoice_discount_all_lines__line_type__all
|
|
||||||
msgid "All Lines"
|
|
||||||
msgstr "Toutes les lignes"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields.selection,name:sale_usability.selection__sale_invoice_discount_all_lines__line_type__products
|
|
||||||
msgid "All Product Lines"
|
|
||||||
msgstr "Toutes les gammes de produits"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields.selection,name:sale_usability.selection__sale_invoice_discount_all_lines__line_type__services
|
|
||||||
msgid "All Service Lines"
|
|
||||||
msgstr "Toutes les gammes de services"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: code:addons/sale_usability/wizards/sale_invoice_discount_all_lines.py:0
|
|
||||||
#, python-format
|
|
||||||
msgid "Applied a {discount}% discount on {line_type}."
|
|
||||||
msgstr "Remise de {discount} % appliquée sur {line_type}."
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.sale_invoice_discount_all_lines_form
|
|
||||||
msgid "Apply"
|
|
||||||
msgstr "Appliquer"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model,name:sale_usability.model_sale_invoice_discount_all_lines
|
|
||||||
msgid "Apply discount on all lines of a sale order or invoice"
|
|
||||||
msgstr "Appliquer une remise sur toutes les lignes d'un bon de commande ou d'une facture"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__line_type
|
|
||||||
msgid "Apply on"
|
|
||||||
msgstr "Appliquer à"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.view_order_form
|
#: model_terms:ir.ui.view,arch_db:sale_usability.view_order_form
|
||||||
msgid "Are you sure you want to cancel this sale order?"
|
msgid "Are you sure you want to cancel this sale order?"
|
||||||
msgstr "Êtes-vous sûr de vouloir annuler cette commande ?"
|
msgstr "Êtes-vous sûr de vouloir annuler cette commande client ?"
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.sale_invoice_discount_all_lines_form
|
|
||||||
msgid "Cancel"
|
|
||||||
msgstr "Annuler"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model,name:sale_usability.model_res_company
|
#: model:ir.model,name:sale_usability.model_res_company
|
||||||
@@ -70,7 +28,7 @@ msgstr "Sociétés"
|
|||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model,name:sale_usability.model_res_partner
|
#: model:ir.model,name:sale_usability.model_res_partner
|
||||||
msgid "Contact"
|
msgid "Contact"
|
||||||
msgstr "Contact"
|
msgstr ""
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__create_uid
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__create_uid
|
||||||
@@ -88,8 +46,8 @@ msgid ""
|
|||||||
"Creation date of draft/sent orders,\n"
|
"Creation date of draft/sent orders,\n"
|
||||||
"Confirmation date of confirmed orders."
|
"Confirmation date of confirmed orders."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Date de création des ordres en brouillons/envoyés,\n"
|
"Date de création des commandes à l'état brouillon/envoyés.\n"
|
||||||
"Date de confirmation des commandes validées."
|
"Date de confirmation des commandes confirmées."
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.view_sales_order_line_filter
|
#: model_terms:ir.ui.view,arch_db:sale_usability.view_sales_order_line_filter
|
||||||
@@ -107,55 +65,21 @@ msgid "Delivery Address"
|
|||||||
msgstr "Adresse de livraison"
|
msgstr "Adresse de livraison"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__discount
|
|
||||||
msgid "Discount"
|
|
||||||
msgstr "Remise"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: code:addons/sale_usability/wizards/sale_invoice_discount_all_lines.py:0
|
|
||||||
#, python-format
|
|
||||||
msgid "Discount cannot be negative."
|
|
||||||
msgstr "La remise ne peut être négative."
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.actions.act_window,name:sale_usability.account_move_discount_all_lines_action
|
|
||||||
#: model:ir.actions.act_window,name:sale_usability.sale_order_discount_all_lines_action
|
|
||||||
msgid "Discount on all lines"
|
|
||||||
msgstr "Remise sur toutes les lignes"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_move__display_name
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_product_template__display_name
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_res_company__display_name
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_res_partner__display_name
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__display_name
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__display_name
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__display_name
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order_line__display_name
|
|
||||||
msgid "Display Name"
|
msgid "Display Name"
|
||||||
msgstr "Nom affiché"
|
msgstr "Nom affiché"
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: code:addons/sale_usability/models/sale_order.py:0
|
|
||||||
#, python-format
|
|
||||||
msgid ""
|
|
||||||
"Due to the update of the ordered quantity on line '%s', the price has been updated according to pricelist '%s'.\n"
|
|
||||||
"Old price: %s\n"
|
|
||||||
"New price: %s"
|
|
||||||
msgstr ""
|
|
||||||
"En raison de la mise à jour de la quantité commandée sur la ligne '%s', le prix a été mis à jour selon la liste de "
|
|
||||||
"prix '%s'.\n"
|
|
||||||
"Ancien prix : %s\n"
|
|
||||||
"Nouveau prix : %s"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,help:sale_usability.field_product_product__expense_policy
|
#: model:ir.model.fields,help:sale_usability.field_product_product__expense_policy
|
||||||
#: model:ir.model.fields,help:sale_usability.field_product_template__expense_policy
|
#: model:ir.model.fields,help:sale_usability.field_product_template__expense_policy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Expenses and vendor bills can be re-invoiced to a customer.With this option, a validated expense can be re-invoice to "
|
"Expenses and vendor bills can be re-invoiced to a customer.With this option,"
|
||||||
"a customer at its cost or sales price."
|
" a validated expense can be re-invoice to a customer at its cost or sales "
|
||||||
|
"price."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Les notes de frais et les factures des fournisseurs peuvent être refacturées à un client. Avec cette option, une "
|
"Les notes de frais et les factures fournisseurs peuvent être refacturées à "
|
||||||
"dépense validée peut être refacturée au client à son coût ou à son prix de vente."
|
"un client. Avec cette option, une dépense validée peut être refacturée au "
|
||||||
|
"client à son coût ou à son prix de vente."
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__fiscal_position_id
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__fiscal_position_id
|
||||||
@@ -165,11 +89,13 @@ msgstr "Position fiscale"
|
|||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,help:sale_usability.field_sale_order__fiscal_position_id
|
#: model:ir.model.fields,help:sale_usability.field_sale_order__fiscal_position_id
|
||||||
msgid ""
|
msgid ""
|
||||||
"Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices.The default "
|
"Fiscal positions are used to adapt taxes and accounts for particular "
|
||||||
"value comes from the customer."
|
"customers or sales orders/invoices.The default value comes from the "
|
||||||
|
"customer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Les positions fiscales sont utilisées pour adapter les taxes et les comptes comptables par clients ou par bons de "
|
"Les positions fiscales sont utilisées pour adapter les taxes et les comptes "
|
||||||
"commande/factures. La valeur par défaut sera celle renseignée sur le client."
|
"comptables pour un client spécifique ou pour une commande/facture. La valeur"
|
||||||
|
" par défaut sera celle renseignée sur le client."
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__has_attachment
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__has_attachment
|
||||||
@@ -179,41 +105,17 @@ msgstr "Possède une pièce jointe"
|
|||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__has_discount
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__has_discount
|
||||||
msgid "Has Discount"
|
msgid "Has Discount"
|
||||||
msgstr "A une réduction"
|
msgstr "A une remise"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_move__id
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_product_template__id
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_res_company__id
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_res_partner__id
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__id
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__id
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__id
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order_line__id
|
|
||||||
msgid "ID"
|
msgid "ID"
|
||||||
msgstr "ID"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields,help:sale_usability.field_sale_order__pricelist_id
|
|
||||||
msgid "If you change the pricelist, only newly added lines will be affected."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Si vous modifiez la liste de prix; seules les lignes de bon de commande ajoutées après cette modification seront "
|
|
||||||
"affectées."
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,help:sale_usability.field_sale_order_line__product_barcode
|
#: model:ir.model.fields,help:sale_usability.field_sale_order_line__product_barcode
|
||||||
msgid "International Article Number used for product identification."
|
msgid "International Article Number used for product identification."
|
||||||
msgstr "Numéro d'article international (IAN) utilisé pour identifier cet article."
|
msgstr "Numéro d'article international utilisé pour identifier ce produit."
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__move_id
|
|
||||||
msgid "Invoice"
|
|
||||||
msgstr "Facture"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: code:addons/sale_usability/wizards/sale_invoice_discount_all_lines.py:0
|
|
||||||
#, python-format
|
|
||||||
msgid "Invoice '%s' is not in draft state."
|
|
||||||
msgstr "La facture '%s' n'est pas en brouillon."
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__partner_invoice_id
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__partner_invoice_id
|
||||||
@@ -232,13 +134,7 @@ msgid "Journal Entry"
|
|||||||
msgstr "Pièce comptable"
|
msgstr "Pièce comptable"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_move____last_update
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_product_template____last_update
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_res_company____last_update
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_res_partner____last_update
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines____last_update
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines____last_update
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order____last_update
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order_line____last_update
|
|
||||||
msgid "Last Modified on"
|
msgid "Last Modified on"
|
||||||
msgstr "Dernière modification le"
|
msgstr "Dernière modification le"
|
||||||
|
|
||||||
@@ -261,13 +157,11 @@ msgstr "Mentions légales figurant sur les devis"
|
|||||||
#: model:ir.model.fields,help:sale_usability.field_product_product__service_type
|
#: model:ir.model.fields,help:sale_usability.field_product_product__service_type
|
||||||
#: model:ir.model.fields,help:sale_usability.field_product_template__service_type
|
#: model:ir.model.fields,help:sale_usability.field_product_template__service_type
|
||||||
msgid ""
|
msgid ""
|
||||||
"Manually set quantities on order: Invoice based on the manually entered quantity, without creating an analytic "
|
"Manually set quantities on order: Invoice based on the manually entered quantity, without creating an analytic account.\n"
|
||||||
"account.\n"
|
|
||||||
"Timesheets on contract: Invoice based on the tracked hours on the related timesheet.\n"
|
"Timesheets on contract: Invoice based on the tracked hours on the related timesheet.\n"
|
||||||
"Create a task and track hours: Create a task on the sales order validation and track the work hours."
|
"Create a task and track hours: Create a task on the sales order validation and track the work hours."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Définition manuelle des quantités sur la commande : facture selon les quantités saisies manuellement, sans création de "
|
"Définition manuelle des quantités sur la commande : facture selon les quantités saisies manuellement, sans création de compte analytique.\n"
|
||||||
"compte analytique.\n"
|
|
||||||
" Feuilles de temps sur les contrats : facture selon les heures passées en fonction de la feuille de temps liée.\n"
|
" Feuilles de temps sur les contrats : facture selon les heures passées en fonction de la feuille de temps liée.\n"
|
||||||
" Créer une tâche et suivre les heures : crée une tâche à validation de la commande et effectue un suivi du temps passé."
|
" Créer une tâche et suivre les heures : crée une tâche à validation de la commande et effectue un suivi du temps passé."
|
||||||
|
|
||||||
@@ -277,9 +171,9 @@ msgid "Missing Attachment"
|
|||||||
msgstr "Pièce jointe manquante"
|
msgstr "Pièce jointe manquante"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_invoice_discount_all_lines__sale_id
|
#: model:ir.model,name:sale_usability.model_sale_invoice_discount_all_lines
|
||||||
msgid "Order"
|
msgid "None"
|
||||||
msgstr "Commande"
|
msgstr "Aucune"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__date_order
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__date_order
|
||||||
@@ -293,36 +187,30 @@ msgid ""
|
|||||||
"Ordered Quantity: Invoice quantities ordered by the customer.\n"
|
"Ordered Quantity: Invoice quantities ordered by the customer.\n"
|
||||||
"Delivered Quantity: Invoice quantities delivered to the customer."
|
"Delivered Quantity: Invoice quantities delivered to the customer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Quantité commandée : facturez les quantités commandées par le client.\n"
|
"Quantité commandée : facture les quantités commandées par le client.\n"
|
||||||
"Quantité livrée : facturez les quantités livrées au client."
|
"Quantité livrée : facture les quantités livrées au client."
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__payment_term_id
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__payment_term_id
|
||||||
msgid "Payment Terms"
|
msgid "Payment Terms"
|
||||||
msgstr "Conditions de paiement"
|
msgstr "Conditions de paiement"
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: code:addons/sale_usability/models/sale_order.py:0
|
|
||||||
#, python-format
|
|
||||||
msgid "Price updated"
|
|
||||||
msgstr "Prix mis à jour"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__pricelist_id
|
|
||||||
msgid "Pricelist"
|
|
||||||
msgstr "Liste de prix"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.actions.act_window,name:sale_usability.product_pricelist_item_action
|
#: model:ir.actions.act_window,name:sale_usability.product_pricelist_item_action
|
||||||
#: model:ir.ui.menu,name:sale_usability.product_pricelist_item_menu
|
#: model:ir.ui.menu,name:sale_usability.product_pricelist_item_menu
|
||||||
msgid "Pricelist Items"
|
msgid "Price Rules"
|
||||||
msgstr "Éléments de la liste de prix"
|
msgstr "Règles des listes de prix"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.view_order_form
|
#: model_terms:ir.ui.view,arch_db:sale_usability.view_order_form
|
||||||
msgid "Print"
|
msgid "Print"
|
||||||
msgstr "Imprimer"
|
msgstr "Imprimer"
|
||||||
|
|
||||||
|
#. module: sale_usability
|
||||||
|
#: model:ir.model,name:sale_usability.model_product_template
|
||||||
|
msgid "Product"
|
||||||
|
msgstr "Produit"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order_line__product_barcode
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_order_line__product_barcode
|
||||||
msgid "Product Barcode"
|
msgid "Product Barcode"
|
||||||
@@ -331,17 +219,7 @@ msgstr "Code barre du produit"
|
|||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.ui.menu,name:sale_usability.product_category_sale_menu
|
#: model:ir.ui.menu,name:sale_usability.product_category_sale_menu
|
||||||
msgid "Product Categories"
|
msgid "Product Categories"
|
||||||
msgstr "Catégories d'articles"
|
msgstr "Catégories de produit"
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model,name:sale_usability.model_product_template
|
|
||||||
msgid "Product Template"
|
|
||||||
msgstr "Modèle d'article"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.view_company_form
|
|
||||||
msgid "Quotation Legal Terms"
|
|
||||||
msgstr "Mentions légales figurant sur les devis"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_product_product__expense_policy
|
#: model:ir.model.fields,field_description:sale_usability.field_product_product__expense_policy
|
||||||
@@ -349,37 +227,17 @@ msgstr "Mentions légales figurant sur les devis"
|
|||||||
msgid "Re-Invoice Expenses"
|
msgid "Re-Invoice Expenses"
|
||||||
msgstr "Re-facturer les notes de frais"
|
msgstr "Re-facturer les notes de frais"
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_bank_statement_line__sale_count
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_move__sale_count
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_payment__sale_count
|
|
||||||
msgid "Sale Order Count"
|
|
||||||
msgstr "Nombre de commandes clients"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_bank_statement_line__sale_ids
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_move__sale_ids
|
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_account_payment__sale_ids
|
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.account_invoice_form
|
|
||||||
msgid "Sale Orders"
|
|
||||||
msgstr "Bons de commande"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.sale_report_tree
|
|
||||||
msgid "Sales Analysis"
|
|
||||||
msgstr "Analyse des ventes"
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model,name:sale_usability.model_sale_order
|
#: model:ir.model,name:sale_usability.model_sale_order
|
||||||
msgid "Sales Order"
|
msgid "Sales Order"
|
||||||
msgstr "Bon de commande client"
|
msgstr "Bon de commande"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model,name:sale_usability.model_sale_order_line
|
#: model:ir.model,name:sale_usability.model_sale_order_line
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_product_product__sale_line_warn
|
#: model:ir.model.fields,field_description:sale_usability.field_product_product__sale_line_warn
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_product_template__sale_line_warn
|
#: model:ir.model.fields,field_description:sale_usability.field_product_template__sale_line_warn
|
||||||
msgid "Sales Order Line"
|
msgid "Sales Order Line"
|
||||||
msgstr "Ligne de bons de commande"
|
msgstr "Ligne de commande"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_res_partner__sale_warn
|
#: model:ir.model.fields,field_description:sale_usability.field_res_partner__sale_warn
|
||||||
@@ -393,16 +251,18 @@ msgstr "Avertissements de vente"
|
|||||||
#: model:ir.model.fields,help:sale_usability.field_res_partner__sale_warn
|
#: model:ir.model.fields,help:sale_usability.field_res_partner__sale_warn
|
||||||
#: model:ir.model.fields,help:sale_usability.field_res_users__sale_warn
|
#: model:ir.model.fields,help:sale_usability.field_res_users__sale_warn
|
||||||
msgid ""
|
msgid ""
|
||||||
"Selecting the \"Warning\" option will notify user with the message, Selecting \"Blocking Message\" will throw an "
|
"Selecting the \"Warning\" option will notify user with the message, "
|
||||||
"exception with the message and block the flow. The Message has to be written in the next field."
|
"Selecting \"Blocking Message\" will throw an exception with the message and "
|
||||||
|
"block the flow. The Message has to be written in the next field."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Sélectionner l'option 'Avertissement' informera l'utilisateur du Message. Sélectionner 'Message Bloquant' lancera une "
|
"Sélectionner l'option 'Avertissement' affichera le message à l'utilisateur. "
|
||||||
"exception avec le message et bloquera le flux. Le message doit être écrit dans le champ suivant."
|
"Sélectionner 'Message Bloquant' lancera une exception avec le message et "
|
||||||
|
"bloquera le flux. Le message doit être écrit dans le champ suivant."
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.view_order_form
|
#: model_terms:ir.ui.view,arch_db:sale_usability.view_order_form
|
||||||
msgid "Send Order Acknowledgement"
|
msgid "Send Order Acknowledgement"
|
||||||
msgstr "Confirmation de commande"
|
msgstr "Envoyer une confirmation de commande"
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model_terms:ir.ui.view,arch_db:sale_usability.view_sales_order_filter
|
#: model_terms:ir.ui.view,arch_db:sale_usability.view_sales_order_filter
|
||||||
@@ -412,16 +272,10 @@ msgstr "État"
|
|||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__amount_tax
|
#: model:ir.model.fields,field_description:sale_usability.field_sale_order__amount_tax
|
||||||
msgid "Taxes"
|
msgid "Taxes"
|
||||||
msgstr "Taxes"
|
msgstr ""
|
||||||
|
|
||||||
#. module: sale_usability
|
|
||||||
#: code:addons/sale_usability/wizards/sale_invoice_discount_all_lines.py:0
|
|
||||||
#, python-format
|
|
||||||
msgid "There are no lines to apply the discount on."
|
|
||||||
msgstr "Il n'y a pas de lignes sur lesquelles appliquer la remise."
|
|
||||||
|
|
||||||
#. module: sale_usability
|
#. module: sale_usability
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_product_product__service_type
|
#: model:ir.model.fields,field_description:sale_usability.field_product_product__service_type
|
||||||
#: model:ir.model.fields,field_description:sale_usability.field_product_template__service_type
|
#: model:ir.model.fields,field_description:sale_usability.field_product_template__service_type
|
||||||
msgid "Track Service"
|
msgid "Track Service"
|
||||||
msgstr "Opérateur de suivi"
|
msgstr "Suivre le service"
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
|
||||||
access_sale_invoice_discount_all_lines_sale,Full access on sale.invoice.discount.all.lines to Sale user,model_sale_invoice_discount_all_lines,sales_team.group_sale_salesman,1,1,1,1
|
|
||||||
access_sale_invoice_discount_all_lines_invoice,Full access on sale.invoice.discount.all.lines to Invoice user,model_sale_invoice_discount_all_lines,account.group_account_invoice,1,1,1,1
|
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
<!-- This is in the sale_usability module instead of the product_usability module
|
<!-- This is in the sale_usability module instead of the product_usability module
|
||||||
because the parent menu entry is in the sale module -->
|
because the parent menu entry is in the sale module -->
|
||||||
<record id="product_pricelist_item_action" model="ir.actions.act_window">
|
<record id="product_pricelist_item_action" model="ir.actions.act_window">
|
||||||
<field name="name">Pricelist Items</field>
|
<field name="name">Price Rules</field>
|
||||||
<field name="res_model">product.pricelist.item</field>
|
<field name="res_model">product.pricelist.item</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">tree,form</field>
|
||||||
<field name="context">{'product_pricelist_item_main_view': True}</field>
|
<field name="context">{'product_pricelist_item_main_view': True}</field>
|
||||||
|
|||||||
@@ -2,94 +2,12 @@
|
|||||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
# 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 api, models, fields, _
|
from odoo import models, fields
|
||||||
from odoo.tools import float_compare
|
|
||||||
from odoo.exceptions import UserError
|
|
||||||
|
|
||||||
|
|
||||||
class SaleInvoiceDiscountAllLines(models.TransientModel):
|
class SaleInvoiceDiscountAllLines(models.TransientModel):
|
||||||
_name = 'sale.invoice.discount.all.lines'
|
_name = 'sale.invoice.discount.all.lines'
|
||||||
_description = 'Apply discount on all lines of a sale order or invoice'
|
_description = 'None'
|
||||||
|
# Remove because this feature is now mostly native
|
||||||
@api.model
|
# TODO 04/07/2024 remove later to avoid ORM bug: it crashes when reloading module
|
||||||
def default_get(self, fields_list):
|
# KeyError: 'sale.invoice.discount.all.lines'
|
||||||
res = super().default_get(fields_list)
|
|
||||||
if self._context.get('active_id'):
|
|
||||||
if self._context.get('active_model') == 'sale.order':
|
|
||||||
res['sale_id'] = self._context['active_id']
|
|
||||||
elif self._context.get('active_model') == 'account.move':
|
|
||||||
res['move_id'] = self._context['active_id']
|
|
||||||
move = self.env['account.move'].browse(res['move_id'])
|
|
||||||
if move.state != 'draft':
|
|
||||||
raise UserError(
|
|
||||||
_("Invoice '%s' is not in draft state.")
|
|
||||||
% self.move_id.display_name)
|
|
||||||
else:
|
|
||||||
# I don't translate this because it should never happen.
|
|
||||||
raise UserError(
|
|
||||||
"This wizard can only work on a sale order or an invoice.")
|
|
||||||
else:
|
|
||||||
# I don't translate this because it should never happen.
|
|
||||||
raise UserError("Missing active_id in context. It should never happen.")
|
|
||||||
return res
|
|
||||||
|
|
||||||
sale_id = fields.Many2one(
|
|
||||||
'sale.order', string='Order', readonly=True)
|
|
||||||
move_id = fields.Many2one(
|
|
||||||
'account.move', string='Invoice', readonly=True)
|
|
||||||
discount = fields.Float(
|
|
||||||
string='Discount', digits='Discount', required=True)
|
|
||||||
line_type = fields.Selection([
|
|
||||||
('all', 'All Lines'),
|
|
||||||
('products', 'All Product Lines'),
|
|
||||||
('services', 'All Service Lines'),
|
|
||||||
], default='all', required=True, string='Apply on')
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
prec = self.env['decimal.precision'].precision_get('Discount')
|
|
||||||
if float_compare(self.discount, 0, precision_digits=prec) < 0:
|
|
||||||
raise UserError(_("Discount cannot be negative."))
|
|
||||||
if self.sale_id:
|
|
||||||
record = self.sale_id
|
|
||||||
line_obj = self.env['sale.order.line']
|
|
||||||
domain = [('order_id', '=', self.sale_id.id)]
|
|
||||||
elif self.move_id:
|
|
||||||
record = self.move_id
|
|
||||||
if self.move_id.state != 'draft':
|
|
||||||
raise UserError(_(
|
|
||||||
"Invoice '%s' is not in draft state.") % self.move_id.display_name)
|
|
||||||
line_obj = self.env['account.move.line']
|
|
||||||
domain = [
|
|
||||||
('move_id', '=', self.move_id.id),
|
|
||||||
('exclude_from_invoice_tab', '=', False),
|
|
||||||
]
|
|
||||||
else:
|
|
||||||
# I don't translate this because it should never happen.
|
|
||||||
raise UserError(
|
|
||||||
"The wizard is not linked to a sale order nor an invoice. "
|
|
||||||
"This should never happen.")
|
|
||||||
domain += [('display_type', '=', False)]
|
|
||||||
if self.line_type == 'products':
|
|
||||||
domain += [
|
|
||||||
('product_id', '!=', False),
|
|
||||||
('product_id.type', '!=', 'service'),
|
|
||||||
]
|
|
||||||
elif self.line_type == 'services':
|
|
||||||
domain += [
|
|
||||||
('product_id', '!=', False),
|
|
||||||
('product_id.type', '=', 'service'),
|
|
||||||
]
|
|
||||||
lines = line_obj.search(domain)
|
|
||||||
if not lines:
|
|
||||||
raise UserError(_("There are no lines to apply the discount on."))
|
|
||||||
lines.with_context(check_move_validity=False).write({'discount': self.discount})
|
|
||||||
if self.move_id:
|
|
||||||
self.move_id.with_context(
|
|
||||||
check_move_validity=False)._recompute_dynamic_lines(
|
|
||||||
recompute_all_taxes=True)
|
|
||||||
self.move_id._check_balanced()
|
|
||||||
record.message_post(body=_(
|
|
||||||
"Applied a {discount}% discount on {line_type}.").format(
|
|
||||||
discount=self.discount,
|
|
||||||
line_type=self._fields['line_type'].convert_to_export(
|
|
||||||
self.line_type, self)))
|
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright 2022 Akretion France (http://www.akretion.com/)
|
|
||||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
|
||||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
||||||
-->
|
|
||||||
|
|
||||||
<odoo>
|
|
||||||
|
|
||||||
<record id="sale_invoice_discount_all_lines_form" model="ir.ui.view">
|
|
||||||
<field name="model">sale.invoice.discount.all.lines</field>
|
|
||||||
<field name="arch" type="xml">
|
|
||||||
<form>
|
|
||||||
<group name="main">
|
|
||||||
<field name="sale_id" attrs="{'invisible': [('sale_id', '=', False)]}"/>
|
|
||||||
<field name="move_id" attrs="{'invisible': [('move_id', '=', False)]}"/>
|
|
||||||
<label for="discount"/>
|
|
||||||
<div name="discount">
|
|
||||||
<field name="discount" class="oe_inline"/> %%
|
|
||||||
</div>
|
|
||||||
<field name="line_type"/>
|
|
||||||
</group>
|
|
||||||
<footer>
|
|
||||||
<button name="run" type="object"
|
|
||||||
class="btn-primary" string="Apply"/>
|
|
||||||
<button special="cancel" string="Cancel" class="btn-default"/>
|
|
||||||
</footer>
|
|
||||||
</form>
|
|
||||||
</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record id="account_move_discount_all_lines_action" model="ir.actions.act_window">
|
|
||||||
<field name="name">Discount on all lines</field>
|
|
||||||
<field name="res_model">sale.invoice.discount.all.lines</field>
|
|
||||||
<field name="view_mode">form</field>
|
|
||||||
<field name="target">new</field>
|
|
||||||
<field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/>
|
|
||||||
<field name="binding_model_id" ref="account.model_account_move" />
|
|
||||||
<field name="binding_view_types">form</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
<record id="sale_order_discount_all_lines_action" model="ir.actions.act_window">
|
|
||||||
<field name="name">Discount on all lines</field>
|
|
||||||
<field name="res_model">sale.invoice.discount.all.lines</field>
|
|
||||||
<field name="view_mode">form</field>
|
|
||||||
<field name="target">new</field>
|
|
||||||
<field name="groups_id" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
|
|
||||||
<field name="binding_model_id" ref="sale.model_sale_order" />
|
|
||||||
<field name="binding_view_types">form</field>
|
|
||||||
</record>
|
|
||||||
|
|
||||||
</odoo>
|
|
||||||
Reference in New Issue
Block a user