Sélectionner une révision Git
scop_financial_tools.py 3,25 Kio
# © 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()