Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 416f12ce719603392ce9272cde095491d5ea19d1
  • 14.0 par défaut
  • 12.0 protégée
  • 13.0
4 résultats

scop_contribution_report.py

Blame
  • gendoc_file_services.py 43,78 Kio
    # © 2022 Le Filament (<https://www.le-filament.com>)
    # © 2022 Confédération Générale des Scop (<https://www.les-scop.coop>)
    # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
    
    from odoo.addons.base_rest import restapi
    from odoo.addons.base_rest_datamodel.restapi import Datamodel
    from odoo.addons.component.core import Component
    
    from ..datamodels.base_search_param import CgScopGendocBaseSearchParam
    
    
    class CgScopGendocFileServices(Component):
        _inherit = ["base.rest.service", "cgscop_gendoc.utils"]
        _name = "cgscopgendoc.gendoc_file.services"
        _usage = "file"
        _collection = "cgscopgendoc.services.coll"
        _description = """
            Gendoc File API Services
            Services developed with the new api provided by base_rest
        """
    
        @restapi.method(
            [(["/<int:id>/get", "/<int:id>"], "GET")],
            auth="user",
        )
        def get(self, _id):
            """
            Get file's information
            """
            my_search_param = CgScopGendocBaseSearchParam()
            my_search_param.id = _id
            my_search_param.ur_id = 0
            my_search_param.delegate_id = 0
    
            return self._search(my_search_param, True)
    
        @restapi.method(
            [(["/", "/search"], "POST")],
            input_param=Datamodel("cgscopgendoc.base.search.param"),
            auth="user",
        )
        def search(self, my_search_param):
            """
            Search for gendoc files
            :param base_search_param: An instance of partner.search.param
            """
            return self._search(my_search_param, False)
    
        # The following method are 'private' and should be never never NEVER call
        # from the controller.
    
        def _search(self, my_search_param, detailed):
            """
            Search for gendoc files
            :param base_search_param: An instance of gendoc.search.param
            :param detailed: specify detailed output
            """
            domain = []
            if my_search_param.id:
                domain.append(("id", "=", my_search_param.id))
            else:
                if my_search_param.filter:
                    domain = [
                        "|",
                        "|",
                        ("partner_id.name", "ilike", my_search_param.filter),
                        ("partner_id.sigle", "ilike", my_search_param.filter),
                        ("partner_id.member_number", "=like", my_search_param.filter),
                    ]
    
            # On regarde si il faut limiter à l'UR
            if my_search_param.ur_id != 0:
                domain.append(("ur_id", "=", my_search_param.ur_id))
    
            # On regarde si il faut limiter à un délégué
            if my_search_param.delegate_id != 0:
                domain.append(("delegate_id", "=", my_search_param.delegate_id))
    
            offset = 0
            if my_search_param.offset:
                offset = my_search_param.offset
    
            limit = 0
            if my_search_param.limit:
                limit = my_search_param.limit
    
            nbrec = self.env["scop.gendoc.file"].search_count(domain)
            gfiles = self.env["scop.gendoc.file"].search(domain, limit=limit, offset=offset)
    
            rows = []
            res = {"count": nbrec, "rows": rows}
            for gfile in gfiles:
                rows.append(self._to_json(detailed, gfile))
            return res
    
        def _to_json(self, detailed, gfile):
            """
            Generate output json
            :param gfile: An instance of gendoc file
            :param detailed: specify detailed output
            """
    
            res = {
                "id": self._getinteger(gfile.id),
                "file_type": self._getinteger(gfile.file_type),
                "coop_denomination": self._getstring(gfile.coop_denomination),
                "coop_sigle": self._getstring(gfile.coop_sigle),
                "coop_siege_ville": self._getstring(gfile.coop_siege_ville),
                "coop_siren": self._getstring(gfile.coop_siren),
                "coop_type_coop": self._getstring(gfile.coop_type_coop),
                "coop_forme_juridique": self._getstring(gfile.coop_forme_juridique),
            }
    
            if detailed:
                res.update(
                    {
                        "coop_siege_adresse1": self._getstring(gfile.coop_siege_adresse1),
                        "coop_siege_adresse2": self._getstring(gfile.coop_siege_adresse2),
                        "coop_siege_adresse3": self._getstring(gfile.coop_siege_adresse3),
                        "coop_siege_cp": self._getstring(gfile.coop_siege_cp),
                        "coop_siret": self._getstring(gfile.coop_siret),
                        "coop_ville_rcs": self._getstring(gfile.coop_ville_rcs),
                        "coop_type_acc": self._getstring(gfile.coop_type_acc),
                        "coop_forme_juridique_complet": self._getstring(
                            gfile.coop_forme_juridique_complet
                        ),
                        "coop_nom_forme_juridique": self._getstring(
                            gfile.coop_nom_forme_juridique
                        ),
                        "coop_sa_cs_dir": self._getboolean(gfile.coop_sa_cs_dir),
                        "coop_rna": self._getstring(gfile.coop_rna),
                        "coop_prefecture": self._getstring(gfile.coop_prefecture),
                        "coop_date_creation_transformation": self._getdate(
                            gfile.coop_date_creation_transformation
                        ),
                        "coop_heure_creation_transformation": self._getstring(
                            gfile.coop_heure_creation_transformation
                        ),
                        "coop_dateheure_convocation": self._getstring(
                            gfile.coop_dateheure_convocation
                        ),
                        "coop_objet_societe": self._getstring(gfile.coop_objet_societe),
                        "coop_duree_societe": self._getinteger(gfile.coop_duree_societe),
                        "coop_datefin_societe": self._getstring(gfile.coop_datefin_societe),
                        "coop_date_depot_capital": self._getstring(
                            gfile.coop_date_depot_capital
                        ),
                        "coop_date_cloture": self._getstring(gfile.coop_date_cloture),
                        "coop_date_premiere_cloture": self._getdate(
                            gfile.coop_date_premiere_cloture
                        ),
                        "coop_valeur_part_sociale": self._getdecimal(
                            gfile.coop_valeur_part_sociale
                        ),
                        "coop_montant_capital_numeraire": self._getdecimal(
                            gfile.coop_montant_capital_numeraire
                        ),
                        "coop_montant_capital_nature": self._getdecimal(
                            gfile.coop_montant_capital_nature
                        ),
                        "coop_montant_capital_total": self._getdecimal(
                            gfile.coop_montant_capital_total
                        ),
                        "coop_nb_parts_numeraire": self._getinteger(
                            gfile.coop_nb_parts_numeraire
                        ),
                        "coop_nb_parts_nature": self._getinteger(
                            gfile.coop_nb_parts_nature
                        ),
                        "coop_nb_parts_total": self._getinteger(gfile.coop_nb_parts_total),
                        "coop_pourcent_capital_mini": self._getinteger(
                            gfile.coop_pourcent_capital_mini
                        ),
                        "coop_montant_capital_mini": self._getdecimal(
                            gfile.coop_montant_capital_mini
                        ),
                        "coop_nb_asso": self._getinteger(gfile.coop_nb_asso),
                        "coop_identite_proprietaire": self._getstring(
                            gfile.coop_identite_proprietaire
                        ),
                        "coop_cac_1": self._getstring(gfile.coop_cac_1),
                        "coop_cac_2": self._getstring(gfile.coop_cac_2),
                        "coop_reviseur_1": self._getstring(gfile.coop_reviseur_1),
                        "coop_reviseur_2": self._getstring(gfile.coop_reviseur_2),
                        "coop_commissaire_apports": self._getstring(
                            gfile.coop_commissaire_apports
                        ),
                        "coop_pouvoirs_formalites": self._getstring(
                            gfile.coop_pouvoirs_formalites
                        ),
                        "coop_nb_jours_reponse_conjoint": self._getinteger(
                            gfile.coop_nb_jours_reponse_conjoint
                        ),
                        "coop_banque_depositaire": self._getstring(
                            gfile.coop_banque_depositaire
                        ),
                        "coop_nom_signataire": self._getstring(gfile.coop_nom_signataire),
                        "coop_duree_reviseur": self._getstring(gfile.coop_duree_reviseur),
                        "sa_ca_duree": self._getinteger(gfile.coop_sa_ca_duree),
                        "sa_ca_renouvellement": self._getstring(
                            gfile.coop_sa_ca_renouvellement
                        ),
                        "sa_ca_type_organisation": self._getstring(
                            gfile.coop_sa_ca_type_organisation
                        ),
                        "sa_dir_duree": self._getinteger(gfile.coop_sa_dir_duree),
                        "sa_dir_renouvellement": self._getstring(
                            gfile.coop_sa_dir_renouvellement
                        ),
                        "sa_dir_cs_duree": self._getstring(gfile.coop_sa_dir_cs_duree),
                        "oi_nom": self._getstring(gfile.coop_oi_nom),
                        "oi_duree": self._getinteger(gfile.coop_oi_duree),
                        "oi_pouvoir": self._getstring(gfile.coop_oi_pouvoir),
                        "coop_forme_juridique_anterieure": self._getstring(
                            gfile.coop_forme_juridique_anterieure
                        ),
                        "coop_type_capital_anterieur": self._getstring(
                            gfile.coop_type_capital_anterieur
                        ),
                        "coop_valeur_part_sociale_anterieur": self._getdecimal(
                            gfile.coop_valeur_part_sociale_anterieur
                        ),
                        "coop_nb_parts_anterieur": self._getinteger(
                            gfile.coop_nb_parts_anterieur
                        ),
                        "coop_nb_parts_transitoire": self._getinteger(
                            gfile.coop_nb_parts_transitoire
                        ),
                        "coop_nb_membre": self._getinteger(gfile.coop_nb_membre),
                        "coop_montant_capital_anterieur": self._getdecimal(
                            gfile.coop_montant_capital_anterieur
                        ),
                        "coop_nb_voix_anterieur": self._getinteger(
                            gfile.coop_nb_voix_anterieur
                        ),
                        "coop_montant_rbst_ps_anterieur": self._getdecimal(
                            gfile.coop_montant_rbst_ps_anterieur
                        ),
                        "coop_date_creation_anterieur": self._getdate(
                            gfile.coop_date_creation_anterieur
                        ),
                        "organe_decision_anterieur": self._getstring(
                            gfile.organe_decision_anterieur
                        ),
                        "coop_rapport_cac": self._getboolean(gfile.coop_rapport_cac),
                        "coop_commissaire_transfo": self._getboolean(
                            gfile.coop_commissaire_transfo
                        ),
                    }
                )
                res["membres_anterieurs_pp"] = self._getmembrepp(gfile.membrepp_ids)
                res["membres_anterieurs_pm"] = self._getmembrepm(gfile.membrepm_ids)
                res["membres_transitoire_pp"] = self._gettransitpp(gfile.transitpp_ids)
                res["membres_transitoire_pm"] = self._gettransitpm(gfile.transitpm_ids)
                res["associes_pp"] = self._getassopp(gfile.assopp_ids)
                res["associes_pm"] = self._getassopm(gfile.assopm_ids)
                res["mandataires_sarl"] = self._getmandsarl(gfile.mand_sarl_ids)
                res["mandataires_sas"] = self._getmandsas(gfile.mand_sas_ids)
                res["mandataires_sa_ca"] = self._getmandsaca(gfile.mand_sa_ca_ids)
                res["mandataires_sa_dir"] = self._getmandsadir(gfile.mand_sa_dir_ids)
                res["organe_intermediaire"] = self._getoi(gfile.oi_ids)
                res["conseil_surveillance"] = self._getcsurv(gfile.csurv_ids)
                res["statuts"] = self._getstatuts(gfile)
                res["categories"] = self._getcategories(gfile.categ_ids)
                res["colleges"] = self._getcolleges(gfile.colleges_ids)
    
            res["ur"] = self._getnested(gfile.ur_id)
            return res
    
        def _getmembrepp(self, ids):
            res = []
            if ids:
                for membre in ids:
                    res.append(
                        {
                            "civilite": self._getselection(
                                membre, "membrepp_civilite", membre.membrepp_civilite
                            ),
                            "nom": self._getstring(membre.membrepp_nom),
                            "adresse": self._getstring(membre.membrepp_adresse),
                            "naissance": self._getstring(membre.membrepp_naissance),
                            "nationalite": self._getstring(membre.membrepp_nationalite),
                            "valeur_part_sociale": self._getdecimal(
                                membre.membrepp_valeur_part_sociale
                            ),
                            "montant_capital": self._getdecimal(
                                membre.membrepp_montant_capital
                            ),
                            "nb_parts": self._getinteger(membre.membrepp_nb_parts),
                            "mail": self._getstring(membre.membrepp_mail),
                            "mobile": self._getstring(membre.membrepp_mobile),
                            "fonction": self._getstring(membre.membrepp_fonction),
                        }
                    )
            return res
    
        def _getmembrepm(self, ids):
            res = []
            if ids:
                for membre in ids:
                    res.append(
                        {
                            "nom": self._getstring(membre.membrepm_nom),
                            "adresse": self._getstring(membre.membrepm_adresse),
                            "identite": self._getstring(membre.membrepm_identite),
                            "valeur_part_sociale": self._getdecimal(
                                membre.membrepm_valeur_part_sociale
                            ),
                            "montant_capital": self._getdecimal(
                                membre.membrepm_montant_capital
                            ),
                            "nb_parts": self._getinteger(membre.membrepm_nb_parts),
                            "repr_civilite": self._getselection(
                                membre,
                                "membrepm_repr_civilite",
                                membre.membrepm_repr_civilite,
                            ),
                            "representant": self._getstring(membre.membrepm_representant),
                            "repr_qualite": self._getstring(membre.membrepm_repr_qualite),
                            "repr_nationalite": self._getstring(
                                membre.membrepm_repr_nationalite
                            ),
                            "mail": self._getstring(membre.membrepm_mail),
                            "mobile": self._getstring(membre.membrepm_mobile),
                        }
                    )
            return res
    
        def _gettransitpp(self, ids):
            res = []
            if ids:
                for membre in ids:
                    res.append(
                        {
                            "civilite": self._getselection(
                                membre, "transitpp_civilite", membre.transitpp_civilite
                            ),
                            "nom": self._getstring(membre.transitpp_nom),
                            "adresse": self._getstring(membre.transitpp_adresse),
                            "naissance": self._getstring(membre.transitpp_naissance),
                            "nationalite": self._getstring(membre.transitpp_nationalite),
                            "valeur_part_sociale": self._getdecimal(
                                membre.transitpp_valeur_part_sociale
                            ),
                            "valeur_part_sociale_anterieur": self._getdecimal(
                                membre.transitpp_valeur_part_sociale_anterieur
                            ),
                            "montant_capital": self._getdecimal(
                                membre.transitpp_montant_capital
                            ),
                            "nb_parts": self._getinteger(membre.transitpp_nb_parts),
                            "nb_parts_anterieur": self._getinteger(
                                membre.transitpp_nb_parts_anterieur
                            ),
                            "mail": self._getstring(membre.transitpp_mail),
                            "mobile": self._getstring(membre.transitpp_mobile),
                            "fonction": self._getstring(membre.transitpp_fonction),
                        }
                    )
            return res
    
        def _gettransitpm(self, ids):
            res = []
            if ids:
                for membre in ids:
                    res.append(
                        {
                            "nom": self._getstring(membre.transitpm_nom),
                            "adresse": self._getstring(membre.transitpm_adresse),
                            "identite": self._getstring(membre.transitpm_identite),
                            "valeur_part_sociale": self._getdecimal(
                                membre.transitpm_valeur_part_sociale
                            ),
                            "valeur_part_sociale_anterieur": self._getdecimal(
                                membre.transitpm_valeur_part_sociale_anterieur
                            ),
                            "montant_capital": self._getdecimal(
                                membre.transitpm_montant_capital
                            ),
                            "nb_parts": self._getinteger(membre.transitpm_nb_parts),
                            "nb_parts_anterieur": self._getinteger(
                                membre.transitpm_nb_parts_anterieur
                            ),
                            "repr_civilite": self._getselection(
                                membre,
                                "transitpm_repr_civilite",
                                membre.transitpm_repr_civilite,
                            ),
                            "representant": self._getstring(membre.transitpm_representant),
                            "repr_qualite": self._getstring(membre.transitpm_repr_qualite),
                            "repr_nationalite": self._getstring(
                                membre.transitpm_repr_nationalite
                            ),
                            "mail": self._getstring(membre.transitpm_mail),
                            "mobile": self._getstring(membre.transitpm_mobile),
                        }
                    )
            return res
    
        def _getassopp(self, ids):
            res = []
            if ids:
                for asso in ids:
                    res.append(
                        {
                            "civilite": self._getselection(
                                asso, "assopp_civilite", asso.assopp_civilite
                            ),
                            "nom": self._getstring(asso.assopp_nom),
                            "adresse": self._getstring(asso.assopp_adresse),
                            "naissance": self._getstring(asso.assopp_naissance),
                            "nationalite": self._getstring(asso.assopp_nationalite),
                            "valeur_part_sociale": self._getdecimal(
                                asso.assopp_valeur_part_sociale
                            ),
                            "montant_capital_numeraire": self._getdecimal(
                                asso.assopp_montant_capital_numeraire
                            ),
                            "montant_capital_nature": self._getdecimal(
                                asso.assopp_montant_capital_nature
                            ),
                            "montant_capital_total": self._getdecimal(
                                asso.assopp_montant_capital_total
                            ),
                            "nb_parts_numeraire": self._getinteger(
                                asso.assopp_nb_parts_numeraire
                            ),
                            "nb_parts_nature": self._getinteger(
                                asso.assopp_nb_parts_nature
                            ),
                            "nb_parts_total": self._getinteger(asso.assopp_nb_parts_total),
                            "mail": self._getstring(asso.assopp_mail),
                            "mobile": self._getstring(asso.assopp_mobile),
                            "marital": self._getstring(asso.assopp_marital),
                            "conjoint": self._getstring(asso.assopp_conj),
                            "categorie": self._getnested(asso.categ_id),
                        }
                    )
            return res
    
        def _getassopm(self, ids):
            res = []
            if ids:
                for asso in ids:
                    res.append(
                        {
                            "nom": self._getstring(asso.assopm_nom),
                            "adresse": self._getstring(asso.assopm_adresse),
                            "identite": self._getstring(asso.assopm_identite),
                            "valeur_part_sociale": self._getdecimal(
                                asso.assopm_valeur_part_sociale
                            ),
                            "montant_capital_numeraire": self._getdecimal(
                                asso.assopm_montant_capital_numeraire
                            ),
                            "montant_capital_nature": self._getdecimal(
                                asso.assopm_montant_capital_nature
                            ),
                            "montant_capital_total": self._getdecimal(
                                asso.assopm_montant_capital_total
                            ),
                            "nb_parts_numeraire": self._getinteger(
                                asso.assopm_nb_parts_numeraire
                            ),
                            "nb_parts_nature": self._getinteger(
                                asso.assopm_nb_parts_nature
                            ),
                            "nb_parts_total": self._getinteger(asso.assopm_nb_parts_total),
                            "mail": self._getstring(asso.assopm_mail),
                            "mobile": self._getstring(asso.assopm_mobile),
                            "repr_civilite": self._getselection(
                                asso, "assopm_repr_civilite", asso.assopm_repr_civilite
                            ),
                            "representant": self._getstring(asso.assopm_representant),
                            "repr_qualite": self._getstring(asso.assopm_repr_qualite),
                            "repr_naissance": self._getstring(asso.assopm_repr_naissance),
                            "repr_nationalite": self._getstring(
                                asso.assopm_repr_nationalite
                            ),
                            "categorie": self._getnested(asso.categ_id),
                        }
                    )
            return res
    
        def _getmandsarl(self, ids):
            res = []
            if ids:
                for mand in ids:
                    res.append(
                        {
                            "civilite": self._getselection(
                                mand, "mand_civilite", mand.mand_civilite
                            ),
                            "nom": self._getstring(mand.mand_nom),
                            "adresse": self._getstring(mand.mand_adresse),
                            "naissance": self._getstring(mand.mand_naissance),
                            "nationalite": self._getstring(mand.mand_nationalite),
                            "titre": self._getstring(mand.mand_titre),
                            "duree": self._getinteger(mand.mand_duree),
                            "identite_pere": self._getstring(mand.mand_identite_pere),
                            "identite_mere": self._getstring(mand.mand_identite_mere),
                            "categorie": self._getstring(mand.mand_categorie),
                            "college": self._getstring(mand.mand_college),
                        }
                    )
            return res
    
        def _getmandsas(self, ids):
            res = []
            if ids:
                for mand in ids:
                    res.append(
                        {
                            "type": self._getstring(mand.mand_type),
                            "civilite": self._getselection(
                                mand, "mand_civilite", mand.mand_civilite
                            ),
                            "nom": self._getstring(mand.mand_nom),
                            "adresse": self._getstring(mand.mand_adresse),
                            "identite": self._getstring(mand.mand_identite),
                            "naissance": self._getstring(mand.mand_naissance),
                            "nationalite": self._getstring(mand.mand_nationalite),
                            "identite_pere": self._getstring(mand.mand_identite_pere),
                            "identite_mere": self._getstring(mand.mand_identite_mere),
                            "titre": self._getstring(mand.mand_titre),
                            "duree": self._getinteger(mand.mand_duree),
                            "repr_civilite": self._getselection(
                                mand, "mand_repr_civilite", mand.mand_repr_civilite
                            ),
                            "representant": self._getstring(mand.mand_representant),
                            "repr_adresse": self._getstring(mand.mand_repr_adresse),
                            "repr_qualite": self._getstring(mand.mand_repr_qualite),
                            "repr_naissance": self._getstring(mand.mand_repr_naissance),
                            "repr_nationalite": self._getstring(mand.mand_repr_nationalite),
                            "repr_identite_pere": self._getstring(
                                mand.mand_repr_identite_pere
                            ),
                            "repr_identite_mere": self._getstring(
                                mand.mand_repr_identite_mere
                            ),
                            "categorie": self._getstring(mand.mand_categorie),
                            "college": self._getstring(mand.mand_college),
                        }
                    )
            return res
    
        def _getmandsaca(self, ids):
            res = []
            if ids:
                for mand in ids:
                    res.append(
                        {
                            "type": self._getstring(mand.mand_type),
                            "civilite": self._getselection(
                                mand, "mand_civilite", mand.mand_civilite
                            ),
                            "nom": self._getstring(mand.mand_nom),
                            "adresse": self._getstring(mand.mand_adresse),
                            "identite": self._getstring(mand.mand_identite),
                            "naissance": self._getstring(mand.mand_naissance),
                            "nationalite": self._getstring(mand.mand_nationalite),
                            "identite_pere": self._getstring(mand.mand_identite_pere),
                            "identite_mere": self._getstring(mand.mand_identite_mere),
                            "administrateur": self._getboolean(mand.mand_administrateur),
                            "direction": self._getboolean(mand.mand_direction),
                            "duree_premier_mandat": self._getinteger(
                                mand.mand_duree_premier_mandat
                            ),
                            "repr_civilite": self._getselection(
                                mand, "mand_repr_civilite", mand.mand_repr_civilite
                            ),
                            "representant": self._getstring(mand.mand_representant),
                            "repr_adresse": self._getstring(mand.mand_repr_adresse),
                            "repr_qualite": self._getstring(mand.mand_repr_qualite),
                            "repr_naissance": self._getstring(mand.mand_repr_naissance),
                            "repr_nationalite": self._getstring(mand.mand_repr_nationalite),
                            "repr_identite_pere": self._getstring(
                                mand.mand_repr_identite_pere
                            ),
                            "repr_identite_mere": self._getstring(
                                mand.mand_repr_identite_mere
                            ),
                            "categorie": self._getstring(mand.mand_categorie),
                            "college": self._getstring(mand.mand_college),
                        }
                    )
            return res
    
        def _getmandsadir(self, ids):
            res = []
            if ids:
                for mand in ids:
                    res.append(
                        {
                            "type": self._getstring(mand.mand_type),
                            "civilite": self._getselection(
                                mand, "mand_civilite", mand.mand_civilite
                            ),
                            "nom": self._getstring(mand.mand_nom),
                            "adresse": self._getstring(mand.mand_adresse),
                            "identite": self._getstring(mand.mand_identite),
                            "naissance": self._getstring(mand.mand_naissance),
                            "nationalite": self._getstring(mand.mand_nationalite),
                            "identite_pere": self._getstring(mand.mand_identite_pere),
                            "identite_mere": self._getstring(mand.mand_identite_mere),
                            "type_organe": self._getstring(mand.mand_type_organe),
                            "type_direction": self._getstring(mand.mand_type_direction),
                            "duree_premier_mandat": self._getinteger(
                                mand.mand_duree_premier_mandat
                            ),
                            "repr_civilite": self._getselection(
                                mand, "mand_repr_civilite", mand.mand_repr_civilite
                            ),
                            "representant": self._getstring(mand.mand_representant),
                            "repr_adresse": self._getstring(mand.mand_repr_adresse),
                            "repr_qualite": self._getstring(mand.mand_repr_qualite),
                            "repr_naissance": self._getstring(mand.mand_repr_naissance),
                            "repr_nationalite": self._getstring(mand.mand_repr_nationalite),
                            "repr_identite_pere": self._getstring(
                                mand.mand_repr_identite_pere
                            ),
                            "repr_identite_mere": self._getstring(
                                mand.mand_repr_identite_mere
                            ),
                            "categorie": self._getstring(mand.mand_categorie),
                            "college": self._getstring(mand.mand_college),
                        }
                    )
            return res
    
        def _getoi(self, ids):
            res = []
            if ids:
                for oi in ids:
                    res.append(
                        {
                            "type": self._getstring(oi.oi_type),
                            "nom": self._getstring(oi.oi_nom),
                            "adresse": self._getstring(oi.oi_adresse),
                            "identite": self._getstring(oi.oi_identite),
                            "naissance": self._getstring(oi.oi_naissance),
                            "nationalite": self._getstring(oi.oi_nationalite),
                            "identite_pere": self._getstring(oi.oi_identite_pere),
                            "identite_mere": self._getstring(oi.oi_identite_mere),
                            "representant": self._getstring(oi.oi_representant),
                            "repr_adresse": self._getstring(oi.oi_repr_adresse),
                            "repr_qualite": self._getstring(oi.oi_repr_qualite),
                            "repr_naissance": self._getstring(oi.oi_repr_naissance),
                            "repr_nationalite": self._getstring(oi.oi_repr_nationalite),
                            "repr_identite_pere": self._getstring(oi.oi_repr_identite_pere),
                            "repr_identite_mere": self._getstring(oi.oi_repr_identite_mere),
                            "categorie": self._getstring(oi.oi_categorie),
                            "college": self._getstring(oi.oi_college),
                        }
                    )
            return res
    
        def _getcsurv(self, ids):
            res = []
            if ids:
                for csurv in ids:
                    res.append(
                        {
                            "nom": self._getstring(csurv.csurv_nom),
                            "adresse": self._getstring(csurv.csurv_adresse),
                            "naissance": self._getstring(csurv.csurv_naissance),
                            "nationalite": self._getstring(csurv.csurv_nationalite),
                        }
                    )
            return res
    
        def _getstatuts(self, doss):
            res = {}
            if doss:
                res.update(
                    {
                        "transfert_siege_social": self._getboolean(
                            doss.sta_transfert_siege_social
                        ),
                        "versement_integral_capital": self._getboolean(
                            doss.sta_versement_integral_capital
                        ),
                        "agrement_cession_part_ag": self._getboolean(
                            doss.sta_agrement_cession_part_ag
                        ),
                        "engagement_souscription_capital": self._getboolean(
                            doss.sta_engagement_souscription_capital
                        ),
                        "engagement_souscription_capital_type": self._getselection(
                            doss,
                            "sta_engagement_souscription_capital_type",
                            doss.sta_engagement_souscription_capital_type,
                        ),
                        "taux_souscription_capital": self._getdecimal(
                            doss.sta_taux_souscription_capital
                        ),
                        "plancher_souscription_capital": self._getboolean(
                            doss.sta_plancher_souscription_capital
                        ),
                        "plancher_souscription_capital_type": self._getselection(
                            doss,
                            "sta_plancher_souscription_capital_type",
                            doss.sta_plancher_souscription_capital_type,
                        ),
                        "plancher_nb_parts_sociales": self._getinteger(
                            doss.sta_plancher_nb_parts_sociales
                        ),
                        "plancher_montant_capital": self._getdecimal(
                            doss.sta_plancher_montant_capital
                        ),
                        "plancher_nb_mois_remuneration": self._getinteger(
                            doss.sta_plancher_nb_mois_remuneration
                        ),
                        "plafond_souscription_capital": self._getboolean(
                            doss.sta_plafond_souscription_capital
                        ),
                        "plafond_nb_parts_sociales": self._getinteger(
                            doss.sta_plafond_nb_parts_sociales
                        ),
                        "plafond_montant_capital": self._getdecimal(
                            doss.sta_plafond_montant_capital
                        ),
                        "priorite_prlv_souscription_capital": self._getboolean(
                            doss.sta_priorite_prlv_souscription_capital
                        ),
                        "candidature_societariat": self._getselection(
                            doss,
                            "sta_candidature_societariat",
                            doss.sta_candidature_societariat,
                        ),
                        "nb_annne_entree_fonction": self._getinteger(
                            doss.sta_nb_annne_entree_fonction
                        ),
                        "demission_contrat": self._getselection(
                            doss, "sta_demission_contrat", doss.sta_demission_contrat
                        ),
                        "rupture_contrat_perte_associe": self._getselection(
                            doss,
                            "sta_rupture_contrat_perte_associe",
                            doss.sta_rupture_contrat_perte_associe,
                        ),
                        "revalo_parts_sociale": self._getboolean(
                            doss.sta_revalo_parts_sociale
                        ),
                        "calcul_rbst_part_sociale": self._getselection(
                            doss,
                            "sta_calcul_rbst_part_sociale",
                            doss.sta_calcul_rbst_part_sociale,
                        ),
                        "delai_rbst_parts_sociale": self._getinteger(
                            doss.sta_delai_rbst_parts_sociale
                        ),
                        "interet_rbst_part_sociale": self._getselection(
                            doss,
                            "sta_interet_rbst_part_sociale",
                            doss.sta_interet_rbst_part_sociale,
                        ),
                        "nomination_gerant_2eme_convoc": self._getselection(
                            doss,
                            "sta_nomination_gerant_2eme_convoc",
                            doss.sta_nomination_gerant_2eme_convoc,
                        ),
                        "revocation_gerant_2eme_convoc": self._getselection(
                            doss,
                            "sta_revocation_gerant_2eme_convoc",
                            doss.sta_revocation_gerant_2eme_convoc,
                        ),
                        "mandataire_sarl_duree": self._getinteger(
                            doss.sta_mandataire_sarl_duree
                        ),
                        "mandataire_sarl_cs_duree": self._getinteger(
                            doss.sta_mandataire_sarl_cs_duree
                        ),
                        "mandat_gerance_duree": self._getinteger(
                            doss.sta_mandat_gerance_duree
                        ),
                        "limitation_gerant_cs": self._getboolean(
                            doss.sta_limitation_gerant_cs
                        ),
                        "date_fin_mandat_ca": self._getdate(doss.sta_date_fin_mandat_ca),
                        "ordre_sortie_ca": self._getselection(
                            doss, "sta_ordre_sortie_ca", doss.sta_ordre_sortie_ca
                        ),
                        "ca_nb_conseil": self._getinteger(doss.sta_ca_nb_conseil),
                        "admin_representation": self._getboolean(
                            doss.sta_admin_representation
                        ),
                        "ca_consult_ecrite": self._getboolean(doss.sta_ca_consult_ecrite),
                        "dg_cessation_fonction": self._getselection(
                            doss,
                            "sta_dg_cessation_fonction",
                            doss.sta_dg_cessation_fonction,
                        ),
                        "dgd_cessation_fonction": self._getselection(
                            doss,
                            "sta_dgd_cessation_fonction",
                            doss.sta_dgd_cessation_fonction,
                        ),
                        "duree_mandat_directoire": self._getselection(
                            doss,
                            "sta_duree_mandat_directoire",
                            doss.sta_duree_mandat_directoire,
                        ),
                        "revocation_directoire": self._getselection(
                            doss,
                            "sta_revocation_directoire",
                            doss.sta_revocation_directoire,
                        ),
                        "date_fin_mandat_cs": self._getdate(doss.sta_date_fin_mandat_cs),
                        "ordre_sortie_cs": self._getselection(
                            doss, "sta_ordre_sortie_cs", doss.sta_ordre_sortie_cs
                        ),
                        "cs_representation": self._getboolean(doss.sta_cs_representation),
                        "cs_consult_ecrite": self._getboolean(
                            doss.sta_cs_consultation_ecrite
                        ),
                        "date_fin_mandat_president_sas": self._getdate(
                            doss.sta_date_fin_mandat_president_sas
                        ),
                        "nomination_president_sas_2eme_convoc": self._getselection(
                            doss,
                            "sta_nomination_president_sas_2eme_convoc",
                            doss.sta_nomination_president_sas_2eme_convoc,
                        ),
                        "revocation_president_sas_2eme_convoc": self._getselection(
                            doss,
                            "sta_revocation_president_sas_2eme_convoc",
                            doss.sta_revocation_president_sas_2eme_convoc,
                        ),
                        "mandataire_sas_duree": self._getinteger(
                            doss.sta_mandataire_sas_duree
                        ),
                        "ag_sarl_vote_anticipation_distance": self._getboolean(
                            doss.sta_ag_sarl_vote_anticipation_distance
                        ),
                        "ag_sarl_vote_participation_distance": self._getboolean(
                            doss.sta_ag_sarl_vote_participation_distance
                        ),
                        "droit_opp_ag_visio": self._getselection(
                            doss, "sta_droit_opp_ag_visio", doss.sta_droit_opp_ag_visio
                        ),
                        "ag_vote_anticipation_distance": self._getboolean(
                            doss.sta_ag_vote_anticipation_distance
                        ),
                        "date_demarrage_annee_sociale": self._getstring(
                            doss.sta_date_demarrage_annee_sociale
                        ),
                        "repartition_eng": self._getselection(
                            doss, "sta_repartition_eng", doss.sta_repartition_eng
                        ),
                        "affectation_reserve_legale": self._getselection(
                            doss,
                            "sta_affectation_reserve_legale",
                            doss.sta_affectation_reserve_legale,
                        ),
                        "repartition_part_travail": self._getselection(
                            doss,
                            "sta_repartition_part_travail",
                            doss.sta_repartition_part_travail,
                        ),
                        "affect_coef_anciennete": self._getboolean(
                            doss.sta_affect_coef_anciennete
                        ),
                        "reserve_revalo_parts_sociales": self._getboolean(
                            doss.sta_reserve_revalo_parts_sociales
                        ),
                        "pct_reserve_revalo_parts_sociales": self._getinteger(
                            doss.sta_pct_reserve_revalo_parts_sociales
                        ),
                        "clef_fixe_fonds_dev": self._getinteger(
                            doss.sta_clef_fixe_fonds_dev
                        ),
                        "clef_fixe_part_travail": self._getinteger(
                            doss.sta_clef_fixe_part_travail
                        ),
                        "clef_fixe_interet_parts_sociales": self._getinteger(
                            doss.sta_clef_fixe_interet_parts_sociales
                        ),
                        "absence_decision_clef_variable": self._getboolean(
                            doss.sta_absence_decision_clef_variable
                        ),
                        "pct_reserve_legale": self._getinteger(doss.sta_pct_reserve_legale),
                        "pct_fonds_dev": self._getinteger(doss.sta_pct_fonds_dev),
                        "pct_part_travail": self._getinteger(doss.sta_pct_part_travail),
                        "pct_interet_parts_sociales": self._getinteger(
                            doss.sta_pct_interet_parts_sociales
                        ),
                    }
                )
            return res
    
        def _getcategories(self, ids):
            res = []
            if ids:
                for categ in ids:
                    res.append(
                        {
                            "nom": self._getstring(categ.name),
                            "description": self._getstring(categ.categ_desc),
                            "nb_parts": self._getinteger(categ.categ_nb_parts),
                            "mt_parts": self._getdecimal(categ.categ_mt_parts),
                        }
                    )
            return res
    
        def _getcolleges(self, ids):
            res = []
            if ids:
                for coll in ids:
                    res.append(
                        {
                            "nom": self._getstring(coll.name),
                            "description": self._getstring(coll.coll_desc),
                            "pct_votes": self._getinteger(coll.coll_pct_votes),
                        }
                    )
            return res