Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • b4efbf39c9ac0c1bd28c14ef38a678bc56961c2a
  • 12.0 par défaut protégée
2 résultats

__init__.py

Blame
  • 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()