Newer
Older
# © 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
class ScopPartner(models.Model):
_inherit = "res.partner"
# Infos générales
is_cooperative = fields.Boolean("Est une coopérative")
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',
domain=[('id', '!=', 1)],
on_delete='restrict')
siren = fields.Char(string='SIREN', size=9)
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')
social_object = fields.Char('Objet Social')
admin_email = fields.Char('E-mail administratif')
# Informations coopératives
creation_origin = fields.Selection(
('transformation', 'Transformation'),
('transmission', 'Transmission'),
('takeover', 'reprise')],
[('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(
domain=[('user_ids', '>', 0)],
on_delete='restrict')
followup_delegate_id = fields.Many2one(
domain=[('user_ids', '>', 0)],
on_delete='restrict')
revision_delegate_id = fields.Many2one(
domain=[('user_ids', '>', 0)],
on_delete='restrict')
direccte_id = fields.Many2one(
domain=[('is_company', '=', True)],
on_delete='restrict')
last_update_status = fields.Date('Dernière mise à jour des statuts')
auditor_id = fields.Many2one(
string='Commissaire aux Comptes',
domain=[('is_company', '=', True)],
on_delete='restrict')
accountant_id = fields.Many2one(
string='Expert-Comptable',
domain=[('is_company', '=', True)],
on_delete='restrict')
# Informations fiscales/financières
first_closeout = fields.Date(
closeout_month = fields.Selection(
[(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')
# Autres Informations
# Période d'adhésion
membership_period_ids = fields.One2many(
comodel_name='scop.membership.period',
string="Périodes d'adhésion")
comodel_name='scop.contribution',
inverse_name='partner_id',
string='Cotisations')
# Liste Ministère
ministry_list_ids = fields.One2many(
comodel_name='scop.ministry.list',
inverse_name='partner_id',
string='Liste Ministère')
# Questionnaire
questionnaire_ids = fields.One2many(
comodel_name='scop.questionnaire',
comodel_name='scop.liasse.fiscale',
string='Liasses Fiscales')
staff_ids = fields.One2many(
comodel_name='scop.staff',
inverse_name='partner_id',
string='Effectifs')
# Révisions
revision_ids = fields.One2many(
comodel_name='scop.revision',
comodel_name='scop.legal.event',
string='Evènements Juridiques')
comodel_name='scop.financial.tools',
inverse_name='partner_id',
string='Outils financiers')
# Champs pour contacts
birthyear = fields.Integer("Année de naissance")
education_level = fields.Selection([
('licence', 'Licence'),
('master', 'Master')],
"Niveau d'étude")
education_domain = fields.Selection([
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
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')
class ResPartneCertification(models.Model):
_name = "res.partner.certification"
_description = "Certification"
name = fields.Char('Certification')
class ResPartnerRgpdOrigin(models.Model):
_name = "res.partner.rgpd.origin"