From ebe9d96952a3ddbf66c5049764efc8dac8a55e55 Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Wed, 9 Nov 2022 17:30:23 +0100
Subject: [PATCH] [update] move load xml wizard from cgscop_inovatic to
 cgscop_inovatic_lm

---
 __init__.py                    |  2 +-
 __manifest__.py                |  1 +
 views/scop_liste_ministere.xml |  2 +-
 wizard/__init__.py             |  5 ++++
 wizard/load_xml_liasse.py      | 44 +++++++++++++++++++++++++++++++++
 wizard/load_xml_liasse.xml     | 45 ++++++++++++++++++++++++++++++++++
 6 files changed, 97 insertions(+), 2 deletions(-)
 create mode 100644 wizard/__init__.py
 create mode 100644 wizard/load_xml_liasse.py
 create mode 100644 wizard/load_xml_liasse.xml

diff --git a/__init__.py b/__init__.py
index d997a09..e3bc617 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,4 +1,4 @@
 # © 2019 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
-from . import models
+from . import models, wizard
diff --git a/__manifest__.py b/__manifest__.py
index 440fd18..6627b57 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -14,6 +14,7 @@
     "data": [
         "datas/cron_inovatic.xml",
         "views/scop_liste_ministere.xml",
+        "wizard/load_xml_liasse.xml",
     ],
     "installable": True,
     "auto_install": False,
diff --git a/views/scop_liste_ministere.xml b/views/scop_liste_ministere.xml
index 1df79cf..2d7d515 100644
--- a/views/scop_liste_ministere.xml
+++ b/views/scop_liste_ministere.xml
@@ -23,7 +23,7 @@
                     />
                     <button
                         string="Charger un XML"
-                        name="%(cgscop_inovatic.load_xml_liasse_act_window)d"
+                        name="%(cgscop_inovatic_lm.load_xml_liasse_act_window)d"
                         type="action"
                         class="m-3"
                         attrs="{'invisible':[('status_liasse_fiscale', '=', 'valide')]}"
diff --git a/wizard/__init__.py b/wizard/__init__.py
new file mode 100644
index 0000000..1587528
--- /dev/null
+++ b/wizard/__init__.py
@@ -0,0 +1,5 @@
+# © 2020 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from . import load_xml_liasse
+from . import scop_load_liasse_wizard
diff --git a/wizard/load_xml_liasse.py b/wizard/load_xml_liasse.py
new file mode 100644
index 0000000..d0ac295
--- /dev/null
+++ b/wizard/load_xml_liasse.py
@@ -0,0 +1,44 @@
+# © 2020 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 LoadXmlLiasseWizard(models.TransientModel):
+    _name = "load.xml.liasse"
+    _description = "Load XML Liasse Wizard"
+    _rec_name = "liasse_id"
+
+    @api.model
+    def _default_lm_id(self):
+        return self.env.context.get("active_id")
+
+    @api.model
+    def _default_liasse_id(self):
+        lm = self.env.context.get("active_id")
+        return (
+            self.env["scop.liasse.fiscale"].search([("liste_ministere_id", "=", lm)]).id
+        )
+
+    lm_id = fields.Many2one(
+        comodel_name="scop.liste.ministere",
+        string="Liste Ministere",
+        default=_default_lm_id,
+    )
+    liasse_id = fields.Many2one(
+        comodel_name="scop.liasse.fiscale",
+        string="Liasse Fiscale",
+        default=_default_liasse_id,
+    )
+    file = fields.Binary("Fichier")
+    filename = fields.Char("Nom")
+
+    def load_liasse(self):
+        """
+        Charge les valeurs du XML de la liasse dans l'objet
+        :return:
+        """
+        if not self.liasse_id:
+            self.liasse_id = self.lm_id.create_liasse_fiscale()
+        data = self.liasse_id.parse_xml_liasse(self.file)
+        return self.liasse_id.json_matching(data, "xml")
diff --git a/wizard/load_xml_liasse.xml b/wizard/load_xml_liasse.xml
new file mode 100644
index 0000000..1c7135a
--- /dev/null
+++ b/wizard/load_xml_liasse.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<odoo>
+    <data>
+        <!-- FORM View-->
+        <record id="load_xml_liasse_form_view" model="ir.ui.view">
+            <field name="name">load.xml.liasse.form</field>
+            <field name="model">load.xml.liasse</field>
+            <field name="arch" type="xml">
+                <form string="Charger une Liasse">
+                    <group name="infos">
+                        <field name="liasse_id" readonly="1" />
+                    </group>
+                    <group>
+                        <field name="filename" invisible="1" />
+                        <field name="file" filename="filename" required="1" />
+                    </group>
+                    <footer>
+                        <button
+                            class="btn btn-sm btn-primary"
+                            name="load_liasse"
+                            string="Cherger une liasse XML"
+                            type="object"
+                            confirm="Êtes-vous sûr(e) de vouloir charger ce fichier ?"
+                        />
+                        <button
+                            class="btn btn-sm btn-default"
+                            special="cancel"
+                            string="Fermer"
+                        />
+                    </footer>
+                </form>
+            </field>
+        </record>
+
+        <!--ACTION view-->
+        <record id="load_xml_liasse_act_window" model="ir.actions.act_window">
+            <field name="name">Charger une Liasse XML</field>
+            <field name="type">ir.actions.act_window</field>
+            <field name="res_model">load.xml.liasse</field>
+            <field name="view_mode">form</field>
+            <field name="target">new</field>
+        </record>
+
+    </data>
+</odoo>
-- 
GitLab