From d6981edc8d51058c10b887eb3997aca6ef5ab23d Mon Sep 17 00:00:00 2001 From: Alfredo Date: Fri, 7 Feb 2025 09:46:20 +0100 Subject: [PATCH] [16.0][ADD] account_invoice_section_repair: Account invoice with repair info section. --- account_invoice_sale_info_section/README.rst | 31 ++++++++++++ account_invoice_sale_info_section/__init__.py | 2 + .../__manifest__.py | 16 ++++++ .../account_invoice_sale_info_section.pot | 50 +++++++++++++++++++ .../i18n/en_GB.po | 50 +++++++++++++++++++ account_invoice_sale_info_section/i18n/es.po | 50 +++++++++++++++++++ .../models/__init__.py | 1 + .../models/sale_order.py | 30 +++++++++++ .../wizard/__init__.py | 1 + .../wizard/sale_advance_payment_inv.py | 12 +++++ .../addons/account_invoice_sale_info_section | 1 + .../setup.py | 6 +++ 12 files changed, 250 insertions(+) create mode 100644 account_invoice_sale_info_section/README.rst create mode 100644 account_invoice_sale_info_section/__init__.py create mode 100644 account_invoice_sale_info_section/__manifest__.py create mode 100644 account_invoice_sale_info_section/i18n/account_invoice_sale_info_section.pot create mode 100644 account_invoice_sale_info_section/i18n/en_GB.po create mode 100644 account_invoice_sale_info_section/i18n/es.po create mode 100644 account_invoice_sale_info_section/models/__init__.py create mode 100644 account_invoice_sale_info_section/models/sale_order.py create mode 100644 account_invoice_sale_info_section/wizard/__init__.py create mode 100644 account_invoice_sale_info_section/wizard/sale_advance_payment_inv.py create mode 120000 setup/account_invoice_sale_info_section/odoo/addons/account_invoice_sale_info_section create mode 100644 setup/account_invoice_sale_info_section/setup.py diff --git a/account_invoice_sale_info_section/README.rst b/account_invoice_sale_info_section/README.rst new file mode 100644 index 0000000..2e94577 --- /dev/null +++ b/account_invoice_sale_info_section/README.rst @@ -0,0 +1,31 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +================================= +Account invoice sale info section +================================= + +* When creating an invoice from a sales order, a section with the order + information is created in the sales order, which will be carried over to the + invoice. + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, +please check there if your issue has already been reported. If you spotted +it first, help us smash it by providing detailed and welcomed feedback. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Contributors +------------ + +* Ana Juaristi +* Alfredo de la Fuente diff --git a/account_invoice_sale_info_section/__init__.py b/account_invoice_sale_info_section/__init__.py new file mode 100644 index 0000000..9b42961 --- /dev/null +++ b/account_invoice_sale_info_section/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizard diff --git a/account_invoice_sale_info_section/__manifest__.py b/account_invoice_sale_info_section/__manifest__.py new file mode 100644 index 0000000..52eea80 --- /dev/null +++ b/account_invoice_sale_info_section/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2025 Alfredo de la Fuente - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +{ + "name": "Account Invoice Sale Info Section", + "author": "AvanzOSC", + "website": "https://github.com/avanzosc/mrp-repair-addons", + "category": "Invoices & Payments", + "version": "16.0.1.0.0", + "license": "AGPL-3", + "depends": [ + "sale", + "account" + ], + "data": [], + "installable": True, +} diff --git a/account_invoice_sale_info_section/i18n/account_invoice_sale_info_section.pot b/account_invoice_sale_info_section/i18n/account_invoice_sale_info_section.pot new file mode 100644 index 0000000..4651216 --- /dev/null +++ b/account_invoice_sale_info_section/i18n/account_invoice_sale_info_section.pot @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_sale_info_section +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-31 06:51+0000\n" +"PO-Revision-Date: 2025-01-31 06:51+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv__display_name +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order__display_name +msgid "Display Name" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv__id +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order__id +msgid "ID" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv____last_update +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_invoice_sale_info_section +#: code:addons/account_invoice_sale_info_section/models/sale_order.py:0 +#, python-format +msgid "Order: %(order)s, Date: %(date)s" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model,name:account_invoice_sale_info_section.model_sale_advance_payment_inv +msgid "Sales Advance Payment Invoice" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model,name:account_invoice_sale_info_section.model_sale_order +msgid "Sales Order" +msgstr "" diff --git a/account_invoice_sale_info_section/i18n/en_GB.po b/account_invoice_sale_info_section/i18n/en_GB.po new file mode 100644 index 0000000..4651216 --- /dev/null +++ b/account_invoice_sale_info_section/i18n/en_GB.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_sale_info_section +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-31 06:51+0000\n" +"PO-Revision-Date: 2025-01-31 06:51+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv__display_name +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order__display_name +msgid "Display Name" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv__id +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order__id +msgid "ID" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv____last_update +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_invoice_sale_info_section +#: code:addons/account_invoice_sale_info_section/models/sale_order.py:0 +#, python-format +msgid "Order: %(order)s, Date: %(date)s" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model,name:account_invoice_sale_info_section.model_sale_advance_payment_inv +msgid "Sales Advance Payment Invoice" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model,name:account_invoice_sale_info_section.model_sale_order +msgid "Sales Order" +msgstr "" diff --git a/account_invoice_sale_info_section/i18n/es.po b/account_invoice_sale_info_section/i18n/es.po new file mode 100644 index 0000000..615d185 --- /dev/null +++ b/account_invoice_sale_info_section/i18n/es.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_invoice_sale_info_section +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-31 06:51+0000\n" +"PO-Revision-Date: 2025-01-31 06:51+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv__display_name +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv__id +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order__id +msgid "ID" +msgstr "" + +#. module: account_invoice_sale_info_section +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_advance_payment_inv____last_update +#: model:ir.model.fields,field_description:account_invoice_sale_info_section.field_sale_order____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: account_invoice_sale_info_section +#: code:addons/account_invoice_sale_info_section/models/sale_order.py:0 +#, python-format +msgid "Order: %(order)s, Date: %(date)s" +msgstr "Pedido: %(order)s, Fecha: %(date)s" + +#. module: account_invoice_sale_info_section +#: model:ir.model,name:account_invoice_sale_info_section.model_sale_advance_payment_inv +msgid "Sales Advance Payment Invoice" +msgstr "Ventas. Anticipo pago factura" + +#. module: account_invoice_sale_info_section +#: model:ir.model,name:account_invoice_sale_info_section.model_sale_order +msgid "Sales Order" +msgstr "Pedido de venta" diff --git a/account_invoice_sale_info_section/models/__init__.py b/account_invoice_sale_info_section/models/__init__.py new file mode 100644 index 0000000..6aacb75 --- /dev/null +++ b/account_invoice_sale_info_section/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order diff --git a/account_invoice_sale_info_section/models/sale_order.py b/account_invoice_sale_info_section/models/sale_order.py new file mode 100644 index 0000000..e4bc35f --- /dev/null +++ b/account_invoice_sale_info_section/models/sale_order.py @@ -0,0 +1,30 @@ +# Copyright 2025 Alfredo de la Fuente - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from odoo import _, models + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + def create_sale_info_section(self): + for sale in self: + my_name = _("Order: %(order)s, Date: %(date)s") % { + "order": sale.name, + "date": sale.date_order.date(), + } + line = sale.order_line.filtered(lambda x: x.name == my_name) + if not line: + line = self.env["sale.order.line"].create( + sale._get_values_sale_info_section(my_name) + ) + line._compute_invoice_status() + self._cr.commit() # pylint: disable=E8102 + + def _get_values_sale_info_section(self, my_name): + vals = { + "name": my_name, + "order_id": self.id, + "sequence": 1, + "display_type": "line_section", + } + return vals diff --git a/account_invoice_sale_info_section/wizard/__init__.py b/account_invoice_sale_info_section/wizard/__init__.py new file mode 100644 index 0000000..b53fbfe --- /dev/null +++ b/account_invoice_sale_info_section/wizard/__init__.py @@ -0,0 +1 @@ +from . import sale_advance_payment_inv diff --git a/account_invoice_sale_info_section/wizard/sale_advance_payment_inv.py b/account_invoice_sale_info_section/wizard/sale_advance_payment_inv.py new file mode 100644 index 0000000..15e4e3d --- /dev/null +++ b/account_invoice_sale_info_section/wizard/sale_advance_payment_inv.py @@ -0,0 +1,12 @@ +# Copyright 2025 Alfredo de la Fuente - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +from odoo import models + + +class SaleAdvancePaymentInv(models.TransientModel): + _inherit = "sale.advance.payment.inv" + + def create_invoices(self): + sales = self.env["sale.order"].browse(self._context.get('active_ids', [])) + sales.create_sale_info_section() + return super().create_invoices() diff --git a/setup/account_invoice_sale_info_section/odoo/addons/account_invoice_sale_info_section b/setup/account_invoice_sale_info_section/odoo/addons/account_invoice_sale_info_section new file mode 120000 index 0000000..5bf1fc9 --- /dev/null +++ b/setup/account_invoice_sale_info_section/odoo/addons/account_invoice_sale_info_section @@ -0,0 +1 @@ +../../../../account_invoice_sale_info_section \ No newline at end of file diff --git a/setup/account_invoice_sale_info_section/setup.py b/setup/account_invoice_sale_info_section/setup.py new file mode 100644 index 0000000..28c57bb --- /dev/null +++ b/setup/account_invoice_sale_info_section/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)