From ec2d4319302bb668334d7365d4618352b564899c Mon Sep 17 00:00:00 2001
From: Juliana <juliana@le-filament.com>
Date: Wed, 5 Apr 2023 15:48:00 +0200
Subject: [PATCH] [ADD]Add terms and confitions Config + invoice + pdf

---
 __manifest__.py                     |  1 +
 models/__init__.py                  |  2 ++
 models/acc_account.py               | 10 ++++++
 models/company.py                   | 43 ++++++++++++++++++++++++++
 models/res_config_settings.py       | 45 +++++++++++++++++++++++++++
 report/account_template.xml         |  6 ++--
 views/acc_account_views.xml         |  8 +++++
 views/res_config_settings_views.xml | 48 +++++++++++++++++++++++++++++
 8 files changed, 161 insertions(+), 2 deletions(-)
 create mode 100644 models/company.py
 create mode 100644 models/res_config_settings.py
 create mode 100644 views/res_config_settings_views.xml

diff --git a/__manifest__.py b/__manifest__.py
index 04493e6..7e7b040 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -27,6 +27,7 @@
         "views/acc_counter_views.xml",
         "views/acc_account_views.xml",
         "views/res_partner_views.xml",
+        "views/res_config_settings_views.xml",
         # views menu
         "views/menu_views.xml",
         "report/report_template.xml",
diff --git a/models/__init__.py b/models/__init__.py
index 3d40232..a7f9a3f 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -8,3 +8,5 @@ from . import acc_operation
 from . import acc_account
 from . import acc_counter
 from . import res_partner
+from . import company
+from . import res_config_settings
diff --git a/models/acc_account.py b/models/acc_account.py
index cd81abc..62d0509 100644
--- a/models/acc_account.py
+++ b/models/acc_account.py
@@ -15,6 +15,14 @@ class AccAccount(models.Model):
     def _get_default_currency_id(self):
         return self.env.company.currency_id.id
 
+    @api.model
+    def _default_invoice_terms(self):
+        return self.env.company.invoice_terms or ''
+
+    @api.model
+    def _default_invoice_terms_tax(self):
+        return self.env.company.invoice_terms_tax or ''
+
     # ------------------------------------------------------
     # Fields declaration
     # ------------------------------------------------------
@@ -129,6 +137,8 @@ class AccAccount(models.Model):
         tracking=True,
         default="draft",
     )
+    invoice_terms = fields.Text("Termes and conditions de paiement", default=_default_invoice_terms)
+    invoice_terms_tax = fields.Text("Termes and conditions des taxes", default=_default_invoice_terms_tax)
 
     @api.model_create_multi
     def create(self, vals_list):
diff --git a/models/company.py b/models/company.py
new file mode 100644
index 0000000..d89284c
--- /dev/null
+++ b/models/company.py
@@ -0,0 +1,43 @@
+# Copyright 2023 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import fields, models
+
+
+class ResCompany(models.Model):
+    _inherit = "res.company"
+
+    # ------------------------------------------------------
+    # Fields declaration
+    # ------------------------------------------------------
+
+    invoice_terms = fields.Text(string="Termes & Conditions de paiement")
+    invoice_terms_tax = fields.Text(string="Terms & Conditions des taxes")
+
+    # ------------------------------------------------------
+    # SQL Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Default methods
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Computed fields / Search Fields
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Onchange / Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # CRUD methods (ORM overrides)
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Actions
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Business methods
+    # ------------------------------------------------------
diff --git a/models/res_config_settings.py b/models/res_config_settings.py
new file mode 100644
index 0000000..11e8ff7
--- /dev/null
+++ b/models/res_config_settings.py
@@ -0,0 +1,45 @@
+# Copyright 2023 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import api, fields, models, _
+
+
+class ResConfigSettings(models.TransientModel):
+    _inherit = 'res.config.settings'
+
+    invoice_terms = fields.Text(related='company_id.invoice_terms',
+                                string="Termes & Conditions de paiement",
+                                readonly=False)
+    invoice_terms_tax = fields.Text(related='company_id.invoice_terms_tax',
+                                string="Terms & Conditions des taxes", readonly=False)
+    # ------------------------------------------------------
+    # Fields declaration
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # SQL Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Default methods
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Computed fields / Search Fields
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Onchange / Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # CRUD methods (ORM overrides)
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Actions
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Business methods
+    # ------------------------------------------------------
diff --git a/report/account_template.xml b/report/account_template.xml
index 5191f36..500700b 100644
--- a/report/account_template.xml
+++ b/report/account_template.xml
@@ -471,7 +471,7 @@
                         </div>
                         <div class="row mt-3">
                             <div class="col-12 font-italic">
-                                En cas de paiement anticipé, aucun escompte ne sera accordé. Indemnités pour frais de recouvrement en cas de retard de paiement : 40.00€ sauf frais  supplémentaires. Conformément à l’article L 441-6 du Code de commerce, en cas de non paiement à l'échéance, sera appliquée une pénalité de  retard équivalente à trois fois le taux d'intérêt légal en vigueur.
+                                <span t-field="o.invoice_terms"/>
                             </div>
                         </div>
                         <t t-set="prmi_ids" t-value="o.line_ids.mapped('acc_injection_id')"/>
@@ -662,7 +662,9 @@
                                             t-options='{"widget": "monetary", "display_currency": o.currency_id}'
                                         />
                                     </h6>
-                                    <p class="mt-5 font-italic">* le droit d’accise sur l’électricité est la fusion progressive depuis le 1er janvier 2022 de la TICFE (taxe intérieure sur la consommation finale d’électricité, anciennement CSPE) et de la TLCFE (taxe locale sur la consommation finale d’électricité) perçues par la Direction générale des finances publiques.</p>
+                                    <p class="mt-5 font-italic">
+                                        <span t-field="o.invoice_terms_tax"/>
+                                    </p>
                                 </div>
                             </div>
                         </t>
diff --git a/views/acc_account_views.xml b/views/acc_account_views.xml
index 264a531..7f15a98 100644
--- a/views/acc_account_views.xml
+++ b/views/acc_account_views.xml
@@ -338,6 +338,14 @@
                                         class="oe_subtotal_footer_separator"
                                     />
                                 </group>
+                                <group>
+                                    <group>
+                                        <field name="invoice_terms" placeholder="Termes and conditions de paiement..."/>
+                                    </group>
+                                    <group>
+                                        <field name="invoice_terms_tax" placeholder="Termes and conditions des taxes..."/>
+                                    </group>
+                                </group>
                             </page>
                         </notebook>
                     </sheet>
diff --git a/views/res_config_settings_views.xml b/views/res_config_settings_views.xml
new file mode 100644
index 0000000..b2d0c0c
--- /dev/null
+++ b/views/res_config_settings_views.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<odoo>
+
+    <record id="res_config_settings_view_form" model="ir.ui.view">
+        <field name="name">res.config.settings.view.form.inherit.app</field>
+        <field name="model">res.config.settings</field>
+        <field name="inherit_id" ref="acc_operation.res_config_settings_view_form" />
+        <field name="arch" type="xml">
+            <xpath expr="//div[@id='acc_settings_block']" position="inside">
+                <h2>Facturation</h2>
+                <div
+                    class="row mt16 o_settings_container"
+                    id="invoice_acc_selection_settings"
+                >
+                    <div class="col-12 col-lg-6 o_setting_box" id="terms_invoice">
+                        <div class="o_setting_right_pane">
+                            <label for="invoice_terms"/>
+                            <span class="fa fa-lg fa-building-o" role="img"/>
+                            <div class="text-muted">
+                                Affichage des termes et conditions générales des factures
+                            </div>
+                            <div class="content-group">
+                                <div class="mt16">
+                                    <field name="invoice_terms" placeholder="Rédiger les termes et conditions de paiement ici..."/>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-12 col-lg-6 o_setting_box" id="terms_invoice_tax">
+                        <div class="o_setting_right_pane">
+                            <label for="invoice_terms_tax"/>
+                            <span class="fa fa-lg fa-building-o" role="img"/>
+                            <div class="text-muted">
+                                Affichage des termes et conditions générales des taxes des factures
+                            </div>
+                            <div class="content-group">
+                                <div class="mt16">
+                                    <field name="invoice_terms_tax" placeholder="Rédiger les termes et conditions des taxes ici..."/>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </xpath>
+        </field>
+    </record>
+
+</odoo>
-- 
GitLab