diff --git a/README.rst b/README.rst index 25db3dc4b03c44aefb89981417c044a6e7ccb551..8038ed8ff2db7a01debc38cd5829e08abc2e2f64 100644 --- a/README.rst +++ b/README.rst @@ -25,17 +25,16 @@ Usage Pour configurer ce module, les données suivantes sont à renseigner -1. dans le **fichier de configuration d'Odoo** : +1. dans le menu **Configuration > Technique > CG Scop > FTP Imports RIGA** : -* *riga_ftp_login* : login de connexion à l'API -* *riga_ftp_password* : password de connexion à l'API +* *nom* : nom de la connexion +* *login* : login de connexion au FTP +* *password* : password de connexion au FTP +* *active* : si il s'agit de la connexion active -2. dans la table **ir.config.parameter** : +Attention, il faut qu'il n'existe qu'une seule connexion active. -* *riga_ftp.url* : url du FTP Eudonet -* *riga_ftp.path* : path des fichiers - -3. dans le menu **Contacts > Configuration > Impot RIGA** +2. dans le menu **Contacts > Configuration > Impot RIGA** * le menu *Configuration imports RIGA* permet de renseigner les différentes tables à mettre à jour avec : le nom de la table, le nom du fichier, la clé primaire, la clé étrangère (parent) et la table de correspondance * le menu *RIGA vers Odoo* permet de visualiser les détails des imports de chaque fichier diff --git a/__manifest__.py b/__manifest__.py index 5d6f9b990f26cc0e06c38fe40c65b65d20c13872..a58422d9ad0573d230e8a6286d3f3ee70faaa0af 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -13,6 +13,7 @@ ], "data": [ "security/ir.model.access.csv", + "views/riga_ftp_channel.xml", "views/riga_files_matching.xml", "views/riga_lookup_table.xml", "views/riga_odoo_import.xml", diff --git a/models/__init__.py b/models/__init__.py index c65b9e8a09105a8e613f3cab4d4adf4e41fed573..04b42ad78ee72da0c0aaae8e978db30d7b12752b 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -2,6 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import riga_files_matching +from . import riga_ftp_channel from . import riga_lookup_table from . import riga_odoo_import from . import scop_liasse_fiscale diff --git a/models/riga_ftp_channel.py b/models/riga_ftp_channel.py new file mode 100644 index 0000000000000000000000000000000000000000..a264ce4b11b6f2dd02999b4cd844c94289452a01 --- /dev/null +++ b/models/riga_ftp_channel.py @@ -0,0 +1,17 @@ +# © 2019 Le Filament (<http://www.le-filament.com>) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import models, fields + + +class CgscopRigaFtpChannel(models.Model): + _name = 'riga.ftp.channel' + _description = 'Infos FTP de connexion pour fichiers RIGA' + + name = fields.Char(string='Nom') + login = fields.Char('Login') + password = fields.Char('Password') + url = fields.Char('URL') + path = fields.Char('Path') + active = fields.Boolean('Actif', default=False) + diff --git a/models/riga_odoo_import.py b/models/riga_odoo_import.py index 3d8197a2fa01be2e5324cd7aff14701b7ac0d068..2ab6d92773bff41cbcb66209c30ea90883aa2219 100644 --- a/models/riga_odoo_import.py +++ b/models/riga_odoo_import.py @@ -44,15 +44,17 @@ class CgscopRigaOdooImport(models.Model): @return csv_file: (binary) fichier binaire à traiter """ - param = self.env['ir.config_parameter'].sudo() - ftp_login = tools.config['riga_ftp_login'] - ftp_pass = tools.config['riga_ftp_password'] + param = self.env['riga.ftp.channel'].sudo().search([ + ['active', '=', True]]) + param.ensure_one() + ftp_login = param.login + ftp_pass = param.password # Connexion FTP try: # Connexion ftp - ftp = FTP(param.get_param('riga_ftp.url'), ftp_login, ftp_pass) + ftp = FTP(param.url, ftp_login, ftp_pass) # Changement de path - ftp.cwd(param.get_param('riga_ftp.path')) + ftp.cwd(param.path) # Lecture du fichier csv_file = io.BytesIO() ftp.retrbinary( @@ -60,8 +62,8 @@ class CgscopRigaOdooImport(models.Model): csv_file.write) _logger.info( "Connecté à l'URL : %s - Path : %s", - param.get_param('riga_ftp.url'), - param.get_param('riga_ftp.path') + param.url, + param.path ) return csv_file except Exception as e: diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 0d5b2c36cfb4153f8dc5e7b65f2cbc99314ca3d8..a1daf5f67107dd89cce2096762a3ec6187d3aeb3 100644 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -2,4 +2,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_riga_odoo_import,access_riga_odoo_import,model_riga_odoo_import,cgscop_partner.group_cg_administrator,1,1,1,1 access_riga_files_matching,access_riga_files_matching,model_riga_files_matching,cgscop_partner.group_cg_administrator,1,1,1,1 access_riga_files_matching_header,access_riga_files_matching_header,model_riga_files_matching_header,cgscop_partner.group_cg_administrator,1,1,1,1 -access_riga_lookup_table,access_riga_lookup_table,model_riga_lookup_table,cgscop_partner.group_cg_administrator,1,1,1,1 \ No newline at end of file +access_riga_lookup_table,access_riga_lookup_table,model_riga_lookup_table,cgscop_partner.group_cg_administrator,1,1,1,1 +access_riga_ftp_channel,access_riga_ftp_channel,model_riga_ftp_channel,cgscop_partner.group_cg_administrator,1,1,1,1 \ No newline at end of file diff --git a/views/riga_ftp_channel.xml b/views/riga_ftp_channel.xml new file mode 100644 index 0000000000000000000000000000000000000000..c3ba93d74736456e8490cda694935475c15bc357 --- /dev/null +++ b/views/riga_ftp_channel.xml @@ -0,0 +1,63 @@ +<?xml version="1.0"?> +<!-- Copyright 2019 Le Filament + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> + +<odoo> + <data> + + <!-- RIGA Job Queue --> + <record id="view_riga_ftp_channel_tree" model="ir.ui.view"> + <field name="name">riga.ftp.channel.tree</field> + <field name="model">riga.ftp.channel</field> + <field name="arch" type="xml"> + <tree string="Synchronisation Odoo"> + <field name="name"/> + <field name="login"/> + <field name="url"/> + <field name="active"/> + </tree> + </field> + </record> + + <record id="view_riga_ftp_channel_form" model="ir.ui.view"> + <field name="name">riga.ftp.channel.form</field> + <field name="model">riga.ftp.channel</field> + <field name="arch" type="xml"> + <form> + <sheet> + <group> + <group> + <field name="name" /> + <field name="url"/> + <field name="path"/> + </group> + <group> + <field name="active"/> + <field name="login"/> + <field name="password" password="True" /> + </group> + </group> + </sheet> + </form> + </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> + </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"/> + </data> +</odoo>