1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| PROCEDURE CoutFabrication(LOCAL aid est un entier, LOCAL op est un entier)
Rs est une Source de Données
Rs2 est une Source de Données
Sql est une chaîne
cout_op est un numérique
cadence_op est un numérique
nom_atelier est une chaîne
taux_atelier est un numérique
cout_enfants est un numérique
cout_fab est un numérique
cout_composants est un numérique
cout_apres_op est un numérique
// ON VA CHERCHER L'ATELIER DE L'OP, LE COUT ...
Sql = "SELECT * FROM gam, atl WHERE gam_article = " + aid + " AND gam_op = " + op + " AND gam_atelier = atl_id"
SI PAS HExécuteRequêteSQL(Rs,Cnx,hRequêteDéfaut ,Sql) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
RENVOYER -1
FIN
SI HLitPremier(Rs) ALORS
cout_op = Rs.gam_cout
cadence_op = Rs.gam_cadence
nom_atelier = Rs.atl_nom
taux_atelier = Rs.atl_taux
FIN
// on prend la gamme de l'article est on descend l'arbre progressivement jusqu'aux feuilles (op initiales)
Sql = "SELECT * FROM gam, atl WHERE gam_article = " + aid + " AND gam_op_suivante = " + op + " AND gam_atelier = atl_id"
SI PAS HExécuteRequêteSQL(Rs,Cnx,hRequêteDéfaut ,Sql) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
RENVOYER -1
FIN
cout_enfants = 0
HLitPremier(Rs)
TANTQUE PAS HEnDehors(Rs)
cout_enfants = cout_enfants + CoutFabrication(aid, Rs.gam_op)
HLitSuivant(Rs)
FIN
SI op <> 0 ALORS
// DANS TOUS LES CAS ON CALCULE LE COUT DE FABRICATION, LE COUT EN COMPOSANTS
// CALCUL DU COUT DE FABRICATION
SI nom_atelier = "STRAITANCE" ALORS
cout_fab = cout_op
SINON
cout_fab = taux_atelier / cadence_op
FIN
Info(cout_fab)
// COUT DES COMPOSANTS
Sql = "SELECT * FROM nmcl, art WHERE nmcl_article = " + aid + " AND nmcl_op = " + op + " AND nmcl_fourniture = art_id"
SI PAS HExécuteRequêteSQL(Rs2,Cnx,hRequêteDéfaut ,Sql) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
RENVOYER -1
FIN
HLitPremier(Rs)
TANTQUE PAS HEnDehors(Rs2)
cout_composants = cout_composants + Rs2.art_prix_revient
HLitSuivant(Rs2)
FIN
cout_apres_op = cout_enfants + cout_fab + cout_composants
Sql = "UPDATE gam SET gam_cout_avant_op = " + cout_enfants + ", gam_cout_apres_op = " + cout_apres_op + " WHERE gam_article = " + aid + " AND gam_op = " + op
SI PAS HExécuteRequêteSQL(Rs2,Cnx,hRequêteDéfaut ,Sql) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
RENVOYER -1
FIN
FIN
RENVOYER cout_apres_op |
Partager