Sélectionner une révision Git
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)