Skip to content
Extraits de code Groupes Projets
Valider 81bfa887 rédigé par Rémi - Le Filament's avatar Rémi - Le Filament
Parcourir les fichiers

Add SCOP period and rework views

parent 976d6591
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -9,6 +9,7 @@ from . import scop_legal_event
from . import scop_liasse_fiscale
from . import scop_membership
from . import scop_ministry_list
from . import scop_period
from . import scop_questionnaire
from . import scop_revision
from . import scop_staff
......@@ -18,35 +18,8 @@ class ScopPartner(models.Model):
# 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')
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')
# Informations Bandeau
project_status = fields.Selection(
[('1_information', "Phase d'information"),
('2_pre-diagnostic', 'Phase de pré-diagnostic'),
......@@ -56,6 +29,38 @@ class ScopPartner(models.Model):
('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="Statuts d'adhésion")
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(
'res.partner',
string='Délégué de création',
......@@ -66,47 +71,56 @@ class ScopPartner(models.Model):
string='Délégué de suivi',
domain=[('user_ids', '>', 0)],
on_delete='restrict')
bank_id = fields.Many2one(
'res.partner',
string='Banque principale',
domain=[('is_company', '=', True)],
on_delete='restrict')
bank2_id = fields.Many2one(
'res.partner',
string='Banque secondaire',
domain=[('is_company', '=', True)],
on_delete='restrict')
direccte_id = fields.Many2one(
'res.partner',
string='DIRECCTE rattachée',
domain=[('is_company', '=', True)],
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",
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)],
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.",
on_delete='restrict')
accountant_id = fields.Many2one(
'res.partner',
string='Expert-Comptable',
domain=[('is_company', '=', True)],
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)))
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',
......@@ -118,117 +132,56 @@ class ScopPartner(models.Model):
string='Canal de Prescription',
on_delete='restrict')
# Informations de révision
revision_contract = fields.Date("Date du contrat de révision")
revision_company_id = fields.Many2one(
# 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(
'res.partner',
string='Organisme de révision',
string='Banque principale',
domain=[('is_company', '=', True)],
on_delete='restrict')
revision_backup_company_id = fields.Many2one(
bank2_id = fields.Many2one(
'res.partner',
string='Organisme de révision suppléant',
string='Banque secondaire',
domain=[('is_company', '=', True)],
on_delete='restrict')
revision_person_id = fields.Many2one(
accountant_id = fields.Many2one(
'res.partner',
string='Réviseur agréé',
domain=[('is_company', '=', False)],
string='Expert-Comptable',
domain=[('is_company', '=', True)],
on_delete='restrict')
revision_certified_person_id = fields.Many2one(
accountant_person_id = fields.Many2one(
'res.partner',
string='Réviseur',
string='Expert-Comptable (personne)',
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',
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)],
on_delete='restrict')
revision_staff_id = fields.Integer(string='Effectif révision')
revision_last_date = fields.Date("Dernier exercice révisé")
revision_next_date = fields.Date("Prochain exercice révisable")
# Informations fiscales/financières
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)
# Contacts / Adresses
is_main_location = fields.Boolean("Est l'établissement principal")
# 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')
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'
)
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é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',
......@@ -242,6 +195,12 @@ class ScopPartner(models.Model):
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')
ministry_list_ids = fields.One2many(
comodel_name='scop.ministry.list',
inverse_name='partner_id',
......@@ -266,6 +225,41 @@ class ScopPartner(models.Model):
string='Effectifs')
# Révisions
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')
revision_ids = fields.One2many(
comodel_name='scop.revision',
inverse_name='partner_id',
......
# © 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, api
class ScopPeriod(models.Model):
_name = "scop.period"
_description = "SCOP Period"
_order = "partner_id, start desc"
# Infos générales
partner_id = fields.Many2one(
comodel_name='res.partner',
string='Organisme',
domain=[('is_cooperative', '=', True)],
ondelete='restrict', required=True)
start = fields.Date('Début de validité', required=True,
default='2019-01-01')
end = fields.Date('Fin de validité')
end_reason = fields.Selection(
[('juri', "Modification de la forme juridique"),
('form', "Changement de forme coopérative"),
('acti', "Changement d'activité (NAF)"),
('adr', "Changement d'adresse"),
('nom', "Changement de dénomination sociale"),
('autr', "Autres")],
string='Motif de fin de validité', default='autr')
comments = fields.Text('Commentaires')
name = fields.Char('Raison Sociale', required=True)
cooperative_form_id = fields.Many2one(
'res.partner.cooperative.form',
string="Cooperative form",
on_delete='restrict', required=True)
partner_company_type_id = fields.Many2one(
comodel_name='res.partner.company.type',
string='Legal Form',
track_visibility='onchange',
on_delete='restrict', required=True)
siret = fields.Char(string='SIRET', size=14, required=True)
street = fields.Char()
street2 = fields.Char()
street3 = fields.Char()
zip = fields.Char()
zip_id = fields.Many2one('res.city.zip', 'ZIP Location')
city = fields.Char()
city_id = fields.Many2one('res.city', string='City of Address')
state_id = fields.Many2one(
"res.country.state",
string='State',
ondelete='restrict',
domain="[('country_id', '=?', country_id)]")
country_id = fields.Many2one(
'res.country', string='Country', ondelete='restrict')
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.",
on_delete='restrict')
industry_id = fields.Many2one('res.partner.industry', 'Industry',
on_delete='restrict')
cae = fields.Boolean("CAE")
parent_group_name = fields.Char('Coopérative mère')
is_main_location = fields.Boolean("Est l'établissement principal")
......@@ -26,3 +26,5 @@ access_scop_membership_reason_end,access_scop_membership_reason_end,model_scop_m
access_scop_revision_format,access_scop_revision_format,model_scop_revision_format,base.group_user,1,1,1,1
access_scop_revision_staff,access_scop_revision_staff,model_scop_revision_staff,base.group_user,1,1,1,1
access_scop_staff_collection,access_scop_staff_collection,model_scop_staff_collection,base.group_user,1,1,1,1
access_res_partner_prescriber_canal,access_res_partner_prescriber_canal,model_res_partner_prescriber_canal,base.group_user,1,1,1,1
access_scop_period,access_scop_period,model_scop_period,base.group_user,1,1,1,1
......@@ -96,11 +96,10 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="base.view_res_partner_filter"/>
<field name="context">{'search_default_type_person': 1}</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'kanban', 'view_id': ref('base.res_partner_kanban_view')}),
(0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('base.view_partner_form')})]"/>
</record>
......@@ -111,11 +110,10 @@
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="base.view_res_partner_filter"/>
<field name="context">{'search_default_type_company': 1}</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'kanban', 'view_id': ref('base.res_partner_kanban_view')}),
(0, 0, {'view_mode': 'tree', 'view_id': ref('base.view_partner_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('base.view_partner_form')})]"/>
</record>
......
Ce diff est replié.
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter