let moment = require('moment')


module.exports = {
    friendlyName: "Find",

    description: "Find Eleves Parents.",

    inputs: {

        anneeScolaire: {
            type: "string",
            require: true
        },
        startDate: {
            type: 'string'
        },
        endDate: {
            type: 'string'
        },

    },

    exits: {
        notFound: {
            statusCode: 404
        },
    },

    fn: async function (inputs, exits) {
        const { id, user } = this.req.token;
        //console.log("ID", id, user.login, user.typeUser, user.codeEcole, user.nom)
        //console.log("ID", id, inputs.codeClasse, inputs.anneeScolaire, inputs.trimSem)

        // 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!" })
        }
        let 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

        // VERIF SI ANNEE SCOLAIRE EST PASSEE
        // console.log("Annee Scolaire", inputs.anneeScolaire)
        if (inputs.anneeScolaire === '' || inputs.anneeScolaire === null || inputs.anneeScolaire === undefined) {
            return exits.notFound({ message: "Veuillez préciser une année scolaire pour a accéder a cette page!" })
        }

        if (inputs.startDate === '' || inputs.startDate === undefined || inputs.startDate === null || inputs.startDate === 'undefined') {
            inputs.startDate = undefined
        }

        if (inputs.endDate === '' || inputs.endDate === undefined || inputs.endDate === null || inputs.endDate === 'undefined') {
            inputs.endDate = undefined
        }
        //// FIN

        let userCodeEcole;
        if (user.typeUser === 'ADMINISTRATION') {
            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!" })

        }
        //console.log("userCodeEcole", userCodeEcole)

        // Reccupération des montants pour chaque recettes

        let evolutionRecetteFac = [];
            //console.log("CODAGENCE", codeAgence)

            ///// PARCOURIR CHAQUE JOUR
            var start = new Date(inputs.startDate);
            var end = new Date(inputs.endDate);

            var loop = new Date(start);
            while (loop <= end) {
                //console.log(moment(loop, 'DD/MM/YYYY').format('YYYY-MM-DD'));

                let total = 0;
                let element = {};
                let quittances = await QuittanceFacultatif.find({ codeEcole: userCodeEcole, dateQuittance: moment(loop, 'DD/MM/YYYY').format('YYYYMMDD'), anneeScolaire: inputs.anneeScolaire ? inputs.anneeScolaire : undefined, })
                if (quittances && quittances.length > 0) {
                    quittances.map(quittance => {
                        //console.log("AGENCE", facture)

                        if (quittance.montantQuittance && quittance.montantQuittance !== null) {
                            total = total + parseInt(quittance.montantQuittance)
                        }
                    })
                }
                if (total) {
                    element = {
                        "date": moment(loop, 'DD/MM/YYYY').format('DD/MM/YYYY'),
                        "total": total
                    }

                }    else {
                    element = {
                        "date": moment(loop, 'DD/MM/YYYY').format('DD/MM/YYYY'),
                        "total": total
                    }
                }
                evolutionRecetteFac.push(element);

                var newDate = loop.setDate(loop.getDate() + 1);
                loop = new Date(newDate);
            }
        
        
        // All done.
        return exits.success(evolutionRecetteFac);
    },
};
