Skip to content
Extraits de code Groupes Projets
Valider 00b4c84c rédigé par Benjamin's avatar Benjamin
Parcourir les fichiers

fix bugs import + ajout ftp channel

parent d0882613
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -25,7 +25,7 @@ Usage
Pour configurer ce module, les données suivantes sont à renseigner
1. dans le menu **Configuration > Technique > CG Scop > FTP Imports RIGA** :
1. dans le menu **Configuration > APIs CG Scop > RIGA > FTP Imports RIGA** :
* *nom* : nom de la connexion
* *login* : login de connexion au FTP
......
id,model_id:id,riga_filename,primary_key,header_key
odoo_scop_contribution,cgscop_partner.model_scop_contribution,"1800.csv","EVTID","PMID"
odoo_scop_questionnaire,cgscop_partner.model_scop_questionnaire,"5100.csv","EVTID","PMID"
odoo_scop_liasse_fiscale,cgscop_partner.model_scop_liasse_fiscale,"5900.csv","EVTID","PMID"
\ No newline at end of file
id,model_id:id,riga_filename,primary_key,header_key,riga_extension
odoo_scop_contribution,cgscop_partner.model_scop_contribution,"1800","EVTID","PMID","csv"
odoo_scop_questionnaire,cgscop_partner.model_scop_questionnaire,"5100","EVTID","PMID","csv"
odoo_scop_liasse_fiscale,cgscop_partner.model_scop_liasse_fiscale,"5900","EVTID","PMID","csv"
\ No newline at end of file
......@@ -28,6 +28,7 @@ class CgscopRigaFilesMatching(models.Model):
comodel_name='ir.model',
string='Modèle')
riga_filename = fields.Char('Nom Fichier RIGA')
riga_extension = fields.Char('Extension Fichier')
is_active = fields.Boolean("Actif", default=True)
header_key = fields.Char("Nom clé parent", default='PMID')
primary_key = fields.Char("Clé primaire", default='EVTID')
......@@ -35,3 +36,12 @@ class CgscopRigaFilesMatching(models.Model):
comodel_name='riga.files.matching.header',
inverse_name='parent_id',
string='Table de correspondance Odoo - Riga')
suffix = fields.Char(
string="Suffixe",
trim=False)
day = fields.Integer("Décalage jour", default=False)
params_active = fields.Boolean('Extra params actifs')
def sync_data(self):
odoo_import = self.env['riga.odoo.import'].sudo()
odoo_import.sync_file(self)
......@@ -15,3 +15,11 @@ class CgscopRigaFtpChannel(models.Model):
path = fields.Char('Path')
active = fields.Boolean('Actif', default=False)
def toogle_active_config(self):
""" Active la connexion sélectionnée et désactive
toutes les autres connexions
"""
for item in self.env['riga.ftp.channel'].search([]):
item.active = False
self.active = True
......@@ -7,7 +7,7 @@ import datetime
import logging
from ftplib import FTP
from odoo import models, fields, tools, exceptions
from odoo import models, fields, exceptions
_logger = logging.getLogger(__name__)
......@@ -194,7 +194,13 @@ class CgscopRigaOdooImport(models.Model):
# ------------------------------------------------------
# Import données
# ------------------------------------------------------
def odoo_sync(self):
model_sync = self.env['riga.files.matching'].sudo().search([
['is_active', '=', True]])
self.sync_file(model_sync)
def sync_file(self, model_sync):
""" Fonction de synchronisation des fichiers CSV RIGA
avec les tables associées Odoo.
......@@ -203,13 +209,20 @@ class CgscopRigaOdooImport(models.Model):
de correspondance de string à list puis appelle la fonction
_read_file qui permet d'intégrer ou de metre à jour les valeurs
"""
model_sync = self.env['riga.files.matching'].sudo().search([
['is_active', '=', True]])
for model in model_sync:
table = []
# Calcul nom du fichier
if model.params_active:
date_value = fields.Datetime.now() + datetime.timedelta(days=model.day)
filename = (model.riga_filename +
date_value.strftime(model.suffix) + '.' +
model.riga_extension)
else:
filename = (model.riga_filename + '.' +
model.riga_extension)
_logger.info(
"Lecture Fichier %s pour le modèle %s",
model.riga_filename,
filename,
model.model_id.name
)
for header in model.matching_table_ids:
......
......@@ -25,11 +25,15 @@
<field name="model">riga.files.matching</field>
<field name="arch" type="xml">
<form>
<header>
<button type="object" string="Synchroniser" name="sync_data"></button>
</header>
<sheet>
<group>
<group>
<field name="model_id" />
<field name="riga_filename"/>
<field name="riga_extension"/>
</group>
<group>
<field name="primary_key"/>
......@@ -37,7 +41,25 @@
<field name="is_active" widget="boolean_toggle"/>
</group>
</group>
<notebook>
<page name="file_config" string="Paramètres fichier">
<group>
<group>
<field name="params_active"/>
<field name="suffix" options="{'readonly': [('params_active', '=', False')]}"/>
<field name="day" options="{'readonly': [('params_active', '=', False')]}"/>
</group>
<group col="2" string="Légende">
<group>
<span colspan="2">Année sur 4 chiffres : %Y</span>
<span colspan="2">Année sur 2 chiffres : %y</span>
<span colspan="2">Mois : %m</span>
<span colspan="2">Jour : %d</span>
</group>
</group>
</group>
</page>
<page name="page_header" string="Headers">
<field name="matching_table_ids">
<tree editable="bottom">
<field name="name"/>
......@@ -45,6 +67,10 @@
<field name="relation"/>
</tree>
</field>
</page>
</notebook>
<group>
</group>
</sheet>
</form>
......@@ -57,16 +83,16 @@
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_cgscop_riga_import"
parent="contacts.res_partner_menu_config"
sequence="190"
name="Import RIGA"
<menuitem id="menu_cgscop_tecnhical_config"
parent="cgscop_partner.menu_cgscop_api_config"
sequence="20"
name="RIGA"
groups="base.group_no_one"/>
<menuitem id="menu_riga_files_matching"
parent="menu_cgscop_riga_import"
parent="menu_cgscop_tecnhical_config"
action="action_view_riga_files_matching_tree"
name="Configuration imports RIGA"
sequence="190"/>
sequence="50"/>
</data>
</odoo>
......@@ -24,6 +24,9 @@
<field name="model">riga.ftp.channel</field>
<field name="arch" type="xml">
<form>
<header>
<button name="toogle_active_config" type="object" string="Activer" />
</header>
<sheet>
<group>
<group>
......@@ -42,22 +45,32 @@
</field>
</record>
<record id="view_riga_ftp_channel_search" model="ir.ui.view">
<field name="name">riga.ftp.channel.search</field>
<field name="model">riga.ftp.channel</field>
<field name="arch" type="xml">
<search string="Synchronisation Odoo">
<!-- Champs de recherche -->
<field name="name"/>
<!-- Filtres -->
<filter name="active_filter" string="Actifs" domain="[('active','=',True)]"/>
<filter name="inctive_filter" string="Inactifs" domain="[('active','=',False)]" />
<filter name="all_filter" string="Tous" domain="['|', ('active','=',True), ('active','=',False)]" />
</search>
</field>
</record>
<record id="action_view_riga_ftp_channel" model="ir.actions.act_window">
<field name="name">Configuration FTP RIGA</field>
<field name="res_model">riga.ftp.channel</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_riga_ftp_channel_search"/>
</record>
<menuitem id="menu_cgscop_tecnhical_config"
parent="base.menu_custom"
sequence="100"
name="CG Scop"
groups="base.group_no_one"/>
<menuitem id="menu_riga_ftp_channel"
parent="menu_cgscop_tecnhical_config"
action="action_view_riga_ftp_channel"
name="FTP imports RIGA"
sequence="190"/>
name="Configuration FTP"
sequence="100"/>
</data>
</odoo>
......@@ -24,9 +24,9 @@
</record>
<menuitem id="menu_riga_lookup_table"
parent="menu_cgscop_riga_import"
parent="menu_cgscop_tecnhical_config"
action="action_view_riga_lookup_table_tree"
name="Table de correspondance"
sequence="200"/>
sequence="90"/>
</data>
</odoo>
......@@ -53,9 +53,10 @@
</record>
<menuitem id="menu_riga_odoo_import_config"
parent="cgscop_riga_import.menu_cgscop_riga_import"
parent="menu_cgscop_tecnhical_config"
action="action_view_riga_odoo_import_tree"
name="RIGA vers Odoo"
sequence="90"/>
name="Logs imports RIGA"
sequence="10"/>
</data>
</odoo>
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