diff --git a/__manifest__.py b/__manifest__.py index 1684a321e21c3d7a69f820872266c060533117d8..63556425d9fd32bcb47e7b13f5897760df140d2a 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -56,9 +56,9 @@ "views/res_users.xml", "views/res_partner.xml", "views/res_partner_cooperative.xml", + "views/scop_partner_staff.xml", "views/scop_config_views.xml", "views/scop_config_lists_views.xml", - "views/scop_partner_staff.xml", "views/scop_period_views.xml", "views/scop_federation_activity.xml", ], diff --git a/models/res_partner.py b/models/res_partner.py index a125d1a2211aa249d1e3bd87aae67bc943e1d5f3..b3b44161e53e9540ca96d5e69ab9a556029cc04e 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -1120,11 +1120,7 @@ class ScopPartner(models.Model): ) def _compute_last_effective(self): for partner in self: - lm = partner.staff_ids.search( - [["partner_id", "=", partner.id], ["staff_count", ">", 0]], - limit=1, - order="effective_date desc", - ) + lm = partner.staff_ids.sorted(key="effective_date", reverse=True) if lm: partner.staff_last = lm[0].staff_count partner.staff_shareholder_last = lm[0].staff_shareholder_count diff --git a/views/scop_config_views.xml b/views/scop_config_views.xml index 8dee85f06939b3d41c3c73e265f8c2e5081ede6e..d71c8b2f78dfb7ed858e604d001ce15df4ffb100 100644 --- a/views/scop_config_views.xml +++ b/views/scop_config_views.xml @@ -526,6 +526,13 @@ groups="base.group_no_one" /> + <menuitem + id="menu_res_partner_staff" + parent="contacts.res_partner_menu_config" + action="action_view_res_partner_staff" + sequence="10" + groups="group_cg_administrative" + /> <menuitem id="menu_res_partner_segment1" parent="contacts.res_partner_menu_config" diff --git a/views/scop_partner_staff.xml b/views/scop_partner_staff.xml index bbb39a9f1e34636724362bdf4f90d1bc18ec0a68..02cffd835de2447fdb51575cbb36bc87111e5d3c 100644 --- a/views/scop_partner_staff.xml +++ b/views/scop_partner_staff.xml @@ -3,7 +3,7 @@ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> <odoo> <data> - + <!-- Form view --> <record id="scop_partner_staff_form_view" model="ir.ui.view"> <field name="name">scop.partner.staff.form</field> <field name="model">scop.partner.staff</field> @@ -63,5 +63,62 @@ </field> </record> + <!-- Tree view --> + <record id="scop_partner_staff_tree_view" model="ir.ui.view"> + <field name="name">scop.partner.staff.tree</field> + <field name="model">scop.partner.staff</field> + <field name="arch" type="xml"> + <tree string="Effectifs"> + <field + name="partner_id" + options="{'no_create': True, 'no_open': True}" + readonly="1" + /> + <field name="partner_city" optional="show" /> + <field name="partner_siret" optional="show" /> + <field name="user_id" readonly="1" /> + <field name="type_entry" /> + <field + name="effective_date" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" + /> + <field name="cooperative_form_id" invisible="1" /> + <field name="is_partner_in_tracked_naf" invisible="1" /> + <field + name="staff_count" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" + /> + <field + name="staff_shareholder_count" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" + /> + <field + name="staff_shareholder_total" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))]}" + /> + <field + name="staff_average" + attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription', 'membership'))], 'required':[('is_partner_in_tracked_naf', '=', True)]}" + /> + + <field name="staff_men" optional="hide" /> + <field name="staff_women" optional="hide" /> + <field name="staff_shareholder_men" optional="hide" /> + <field name="staff_shareholder_women" optional="hide" /> + <field name="comment" optional="hide" /> + </tree> + </field> + </record> + + <record + id="action_view_res_partner_staff" + model="ir.actions.act_window" + > + <field name="name">Effectifs</field> + <field name="res_model">scop.partner.staff</field> + <field name="view_mode">tree,form</field> + <field name="help">Affiche et gère la liste des effectifs.</field> + </record> + </data> </odoo> diff --git a/wizard/scop_deces_wizard.py b/wizard/scop_deces_wizard.py index d047691b3ffad7a411c778265497b5738225d035..533c5ad2ea0c347b15b8bd879fa929b7b5e291a6 100644 --- a/wizard/scop_deces_wizard.py +++ b/wizard/scop_deces_wizard.py @@ -59,7 +59,7 @@ class ScopDecesWizard(models.TransientModel): else: raise ValidationError( _( - "La date de fin doit être postèrieure à la date de " + "La date de fin doit être postérieure à la date de " + "début de la dernière période: " ) + str(last_period.start) diff --git a/wizard/scop_deces_wizard.xml b/wizard/scop_deces_wizard.xml index 6dac189e5b9e240d9503eaa1fffc9b75534d2e71..7e78f3ee82f05765700e21d80444c4bc92ae7e57 100644 --- a/wizard/scop_deces_wizard.xml +++ b/wizard/scop_deces_wizard.xml @@ -6,6 +6,19 @@ <field name="model">scop.deces.wizard</field> <field name="arch" type="xml"> <form string="Décès"> + <div class="alert alert-warning" role="alert"> + <strong>Attention :</strong> la validation de cette action va déclencher les actions suivantes : + <ul> + <li>clôture de la dernière ligne de l'historique (décès)</li> + <li>modification du statut de la coopérative (coop décédée)</li> + <li>affectation d'une date de décès et d'un motif de décès</li> + <li>clôture de la dernière période d'adhésion (mort économique)</li> + <li>modification du statut d'adhésion (radié)</li> + <li>expiration des mandats bancaires</li> + <li>modification du mode de paiement des factures et cotisations en cours (virement)</li> + <li>modification du mode de paiement par défaut de la coopérative (virement)</li> + </ul> + </div> <group name="period" string="Décès / Mise en sommeil"> <field name="end" /> <field