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
def _default_company(self):
return self.env['res.company']._company_default_get('res.partner')
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")
[('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')
cooperative_form_id = fields.Many2one(
'res.partner.cooperative.form',
string="Cooperative form",
on_delete='restrict')
partner_company_type_id = fields.Many2one(
comodel_name='res.partner.company.type',
string='Legal Form',
on_delete='restrict')
membership_status = fields.Selection(
[('member', 'Adhérent'),
('not_member', 'Non Adhérent'),
('out', 'Radié')],
string="Statut d'adhésion", default="not_member")
member_number = fields.Char("No adhérent")
cae = fields.Boolean("CAE")
# Infos générales / Contact
admin_email = fields.Char('E-mail administratif')
facebook = fields.Char("Facebook")
linkedin = fields.Char("LinkedIn")
twitter = fields.Char("Twitter")
director_ids = fields.One2many(
'res.partner', 'parent_id',
string='Contacts Dirigeants')
# Infos générales / Suivi UR
company_id = fields.Many2one(
'res.company',
string='Union Régionale',
index=True,
on_delete='restrict',
default=_default_company)
creation_delegate_id = fields.Many2one(
domain=[('user_ids', '>', 0)],
on_delete='restrict')
followup_delegate_id = fields.Many2one(
domain=[('user_ids', '>', 0)],
on_delete='restrict')
parent_group_name = fields.Char('Coopérative mère')
# Infos générales / Infos activité
creation_origin = fields.Selection(
[('null', 'Ex-nihilo'),
('transformation', 'Transformation'),
('transmission', 'Transmission'),
('takeover', 'reprise')],
string='Origine création en coop')
creation_suborigin_id = fields.Many2one(
'res.partner.creation.suborigin',
string="Sous-Origine création en coop",
registration_date = fields.Date(
string="Date d'immatriculation RCS")
social_object = fields.Char('Objet Social')
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.",
industry_id = fields.Many2one('res.partner.industry', 'Industry',
on_delete='restrict')
certification_ids = fields.Many2many(
comodel_name='res.partner.certification',
string='Agrément', on_delete='restrict')
siret = fields.Char(string='SIRET', size=14)
first_closeout = fields.Date(
'Date clôture 1er bilan en coopérative')
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)
is_seed_scop = fields.Boolean("Est une SCOP d'amorçage")
seed_end = fields.Date("Date de fin du dispositif d'amorçage",
default=str(datetime.today() + timedelta(2556)))
is_incubated = fields.Boolean("Est incubé")
incubator_id = fields.Many2one(
'res.partner',
string='Incubateur',
domain=[('is_company', '=', True)],
on_delete='restrict')
prescriber_canal_id = fields.Many2one(
'res.partner.prescriber.canal',
string='Canal de Prescription',
# Infos juridiques
siren = fields.Char(string='SIREN', size=9)
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')
# Partenaires
bank_id = fields.Many2one(
domain=[('is_company', '=', True)],
on_delete='restrict')
domain=[('is_company', '=', True)],
on_delete='restrict')
string='Expert-Comptable',
domain=[('is_company', '=', True)],
accountant_person_id = fields.Many2one(
string='Expert-Comptable (personne)',
domain=[('is_company', '=', False)],
on_delete='restrict')
auditor_id = fields.Many2one(
'res.partner',
string='Commissaire aux Comptes',
domain=[('is_company', '=', True)],
on_delete='restrict')
auditor_person_id = fields.Many2one(
'res.partner',
string='Commissaire aux Comptes (personne)',
domain=[('is_company', '=', False)],
# Contacts / Adresses
is_main_location = fields.Boolean("Est l'établissement principal")
# Périodes juridiques
scop_period_ids = fields.One2many(
comodel_name='scop.period',
inverse_name='partner_id',
string="Périodes Juridiques")
# 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
direccte_id = fields.Many2one(
'res.partner',
string='DIRECCTE rattachée',
domain=[('is_company', '=', True)],
on_delete='restrict')
last_update_status = fields.Date('Dernière mise à jour des statuts')
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
228
229
230
231
232
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
260
261
262
revision_contract = fields.Date("Date du contrat de révision")
revision_company_id = fields.Many2one(
'res.partner',
string='Organisme de révision',
domain=[('is_company', '=', True)],
on_delete='restrict')
revision_backup_company_id = fields.Many2one(
'res.partner',
string='Organisme de révision suppléant',
domain=[('is_company', '=', True)],
on_delete='restrict')
revision_person_id = fields.Many2one(
'res.partner',
string='Réviseur',
domain=[('is_company', '=', False)],
on_delete='restrict')
revision_certified_person_id = fields.Many2one(
'res.partner',
string='Réviseur agréé',
domain=[('is_company', '=', False)],
on_delete='restrict')
revision_person_assign_date = fields.Date("Date de nomination du réviseur")
revision_type = fields.Selection(
[('1y', "Annuelle"),
('5y', 'Quinquennale'),
('5ys', "Quinquennale séquencée")],
string='Périodicité de la révision')
revision_format_id = fields.Many2one(
'scop.revision.format',
string='Format de révision',
on_delete='restrict')
revision_last_date = fields.Date("Dernier exercice révisé")
revision_next_date = fields.Date("Prochain exercice révisable")
revision_staff_id = fields.Integer(string='Effectif révision')
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([
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 ResPartneCertification(models.Model):
_name = "res.partner.certification"
_description = "Certification"
name = fields.Char('Certification')
class ResPartnerCooperativeForm(models.Model):
_name = "res.partner.cooperative.form"
_description = "Cooperative form"
name = fields.Char('Cooperative form')
class ResPartnerCreationSuborigin(models.Model):
_name = "res.partner.creation.suborigin"
_description = "Creation Sub-Origin"
name = fields.Char('Creation Sub-Origin')
class ResPartnerDissolutionReason(models.Model):
_name = "res.partner.dissolution.reason"
_description = "Dissolution Reason"
name = fields.Char('Dissolution Reason')
class ResPartnerPrescriberCanal(models.Model):
_name = "res.partner.prescriber.canal"
_description = "Prescriber Canal"
name = fields.Char('Prescriber Canal')
class ResPartnerRgpdOrigin(models.Model):
_name = "res.partner.rgpd.origin"
class ResPartnerTypeOrganization(models.Model):
_name = "res.partner.organization.type"
_description = "Organization Type"
name = fields.Char('Organization Type')