diff --git a/__init__.py b/__init__.py index 6497eef9f14b72bf92c814ba922cac469006f983..ac7d06e9aba41d385c3db006d5491bbbc33a3d35 100644 --- a/__init__.py +++ b/__init__.py @@ -1,4 +1,4 @@ # © 2022 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from . import controllers, models, reports, wizard +from . import controllers, models, wizard diff --git a/__manifest__.py b/__manifest__.py index c093cdd889921a65a45a0783ed8a410d8b048ce9..2c628791ea0f2a73888b26b26362adc72246c5bf 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -30,7 +30,6 @@ # views "views/assets.xml", "views/scop_liste_ministere.xml", - "views/scop_liste_ministere_survey.xml", "views/scop_config_lists_views.xml", "views/scop_partner_staff.xml", "views/res_config_settings.xml", @@ -43,9 +42,6 @@ "templates/dossier_direccte_report_liasse.xml", "templates/dossier_direccte_report_questionnaire.xml", "templates/lm_header_template.xml", - "templates/lm_survey_header_template.xml", - # reports - "reports/scop_liste_ministere_dashboard.xml", ], "qweb": [], "external_dependencies": { diff --git a/datas/scop_liste_ministere_domaine_scic_data.xml b/datas/scop_liste_ministere_domaine_scic_data.xml deleted file mode 100644 index 547e0aa838babc212dfdce04c5b3f7252995695e..0000000000000000000000000000000000000000 --- a/datas/scop_liste_ministere_domaine_scic_data.xml +++ /dev/null @@ -1,103 +0,0 @@ -<?xml version="1.0" ?> -<odoo> - <data noupdate="1"> - <record - id="liste_ministere_domaine_scic_1" - model="scop.liste.ministere.domaine.scic" - > - <field - name="name" - >Action sociale et solidarité (spec : inclusion, petite enfance, grand âge, hébergement social, ...)</field> - </record> - - <record - id="liste_ministere_domaine_scic_2" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Agriculture - pêche - alimentation durable</field> - </record> - - <record - id="liste_ministere_domaine_scic_3" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Commerce - restauration - hébergement - tourisme</field> - </record> - - <record - id="liste_ministere_domaine_scic_4" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Communication - éducation - média - culture</field> - </record> - - <record - id="liste_ministere_domaine_scic_5" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Construction, immobilier et habitat durable</field> - </record> - - <record - id="liste_ministere_domaine_scic_6" - model="scop.liste.ministere.domaine.scic" - > - <field - name="name" - >Coopérations économiques territoriales (spec : dynamisation des centres-villes, GE, tiers lieux, pôles/clusters, groupement de métiers, …)</field> - </record> - - <record - id="liste_ministere_domaine_scic_7" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Formation - conseil - études - recherche</field> - </record> - - <record - id="liste_ministere_domaine_scic_8" - model="scop.liste.ministere.domaine.scic" - > - <field - name="name" - >Gestion des ressources naturelles et espaces de biodiversité (spec : énergie, eau, air, forêt, …)</field> - </record> - - <record - id="liste_ministere_domaine_scic_9" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Investissement - finance - foncière</field> - </record> - - <record - id="liste_ministere_domaine_scic_10" - model="scop.liste.ministere.domaine.scic" - > - <field - name="name" - >Logistique territoriale (spec : gestion des déchets, mobilité, …)</field> - </record> - - <record - id="liste_ministere_domaine_scic_11" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Santé, paramédical</field> - </record> - - <record - id="liste_ministere_domaine_scic_12" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Sport - bien-être - loisirs</field> - </record> - - <record - id="liste_ministere_domaine_scic_13" - model="scop.liste.ministere.domaine.scic" - > - <field name="name">Autre</field> - </record> - </data> -</odoo> diff --git a/models/scop_liste_ministere.py b/models/scop_liste_ministere.py index c40a17a7bc69ce6409b37eb73e52b489c145800b..fc0f80eadb2529b534a823a95eb6f63c5acadeaf 100644 --- a/models/scop_liste_ministere.py +++ b/models/scop_liste_ministere.py @@ -73,9 +73,6 @@ class ScopListeMinistere(models.Model): readonly=False, group_operator="", ) - # year_jo = fields.Integer( - # "Année de parution au journal officiel", compute="_compute_year_jo" - # ) status_liasse_fiscale = fields.Selection( [ @@ -102,26 +99,7 @@ class ScopListeMinistere(models.Model): string="Etat LM", default="1_ouvert", ) - # status_quest = fields.Selection( - # [ - # ("1_ouvert", "Ouvert"), - # ("2_publie", "Publié extranet"), - # ("3_complet", "Validé coopérateur"), - # ("7_cloture", "Clôturé"), - # ], - # tracking=True, - # string="Etat questionnaire annuel", - # default="1_ouvert", - # compute="_compute_status_quest", - # ) - main_type = fields.Selection( - string="Catégorie de dossier", - selection=[ - ("lm", "Liste Ministère"), - ("quest", "Questionnaire annuel"), - ], - tracking=True, - ) + type_lm = fields.Selection( string="Type de dossier (select)", selection=[ @@ -132,18 +110,9 @@ class ScopListeMinistere(models.Model): tracking=True, ) # effective_date = fields.Date("Date d'effet") - # date_fin = fields.Date("Fin") date_reception = fields.Datetime( string="Reçu le", compute="_compute_date_reception", store=True ) - # type_dossier = fields.Selection( - # [ - # ("transition", "Année de transition"), - # ("commisaire", "Commissaire aux comptes"), - # ("prorogation", "Prorogation de l'exercice"), - # ("revision", "Révision"), - # ] - # ) administrateur_dossier = fields.Many2one( comodel_name="res.users", string="Dossier suivi par", @@ -253,17 +222,6 @@ class ScopListeMinistere(models.Model): code_naf = fields.Char( "Code NAF (APE)", related="partner_id.naf_id.name" ) # = Code APE - # creation_origin_id = fields.Char( - # "Origine de création en coop", - # related="partner_id.creation_origin_id.name", - # ) - # creation_suborigin_id = fields.Char( - # "Sous-origine de création en coop", - # related="partner_id.creation_suborigin_id.name", - # ) - # domaine_scic_ids = fields.Many2many( - # "scop.liste.ministere.domaine.scic", string="Domaines d'activités SCIC" - # ) # Directeurs / Etablissements secondaires / Relations director_ids = fields.One2many( @@ -272,18 +230,6 @@ class ScopListeMinistere(models.Model): string="Dirigeants", ) - # effectifs_secondaires_ids = fields.One2many( - # comodel_name="scop.partner.staff", - # inverse_name="liste_ministere_id", - # string="Effectifs", - # ) - # secondary_staff_ids = fields.One2many( - # comodel_name="scop.partner.staff", - # compute="_compute_secondary_staff_ids", - # string="Effectifs des établissements secondaires", - # readonly=False, - # ) - prestataire_ids = fields.One2many( comodel_name="scop.liste.ministere.prestataires", inverse_name="liste_ministere_id", @@ -299,18 +245,7 @@ class ScopListeMinistere(models.Model): eff_tt = fields.Integer("Effectif total", compute="_compute_eff_tt", store=True) eff_sal_f = fields.Integer("Nombre de femmes salariés") eff_sal_h = fields.Integer("Nombre d'hommes salariés") - # eff_tot_siege = fields.Integer( - # "Effectifs total au siège (établissement principal uniquement)", - # compute="_compute_eff_tot_siege", - # store=True, - # ) - # eff_sal_assoc_siege = fields.Integer( - # "Nombre de salariés associés au siège (établissement principal " "uniquement)", - # compute="_compute_eff_sal_assoc_siege", - # store=True, - # ) - - # eff_interim = fields.Integer("Nombre d'intérimaires") + eff_apprenti = fields.Integer("Nombre de contrats d’apprentissage en cours") eff_etp = fields.Float( "Nombre de salariés en équivalent temps plein (ETP)", @@ -319,8 +254,6 @@ class ScopListeMinistere(models.Model): "effectifs à la fin de chaque mois de " "l'exercice divisée par le nombre de ces mois", ) - # eff_etp_f = fields.Float("Nombre de femmes en ETP") - # eff_etp_h = fields.Float("Nombre d'hommes en ETP") eff_sal_assoc = fields.Integer( "Nombre total de salariés associés", @@ -330,100 +263,6 @@ class ScopListeMinistere(models.Model): eff_sal_assoc_f = fields.Integer("Nombre de femmes salariées associées") eff_sal_assoc_h = fields.Integer("Nombre d'hommes salariés associés") - # eff_25moins = fields.Integer("Effectif total de moins de 25 ans") - # eff_sal_assoc_25moins = fields.Integer( - # "Nombre de salariés associés de moins de 25 ans" - # ) - # cap_25moins = fields.Float("Capital détenu par des salariés de moins de 25 ans") - # - # eff_26_40 = fields.Integer("Effectif total entre 26 et 40 ans") - # eff_sal_assoc_26_40 = fields.Integer( - # "Nombre de salariés associés entre 26 et 40 ans" - # ) - # cap_26_40 = fields.Float("Capital détenu par des salariés entre 26 et 40 ans") - # - # eff_41_55 = fields.Integer("Effectif total entre 41 et 55 ans") - # eff_sal_assoc_41_55 = fields.Integer( - # "Nombre de salariés associés entre 41 et 55 ans" - # ) - # cap_41_55 = fields.Float("Capital détenu par des salariés entre 41 et 55 ans") - # - # eff_55plus = fields.Integer("Effectif total de plus de 55 ans") - # eff_sal_assoc_55plus = fields.Integer( - # "Nombre de salariés associés de plus de 55 ans" - # ) - # cap_55plus = fields.Float("Capital détenu par des salariés de plus de 55 ans") - - # Spécifique CAE - # eff_sal_sup_f = fields.Integer("Nombre de femmes salariées de l'équipe support") - # eff_sal_sup_h = fields.Integer("Nombre d'hommes salariés de l'équipe support") - # eff_cesa_f = fields.Integer("Nombre de femmes en CESA") - # eff_cesa_h = fields.Integer("Nombre d'hommes en CESA") - # eff_cape_f = fields.Integer("Nombre de femmes en CAPE") - # eff_cape_h = fields.Integer("Nombre d'hommes en CAPE") - # eff_sal_sup_assoc_f = fields.Integer( - # "Nombre de femmes salariées de l'équipe support associées de la CAE" - # ) - # eff_sal_sup_assoc_h = fields.Integer( - # "Nombre d'hommes salariés de l'équipe support associés de la CAE" - # ) - # eff_cesa_assoc_f = fields.Integer("Nombre de femmes en CESA associées de la CAE") - # eff_cesa_assoc_h = fields.Integer("Nombre d'hommes en CESA associés de la CAE") - # eff_cape_assoc_f = fields.Integer("Nombre de femmes en CAPE associées de la CAE") - # eff_cape_assoc_h = fields.Integer("Nombre d'hommes en CAPE associés de la CAE") - # eff_assoc_autre_mor = fields.Integer( - # "Nombre d'autres associé.es - personnes morales" - # ) - # eff_assoc_autre_phys = fields.Integer( - # "Nombre d'autres associé.es - personnes physiques" - # ) - # ca_tt_hors_sub = fields.Float("Chiffre d'affaires cumulé (hors subventions)") - # ca_struct = fields.Float( - # "CA structure (hors subventions et hors contribution coopérative)" - # ) - # ca_act_entr = fields.Float( - # "CA activités entrepreneuriales (hors subventions et hors échanges " "internes)" - # ) - # contrib_coops_tt = fields.Float("Montant contribution coopérative cumulée") - # sub_tt = fields.Float("Montant des subventions cumulées") - # echanges_internes_tt = fields.Float("Montant des échanges internes") - # ca_esa_f = fields.Float("Total chiffre d’affaires ESA Femmes") - # ca_esa_h = fields.Float("Total chiffre d’affaires ESA Hommes") - # ca_cape_f = fields.Float("Total chiffre d’affaires CAPE Femmes") - # ca_cape_h = fields.Float("Total chiffre d’affaires CAPE Hommes") - - # Spécifique SCIC - # nb_assoc_ext_phys_non_remnun = fields.Integer( - # "Nombre d'associés extérieurs personnes physiques (autres que ex " - # "salariés) jamais rémunérées par la coop" - # ) - # cap_assoc_ext_phys_non_remnun = fields.Float( - # "Capital associés extérieurs personnes physiques (autres que ex " - # "salariés) jamais rémunérées par la coop" - # ) - # nb_benevoles_assoc_non_remun = fields.Integer( - # "Nombre de bénévoles associés (autres que ex salariés) jamais " - # "rémunérés par la coop" - # ) - # cap_benevoles_assoc_non_remun = fields.Integer( - # "Capital bénévoles associés (autres que ex salariés) jamais " - # "rémunérés par la coop" - # ) - # nb_assoc_ext_phys_avec_remnun = fields.Integer( - # "Nombre d'associés extérieurs personnes physiques (autres que ex " - # "salariés) rémunérées par la coop" - # ) - # cap_assoc_ext_phys_avec_remnun = fields.Float( - # "Capital associés extérieurs personnes physiques (autres que ex " - # "salariés) rémunérées par la coop" - # ) - # nb_assoc_collec_terr = fields.Integer( - # "Nombre de collectivités territoriales associées" - # ) - # cap_assoc_collec_terr = fields.Float( - # "Capital des collectivités territoriales associées" - # ) - # Total des associés eff_shareholder_tt = fields.Integer( "Nombre total d'associés", @@ -630,18 +469,6 @@ class ScopListeMinistere(models.Model): ) email_count = fields.Integer(string="Nombre de mails", compute="_compute_emails") - # CHAMPS AJUSTEMENT ETUDES - # ----- - # is_assoc_collec_terr = fields.Boolean("Collectivité(s) territoriale(s) associées ?") - # nb_assoc_collec_terr_scic = fields.Integer( - # "Nombre de collectivités territoriales (SCIC)" - # ) - # is_assoc_communes = fields.Boolean("Commune(s) associée(s) ?") - # is_assoc_intercommu = fields.Boolean("Intercommunalité(s) associée(s) ?") - # is_assoc_departements = fields.Boolean("Département(s) associé(s) ?") - # is_assoc_regions = fields.Boolean("Région(s) associée(s) ?") - # is_assoc_autres = fields.Boolean("Autres associé(s) ?") - # ------------------------------------------------------ # Contraintes de modèle # ------------------------------------------------------ @@ -649,20 +476,11 @@ class ScopListeMinistere(models.Model): @api.constrains("partner_id", "year", "type_lm") def _check_unicity_lm(self): for lm in self: - if lm.type_lm in ("subscribe", "renew"): - domain_type = ["subscribe", "renew"] - else: # lm.type_lm == 'survey_adjust' - domain_type = ["survey_adjust"] - if ( - self.search_count( - [ - ("partner_id", "=", lm.partner_id.id), - ("year", "=", lm.year), - ("type_lm", "in", domain_type), - ] - ) - > 1 - ): + lm_count = self.search_count([ + ("partner_id", "=", lm.partner_id.id), + ("year", "=", lm.year), + ]) + if lm_count > 1: raise ValidationError( _( "Cette campagne liste ministère existe déjà pour la coopérative et " @@ -729,7 +547,6 @@ class ScopListeMinistere(models.Model): "nb_assoc_ext_phys_non_remnun", "nb_assoc_ext_phys_avec_remnun", "nb_assoc_collec_terr", - "main_type", ) def _compute_eff_shareholder_tt(self): for lm in self: @@ -761,17 +578,6 @@ class ScopListeMinistere(models.Model): ) ) - # def _compute_status_quest(self): - # for lm in self: - # if lm.status not in ( - # "4_attente_cg", - # "5_a_transmettre", - # "6_transmis", - # ): - # lm.status_quest = lm.status - # else: - # lm.status_quest = "7_cloture" - # TODO: revoir en fonction de la modification de l'année def _compute_name(self): for r in self: @@ -782,22 +588,13 @@ class ScopListeMinistere(models.Model): for r in self: r.year_cloture = r.year - 1 - # def _compute_year_jo(self): - # for r in self: - # r.year_jo = r.year + 1 - - # def _compute_secondary_staff_ids(self): - # for lm in self: - # lm.secondary_staff_ids = lm.effectifs_secondaires_ids.filtered_domain( - # [("is_cooperative", "!=", True)] - # ) - @api.depends("status") def _compute_date_reception(self): for lm in self: if lm.status == "3_complet": lm.date_reception = fields.Datetime.now() + # TODO: à remplacer par un related ? @api.depends("dissolution_date") def _compute_is_dead(self): for r in self: @@ -805,19 +602,10 @@ class ScopListeMinistere(models.Model): @api.depends("nb_parts_cap", "valeur_nominale_part") def _compute_cap_tt(self): - for r in self: - # Pour les questionnaires, l'extranet peut ne renvoyer que la valeur totale - # du capital - if ( - r.nb_parts_cap == 0 - and r.valeur_nominale_part == 0 - and r.cap_tt != 0 - and r.main_type == "quest" - ): - r.cap_tt = r.cap_tt - else: - r.cap_tt = r.nb_parts_cap * r.valeur_nominale_part + for lm in self: + lm.cap_tt = lm.nb_parts_cap * lm.valeur_nominale_part + # TODO: revoir @api.depends("cap_25moins", "cap_26_40", "cap_41_55", "cap_55plus") def _compute_cap_sal_assoc(self): for r in self: @@ -825,11 +613,6 @@ class ScopListeMinistere(models.Model): r.cap_25moins + r.cap_26_40 + r.cap_41_55 + r.cap_55plus ) - # @api.depends("eff_etp_f", "eff_etp_h") - # def _compute_eff_etp(self): - # for r in self: - # r.eff_etp = r.eff_etp_f + r.eff_etp_h - @api.depends("eff_sal_f", "eff_sal_h") def _compute_eff_tt(self): """ @@ -855,43 +638,6 @@ class ScopListeMinistere(models.Model): + r.eff_sal_assoc_55plus ) - # Calcul effectifs totaux au siège - # @api.depends( - # "eff_tt", - # "effectifs_secondaires_ids", - # "effectifs_secondaires_ids.staff_count", - # ) - # def _compute_eff_tot_siege(self): - # for r in self: - # if r.effectifs_secondaires_ids: - # eff_sec = sum( - # r.effectifs_secondaires_ids.filtered( - # lambda f: f.partner_id.type == "facility" - # ).mapped("staff_count") - # ) - # r.eff_tot_siege = r.eff_tt - eff_sec - # else: - # r.eff_tot_siege = r.eff_tt - - # Calcul effectifs totaux au siège salariés/associés - # @api.depends( - # "eff_tt", - # "eff_sal_assoc_siege", - # "effectifs_secondaires_ids", - # "effectifs_secondaires_ids.staff_shareholder_count", - # ) - # def _compute_eff_sal_assoc_siege(self): - # for r in self: - # if r.effectifs_secondaires_ids: - # eff_sec = sum( - # r.effectifs_secondaires_ids.filtered( - # lambda f: f.partner_id.type == "facility" - # ).mapped("staff_shareholder_count") - # ) - # r.eff_sal_assoc_siege = r.eff_sal_assoc - eff_sec - # else: - # r.eff_sal_assoc_siege = r.eff_sal_assoc - # Emails def _compute_emails(self): for lm in self: @@ -1695,42 +1441,6 @@ class ScopListeMinistere(models.Model): prestataire_values ) - def lm_maj_effectifs_secondaires(self): - """ - Create scop.partner.staff lines linked to specific LM if needed - Remove line if facility_id is not active anymore - :return: True to make function callable with XMLRPC - """ - if self.type_lm == "renew": - type_entry = "questionnaire" - elif self.type_lm == "subscribe": - type_entry = "questionnaire_inscription" - else: - type_entry = "regul_cg" - - self.maj_effectif_coop() - - for facility_id in self.facility_ids: - if facility_id not in self.effectifs_secondaires_ids.mapped("partner_id"): - partner_staff_values = { - "partner_id": facility_id.id, - "user_id": self.env.user.id, - "type_entry": type_entry, - "effective_date": self.effective_date, - "staff_count": 1, - "staff_shareholder_count": 1, - "staff_shareholder_total": 0, - "staff_average": 1, - "liste_ministere_id": self.id, - } - self.env["scop.partner.staff"].create(partner_staff_values) - - for lm_staff_line in self.effectifs_secondaires_ids: - if lm_staff_line.partner_id not in (self.facility_ids + self.partner_id): - lm_staff_line.unlink() - - return True - # Email def get_recipients(self): return ",".join(map(lambda x: str(x), self.recipient_ids.ids)) diff --git a/models/scop_models_lm.py b/models/scop_models_lm.py index 3924ccda7d39628086e8af9ffb3abc91bf733fb7..e12f599276cb953abf778321e379cf662fec3f7e 100644 --- a/models/scop_models_lm.py +++ b/models/scop_models_lm.py @@ -217,13 +217,6 @@ class Prestataires(models.Model): ) -class DomainesActivitesSCIC(models.Model): - _name = "scop.liste.ministere.domaine.scic" - _description = "Liste des domaines d'activités SCIC" - - name = fields.Char("Nom", required=True) - - class PolitiqueAction(models.Model): _name = "scop.liste.ministere.politique.action" _description = "Actions politiques" diff --git a/models/scop_partner_staff.py b/models/scop_partner_staff.py index 393d7b5bd423cc9391d21d7222f1e6c865adeefb..4b0db7243b22c8e89742e2f16db6f1eff1c86575 100644 --- a/models/scop_partner_staff.py +++ b/models/scop_partner_staff.py @@ -1,28 +1,16 @@ # © 2020 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import api, fields, models +from odoo import fields, models class ScopPartnerStaff(models.Model): _inherit = "scop.partner.staff" + # TODO: vois si on conserve pour historique liste_ministere_id = fields.Many2one( comodel_name="scop.liste.ministere", string="Liste ministère", ondelete="cascade", ) - is_cooperative = fields.Boolean( - string="Est une coopérative", related="partner_id.is_cooperative", store=True - ) - - # ------------------------------------------------------ - # Actions - # ------------------------------------------------------ - def archive_facility(self): - self.partner_id.active = False - self.liste_ministere_id.lm_maj_effectifs_secondaires() - # ------------------------------------------------------ - # Inherit parent - # ------------------------------------------------------ diff --git a/reports/__init__.py b/reports/__init__.py deleted file mode 100644 index 9d814b54ef36328c2949ec730f2a103a5a8ba06e..0000000000000000000000000000000000000000 --- a/reports/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# © 2022 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -from . import scop_liste_ministere_dashboard diff --git a/reports/scop_liste_ministere_dashboard.py b/reports/scop_liste_ministere_dashboard.py deleted file mode 100644 index 7e381c1b877d5af5e1f1bd36745b9aed79b07fb5..0000000000000000000000000000000000000000 --- a/reports/scop_liste_ministere_dashboard.py +++ /dev/null @@ -1,273 +0,0 @@ -# © 2022 Le Filament (<http://www.le-filament.com>) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -import json - -from psycopg2.extensions import AsIs - -from odoo import _, api, fields, models, tools - - -class ScopListeMinistereDashbooard(models.Model): - _name = "scop.liste.ministere.dashboard" - _description = "Dashboard Liste Ministere" - _order = "year desc" - _auto = False - - # Vue - name = fields.Char() - year = fields.Integer("Année") - dossier_inscription = fields.Integer("Inscription") - dossier_renouvellement = fields.Integer("Renouvellement") - dossier_total = fields.Integer("Total dossiers") - dossier_ouvert = fields.Integer("Ouverts") - dossier_publie = fields.Integer("Publiés") - dossier_complet = fields.Integer("Complets") - dossier_attente = fields.Integer("Attente CG") - dossier_a_transmettre = fields.Integer("A transmettre DDETS") - dossier_transmis = fields.Integer("Transmis") - dossier_cloture = fields.Integer("Dossier Cloturés") - percent_cloture = fields.Float("Cloturés", compute="_compute_percent_cloture") - graph_values = fields.Text(compute="_compute_graph_values") - - email_red = fields.Integer("Emails ouverts", compute="_compute_email") - email_unread = fields.Integer("Emails non lus", compute="_compute_email") - email_failed = fields.Integer("Emails en échec", compute="_compute_email") - # Questionaire annuels - quest_annuels_count = fields.Integer( - "Questionnaires annuels", compute="_compute_quest_annuels" - ) - quest_annuels_not_end = fields.Integer( - "Questionnaires annuels non clôturés", compute="_compute_quest_annuels" - ) - quest_annuels_ratio = fields.Float( - "Pourcentage de questionnaires annuels clôturés", - compute="_compute_quest_annuels", - ) - - # ------------------------------------------------------ - # Model definition - # ------------------------------------------------------ - @api.model - def _select(self): - query = """ - SELECT * - FROM - (SELECT - year AS id, - CONCAT('Campagne ', year) AS name, - year, - COUNT(year) AS dossier_total, - SUM(case when type_lm = 'subscribe' then 1 else 0 end) - AS dossier_inscription, - SUM(case when type_lm = 'renew' then 1 else 0 end) - AS dossier_renouvellement, - SUM(case when status = '1_ouvert' then 1 else 0 end) - AS dossier_ouvert, - SUM(case when status = '2_publie' then 1 else 0 end) - AS dossier_publie, - SUM(case when status = '3_complet' then 1 else 0 end) - AS dossier_complet, - SUM(case when status = '4_attente_cg' then 1 else 0 end) - AS dossier_attente, - SUM(case when status = '5_a_transmettre' then 1 else 0 end) - AS dossier_a_transmettre, - SUM(case when status = '6_transmis' then 1 else 0 end) - AS dossier_transmis, - SUM(case when status = '7_cloture' then 1 else 0 end) - AS dossier_cloture - FROM scop_liste_ministere - WHERE active is TRUE - AND main_type = 'lm' - GROUP BY year - ORDER BY year DESC - LIMIT 6) lm - """ - return query - - def init(self): - tools.drop_view_if_exists(self.env.cr, self._table) - self.env.cr.execute( - """CREATE or REPLACE VIEW %s as ( - %s - )""", - (AsIs(self._table), AsIs(self._select())), - ) - - # ------------------------------------------------------ - # Computed fields - # ------------------------------------------------------ - def _compute_percent_cloture(self): - for campagne in self: - campagne.percent_cloture = ( - campagne.dossier_cloture / campagne.dossier_total * 100 - ) - - def _compute_graph_values(self): - for campagne in self: - campagne.graph_values = json.dumps( - [ - { - "values": [ - { - "label": "Ouvert", - "value": campagne.dossier_ouvert, - }, - { - "label": "Publié", - "value": campagne.dossier_publie, - }, - { - "label": "Complet", - "value": campagne.dossier_complet, - }, - { - "label": "Attente CG", - "value": campagne.dossier_attente, - }, - { - "label": "A transmettre", - "value": campagne.dossier_a_transmettre, - }, - { - "label": "Transmis", - "value": campagne.dossier_transmis, - }, - { - "label": "Cloturé", - "value": campagne.dossier_cloture, - }, - ], - "area": True, - "title": "", - "key": "Nombre dossiers", - } - ] - ) - - def _compute_email(self): - for campagne in self: - lm_message_ids = ( - self.env["scop.liste.ministere"] - .search([("year", "=", campagne.year), ("main_type", "=", "lm")]) - .mapped("message_ids") - ) - email_ids = self.env["mail.tracking.email"].search( - [("mail_message_id", "in", lm_message_ids.ids)] - ) - campagne.email_failed = len( - email_ids.filtered( - lambda m: m.state - in ["error", "rejected", "spam", "bounced", "soft-bounced"] - ) - ) - campagne.email_unread = len( - email_ids.filtered(lambda m: m.state in ["sent", "delivered"]) - ) - campagne.email_red = len( - email_ids.filtered(lambda m: m.state in ["opened"]) - ) - - def _compute_quest_annuels(self): - for campagne in self: - quest_annuels = self.env["scop.liste.ministere"].search( - [("year", "=", campagne.year), ("main_type", "=", "quest")] - ) - campagne.quest_annuels_count = len(quest_annuels) - campagne.quest_annuels_not_end = len( - quest_annuels.filtered(lambda lm: lm.status != "7_cloture") - ) - if campagne.quest_annuels_count > 0: - campagne.quest_annuels_ratio = round( - ( - 1 - - ( - campagne.quest_annuels_not_end - / campagne.quest_annuels_count - ) - ) - * 100, - 1, - ) - else: - campagne.quest_annuels_ratio = 0 - - # ------------------------------------------------------ - # Buttons - # ------------------------------------------------------ - def show_campagne(self): - return { - "name": "Campagne " + str(self.year), - "type": "ir.actions.act_window", - "res_model": "scop.liste.ministere", - "view_mode": "tree,form,graph,pivot", - "views": [ - [ - self.env.ref("cgscop_liste_ministere.view_liste_ministere_tree").id, - "tree", - ], - [ - self.env.ref("cgscop_liste_ministere.view_liste_ministere_form").id, - "form", - ], - [False, "pivot"], - [False, "graph"], - ], - "domain": [("year", "=", self.year), ("main_type", "=", "lm")], - "target": "current", - } - - def show_campagne_quest(self): - return { - "name": "Campagne " + str(self.year), - "type": "ir.actions.act_window", - "res_model": "scop.liste.ministere", - "view_mode": "tree,form,graph,pivot", - "views": [ - [ - self.env.ref("cgscop_liste_ministere.view_liste_ministere_tree").id, - "tree", - ], - [ - self.env.ref("cgscop_liste_ministere.view_liste_ministere_form").id, - "form", - ], - [False, "pivot"], - [False, "graph"], - ], - "domain": [("year", "=", self.year), ("main_type", "=", "quest")], - "target": "current", - } - - def close_campagne_quest(self): - quest_to_close_ids = self.env["scop.liste.ministere"].search( - [ - ("year", "=", self.year), - ("main_type", "=", "quest"), - ("status", "=", "3_complet"), - ] - ) - quest_error_ids = quest_to_close_ids.filtered( - lambda q: q.effective_date is False - ) - for quest in quest_to_close_ids - quest_error_ids: - quest.action_close() - if len(quest_to_close_ids) > 0: - message = "%s questionnaire(s) annuel(s) clôturé(s) !" % ( - len(quest_to_close_ids) - len(quest_error_ids) - ) - if len(quest_error_ids) > 0: - message += ( - "\n\n" - "Date d'effet non connue, impossible de " - "clôturer le(s) dossier(s) : " - ) - for quest in quest_error_ids: - message += "\n - %s" % quest.partner_id.name - else: - message = "Aucun dossier à clôturer" - return { - "type": "ir.actions.act_window.message", - "title": _("Clôture des dossiers"), - "message": _(message), - } diff --git a/reports/scop_liste_ministere_dashboard.xml b/reports/scop_liste_ministere_dashboard.xml deleted file mode 100644 index 31ab1ae93dac3b7af8984d350446ba9056c4c201..0000000000000000000000000000000000000000 --- a/reports/scop_liste_ministere_dashboard.xml +++ /dev/null @@ -1,193 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<odoo> - <data> - - <record id="liste_ministere_dashboard_search_view" model="ir.ui.view"> - <field name="name">scop.liste.ministere.dashboard.search</field> - <field name="model">scop.liste.ministere.dashboard</field> - <field name="arch" type="xml"> - <search string="Dashboard Liste Ministère"> - <field name="year" /> - </search> - </field> - </record> - - <record id="liste_ministere_dashboard_kanban_view" model="ir.ui.view"> - <field name="name">scop.liste.ministere.dashboard.kanban</field> - <field name="model">scop.liste.ministere.dashboard</field> - <field name="arch" type="xml"> - <kanban - create="false" - class="oe_background_grey o_kanban_dashboard o_account_kanban" - banner_route="/cgscop_liste_ministere/header" - > - <field name="name" /> - <field name="year" /> - <field name="dossier_total" /> - <field name="dossier_ouvert" /> - <field name="dossier_publie" /> - <field name="quest_annuels_count" /> - <field name="quest_annuels_not_end" /> - <templates> - <t t-name="kanban-box"> - <div class="container o_kanban_card_content"> - <div class="row"> - <div class="col"> - <h2 class="mt16"><field name="name" /></h2> - <hr /> - </div> - </div> - <div class="row"> - <div class="col-12"> - <h3>Statistiques Liste Ministère</h3> - <hr /> - </div> - <div class="col-6"> - <div class="text-center mb32"> - <button - type="object" - name="show_campagne" - class="btn btn-info" - >Voir les dossiers<br - /> de cette campagne</button> - </div> - </div> - <div class="col-6"> - <table class="table table-bordered"> - <tbody> - <tr> - <td>Inscriptions</td> - <td><field - name="dossier_inscription" - /></td> - </tr> - <tr> - <td>Renouvellements</td> - <td><field - name="dossier_renouvellement" - /></td> - </tr><tr> - <td><strong>Total</strong></td> - <td><strong><field - name="dossier_total" - /></strong></td> - </tr> - </tbody> - </table> - </div> - </div> - <div class="row"> - <div class="col"> - <field - name="graph_values" - widget="dashboard_graph" - graph_type="bar" - /> - </div> - </div> - <div class="mt-5 row alert alert-warning" role="alert"> - <div class="col-12"> - <h3>Statistiques Questionnaire</h3> - <hr /> - </div> - <div class="col-6 text-center"> - <button - name="show_campagne_quest" - type="object" - t-att-class="'btn btn-outline-info' + (record.quest_annuels_count.raw_value == 0 ? ' disabled' : '')" - t-att-style="record.quest_annuels_count.raw_value == 0 ? 'pointer-events: none;' : ''" - >Voir les questionnaires</button> - </div> - <div class="col-6 text-center"> - <button - name="close_campagne_quest" - type="object" - t-att-class="'btn btn-outline-info' + (record.quest_annuels_not_end.raw_value == 0 ? ' disabled' : '')" - t-att-style="record.quest_annuels_not_end.raw_value == 0 ? 'pointer-events: none;' : ''" - >Clôturer les dossiers complets</button> - </div> - <div class="col-12 text-center"> - <t - t-if="record.quest_annuels_count.raw_value == 0" - > - <div - style="height: 20px; margin-top: 10px;" - > - Aucun questionnaire annuel généré - </div> - <br /> - Rien à traiter - </t> - <t - t-elif="record.quest_annuels_not_end.raw_value == 0" - > - <div - style="height: 20px; margin-top: 10px;" - > - <span - class="fa fa-thumbs-o-up" - /> Félicitations ! - </div> - <br /> - Tous les dossiers ont été traités (<field - name="quest_annuels_count" - /> dossiers générés) - </t> - <t t-else=""> - <field - name="quest_annuels_ratio" - invisible="1" - /> - <t - t-set="percent" - t-value="record.quest_annuels_ratio.raw_value" - /> - <div - class="progress" - style="height: 20px; margin-top: 10px;" - > - <div - class="progress-bar progress-bar-striped bg-info" - role="progressbar" - t-att-style="'width: ' + percent + '%;'" - t-att-aria-valuenow="percent" - aria-valuemin="0" - aria-valuemax="100" - > - <t t-esc="percent" />% - </div> - </div> - <br /> - <strong><t - t-esc="record.quest_annuels_count.raw_value - record.quest_annuels_not_end.raw_value" - /></strong> clôturés sur <strong><field - name="quest_annuels_count" - /></strong> au total - </t> - </div> - </div> - </div> - </t> - </templates> - </kanban> - </field> - </record> - - <record id="liste_ministere_dashboard_act_window" model="ir.actions.act_window"> - <field name="name">Dashboard Liste Ministère</field> - <field name="type">ir.actions.act_window</field> - <field name="res_model">scop.liste.ministere.dashboard</field> - <field name="view_mode">kanban</field> - <field name="context" /> - </record> - - <menuitem - name="Dashboard" - id="liste_ministere_dashboard_menu" - parent="menu_liste_ministere" - sequence="10" - action="liste_ministere_dashboard_act_window" - /> - - </data> -</odoo> diff --git a/templates/dossier_direccte_report_fiche_signaletique.xml b/templates/dossier_direccte_report_fiche_signaletique.xml index 07c73e93b9895be11d6a52b59a1de851d0108682..89e703e55c1483540fb4544686e52cac6270b017 100644 --- a/templates/dossier_direccte_report_fiche_signaletique.xml +++ b/templates/dossier_direccte_report_fiche_signaletique.xml @@ -324,6 +324,7 @@ <div class="col-2 bdl"><span t-field="o.eff_sal_assoc" /></div> </div> </div> + <!-- TODO: revoir avec le nouveau process --> <t t-set="etabs" t-value="o.effectifs_secondaires_ids.filtered(lambda e: e.partner_id != o.partner_id)" diff --git a/templates/dossier_direccte_report_questionnaire.xml b/templates/dossier_direccte_report_questionnaire.xml index 5b513021b5e30e4dfd70861678ff333f729aaea9..e07da2c0766d7775abe366de9b0ce568a6538303 100644 --- a/templates/dossier_direccte_report_questionnaire.xml +++ b/templates/dossier_direccte_report_questionnaire.xml @@ -6,84 +6,7 @@ <!-- FEUILLE PRESENTATION --> <h2 class="oe_mb32">Questionnaire</h2> <h3>Démographie et sociétariat</h3> - <table class="table table-bordered table-sm thead-dark oe_mt32"> - <thead> - <tr> - <th>Démographie</th> - <th colspan="2">Total personnel</th> - <th colspan="2">Dont sociétaires-salariés</th> - <th>Capital (en €)</th> - </tr> - </thead> - <tbody> - <tr> - <th>25 ans et moins</th> - <td class="text-right" colspan="2"><span - t-field='o.eff_25moins' - /></td> - <td class="text-right" colspan="2"><span - t-field='o.eff_sal_assoc_25moins' - /></td> - <td class="text-right"><span t-field='o.cap_25moins' /></td> - </tr> - <tr> - <th>26-40 ans</th> - <td class="text-right" colspan="2"><span - t-field='o.eff_26_40' - /></td> - <td class="text-right" colspan="2"><span - t-field='o.eff_sal_assoc_26_40' - /></td> - <td class="text-right"><span t-field='o.cap_26_40' /></td> - </tr> - <tr> - <th>41-55 ans</th> - <td class="text-right" colspan="2"><span - t-field='o.eff_41_55' - /></td> - <td class="text-right" colspan="2"><span - t-field='o.eff_sal_assoc_41_55' - /></td> - <td class="text-right"><span t-field='o.cap_41_55' /></td> - </tr> - <tr> - <th>Plus de 55 ans</th> - <td class="text-right" colspan="2"><span - t-field='o.eff_55plus' - /></td> - <td class="text-right" colspan="2"><span - t-field='o.eff_sal_assoc_55plus' - /></td> - <td class="text-right"><span t-field='o.cap_55plus' /></td> - </tr> - <tr> - <td /> - <td>Dont femmes</td> - <td>Dont hommes</td> - <td>Dont femmes</td> - <td>Dont hommes</td> - <td /> - </tr> - <tr> - <td /> - <td class="text-right"><span t-field='o.eff_sal_f' /></td> - <td class="text-right"><span t-field='o.eff_sal_h' /></td> - <td class="text-right"><span t-field='o.eff_sal_assoc_f' /></td> - <td class="text-right"><span t-field='o.eff_sal_assoc_h' /></td> - <td /> - </tr> - <tr class="bgg"> - <th>TOTAL</th> - <td class="text-right" colspan="2"><span - t-field="o.eff_tt" - /></td> - <td class="text-right" colspan="2"><span - t-field='o.eff_sal_assoc' - /></td> - <td class="text-right"><span t-field='o.cap_sal_assoc' /></td> - </tr> - </tbody> - </table> + <!-- TODO: revoir table démographie --> <div class="row oe_mt32"> <!-- ETP --> <div class="col-6"> @@ -93,19 +16,6 @@ <th rowspan="3" >Nombre de salariés en équivalent temps plein (ETP)</th> - <th>Femmes</th> - <td class="text-right"><span - t-field="o.eff_etp_f" - /></td> - </tr> - <tr> - <th>Hommes</th> - <td class="text-right"><span - t-field="o.eff_etp_h" - /></td> - </tr> - <tr class="bgg"> - <th>Total</th> <td class="text-right"><span t-field="o.eff_etp" /></td> </tr> </tbody> diff --git a/templates/lm_survey_header_template.xml b/templates/lm_survey_header_template.xml deleted file mode 100644 index 7d12ad8ff9b2970d5d2290ddbfa28ebf51b5fb05..0000000000000000000000000000000000000000 --- a/templates/lm_survey_header_template.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<odoo> - <template - id="lm_survey_import_header_template" - name="cgscop_liste_ministere.lm_survey_import_header_template" - > - <div id="lm" style="background-color: #fff; padding: 16px 0"> - <div class="container"> - <div class="row"> - <div class="col-12 text-center"> - <div - class="btn-group" - style="padding-top: 25px; padding-bottom: 25px;" - > - <a - type="action" - name="%(cgscop_liste_ministere.scop_load_lm_survey_act_window)d" - class="btn btn-outline-info btn-lg" - style="width: 250px;" - tabindex="4" - > - Importer des LM d'ajustement - </a> - </div> - </div> - </div> - </div> - </div> - </template> -</odoo> diff --git a/views/scop_config_lists_views.xml b/views/scop_config_lists_views.xml index e5291f0fafb680bcc5279b5bac3fe5a725675d9f..9d1a03eb102a6e55610f4b2225a3e294f341b826 100644 --- a/views/scop_config_lists_views.xml +++ b/views/scop_config_lists_views.xml @@ -4,29 +4,6 @@ <odoo> <data> - <!-- Domaines Activites SCIC --> - <record id="view_liste_ministere_domaine_scic_tree" model="ir.ui.view"> - <field name="name">scop.liste.ministere.domaine.scic.tree</field> - <field name="model">scop.liste.ministere.domaine.scic</field> - <field name="arch" type="xml"> - <tree string="Domaines activités SCIC" editable="top"> - <field name="name" /> - </tree> - </field> - </record> - - <record - id="action_view_liste_ministere_domaine_scic_tree" - model="ir.actions.act_window" - > - <field name="name">Domaines d'activités SCIC</field> - <field name="res_model">scop.liste.ministere.domaine.scic</field> - <field name="view_mode">tree</field> - <field - name="help" - >Display and manage the list of Domaines d'activités SCIC.</field> - </record> - <!-- Actions politique --> <record id="view_liste_ministere_politique_action_tree" model="ir.ui.view"> <field name="name">scop.liste.ministere.politique.action.tree</field> @@ -87,12 +64,6 @@ parent="menu_liste_ministere" sequence="90" /> - <menuitem - id="menu_liste_ministere_domaine_scic" - parent="config_liste_ministere" - action="action_view_liste_ministere_domaine_scic_tree" - sequence="100" - /> <menuitem id="menu_liste_ministere_politique_action" parent="config_liste_ministere" diff --git a/views/scop_liste_ministere.xml b/views/scop_liste_ministere.xml index c82513d433c28181d0383376ef7c42f9d13a07f6..90d762979a7f8f376017da2e8d253f9c2387203d 100644 --- a/views/scop_liste_ministere.xml +++ b/views/scop_liste_ministere.xml @@ -39,8 +39,6 @@ <field name="partner_id" /> <field name="cooperative_form_id" string="Type de coopérative" /> <field name="year" /> - <field name="main_type" /> - <field name="type_lm" /> <field name='status' /> <field name='member_number_int' /> <field name="is_dead" /> @@ -208,29 +206,11 @@ <field name="priority" eval="10" /> <field name="arch" type="xml"> <form string="Liste ministère" create="false"> - <group name="needed_fields_for_domain" invisible="1"> - <field name="main_type" invisible="1" /> <field name="cae" invisible="1" /> </group> <header> - <button - string="Transformer en LM" - type="object" - name="switch_main_type" - groups="cgscop_partner.group_cg_administrative" - confirm="Êtes-vous certain de vouloir transformer le dossier en Liste Ministère ?" - attrs="{'invisible':[('main_type', '=', 'lm')]}" - /> - <button - string="Transformer en Questionnaire" - type="object" - name="switch_main_type" - groups="cgscop_partner.group_cg_administrative" - confirm="Êtes-vous certain de vouloir transformer le dossier en Questionnaire ?" - attrs="{'invisible':[('main_type', '!=', 'lm')]}" - /> <button string="Nouvelle période" type="object" @@ -285,14 +265,14 @@ type="object" name="action_cg_notice" class="btn btn-info" - attrs="{'invisible':['|', ('status', '!=', '3_complet'), ('main_type', '=', 'quest')]}" + attrs="{'invisible':[('status', '!=', '3_complet')]}" groups="cgscop_partner.group_cg_administrative" /> <button string="Changer l'année du dossier" type="action" name="%(cgscop_liste_ministere.action_change_year_wizard)d" - attrs="{'invisible':['|', ('status', 'not in', ['1_ouvert', '2_publie', '3_complet', '4_attente_cg']), ('main_type', '=', 'quest')]}" + attrs="{'invisible':[('status', 'not in', ['1_ouvert', '2_publie', '3_complet', '4_attente_cg'])]}" groups="cgscop_partner.group_cg_administrative" /> <button @@ -300,7 +280,7 @@ type="object" name="action_send_direccte" class="btn btn-info" - attrs="{'invisible':['|', ('status', '!=', '4_attente_cg'), ('main_type', '=', 'quest')]}" + attrs="{'invisible':[('status', '!=', '4_attente_cg')]}" groups="cgscop_partner.group_cg_administrative" /> <button @@ -324,7 +304,7 @@ type="object" name="action_direccte_sent" class="btn btn-info" - attrs="{'invisible':['|', ('status', '!=', '5_a_transmettre'), ('main_type', '=', 'quest')]}" + attrs="{'invisible':[('status', '!=', '5_a_transmettre')]}" groups="cgscop_partner.group_cg_administrative" /> <button @@ -340,14 +320,14 @@ type="object" name="action_close" class="btn btn-info" - attrs="{'invisible':['|', ('status', '!=', '3_complet'), ('main_type', '!=', 'quest')]}" + attrs="{'invisible':[('status', '!=', '3_complet')]}" groups="cgscop_partner.group_cg_administrative" /> <button string="Retour statut précédent" type="object" name="action_status_rollback" - attrs="{'invisible':['|', ('status', '=', '1_ouvert'), '&', ('status', 'in', ('2_publie', '3_complet', '4_attente_cg')), ('main_type', '=', 'lm')]}" + attrs="{'invisible':[('status', 'in', ('1_ouvert', '2_publie', '3_complet', '4_attente_cg'))]}" groups="cgscop_partner.group_cg_administrative" /> <button @@ -362,14 +342,12 @@ widget="statusbar" clickable="0" readonly="1" - attrs="{'invisible':[('main_type', '!=', 'lm')]}" /> <field name="status_quest" widget="statusbar" clickable="0" readonly="1" - attrs="{'invisible':[('main_type', '=', 'lm')]}" /> </header> @@ -419,15 +397,6 @@ > (Clôture </span><field name="year_cloture" /> - <span - class="o_field_widget" - attrs="{'invisible':[('main_type', '!=', 'lm')]}" - >, JO </span> - <field - name="year_jo" - attrs="{'invisible':[('main_type', '!=', 'lm')]}" - /> - <span class="o_field_widget">)</span> </span> </h2> <h3> @@ -668,12 +637,6 @@ name="creation_suborigin_id" readonly="1" /> - <field - name="domaine_scic_ids" - widget="many2many_tags" - attrs="{'invisible': ['|', ('main_type', '!=', 'quest'), ('cae', '!=', False)]}" - options="{'no_create': 1, 'no_edit': 1}" - /> </group> </group> <group> @@ -837,9 +800,7 @@ </thead> <tbody> <!-- LM --> - <tr - attrs="{'invisible': [('main_type', '!=', 'lm')]}" - > + <tr> <th >Pesronnes physiques (autres que ex salariés)</th> <td><field @@ -849,43 +810,6 @@ name='cap_assoc_ext_phys' /></td> </tr> - <!-- QUESTIONNAIRE --> - <tr - attrs="{'invisible': [('main_type', '!=', 'quest')]}" - > - <th - >Pesronnes physiques (autres que ex salariés) jamais rémunérées par la coop</th> - <td><field - name='nb_assoc_ext_phys_non_remnun' - /></td> - <td><field - name='cap_assoc_ext_phys_non_remnun' - /></td> - </tr> - <tr - attrs="{'invisible': [('main_type', '!=', 'quest')]}" - > - <th - >Bénévoles associés (autres que ex salariés) jamais rémunérés par la coop</th> - <td><field - name='nb_benevoles_assoc_non_remun' - /></td> - <td><field - name='cap_benevoles_assoc_non_remun' - /></td> - </tr> - <tr - attrs="{'invisible': [('main_type', '!=', 'quest')]}" - > - <th - >Personnes physiques (autres que ex salariés) rémunérées par la coop</th> - <td><field - name='nb_assoc_ext_phys_avec_remnun' - /></td> - <td><field - name='cap_assoc_ext_phys_avec_remnun' - /></td> - </tr> <!-- TOUS --> <tr> <th>Anciens salariés</th> @@ -938,26 +862,11 @@ name='cap_assoc_pers_morales_pub' /></td> </tr> - <tr - attrs="{'invisible': [('main_type', '!=', 'quest')]}" - > - <th - >Collectivités territoriales associées</th> - <td><field - name="nb_assoc_collec_terr" - /></td> - <td><field - name='cap_assoc_collec_terr' - /></td> - </tr> </tbody> </table> </group> - <group - string="Scop d'amorçage" - attrs="{'invisible': [('main_type', '!=', 'lm')]}" - > + <group string="Scop d'amorçage"> <field name="is_scop_amorcage" /> <field name="cap_inves_ext_porteur" @@ -981,9 +890,7 @@ <field name="taux_prelevement_salaires_bruts" /> </group> - <group - attrs="{'invisible': [('main_type', '!=', 'lm')]}" - > + <group> <field name="assoc_non_employes_physiques_ids" context="{'default_type': 'physique'}" @@ -1040,9 +947,7 @@ </field> </group> - <group - attrs="{'invisible': [('main_type', '!=', 'lm')]}" - > + <group> <field name="is_capital_egalitaire" widget="boolean_toggle" @@ -1073,114 +978,8 @@ /> </group> </page> - <!-- TODO: Vérifier variables CAE + SCIC --> <page name="people" string="Démographie"> - <group - string="Effectif - Données à la clôture de l’exercice comptable" - > - <table class="table table-bordered"> - <thead> - <tr> - <th>Démographie</th> - <th colspan="2">Total personnel</th> - <th - colspan="2" - >Dont sociétaires-salariés</th> - <th>Capital (en €)</th> - </tr> - </thead> - <tbody> - <tr> - <th>25 ans et moins</th> - <td colspan="2"><field - name='eff_25moins' - /></td> - <td colspan="2"><field - name='eff_sal_assoc_25moins' - /></td> - <td><field name='cap_25moins' /></td> - </tr> - <tr> - <th>26-40 ans</th> - <td colspan="2"><field - name='eff_26_40' - /></td> - <td colspan="2"><field - name='eff_sal_assoc_26_40' - /></td> - <td><field name='cap_26_40' /></td> - </tr> - <tr> - <th>41-55 ans</th> - <td colspan="2"><field - name='eff_41_55' - /></td> - <td colspan="2"><field - name='eff_sal_assoc_41_55' - /></td> - <td><field name='cap_41_55' /></td> - </tr> - <tr> - <th>Plus de 55 ans</th> - <td colspan="2"><field - name='eff_55plus' - /></td> - <td colspan="2"><field - name='eff_sal_assoc_55plus' - /></td> - <td><field name='cap_55plus' /></td> - </tr> - <tr> - <th rowspan="3">TOTAL</th> - <td colspan="2"><field - name="eff_tt" - /></td> - <td colspan="2"><field - name='eff_sal_assoc' - /></td> - <td rowspan="3"><field - name='cap_sal_assoc_computed' - readonly="1" - /></td> - </tr> - <tr> - <td>Dont femmes</td> - <td>Dont hommes</td> - <td>Dont femmes</td> - <td>Dont hommes</td> - </tr> - <tr> - <td><field name='eff_sal_f' /></td> - <td><field name='eff_sal_h' /></td> - <td><field - name='eff_sal_assoc_f' - /></td> - <td><field - name='eff_sal_assoc_h' - /></td> - </tr> - </tbody> - </table> - </group> - <group col="3"> - <group string="Équivalent temps plein (ETP)"> - <field name="eff_etp_f" /> - <field name="eff_etp_h" /> - <field name="eff_etp" /> - </group> - <group string="Autres contrats"> - <field name="eff_apprenti" /> - <field name="eff_interim" /> - </group> - <group string="Effectif au siège"> - <field name="eff_tot_siege" /> - <field name="eff_sal_assoc_siege" /> - </group> - <group> - <hr /> - <field name="eff_shareholder_tt" /> - </group> - </group> + <!-- TODO: revoir affichage --> </page> <page string="Questions CAE" @@ -1240,7 +1039,6 @@ <page name="earnings" string="Clés de répartition des bénéfices" - attrs="{'invisible':[('main_type', '!=', 'lm')]}" > <group col="3"> <field name="cles_flexibles" /> @@ -1256,7 +1054,6 @@ <page name="excess" string="Répartition des excédents de gestion" - attrs="{'invisible':[('main_type', '!=', 'lm')]}" > <group> <field @@ -1357,7 +1154,6 @@ <page name="transfer" string="Cession / Immobilisations" - attrs="{'invisible':[('main_type', '!=', 'lm')]}" > <field name="cession_ids" @@ -1397,91 +1193,9 @@ </form> </field> </page> - <page name="facilities" string="Établissements secondaires"> - <p> - <button - name="lm_add_facility" - type="object" - class="btn-info" - string="Ajouter un établissement" - /> - <button - name="lm_maj_effectifs_secondaires" - type="object" - help="Mettre à jour la liste des effectifs secondaires" - icon="fa-refresh" - /> - </p> - <field name="secondary_staff_ids" mode="tree"> - <tree delete="0" create="0"> - <field name="is_cooperative" invisible="1" /> - <field - name="partner_id" - options="{'no_create': 1, 'no_edit': 1}" - /> - <field name="partner_city" /> - <field name="partner_siret" /> - <field name="staff_count" /> - <field name="staff_shareholder_count" /> - <field name="staff_average" /> - <field name="comment" /> - <button - name="archive_facility" - type="object" - help="Archiver l'établissement" - icon="fa-trash" - /> - </tree> - <form> - <group> - <group name="infos_coop"> - <field - name="partner_id" - options="{'no_create': True, 'no_open': True}" - readonly="1" - /> - <field name="partner_city" /> - <field name="partner_siret" /> - </group> - <group name="infos_entry"> - <field name="user_id" readonly="1" /> - <field name="type_entry" readonly="1" /> - <field - name="effective_date" - attrs="{'readonly':[('type_entry','in',('questionnaire', 'questionnaire_inscription'))]}" - /> - </group> - <group name="staff_stats"> - <field - name="cooperative_form_id" - invisible="1" - /> - <field - name="is_partner_in_tracked_naf" - invisible="1" - /> - <field name="staff_count" /> - <field name="staff_shareholder_count" /> - <field name="staff_shareholder_total" /> - <field name="staff_average" /> - </group> - <group name="staff_stats"> - <field name="staff_men" /> - <field name="staff_women" /> - <field name="staff_shareholder_men" /> - <field name="staff_shareholder_women" /> - </group> - <group name="comment"> - <field name="comment" /> - </group> - </group> - </form> - </field> - </page> <page name="participation" string="Participations dans d'autres sociétés" - attrs="{'invisible':[('main_type', '!=', 'lm')]}" > <field name="participation_ids" mode="tree"> <tree editable="bottom"> @@ -1727,7 +1441,6 @@ <field name="res_model">scop.liste.ministere</field> <field name="view_mode">tree,form,graph,pivot</field> <field name="context" eval="{'search_default_current_year': 1}" /> - <field name="domain">[('main_type', '=', 'lm')]</field> </record> <record model="ir.actions.act_window.view" id="action_liste_ministere_tree"> <field name="sequence" eval="1" /> @@ -1765,62 +1478,6 @@ /> <field name="act_window_id" ref="action_liste_ministere" /> </record> - <!-- QUESTIONNAIRES --> - <record model="ir.actions.act_window" id="action_liste_ministere_quest"> - <field name="name">Dossiers questionnaires</field> - <field name="res_model">scop.liste.ministere</field> - <field name="view_mode">tree,form,graph,pivot</field> - <field name="context" eval="{'search_default_current_year': 1}" /> - <field name="domain">[('main_type', '=', 'quest')]</field> - </record> - <record - model="ir.actions.act_window.view" - id="action_liste_ministere_quest_tree" - > - <field name="sequence" eval="1" /> - <field name="view_mode">tree</field> - <field - name="view_id" - ref="cgscop_liste_ministere.view_liste_ministere_tree" - /> - <field name="act_window_id" ref="action_liste_ministere_quest" /> - </record> - <record - model="ir.actions.act_window.view" - id="action_liste_ministere_quest_form" - > - <field name="sequence" eval="2" /> - <field name="view_mode">form</field> - <field - name="view_id" - ref="cgscop_liste_ministere.view_liste_ministere_form" - /> - <field name="act_window_id" ref="action_liste_ministere_quest" /> - </record> - <record - model="ir.actions.act_window.view" - id="action_liste_ministere_quest_graph" - > - <field name="sequence" eval="3" /> - <field name="view_mode">graph</field> - <field - name="view_id" - ref="cgscop_liste_ministere.view_liste_ministere_graph" - /> - <field name="act_window_id" ref="action_liste_ministere_quest" /> - </record> - <record - model="ir.actions.act_window.view" - id="action_liste_ministere_quest_pivot" - > - <field name="sequence" eval="4" /> - <field name="view_mode">pivot</field> - <field - name="view_id" - ref="cgscop_liste_ministere.view_liste_ministere_pivot" - /> - <field name="act_window_id" ref="action_liste_ministere_quest" /> - </record> <!-- MENU --> <menuitem @@ -1837,13 +1494,6 @@ sequence="20" action="action_liste_ministere" /> - <menuitem - id="menu_liste_ministere_quest_list" - parent="menu_liste_ministere" - name="Questionnaires annuels" - sequence="21" - action="action_liste_ministere_quest" - /> </data> </odoo> diff --git a/views/scop_liste_ministere_survey.xml b/views/scop_liste_ministere_survey.xml deleted file mode 100644 index 803d41433c1cc009284e4e06853a1ebb68f05959..0000000000000000000000000000000000000000 --- a/views/scop_liste_ministere_survey.xml +++ /dev/null @@ -1,152 +0,0 @@ -<?xml version="1.0" ?> -<!-- Copyright 2019 Le Filament - License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> -<odoo> - <data> - - <!-- Tree --> - <record id="scop_liste_ministere_survey_tree_view" model="ir.ui.view"> - <field name="name">scop.liste.ministere.survey.tree</field> - <field name="model">scop.liste.ministere</field> - <field name="mode">primary</field> - <field name="arch" type="xml"> - <tree - string="Ajustement service études" - banner_route="/cgscop_liste_ministere_survey/header" - > - <field name="is_cooperative" invisible="1" /> - <field name="partner_id" /> - <field name="year" /> - <field name="av_cg" /> - <field name="wage_cg" /> - <field name="eff_tt" /> - <field name="eff_shareholder_tt" /> - </tree> - </field> - </record> - - <!-- Form --> - <record id="scop_liste_ministere_survey_form_view" model="ir.ui.view"> - <field name="name">scop.liste.ministere.survey.form</field> - <field name="model">scop.liste.ministere</field> - <field name="mode">primary</field> - <field name="priority" eval="1" /> - <field name="arch" type="xml"> - <form string="LM Ajustement service études"> - <sheet> - <group> - <field name="is_cooperative" invisible="1" /> - <field - name="partner_id" - domain="[('is_cooperative', '=', True)]" - options="{'no_create': True}" - /> - <field name="siren" /> - <field name="year" /> - <field name="effective_date" /> - <field name="type_lm" readonly="1" /> - <field name="scop_liasse_fiscale_id" /> - </group> - <hr /> - <group col="2"> - <group> - <field name="revenue_cg" /> - <field name="montant_excedents_net_connu" /> - <field name="av_cg" /> - <field name="wage_cg" /> - </group> - <group> - <field name="cap_tt" /> - <field name="cap_sal_assoc_computed" /> - <field name="nb_assoc_pers_morales_pub" /> - <field name="cap_assoc_pers_morales_pub" /> - </group> - <group> - <field name="eff_tt" /> - <field name="eff_sal_h" /> - <field name="eff_sal_f" /> - <field name="eff_sal_assoc" /> - <field name="eff_sal_assoc_h" /> - <field name="eff_sal_assoc_f" /> - <field name="eff_etp" /> - <field name="eff_shareholder_tt" /> - <field name="eff_sal_sup_h" /> - <field name="eff_sal_sup_f" /> - <field name="eff_cesa_f" /> - <field name="eff_cesa_h" /> - <field name="eff_cape_f" /> - <field name="eff_cape_h" /> - <field name="eff_sal_sup_assoc_f" /> - <field name="eff_sal_sup_assoc_h" /> - <field name="eff_cesa_assoc_f" /> - <field name="eff_cesa_assoc_h" /> - <field name="eff_cape_assoc_f" /> - <field name="eff_cape_assoc_h" /> - <field name="eff_assoc_autre_mor" /> - <field name="eff_assoc_autre_phys" /> - <field name="nb_filiales_fr" /> - <field name="eff_tt_fr" /> - </group> - <group> - <field name="ca_agrege_fr" /> - <field name="nb_filiales_hors_fr" /> - <field name="eff_tt_hors_fr" /> - <field name="ca_agrege_hors_fr" /> - <field name="is_assoc_collec_terr" /> - <field name="nb_assoc_collec_terr_scic" /> - <field name="is_assoc_communes" /> - <field name="is_assoc_intercommu" /> - <field name="is_assoc_departements" /> - <field name="is_assoc_regions" /> - <field name="specificite_cae" /> - <field name="autre_specificite_cae" /> - <field name="ca_tt_hors_sub" /> - <field name="ca_struct" /> - <field name="ca_act_entr" /> - <field name="ca_esa_f" /> - <field name="ca_esa_h" /> - <field name="ca_cape_f" /> - <field name="ca_cape_h" /> - <field name="contrib_coops_tt" /> - <field name="sub_tt" /> - <field name="echanges_internes_tt" /> - </group> - </group> - </sheet> - </form> - </field> - </record> - - <!-- ACTIONS VIEWS--> - <record model="ir.actions.act_window" id="action_scop_liste_ministere_survey"> - <field name="name">Ajustements Service Etudes</field> - <field name="res_model">scop.liste.ministere</field> - <field name="domain">[('type_lm', '=', 'survey_adjust')]</field> - <field name="context">{'default_type_lm': 'survey_adjust'}</field> - <field name="view_mode">tree,form</field> - </record> - - <record - id="action_scop_liste_ministere_survey_tree" - model="ir.actions.act_window.view" - > - <field eval="1" name="sequence" /> - <field name="view_mode">tree</field> - <field - name="view_id" - ref="cgscop_liste_ministere.scop_liste_ministere_survey_tree_view" - /> - <field name="act_window_id" ref="action_scop_liste_ministere_survey" /> - </record> - - <!-- MENU --> - <menuitem - id="menu_scop_liste_ministere_survey" - name="Service études" - parent="menu_liste_ministere" - sequence="50" - action="action_scop_liste_ministere_survey" - /> - - </data> -</odoo>