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

__manifest__.py

Blame
  • res_partner.py 5,55 Kio
    # Copyright 2021 Le Filament (<http://www.le-filament.com>)
    # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
    
    from odoo import fields, models, api
    
    
    class ModelName(models.Model):
        _inherit = "res.partner"
    
        # ------------------------------------------------------
        # Fields declaration
        # ------------------------------------------------------
    
        # Général
        type_id = fields.Many2one(
            comodel_name='res.partner.type',
            string='Type de contact',
            required=False)
        subtype_id = fields.Many2one(
            comodel_name='res.partner.subtype',
            string='Sous-type de contact',
            required=False)
    
        service = fields.Char(
            string='Service',
            required=False)
    
        facebook = fields.Char(
            string='Facebook',
            required=False)
        twitter = fields.Char(
            string='Twitter',
            required=False)
        instagram = fields.Char(
            string='Instagram',
            required=False)
    
        # Commerce
        business_name = fields.Char(
            string='Nom commercial',
            required=False)
        commerce_type_id = fields.Many2one(
            comodel_name='res.partner.commerce.type',
            string='Type de commerce',
            required=False)
        legal_status_id = fields.Many2one(
            comodel_name='res.partner.legal.status',
            string='Forme juridique',
            required=False)
        commerce_status_id = fields.Many2one(
            comodel_name='res.partner.commerce.status',
            string='Statut du commerce',
            required=False,
            tracking=True)
        gt_commerce_participation = fields.Boolean(
            string='Participe au GT Commerce',
            required=False)
        meg = fields.Char(
            string='Numéro MEG',
            required=False)
        prescripteur_id = fields.Many2one(
            comodel_name='res.partner.prescripteur',
            string='Prescripteur',
            required=False)
        network_starting_date = fields.Date(
            string='Date entrée réseau',
            required=False)
        participation_ids = fields.Many2many(
            comodel_name='res.partner.participation',
            string='Participe à')
    
        # Adhésion à ETIC
        is_partner_member = fields.Boolean(
            string='Adhérent',
            required=False,
            tracking=True)
        partner_membership_date = fields.Date(
            string='Date d\'adhésion',
            required=False)
        is_partnesrship_committee = fields.Boolean(
            string='Participe au comité partenarial',
            required=False)
        is_cofunder_college = fields.Boolean(
            string='Est au collège cofondateur',
            required=False)
        is_resident_college = fields.Boolean(
            string='Est au collège habitant',
            required=False)
        is_active_volunteer = fields.Boolean(
            string='Est bénévole actif',
            required=False)
        is_employee = fields.Boolean(
            string='Est salarié',
            required=False)
    
        # Adhésion à la structure
        is_etic_member = fields.Boolean(
            string='Nous sommes adhérents',
            required=False)
        etic_membership_date = fields.Date(
            string='Date de notre adhésion',
            required=False)
    
        # Consignes
        deposit_balance = fields.Float(
            string='Solde consignes',
            # currency_field='company_id.currency_id',
            required=False)
        deposit_balance_date = fields.Date(
            string='Date relevé solde consignes',
            required=False)
    
        # Horaires
        delivery_schedule_ids = fields.One2many(
            comodel_name='res.partner.delivery.schedule',
            inverse_name='partner_id',
            string='Créneaux de livraisons')
        spot_schedule_ids = fields.One2many(
            comodel_name='res.partner.spot.schedule',
            inverse_name='partner_id',
            string='Emplacements (commerces itinérants)')
        time_slot = fields.Text(
            string='Créneaux attribués',
            required=False)
        opening_schedule_ids = fields.One2many(
            comodel_name='res.partner.opening.schedule',
            inverse_name='partner_id',
            string='Horaires d\'ouverture')
        order_conditions = fields.Text(
            string='Modalités de la commande',
            required=False)
    
        # Essaimage
        convention_date1 = fields.Date(
            string='Date signature convention Phase 1',
            required=False)
        convention_date2 = fields.Date(
            string='Date signature convention Phase 2',
            required=False)
        exchange_summary = fields.Text(
            string='Résumé des échanges',
            required=False)
        webinar_participation_date = fields.Date(
            string='Date Participation Webinaire',
            required=False)
        selection_date = fields.Date(
            string='Date de sélection',
            required=False)
        essaimage_status_id = fields.Many2one(
            comodel_name='res.partner.essaimage.status',
            string='Avancement essaimage',
            tracking=True)
    
        # ------------------------------------------------------
        # Onchange / Constraints
        # ------------------------------------------------------
        @api.onchange('company_type')
        def onchange_company_type(self):
            self.type_id = None
    
        @api.onchange('type_id')
        def onchange_type(self):
            self.subtype_id = None
    
        # ------------------------------------------------------
        # Override ORM
        # ------------------------------------------------------
        @api.model
        def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None):
            if args is None:
                args = []
            domain = args + ['|', ('business_name', operator, name), ('name', operator, name)]
            return self._search(domain, limit=limit, access_rights_uid=name_get_uid)