odoo-Morpheus/morpheus_contacts/models/res_partner.py

103 lines
3.3 KiB
Python

from odoo import models, fields
class ResPartner(models.Model):
_inherit = 'res.partner'
is_favorite_contact = fields.Boolean(
string="Contatto Preferito",
help="Spunta questa casella se è un contatto prioritario per questa azienda."
)
percent_provvigioni = fields.Float(
string="% Provvigioni",
digits=(5, 2),
help="Inserisci la percentuale"
)
cliente_fornitore_tipo = fields.Selection([
('cliente', 'Cliente'),
('fornitore', 'Fornitore'),
('entrambi', 'Entrambi')
], string='Cliente/Fornitore')
agente_id = fields.Many2one(
'res.partner',
string="Agente",
domain="[('is_company', '=', False)]", # Filtra per i contatti che sono persone
help="Seleziona l'agente di riferimento"
)
ceo_name = fields.Char(string="CEO Name")
data_inizio_attivita = fields.Date(string="Data inizio attività")
fatturato_annuo = fields.Monetary(string="Fatturato annuo / Ricavi", currency_field='currency_id')
currency_id = fields.Many2one(
'res.currency',
string='Valuta',
default=lambda self: self.env.company.currency_id.id,
)
# Sezione "FORM Contatto"
settori = fields.Many2many('res.partner.sector', string="Settori")
origine_contatto = fields.Selection([
('motore_ricerca', 'Motore di ricerca'),
('linkedin_social', 'LinkedIn / Altri social media'),
('stampa_media', 'Financial Times / Altri media'),
('passaparola', 'Passaparola'),
('email', 'E-mail'),
('sitointernet', 'Sito Internet'),
('organico', 'Organico')
], string="Origine Contatto")
identita_cliente = fields.Selection([
('grossista_commerciante', 'Grossista - Commerciante'),
('distributore', 'Distributore'),
('e_commerce', 'E-commerce'),
('catena_negozi', 'Catena di negozi'),
('centro_commerciale_outlet', 'Centro Commerciale - Outlet'),
('agente', 'Agente'),
], string="Identità Cliente")
acquisti_da_italia = fields.Selection([
('si', ''),
('no', 'No')
], string="State acquistando dall'Italia?")
fornitori_attuali_ids = fields.Many2many(
'fornitore.attuale.option',
string="Fornitori Attuali dei Clienti"
)
# Campo per identificare se è un agente
is_agent = fields.Boolean(
string="È un Agente",
help="Spunta questa casella se questo contatto è un agente"
)
# Campo Email 2
email2 = fields.Char(
string="E-mail 2" ,
help="Indirizzo email secondario"
)
# Campo Note Logistiche (simile alle note interne)
note_logistiche = fields.Html(
string="Note Logistiche",
help="Note logistiche interne con editor ricco"
)
class ResPartnerSector(models.Model):
_name = 'res.partner.sector' # Nome tecnico corretto
_description = 'Settore Partner'
name = fields.Char(string="Nome Settore")
class FornitoreAttualeOption(models.Model):
_name = 'fornitore.attuale.option'
_description = 'Opzioni Fornitore Attuale'
name = fields.Char(string="Tipo di Fornitore", required=True)