Skip to content
Extraits de code Groupes Projets
res_partner.py 9,51 ko
Newer Older
  • Learn to ignore specific revisions
  • Juliana's avatar
    Juliana a validé
    # © 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
    
    Juliana's avatar
    Juliana a validé
    
    
    class ScopPartner(models.Model):
        _inherit = "res.partner"
    
        # Infos générales
    
        is_cooperative = fields.Boolean("Est une coopérative")
    
    Juliana's avatar
    Juliana a validé
    
        # Informations organisme
    
        unique_id_si_ur = fields.Char("Identifiant unique SI UR")
        unique_id_si_cg = fields.Char("Identifiant unique SI CG")
    
    
        ur = fields.Many2one(
            'res.company',
    
    Juliana's avatar
    Juliana a validé
            string='Union Régionale',
    
            domain=[('id', '!=', 1)],
            on_delete='restrict')
        siren = fields.Char(string='SIREN', size=9)
    
    Juliana's avatar
    Juliana a validé
        registration_date = fields.Date(
    
            string="Date d'immatriculation RCS")
    
    Juliana's avatar
    Juliana a validé
        dissolution_date = fields.Date('Date de Décès')
    
        dissolution_reason_id = fields.Many2one(
            'res.partner.dissolution.reason',
            string="Motif Décés",
            on_delete='restrict')
        organization_type_id = fields.Many2one(
            'res.partner.organization.type',
            string="Type d'organisme",
            on_delete='restrict')
    
    Juliana's avatar
    Juliana a validé
        sigle = fields.Char('Sigle')
    
        social_object = fields.Char('Objet Social')
    
        admin_email = fields.Char('E-mail administratif')
    
    Juliana's avatar
    Juliana a validé
    
        # Informations coopératives
        creation_origin = fields.Selection(
    
            [('null', 'Ex-nihilo'),
    
    Juliana's avatar
    Juliana a validé
             ('transformation', 'Transformation'),
             ('transmission', 'Transmission'),
    
             ('takeover', 'reprise')],
    
    Juliana's avatar
    Juliana a validé
            string='Origine création en coop')
    
        project_status = fields.Selection(
    
            [('1_information', "Phase d'information"),
             ('2_pre-diagnostic', 'Phase de pré-diagnostic'),
             ('3_accompagnement', "Phase d'accompagnement"),
             ('4_adhesion', "Phase d'adhésion"),
             ('5_suivi', 'Phase de suivi'),
             ('6_abandonne', 'Projet abandonné')],
    
            track_visibility='onchange',
    
            string='Statut projet')
    
        creation_delegate_id = fields.Many2one(
    
    Juliana's avatar
    Juliana a validé
            'res.partner',
            string='Délégué de création',
    
            domain=[('user_ids', '>', 0)],
            on_delete='restrict')
        followup_delegate_id = fields.Many2one(
    
    Juliana's avatar
    Juliana a validé
            'res.partner',
            string='Délégué de suivi',
    
            domain=[('user_ids', '>', 0)],
            on_delete='restrict')
        revision_delegate_id = fields.Many2one(
    
    Juliana's avatar
    Juliana a validé
            'res.partner',
            string='Délégué de révision',
    
            domain=[('user_ids', '>', 0)],
            on_delete='restrict')
        direccte_id = fields.Many2one(
    
    Juliana's avatar
    Juliana a validé
            'res.partner',
            string='DIRECCTE rattachée',
    
            domain=[('is_company', '=', True)],
            on_delete='restrict')
    
    Juliana's avatar
    Juliana a validé
        date_1st_sign = fields.Date(
    
            'Date 1er signature coop')
    
    Juliana's avatar
    Juliana a validé
        last_update_status = fields.Date('Dernière mise à jour des statuts')
    
        auditor_id = fields.Many2one(
    
    Juliana's avatar
    Juliana a validé
            'res.partner',
    
            string='Commissaire aux Comptes',
            domain=[('is_company', '=', True)],
            on_delete='restrict')
        accountant_id = fields.Many2one(
    
    Juliana's avatar
    Juliana a validé
            'res.partner',
    
            string='Expert-Comptable',
            domain=[('is_company', '=', True)],
            on_delete='restrict')
    
    Juliana's avatar
    Juliana a validé
        # Informations fiscales/financières
        first_closeout = fields.Date(
    
            'Date clôture 1er bilan')
    
        closeout_month = fields.Selection(
    
    Juliana's avatar
    Juliana a validé
            [(1, 'Janvier'),
             (2, 'Février'),
             (3, 'Mars'),
             (4, 'Avril'),
             (5, 'Mai'),
             (6, 'Juin'),
             (7, 'Juillet'),
             (8, 'Août'),
             (9, 'Septembre'),
             (10, 'Octobre'),
             (11, 'Novembre'),
             (12, 'Décembre')],
            string='Mois clôture exercices', default=12)
    
    
        # Infos suivies
        # Infos organismes
        cooperative_form_id = fields.Many2one(
            'res.partner.cooperative.form',
            string="Cooperative form",
            track_visibility='onchange',
            on_delete='restrict')
        cae = fields.Boolean("CAE", track_visibility='onchange')
    
        is_seed_scop = fields.Boolean("Est une SCOP d'amorçage",
    
                                   track_visibility='onchange')
        siret = fields.Char(string='SIRET', size=14, track_visibility='onchange')
    
        name = fields.Char(index=True, track_visibility='always')
    
        street = fields.Char(track_visibility='onchange')
        street2 = fields.Char(track_visibility='onchange')
        street3 = fields.Char(track_visibility='onchange')
        zip_id = fields.Many2one('res.city.zip', 'ZIP Location',
                                 track_visibility='onchange')
        city = fields.Char(track_visibility='onchange')
        city_id = fields.Many2one('res.city', string='City of Address',
                                  track_visibility='onchange')
        state_id = fields.Many2one(
            "res.country.state",
            string='State',
            ondelete='restrict',
            domain="[('country_id', '=?', country_id)]",
            track_visibility='onchange')
        country_id = fields.Many2one(
            'res.country', string='Country', ondelete='restrict',
            track_visibility='onchange')
        is_main_location = fields.Boolean("Est l'etablissement principal",
                                          track_visibility='onchange')
        is_subsidiary = fields.Boolean('Est une Filiale',
                                       track_visibility='onchange')
        parent_group_name = fields.Char('Nom du groupe parent',
                                        track_visibility='onchange')
    
        # Informations juridiques
    
        partner_company_type_id = fields.Many2one(
            comodel_name='res.partner.company.type',
            string='Legal Form',
            track_visibility='onchange',
            on_delete='restrict'
        )
    
        capital = fields.Integer('Capital social', track_visibility='onchange')
        ape_id = fields.Many2one(
            'res.partner.category',
            string='APE',
            help="If the partner is a French company, enter its official "
            "main activity in this field. The APE is chosen among the "
            "NAF nomenclature.",
            track_visibility='onchange',
            on_delete='restrict'
        )
        certification_ids = fields.Many2many(
            comodel_name='res.partner.certification',
            string='Agrement', track_visibility='onchange',
            on_delete='restrict')
        industry_id = fields.Many2one('res.partner.industry', 'Industry',
                                      track_visibility='onchange',
                                      on_delete='restrict')
    
    Juliana's avatar
    Juliana a validé
    
        # Autres Informations
        # Période d'adhésion
        membership_period_ids = fields.One2many(
    
            comodel_name='scop.membership.period',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
    
            string="Périodes d'adhésion")
    
    Juliana's avatar
    Juliana a validé
    
        # Cotisation
        contribution_ids = fields.One2many(
    
            comodel_name='scop.contribution',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
            string='Cotisations')
    
        # Liste Ministère
        ministry_list_ids = fields.One2many(
    
            comodel_name='scop.ministry.list',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
            string='Liste Ministère')
    
        # Questionnaire
        questionnaire_ids = fields.One2many(
    
            comodel_name='scop.questionnaire',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
    
            string='Questionnaire')
    
    Juliana's avatar
    Juliana a validé
    
        # Liasse fiscale
        liasse_fiscale_ids = fields.One2many(
    
            comodel_name='scop.liasse.fiscale',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
    
            string='Liasses Fiscales')
    
    Juliana's avatar
    Juliana a validé
    
        # Effectifs
    
        staff_ids = fields.One2many(
            comodel_name='scop.staff',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
            string='Effectifs')
    
        # Révisions
        revision_ids = fields.One2many(
    
            comodel_name='scop.revision',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
    
            string='Liste des Révisions')
    
    Juliana's avatar
    Juliana a validé
    
        # Evènements juridiques
        legal_event_ids = fields.One2many(
    
            comodel_name='scop.legal.event',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
    
            string='Evènements Juridiques')
    
    Juliana's avatar
    Juliana a validé
    
        # Outils financiers
        financial_tools_ids = fields.One2many(
    
            comodel_name='scop.financial.tools',
    
    Juliana's avatar
    Juliana a validé
            inverse_name='partner_id',
            string='Outils financiers')
    
        # Champs pour contacts
    
        birthyear = fields.Integer("Année de naissance")
        education_level = fields.Selection([
    
    Juliana's avatar
    Juliana a validé
            ('licence', 'Licence'),
            ('master', 'Master')],
            "Niveau d'étude")
    
        education_domain = fields.Selection([
    
    Juliana's avatar
    Juliana a validé
            ('science', 'Science')],
            "Domaine d'étude")
    
        subscriptions_ids = fields.One2many(
            comodel_name='res.partner.newsletter.subscription',
            inverse_name='partner_id',
            string='Abonnements')
        contact_origin_id = fields.Many2one(
            'res.partner.rgpd.origin',
            string="Origine du contact",
            on_delete='restrict')
        contact_legality = fields.Selection(
            [("employee", "Salarié"),
             ("customer", "Client en contrat"),
             ("supplier", "Fournisseur en contrat"),
             ("consent", "Consentement"),
             ("legitimate", "Intérêt légitime"),
             ("none", "Aucune")],
            string="Licéité du contact", default="none")
    
    
    class ResPartnerDissolutionReason(models.Model):
        _name = "res.partner.dissolution.reason"
        _description = "Dissolution Reason"
    
        name = fields.Char('Dissolution Reason')
    
    
    class ResPartnerTypeOrganization(models.Model):
        _name = "res.partner.organization.type"
    
        _description = "Organization Type"
    
        name = fields.Char('Organization Type')
    
    
    
    class ResPartnerCooperativeForm(models.Model):
        _name = "res.partner.cooperative.form"
        _description = "Cooperative form"
    
        name = fields.Char('Cooperative form')
    
    Juliana's avatar
    Juliana a validé
    
    
    class ResPartneCertification(models.Model):
        _name = "res.partner.certification"
        _description = "Certification"
    
    Juliana's avatar
    Juliana a validé
    
    
        name = fields.Char('Certification')
    
    Juliana's avatar
    Juliana a validé
    
    
    
    class ResPartnerRgpdOrigin(models.Model):
        _name = "res.partner.rgpd.origin"
    
    Juliana's avatar
    Juliana a validé
        _description = "Origin"
    
        name = fields.Char('Origin')