Untitled
unknown
plain_text
9 months ago
34 kB
4
Indexable
PROCÉDURE Calculer_Totaux_Action(nIDAction = 0, bTypeRetour est un booléen = gbRetourAffichage) nDuree est un entier sur 4 octets // Valeur est un réel //Remplacé par BudgetTotal Val_e est un réel Val_c est un réel Tmp1 est un réel Tmp2 est un réel nNumMois est un entier nAnnee est un entier // Année de travail (Entier) sAnnee est une chaîne // Année de travail (Chaine) // Calcul du Budget Mensuel et Annuel BudgetTotal est un réel Unite est un réel FDMois est un tableau de 12 chaînes // Tableau du nombre de jour max par mois // Budget Mensuel BudgetMois2 est un tableau de 13 réels //#CestQuoi --> Budget ?? // 12 mois + le Total en position 13 BudgetMois1 est un tableau de 13 réels //#CestQuoi --> Heure Produite Personnel ?? // 12 mois + le Total en position 13 BudgetMois3 est un tableau de 13 réels //#CestQuoi --> Charge Personnel ?? // 12 mois + le Total en position 13 // Budget Mensuel Cumulé _BudgetMois2_Cum est un tableau de 13 réels //#CestQuoi --> Budget ?? // 12 mois + le Total en position 13 _BudgetMois1_Cum est un tableau de 13 réels //#CestQuoi --> Heure Produite Personnel ?? // 12 mois + le Total en position 13 _BudgetMois3_Cum est un tableau de 13 réels //#CestQuoi --> Charge Personnel ?? // 12 mois + le Total en position 13 bCalculDuree est un booléen = Faux R1 est une Source de Données // Pour les calculs _Total_UO_Centre est un réel _Total_UO_Entreprise est un réel //'montant total centre _Montant_Centre est un réel _Montant_Entreprise est un réel // Total heures prévues _Total_UO_Centre_Prevision est un réel _Total_UO_Entreprise_Prevision est un réel // Montant total centre + entreprise _Total est un réel _Total_Prevision est un réel // Montant total sur l'exercice _Total_Exercice est un réel // Montant total des autres charges _Total_IntervennantExterieur est un réel _Total_AutreCharge est un réel // Ratios de gestion _Ratio_MasseSalariale_CA est un réel _Ratio_Total_Salaire est un réel _Ratio_Charge est un réel _Ratio_Rentabilité est un réel // Cumul du Budget Annuel _Total_Exercice_Cum est un réel // Cumul Montant total Centre + Entreprise _Total_Cum est un réel _Total_Prevision_Cum est un réel // Cumul Montant total des Autres Charges _Total_IntervennantExterieur_Cum est un réel _Total_AutreCharge_Cum est un réel <BLOC Déclaration Formateur> // Données Formateur _NbConseil est un réel //Fichier _Hrs_Intervenant est un réel //Fichier _Nb_Hrs_Stagiaires est un réel //Fichier _Total_CBL est un réel _Nb_CMI est un réel //Fichier _Nb_CMI_Necessaire est un réel _Nb_Stag_Gpe est un réel //Fichier _Nb_FAF est un réel _Nb_Hrs_Accueil est un réel _Nb_Formateurs est un réel // Montant Total Formateur _Total_Formateur est un réel _Cout_Total_Formateur est un réel _Cout_Total_Formateur_Actualise est un réel // Cumul des Montants Total Formateur _Total_Formateur_Cum est un réel _Cout_Total_Formateur_Cum est un réel _Cout_Total_Formateur_Actualise_Cum est un réel <FIN> // Affecte l'année de travail qui a été sélectionné nAnnee = Val(gSTPerimetreEnCours.sNomAnnee) sAnnee = gSTPerimetreEnCours.sNomAnnee // recherche le nombre de jour max de chaque mois POUR nNumMois = 1 _À_ 12 FDMois[nNumMois] = Droite(DernierJourDuMois(nAnnee, nNumMois), 2) FIN //#AFaire Le contrôle des dates pour empécher le calcul //SI HAlias(REQ_LitDonneeCalculAction, R1) = Vrai ALORS //TraceT("Combo_Annee Fin Init : " + COMBO_Annee + "-" + gSTPerimetreEnCours.sNomAnnee + "-" + COMBO_Annee..ValeurMémorisée ) REQ_LitDonneeCalculAction.ParamIdAction = nIDAction SI REQ_LitDonneeCalculAction.ExécuteRequête() = Vrai ALORS REQ_LitDonneeCalculAction.LitPremier(action_idaction) TANTQUE REQ_LitDonneeCalculAction.EnDehors() = Faux // Balaye toutes les sous-actions d'une action //#AFaire prévoir le cas ou les constantes ne sont pas trouvé dans la REQ_LitDonneeCalculAction <BLOC Vérification Dates> SI gbControleDateValide = Faux ALORS bVerifDate est un booléen = Vrai SELON Verifie_Date(REQ_LitDonneeCalculAction.action_date_debut, REQ_LitDonneeCalculAction.action_date_fin) CAS Faux: //Les dates sont inversés //Info("Erreur de date, la durée de l'action ne peux être négative.") //#Message Popup Erreur bVerifDate = Faux CAS -1: //Une des eux dates est vide //Info("Une des deux dates est vide.") //#Message Popup Erreur bVerifDate = Faux AUTRE CAS //'total heures prévues SI REQ_LitDonneeCalculAction.action_date_fin <= ChaîneVersDate("01/01/" + sAnnee) ALORS // If .txt_date_fin <= CDate("01/01/" & Trim(str(.txt_exercice))) Then //Info("Action terminée.") //#Message Popup Erreur bVerifDate = Faux FIN FIN gbControleDateValide = Vrai // Vérifie si le contrôle a déjà été fait SI bVerifDate = Faux ALORS // Affichage des cellule Totalisation Générale et Ratio Général à zéro SI bTypeRetour = gbRetourAffichage ALORS // Affichage des données dans la cellule Totalisation Générale et Ratio Général SAI_Action_Total = 0 SAI_Action_Total_Exercice = 0 SAI_Action_Total_Prevision = 0 SAI_Action_Total_IntervennantExterieur = 0 SAI_Action_Total_AutreCharge = 0 SAI_Action_Ratio_MasseSalariale_CA = 0 SAI_Action_Ratio_Total_Salaire = 0 SAI_Action_Ratio_Charge = 0 SAI_Action_Ratio_Rentabilité = 0 FIN //SI bTypeRetour = gbRetourParametre ALORS RENVOYER ( 0, ... //_Total_Cum, ... 0, ... //_Total_Exercice_Cum, ... 0, ... //_Total_Prevision_Cum, ... 0, ... //_Total_IntervennantExterieur_Cum, ... 0, ... //_Total_AutreCharge_Cum, ... 0, ... //_Ratio_MasseSalariale_CA, ... 0, ... //_Ratio_Total_Salaire, ... 0, ... //_Ratio_Charge, ... 0, ... //_Ratio_Rentabilité,... 0, ... //_BudgetMois2_Cum, ... // --> Budget ?? 0, ... //_BudgetMois1_Cum, ... // --> Heure Produite Personnel ?? 0 //_BudgetMois3_Cum // --> Charge Personnel ?? ) //FIN //RETOUR //RETOUR et RENVOYER ne peuvent pas être dans la même procédure FIN FIN <FIN> SI bCalculDuree = Faux ALORS // Calcule de la durée de l'action SI (REQ_LitDonneeCalculAction.action_date_debut < ChaîneVersDate("01/08/" + sAnnee) ET REQ_LitDonneeCalculAction.action_date_fin > ChaîneVersDate("27/08/" + sAnnee)) ET REQ_LitDonneeCalculAction.action_saisonnalite = Faux ALORS nDuree = DateDifférence(REQ_LitDonneeCalculAction.action_date_debut, REQ_LitDonneeCalculAction.action_date_fin) - 26 SINON nDuree = DateDifférence(REQ_LitDonneeCalculAction.action_date_debut, REQ_LitDonneeCalculAction.action_date_fin) + 1 FIN bCalculDuree = Vrai //Tracet(nIDAction + " / nDuree : " + nDuree) FIN // Montant total d'Unité d'Oeuvre (UO) _Total_UO_Centre = REQ_LitDonneeCalculAction.actiondetail_uo_stag_centre * REQ_LitDonneeCalculAction.action_nb_stagiaires _Total_UO_Entreprise = REQ_LitDonneeCalculAction.actiondetail_uo_stag_entreprise * REQ_LitDonneeCalculAction.action_nb_stagiaires // Montant total Centre et Entreprise _Montant_Centre = REQ_LitDonneeCalculAction.actiondetail_tarif_centre * _Total_UO_Centre _Montant_Entreprise = REQ_LitDonneeCalculAction.actiondetail_tarif_entreprise * _Total_UO_Entreprise // Total des heures prévues _Total_UO_Centre_Prevision = 0 _Total_UO_Entreprise_Prevision = 0 SI REQ_LitDonneeCalculAction.action_date_debut < ChaîneVersDate("01/01/" + sAnnee) ALORS // Heures sur l'année dernière // Si la Date de début est sur l'année précédente // N'est pas pris dans le calcul SINON SI REQ_LitDonneeCalculAction.action_date_fin < ChaîneVersDate("01/01/" + NumériqueVersChaîne(nAnnee + 1)) ALORS // Si la Date de fin est sur l'année en cours _Total_UO_Centre_Prevision = _Total_UO_Centre * REQ_LitDonneeCalculAction.action_situationproduit _Total_UO_Entreprise_Prevision = _Total_UO_Entreprise * REQ_LitDonneeCalculAction.action_situationproduit SINON SI nDuree <> 0 ALORS // Si la Date de fin est sur l'année prochaine => Calcul au prorata de jour sur l'année en cours _Total_UO_Centre_Prevision = (_Total_UO_Centre * REQ_LitDonneeCalculAction.action_situationproduit) * (DateDifférence(REQ_LitDonneeCalculAction.action_date_debut, ChaîneVersDate("01/01/" + NumériqueVersChaîne(nAnnee + 1))) / nDuree) _Total_UO_Entreprise_Prevision = (_Total_UO_Entreprise * REQ_LitDonneeCalculAction.action_situationproduit) * (DateDifférence(REQ_LitDonneeCalculAction.action_date_debut, ChaîneVersDate("01/01/" + NumériqueVersChaîne(nAnnee + 1))) / nDuree) FIN FIN FIN //********************* TOTAUX ****************************************************** // Montant total Centre + Entreprise _Total = _Montant_Centre + _Montant_Entreprise //#Affichage Totalisation Générale "Montant Total" => SAI_Action_Total _Total_Prevision = _Total * REQ_LitDonneeCalculAction.action_situationproduit //#Affichage Totalisation Générale "Montant Total Prévision" => SAI_Action_Total_Prevision // Montant total des Autres Charges _Total_IntervennantExterieur = REQ_LitDonneeCalculAction.total_charge_prestation _Total_AutreCharge = REQ_LitDonneeCalculAction.total_charge_autres // Calcul du Budget Mensuel et Annuel BudgetTotal = 0 _Total_Exercice = 0 // Prévision de produit par jour Unite = (nDuree <> 0 ? (_Total_Prevision / nDuree) SINON 0 ) POUR nNumMois = 1 À 12 BudgetMois2[nNumMois] = 0 SI REQ_LitDonneeCalculAction.action_date_debut > ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) OU ... REQ_LitDonneeCalculAction.action_date_fin < ChaîneVersDate("01/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) ALORS // Si Date de Début est supérieur au dernier jour du mois OU si Date de Fin est inférieur au 1er du mois BudgetTotal = BudgetTotal + 0 BudgetMois2[nNumMois] = 0 SINON SI REQ_LitDonneeCalculAction.action_date_debut < ChaîneVersDate("01/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) THEN //SI Date Début est inférieur au 1er du mois SI REQ_LitDonneeCalculAction.action_date_fin > ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) ALORS // Si Date de fin est supérieur à la fin du mois (donc un mois complet) SI nNumMois = 8 ALORS // Cas de la période estivale sur Août // Si le mois d'août SI REQ_LitDonneeCalculAction.action_saisonnalite = Faux ALORS // S'il y a de la saisonnalité on ne retient que 4 jours de prévision BudgetTotal = BudgetTotal + (4 * Unite) BudgetMois2[nNumMois] = (4 * Unite) SINON // S'il n'y à pas de saisonnalité (Mois complet) BudgetTotal = BudgetTotal + (Val(FDMois[nNumMois]) * Unite) BudgetMois2[nNumMois] = (Val(FDMois[nNumMois]) * Unite) FIN SINON // Pour les autres mois (Mois complet) BudgetTotal = BudgetTotal + (Val(FDMois[nNumMois]) * Unite) BudgetMois2[nNumMois] = (Val(FDMois[nNumMois]) * Unite) FIN SINON // Si la date de fin est comprise dans le mois (Mois complet) BudgetTotal = BudgetTotal + ((DateDifférence(ChaîneVersDate("01/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee), REQ_LitDonneeCalculAction.action_date_fin) + 1) * Unite) BudgetMois2[nNumMois] = ((DateDifférence(ChaîneVersDate("01/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee), REQ_LitDonneeCalculAction.action_date_fin) + 1) * Unite) FIN SINON //SI Date Début est supérieur ou égale au 1er du mois SI REQ_LitDonneeCalculAction.action_date_fin > ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) ALORS //#Question //#AVerifier le ">=" car il devrait-être juste ">" // Si Date de Fin est supérieur ou égale à la fin du mois //#AVerifier les calculs de Dates BudgetTotal = BudgetTotal + ((DateDifférence(REQ_LitDonneeCalculAction.action_date_debut, ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee)) + 1) * Unite) BudgetMois2[nNumMois] = ((DateDifférence(REQ_LitDonneeCalculAction.action_date_debut, ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee)) + 1) * Unite) SINON // Si Date de Fin est inférieur à la fin de mois BudgetTotal = BudgetTotal + _Total_Prevision //#Verifier les résultats si ont applique à la place (Valeur = Valeur + ((.txt_date_fin) - (.txt_date_fin) + 1) * unite) // Valeur = Valeur + .txt_total_prev BudgetMois2[nNumMois] = _Total_Prevision //#Verifier les résultats si ont applique à la place (mois2(I - 1) = ((.txt_date_fin) - (.txt_date_fin) + 1) * unite) // mois2(I - 1) = .txt_total_prev FIN FIN FIN SI BudgetMois2[nNumMois] ALORS TraceT(nIDAction + " / BudgetMois2[" + nNumMois + "] : " + BudgetMois2[nNumMois]) _BudgetMois2_Cum[nNumMois] = _BudgetMois2_Cum[nNumMois] + BudgetMois2[nNumMois] SI _BudgetMois2_Cum[nNumMois] ALORS TraceT(nIDAction + " / _BudgetMois2_Cum[" + nNumMois + "] : " + _BudgetMois2_Cum[nNumMois]) FIN BudgetMois2[nNumMois] = BudgetTotal SI BudgetMois2[nNumMois] ALORS TraceT(nIDAction + " / BudgetMois2[" + nNumMois + "] : " + BudgetMois2[nNumMois]) _BudgetMois2_Cum[nNumMois] = _BudgetMois2_Cum[nNumMois] + BudgetTotal SI _BudgetMois2_Cum[nNumMois] ALORS TraceT(nIDAction + " / _BudgetMois2_Cum[" + nNumMois + "] : " + _BudgetMois2_Cum[nNumMois]) _Total_Exercice = BudgetTotal //#Affichage "Total sur l'Exercice" => SAI_Action_Total_Exercie //Fin Fonction Calcul_Budget_Total_Exercice avec une valeur de retour BudgetTotal // Cumul du Budget Annuel _Total_Exercice_Cum = _Total_Exercice_Cum + _Total_Exercice //#Affichage cellule Totalisation générale "Total Sur Exercice" => SAI_Action_Total_Exercice // Cumul Montant total Centre + Entreprise _Total_Cum = _Total_Cum + _Total //#Affichage cellule Totalisation générale "Montant Total" => SAI_Action_Total _Total_Prevision_Cum = _Total_Prevision_Cum + _Total_Prevision //#Affichage cellule Totalisation générale "Montant Total Prévu" => SAI_Action_Total_Prevision // Cumul Montant total des Autres Charges _Total_IntervennantExterieur_Cum = _Total_IntervennantExterieur_Cum + _Total_IntervennantExterieur //#Affichage cellule Totalisation générale "Intervenant Extérieur" => SAI_Action_Total_IntervenantExterieur _Total_AutreCharge_Cum = _Total_AutreCharge_Cum + _Total_AutreCharge //#Affichage cellule Totalisation générale "Autres Charges" => SAI_Action_Total_AutreCharge /////////////////////// // Calculs Formateur // /////////////////////// <BLOC Formateur> _NbConseil = REQ_LitDonneeCalculAction.actiondetail_nb_conseil _Hrs_Intervenant = REQ_LitDonneeCalculAction.actiondetail_hrs_intervenant _Nb_Hrs_Stagiaires = REQ_LitDonneeCalculAction.actiondetail_nb_hrs_stagiaires _Total_CBL = 0 _Nb_CMI = REQ_LitDonneeCalculAction.actiondetail_nb_cmi _Nb_CMI_Necessaire = 0 _Nb_Stag_Gpe = REQ_LitDonneeCalculAction.actiondetail_nb_stag_gpe _Nb_FAF = 0 _Nb_Hrs_Accueil = 0 _Nb_Formateurs = 0 SELON REQ_LitDonneeCalculAction.listeactivite_code CAS "4": //Suivi Démarche Qualité Fourre Tous SI REQ_LitDonneeCalculAction.action_situationcharge = 0 ALORS _NbConseil = 0 SINON SI REQ_LitDonneeCalculAction.listefinancement_code = "1" ALORS // Si Financement Principal SI REQ_LitDonneeCalculAction.constante_cout_moyen <> 0 ALORS _NbConseil = (_Total_Exercice * REQ_LitDonneeCalculAction.constante_ratio) / REQ_LitDonneeCalculAction.constante_cout_moyen FIN SINON // Cofinancement _NbConseil = 0 FIN FIN _Hrs_Intervenant = 0 _Nb_Hrs_Stagiaires = 0 _Total_CBL = 0 _Nb_CMI = 0 _Nb_CMI_Necessaire = 0 _Nb_Stag_Gpe = 0 _Nb_FAF = 0 _Nb_Hrs_Accueil = 0 _Nb_Formateurs = 0 CASE "5": // Bilan de compétence SI REQ_LitDonneeCalculAction.action_situationcharge = 0 ALORS _Total_CBL = 0 ELSE SI REQ_LitDonneeCalculAction.listefinancement_code = "1" ALORS // Si Financement Principal SI _Hrs_Intervenant = 0 ALORS _Total_CBL = 0 ELSE SI _Nb_Hrs_Stagiaires <> 0 ET REQ_LitDonneeCalculAction.constante_nb_heures_tp <> 0 ALORS _Total_CBL = (_Total_UO_Centre_Prevision / _Nb_Hrs_Stagiaires) * (_Hrs_Intervenant / REQ_LitDonneeCalculAction.constante_nb_heures_tp) SINON _Total_CBL = 0 FIN FIN SINON _Total_CBL = 0 FIN FIN _NbConseil = 0 _Nb_CMI = 0 _Nb_CMI_Necessaire = 0 _Nb_Stag_Gpe = 0 _Nb_FAF = 0 _Nb_Hrs_Accueil = 0 _Nb_Formateurs = 0 CAS "6": //Charge de Mission et d'Insertion SI REQ_LitDonneeCalculAction.action_situationcharge = 0 ALORS _Nb_CMI_Necessaire = 0 ELSE SI REQ_LitDonneeCalculAction.listefinancement_code = "1" ALORS // Si Financement Principal SI _Nb_CMI = 0 ALORS SI REQ_LitDonneeCalculAction.constante_cout_moyen <> 0 ALORS _Nb_CMI_Necessaire = (_Total_Exercice * REQ_LitDonneeCalculAction.constante_ratio) / REQ_LitDonneeCalculAction.constante_cout_moyen SINON _Nb_CMI_Necessaire = 0 FIN SINON SI _Nb_CMI <> 0 ALORS _Nb_CMI_Necessaire = _Total_UO_Centre_Prevision / _Nb_CMI SINON _Nb_CMI_Necessaire = 0 FIN FIN SINON //Si CoFinancement _Nb_CMI_Necessaire = 0 FIN FIN _NbConseil = 0 _Hrs_Intervenant = 0 _Nb_Hrs_Stagiaires = 0 _Total_CBL = 0 _Nb_Stag_Gpe = 0 _Nb_FAF = 0 _Nb_Hrs_Accueil = 0 _Nb_Formateurs = 0 AUTRE CAS: // Formations _Nb_FAF = REQ_LitDonneeCalculAction.constante_nb_heures_tp * REQ_LitDonneeCalculAction.constante_coef SI REQ_LitDonneeCalculAction.action_situationcharge = 1 //#Attention donnée en dure dans le code _Nb_Hrs_Accueil = 0.75 //#Attention donnée en dure dans le code SINON SI REQ_LitDonneeCalculAction.action_date_debut = ChaîneVersDate("01/01/" + sAnnee) OU REQ_LitDonneeCalculAction.action_date_fin >= ChaîneVersDate("01/01/" + NumériqueVersChaîne(nAnnee + 1)) ALORS _Nb_Hrs_Accueil = 0.75 //#Attention donnée en dure dans le code SINON _Nb_Hrs_Accueil = 1.5 //#Attention donnée en dure dans le code FIN FIN SI REQ_LitDonneeCalculAction.action_situationcharge = 0 ALORS _Nb_Formateurs = 0 SINON SI REQ_LitDonneeCalculAction.listefinancement_code = "1" ALORS // Si Financement Principal Tmp1 = 0 SI (_Nb_Stag_Gpe * _Nb_FAF) <> 0 ALORS Tmp1 = ((_Total_UO_Centre_Prevision * (3.25 / 3.5)) + (_Nb_Stag_Gpe * REQ_LitDonneeCalculAction.action_nb_stagiaires * _Nb_Hrs_Accueil)) / (REQ_LitDonneeCalculAction.actiondetail_nb_stag_gpe * _Nb_FAF) //#Attention donnée en dure dans le code FIN Tmp2 = 0 SI REQ_LitDonneeCalculAction.constante_nb_heures_stage <> 0 ET _Nb_FAF <> 0 ALORS Tmp2 = (_Total_UO_Entreprise_Prevision * (REQ_LitDonneeCalculAction.constante_nb_heures_suivi * REQ_LitDonneeCalculAction.constante_coef) / REQ_LitDonneeCalculAction.constante_nb_heures_stage) / _Nb_FAF FIN _Nb_Formateurs = Tmp1 + Tmp2 SINON // Si Cofinancement _Nb_FAF = 0 _Nb_Hrs_Accueil = 0 _Nb_Formateurs = 0 FIN FIN _NbConseil = 0 _Hrs_Intervenant = 0 _Nb_Hrs_Stagiaires = 0 _Total_CBL = 0 _Nb_CMI = 0 _Nb_CMI_Necessaire = 0 FIN // Totalisation Formateur _Total_Formateur = _NbConseil + _Total_CBL + _Nb_CMI_Necessaire + _Nb_Formateurs _Cout_Total_Formateur = _Total_Formateur * REQ_LitDonneeCalculAction.constante_cout_moyen _Cout_Total_Formateur_Actualise = _Total_Formateur * REQ_LitDonneeCalculAction.constante_cout_moyen_actualise // Cumul de la totalisation Formateur _Total_Formateur_Cum = _Total_Formateur_Cum + _Total_Formateur _Cout_Total_Formateur_Cum = _Cout_Total_Formateur_Cum + _Cout_Total_Formateur _Cout_Total_Formateur_Actualise_Cum = _Cout_Total_Formateur_Actualise_Cum + _Cout_Total_Formateur_Actualise //SI SAI_Total_Exercice <> 0 ALORS // SAI_Ratio_Formateur = (SAI_Cout_Total_Formateur / SAI_Total_Exercice) * 100 // SAI_Ratio_FormateurActualise = (SAI_Cout_Total_Formateur_Actualise / SAI_Total_Exercice) * 100 // //SINON // SAI_Ratio_Formateur = 0 // .txt_ratio.Text = 0 // SAI_Ratio_FormateurActualise = 0 // .txt_ratio_actualise.Text = 0 //FIN <FIN> ///////////////////////////////// // Calcul des Heures Produites // ///////////////////////////////// <BLOC Heures Produites> // Valeur h //#CestQuoi Valeur h --> Heures Produites SI REQ_LitDonneeCalculAction.constante_nb_heures_stage <> 0 ET nDuree <> 0 ALORS Val_e = ((_Total_UO_Entreprise_Prevision * (REQ_LitDonneeCalculAction.constante_nb_heures_suivi * REQ_LitDonneeCalculAction.constante_coef)) / REQ_LitDonneeCalculAction.constante_nb_heures_stage) / nDuree SINON Val_e = 0 FIN SI nDuree <> 0 ALORS Val_c = _Total_UO_Centre / nDuree SINON Val_c = 0 FIN Unite = Val_e + Val_c BudgetTotal = 0 //#AFaire fonction --> Calcul_Budget_HeureProduite_Exercice(SAI_DateDebut, SAI_DateFin, Unite) POUR nNumMois = 1 À 12 SI REQ_LitDonneeCalculAction.action_date_debut > ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) OU ... REQ_LitDonneeCalculAction.action_date_fin < ChaîneVersDate("01/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) ALORS // Si Date de Début est supérieur au dernier jour du mois OU si Date de Fin est inférieur au 1er du mois BudgetTotal = BudgetTotal + 0 BudgetMois1[nNumMois] = 0 SINON SI REQ_LitDonneeCalculAction.action_date_debut < ChaîneVersDate("01/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) THEN //SI Date Début est inférieur au 1er du mois SI REQ_LitDonneeCalculAction.action_date_fin > ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) ALORS // Si Date de fin est supérieur à la fin du mois SI nNumMois = 8 ALORS // Si le mois d'août SI REQ_LitDonneeCalculAction.action_saisonnalite = Faux ALORS // S'il y a de la saisonnalité BudgetTotal = BudgetTotal + (4 * Unite) BudgetMois1[nNumMois] = (4 * Unite) SINON // S'il n'y à pas de saisonnalité (Mois complet) BudgetTotal = BudgetTotal + (Val(FDMois[nNumMois]) * Unite) BudgetMois1[nNumMois] = (Val(FDMois[nNumMois]) * Unite) FIN SINON // Pour les autres mois (Mois complet) BudgetTotal = BudgetTotal + (Val(FDMois[nNumMois]) * Unite) BudgetMois1[nNumMois] = (Val(FDMois[nNumMois]) * Unite) FIN SINON //Si la date de fin est comprise dans le mois (Mois complet) BudgetTotal = BudgetTotal + (Val(FDMois[nNumMois]) * Unite) BudgetMois1[nNumMois] = (Val(FDMois[nNumMois]) * Unite) FIN SINON //SI Date Début est supérieur ou égale au 1er du mois SI REQ_LitDonneeCalculAction.action_date_fin > ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee) ALORS //#AVerifier le ">=" car il devrait-être juste ">" // IF .txt_date_fin >= CDate(Trim(str(les_mois(I - 1))) & "/" & Trim(str(I)) & "/" & Trim(str(.txt_exercice))) THEN // Si Date de Fin est supérieur ou égale à la fin du mois //#AVerifier le calcul des Dates BudgetTotal = BudgetTotal + ((DateDifférence(REQ_LitDonneeCalculAction.action_date_debut, ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee)) + 1) * Unite) BudgetMois1[nNumMois] = ((DateDifférence(REQ_LitDonneeCalculAction.action_date_debut, ChaîneVersDate(FDMois[nNumMois] + "/" + NumériqueVersChaîne(nNumMois, "02d") + "/" + sAnnee)) + 1) * Unite) SINON // Si Date de Fin est inférieur à la fin de mois //#AVerifier le calcul des Dates BudgetTotal = BudgetTotal + (DateDifférence(REQ_LitDonneeCalculAction.action_date_fin, REQ_LitDonneeCalculAction.action_date_fin) + 1) * Unite //#Verifier les résultats si ont applique à la place (Valeur = Valeur + ((.txt_date_fin) - (.txt_date_fin) + 1) * unite) // // Valeur = Valeur + ((.txt_date_fin) - (.txt_date_fin) + 1) * Unite BudgetMois1[nNumMois] = (DateDifférence(REQ_LitDonneeCalculAction.action_date_fin, REQ_LitDonneeCalculAction.action_date_fin) + 1) * Unite //#Verifier les résultats si ont applique à la place (mois2(I - 1) = ((.txt_date_fin) - (.txt_date_fin) + 1) * unite) // mois1(I - 1) = ((.txt_date_fin) - (.txt_date_fin) + 1) * Unite FIN FIN FIN SI BudgetMois1[nNumMois] ALORS TraceT(nIDAction + " / BudgetMois1[" + nNumMois + "] : " + BudgetMois1[nNumMois]) _BudgetMois1_Cum[nNumMois] = _BudgetMois1_Cum[nNumMois] + BudgetMois1[nNumMois] SI _BudgetMois1_Cum[nNumMois] ALORS TraceT(nIDAction + " / _BudgetMois1_Cum[" + nNumMois + "] : " + _BudgetMois1_Cum[nNumMois]) FIN BudgetMois1[nNumMois] = BudgetTotal // mois1(12) = Valeur SI BudgetMois1[nNumMois] ALORS TraceT(nIDAction + " / BudgetMois1[" + nNumMois + "] : " + BudgetMois1[nNumMois]) _BudgetMois1_Cum[nNumMois] = _BudgetMois1_Cum[nNumMois] + BudgetTotal SI _BudgetMois1_Cum[nNumMois] ALORS TraceT(nIDAction + " / _BudgetMois1_Cum[" + nNumMois + "] : " + _BudgetMois1_Cum[nNumMois]) //Fin Fonction Calcul_Budget_HeureProduite_Exercice avec une valeur de retour BudgetTotal <FIN> ///////////////////////////////////// // Calcul des Charges du Personnel // ///////////////////////////////////// <BLOC Charges Personnels> // Valeur cp //#CestQuoi CP ?? --> Charges du Personnel Unite = _Total_Formateur BudgetTotal = 0 //#AFaire fonction --> Calcul_Budget_ChargePersonnel_Exercice(SAI_DateDebut, SAI_DateFin, Unite) //Début Fonction Calcul_Budget_ChargePersonnel_Exercice POUR nNumMois = 1 À 12 SI _Total_Exercice <> 0 ALORS SI BudgetMois1[13] <> 0 ALORS BudgetTotal = BudgetTotal + (_Total_Formateur * BudgetMois1[nNumMois]) / BudgetMois1[13] BudgetMois3[nNumMois] = (_Total_Formateur * BudgetMois1[nNumMois]) / BudgetMois1[13] SINON BudgetTotal = BudgetTotal + 0 BudgetMois3[nNumMois] = 0 FIN SINON BudgetTotal = BudgetTotal + 0 BudgetMois3[nNumMois] = 0 FIN SI BudgetMois3[nNumMois] ALORS TraceT(nIDAction + " / BudgetMois3[" + nNumMois + "] : " + BudgetMois3[nNumMois]) _BudgetMois3_Cum[nNumMois] = _BudgetMois3_Cum[nNumMois] + BudgetMois3[nNumMois] SI _BudgetMois3_Cum[nNumMois] ALORS TraceT(nIDAction + " / _BudgetMois3_Cum[" + nNumMois + "] : " + _BudgetMois3_Cum[nNumMois]) FIN BudgetMois3[nNumMois] = BudgetTotal _BudgetMois3_Cum[nNumMois] = _BudgetMois3_Cum[nNumMois] + BudgetTotal //Fin Fonction Calcul_Budget_ChargePersonnel_Exercice avec une valeur de retour BudgetTotal <FIN> // Lit l'enregistrement suivant REQ_LitDonneeCalculAction.LitSuivant(action_idaction) FIN //////////////////////////////////////////////////////// // Affichage des Totaux cellule Totalisation Générale // //////////////////////////////////////////////////////// <BLOC Totaux> SI bTypeRetour = gbRetourAffichage ALORS // Affichage des données dans la cellule Totalisation Générale SAI_Action_Total = _Total_Cum //#Affichage cellule Totalisation générale "Montant Total" => SAI_Action_Total SAI_Action_Total_Exercice = _Total_Exercice_Cum //#Affichage cellule Totalisation générale "Total Sur Exercice" => SAI_Action_Total_Exercice SAI_Action_Total_Prevision = _Total_Prevision_Cum //#Affichage cellule Totalisation générale "Montant Total Prévu" => SAI_Action_Total_Prevision SAI_Action_Total_IntervennantExterieur = _Total_IntervennantExterieur_Cum //#Affichage cellule Totalisation générale "Intervenant Extérieur" => SAI_Action_Total_IntervenantExterieur SAI_Action_Total_AutreCharge = _Total_AutreCharge_Cum //#Affichage cellule Totalisation générale "Autres Charges" => SAI_Action_Total_AutreCharge FIN <FIN> ////////////////////////////////////////////////////////// // Calcul et Affichage des Ratios cellule Ratio Général // ////////////////////////////////////////////////////////// <BLOC Ratios> SI _Total_Exercice_Cum <> 0 ALORS // -- Charges / CA _Ratio_MasseSalariale_CA = (_Cout_Total_Formateur_Cum / _Total_Exercice_Cum) * 100 //Ancien SAI_Ratio_Charges_CA //#Affichage Ratio Général "Masse Sal. / CA" => SAI_Action_Ratio_MasseSalariale_CA // -- Total salaires : Cout formateur + Intervenants Extérieurs / chiffre d'affaire _Ratio_Total_Salaire = ((_Cout_Total_Formateur_Cum + _Total_IntervennantExterieur_Cum) / _Total_Exercice_Cum) * 100 //#Affichage Ratio Général "Total Salaire" => SAI_Action_Ratio_Total_Salaire // -- Global : (Coût formateur + intervenant extérieur + charge) / chiffre d'affaire _Ratio_Charge = ((_Cout_Total_Formateur_Cum + _Total_IntervennantExterieur_Cum + _Total_AutreCharge_Cum) / _Total_Exercice_Cum) * 100 //Ancien SAI_Ratio_Global //#Affichage Ratio Général "Charges" => SAI_Action_Ratio_Charge // -- Rentabilité : Total Produit – Total Charge / Total Produit _Ratio_Rentabilité = ((_Total_Exercice_Cum - (_Cout_Total_Formateur_Cum + _Total_IntervennantExterieur_Cum + _Total_AutreCharge_Cum)) / _Total_Exercice_Cum) * 100 //#Affichage Ratio Général "Rentabilité" => SAI_Action_Ratio_Rentabilité ELSE _Ratio_MasseSalariale_CA = 0 _Ratio_Total_Salaire = 0 _Ratio_Charge = 0 _Ratio_Rentabilité = 0 END SI bTypeRetour = gbRetourAffichage ALORS // -- Charges / CA SAI_Action_Ratio_MasseSalariale_CA = _Ratio_MasseSalariale_CA //Ancien SAI_Ratio_Charges_CA //#Affichage Ratio Général "Masse Sal. / CA" => SAI_Action_Ratio_MasseSalariale_CA // -- Total salaires : Cout formateur + Intervenants Extérieurs / chiffre d'affaire SAI_Action_Ratio_Total_Salaire = _Ratio_Total_Salaire //#Affichage Ratio Général "Total Salaire" => SAI_Action_Ratio_Total_Salaire // -- Global : (Coût formateur + intervenant extérieur + charge) / chiffre d'affaire SAI_Action_Ratio_Charge = _Ratio_Charge //Ancien SAI_Ratio_Global //#Affichage Ratio Général "Charges" => SAI_Action_Ratio_Charge // -- Rentabilité : Total Produit – Total Charge / Total Produit SAI_Action_Ratio_Rentabilité = _Ratio_Rentabilité //#Affichage Ratio Général "Rentabilité" => SAI_Action_Ratio_Rentabilité FIN <FIN> FIN //Fin // Retour de la fonction SI nIDAction > 0 ALORS SI bTypeRetour = gbRetourParametre ALORS RENVOYER ( _Total_Cum, ... _Total_Exercice_Cum, ... _Total_Prevision_Cum, ... _Total_IntervennantExterieur_Cum, ... _Total_AutreCharge_Cum, ... _Ratio_MasseSalariale_CA, ... _Ratio_Total_Salaire, ... _Ratio_Charge, ... _Ratio_Rentabilité,... _BudgetMois2_Cum, ... // --> Budget ?? _BudgetMois1_Cum, ... // --> Heure Produite Personnel ?? _BudgetMois3_Cum // --> Charge Personnel ?? ) FIN FIN
Editor is loading...
Leave a Comment