Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 1b8b54887d4e421ffa60449863adc09e8c56b4ce
  • 14.0 par défaut
  • 12.0 protégée
  • 13.0
4 résultats

res_company.py

Blame
  • res_partner.py 1,99 Kio
    # Copyright 2019 Le Filament (<http://www.le-filament.com>)
    # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
    
    from odoo import api, models
    from odoo.addons.cmis_field import fields
    
    ALFRESCO_TRACKED_FIELDS = ['name', 'id', 'siret', 'member_number']
    
    
    class AlfodooResPartner(models.Model):
        _name = 'res.partner'
        _inherit = ['res.partner', 'cgscop.alfresco']
    
        partner_cmis_folder = fields.CmisFolder(
            allow_create=False,
            allow_delete=False
        )
    
        # ------------------------------------------------------
        # Override ORM
        # ------------------------------------------------------
        @api.multi
        def write(self, vals):
            """ Surcharge la fonction write() pour mettre à jour
            la raison sociale, le nom, le siret, l'id Odoo ou le
            num adhérent
            """
            tracked_fields = self.fields_get(ALFRESCO_TRACKED_FIELDS)
            # Dict des valeurs initiales des champs présents dans TRACKED_FIELDS
            initial_values = dict(
                (record.id, dict(
                    (key, getattr(record, key)) for key in tracked_fields)) for record in self.filtered('is_cooperative'))
            # Ecriture des nouvelles valeurs
            result = super(AlfodooResPartner, self).write(vals)
            # Dict des nouvelles valeurs
            new_values = dict(
                (record.id, dict(
                    (key, getattr(record, key)) for key in tracked_fields)) for record in self.filtered('is_cooperative'))
            # Check des modifications sur les coopératives présentes dans RIGA
            for record in self:
                if record.is_cooperative and record.partner_cmis_folder:
                    if new_values[record.id] != initial_values[record.id]:
                        self.alfresco_update_organism(record)
            return result
    
        @api.multi
        def unlink(self):
            for partner in self:
                if partner.partner_cmis_folder:
                    partner.alfresco_remove(partner.partner_cmis_folder)
                return super(AlfodooResPartner, self).unlink()