Sélectionner une révision Git
Bifurcation depuis
Le Filament / Confédération Générale des SCOP / cgscop_adhesion
Le projet source a une visibilité limitée.
res_partner.py 12,61 Kio
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from datetime import datetime, timedelta
from odoo import models, fields
class ScopPartner(models.Model):
_inherit = "res.partner"
def _default_company(self):
return self.env['res.company']._company_default_get('res.partner')
# Infos générales
is_cooperative = fields.Boolean("Est une coopérative")
# Informations organisme
# A garder ?
unique_id_si_ur = fields.Char("Identifiant unique SI UR")
unique_id_si_cg = fields.Char("Identifiant unique SI CG")
company_id = fields.Many2one(
'res.company',
string='Union Régionale',
index=True,
on_delete='restrict',
default=_default_company)
siren = fields.Char(string='SIREN', size=9)
registration_date = fields.Date(
string="Date d'immatriculation RCS")
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')
organization_type_id = fields.Many2one(
'res.partner.organization.type',
string="Type d'organisme",
on_delete='restrict')
sigle = fields.Char('Sigle')
social_object = fields.Char('Objet Social')
admin_email = fields.Char('E-mail administratif')
# Informations coopératives
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",
on_delete='restrict')
project_status = fields.Selection(
[('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(
'res.partner',
string='Délégué de création',
domain=[('user_ids', '>', 0)],
on_delete='restrict')
followup_delegate_id = fields.Many2one(
'res.partner',
string='Délégué de suivi',
domain=[('user_ids', '>', 0)],
on_delete='restrict')
origin_company_type_id = fields.Many2one(
comodel_name='res.partner.company.type',
string="Forme juridique d'origine",
track_visibility='onchange',
on_delete='restrict')
bank_id = fields.Many2one(
'res.partner',
string='Banquier principal',
domain=[('is_company', '=', True)],
on_delete='restrict')
bank2_id = fields.Many2one(
'res.partner',
string='Banquier secondaire',
domain=[('is_company', '=', True)],
on_delete='restrict')
direccte_id = fields.Many2one(
'res.partner',
string='DIRECCTE rattachée',
domain=[('is_company', '=', True)],
on_delete='restrict')
date_1st_sign = fields.Date(
'Date 1er signature coop')
last_update_status = fields.Date('Dernière mise à jour des statuts')
auditor_id = fields.Many2one(
'res.partner',
string='Commissaire aux Comptes',
domain=[('is_company', '=', True)],
on_delete='restrict')
accountant_id = fields.Many2one(
'res.partner',
string='Expert-Comptable',
domain=[('is_company', '=', True)],
on_delete='restrict')
is_seed_scop = fields.Boolean("Est une SCOP d'amorçage")
seed_end = fields.Date("Date de fin de dispositif",
default=str(datetime.today() + timedelta(2556)))
auditor_person_id = fields.Many2one(
'res.partner',
string='Commissaire aux Comptes (personne)',
domain=[('is_company', '=', False)],
on_delete='restrict')
accountant_person_id = fields.Many2one(
'res.partner',
string='Expert-Comptable (personne)',
domain=[('is_company', '=', False)],
on_delete='restrict')
is_incubated = fields.Boolean("Est incubé")
incubator_id = fields.Many2one(
'res.partner',
string='Incubateur',
domain=[('is_company', '=', True)],
on_delete='restrict')
prescriber_id = fields.Many2one(
'res.partner',
string='Prescripteur',
domain=[('is_company', '=', True)],
on_delete='restrict')
# Informations de révision
revision_contract = fields.Boolean("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 agréé',
domain=[('is_company', '=', False)],
on_delete='restrict')
revision_backup_person_id = fields.Many2one(
'res.partner',
string='Réviseur assistant',
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='Nature de la révision')
revision_format_id = fields.Many2one(
'scop.revision.format',
string='Format de révision',
on_delete='restrict')
revision_staff_id = fields.Many2one(
'scop.revision.staff',
string='Effectif révision',
on_delete='restrict')
revision_next_date = fields.Date("Prochain exercice révisable")
# Informations fiscales/financières
first_closeout = fields.Date(
'Date clôture 1er bilan')
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')
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'établissement 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',
inverse_name='partner_id',
string="Périodes d'adhésion")
# Cotisation
contribution_ids = fields.One2many(
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',
inverse_name='partner_id',
string='Questionnaire')
# Liasse fiscale
liasse_fiscale_ids = fields.One2many(
comodel_name='scop.liasse.fiscale',
inverse_name='partner_id',
string='Liasses Fiscales')
# Effectifs
staff_ids = fields.One2many(
comodel_name='scop.staff',
inverse_name='partner_id',
string='Effectifs')
# Révisions
revision_ids = fields.One2many(
comodel_name='scop.revision',
inverse_name='partner_id',
string='Liste des Révisions')
# Evènements juridiques
legal_event_ids = fields.One2many(
comodel_name='scop.legal.event',
inverse_name='partner_id',
string='Evènements Juridiques')
# Outils financiers
financial_tools_ids = fields.One2many(
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([
('science', 'Science')],
"Domaine d'étude")
subscription_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 ResPartnerCreationSuborigin(models.Model):
_name = "res.partner.creation.suborigin"
_description = "Creation Sub-Origin"
name = fields.Char('Creation Sub-Origin')
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"
_description = "Origin"
name = fields.Char('Origin')