Skip to content
Extraits de code Groupes Projets
Valider 4706f30f rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[add] cron and Alfresco functions

parent c3a6b69c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
"cgscop_liste_ministere_alfodoo", "cgscop_liste_ministere_alfodoo",
], ],
"data": [ "data": [
"datas/cron_inovatic.xml",
"views/scop_liste_ministere.xml", "views/scop_liste_ministere.xml",
], ],
"installable": True, "installable": True,
......
<odoo>
<data noupdate="1">
<record id="ir_cron_odoo_riga" model="ir.cron">
<field name="name">CG Scop - Inovatic : traitement liasses</field>
<field name="active" eval="True" />
<field name="user_id" ref="base.user_root" />
<field name="interval_number">10</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field name="doall">1</field>
<field name="nextcall">2019-12-01 01:00:00</field>
<field name="model_id" ref="model_inovatic_job_queue" />
<field name="code">model._cron_sync()</field>
<field name="state">code</field>
<field name="priority" eval="5" />
</record>
</data>
</odoo>
# © 2019 Le Filament (<http://www.le-filament.com>) # © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import inovatic_job_queue
from . import scop_liste_ministere from . import scop_liste_ministere
# © 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import base64
import datetime
import logging
import random
from calendar import monthrange
from odoo import _, api, exceptions, fields, models
from odoo.exceptions import UserError
_logger = logging.getLogger(__name__)
class InovaticJobQueue(models.Model):
_inherit = "inovatic.job.queue"
# ------------------------------------------------------
# Button function
# ------------------------------------------------------
def inovatic_sync(self):
"""
Méthode permettant de transmettre une liasse fiscale
depuis Alfresco
"""
for liasse in self:
file = liasse._get_cmis_file()
stream = file.getContentStream().read()
filename = file.name
data_file = base64.b64encode(stream)
liasse.inovatic_load_file(file=data_file, filename=filename)
# ------------------------------------------------------
# Internal function
# ------------------------------------------------------
def _get_cmis_file(self):
if not self.liasse_fiscale_id.liste_ministere_id:
raise UserError(
_(
"Rechargement impossible : il n'y a pas de "
"Liste Ministère associée à cette liasse"
)
)
backend = self.env["cmis.backend"].search([])
backend.ensure_one()
cmis_client = backend.get_cmis_client()
query = """
SELECT * FROM crm:document as d
JOIN crm:organisme as o ON d.cmis:objectId = o.cmis:objectId
WHERE d.crm:type='LFI'
AND d.crm:annee = '%s'
AND d.crm:contexte = 'LM'
AND o.crm:id = '%s'""" % (
str(self.liasse_fiscale_id.liste_ministere_id.year),
str(self.liasse_fiscale_id.partner_id.id),
)
doc = cmis_client.getDefaultRepository().query(query)
if not doc:
raise exceptions.Warning(
_("Il n'y a pas de fichier dans Alfresco pour cette liasse")
)
return doc[0]
# ------------------------------------------------------
# CRON function
# ------------------------------------------------------
def _cron_sync(self):
jobs = self.env["inovatic.job.queue"].search([["state", "=", "waiting"]])
return jobs.inovatic_sync()
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter