

















/////////////// CREATION ANNULER J'AI UTILISER REGISTRE SCOLAIRE A LA PLACE
module.exports = {


    friendlyName: 'Find',


    description: 'Find annee.',


    inputs: {
        codeClasse: {
            type: 'string',
            require: true
        },
        anneeScolaire: {
            type: 'string',
            require: true
        },


    },


    exits: {

    },

/////////////// CREATION ANNULER J'AI UTILISER REGISTRE SCOLAIRE A LA PLACE

    fn: async function (inputs, exits) {

        const { id, user } = this.req.token;
        //console.log("ID", id, user.login, user.typeUser, user.codeEcole)

        // VERIFICATION DU CODE ECOLE
        if (user.codeEcole === '' || user.codeEcole === null || user.codeEcole === undefined) {
            return exits.notFound({ message: "Veuillez préciser le code Ecole pour cet utulisateur pour a accéder a cette page!" })
        }
        ecoleVerif = await Ecoles.find({ codeEcole: user.codeEcole }).then(_.first)
        if (!ecoleVerif) {
            return exits.notFound({ message: "Cet utilisateur n'est attribué a aucune classe!" })
        }
        // FIN VERIF CODE ECOLE

        // VERIFICATION TYPE UTILISATEUR
        let userCodeEcole;
        if (user.typeUser === 'ADMINISTRATION' || user.typeUser === 'SECRETARIAT') {
            userCodeEcole = user.codeEcole
        } else if (user.typeUser === 'ADMIN') {
            userCodeEcole = undefined
        } else {
            return exits.notFound({ message: "Vous n'etes pas autoriser a accéder a cette page!" })

        }
/////////////// CREATION ANNULER J'AI UTILISER REGISTRE SCOLAIRE A LA PLACE

        // ANNEE SCOLAIRE

        if (inputs.codeClasse === '' || inputs.codeClasse === null || inputs.codeClasse === undefined) {
            return exits.notFound({ message: "Veuillez passer le code de la classe pour accéder aux éleves d'une classe!" })
        }

        let eleves = await AttributionClasse.find({codeEcole: userCodeEcole, codeClasse: inputs.codeClasse, anneeScolaire: inputs.anneeScolaire})//.sort('anneeScolaire DESC')
        .then(async (eleves) => {
            eleves.data = await Promise.all(
                eleves.map(async (eleve) => {
                if (eleve.matricule) {
                    eleve.eleve = await Eleves.find({ matricule: quittance.matricule, }).then(_.first);
    
                  let filiation = await Filiation.find({ matricule: quittance.matricule }).then(_.first);
                  if (filiation) {
                    quittance.parent = await Parents.find({ codeParent: filiation.codeParent }).then(_.first);
                    quittance.filiation = filiation
                  }
                }
  
                return quittance
              })
            );
            return quittances
          });
        // All done.
        return exits.success(eleves);

    }
/////////////// CREATION ANNULER J'AI UTILISER REGISTRE SCOLAIRE A LA PLACE


};
