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 85 86 87 88 89 90 91
| PROCEDURE coutDeRevient(aid est un entier, op est un entier)
Sql est une chaîne
Rs est une Source de Données
Rs2 est une Source de Données
cout_avant_op est un numérique
cout_op est un numérique
cout_apres_op est un numérique
cout_fournitures est un numérique
// on distribue sur les OP qui précedent celle donnée en paramètre (op)
cout_avant_op = 0
Sql = "SELECT * FROM gam, atl WHERE gam_article = " + aid + " AND gam_op_suivante = " + op + " AND gam_atelier = atl_id"
Rs += DonneIdentifiant()
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 "ERREUR DANS PROCEDURE verifierGamme"
FIN
SI HLitPremier(Rs) ALORS
// sommes des couts des op qui précèdent (qui pointe directement vers l'op)
TANTQUE PAS HEnDehors(Rs)
cout_avant_op = cout_avant_op + coutDeRevient(aid, Val(Rs.gam_op))
//trace(OP + " " + cout_avant_op)
HLitSuivant(Rs)
FIN
FIN
HLibèreRequête(Rs)
SI op = 0 ALORS
// UPDATE DU PRIX DE REVIENT DE L'ARTICLE
Sql = "UPDATE art SET art_prix_revient = " + cout_avant_op + " WHERE art_id = " + aid
SI PAS HExécuteRequêteSQL("Update",Cnx,hRequêteDéfaut ,Sql) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
FIN
// et on renvoye le cout
RENVOYER cout_avant_op
FIN
Sql = "SELECT * FROM gam, atl WHERE gam_article = " + aid + " AND gam_op = " + op + " AND gam_atelier = atl_id"
Rs += DonneIdentifiant()
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 "ERREUR DANS PROCEDURE verifierGamme"
FIN
SI HLitPremier(Rs) ALORS
SI Rs.gam_atelier = 1 ALORS
//straitance
cout_op = Rs.gam_cout
SINON
// cadence interne
cout_op = Rs.atl_taux / Rs.gam_cadence
FIN
cout_fournitures = 0
Sql = "SELECT * FROM nmcl, art WHERE nmcl_article = " + aid + " AND nmcl_op = " + op + " AND nmcl_fourniture = art_id"
//trace(Sql)
Rs2 += DonneIdentifiant()
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 "ERREUR DANS PROCEDURE verifierGamme"
FIN
SI HLitPremier(Rs2) ALORS
TANTQUE PAS HEnDehors(Rs2)
//trace(Rs2.art_reference + " " + Rs2.nmcl_qte_lien + " x " + Rs2.art_prix_revient)
cout_fournitures = cout_fournitures + (Rs2.nmcl_qte_lien * Rs2.art_prix_revient)
HLitSuivant(Rs2)
FIN
FIN
cout_op = cout_op + cout_fournitures
cout_apres_op = cout_avant_op + cout_op
HLibèreRequête(Rs2)
// met à jour les infos dans la gamme
Sql = "UPDATE gam SET gam_cout_avant_op = " + cout_avant_op + ", gam_cout_op = " + cout_op + ", gam_cout_apres_op = " + cout_apres_op + " WHERE gam_article = " + aid + " AND gam_op = " + op
SI PAS HExécuteRequêteSQL("Update",Cnx,hRequêteDéfaut ,Sql) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()+ RC + RC + Sql)
FIN
FIN
HLibèreRequête(Rs)
RENVOYER cout_apres_op |
Partager