From c64f7657be603ce25bdfa50fa9a51ef8ab24b52c Mon Sep 17 00:00:00 2001
From: "diego.barreto" <diego.barreto@eynes.com.ar>
Date: Wed, 12 Jun 2024 12:09:14 -0300
Subject: [PATCH] [ADD][T4442] create wizard to request CAEA

---
 __manifest__.py                |  7 +++---
 views/menu_view.xml            |  5 +++--
 wizard/__init__.py             |  1 +
 wizard/request_caea_wizard.py  | 41 ++++++++++++++++++++++++++++++++++
 wizard/request_caea_wizard.xml | 39 ++++++++++++++++++++++++++++++++
 5 files changed, 88 insertions(+), 5 deletions(-)
 create mode 100644 wizard/request_caea_wizard.py
 create mode 100644 wizard/request_caea_wizard.xml

diff --git a/__manifest__.py b/__manifest__.py
index 450972f..16501cb 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -26,9 +26,6 @@
         # Data
         'data/mail_template.xml',
 
-        # Menu
-        'views/menu_view.xml',
-
         # Security
         'security/ir.model.access.csv',
 
@@ -46,6 +43,10 @@
         # Wizard
         'wizard/caea_report_wizard.xml',
         'wizard/prepare_mails_wizard.xml',
+        'wizard/request_caea_wizard.xml',
+
+        # Menu
+        'views/menu_view.xml',
 
     ],
     'installable': True,
diff --git a/views/menu_view.xml b/views/menu_view.xml
index 15d08d1..b055576 100644
--- a/views/menu_view.xml
+++ b/views/menu_view.xml
@@ -4,6 +4,7 @@
 
         <menuitem id="caea_admin_submenu" name="CAEA"
                   parent="l10n_ar_wsaa.base_afipws" sequence="60"/>
-
+        <menuitem id="caea_request_menu" name="Solicitar Caea" action="caea_request_action"
+                  parent="caea_admin_submenu" sequence="1"/>
     </data>
-</odoo>
+</odoo>
\ No newline at end of file
diff --git a/wizard/__init__.py b/wizard/__init__.py
index 00dd816..dd29d34 100644
--- a/wizard/__init__.py
+++ b/wizard/__init__.py
@@ -2,3 +2,4 @@
 
 from . import caea_report_wizard
 from . import prepare_mail_wizard
+from . import request_caea_wizard
diff --git a/wizard/request_caea_wizard.py b/wizard/request_caea_wizard.py
new file mode 100644
index 0000000..5d8c25c
--- /dev/null
+++ b/wizard/request_caea_wizard.py
@@ -0,0 +1,41 @@
+from odoo import _, api, fields, models
+from datetime import datetime, time, timedelta
+from ..wsfetools.wsmtxca_easywsy import MTXCAEasywsy
+
+from suds.client import Client
+from suds.cache import NoCache
+
+class RequestCaeaWizard(models.TransientModel):
+    _name = "request.caea.wizard"
+    _description = "Request CAEA Wizard"
+
+    day = fields.Date()
+    caea = fields.Char(
+        string='Caea',
+        copy=False,
+        readonly=True
+    )
+
+    @api.model
+    def _compute_caea_availability_message(self):
+        date = self.env['ws.caea.code'].search([('state', '=', 'abierto')], order='id desc', limit=1).date_to
+        date += timedelta(days=1)
+        dates = self.env['ws.caea.configuration'].search([], limit=1).get_date_start_end(date)
+
+        if dates:
+            return "Periodo: {} a {}".format(dates['date_from'], dates['date_to'])
+        
+        return "No hay CAEA disponible."
+    
+    caea_availability_message = fields.Char(default=_compute_caea_availability_message)
+
+    def request_caea(self):
+        caea_conf = self.env['ws.caea.configuration'].search([], limit=1)
+        date = self.env['ws.caea.code'].search([('state', '=', 'abierto')], order='id desc', limit=1).date_to
+        date += timedelta(days=1)
+        date = datetime.combine(date, time())
+
+        response = caea_conf.get_caea(date)
+
+        return True
+        
diff --git a/wizard/request_caea_wizard.xml b/wizard/request_caea_wizard.xml
new file mode 100644
index 0000000..2723ab4
--- /dev/null
+++ b/wizard/request_caea_wizard.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+    <record id="request_caea_view_form" model="ir.ui.view">
+        <field name="name">request_caea.view.form</field>
+        <field name="model">request.caea.wizard</field>
+        <field name="arch" type="xml">
+            <form string="Solicitar CAEA">
+                <div class="alert alert-info text-center" role="alert">
+                    <!-- <a class="close" data-dismiss="alert" href="#">x</a> -->
+                    <div>
+                        <strong>CAEA a solicitar</strong>
+                    </div>
+                    <div>
+                        <field name="caea_availability_message" readonly="1"/>
+                    </div>
+                </div>
+                <!-- <group>
+                    <field name="date_from" />
+                    <field name="date_to" />
+                </group> -->
+                <footer>
+                    <button name="request_caea" string="Solicitar CAEA" type="object" class="button-primary"/>
+                    <button string="Cancelar" class="button-secondary" special="cancel"/>
+                </footer>
+            </form>
+        </field>
+    </record>
+
+    <record id="caea_request_action" model="ir.actions.act_window">
+        <field name="name">Solicitar CAEA</field>
+        <field name="type">ir.actions.act_window</field>
+        <field name="res_model">request.caea.wizard</field>
+        <field name="view_mode">form</field>
+        <field name="view_id" ref="request_caea_view_form"/>
+        <field name="target">new</field>
+    </record>
+
+</odoo>
-- 
GitLab