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

initialisation

parent
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
.*
*.pyc
!.gitignore
Ce diff est replié.
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl
:alt: License: AGPL-3
=============================
CG SCOP - Connecteur Tantiemo
=============================
Description
===========
Ce module permet d'intégrer dans Odoo les informations de Tantiemo mises à disposition via des fichiers CSV.
Il hérite *res.partner* pour ajouter une table *scop.financial.tools*
Fonctionnement
==============
Un cron quotidien permet de lire les fichiers, et pour chaque ligne de créer ou mettre à jour un enregistrement enregistrement.
Credits
=======
Contributors
------------
* Juliana Poudou <juliana@le-filament.com>
* Rémi Cazenave <remi@le-filament.com>
* Benjamin Rivier <benjamin@le-filament.com>
Maintainer
----------
.. image:: https://le-filament.com/images/logo-lefilament.png
:alt: Le Filament
:target: https://le-filament.com
This module is maintained by Le Filament
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
{
"name": "CG SCOP - Connecteur Tantiemo",
"summary": "Import des donnees de Tantiemo",
"version": "12.0.1.0.1",
"development_status": "Beta",
"author": "Le Filament",
"license": "AGPL-3",
"application": False,
"depends": ['cgscop_partner',],
"data": [
"security/ir.model.access.csv",
"views/res_partner.xml",
"views/scop_financial_tools.xml",
"datas/cron_tantiemo.xml",
# "datas/ir_config_parameter.xml",
],
'installable': True,
'auto_install': False,
}
<odoo>
<data noupdate="0">
<record id="ir_cron_tantiemo" model="ir.cron">
<field name="name">CG Scop - Tantiemo</field>
<field name="active" eval="True" />
<field name="user_id" ref="base.user_root" />
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall">1</field>
<field name="nextcall" >2019-12-01 02:10:00</field>
<field name="model_id" ref="model_scop_financial_tools" />
<field name="code">model.import_data()</field>
<field name="state">code</field>
<field name="priority" eval="5" />
</record>
</data>
</odoo>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="tantiemo_login" model="ir.config_parameter">
<field name="key">tantiemo.login</field>
<field name="value">login</field>
</record>
<record id="tantiemo_password" model="ir.config_parameter">
<field name="key">tantiemo.password</field>
<field name="value">password</field>
</record>
<record id="tantiemo_url" model="ir.config_parameter">
<field name="key">tantiemo.url</field>
<field name="value">http://178.208.15.181:60853/</field>
</record>
</odoo>
\ No newline at end of file
Ce diff est replié.
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import res_partner
from . import scop_financial_tools
# © 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 TantiemoPartner(models.Model):
_inherit = "res.partner"
financial_tools_ids = fields.One2many(
comodel_name='scop.financial.tools',
inverse_name='partner_id',
string='Outils financiers')
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import csv
import os
from odoo import models, fields
class ScopFinancialTools(models.Model):
_name = "scop.financial.tools"
_description = "Financial tools"
_order = "date_notification desc"
partner_id = fields.Many2one(
comodel_name='res.partner',
string='Organisme',
domain=[('is_company', '=', True)],
ondelete='restrict', index=True)
riga_id = fields.Integer("ID RIGA")
nom_scop = fields.Char("Nom Scop")
outil = fields.Char("Type d’outil")
type_intervention = fields.Char("Type d'intervention",)
typo_financement = fields.Char("Typologie de financement")
no_intervention = fields.Char("No intervention", index=True)
montant_accorde = fields.Float("Montant accordé")
montant_notifie = fields.Float("Montant notifié")
montant_verse = fields.Float("Montant versé")
montant_solde = fields.Float("Solde")
date_decision = fields.Date("Date décision")
date_versement = fields.Date("Date Versement")
date_fin = fields.Date("Date de fin")
encours_total = fields.Float("Encours total")
encours_garanti = fields.Float("Encours garanti")
taux_provision = fields.Float("Taux de provision")
date_notification = fields.Date("Date de l’accord")
date_convention = fields.Date("Date convention")
#######################################################
##### IMPORT DATAS ######
#######################################################
def import_data(self):
csv_file = open('/home/odoo/tantiemo.csv', 'rt', encoding="ISO-8859-1")
# csv_file = open('/home/odoo/tantiemo.csv', 'rb')
# Requete
header = [
'riga_id', 'nom_scop', 'outil', 'type_intervention',
'typo_financement', 'no_intervention', 'montant_accorde',
'montant_notifie', 'montant_verse', 'montant_solde',
'date_decision', 'date_versement', 'date_fin', 'encours_total',
'encours_garanti', 'taux_provision', 'date_notification',
'date_convention']
# Suppression des lignes
self.unlink()
try:
# Création du lecteur CSV.
reader = csv.reader(csv_file, delimiter=';')
# Lecture de chaque ligne
for row in reader:
vals_financial_tools = {}
for index, item in enumerate(row):
vals_financial_tools[header[index]] = item
if not item:
vals_financial_tools[header[index]] = False
else:
vals_financial_tools[header[index]] = item
# récupération du dossier
partner_id = self.env['res.partner'].search([
['is_company', '=', True],
['id_riga', '=', vals_financial_tools['riga_id']]])
# si le dossier n'existe pas, on le crée,
# si il existe, on le met à jour
if partner_id:
vals_financial_tools.update({'partner_id': partner_id.id})
self.create(vals_financial_tools)
finally:
csv_file.close()
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_scop_financial_tools,access_scop_financial_tools,model_scop_financial_tools,base.group_user,1,0,0,0
static/description/icon.png

8,95 ko

# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import test_tantiemo
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import random
import logging
from odoo.tests import tagged, common
_logger = logging.getLogger(__name__)
@tagged('post_install', '-at_install')
class TestApiRiga(common.TransactionCase):
def test_read(self):
print("______ Tests Tantiemo ________")
partner = self.env['res.partner'].search([
['name', '=', 'LeFilament']])
print(partner)
print("____ ID RIGA Partner")
partner.write({'id_riga': 6481})
print(partner.id_riga)
print("____ Financial Tools Partner")
Finance = self.env['scop.financial.tools']
print(Finance.search([]))
print("____ Update Financial Tools")
Finance.import_data()
print(partner.financial_tools_ids)
<?xml version="1.0"?>
<!-- Copyright 2019 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data>
<record id="view_partner_cooperative_tantiemo_form" model="ir.ui.view">
<field name="name">cooperative.tantiemo.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="cgscop_partner.view_partner_cooperative_form"/>
<field name="priority" eval="1"/>
<field name="arch" type="xml">
<page name='scop_liasse_fiscale' position="after">
<page name='scop_financial_tools' string="Outils Financiers" attrs="{'invisible': [('project_status', '!=', '6_suivi')]}">
<field name="financial_tools_ids" readonly="1">
</field>
</page>
</page>
</field>
</record>
</data>
</odoo>
<?xml version="1.0"?>
<!-- Copyright 2019 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data>
<!-- Financial Tools -->
<record id="view_scop_financial_tools_tree" model="ir.ui.view">
<field name="name">scop.financial.tools.tree</field>
<field name="model">scop.financial.tools</field>
<field name="arch" type="xml">
<tree string="Financial Tools Types">
<field name="outil"/>
<field name="no_intervention"/>
<field name="type_intervention"/>
<field name="typo_financement"/>
<field name="date_notification"/>
<field name="montant_accorde"/>
<field name="montant_notifie"/>
<field name="montant_verse"/>
<field name="montant_solde"/>
<field name="date_versement"/>
<field name="date_fin"/>
<field name="encours_total"/>
<field name="encours_garanti"/>
<field name="taux_provision"/>
<field name="date_convention"/>
<field name="date_decision"/>
</tree>
</field>
</record>
<record id="action_view_scop_financial_tools_tree" model="ir.actions.act_window">
<field name="name">Financial Tools</field>
<field name="res_model">scop.financial.tools</field>
<field name="view_mode">tree</field>
<field name="help">Display and manage the list of Financial Tools.</field>
</record>
<menuitem id="menu_scop_financial_tools"
parent="cgscop_partner.menu_scop_lists"
action="action_view_scop_financial_tools_tree"
string="Outils Financiers"
sequence="90"/>
</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