PCS ??????????????????????????????????????Hd????????????????????????R¥ÒS R,Ò3 Ò? ÒèÒ¢ ÒxÒ8Ò¸ÒÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿô++ÿÿÿÿÿÿÿÿYö REMISE SALARIE SUR PROMO5nt("FICHE_CAISSE_1024.table_article",trtAffichageLigne) IN  Äëë R2&able_article["+xIndiceTRACT202507+"].PRIX_TTC",indChamp} = nTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp}*nTRACT202507,2) {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].nota",indChamp} = sCodePromoTRACT202507 xOccurenceTRACT202507 = 0 //Trace("xOccurenceTRACT2025072 : " + xOccurenceTRACT202507) SINON {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TTC",indChamp} = nTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp}*nTRACT202507,2) {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].nota",indChamp} = sCodePromoTRACT202507 xOccurenceTRACT202507 -= {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} //Trace("xOccurenceTRACT2025073 : " + xOccurenceTRACT202507) FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN FIN FIN //Trace("xAjoutTRACT202507 : " + xAjoutTRACT202507) SI xAjoutTRACT202507 > 0 ALORS sIdartAjoutTRACT202507 est une chaîne nQteAjoutTRACT202507 est un numérique POUR TOUT ELEMENT nQteAjoutTRACT202507, sIdartAjoutTRACT202507 DE taListeIAjoutTRACT202507 HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutTRACT202507) SI HTrouve({"ART Ò& 0Ü jSI DateDuJour >= "20250501" and DateDuJour <= "20250514" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100508,100900,101851,101962,102133,108551,110365,110623,120016,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250515" and DateDuJour <= "20250528" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100508,100900,101851,101962,102133,108551,110365,110623,120016,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250529" and DateDuJour <= "20250615" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100508,100900,101962,102133,108551,110365,110623,120016,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) e ÄëëÒF -£he_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTF {"Fiche_caisse_1024.taäëëÒ1¸ æsTxtSql_50Pan est une chaîne sTxtSql_50Pan = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100803,100804,100805) ] sTxtSql_50Pan = ChaîneConstruit(sTxtSql_50Pan) execute("ExecutionRequetePreRequis", RyƒR"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOP SI bSalarieOP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} SI fFichierExiste("KeziaII.ini") = Faux ALORS //Trace("Pas KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.EligibleTR",indRubrique} Ò­¶ÒindChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"Ò* 1Ü OP VOLUME 01-03 2025PTEMBRE 2025e avec remise") fichageLigne) partir de 15 €ð} R±ºRmp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} SI fFichierExiste("KeziaII.ini") = Faux ALORS //Trace("Pas KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.EligibleTR",indRubrique} SINON //Trace("KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.TIMBRE",indRubrique} FIN nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSEÒ1 8Ü TRACT1 JUIN 20252025OOLFICHE_CAISSE_1024.table_article",trtAffichageLigne) IN FIN  Äëë RkU& SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbLigneTract1 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbLigneTract1 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneTract1 est une chaîne nQteAjoutLigneTract1 est un numérique POUR TOUT ELEMENT nQteAjoutLigneTract1, sIdartAjoutLigneTract1 DE taListeIDartAjoutLigneTract1 //Trace("nQteAjoutLigneTract1 : " + nQteAjoutLigneTract1 + " / sIdartAjoutLigneTract1 : " + sIdartAjoutLigneTract1) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneTract1) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneTract1 : " + sIdartAjoutLigneTract1) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.t äëë R ö= >SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF POISSON1 202507") nRemiseTF est un numérique sCodePromoTF est une chaîne sCodePromoTF = "TF_POISSON1_202507" nRemiseTF = 15.00 SI {"gnSITE",indvariable} IN(2,16,26,41,44,45,49,53,54,55,56,59,60,64,73,74,82,86,91,93,95,97,99,101,104,112,114,115,119,120,122,132,134,136,149,167,173,178,180,187,194,195,198,201,205,207,217,224,229,232,236,237,240,243,244,247,248,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTF _ET_ {"FicÔÛÛÿÿÿÿÿÿÿÿº×he_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN FIN FIN quetePreRequis",ô''ÿÿÿÿÿÿÿÿQö TRACT 2 JUILLET 2025_1024.table_article",trtAffichageLigne) FIN rtAffichageLigne) ÄëëÒG .¤e.COL_PROMO",indChamp} = 1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI SAI_TOTAL = 31 A 34.99 ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromo_AI ALORS bDeja_Fait_AI = Vrai FIN FIN SI bDeja_Fait_AI = Faux ALORS ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Valeur manquante xDiÒm uÛ ßsTxtSql_50Pan est une chaîne sTxtSql_50Pan = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(108001,108018) ] sTxtSql_50Pan = ChaîneConstruit(sTxtSql_50Pan) execute("ExecutionRequetePreRequis",sTxtSqlÒ°·Ò TRACT3 JUIN 2025equis",sTxtSql_OP) FINne) table_article",trtAffichageLigne) RoxRhamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTI ÒFOÒhe_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTF {"Fiche_caisse_1024.taÔuuÿÿÿÿÿÿÿÿîÖamp} = sCodePromoTF FIN FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN remise") ecute("fct_MAJ_SAI_Totaux_DepuisTable_Article") SINON ExécuteTraitement("FICHE_CAISSE_1024.table_articläëëÒ¡ †Á ÚsTxtSql_TF est une chaîne sTxtSql_TF = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN (100507,110301,110302) ] sTxtSql_TF = ChaîneConstruit(sTxtSql_TF) execute("ExecutionRequetePreRequis",sTxtSql_TF)ô33ÿÿÿÿÿÿÿÿiö OP VOLUME JUILLET-SEPTEMBRE 2025table_article",indChamp}..AffichageActif = Vrai ÿÿÿäëëR0 B èsTxtSql_RSP est une chaîne sTxtSql_RSP = [ SELECT IDART,CODE,PRIX_TTC FROM ARTICLE WHERE sysdate BETWEEN DEBUT_PROMO AND FIN_PROMO ] sTxtSql_RSP = ChaîneConstruit(sTxtSql_RSP) execute("ExecutionRequetePreRequisÔÿÿÿÿÿÿÿÿÖsTxtSql_50Pan)TF APERO BIERE JUILLET 2025Sql_OP) FINgne) ajout ligne avec remise") ai = Vrai ÄëëR% ICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutTRACT202507 : " + nQteAjoutTRACT202507) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutTRACT202507 SI bSalarieTRACT202507 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutTRACT202507*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fic Äëë Òøå¾sse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 = 0 bCalculRemiseTF202507 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025073 : " + xNbNoRemiseTF202507) //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemiseTF202507 = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemiseTF202507 = Vrai _ET_ xNbRemiseTF202507 > 0 ALORS //Trace("xNbRemiseTF2025071 : " + xNbRemiseTF202507) //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} SI bSalarieTF202507 = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 0 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 0 xNbRemiseTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN // nMontantRemiseTF202507 // AJOUT DES LIGNES REMISEES sIdartAjoutOffertTF202507 est une chaîne nQteAjoutOffertTF202507 est un numérique POUR TOUT ELEMENT nQteAjoutOffertTF202507, sIdartAjoutOffertTF202507 DE taListeIDartAjoutLigneOffertTF202507 //Trace("nQteAjoutOffertTF202507 : " + nQteAjoutOffertTF202507 + " / sIdartAjoutOffertTF202507 : " + sIdartAjoutOffertTF202507) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertTF202507) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertTF202507 {"Fiche_caisse_1024.table_article.remise",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoTF202507 {"Fiche_caisse_1024.table_article",indChaô..ÿÿÿÿÿÿÿÿ_ö TF APERO BIERE JUILLET 2025 2025ESSIBLEcle",indChamp}..AffichageActif = Vrai FIN Ò´½Ò1 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/1 Ò¸ÄÖ1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 = 0 bCalculRemiseTF202507 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025073 : " + xNbNoRemiseTF202507) //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemiseTF202507 = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemiseTF202507 = Vrai _ET_ xNbRemiseTF202507 > 0 ALORS //Trace("xNbRemiseTF2025071 : " + xNbRemiseTF202507) //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} SI bSalarieTF202507 = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 0 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 0 xNbRemiseTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN // nMontantRemiseTF202507 // AJOUT DES LIGNES REMISEES sIdartAjoutOffertTF202507 est une chaîne nQteAjoutOffertTF202507 est un numérique POUR TOUT ELEMENT nQteAjoutOffertTF202507, sIdartAjoutOffertTF202507 DE taListeIDartAjoutLigneOffertTF202507 //Trace("nQteAjoutOffertTF202507 : " + nQteAjoutOffertTF202507 + " / sIdartAjoutOffertTF202507 : " + sIdartAjoutOffertTF202507) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertTF202507) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertTF202507 {"Fiche_caisse_1024.table_article.remise",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoTF202507 {"Fiche_caisse_1024.table_article",indChamp}.Rx €[00)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.TIMBRE",indRubrique} ExécuteTraitement("FICHE_CAISSEÒQ YÜ_1024.table_article",trtAffichageLigne) nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") ndChamp} = {"ARTICLE.TIMBRE",indRubrique} ExécuteTraitement("FICHE_CAISSE_1024.table_artÿÿÿÿÿÿÿÿ OP VOLUME JUILLET-SEPTEMBRE 2025table_article",indChamp}..AffichageActif = Vrai ÿÿ äëë ÒI 6à YSI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TRACT3 JUILLET 2025") xNombreTRACT202507, xOccurenceTRACT202507, xIndiceTRACT202507, xAjoutTRACT202507 est un entier nTRACT202507 est un numérique sCodePromoTRACT202507 est une chaîne bTestTRACT202507, bSalarieTRACT202507, bTestMag est un booléen STListeArticleTRACT202507 est une Structure xIndiceLigneTRACT202507 est un entier xQteTRACT202507 est un entier FIN sCodePromoTRACT202507 = "202507_TRACT3" nTRACT202507 = 3.00 bTestTRACT202507 = Faux bSalarieTRACT202507 = Faux bTestMag = Vrai xAjoutTRACT202507 = 0 taListeIAjoutTRACT202507 est un tableau associatif de numérique taListeArticleTRACT202507 est un tableau de STListeArticleTRACT202507 UnArticleTRACT202507 est un STListeArticleTRACT202507 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110632 //Trace("IndiceTRACT202507 : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticleTRACT202507.xIndiceLigneTRACT202507 = {"Fiche_caisse_1024.table_article",indChamp} UnArticleTRACT202507.xQteTRACT202507 = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticleTRACT202507,UnArticleTRACT202507) xNombreTRACT202507 += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombreTRACT202507 : " + xNombreTRACT202507) SI xNombreTRACT202507 >= 2 ALORS xOccurenceTRACT202507 = PartieEntiere(xNombreTRACT202507/2) * 2 //Trace("xOccurenceTRACT202507 : " + xOccurenceTRACT202507) //Trace("xOccurenceTRACT2025070 : " + xOccurenceTRACT202507) POUR TOUT ELEMENT UnArticleTRACT202507 DE taListeArticleTRACT202507 xIndiceTRACT202507 = UnArticleTRACT202507.xIndiceLigneTRACT202507 //Trace("xIndiceTRACT202507 : " + xIndiceTRACT202507) SI xOccurenceTRACT202507 > 0 SI {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} > xOccurenceTRACT202507 xAjoutTRACT202507 = {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} - xOccurenceTRACT202507 taListeIAjoutTRACT202507[{"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].IDART",indChamp}] += xAjoutTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} = xOccurenceTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TTC",indChamp} = nTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp}*nTRACT202507,2) {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].nota",indChamp} = sCodePromoTRACT202507 xOccurenceTRACT202507 -= 2 //Trace("xOccurenceTRACT2025071 : " + xOccurenceTRACT202507) SINON SI {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} = xOccurenceTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TTC",indChamp} = nTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TOTAL",indChamp} = ÄëëÒ$ £able_article.qte",indChamp} = nQteAjoutLigneTract1 SI bSalarieTract1 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_ ÄëëR.romoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTF {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indCh R}†Rche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} SI fFichierExiste("KeziaII.ini") = Faux ALORS //Trace("Pas KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.EligibleTR",indRubrique} Execute("fct_MAJ_SAI_Totaux_DepuisTable_Article") SINON //Trace("KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.TIMBRE",indRubrique} FIN nNombreLigneEnC R RDART", sIdartAjoutLigne50Pan) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigne50Pan : " + sIdartAjoutLigne50Pan) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigne50Pan SI bSalarie50Pan = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC", ÿÿÿÿÿÿÿÿier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOP SI bSalarieOP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fi RuRiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOP SI bSalarieOP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} SI fFichierExiste("KeziaII.ini") = Faux ALORS //Trace("Pas KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.EligibleTR",indRubrique} E ÒÒxecute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250616" and DateDuJour <= "20250630" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100508,100900,101851,101962,102133,108551,110365,110623,120016,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FINse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN ÒR ZÜ ásTxtSql_TF est une chaîne sTxtSql_TF = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN (100507,100508,110301,110302) ] sTxtSql_TF = ChaîneConstruit(sTxtSql_TF) execute("ExecutionRequetePreRequis",sTxt Ò™ ¤Û.AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneTF202507 est une chaîne nQteAjoutLigneTF202507 est un numérique POUR TOUT ELEMENT nQteAjoutLigneTF202507, sIdartAjoutLigneTF202507 DE taListeIDartAjoutLigneTF202507 //Trace("nQteAjoutLigneTF202507 : " + nQteAjoutLigneTF202507 + " / sIdartAjoutLigneTF202507 : " + sIdartAjoutLigneTF202507) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneTF202507) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneTF202507 : " + sIdartAjoutLigneTF202507) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneTF202507 SI bSalarieTF202507 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN ) FIN IX_TOTAL",indChamp} = ROUND({"Fiche_caisse_102 ÒØäÚ (SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TRACT1 202506") xCompteurTract1 est un entier xNbRemiseTract1, nPvTract1 est un numérique taListeIndiceTract1 est un tableau associatif de numérique taListeIDartAjoutLigneTract1 est un tableau associatif de numérique sCodePromoTract1, sIdentifiantTract1 est une chaîne xNbLigneTract1 est un entier bSalarieTract1, bTestMag est un booléen sCodePromoTract1="TRACT1_202506" sIdentifiantTract1="BLOQUE_TRACT1_202506" xNbLigneTract1 = 0 nPvTract1 = 3.00 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") xCompteurTract1 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTract1[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteurTract1 >= 2 ALORS Trie(taListeIndiceTract1,ttCroissant) xNbLigneTract1 = PartieEntiere(xCompteurTract1/2)*2 xNbRemiseTract1 = xCompteurTract1 - xNbLigneTract1 //Trace("xNbLigneTract1 : " + xNbLigneTract1 + " / xNbRemiseTract1 : " + xNbRemiseTract1) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceTract1 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbLigneTract1_Avant : " + xNbLigneTract1) SI xNbLigneTract1 > 0 ALORS //Trace("xNbLigneTract12 : " + xNbLigneTract1) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbLigneTract1 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract1 xNbLigneTract1 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbLigneTract1 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneTract1[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbLigneTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbLigneTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbLigneTract1 = 0 Ô’’ÿÿÿÿÿÿÿÿ)Ùxecute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250807" and DateDuJour <= "20250930" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100162,100508,101851,101962,102133,106835,108124,108551,110365,110623,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FINrai ALORS SI {"Fiche_caisse_1024.table_article.remise",indChamp} < xMontantRemise ALOô''ÿÿÿÿÿÿÿÿQö TRACT 3 JUILLET 2025s",sTxtSql_OP) FINchageActif = Vrai et)) RETOUR FIN FIN äëë Ò&Æ  SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("ANTI INFLATION 202506") xMontantRemise_AI, xDiff_AI, xControle_AI est un numérique sCodePromo_AI, sMessageDiff_AI est une chaîne bTest_AI, bDeja_Fait_AI est un booléen xMontantRemise_AI = 15.00 sCodePromo_AI = "OP_ANTI_INF_STG_202507" bTest_AI = Faux bDeja_Fait_AI = Faux xControle_AI = 35 xDiff_AI = 0 SI {"gnSITE",indvariable} IN (136) ALORS bTest_AI = Vrai FIN SI bTest_AI = Vrai ALORS SI SAI_TOTAL >= xControle_AI ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} HLitRecherche("Article","IDART",{"Fiche_caisse_1024.table_article.idart",indChamp}) SI HTrouve(Article) _ET_ PAS Article.IDRAY DANS (11,112) ALORS //Trace("Trouve Article Anti inflation :" + {"Fiche_caisse_1024.table_article",indChamp} + " / " + ARTICLE.CODE) //Trace("Remise :" + {"Fiche_caisse_1024.table_article",indChamp} + " / " + ARTICLE.CODE + " / " + {"Fiche_caisse_1024.table_article.remise",indChamp}) SI {"Fiche_caisse_1024.table_article.remise",indChamp} < xMontantRemise_AI _ET_ {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp}=0 ALORS //Trace("Trouve Article Anti inflation2 :" + {"Fiche_caisse_1024.table_article",indChamp} + " / " + ARTICLE.CODE) {"Fiche_caisse_1024.table_article.remise",indChamp} = xMontantRemise_AI {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromo_AI //{"Fiche_caisse_1024.table_articlô//ÿÿÿÿÿÿÿÿaö OP ANTI INFLATION ST GRATIEN024.table_article",indChamp}..AffichageActif = Vrai N ÒZaÒ TF BIS FRAIS JUIN 2025LLET 2025 vec remise") mplet)) RETOUR FIN ÿÿÿÿÀ|-@®Ôÿÿÿÿÿÿÿÿ$×table_article.nota",indChamp} = sCodePromoTF FIN FIN FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN 5) ] sTxtSql_50Pan = ChaîneConstruit(sTxtSql_50Pan) execute("ExecutionRequetePreRequis",ô22ÿÿÿÿÿÿÿÿgö CONSERVE POISSON 2 JUILLET 2025xecute("ExecutionRequetePreRequis",sTxtSql_TF) ð†D®R/ 6\Sql_TF) CONSERVE POISSON 1 JUILLET 2025trtAffichageLigne) ne)ÎH®à—ðH®ÿÿÿÿ<ÛT® äëëÒ/ Ð ëSI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("REMISE SALARIE SUR PROMO") nRemiseRSP est un numérique sCodePromoRSP est une chaîne bSalarieRSP est un booléen sCodePromoRSP = "REMISE_SALARIE_PROMO" nRemiseRSP = 30.00 SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieRSP = Vrai FIN FIN SI bSalarieRSP = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.nota",indChamp} = "" ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp} + " / PV : " + {"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis.PRIX_TTC",indVariable}) {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis.PRIX_TTC",indVariable} {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseRSP {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromoRSP FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAf R*3Raisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTF {"Fiche_caisse_1024.table_R‡RARTICLE.TIMBRE",indRubrique} ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") tement("FICHE_CAISSE_1024.table_artRo v[_50Pan)TRACT2 JUIN 2025) FIN t("FICHE_CAISSE_1024.table_article",trtAffichageLigne) ÿÿÿÿÿÿÿÿ) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS SI {"Fiche_caisse_1024.table_article.remise",indChamp} < xMontantRemise ALOÒH PÜble_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.ÔÿÿÿÿÿÿÿÿÖql_TF)TF BIS FRAIS JUIN 2025_TF) mplet)) RETOUR FIN trtAffichageLigne) ÿÿÿÿ@õõK® RRxecute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250616" and DateDuJour <= "20250630" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100508,100900,101851,101962,102133,108551,110365,110623,120016,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FINEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") oucle t ÔääÿÿÿÿÿÿÿÿÍÙbrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") xDiff_A ÒØåÒ £7SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF BOISSONS SANS ALCOOL 202505") xCompteurTF202505, xQteTestTF202505 est un entier nMontantRemiseTF202505, nMontantRemise_CumulPersoTF202505, xNbRemiseTF202505, xNbNoRemiseTF202505 est un numérique taListeIndiceTF202505 est un tableau associatif de numérique taListeIDartAjoutLigneOffertTF202505 est un tableau associatif de numérique taListeIDartAjoutLigneTF202505 est un tableau associatif de numérique sCodePromoTF202505, sIdentifiantTF202505 est une chaîne xNbOffertTF202505 est un entier bCalculNoRemiseTF202505, bCalculRemiseTF202505, bSalarieTF202505, bMagTF202505 est un booléen sCodePromoTF202505="TF_SANS_ALCOOL_202505" sIdentifiantTF202505="BLOQUE_SANS_ALCOOL_202505" xNbOffertTF202505 = 0 xNbNoRemiseTF202505 = 0 nMontantRemiseTF202505 = 100.00 bSalarieTF202505 = Faux bMagTF202505 = Vrai xQteTestTF202505=3 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") xCompteurTF202505 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTF202505[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteurTF202505 >= xQteTestTF202505 ALORS Trie(taListeIndiceTF202505,ttCroissant) xNbOffertTF202505 = PartieEntiere(xCompteurTF202505/xQteTestTF202505) //xNbNoRemiseTF202505 = xNbOffertTF202505 xNbNoRemiseTF202505 =(xQteTestTF202505 - 1) * xNbOffertTF202505 xNbRemiseTF202505 = xCompteurTF202505 - (xNbOffertTF202505 + xNbNoRemiseTF202505) //Trace("xNbOffertTF202505 : " + xNbOffertTF202505 + " / xNbNoRemiseTF202505 : " + xNbNoRemiseTF202505 + " / xNbRemiseTF202505 : " + xNbRemiseTF202505) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceTF202505 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertTF202505_Avant : " + xNbOffertTF202505) bCalculNoRemiseTF202505 = Vrai bCalculRemiseTF202505 = Vrai SI xNbOffertTF202505 > 0 //Trace("xNbOffertTF2025052 : " + xNbOffertTF202505) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertTF202505 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202505 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) //{"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202505 xNbOffertTF202505 = 0 bCalculNoRemiseTF202505 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertTF202505 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertTF202505[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertTF202505 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertTF202505 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertTF202505 = 0 bCalculNoRemiseTF202505 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertTF202505 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202505 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202505 xNbOffertTF202505 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseTF202505 = Faux FIN bCalculRemiseTF202505 = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseTF202505 : " + bCalculNoRemiseTF202505 + " / xNbNoRemiseTF202505 : " + xNbNoRemiseTF202505) SI bCalculNoRemiseTF202505 = Vrai _ET_ xNbNoRemiseTF202505 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202505 ALORS //Trace("xNbNoRemiseTF2025051 : " + xNbNoRemiseTF202505) //SI bSalarieTF202505 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202505 = 0 bCalculRemiseTF202505 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseTF202505 ALORS //Trace("xNbNoRemiseTF2025052 : " + xNbNoRemiseTF202505) taListeIDartAjoutLigneTF202505[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202505 xNbRemiseTF202505 -= ({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202505) {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202505 //SI bSalarieTF202505 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoR RH U[ ]&SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TRACT1 JUIN 2025") sCodePromo202505 est une chaîne bSalarie202505, bOffre, bTestMag est un booléen xQte100764, xQte100770, xQteOffre, xQteOffre100764, xQteOffre100770 est un entier xPV100764, xPV100770 est un numérique taListeIDartAjoutLigne100764 est un tableau associatif de numérique taListeIDartAjoutLigne100770 est un tableau associatif de numérique sCodePromo202505 = "202506_TRACT1" bSalarie202505 = Faux bTestMag = Vrai bOffre = Faux xPV100764 = 3.00 xPV100770 = 3.00 SI {"gnSITE",indvariable} IN (171) ALORS bTestMag = Faux FIN SI bTestMag = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai _ET_ {"Fiche_caisse_1024.table_article.nota",indChamp} <> sCodePromo202505 ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 100764 xQte100764 += {"Fiche_caisse_1024.table_article.QTE",indChamp} CAS 100770 xQte100770 += {"Fiche_caisse_1024.table_article.QTE",indChamp} FIN FIN FIN SI xQte100764>0 _ET_ xQte100770>0 ALORS bOffre = Vrai SI xQte100764 = xQte100770 ALORS xQteOffre = xQte100764 SINON SI xQte100764 > xQte100770 ALORS xQteOffre = xQte100770 SINON SI xQte100764 < xQte100770 ALORS xQteOffre = xQte100764 FIN FIN //Trace("bOffre : " + bOffre + " / xQteOffre : " + xQteOffre) FIN SI bOffre = Vrai ALORS xQteOffre100764 = xQteOffre xQteOffre100770 = xQteOffre SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie202505 = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai _ET_ {"Fiche_caisse_1024.table_article.nota",indChamp} <> sCodePromo202505 ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 100764 SI xQteOffre100764 > 0 ALORS SI {"Fiche_caisse_1024.table_article.QTE",indChamp} <= xQteOffre100764 ALORS {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = xPV100764 {"Fiche_caisse_1024.table_article.REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo202505 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 xQteOffre100764 -= {"Fiche_caisse_1024.table_article.QTE",indChamp} SINON SI {"Fiche_caisse_1024.table_article.QTE",indChamp} > xQteOffre100764 ALORS taListeIDartAjoutLigne100764[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} - xQteOffre100764 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = xPV100764 {"Fiche_caisse_1024.table_article.REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.QTE",indChamp} = xQteOffre100764 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo202505 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 xQteOffre100764 = 0 FIN FIN CAS 100770 SI xQteOffre100770 > 0 ALORS SI {"Fiche_caisse_1024.table_article.QTE",indChamp} <= xQteOffre100770 ALORS {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = xPV100770 {"Fiche_caisse_1024.table_article.REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo202505 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 xQteOffre100770 -= {"Fiche_caisse_1024.table_article.QTE",indChamp} SINON SI {"Fiche_caisse_1024.table_article.QTE",indChamp} > xQteOffre100770 ALORS taListeIDartAjoutLigne100770[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} - xQteOffre100770 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = xPV100770 {"Fiche_caisse_1024.table_article.REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.QTE",indChamp} = xQteOffre100770 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo202505 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 xQteOffre100770 = 0 FIN FIN AUTRE CAS //Trace("Autre cas") FIN FIN FIN // AJOUT DES LIGNES AVEC REMISE ACCEPTEE POUR 100764 sIdartAjoutLigne100764 est une chaîne nQteAjoutLigne100764 est un numérique POUR TOUT ELEMENT nQteAjoutLigne100764, sIdartAjoutLigne100764 DE taListeIDartAjoutLigne100764 //Trace("nQteAjoutLigne100764 : " + nQteAjoutLigne100764 + " / sIdartAjoutLigne100764 : " + sIdartAjoutLigne100764) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigne100764) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigne100764 : " + sIdartAjoutLigne100764) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigne100764 SI bSalarie202505 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.TIMBRE",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC REMISE ACCEPTEE POUR 100770 sIdartAjoutLigne100770 est une chaîne nQteAjoutLigne100770 est un numérique POUR TOUT ELEMENT nQteAjoutLigne100770, sIdartAjoutLigne100770 DE taListeIDartAjoutLigne100770 //Trace("nQteAjoutLigne100770 : " + nQteAjoutLigne100770 + " / sIdartAjoutLigne100770 : " + sI Ò¸ÅÒ 7(SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("DESTOCKAGE JUIN 2025") sCodePromo202505 est une chaîne bSalarie202505, bOffre, bTestMag est un booléen xQte110617, xQte110618, xQteOffre, xQteOffre110617, xQteOffre110618 est un entier xPV110617, xPV110618 est un numérique taListeIDartAjoutLigne110617 est un tableau associatif de numérique taListeIDartAjoutLigne110618 est un tableau associatif de numérique sCodePromo202505 = "202506_DESTOCKAGE" bSalarie202505 = Faux bTestMag = Vrai bOffre = Faux xPV110617 = 3.50 xPV110618 = 3.50 SI {"gnSITE",indvariable} IN (171) ALORS bTestMag = Faux FIN SI bTestMag = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai _ET_ {"Fiche_caisse_1024.table_article.nota",indChamp} <> sCodePromo202505 ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110617 xQte110617 += {"Fiche_caisse_1024.table_article.QTE",indChamp} CAS 110618 xQte110618 += {"Fiche_caisse_1024.table_article.QTE",indChamp} FIN FIN FIN SI xQte110617>0 _ET_ xQte110618>0 ALORS bOffre = Vrai SI xQte110617 = xQte110618 ALORS xQteOffre = xQte110617 SINON SI xQte110617 > xQte110618 ALORS xQteOffre = xQte110618 SINON SI xQte110617 < xQte110618 ALORS xQteOffre = xQte110617 FIN FIN //Trace("bOffre : " + bOffre + " / xQteOffre : " + xQteOffre) FIN SI bOffre = Vrai ALORS xQteOffre110617 = xQteOffre xQteOffre110618 = xQteOffre SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie202505 = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai _ET_ {"Fiche_caisse_1024.table_article.nota",indChamp} <> sCodePromo202505 ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110617 SI xQteOffre110617 > 0 ALORS SI {"Fiche_caisse_1024.table_article.QTE",indChamp} <= xQteOffre110617 ALORS {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = xPV110617 {"Fiche_caisse_1024.table_article.REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo202505 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 xQteOffre110617 -= {"Fiche_caisse_1024.table_article.QTE",indChamp} SINON SI {"Fiche_caisse_1024.table_article.QTE",indChamp} > xQteOffre110617 ALORS taListeIDartAjoutLigne110617[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} - xQteOffre110617 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = xPV110617 {"Fiche_caisse_1024.table_article.REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.QTE",indChamp} = xQteOffre110617 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo202505 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 xQteOffre110617 = 0 FIN FIN CAS 110618 SI xQteOffre110618 > 0 ALORS SI {"Fiche_caisse_1024.table_article.QTE",indChamp} <= xQteOffre110618 ALORS {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = xPV110618 {"Fiche_caisse_1024.table_article.REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo202505 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 xQteOffre110618 -= {"Fiche_caisse_1024.table_article.QTE",indChamp} SINON SI {"Fiche_caisse_1024.table_article.QTE",indChamp} > xQteOffre110618 ALORS taListeIDartAjoutLigne110618[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} - xQteOffre110618 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = xPV110618 {"Fiche_caisse_1024.table_article.REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.QTE",indChamp} = xQteOffre110618 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo202505 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 xQteOffre110618 = 0 FIN FIN AUTRE CAS //Trace("Autre cas") FIN FIN FIN // AJOUT DES LIGNES AVEC REMISE ACCEPTEE POUR 110617 sIdartAjoutLigne110617 est une chaîne nQteAjoutLigne110617 est un numérique POUR TOUT ELEMENT nQteAjoutLigne110617, sIdartAjoutLigne110617 DE taListeIDartAjoutLigne110617 //Trace("nQteAjoutLigne110617 : " + nQteAjoutLigne110617 + " / sIdartAjoutLigne110617 : " + sIdartAjoutLigne110617) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigne110617) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigne110617 : " + sIdartAjoutLigne110617) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigne110617 SI bSalarie202505 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} SI fFichierExiste("KeziaII.ini") = Faux ALORS //Trace("Pas KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.EligibleTR",indRubrique} SINON //Trace("KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.TIMBRE",indRubrique} FIN nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC REMISE ACCEPTEE POUR 110618 sIdartAjoutLigne110618 est une cha äëë R6%v |7SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF POISSON2 202507") xCompteurTF202507, xQteTestTF202507 est un entier nMontantRemiseTF202507, nMontantRemise_CumulPersoTF202507, xNbRemiseTF202507, xNbNoRemiseTF202507 est un numérique taListeIndiceTF202507 est un tableau associatif de numérique taListeIDartAjoutLigneOffertTF202507 est un tableau associatif de numérique taListeIDartAjoutLigneTF202507 est un tableau associatif de numérique sCodePromoTF202507, sIdentifiantTF202507 est une chaîne xNbOffertTF202507 est un entier bCalculNoRemiseTF202507, bCalculRemiseTF202507, bSalarieTF202507, bMagTF202507 est un booléen sCodePromoTF202507="TF_POISSON2_202507" sIdentifiantTF202507="BLOQUE_POISSON2_202507" xNbOffertTF202507 = 0 xNbNoRemiseTF202507 = 0 nMontantRemiseTF202507 = 100.00 bSalarieTF202507 = Faux bMagTF202507 = Vrai xQteTestTF202507=3 SI {"gnSITE",indvariable} IN(2,16,26,41,44,45,49,53,54,55,56,59,60,64,73,74,82,86,91,93,95,97,99,101,104,112,114,115,119,120,122,132,134,136,149,167,173,178,180,187,194,195,198,201,205,207,217,224,229,232,236,237,240,243,244,247,248,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") xCompteurTF202507 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTF202507[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteurTF202507 >= xQteTestTF202507 ALORS Trie(taListeIndiceTF202507,ttCroissant) xNbOffertTF202507 = PartieEntiere(xCompteurTF202507/xQteTestTF202507) //xNbNoRemiseTF202507 = xNbOffertTF202507 xNbNoRemiseTF202507 =(xQteTestTF202507 - 1) * xNbOffertTF202507 xNbRemiseTF202507 = xCompteurTF202507 - (xNbOffertTF202507 + xNbNoRemiseTF202507) //Trace("xNbOffertTF202507 : " + xNbOffertTF202507 + " / xNbNoRemiseTF202507 : " + xNbNoRemiseTF202507 + " / xNbRemiseTF202507 : " + xNbRemiseTF202507) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceTF202507 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertTF202507_Avant : " + xNbOffertTF202507) bCalculNoRemiseTF202507 = Vrai bCalculRemiseTF202507 = Vrai SI xNbOffertTF202507 > 0 //Trace("xNbOffertTF2025072 : " + xNbOffertTF202507) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertTF202507 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) //{"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202507 xNbOffertTF202507 = 0 bCalculNoRemiseTF202507 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertTF202507 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertTF202507[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertTF202507 = 0 bCalculNoRemiseTF202507 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertTF202507 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202507 xNbOffertTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseTF202507 = Faux FIN bCalculRemiseTF202507 = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseTF202507 : " + bCalculNoRemiseTF202507 + " / xNbNoRemiseTF202507 : " + xNbNoRemiseTF202507) SI bCalculNoRemiseTF202507 = Vrai _ET_ xNbNoRemiseTF202507 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025071 : " + xNbNoRemiseTF202507) //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 = 0 bCalculRemiseTF202507 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025072 : " + xNbNoRemiseTF202507) taListeIDartAjoutLigneTF202507[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202507 xNbRemiseTF202507 -= ({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202507) {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202507 //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caiÿÿÿÿÿÿÿÿ å åo//FRANCHISES SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //OFFRE 50% 202409 SI DateDuJour >= "20240829" ET DateDuJour <= "20240915" ALORS STListeArticlePoidsPrix1 est une Structure nNombreEnCaisse1 est un numérique xCompteur1 est un entier FIN STListeArticlePoidsPrix2 est une Structure nNombreEnCaisse2 est un numérique nIdart2 est un numérique xIndiceLigne2 est un entier FIN STListeArticleRemiseUnitaire est une Structure xIndiceRemiseUn est un entier xQteRemiseUn est un entier xUniteRemiseUn est un entier xMultiLigneRemiseUn est un entier FIN STListeArticleRemise est une Structure xIndiceRemise est un entier xQteRemise est un entier xUniteRemise est un entier xMultiLigneRemise est un entier FIN STListeArticleModif est une Structure xIndiceModif est un entier FIN taListeArticlePoidsPrix1 est un tableau associatif de STListeArticlePoidsPrix1 UnArticlePoidsPrix2 est un STListeArticlePoidsPrix2 taListeArticlePoidsPrix2 est un tableau de STListeArticlePoidsPrix2 taListeArticleRemiseUnitaire est un tableau associatif de STListeArticleRemiseUnitaire taListeArticleRemise est un tableau associatif de STListeArticleRemise taListeIDartPoidsPrix est un tableau associatif de numérique taListeIDartRemise est un tableau associatif de numérique taListeIDartModif est un tableau associatif de STListeArticleModif taListeIDartAjout est un tableau associatif de numérique taListeIDartAjout2 est un tableau associatif de numérique stInitialisationPourCompilPoidsPrix1 est un STListeArticlePoidsPrix1 stInitialisationPourCompilPoidsPrix2 est un STListeArticlePoidsPrix2 stInitialisationRemisePourCompil est un STListeArticleRemise stInitialisationRemisePourCompilUnitaire est un STListeArticleRemiseUnitaire stInitialisationModif est un STListeArticleModif sListePrefixePoids est une chaîne sListePrefixePrix est une chaîne sCodePromo50, sIDPromo50 est une chaîne nMontantRemise50, nMontantRemise_CumulPerso, nQteControle est un numérique xCompteurboucle est un entier bSalarie, bOffre10, bSalarieControle, bCompteurGlobalPoidsPrix, bModif est un booléen bSalarie = Faux bOffre10 = Faux bSalarieControle = Faux bModif = Vrai bCompteurGlobalPoidsPrix = Faux sCodePromo50 = "OFFRE50_202409" sIDPromo50 = "OFFRE50" nMontantRemise50 = 50.00 // METTRE MONTANT CUMUL REMISE POUR ACTIVER LE CUMUL 65.00 DANS LE CAS DE 30+50 - LA VARIABLE bBlocageSalarie DOIT ETRE ALORS A Faux nMontantRemise_CumulPerso = 50.00 sListePrefixePoids = "21,23,25,27,29" sListePrefixePrix = "02,20,22,24,26,28" Trace("Montant Remise : " + nMontantRemise50) Trace("Flag : " + {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable}) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES POIDS-PRIX ET DES QUANTITES UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI bModif = Vrai ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS Trace("Vrai Gratuit") taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilPoidsPrix1 FIN SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS Trace("Vrai Remise") taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompilUnitaire FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} //DETERMINATION LIGNES POIDS-PRIX OU UNITAIRE Trace("1",{"Fiche_caisse_1024.table_article.CODE",indChamp} + "/" + Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) + "/" + Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2))) SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS Trace("Valeur TableauPoids : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.QTE",indChamp}) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 SINON taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 bCompteurGlobalPoidsPrix = Vrai FIN SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 = 2 ALORS taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = Round({"Fiche_caisse_1024.table_article.QTE",indChamp},3) UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) Trace("Idart Poids : " + UnArticlePoidsPrix2.nIdart2) SINON SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePrix,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS Trace("Valeur TableauPrix : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} SINON taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} bCompteurGlobalPoidsPrix = Vrai FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) Trace("Idart Prix : " + UnArticlePoidsPrix2.nIdart2) SINON SI nQteControle = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo50 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 0 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn = 0 Trace("UniteRemise1 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].NOTA",indChamp} = sIDPromo50 SI bSalarie = Faux ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TTC",indChamp},2) FIN FIN SINON taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn += 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 Trace("UniteRemise2 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) FIN FIN SINON Trace("Non trouvé") FIN FIN FIN Trace("Fin boucle Pour Qte = 1") //Info("Fin boucle Pour Qte = 1") POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES QUANTITES NON UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS Trace("Vrai Remise") taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompil FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI nQteControle >1 ALORS Trace("Ligne Qte > 1 : " + {"Fiche_caisse_1024.table_article",indChamp}) taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemise = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemise += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemise = 2 taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemise += 1 taListeIDartRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} FIN SINON Trace("Non trouvé") FIN FIN FIN Trace("Fin boucle Pour Qte> 1") //APPLICATION DE LA REMISE SUR POIDS PRIX Trace("bCompteurGlobalPoidsPrix : " + bCompteurGlobalPoidsPrix) SI bCompteurGlobalPoidsPrix = Vrai ALORS nTestIdart est un numérique POUR TOUT ELEMENT nTestIdart, nIndiceTest DE taListeIDartPoidsPrix Trace("Valeur Test : " + nTestIdart) taListeIDartPoidsPrixTri est un tableau associatif de numérique xCompteurLignePoidsPrix, xNbLignePoidsPrix, xNbLigneAnnulePoidsPrix, xIndicePoidsPrix est un entier xCompteurLignePoidsPrix = 0 POUR TOUT ELEMENT UnArticlePoidsPrix2 DE taListeArticlePoidsPrix2 Trace("Tab2-3 : " + UnArticlePoidsPrix2.nIdart2 + " / " + UnArticlePoidsPrix2.xIndiceLigne2 + " / " + UnArticlePoidsPrix2.nNombreEnCaisse2) SI nTestIdart = UnArticlePoidsPrix2.nIdart2 ALORS taListeIDartPoidsPrixTri[UnArticlePoidsPrix2.xIndiceLigne2] = UnArticlePoidsPrix2.nNombreEnCaisse2 xCompteurLignePoidsPrix += 1 FIN FIN SI xCompteurLignePoidsPrix > 1 ALORS xNbLignePoidsPrix = PartieEntière(xCompteurLignePoidsPrix / 2) xNbLigneAnnulePoidsPrix = xNbLignePoidsPrix nValeurPoidsPrix est un numérique Trace("Compteur : " + xCompteurLignePoidsPrix + " PartieEntiere : " + xNbLignePoidsPrix + " Annule : " + xNbLigneAnnulePoidsPrix) Trie(taListeIDartPoidsPrixTri,ttCroissant) POUR TOUT ELEMENT nValeurPoidsPrix, xIndice DE taListeIDartPoidsPrixTri xIndicePoidsPrix = xIndice SI xNbLignePoidsPrix > 0 ALORS Trace("Valeur1 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sCodePromo50 xNbLignePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xNbLigneAnnulePoidsPrix > 0 ET bSalarie = Faux ALORS Trace("Valeur2 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].COL_PROMO",indChamp} = 1 xNbLigneAnnulePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) Trace("Fin boucle Poids/Prix") FIN //APPLICATION DE LA REMISE SUR AUTRES ARTICLES AVEC QTE >1 sIdartRemise, sNIndiceTestRemise est une chaîne xQtePourRemise, xQteNouvelleRemise, xQteResteRemise, xQte_Pts_Fidel, xQte_Totale est un entier nQte_Decimale est un numérique POUR TOUT ELEMENT nIndiceTestRemise, IdartRemise DE taListeIDartRemise Trace("Valeur Test Remise: " + IdartRemise) //POUR LA GESTION DES LIGNES A REMISER AVEC LOYALTY OU SALARIE EN DEHORS DU CALCUL AJOUTER QTE 1 A LA QUANTITE A DEDUIRE nQte_Decimale = PartieDécimale(taListeArticleRemise[IdartRemise].xQteRemise / 2) SI nQte_Decimale > 0 ALORS xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise + taListeArticleRemiseUnitaire[IdartRemise].xQteRemiseUn SINON xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise FIN xQtePourRemise = PartieEntière(xQte_Totale / 2) xQte_Pts_Fidel = xQte_Totale - (PartieEntière(xQte_Totale / 2) * 2) TracÒ8FÓæ §o//FRANCHISES SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //OFFRE 50% 202409 SI DateDuJour >= "20240829" ET DateDuJour <= "20240915" ALORS STListeArticlePoidsPrix1 est une Structure nNombreEnCaisse1 est un numérique xCompteur1 est un entier FIN STListeArticlePoidsPrix2 est une Structure nNombreEnCaisse2 est un numérique nIdart2 est un numérique xIndiceLigne2 est un entier FIN STListeArticleRemiseUnitaire est une Structure xIndiceRemiseUn est un entier xQteRemiseUn est un entier xUniteRemiseUn est un entier xMultiLigneRemiseUn est un entier FIN STListeArticleRemise est une Structure xIndiceRemise est un entier xQteRemise est un entier xUniteRemise est un entier xMultiLigneRemise est un entier FIN STListeArticleModif est une Structure xIndiceModif est un entier FIN taListeArticlePoidsPrix1 est un tableau associatif de STListeArticlePoidsPrix1 UnArticlePoidsPrix2 est un STListeArticlePoidsPrix2 taListeArticlePoidsPrix2 est un tableau de STListeArticlePoidsPrix2 taListeArticleRemiseUnitaire est un tableau associatif de STListeArticleRemiseUnitaire taListeArticleRemise est un tableau associatif de STListeArticleRemise taListeIDartPoidsPrix est un tableau associatif de numérique taListeIDartRemise est un tableau associatif de numérique taListeIDartModif est un tableau associatif de STListeArticleModif taListeIDartAjout est un tableau associatif de numérique taListeIDartAjout2 est un tableau associatif de numérique stInitialisationPourCompilPoidsPrix1 est un STListeArticlePoidsPrix1 stInitialisationPourCompilPoidsPrix2 est un STListeArticlePoidsPrix2 stInitialisationRemisePourCompil est un STListeArticleRemise stInitialisationRemisePourCompilUnitaire est un STListeArticleRemiseUnitaire stInitialisationModif est un STListeArticleModif sListePrefixePoids est une chaîne sListePrefixePrix est une chaîne sCodePromo50, sIDPromo50 est une chaîne nMontantRemise50, nMontantRemise_CumulPerso, nQteControle est un numérique xCompteurboucle est un entier bSalarie, bOffre10, bSalarieControle, bCompteurGlobalPoidsPrix, bModif est un booléen bSalarie = Faux bOffre10 = Faux bSalarieControle = Faux bModif = Vrai bCompteurGlobalPoidsPrix = Faux sCodePromo50 = "OFFRE50_202409" sIDPromo50 = "OFFRE50" nMontantRemise50 = 50.00 // METTRE MONTANT CUMUL REMISE POUR ACTIVER LE CUMUL 65.00 DANS LE CAS DE 30+50 - LA VARIABLE bBlocageSalarie DOIT ETRE ALORS A Faux nMontantRemise_CumulPerso = 50.00 sListePrefixePoids = "21,23,25,27,29" sListePrefixePrix = "02,20,22,24,26,28" Trace("Montant Remise : " + nMontantRemise50) Trace("Flag : " + {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable}) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES POIDS-PRIX ET DES QUANTITES UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI bModif = Vrai ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS Trace("Vrai Gratuit") taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilPoidsPrix1 FIN SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS Trace("Vrai Remise") taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompilUnitaire FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} //DETERMINATION LIGNES POIDS-PRIX OU UNITAIRE Trace("1",{"Fiche_caisse_1024.table_article.CODE",indChamp} + "/" + Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) + "/" + Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2))) SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS Trace("Valeur TableauPoids : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.QTE",indChamp}) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 SINON taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 bCompteurGlobalPoidsPrix = Vrai FIN SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 = 2 ALORS taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = Round({"Fiche_caisse_1024.table_article.QTE",indChamp},3) UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) Trace("Idart Poids : " + UnArticlePoidsPrix2.nIdart2) SINON SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePrix,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS Trace("Valeur TableauPrix : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} SINON taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} bCompteurGlobalPoidsPrix = Vrai FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) Trace("Idart Prix : " + UnArticlePoidsPrix2.nIdart2) SINON SI nQteControle = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo50 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 0 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn = 0 Trace("UniteRemise1 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].NOTA",indChamp} = sIDPromo50 SI bSalarie = Faux ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TTC",indChamp},2) FIN FIN SINON taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn += 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 Trace("UniteRemise2 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) FIN FIN SINON Trace("Non trouvé") FIN FIN FIN Trace("Fin boucle Pour Qte = 1") //Info("Fin boucle Pour Qte = 1") POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES QUANTITES NON UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS Trace("Vrai Remise") taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompil FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI nQteControle >1 ALORS Trace("Ligne Qte > 1 : " + {"Fiche_caisse_1024.table_article",indChamp}) taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemise = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemise += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemise = 2 taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemise += 1 taListeIDartRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} FIN SINON Trace("Non trouvé") FIN FIN FIN Trace("Fin boucle Pour Qte> 1") //APPLICATION DE LA REMISE SUR POIDS PRIX Trace("bCompteurGlobalPoidsPrix : " + bCompteurGlobalPoidsPrix) SI bCompteurGlobalPoidsPrix = Vrai ALORS nTestIdart est un numérique POUR TOUT ELEMENT nTestIdart, nIndiceTest DE taListeIDartPoidsPrix Trace("Valeur Test : " + nTestIdart) taListeIDartPoidsPrixTri est un tableau associatif de numérique xCompteurLignePoidsPrix, xNbLignePoidsPrix, xNbLigneAnnulePoidsPrix, xIndicePoidsPrix est un entier xCompteurLignePoidsPrix = 0 POUR TOUT ELEMENT UnArticlePoidsPrix2 DE taListeArticlePoidsPrix2 Trace("Tab2-3 : " + UnArticlePoidsPrix2.nIdart2 + " / " + UnArticlePoidsPrix2.xIndiceLigne2 + " / " + UnArticlePoidsPrix2.nNombreEnCaisse2) SI nTestIdart = UnArticlePoidsPrix2.nIdart2 ALORS taListeIDartPoidsPrixTri[UnArticlePoidsPrix2.xIndiceLigne2] = UnArticlePoidsPrix2.nNombreEnCaisse2 xCompteurLignePoidsPrix += 1 FIN FIN SI xCompteurLignePoidsPrix > 1 ALORS xNbLignePoidsPrix = PartieEntière(xCompteurLignePoidsPrix / 2) xNbLigneAnnulePoidsPrix = xNbLignePoidsPrix nValeurPoidsPrix est un numérique Trace("Compteur : " + xCompteurLignePoidsPrix + " PartieEntiere : " + xNbLignePoidsPrix + " Annule : " + xNbLigneAnnulePoidsPrix) Trie(taListeIDartPoidsPrixTri,ttCroissant) POUR TOUT ELEMENT nValeurPoidsPrix, xIndice DE taListeIDartPoidsPrixTri xIndicePoidsPrix = xIndice SI xNbLignePoidsPrix > 0 ALORS Trace("Valeur1 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sCodePromo50 xNbLignePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xNbLigneAnnulePoidsPrix > 0 ET bSalarie = Faux ALORS Trace("Valeur2 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].COL_PROMO",indChamp} = 1 xNbLigneAnnulePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) Trace("Fin boucle Poids/Prix") FIN //APPLICATION DE LA REMISE SUR AUTRES ARTICLES AVEC QTE >1 sIdartRemise, sNIndiceTestRemise est une chaîne xQtePourRemise, xQteNouvelleRemise, xQteResteRemise, xQte_Pts_Fidel, xQte_Totale est un entier nQte_Decimale est un numérique POUR TOUT ELEMENT nIndiceTestRemise, IdartRemise DE taListeIDartRemise Trace("Valeur Test Remise: " + IdartRemise) //POUR LA GESTION DES LIGNES A REMISER AVEC LOYALTY OU SALARIE EN DEHORS DU CALCUL AJOUTER QTE 1 A LA QUANTITE A DEDUIRE nQte_Decimale = PartieDécimale(taListeArticleRemise[IdartRemise].xQteRemise / 2) SI nQte_Decimale > 0 ALORS xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise + taListeArticleRemiseUnitaire[IdartRemise].xQteRemiseUn SINON xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise FIN xQtePourRemise = PartieEntière(xQte_Totale / 2) xQte_Pts_Fidel = xQte_Totale - (PartieEntière(xQte_Totale / 2) * 2) Tracÿÿÿÿÿÿÿÿ  lžSI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //OFFRE 50% 202501 //Trace("OFFRE 50% 202501") STListeArticlePoidsPrix1 est une Structure nNombreEnCaisse1 est un numérique xCompteur1 est un entier FIN STListeArticlePoidsPrix2 est une Structure nNombreEnCaisse2 est un numérique nIdart2 est un numérique xIndiceLigne2 est un entier FIN STListeArticleRemiseUnitaire est une Structure xIndiceRemiseUn est un entier xQteRemiseUn est un entier xUniteRemiseUn est un entier xMultiLigneRemiseUn est un entier FIN STListeArticleRemise est une Structure xIndiceRemise est un entier xQteRemise est un entier xUniteRemise est un entier xMultiLigneRemise est un entier FIN STListeArticleModif est une Structure xIndiceModif est un entier FIN taListeArticlePoidsPrix1 est un tableau associatif de STListeArticlePoidsPrix1 UnArticlePoidsPrix2 est un STListeArticlePoidsPrix2 taListeArticlePoidsPrix2 est un tableau de STListeArticlePoidsPrix2 taListeArticleRemiseUnitaire est un tableau associatif de STListeArticleRemiseUnitaire taListeArticleRemise est un tableau associatif de STListeArticleRemise taListeIDartPoidsPrix est un tableau associatif de numérique taListeIDartRemise est un tableau associatif de numérique taListeIDartModif est un tableau associatif de STListeArticleModif taListeIDartAjout est un tableau associatif de numérique taListeIDartAjout2 est un tableau associatif de numérique stInitialisationPourCompilPoidsPrix1 est un STListeArticlePoidsPrix1 stInitialisationPourCompilPoidsPrix2 est un STListeArticlePoidsPrix2 stInitialisationRemisePourCompil est un STListeArticleRemise stInitialisationRemisePourCompilUnitaire est un STListeArticleRemiseUnitaire stInitialisationModif est un STListeArticleModif sListePrefixePoids est une chaîne sListePrefixePrix est une chaîne sCodePromo50, sIDPromo50, sTxtSql_50 est une chaîne nMontantRemise50, nMontantRemise_CumulPerso, nQteControle est un numérique xCompteurboucle, nImpaire est un entier bSalarie, bOffre10, bSalarieControle, bCompteurGlobalPoidsPrix, bModif, bAjout est un booléen bSalarie = Faux bOffre10 = Faux bSalarieControle = Faux bModif = Faux bAjout = Faux bCompteurGlobalPoidsPrix = Faux nImpaire = 0 sCodePromo50 = "OFFRE50_202501" sIDPromo50 = "OFFREID50_202501" nMontantRemise50 = 50.00 // METTRE MONTANT CUMUL REMISE POUR ACTIVER LE CUMUL 65.00 DANS LE CAS DE 30+50 - LA VARIABLE bBlocageSalarie DOIT ETRE ALORS A Faux nMontantRemise_CumulPerso = 50.00 sListePrefixePoids = "21,23,25,27,29" sListePrefixePrix = "02,20,22,24,26,28" //Trace("Montant Remise : " + nMontantRemise50) //Trace("Flag : " + {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable}) SI {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Vrai ALORS //SI RETOUR DE LA FENETRE DES REGLEMENTS //Trace("Début contrôle Flag. Retour règlement") POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Nota1 : " + {"Fiche_caisse_1024.table_article.nota",indChamp}) HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Col_SvgMonetaire : " + {"Fiche_caisse_1024.table_article.IDART",indChamp} + " / " + {"Fiche_caisse_1024.table_article.QTE",indChamp} + " / " + {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp}) //$$ SI {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} = 0 bAjout = Vrai SINON SI {"Fiche_caisse_1024.table_article.QTE",indChamp} - {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} <> 0 ALORS bModif = Vrai SI taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationModif FIN taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceModif = {"Fiche_caisse_1024.table_article",indChamp} FIN // CAS DE L'AJOUT D'UN CLIENT SALARIE SANS MODIFICATION DU TICKET SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sCodePromo50 ET bSalarie = Vrai ALORS //Trace("sCodePromo50") SI {"Fiche_caisse_1024.table_article.Remise",indChamp} = 50.00 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) Fin FIN //$$ SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sIDPromo50 ET bSalarie = Vrai ALORS //Trace("sCodePromo50") SI {"Fiche_caisse_1024.table_article.Remise",indChamp} = 0.00 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = 30 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.Remise",indChamp}/100)),2) ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) Fin FIN FIN FIN //Info("FIN1") //Trace("bModif : " + bModif) //$$ SI bModif = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = -3 ALORS bOffre10 = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} //RAZ //InfoRMATION SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Idart : " + {"Fiche_caisse_1024.table_article.IDART",indChamp} + " Nota : " + {"Fiche_caisse_1024.table_article.nota",indChamp} + " / " + bSalarieControle + " / " + bSalarie) SI taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Faux ALORS SI bOffre10 = Vrai _ET_ {"Fiche_caisse_1024.table_article.Remise",indChamp}=10.00 ALORS //Trace("Offre10") {"Fiche_caisse_1024.table_article.Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article.nota",indChamp} = "" {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 FIN SI bSalarie = Vrai _ET_ {"Fiche_caisse_1024.table_article.Remise",indChamp}=30.00 ALORS bSalarieControle = Vrai FIN SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sIDPromo50 ET bSalarieControle = Faux ALORS //Trace("sIDPromo50" + " / " + bSalarieControle) {"Fiche_caisse_1024.table_article.Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article.nota",indChamp} = "" {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 FIN SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sCodePromo50 ET bSalarie = Faux ALORS //Trace("sCodePromo50 Faux" + " / " + bSalarie) {"Fiche_caisse_1024.table_article.Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article.nota",indChamp} = "" {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 FIN SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sCodePromo50 ET bSalarie = Vrai ALORS //Trace("sCodePromo50 Vrai" + " / " + bSalarie) {"Fiche_caisse_1024.table_article.Remise",indChamp} = 30.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*(0.70*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = "" FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Info("FIN VERIF DEJA CALCULE") FIN //Info("Fin contrôle flag") SI {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Faux _OU_ bAjout = Vrai _OU_ bModif = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES POIDS-PRIX ET DES QUANTITES UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Col_SvgMonetaire : " + {"Fiche_caisse_1024.table_article.code",indChamp} + " / " + {"Fiche_caisse_1024.table_article.QTE",indChamp} + " / " + {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp}) //Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) //$$ //SI {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Faux _OU_ (bModif = Vrai ET taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Faux) ALORS SI {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ET ({"Fiche_caisse_1024.table_article.NOTA",indChamp}="" _OU_ GAUCHE({"Fiche_caisse_1024.table_article.NOTA",indChamp},6)="REMISE") ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement //Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Gratuit") taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilPoidsPrix1 FIN SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Remise") taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompilUnitaire FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} //DETERMINATION LIGNES POIDS-PRIX OU UNITAIRE //Trace("1",{"Fiche_caisse_1024.table_article.CODE",indChamp} + "/" + Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) + "/" + Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2))) SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS //Trace("Valeur TableauPoids : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.QTE",indChamp}) {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 SINON taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 bCompteurGlobalPoidsPrix = Vrai FIN SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 = 2 ALORS taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp},3) UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) //Trace("Idart Poids : " + UnArticlePoidsPrix2.nIdart2) SINON SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePrix,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS //Trace("Valeur TableauPrix : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}) {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} SINON taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} bCompteurGlobalPoidsPrix = Vrai FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) //Trace("Idart Prix : " + UnArticlePoidsPrix2.nIdart2) SINON SI nQteControle = 1 ALORS //Trace("Debut nQteControle : " + nQteControle) {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo50 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 0 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn = 0 //Trace("UniteRemise1 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) //$$ {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 //{"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].NOTA",indChamp} = sIDPromo50 SI bSalarie = Faux ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TTC",indChamp},2) FIN FIN SINON taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn += 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 //Trace("UniteRemise2 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) FIN FIN SINON //Trace("Non trouvé") FIN FIN FIN //Trace("Fin boucle Pour Qte = 1") //Info("Fin boucle Pour Qte = 1") POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES QUANTITES NON UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) //$$ //SI {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Faux _OU_ (bModif = Vrai ET taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Faux) ALORS SI {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ET ({"Fiche_caisse_1024.table_article.NOTA",indChamp}="" _OU_ GAUCHE({"Fiche_caisse_1024.table_article.NOTA",indChamp},6)="REMISE") ALORS //Trace("Promo : " + {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} + " / " + {"Fiche_caisse_1024.table_article.NOTA",indChamp}) HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement //Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Remise") taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompil FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI PartieEntière(nQteControle) >1 ALORS //Trace("Ligne Qte > 1 : " + {"Fiche_caisse_1024.table_article",indChamp}) taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemise = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemise += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemise = 2 taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemise += 1 taListeIDartRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} FIN SINON //Trace("Non trouvé") FIN FIN //FIN FIN //Info("Fin boucle Pour Qte> 1") //APPLICATION DE LA REMISE SUR POIDS PRIX //Trace("bCompteurGlobalPoidsPrix : " + bCompteurGlobalPoidsPrix) SI bCompteurGlobalPoidsPrix = Vrai ALORS nTestIdart est un numérique POUR TOUT ELEMENT nTestIdart, nIndiceTest DE taListeIDartPoidsPrix //Trace("Valeur Test : " + nTestIdart) taListeIDartPoidsPrixTri est un tableau associatif de numérique xCompteurLignePoidsPrix, xNbLignePoidsPrix, xNbLigneAnnulePoidsPrix, xIndicePoidsPrix est un entier xCompteurLignePoidsPrix = 0 POUR TOUT ELEMENT UnArticlePoidsPrix2 DE taListeArticlePoidsPrix2 //Trace("Tab2-3 : " + UnArticlePoidsPrix2.nIdart2 + " / " + UnArticlePoidsPrix2.xIndiceLigne2 + " / " + UnArticlePoidsPrix2.nNombreEnCaisse2) SI nTestIdart = UnArticlePoidsPrix2.nIdart2 ALORS taListeIDartPoidsPrixTri[UnArticlePoidsPrix2.xIndiceLigne2] = UnArticlePoidsPrix2.nNombreEnCaisse2 xCompteurLignePoidsPrix += 1 FIN FIN SI xCompteurLignePoidsPrix > 1 ALORS xNbLignePoidsPrix = PartieEntiere(xCompteurLignePoidsPrix / 2) xNbLigneAnnulePoidsPrix = xNbLignePoidsPrix nValeurPoidsPrix est un numérique //Trace("Compteur : " + xCompteurLignePoidsPrix + " PartieEntiere : " + xNbLignePoidsPrix + " Annule : " + xNbLigneAnnulePoidsPrix) Trie(taListeIDartPoidsPrixTri,ttCroissant) POUR TOUT ELEMENT nValeurPoidsPrix, xIndice DE taListeIDartPoidsPrixTri xIndicePoidsPrix = xIndice SI xNbLignePoidsPrix > 0 ALORS //Trace("Valeur1 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sCodePromo50 xNbLignePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xNbLigneAnnulePoidsPrix > 0 ET bSalarie = Faux ALORS //Trace("Valeur2 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].COL_PROMO",indChamp} = 1 xNbLigneAnnulePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("Fin boucle Poids/Prix") FIN //Info("Fin boucle Poids/Prix ") //APPLICATION DE LA REMISE SUR AUTRES ARTICLES AVEC QTE >1 sIdartRemise, sNIndiceTestRemise est une chaîne xQtePourRemise, xQteNouvelleRemise, xQteResteRemise, xQte_Pts_Fidel, xQte_Totale est un entier nQte_Decimale est un numérique POUR TOUT ELEMENT nIndiceTestRemise, IdartRemise DE taListeIDartRemise //Trace("Valeur Test Remise: " + IdartRemise) //POUR LA GESTION DES LIGNES A REMISER AVEC LOYALTY OU SALARIE EN DEHORS DU CALCUL AJOUTER QTE 1 A LA QUANTITE A DEDUIRE nQte_Decimale = PartieDécimale(taListeArticleRemise[IdartRemise].xQteRemise / 2) SI nQte_Decimale > 0 ALORS xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise + taListeArticleRemiseUnitaire[IdartRemise].xQteRemiseUn SINON xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise FIN xQtePourRemise = PartieEntière(xQte_Totale / 2) xQte_Pts_Fidel = xQte_Totale - (PartieEntière(xQte_Totale / 2) * 2) //Trace("xQte_Pts_Fidel : " + xQte_Pts_Fidel) //Trace("Partie Entiere : " + xQtePourRemise) //Trace("Partie Décimale : " + nQte_Decimale) //Trace("UniteRemise : " + taListeArticleRemise[IdartRemise].xUniteRemise) //Trace("MultiLigne : " + taListeArticleRemise[IdartRemise].xMultiLigneRemise) SI xQtePourRemise > 0 ALORS taListeIDartAjout[IdartRemise] = xQtePourRemise taListeIDartAjout2[IdartRemise] = xQte_Pts_Fidel SI taListeArticleRemise[IdartRemise].xUniteRemise = 2 ALORS xQteNouvelleRemise = ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQtePourRemise) //Trace("xIndiceRemise : " + taListeArticleRemise[IdartRemise].xIndiceRemise) //Trace("xQteRemise : " + taListeArticleRemise[IdartRemise].xQteRemise) //Trace("Soustraction : " + ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQtePourRemise)) //Trace("xQteNouvelleRemise : " + xQteNouvelleRemise) SI xQteNouvelleRemise > 0 ALORS SI xQteNouvelleRemise - xQte_Pts_Fidel > 0 ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise - xQte_Pts_Fidel SINON {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise FIN {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} //Trace("Différence xQteNouvelleRemise - xQte_Pts_Fidel : " + (xQteNouvelleRemise - xQte_Pts_Fidel)) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = ROUND(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 xQteResteRemise = 0 //Trace("Reste Qte>0 : " + xQteResteRemise) //Info("FIN SI") SINON SI xQteNouvelleRemise = 0 ALORS SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 ALORS xQteResteRemise = xQtePourRemise //Trace("Reste Qte 1 : " + xQteResteRemise) FIN SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} > 1 ALORS xQteNouvelleRemise = 1 //xQteNouvelleRemise = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1 //Trace("xQteNouvelleRemise -= 1 : " + xQteNouvelleRemise) xQteResteRemise = xQtePourRemise - ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1) //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp}) //Trace("Reste Qte >1 : " + xQteResteRemise) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = ROUND(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) SINON {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = ROUND(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) FIN {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 FIN //Info("FIN SINON SI ") SINON // xQteNouvelleRemise < 0 SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 ALORS xQteResteRemise = xQtePourRemise //Trace("Reste Qte <0-1: " + xQteResteRemise) FIN SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} > 1 ALORS xQteNouvelleRemise = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1 //Trace("xQteNouvelleRemise : " + xQteNouvelleRemise ) //{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise //$$ {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = ROUND(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 xQteResteRemise = xQtePourRemise - xQteNouvelleRemise //Trace("Reste Qte <0-2: " + xQteResteRemise) FIN //Info("FIN SINON") FIN SINON // taListeArticleRemise[IdartRemise].xUniteRemise = 1 //Trace("UniteRemise = 1 : " + taListeArticleRemise[IdartRemise].xUniteRemise) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 FIN //Trace("Reste Qte Final : " + xQteResteRemise) TANTQUE xQteResteRemise > 0 xCompteurboucle += 1 //Trace("xQteResteRemise boucle : " + xQteResteRemise + " / " + "xCompteurboucle :" + xCompteurboucle ) //Trace("Partie Décimale2 : " + nQte_Decimale) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = IdartRemise ALORS //Trace("DEBUT BOUCLE + COMPTEUR : " + xCompteurboucle) //$$ //xQteNouvelleRemise = {"Fiche_caisse_1024.table_article.QTE",indChamp} - xQteResteRemise SI nQte_Decimale > 0 ALORS nImpaire = 1 FIN SI {"Fiche_caisse_1024.table_article.QTE",indÒ¸ÇÓ FžSI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //OFFRE 50% 202501 //Trace("OFFRE 50% 202501") STListeArticlePoidsPrix1 est une Structure nNombreEnCaisse1 est un numérique xCompteur1 est un entier FIN STListeArticlePoidsPrix2 est une Structure nNombreEnCaisse2 est un numérique nIdart2 est un numérique xIndiceLigne2 est un entier FIN STListeArticleRemiseUnitaire est une Structure xIndiceRemiseUn est un entier xQteRemiseUn est un entier xUniteRemiseUn est un entier xMultiLigneRemiseUn est un entier FIN STListeArticleRemise est une Structure xIndiceRemise est un entier xQteRemise est un entier xUniteRemise est un entier xMultiLigneRemise est un entier FIN STListeArticleModif est une Structure xIndiceModif est un entier FIN taListeArticlePoidsPrix1 est un tableau associatif de STListeArticlePoidsPrix1 UnArticlePoidsPrix2 est un STListeArticlePoidsPrix2 taListeArticlePoidsPrix2 est un tableau de STListeArticlePoidsPrix2 taListeArticleRemiseUnitaire est un tableau associatif de STListeArticleRemiseUnitaire taListeArticleRemise est un tableau associatif de STListeArticleRemise taListeIDartPoidsPrix est un tableau associatif de numérique taListeIDartRemise est un tableau associatif de numérique taListeIDartModif est un tableau associatif de STListeArticleModif taListeIDartAjout est un tableau associatif de numérique taListeIDartAjout2 est un tableau associatif de numérique stInitialisationPourCompilPoidsPrix1 est un STListeArticlePoidsPrix1 stInitialisationPourCompilPoidsPrix2 est un STListeArticlePoidsPrix2 stInitialisationRemisePourCompil est un STListeArticleRemise stInitialisationRemisePourCompilUnitaire est un STListeArticleRemiseUnitaire stInitialisationModif est un STListeArticleModif sListePrefixePoids est une chaîne sListePrefixePrix est une chaîne sCodePromo50, sIDPromo50, sTxtSql_50 est une chaîne nMontantRemise50, nMontantRemise_CumulPerso, nQteControle est un numérique xCompteurboucle, nImpaire est un entier bSalarie, bOffre10, bSalarieControle, bCompteurGlobalPoidsPrix, bModif, bAjout est un booléen bSalarie = Faux bOffre10 = Faux bSalarieControle = Faux bModif = Faux bAjout = Faux bCompteurGlobalPoidsPrix = Faux nImpaire = 0 sCodePromo50 = "OFFRE50_202501" sIDPromo50 = "OFFREID50_202501" nMontantRemise50 = 50.00 // METTRE MONTANT CUMUL REMISE POUR ACTIVER LE CUMUL 65.00 DANS LE CAS DE 30+50 - LA VARIABLE bBlocageSalarie DOIT ETRE ALORS A Faux nMontantRemise_CumulPerso = 50.00 sListePrefixePoids = "21,23,25,27,29" sListePrefixePrix = "02,20,22,24,26,28" //Trace("Montant Remise : " + nMontantRemise50) //Trace("Flag : " + {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable}) SI {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Vrai ALORS //SI RETOUR DE LA FENETRE DES REGLEMENTS //Trace("Début contrôle Flag. Retour règlement") POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Nota1 : " + {"Fiche_caisse_1024.table_article.nota",indChamp}) HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Col_SvgMonetaire : " + {"Fiche_caisse_1024.table_article.IDART",indChamp} + " / " + {"Fiche_caisse_1024.table_article.QTE",indChamp} + " / " + {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp}) //$$ SI {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} = 0 bAjout = Vrai SINON SI {"Fiche_caisse_1024.table_article.QTE",indChamp} - {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} <> 0 ALORS bModif = Vrai SI taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationModif FIN taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceModif = {"Fiche_caisse_1024.table_article",indChamp} FIN // CAS DE L'AJOUT D'UN CLIENT SALARIE SANS MODIFICATION DU TICKET SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sCodePromo50 ET bSalarie = Vrai ALORS //Trace("sCodePromo50") SI {"Fiche_caisse_1024.table_article.Remise",indChamp} = 50.00 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) Fin FIN //$$ SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sIDPromo50 ET bSalarie = Vrai ALORS //Trace("sCodePromo50") SI {"Fiche_caisse_1024.table_article.Remise",indChamp} = 0.00 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = 30 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.Remise",indChamp}/100)),2) ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) Fin FIN FIN FIN //Info("FIN1") //Trace("bModif : " + bModif) //$$ SI bModif = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = -3 ALORS bOffre10 = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} //RAZ //InfoRMATION SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Idart : " + {"Fiche_caisse_1024.table_article.IDART",indChamp} + " Nota : " + {"Fiche_caisse_1024.table_article.nota",indChamp} + " / " + bSalarieControle + " / " + bSalarie) SI taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Faux ALORS SI bOffre10 = Vrai _ET_ {"Fiche_caisse_1024.table_article.Remise",indChamp}=10.00 ALORS //Trace("Offre10") {"Fiche_caisse_1024.table_article.Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article.nota",indChamp} = "" {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 FIN SI bSalarie = Vrai _ET_ {"Fiche_caisse_1024.table_article.Remise",indChamp}=30.00 ALORS bSalarieControle = Vrai FIN SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sIDPromo50 ET bSalarieControle = Faux ALORS //Trace("sIDPromo50" + " / " + bSalarieControle) {"Fiche_caisse_1024.table_article.Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article.nota",indChamp} = "" {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 FIN SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sCodePromo50 ET bSalarie = Faux ALORS //Trace("sCodePromo50 Faux" + " / " + bSalarie) {"Fiche_caisse_1024.table_article.Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article.nota",indChamp} = "" {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 FIN SI {"Fiche_caisse_1024.table_article.NOTA",indChamp}=sCodePromo50 ET bSalarie = Vrai ALORS //Trace("sCodePromo50 Vrai" + " / " + bSalarie) {"Fiche_caisse_1024.table_article.Remise",indChamp} = 30.00 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*(0.70*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = "" FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Info("FIN VERIF DEJA CALCULE") FIN //Info("Fin contrôle flag") SI {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Faux _OU_ bAjout = Vrai _OU_ bModif = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES POIDS-PRIX ET DES QUANTITES UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Col_SvgMonetaire : " + {"Fiche_caisse_1024.table_article.code",indChamp} + " / " + {"Fiche_caisse_1024.table_article.QTE",indChamp} + " / " + {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp}) //Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) //$$ //SI {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Faux _OU_ (bModif = Vrai ET taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Faux) ALORS SI {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ET ({"Fiche_caisse_1024.table_article.NOTA",indChamp}="" _OU_ GAUCHE({"Fiche_caisse_1024.table_article.NOTA",indChamp},6)="REMISE") ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement //Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Gratuit") taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilPoidsPrix1 FIN SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Remise") taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompilUnitaire FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} //DETERMINATION LIGNES POIDS-PRIX OU UNITAIRE //Trace("1",{"Fiche_caisse_1024.table_article.CODE",indChamp} + "/" + Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) + "/" + Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2))) SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS //Trace("Valeur TableauPoids : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.QTE",indChamp}) {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 SINON taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 bCompteurGlobalPoidsPrix = Vrai FIN SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 = 2 ALORS taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp},3) UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) //Trace("Idart Poids : " + UnArticlePoidsPrix2.nIdart2) SINON SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePrix,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS //Trace("Valeur TableauPrix : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}) {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} SINON taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} bCompteurGlobalPoidsPrix = Vrai FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) //Trace("Idart Prix : " + UnArticlePoidsPrix2.nIdart2) SINON SI nQteControle = 1 ALORS //Trace("Debut nQteControle : " + nQteControle) {"Fiche_caisse_1024.table_article.Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo50 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 0 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn = 0 //Trace("UniteRemise1 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) //$$ {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 //{"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].NOTA",indChamp} = sIDPromo50 SI bSalarie = Faux ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TTC",indChamp},2) FIN FIN SINON taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn += 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 //Trace("UniteRemise2 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) FIN FIN SINON //Trace("Non trouvé") FIN FIN FIN //Trace("Fin boucle Pour Qte = 1") //Info("Fin boucle Pour Qte = 1") POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES QUANTITES NON UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) //$$ //SI {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Faux _OU_ (bModif = Vrai ET taListeIDartModif[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Faux) ALORS SI {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ET ({"Fiche_caisse_1024.table_article.NOTA",indChamp}="" _OU_ GAUCHE({"Fiche_caisse_1024.table_article.NOTA",indChamp},6)="REMISE") ALORS //Trace("Promo : " + {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} + " / " + {"Fiche_caisse_1024.table_article.NOTA",indChamp}) HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement //Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Remise") taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompil FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI PartieEntière(nQteControle) >1 ALORS //Trace("Ligne Qte > 1 : " + {"Fiche_caisse_1024.table_article",indChamp}) taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemise = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemise += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemise = 2 taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemise += 1 taListeIDartRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} FIN SINON //Trace("Non trouvé") FIN FIN //FIN FIN //Info("Fin boucle Pour Qte> 1") //APPLICATION DE LA REMISE SUR POIDS PRIX //Trace("bCompteurGlobalPoidsPrix : " + bCompteurGlobalPoidsPrix) SI bCompteurGlobalPoidsPrix = Vrai ALORS nTestIdart est un numérique POUR TOUT ELEMENT nTestIdart, nIndiceTest DE taListeIDartPoidsPrix //Trace("Valeur Test : " + nTestIdart) taListeIDartPoidsPrixTri est un tableau associatif de numérique xCompteurLignePoidsPrix, xNbLignePoidsPrix, xNbLigneAnnulePoidsPrix, xIndicePoidsPrix est un entier xCompteurLignePoidsPrix = 0 POUR TOUT ELEMENT UnArticlePoidsPrix2 DE taListeArticlePoidsPrix2 //Trace("Tab2-3 : " + UnArticlePoidsPrix2.nIdart2 + " / " + UnArticlePoidsPrix2.xIndiceLigne2 + " / " + UnArticlePoidsPrix2.nNombreEnCaisse2) SI nTestIdart = UnArticlePoidsPrix2.nIdart2 ALORS taListeIDartPoidsPrixTri[UnArticlePoidsPrix2.xIndiceLigne2] = UnArticlePoidsPrix2.nNombreEnCaisse2 xCompteurLignePoidsPrix += 1 FIN FIN SI xCompteurLignePoidsPrix > 1 ALORS xNbLignePoidsPrix = PartieEntiere(xCompteurLignePoidsPrix / 2) xNbLigneAnnulePoidsPrix = xNbLignePoidsPrix nValeurPoidsPrix est un numérique //Trace("Compteur : " + xCompteurLignePoidsPrix + " PartieEntiere : " + xNbLignePoidsPrix + " Annule : " + xNbLigneAnnulePoidsPrix) Trie(taListeIDartPoidsPrixTri,ttCroissant) POUR TOUT ELEMENT nValeurPoidsPrix, xIndice DE taListeIDartPoidsPrixTri xIndicePoidsPrix = xIndice SI xNbLignePoidsPrix > 0 ALORS //Trace("Valeur1 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sCodePromo50 xNbLignePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xNbLigneAnnulePoidsPrix > 0 ET bSalarie = Faux ALORS //Trace("Valeur2 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].COL_PROMO",indChamp} = 1 xNbLigneAnnulePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("Fin boucle Poids/Prix") FIN //Info("Fin boucle Poids/Prix ") //APPLICATION DE LA REMISE SUR AUTRES ARTICLES AVEC QTE >1 sIdartRemise, sNIndiceTestRemise est une chaîne xQtePourRemise, xQteNouvelleRemise, xQteResteRemise, xQte_Pts_Fidel, xQte_Totale est un entier nQte_Decimale est un numérique POUR TOUT ELEMENT nIndiceTestRemise, IdartRemise DE taListeIDartRemise //Trace("Valeur Test Remise: " + IdartRemise) //POUR LA GESTION DES LIGNES A REMISER AVEC LOYALTY OU SALARIE EN DEHORS DU CALCUL AJOUTER QTE 1 A LA QUANTITE A DEDUIRE nQte_Decimale = PartieDécimale(taListeArticleRemise[IdartRemise].xQteRemise / 2) SI nQte_Decimale > 0 ALORS xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise + taListeArticleRemiseUnitaire[IdartRemise].xQteRemiseUn SINON xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise FIN xQtePourRemise = PartieEntière(xQte_Totale / 2) xQte_Pts_Fidel = xQte_Totale - (PartieEntière(xQte_Totale / 2) * 2) //Trace("xQte_Pts_Fidel : " + xQte_Pts_Fidel) //Trace("Partie Entiere : " + xQtePourRemise) //Trace("Partie Décimale : " + nQte_Decimale) //Trace("UniteRemise : " + taListeArticleRemise[IdartRemise].xUniteRemise) //Trace("MultiLigne : " + taListeArticleRemise[IdartRemise].xMultiLigneRemise) SI xQtePourRemise > 0 ALORS taListeIDartAjout[IdartRemise] = xQtePourRemise taListeIDartAjout2[IdartRemise] = xQte_Pts_Fidel SI taListeArticleRemise[IdartRemise].xUniteRemise = 2 ALORS xQteNouvelleRemise = ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQtePourRemise) //Trace("xIndiceRemise : " + taListeArticleRemise[IdartRemise].xIndiceRemise) //Trace("xQteRemise : " + taListeArticleRemise[IdartRemise].xQteRemise) //Trace("Soustraction : " + ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQtePourRemise)) //Trace("xQteNouvelleRemise : " + xQteNouvelleRemise) SI xQteNouvelleRemise > 0 ALORS SI xQteNouvelleRemise - xQte_Pts_Fidel > 0 ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise - xQte_Pts_Fidel SINON {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise FIN {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} //Trace("Différence xQteNouvelleRemise - xQte_Pts_Fidel : " + (xQteNouvelleRemise - xQte_Pts_Fidel)) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = ROUND(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 xQteResteRemise = 0 //Trace("Reste Qte>0 : " + xQteResteRemise) //Info("FIN SI") SINON SI xQteNouvelleRemise = 0 ALORS SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 ALORS xQteResteRemise = xQtePourRemise //Trace("Reste Qte 1 : " + xQteResteRemise) FIN SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} > 1 ALORS xQteNouvelleRemise = 1 //xQteNouvelleRemise = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1 //Trace("xQteNouvelleRemise -= 1 : " + xQteNouvelleRemise) xQteResteRemise = xQtePourRemise - ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1) //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp}) //Trace("Reste Qte >1 : " + xQteResteRemise) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = ROUND(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) SINON {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = ROUND(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) FIN {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 FIN //Info("FIN SINON SI ") SINON // xQteNouvelleRemise < 0 SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 ALORS xQteResteRemise = xQtePourRemise //Trace("Reste Qte <0-1: " + xQteResteRemise) FIN SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} > 1 ALORS xQteNouvelleRemise = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1 //Trace("xQteNouvelleRemise : " + xQteNouvelleRemise ) //{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise //$$ {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = ROUND(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 xQteResteRemise = xQtePourRemise - xQteNouvelleRemise //Trace("Reste Qte <0-2: " + xQteResteRemise) FIN //Info("FIN SINON") FIN SINON // taListeArticleRemise[IdartRemise].xUniteRemise = 1 //Trace("UniteRemise = 1 : " + taListeArticleRemise[IdartRemise].xUniteRemise) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 FIN //Trace("Reste Qte Final : " + xQteResteRemise) TANTQUE xQteResteRemise > 0 xCompteurboucle += 1 //Trace("xQteResteRemise boucle : " + xQteResteRemise + " / " + "xCompteurboucle :" + xCompteurboucle ) //Trace("Partie Décimale2 : " + nQte_Decimale) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = IdartRemise ALORS //Trace("DEBUT BOUCLE + COMPTEUR : " + xCompteurboucle) //$$ //xQteNouvelleRemise = {"Fiche_caisse_1024.table_article.QTE",indChamp} - xQteResteRemise SI nQte_Decimale > 0 ALORS nImpaire = 1 FIN SI {"Fiche_caisse_1024.table_article.QTE",indChamp} > (xQteResteRemise + nImpaire) ALORS xQteNouvelleRemise = {"Fiche_caisseÒ¸ÈÕï £//FRANCHISES SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //PROMO TFBOISSON_202408 SI DateDuJour >= "20240808" ET DateDuJour <= "20240828" ALORS //Trace("TF BOISSON 202408") xCompteurOPBOISSON, nXIndiceTFBOISSON, nXDiviseurTFBOISSON est un entier xNbLigneTFBOISSON, xNbLigneAnnulRemiseTFBOISSON, xNbLigneNormaleTFBOISSON, xRemiseTFBOISSON est un numérique STListeArticleOPBOISSON est une Structure nXCompteurOPBOISSON est un entier nXOccurenceOPBOISSON est un entier nXIdartOPBOISSON est un entier FIN taListeArticleOPBOISSON est un tableau associatif de STListeArticleOPBOISSON stInitialisationPourCompilOPBOISSON est un STListeArticleOPBOISSON taListeIndiceOPBOISSON est un tableau associatif de numérique taListeIDartAjoutLigneOffertOPBOISSON est un tableau associatif de numérique taListeIDartAjoutLigneOPBOISSON est un tableau associatif de numérique taTableauPositionTFBOISSON est un tableau associatif de numérique sCodePromoOPBOISSON, sTxtSql_OPBOISSON, sIdentifiantOPBOISSON est une chaîne xNRemiseOPBOISSON est un numérique xNbOffertOPBOISSON, xNbNoRemiseOPBOISSON, xNbRemiseOPBOISSON, nXNbNouvelleQteOPBOISSON est un entier bCalculNoRemiseOPBOISSON, bCalculRemiseOPBOISSON, bSalarieOPBOISSON est un booléen sdReq_Source_OPBOISSON est une Source de Données sCodePromoOPBOISSON="TFBOISSON_202408" sIdentifiantOPBOISSON="BLOQUE_202408" xNbOffertOPBOISSON = 0 xNbNoRemiseOPBOISSON = 100.00 bSalarieOPBOISSON = Faux SI {"GNIDCLI",indVariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indVariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieOPBOISSON = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") //SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOPBOISSON _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOPBOISSON ALORS //SINON xCompteurOPBOISSON += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceOPBOISSON[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} //FIN FIN FIN SI xCompteurOPBOISSON > 2 ALORS Trie(taListeIndiceOPBOISSON,ttCroissant) xNbOffertOPBOISSON = PartieEntière(xCompteurOPBOISSON/3) xNbNoRemiseOPBOISSON = 2 * xNbOffertOPBOISSON xNbRemiseOPBOISSON = xCompteurOPBOISSON - (xNbOffertOPBOISSON + xNbNoRemiseOPBOISSON) //Trace("xNbOffertOPBOISSON : " + xNbOffertOPBOISSON + " / xNbNoRemiseOPBOISSON : " + xNbNoRemiseOPBOISSON + " / xNbRemiseOPBOISSON : " + xNbRemiseOPBOISSON) POUR TOUT ELEMENT xSIdart, xIndice DE taListeIndiceOPBOISSON //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOPBOISSON_Avant : " + xNbOffertOPBOISSON) bCalculNoRemiseOPBOISSON = Vrai bCalculRemiseOPBOISSON = Vrai SI xNbOffertOPBOISSON > 0 ALORS //Trace("xNbOffertOPBOISSON2 : " + xNbOffertOPBOISSON) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOPBOISSON ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOPBOISSON xNbOffertOPBOISSON = 0 bCalculNoRemiseOPBOISSON = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOPBOISSON ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOPBOISSON[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertOPBOISSON {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOPBOISSON {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOPBOISSON = 0 bCalculNoRemiseOPBOISSON = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOPBOISSON ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOPBOISSON xNbOffertOPBOISSON -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOPBOISSON = Faux FIN bCalculRemiseOPBOISSON = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseOPBOISSON : " + bCalculNoRemiseOPBOISSON + " / xNbNoRemiseOPBOISSON : " + xNbNoRemiseOPBOISSON) SI bCalculNoRemiseOPBOISSON = Vrai _ET_ xNbNoRemiseOPBOISSON > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOPBOISSON ALORS //Trace("xNbNoRemiseOPBOISSON1 : " + xNbNoRemiseOPBOISSON) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemiseOPBOISSON = 0 bCalculRemiseOPBOISSON = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseOPBOISSON ALORS //Trace("xNbNoRemiseOPBOISSON2 : " + xNbNoRemiseOPBOISSON) taListeIDartAjoutLigneOPBOISSON[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOPBOISSON {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOPBOISSON //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseOPBOISSON = 0 bCalculRemiseOPBOISSON = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseOPBOISSON ALORS //Trace("xNbNoRemiseOPBOISSON3 : " + xNbNoRemiseOPBOISSON) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemiseOPBOISSON -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemiseOPBOISSON = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemiseOPBOISSON = Vrai _ET_ xNbRemiseOPBOISSON > 0 ALORS //Trace("xNbRemiseOPBOISSON1 : " + xNbRemiseOPBOISSON) //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} SI bSalarieOPBOISSON = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 0 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 0 xNbRemiseOPBOISSON -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertOPBOISSON est une chaîne nQteAjoutOffertOPBOISSON est un numérique POUR TOUT ELEMENT nQteAjoutOffertOPBOISSON, sIdartAjoutOffertOPBOISSON DE taListeIDartAjoutLigneOffertOPBOISSON //Trace("nQteAjoutOffertOPBOISSON : " + nQteAjoutOffertOPBOISSON + " / sIdartAjoutOffertOPBOISSON : " + sIdartAjoutOffertOPBOISSON) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertOPBOISSON) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertOPBOISSON {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOPBOISSON nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneOPBOISSON est une chaîne nQteAjoutLigneOPBOISSON est un numérique POUR TOUT ELEMENT nQteAjoutLigneOPBOISSON, sIdartAjoutLigneOPBOISSON DE taListeIDartAjoutLigneOPBOISSON //Trace("nQteAjoutLigneOPBOISSON : " + nQteAjoutLigneOPBOISSON + " / sIdartAjoutLigneOPBOISSON : " + sIdartAjoutLigneOPBOISSON) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOPBOISSON) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneOPBOISSON : " + sIdartAjoutLigneOPBOISSON) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOPBOISSON SI bSalarieOPBOISSON = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //OFFRE 50% 202409 SI DateDuJour >= "20240829" ET DateDuJour <= "20240922" ALORS SI DateDuJour > "20240915" ET {"gnSITE",indVariable} IN(3,9,19,73,75,89,110,141,176) ALORS RETOUR FIN STListeArticlePoidsPrix1 est une Structure nNombreEnCaisse1 est un numérique xCompteur1 est un entier FIN STListeArticlePoidsPrix2 est une Structure nNombreEnCaisse2 est un numérique nIdart2 est un numérique xIndiceLigne2 est un entier FIN STListeArticleRemiseUnitaire est une Structure xIndiceRemiseUn est un entier xQteRemiseUn est un entier xUniteRemiseUn est un entier xMultiLigneRemiseUn est un entier FIN STListeArticleRemise est une Structure xIndiceRemise est un entier xQteRemise est un entier xUniteRemise est un entier xMultiLigneRemise est un entier FIN STListeArticleModif est une Structure nXIndiceModif est un entier FIN taListeArticlePoidsPrix1 est un tableau associatif de STListeArticlePoidsPrix1 UnArticlePoidsPrix2 est un STListeArticlePoidsPrix2 taListeArticlePoidsPrix2 est un tableau de STListeArticlePoidsPrix2 taListeArticleRemiseUnitaire est un tableau associatif de STListeArticleRemiseUnitaire taListeArticleRemise est un tableau associatif de STListeArticleRemise taListeIDartPoidsPrix est un tableau associatif de numérique taListeIDartRemise est un tableau associatif de numérique taListeIDartModif est un tableau associatif de STListeArticleModif taListeIDartAjout est un tableau associatif de numérique taListeIDartAjout2 est un tableau associatif de numérique stInitialisationPourCompilPoidsPrix1 est un STListeArticlePoidsPrix1 stInitialisationPourCompilPoidsPrix2 est un STListeArticlePoidsPrix2 stInitialisationRemisePourCompil est un STListeArticleRemise stInitialisationRemisePourCompilUnitaire est un STListeArticleRemiseUnitaire stInitialisationModif est un STListeArticleModif sListePrefixePoids est une chaîne sListePrefixePrix est une chaîne sCodePromo50, sIDPromo50 est une chaîne nMontantRemise50, nMontantRemise_CumulPerso, nQteControle est un numérique xCompteurboucle est un entier bSalarie, bOffre10, bSalarieControle, bCompteurGlobalPoidsPrix, bModif est un booléen bSalarie = Faux bOffre10 = Faux bSalarieControle = Faux bModif = Vrai bCompteurGlobalPoidsPrix = Faux sCodePromo50 = "OFFRE50_202409" sIDPromo50 = "OFFRE50" nMontantRemise50 = 50.00 // METTRE MONTANT CUMUL REMISE POUR ACTIVER LE CUMUL 65.00 DANS LE CAS DE 30+50 - LA VARIABLE bBlocageSalarie DOIT ETRE ALORS A Faux nMontantRemise_CumulPerso = 50.00 sListePrefixePoids = "21,23,25,27,29" sListePrefixePrix = "02,20,22,24,26,28" //Trace("Montant Remise : " + nMontantRemise50) //Trace("Flag : " + {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable}) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES POIDS-PRIX ET DES QUANTITES UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI bModif = Vrai ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement //Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Gratuit") taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilPoidsPrix1 FIN SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Remise") taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompilUnitaire FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} //DETERMINATION LIGNES POIDS-PRIX OU UNITAIRE //Trace("1",{"Fiche_caisse_1024.table_article.CODE",indChamp} + "/" + Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) + "/" + Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2))) SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS //Trace("Valeur TableauPoids : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.QTE",indChamp}) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 SINON taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 bCompteurGlobalPoidsPrix = Vrai FIN SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 = 2 ALORS taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = Round({"Fiche_caisse_1024.table_article.QTE",indChamp},3) UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) //Trace("Idart Poids : " + UnArticlePoidsPrix2.nIdart2) SINON SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePrix,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS //Trace("Valeur TableauPrix : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} SINON taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} bCompteurGlobalPoidsPrix = Vrai FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) //Trace("Idart Prix : " + UnArticlePoidsPrix2.nIdart2) SINON SI nQteControle = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo50 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 0 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn = 0 //Trace("UniteRemise1 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].NOTA",indChamp} = sIDPromo50 SI bSalarie = Faux ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TTC",indChamp},2) FIN FIN SINON taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn += 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 //Trace("UniteRemise2 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) FIN FIN SINON //Trace("Non trouvé") FIN FIN FIN //Trace("Fin boucle Pour Qte = 1") //Info("Fin boucle Pour Qte = 1") POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES QUANTITES NON UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement //Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Remise") taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompil FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI nQteControle >1 ALORS //Trace("Ligne Qte > 1 : " + {"Fiche_caisse_1024.table_article",indChamp}) taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemise = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemise += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemise = 2 taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemise += 1 taListeIDartRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} FIN SINON //Trace("Non trouvé") FIN FIN FIN //Trace("Fin boucle Pour Qte> 1") //APPLICATION DE LA REMISE SUR POIDS PRIX //Trace("bCompteurGlobalPoidsPrix : " + bCompteurGlobalPoidsPrix) SI bCompteurGlobalPoidsPrix = Vrai ALORS nTestIdart est un numérique POUR TOUT ELEMENT nTestIdart, sNIndiceTest DE taListeIDartPoidsPrix //Trace("Valeur Test : " + nTestIdart) taListeIDartPoidsPrixTri est un tableau associatif de numérique xCompteurLignePoidsPrix, xNbLignePoidsPrix, xNbLigneAnnulePoidsPrix, xIndicePoidsPrix est un entier xCompteurLignePoidsPrix = 0 POUR TOUT ELEMENT UnArticlePoidsPrix2 DE taListeArticlePoidsPrix2 //Trace("Tab2-3 : " + UnArticlePoidsPrix2.nIdart2 + " / " + UnArticlePoidsPrix2.xIndiceLigne2 + " / " + UnArticlePoidsPrix2.nNombreEnCaisse2) SI nTestIdart = UnArticlePoidsPrix2.nIdart2 ALORS taListeIDartPoidsPrixTri[UnArticlePoidsPrix2.xIndiceLigne2] = UnArticlePoidsPrix2.nNombreEnCaisse2 xCompteurLignePoidsPrix += 1 FIN FIN SI xCompteurLignePoidsPrix > 1 ALORS xNbLignePoidsPrix = PartieEntière(xCompteurLignePoidsPrix / 2) xNbLigneAnnulePoidsPrix = xNbLignePoidsPrix nValeurPoidsPrix est un numérique //Trace("Compteur : " + xCompteurLignePoidsPrix + " PartieEntiere : " + xNbLignePoidsPrix + " Annule : " + xNbLigneAnnulePoidsPrix) Trie(taListeIDartPoidsPrixTri,ttCroissant) POUR TOUT ELEMENT nValeurPoidsPrix, xIndice DE taListeIDartPoidsPrixTri xIndicePoidsPrix = xIndice SI xNbLignePoidsPrix > 0 ALORS //Trace("Valeur1 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sCodePromo50 xNbLignePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xNbLigneAnnulePoidsPrix > 0 ET bSalarie = Faux ALORS //Trace("Valeur2 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].COL_PROMO",indChamp} = 1 xNbLigneAnnulePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("Fin boucle Poids/Prix") FIN //APPLICATION DE LA REMISE SUR AUTRES ARTICLES AVEC QTE >1 sIdartRemise, sNIndiceTestRemise est une chaîne xQtePourRemise, xQteNouvelleRemise, xQteResteRemise, xQte_Pts_Fidel, xQte_Totale est un entier nQte_Decimale est un numérique POUR TOUT ELEMENT xNIndiceTestRemise, IdartRemise DE taListeIDartRemise //Trace("Valeur Test Remise: " + IdartRemise) //POUR LA GESTION DES LIGNES A REMISER AVEC LOYALTY OU SALARIE EN DEHORS DU CALCUL AJOUTER QTE 1 A LA QUANTITE A DEDUIRE nQte_Decimale = PartieDécimale(taListeArticleRemise[IdartRemise].xQteRemise / 2) SI nQte_Decimale > 0 ALORS xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise + taListeArticleRemiseUnitaire[IdartRemise].xQteRemiseUn SINON xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise FIN xQtePourRemise = PartieEntière(xQte_Totale / 2) xQte_Pts_Fidel = xQte_Totale - (PartieEntière(xQte_Totale / 2) * 2) //Trace("xQte_Pts_Fidel : " + xQte_Pts_Fidel) //Trace("Partie Entiere : " + xQtePourRemise) //Trace("Partie Décimale : " + nQte_Decimale) //Trace("UniteRemise : " + taListeArticleRemise[IdartRemise].xUniteRemise) //Trace("MultiLigne : " + taListeArticleRemise[IdartRemise].xMultiLigneRemise) SI xQtePourRemise > 0 ALORS taListeIDartAjout[IdartRemise] = xQtePourRemise taListeIDartAjout2[IdartRemise] = xQte_Pts_Fidel SI taListeArticleRemise[IdartRemise].xUniteRemise = 2 ALORS xQteNouvelleRemise = ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQtePourRemise) //Trace("xIndiceRemise : " + taListeArticleRemise[IdartRemise].xIndiceRemise) //Trace("xQteRemise : " + taListeArticleRemise[IdartRemise].xQteRemise) //Trace("Soustraction : " + ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQtePourRemise)) //Trace("xQteNouvelleRemise : " + xQteNouvelleRemise) SI xQteNouvelleRemise > 0 ALORS SI xQteNouvelleRemise - xQte_Pts_Fidel > 0 ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise - xQte_Pts_Fidel SINON {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise FIN //Trace("Différence xQteNouvelleRemise - xQte_Pts_Fidel : " + (xQteNouvelleRemise - xQte_Pts_Fidel)) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 xQteResteRemise = 0 //Trace("Reste Qte>0 : " + xQteResteRemise) SINON SI xQteNouvelleRemise = 0 ALORS SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 ALORS xQteResteRemise = xQtePourRemise //Trace("Reste Qte 1 : " + xQteResteRemise) FIN SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} > 1 ALORS xQteNouvelleRemise = 1 //xQteNouvelleRemise = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1 //Trace("xQteNouvelleRemise -= 1 : " + xQteNouvelleRemise) xQteResteRemise = xQtePourRemise - ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1) //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp}) //Trace("Reste Qte >1 : " + xQteResteRemise) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) SINON {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp},2) FIN {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 FIN SINON // xQteNouvelleRemise < 0 SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 ALORS xQteResteRemise = xQtePourRemise //Trace("Reste Qte <0-1: " + xQteResteRemise) FIN SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} > 1 ALORS xQteNouvelleRemise = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1 //{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PTS_FIDEL",indChamp} = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQteResteRemise //Trace("PtsFidel3 : " + {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PTS_FIDEL",indChamp}) //Trace("xQteNouvelleRemise : " + xQteNouvelleRemise ) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 xQteResteRemise = xQtePourRemise - xQteNouvelleRemise //Trace("Reste Qte <0-2: " + xQteResteRemise) FIN FIN SINON // taListeArticleRemise[IdartRemise].xUniteRemise = 1 //Trace("UniteRemise = 1 : " + taListeArticleRemise[IdartRemise].xUniteRemise) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 FIN //Trace("Reste Qte Final : " + xQteResteRemise) TANTQUE xQteResteRemise > 0 xCompteurboucle += 1 //Trace("xQteResteRemise boucle : " + xQteResteRemise) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = IdartRemise ALORS xQteNouvelleRemise = {"Fiche_caisse_1024.table_article.QTE",indChamp} - xQteResteRemise //Trace("xQteNouvelleRemise boucle : " + xQteNouvelleRemise) SI xQteNouvelleRemise > 0 ALORS {"Fiche_caisse_1024.table_article.QTE",indChamp} = xQteNouvelleRemise SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.Remise",indChamp}/100)),2) SINON {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) FIN {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.nota",indChamp} = sIDPromo50 xQteResteRemise = 0 SINON SI xQteNouvelleRemise = 0 ALORS SI {"Fiche_caisse_1024.table_article.QTE",indChamp} = 1 ALORS //xQteResteRemise = xQtePourRemise FIN SI {"Fiche_caisse_1024.table_article.QTE",indChamp} > 1 ALORS xQteNouvelleRemise = 1 {"Fiche_caisse_1024.table_article.QTE",indChamp} = xQteNouvelleRemise SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.Remise",indChamp}/100)),2) SINON {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) FIN {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.nota",indChamp} = sIDPromo50 xQteResteRemise = xQteResteRemise - xQteNouvelleRemise FIN SINON // xQteNouvelleRemise < 0 - xQteResteRemise reste inchangé FIN FIN FIN SI xCompteurboucle = 3 ALORS xQteResteRemise = 0 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //Trace("Fin boucle article Qte >1") // AJOUT DES LIGNES AVEC REMISE OFFRE 50% sIdartAjout est une chaîne nQteAjout est un numérique POUR TOUT ELEMENT nQteAjout, sIdartAjout DE taListeIDartAjout HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout {"Fiche_caisse_1024.table_article.remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(nQteAjout*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromo50 nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout remise 50%") // AJOUT DES LIGNES AVEC REMISE OFFRE LOYALTY ET SALARIE sIdartAjout2 est une chaîne nQteAjout2 est un numérique POUR TOUT ELEMENT nQteAjout2, sIdartAjout2 DE taListeIDartAjout2 HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2) SI HTrouve({"ARTICLE",indFichier}) = Vrai _ET_ nQteAjout2 > 0 ALORS //Trace("nQteAjout2 : " + nQteAjout2) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2 {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(nQteAjout*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} //{"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIDPromo50 nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne remise simple") //{"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Vrai FIN //OFFRE 50% HUILES 202409 SI DateDuJour >= "20240829" ET DateDuJour <= "20240915" ALORS //Trace("50% HUILES 202409") xCompteur50Huile est un entier nMontantRemise50Huile, nMontantRemise_CumulPerso50Huile, xNbRemise50Huile, xNbNoRemise50Huile est un numérique taListeIndice50Huile est un tableau associatif de numérique taListeIDartAjoutLigneOffert50Huile est un tableau associatif de numérique taListeIDartAjoutLigne50Huile est un tableau associatif de numérique sCodePromo50Huile, sTxtSql_50Huile, sIdentifiant50Huile est une chaîne xNbOffert50Huile est un entier bCalculNoRemise50Huile, bCalculRemise50Huile, bSalarie50Huile, bMag50Huile est un booléen sCodePromo50Huile="50Huile_202409" sIdentifiant50Huile="BLOQUE_202409" xNbOffert50Huile = 0 xNbNoRemise50Huile = 0 nMontantRemise50Huile = 50.00 bSalarie50Huile = Faux bMag50Huile = Vrai nMontantRemise_CumulPerso50Huile = 65.00 sdReq_Source_50Huile est une Source de Données sTxtSql_50Huile = [ SELECT ARTICLE.IDART FROM ARTICLE INNER JOIN FOURNISSEUR_ARTICLE ON FOURNISSEUR_ARTICLE.IDART=ARTICLE.IDART WHERE ARTICLE.ID_FAB=500 AND FOURNISSEUR_ARTICLE.IDFOU=99 AND IDSSFAM IN(1273) AND ARTICLE.CODE <>111121 ] sTxtSql_50Huile = ChaîneConstruit(sTxtSql_50Huile) SI HExécuteRequêteSQL(sdReq_Source_50Huile,hRequêteDéfaut,sTxtSql_50Huile) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche(sdReq_Source_50Huile,"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve(sdReq_Source_50Huile) = Vrai ALORS //Trace("Trouve") xCompteur50Huile += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndice50Huile[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteur50Huile >= 2 ALORS Trie(taListeIndice50Huile,ttCroissant) xNbOffert50Huile = PartieEntière(xCompteur50Huile/2) xNbNoRemise50Huile = xNbOffert50Huile xNbRemise50Huile = xCompteur50Huile - (xNbOffert50Huile + xNbNoRemise50Huile) //Trace("xNbOffert50Huile : " + xNbOffert50Huile + " / xNbNoRemise50Huile : " + xNbNoRemise50Huile + " / xNbRemise50Huile : " + xNbRemise50Huile) POUR TOUT ELEMENT xSIdart, xIndice DE taListeIndice50Huile //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffert50Huile_Avant : " + xNbOffert50Huile) bCalculNoRemise50Huile = Vrai bCalculRemise50Huile = Vrai SI xNbOffert50Huile > 0 ALORS //Trace("xNbOffert50Huile2 : " + xNbOffert50Huile) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffert50Huile ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemise50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromo50Huile xNbOffert50Huile = 0 bCalculNoRemise50Huile = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffert50Huile ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffert50Huile[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffert50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffert50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffert50Huile = 0 bCalculNoRemise50Huile = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffert50Huile ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemise50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromo50Huile xNbOffert50Huile -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemise50Huile = Faux FIN bCalculRemise50Huile = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemise50Huile : " + bCalculNoRemise50Huile + " / xNbNoRemise50Huile : " + xNbNoRemise50Huile) SI bCalculNoRemise50Huile = Vrai _ET_ xNbNoRemise50Huile > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemise50Huile ALORS //Trace("xNbNoRemise50Huile1 : " + xNbNoRemise50Huile) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemise50Huile = 0 bCalculRemise50Huile = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemise50Huile ALORS //Trace("xNbNoRemise50Huile2 : " + xNbNoRemise50Huile) taListeIDartAjoutLigne50Huile[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemise50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemise50Huile //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemise50Huile = 0 bCalculRemise50Huile = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemise50Huile ALORS //Trace("xNbNoRemise50Huile3 : " + xNbNoRemise50Huile) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemise50Huile -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemise50Huile = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemise50Huile = Vrai _ET_ xNbRemise50Huile > 0 ALORS //Trace("xNbRemise50Huile1 : " + xNbRemise50Huile) //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 0 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 0 xNbRemise50Huile -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // nMontantRemise50Huile sIdartAjoutOffert50Huile est une chaîne nQteAjoutOffert50Huile est un numérique POUR TOUT ELEMENT nQteAjoutOffert50Huile, sIdartAjoutOffert50Huile DE taListeIDartAjoutLigneOffert50Huile //Trace("nQteAjoutOffert50Huile : " + nQteAjoutOffert50Huile + " / sIdartAjoutOffert50Huile : " + sIdartAjoutOffert50Huile) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffert50Huile) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffert50Huile {"Fiche_caisse_1024.table_article.remise",indChamp} = nMontantRemise50Huile {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromo50Huile nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigne50Huile est une chaîne nQteAjoutLigne50Huile est un numérique POUR TOUT ELEMENT nQteAjoutLigne50Huile, sIdartAjoutLigne50Huile DE taListeIDartAjoutLigne50Huile //Trace("nQteAjoutLigne50Huile : " + nQteAjoutLigne50Huile + " / sIdartAjoutLigne50Huile : " + sIdartAjoutLigne50Huile) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigne50Huile) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigne50Huile : " + sIdartAjoutLigne50Huile) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigne50Huile SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //PROMO TF BIS CAVE A VIN 202409 SI DateDuJour >= "20240916" AND DateDuJour <= "20241002" ALORS //Trace("TF BIS CAVE A VIN 202409") nRemiseTFCave est un numérique sCodePromoTFCave est une chaîne sCodePromoTFCave = "TF_Cave_202409" nRemiseTFCave = 15.00 SI {"gnSITE",indVariable} IN(1,2,7,8,11,12,16,19,21,22,25,26,27,28,30,31,32,39,40,41,42,44,45,46,49,52,54,55,56,58,59,62,63,64,67,68,72,74,76,79,80,82,84,89,91,92,93,94,95,97,98,99,100,101,102,103,104,111,112,113,114,115,116,117,118,119,120,122,123,124,128,129,130,131,132,133,139,141,147,149,151,154,155,156,157,159,165,167,168,173,174,178,180,181,183,185,186,187,188,192,195,197,198,199,200,201,204,205,207,208,209,211,213,217,226,228,229,231,232,233,234,237,240,241,242,243,244,246,247,248,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTFCave ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTFCave {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromoTFCave FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TFCAVE_VIN2_202409 SI DateDuJour >= "20240916" ET DateDuJour <= "20241002" ALORS //Trace("TF CAVE_VIN2_202409") sCodePromoTFCAVE2, sTxtSqlTFCAVE2, sIdentifiantTFCAVE2 est une chaîne xNbOffertTFCAVE2, xNbNoRemiseTFCAVE2, xNbRemiseTFCAVE2, xCompteurTFCAVE2 est un entier bCalculNoRemiseTFCAVE2, bCalculRemiseTFCAVE2, bSalarieTFCAVE2 est un booléen taListeIndiceTFCAVE2 est un tableau associatif de numérique taListeIDartAjoutLigneOffertTFCAVE2 est un tableau associatif de numérique taListeIDartAjoutLigneTFCAVE2 est un tableau associatif de numérique sCodePromoTFCAVE2="TFCAVE2_202409" sIdentifiantTFCAVE2="BLOQUE_202409" xNbOffertTFCAVE2 = 0 xNbNoRemiseTFCAVE2 = 0 bSalarieTFCAVE2 = Faux sdReq_SourceTFCAVE2 est une Source de Données SI {"gnSITE",indVariable} IN(1,2,7,8,11,12,16,19,21,22,25,26,27,28,30,31,32,39,40,41,42,44,45,46,49,52,54,55,56,58,59,62,63,64,67,68,72,74,76,79,80,82,84,89,91,92,93,94,95,97,98,99,100,101,102,103,104,111,112,113,114,115,116,117,118,119,120,122,123,124,128,129,130,131,132,133,139,141,147,149,151,154,155,156,157,159,165,167,168,173,174,178,180,181,183,185,186,187,188,192,195,197,198,199,200,201,204,205,207,208,209,211,213,217,226,228,229,231,232,233,234,237,240,241,242,243,244,246,247,248,250) ALORS sTxtSqlTFCAVE2 = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(599893,599909,599931,599920,599918) ] sTxtSqlTFCAVE2 = ChaîneConstruit(sTxtSqlTFCAVE2) SI HExécuteRequêteSQL(sdReq_SourceTFCAVE2,hRequêteDéfaut,sTxtSqlTFCAVE2) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche(sdReq_SourceTFCAVE2,"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve(sdReq_SourceTFCAVE2) = Vrai ALORS //Trace("Trouve") //SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoTFCAVE2 _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantTFCAVE2 ALORS //SINON xCompteurTFCAVE2 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTFCAVE2[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} //FIN FIN FIN SI xCompteurTFCAVE2 > 2 ALORS Trie(taListeIndiceTFCAVE2,ttCroissant) xNbOffertTFCAVE2 = PartieEntière(xCompteurTFCAVE2/3) xNbNoRemiseTFCAVE2 = 2 * xNbOffertTFCAVE2 xNbRemiseTFCAVE2 = xCompteurTFCAVE2 - (xNbOffertTFCAVE2 + xNbNoRemiseTFCAVE2) //Trace("xNbOffertTFCAVE2 : " + xNbOffertTFCAVE2 + " / xNbNoRemiseTFCAVE2 : " + xNbNoRemiseTFCAVE2 + " / xNbRemiseTFCAVE2 : " + xNbRemiseTFCAVE2) POUR TOUT ELEMENT xSIdart, xIndice DE taListeIndiceTFCAVE2 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertTFCAVE2_Avant : " + xNbOffertTFCAVE2) bCalculNoRemiseTFCAVE2 = Vrai bCalculRemiseTFCAVE2 = Vrai SI xNbOffertTFCAVE2 > 0 ALORS //Trace("xNbOffertTFCAVE22 : " + xNbOffertTFCAVE2) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertTFCAVE2 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTFCAVE2 xNbOffertTFCAVE2 = 0 bCalculNoRemiseTFCAVE2 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertTFCAVE2 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertTFCAVE2[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertTFCAVE2 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertTFCAVE2 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertTFCAVE2 = 0 bCalculNoRemiseTFCAVE2 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertTFCAVE2 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTFCAVE2 xNbOffertTFCAVE2 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseTFCAVE2 = Faux FIN bCalculRemiseTFCAVE2 = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseTFCAVE2 : " + bCalculNoRemiseTFCAVE2 + " / xNbNoRemiseTFCAVE2 : " + xNbNoRemiseTFCAVE2) SI bCalculNoRemiseTFCAVE2 = Vrai _ET_ xNbNoRemiseTFCAVE2 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTFCAVE2 ALORS //Trace("xNbNoRemiseTFCAVE21 : " + xNbNoRemiseTFCAVE2) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemiseTFCAVE2 = 0 bCalculRemiseTFCAVE2 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseTFCAVE2 ALORS //Trace("xNbNoRemiseTFCAVE22 : " + xNbNoRemiseTFCAVE2) taListeIDartAjoutLigneTFCAVE2[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTFCAVE2 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTFCAVE2 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_ÿÿÿÿÿÿÿÿ î ¤//FRANCHISES SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //PROMO TFBOISSON_202408 SI DateDuJour >= "20240808" ET DateDuJour <= "20240828" ALORS //Trace("TF BOISSON 202408") xCompteurOPBOISSON, nXIndiceTFBOISSON, nXDiviseurTFBOISSON est un entier xNbLigneTFBOISSON, xNbLigneAnnulRemiseTFBOISSON, xNbLigneNormaleTFBOISSON, xRemiseTFBOISSON est un numérique STListeArticleOPBOISSON est une Structure nXCompteurOPBOISSON est un entier nXOccurenceOPBOISSON est un entier nXIdartOPBOISSON est un entier FIN taListeArticleOPBOISSON est un tableau associatif de STListeArticleOPBOISSON stInitialisationPourCompilOPBOISSON est un STListeArticleOPBOISSON taListeIndiceOPBOISSON est un tableau associatif de numérique taListeIDartAjoutLigneOffertOPBOISSON est un tableau associatif de numérique taListeIDartAjoutLigneOPBOISSON est un tableau associatif de numérique taTableauPositionTFBOISSON est un tableau associatif de numérique sCodePromoOPBOISSON, sTxtSql_OPBOISSON, sIdentifiantOPBOISSON est une chaîne xNRemiseOPBOISSON est un numérique xNbOffertOPBOISSON, xNbNoRemiseOPBOISSON, xNbRemiseOPBOISSON, nXNbNouvelleQteOPBOISSON est un entier bCalculNoRemiseOPBOISSON, bCalculRemiseOPBOISSON, bSalarieOPBOISSON est un booléen sdReq_Source_OPBOISSON est une Source de Données sCodePromoOPBOISSON="TFBOISSON_202408" sIdentifiantOPBOISSON="BLOQUE_202408" xNbOffertOPBOISSON = 0 xNbNoRemiseOPBOISSON = 100.00 bSalarieOPBOISSON = Faux SI {"GNIDCLI",indVariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indVariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieOPBOISSON = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") //SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOPBOISSON _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOPBOISSON ALORS //SINON xCompteurOPBOISSON += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceOPBOISSON[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} //FIN FIN FIN SI xCompteurOPBOISSON > 2 ALORS Trie(taListeIndiceOPBOISSON,ttCroissant) xNbOffertOPBOISSON = PartieEntière(xCompteurOPBOISSON/3) xNbNoRemiseOPBOISSON = 2 * xNbOffertOPBOISSON xNbRemiseOPBOISSON = xCompteurOPBOISSON - (xNbOffertOPBOISSON + xNbNoRemiseOPBOISSON) //Trace("xNbOffertOPBOISSON : " + xNbOffertOPBOISSON + " / xNbNoRemiseOPBOISSON : " + xNbNoRemiseOPBOISSON + " / xNbRemiseOPBOISSON : " + xNbRemiseOPBOISSON) POUR TOUT ELEMENT xSIdart, xIndice DE taListeIndiceOPBOISSON //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOPBOISSON_Avant : " + xNbOffertOPBOISSON) bCalculNoRemiseOPBOISSON = Vrai bCalculRemiseOPBOISSON = Vrai SI xNbOffertOPBOISSON > 0 ALORS //Trace("xNbOffertOPBOISSON2 : " + xNbOffertOPBOISSON) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOPBOISSON ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOPBOISSON xNbOffertOPBOISSON = 0 bCalculNoRemiseOPBOISSON = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOPBOISSON ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOPBOISSON[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertOPBOISSON {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOPBOISSON {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOPBOISSON = 0 bCalculNoRemiseOPBOISSON = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOPBOISSON ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOPBOISSON xNbOffertOPBOISSON -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOPBOISSON = Faux FIN bCalculRemiseOPBOISSON = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseOPBOISSON : " + bCalculNoRemiseOPBOISSON + " / xNbNoRemiseOPBOISSON : " + xNbNoRemiseOPBOISSON) SI bCalculNoRemiseOPBOISSON = Vrai _ET_ xNbNoRemiseOPBOISSON > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOPBOISSON ALORS //Trace("xNbNoRemiseOPBOISSON1 : " + xNbNoRemiseOPBOISSON) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemiseOPBOISSON = 0 bCalculRemiseOPBOISSON = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseOPBOISSON ALORS //Trace("xNbNoRemiseOPBOISSON2 : " + xNbNoRemiseOPBOISSON) taListeIDartAjoutLigneOPBOISSON[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOPBOISSON {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOPBOISSON //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseOPBOISSON = 0 bCalculRemiseOPBOISSON = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseOPBOISSON ALORS //Trace("xNbNoRemiseOPBOISSON3 : " + xNbNoRemiseOPBOISSON) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemiseOPBOISSON -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemiseOPBOISSON = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemiseOPBOISSON = Vrai _ET_ xNbRemiseOPBOISSON > 0 ALORS //Trace("xNbRemiseOPBOISSON1 : " + xNbRemiseOPBOISSON) //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} SI bSalarieOPBOISSON = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 0 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 0 xNbRemiseOPBOISSON -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertOPBOISSON est une chaîne nQteAjoutOffertOPBOISSON est un numérique POUR TOUT ELEMENT nQteAjoutOffertOPBOISSON, sIdartAjoutOffertOPBOISSON DE taListeIDartAjoutLigneOffertOPBOISSON //Trace("nQteAjoutOffertOPBOISSON : " + nQteAjoutOffertOPBOISSON + " / sIdartAjoutOffertOPBOISSON : " + sIdartAjoutOffertOPBOISSON) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertOPBOISSON) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertOPBOISSON {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOPBOISSON nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneOPBOISSON est une chaîne nQteAjoutLigneOPBOISSON est un numérique POUR TOUT ELEMENT nQteAjoutLigneOPBOISSON, sIdartAjoutLigneOPBOISSON DE taListeIDartAjoutLigneOPBOISSON //Trace("nQteAjoutLigneOPBOISSON : " + nQteAjoutLigneOPBOISSON + " / sIdartAjoutLigneOPBOISSON : " + sIdartAjoutLigneOPBOISSON) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOPBOISSON) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneOPBOISSON : " + sIdartAjoutLigneOPBOISSON) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOPBOISSON SI bSalarieOPBOISSON = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //OFFRE 50% 202409 SI DateDuJour >= "20240829" ET DateDuJour <= "20240922" ALORS SI DateDuJour >= "20240915" ET {"gnSITE",indVariable} IN(3,9,19,73,75,89,110,141,176) ALORS RETOUR FIN STListeArticlePoidsPrix1 est une Structure nNombreEnCaisse1 est un numérique xCompteur1 est un entier FIN STListeArticlePoidsPrix2 est une Structure nNombreEnCaisse2 est un numérique nIdart2 est un numérique xIndiceLigne2 est un entier FIN STListeArticleRemiseUnitaire est une Structure xIndiceRemiseUn est un entier xQteRemiseUn est un entier xUniteRemiseUn est un entier xMultiLigneRemiseUn est un entier FIN STListeArticleRemise est une Structure xIndiceRemise est un entier xQteRemise est un entier xUniteRemise est un entier xMultiLigneRemise est un entier FIN STListeArticleModif est une Structure nXIndiceModif est un entier FIN taListeArticlePoidsPrix1 est un tableau associatif de STListeArticlePoidsPrix1 UnArticlePoidsPrix2 est un STListeArticlePoidsPrix2 taListeArticlePoidsPrix2 est un tableau de STListeArticlePoidsPrix2 taListeArticleRemiseUnitaire est un tableau associatif de STListeArticleRemiseUnitaire taListeArticleRemise est un tableau associatif de STListeArticleRemise taListeIDartPoidsPrix est un tableau associatif de numérique taListeIDartRemise est un tableau associatif de numérique taListeIDartModif est un tableau associatif de STListeArticleModif taListeIDartAjout est un tableau associatif de numérique taListeIDartAjout2 est un tableau associatif de numérique stInitialisationPourCompilPoidsPrix1 est un STListeArticlePoidsPrix1 stInitialisationPourCompilPoidsPrix2 est un STListeArticlePoidsPrix2 stInitialisationRemisePourCompil est un STListeArticleRemise stInitialisationRemisePourCompilUnitaire est un STListeArticleRemiseUnitaire stInitialisationModif est un STListeArticleModif sListePrefixePoids est une chaîne sListePrefixePrix est une chaîne sCodePromo50, sIDPromo50 est une chaîne nMontantRemise50, nMontantRemise_CumulPerso, nQteControle est un numérique xCompteurboucle est un entier bSalarie, bOffre10, bSalarieControle, bCompteurGlobalPoidsPrix, bModif est un booléen bSalarie = Faux bOffre10 = Faux bSalarieControle = Faux bModif = Vrai bCompteurGlobalPoidsPrix = Faux sCodePromo50 = "OFFRE50_202409" sIDPromo50 = "OFFRE50" nMontantRemise50 = 50.00 // METTRE MONTANT CUMUL REMISE POUR ACTIVER LE CUMUL 65.00 DANS LE CAS DE 30+50 - LA VARIABLE bBlocageSalarie DOIT ETRE ALORS A Faux nMontantRemise_CumulPerso = 50.00 sListePrefixePoids = "21,23,25,27,29" sListePrefixePrix = "02,20,22,24,26,28" //Trace("Montant Remise : " + nMontantRemise50) //Trace("Flag : " + {"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable}) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES POIDS-PRIX ET DES QUANTITES UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI bModif = Vrai ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement //Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Gratuit") taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilPoidsPrix1 FIN SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Remise") taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompilUnitaire FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} //DETERMINATION LIGNES POIDS-PRIX OU UNITAIRE //Trace("1",{"Fiche_caisse_1024.table_article.CODE",indChamp} + "/" + Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) + "/" + Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2))) SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePoids,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS //Trace("Valeur TableauPoids : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.QTE",indChamp}) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 SINON taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 += 1 bCompteurGlobalPoidsPrix = Vrai FIN SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteur1 = 2 ALORS taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = Round({"Fiche_caisse_1024.table_article.QTE",indChamp},3) UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) //Trace("Idart Poids : " + UnArticlePoidsPrix2.nIdart2) SINON SI Taille({"Fiche_caisse_1024.table_article.CODE",indChamp}) = 13 ET Position(sListePrefixePrix,Gauche({"Fiche_caisse_1024.table_article.CODE",indChamp},2)) >= 1 ALORS //Trace("Valeur TableauPrix : " + taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 + " Valeur ticket : " + {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}) SI taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = 0 ALORS taListeArticlePoidsPrix1[{"Fiche_caisse_1024.table_article.IDART",indChamp}].nNombreEnCaisse1 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} SINON taListeIDartPoidsPrix[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} bCompteurGlobalPoidsPrix = Vrai FIN UnArticlePoidsPrix2.nNombreEnCaisse2 = {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} UnArticlePoidsPrix2.nIdart2 = {"Fiche_caisse_1024.table_article.IDART",indChamp} UnArticlePoidsPrix2.xIndiceLigne2 = {"Fiche_caisse_1024.table_article",indChamp} TableauAjoute(taListeArticlePoidsPrix2,UnArticlePoidsPrix2) //Trace("Idart Prix : " + UnArticlePoidsPrix2.nIdart2) SINON SI nQteControle = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 ALORS SI taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 ALORS {"Fiche_caisse_1024.table_article.Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromo50 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 0 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn = 0 //Trace("UniteRemise1 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].NOTA",indChamp} = sIDPromo50 SI bSalarie = Faux ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn+"].PRIX_TTC",indChamp},2) FIN FIN SINON taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemiseUn = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemiseUn += 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn = 1 taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemiseUn = 1 //Trace("UniteRemise2 : " + taListeArticleRemiseUnitaire[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemiseUn) FIN FIN SINON //Trace("Non trouvé") FIN FIN FIN //Trace("Fin boucle Pour Qte = 1") //Info("Fin boucle Pour Qte = 1") POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} // TRAITEMENT DES QUANTITES NON UNITAIRES SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN //Trace("Idart",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Initialisation du tableau de référencement //Trace("Trouve",Fiche_caisse_1024.table_article.IDART + "/"+Fiche_caisse_1024.table_article.code) SI taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS //Trace("Vrai Remise") taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationRemisePourCompil FIN nQteControle = {"Fiche_caisse_1024.table_article.QTE",indChamp} SI nQteControle >1 ALORS //Trace("Ligne Qte > 1 : " + {"Fiche_caisse_1024.table_article",indChamp}) taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIndiceRemise = {"Fiche_caisse_1024.table_article",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xQteRemise += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xUniteRemise = 2 taListeArticleRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xMultiLigneRemise += 1 taListeIDartRemise[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = {"Fiche_caisse_1024.table_article.QTE",indChamp} FIN SINON //Trace("Non trouvé") FIN FIN FIN //Trace("Fin boucle Pour Qte> 1") //APPLICATION DE LA REMISE SUR POIDS PRIX //Trace("bCompteurGlobalPoidsPrix : " + bCompteurGlobalPoidsPrix) SI bCompteurGlobalPoidsPrix = Vrai ALORS nTestIdart est un numérique POUR TOUT ELEMENT nTestIdart, sNIndiceTest DE taListeIDartPoidsPrix //Trace("Valeur Test : " + nTestIdart) taListeIDartPoidsPrixTri est un tableau associatif de numérique xCompteurLignePoidsPrix, xNbLignePoidsPrix, xNbLigneAnnulePoidsPrix, xIndicePoidsPrix est un entier xCompteurLignePoidsPrix = 0 POUR TOUT ELEMENT UnArticlePoidsPrix2 DE taListeArticlePoidsPrix2 //Trace("Tab2-3 : " + UnArticlePoidsPrix2.nIdart2 + " / " + UnArticlePoidsPrix2.xIndiceLigne2 + " / " + UnArticlePoidsPrix2.nNombreEnCaisse2) SI nTestIdart = UnArticlePoidsPrix2.nIdart2 ALORS taListeIDartPoidsPrixTri[UnArticlePoidsPrix2.xIndiceLigne2] = UnArticlePoidsPrix2.nNombreEnCaisse2 xCompteurLignePoidsPrix += 1 FIN FIN SI xCompteurLignePoidsPrix > 1 ALORS xNbLignePoidsPrix = PartieEntière(xCompteurLignePoidsPrix / 2) xNbLigneAnnulePoidsPrix = xNbLignePoidsPrix nValeurPoidsPrix est un numérique //Trace("Compteur : " + xCompteurLignePoidsPrix + " PartieEntiere : " + xNbLignePoidsPrix + " Annule : " + xNbLigneAnnulePoidsPrix) Trie(taListeIDartPoidsPrixTri,ttCroissant) POUR TOUT ELEMENT nValeurPoidsPrix, xIndice DE taListeIDartPoidsPrixTri xIndicePoidsPrix = xIndice SI xNbLignePoidsPrix > 0 ALORS //Trace("Valeur1 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sCodePromo50 xNbLignePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xNbLigneAnnulePoidsPrix > 0 ET bSalarie = Faux ALORS //Trace("Valeur2 TableauPoidsPrix : " + xIndice + " /" + nValeurPoidsPrix) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].Remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].PRIX_TTC",indChamp}*(1-nMontantRemise50/100)),2) {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+xIndicePoidsPrix+"].COL_PROMO",indChamp} = 1 xNbLigneAnnulePoidsPrix -= 1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("Fin boucle Poids/Prix") FIN //APPLICATION DE LA REMISE SUR AUTRES ARTICLES AVEC QTE >1 sIdartRemise, sNIndiceTestRemise est une chaîne xQtePourRemise, xQteNouvelleRemise, xQteResteRemise, xQte_Pts_Fidel, xQte_Totale est un entier nQte_Decimale est un numérique POUR TOUT ELEMENT xNIndiceTestRemise, IdartRemise DE taListeIDartRemise //Trace("Valeur Test Remise: " + IdartRemise) //POUR LA GESTION DES LIGNES A REMISER AVEC LOYALTY OU SALARIE EN DEHORS DU CALCUL AJOUTER QTE 1 A LA QUANTITE A DEDUIRE nQte_Decimale = PartieDécimale(taListeArticleRemise[IdartRemise].xQteRemise / 2) SI nQte_Decimale > 0 ALORS xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise + taListeArticleRemiseUnitaire[IdartRemise].xQteRemiseUn SINON xQte_Totale = taListeArticleRemise[IdartRemise].xQteRemise FIN xQtePourRemise = PartieEntière(xQte_Totale / 2) xQte_Pts_Fidel = xQte_Totale - (PartieEntière(xQte_Totale / 2) * 2) //Trace("xQte_Pts_Fidel : " + xQte_Pts_Fidel) //Trace("Partie Entiere : " + xQtePourRemise) //Trace("Partie Décimale : " + nQte_Decimale) //Trace("UniteRemise : " + taListeArticleRemise[IdartRemise].xUniteRemise) //Trace("MultiLigne : " + taListeArticleRemise[IdartRemise].xMultiLigneRemise) SI xQtePourRemise > 0 ALORS taListeIDartAjout[IdartRemise] = xQtePourRemise taListeIDartAjout2[IdartRemise] = xQte_Pts_Fidel SI taListeArticleRemise[IdartRemise].xUniteRemise = 2 ALORS xQteNouvelleRemise = ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQtePourRemise) //Trace("xIndiceRemise : " + taListeArticleRemise[IdartRemise].xIndiceRemise) //Trace("xQteRemise : " + taListeArticleRemise[IdartRemise].xQteRemise) //Trace("Soustraction : " + ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQtePourRemise)) //Trace("xQteNouvelleRemise : " + xQteNouvelleRemise) SI xQteNouvelleRemise > 0 ALORS SI xQteNouvelleRemise - xQte_Pts_Fidel > 0 ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise - xQte_Pts_Fidel SINON {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise FIN //Trace("Différence xQteNouvelleRemise - xQte_Pts_Fidel : " + (xQteNouvelleRemise - xQte_Pts_Fidel)) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 xQteResteRemise = 0 //Trace("Reste Qte>0 : " + xQteResteRemise) SINON SI xQteNouvelleRemise = 0 ALORS SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 ALORS xQteResteRemise = xQtePourRemise //Trace("Reste Qte 1 : " + xQteResteRemise) FIN SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} > 1 ALORS xQteNouvelleRemise = 1 //xQteNouvelleRemise = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1 //Trace("xQteNouvelleRemise -= 1 : " + xQteNouvelleRemise) xQteResteRemise = xQtePourRemise - ({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1) //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp}) //Trace("Reste Qte >1 : " + xQteResteRemise) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) SINON {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp},2) FIN {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 FIN SINON // xQteNouvelleRemise < 0 SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = 1 ALORS xQteResteRemise = xQtePourRemise //Trace("Reste Qte <0-1: " + xQteResteRemise) FIN SI {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} > 1 ALORS xQteNouvelleRemise = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - 1 //{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PTS_FIDEL",indChamp} = {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} - xQteResteRemise //Trace("PtsFidel3 : " + {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PTS_FIDEL",indChamp}) //Trace("xQteNouvelleRemise : " + xQteNouvelleRemise ) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].QTE",indChamp} = xQteNouvelleRemise {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].Remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].nota",indChamp} = sIDPromo50 {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 xQteResteRemise = xQtePourRemise - xQteNouvelleRemise //Trace("Reste Qte <0-2: " + xQteResteRemise) FIN FIN SINON // taListeArticleRemise[IdartRemise].xUniteRemise = 1 //Trace("UniteRemise = 1 : " + taListeArticleRemise[IdartRemise].xUniteRemise) {"Fiche_caisse_1024.table_article["+taListeArticleRemise[IdartRemise].xIndiceRemise+"].COL_PROMO",indChamp} = 1 FIN //Trace("Reste Qte Final : " + xQteResteRemise) TANTQUE xQteResteRemise > 0 xCompteurboucle += 1 //Trace("xQteResteRemise boucle : " + xQteResteRemise) POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = IdartRemise ALORS xQteNouvelleRemise = {"Fiche_caisse_1024.table_article.QTE",indChamp} - xQteResteRemise //Trace("xQteNouvelleRemise boucle : " + xQteNouvelleRemise) SI xQteNouvelleRemise > 0 ALORS {"Fiche_caisse_1024.table_article.QTE",indChamp} = xQteNouvelleRemise SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.Remise",indChamp}/100)),2) SINON {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) FIN {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.nota",indChamp} = sIDPromo50 xQteResteRemise = 0 SINON SI xQteNouvelleRemise = 0 ALORS SI {"Fiche_caisse_1024.table_article.QTE",indChamp} = 1 ALORS //xQteResteRemise = xQtePourRemise FIN SI {"Fiche_caisse_1024.table_article.QTE",indChamp} > 1 ALORS xQteNouvelleRemise = 1 {"Fiche_caisse_1024.table_article.QTE",indChamp} = xQteNouvelleRemise SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.Remise",indChamp}/100)),2) SINON {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(xQteNouvelleRemise*{"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp},2) FIN {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.nota",indChamp} = sIDPromo50 xQteResteRemise = xQteResteRemise - xQteNouvelleRemise FIN SINON // xQteNouvelleRemise < 0 - xQteResteRemise reste inchangé FIN FIN FIN SI xCompteurboucle = 3 ALORS xQteResteRemise = 0 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //Trace("Fin boucle article Qte >1") // AJOUT DES LIGNES AVEC REMISE OFFRE 50% sIdartAjout est une chaîne nQteAjout est un numérique POUR TOUT ELEMENT nQteAjout, sIdartAjout DE taListeIDartAjout HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout {"Fiche_caisse_1024.table_article.remise",indChamp} = nMontantRemise50 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(nQteAjout*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromo50 nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout remise 50%") // AJOUT DES LIGNES AVEC REMISE OFFRE LOYALTY ET SALARIE sIdartAjout2 est une chaîne nQteAjout2 est un numérique POUR TOUT ELEMENT nQteAjout2, sIdartAjout2 DE taListeIDartAjout2 HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2) SI HTrouve({"ARTICLE",indFichier}) = Vrai _ET_ nQteAjout2 > 0 ALORS //Trace("nQteAjout2 : " + nQteAjout2) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2 {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 SI bSalarie = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round(nQteAjout*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} //{"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIDPromo50 nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne remise simple") //{"COL_ProcGlob_GestionPromoSpecifique.gbPromoDejaAppliquee",indVariable} = Vrai FIN //OFFRE 50% HUILES 202409 SI DateDuJour >= "20240829" ET DateDuJour <= "20240915" ALORS //Trace("50% HUILES 202409") xCompteur50Huile est un entier nMontantRemise50Huile, nMontantRemise_CumulPerso50Huile, xNbRemise50Huile, xNbNoRemise50Huile est un numérique taListeIndice50Huile est un tableau associatif de numérique taListeIDartAjoutLigneOffert50Huile est un tableau associatif de numérique taListeIDartAjoutLigne50Huile est un tableau associatif de numérique sCodePromo50Huile, sTxtSql_50Huile, sIdentifiant50Huile est une chaîne xNbOffert50Huile est un entier bCalculNoRemise50Huile, bCalculRemise50Huile, bSalarie50Huile, bMag50Huile est un booléen sCodePromo50Huile="50Huile_202409" sIdentifiant50Huile="BLOQUE_202409" xNbOffert50Huile = 0 xNbNoRemise50Huile = 0 nMontantRemise50Huile = 50.00 bSalarie50Huile = Faux bMag50Huile = Vrai nMontantRemise_CumulPerso50Huile = 65.00 sdReq_Source_50Huile est une Source de Données sTxtSql_50Huile = [ SELECT ARTICLE.IDART FROM ARTICLE INNER JOIN FOURNISSEUR_ARTICLE ON FOURNISSEUR_ARTICLE.IDART=ARTICLE.IDART WHERE ARTICLE.ID_FAB=500 AND FOURNISSEUR_ARTICLE.IDFOU=99 AND IDSSFAM IN(1273) AND ARTICLE.CODE <>111121 ] sTxtSql_50Huile = ChaîneConstruit(sTxtSql_50Huile) SI HExécuteRequêteSQL(sdReq_Source_50Huile,hRequêteDéfaut,sTxtSql_50Huile) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche(sdReq_Source_50Huile,"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve(sdReq_Source_50Huile) = Vrai ALORS //Trace("Trouve") xCompteur50Huile += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndice50Huile[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteur50Huile >= 2 ALORS Trie(taListeIndice50Huile,ttCroissant) xNbOffert50Huile = PartieEntière(xCompteur50Huile/2) xNbNoRemise50Huile = xNbOffert50Huile xNbRemise50Huile = xCompteur50Huile - (xNbOffert50Huile + xNbNoRemise50Huile) //Trace("xNbOffert50Huile : " + xNbOffert50Huile + " / xNbNoRemise50Huile : " + xNbNoRemise50Huile + " / xNbRemise50Huile : " + xNbRemise50Huile) POUR TOUT ELEMENT xSIdart, xIndice DE taListeIndice50Huile //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffert50Huile_Avant : " + xNbOffert50Huile) bCalculNoRemise50Huile = Vrai bCalculRemise50Huile = Vrai SI xNbOffert50Huile > 0 ALORS //Trace("xNbOffert50Huile2 : " + xNbOffert50Huile) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffert50Huile ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemise50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromo50Huile xNbOffert50Huile = 0 bCalculNoRemise50Huile = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffert50Huile ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffert50Huile[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffert50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffert50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffert50Huile = 0 bCalculNoRemise50Huile = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffert50Huile ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemise50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromo50Huile xNbOffert50Huile -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemise50Huile = Faux FIN bCalculRemise50Huile = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemise50Huile : " + bCalculNoRemise50Huile + " / xNbNoRemise50Huile : " + xNbNoRemise50Huile) SI bCalculNoRemise50Huile = Vrai _ET_ xNbNoRemise50Huile > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemise50Huile ALORS //Trace("xNbNoRemise50Huile1 : " + xNbNoRemise50Huile) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemise50Huile = 0 bCalculRemise50Huile = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemise50Huile ALORS //Trace("xNbNoRemise50Huile2 : " + xNbNoRemise50Huile) taListeIDartAjoutLigne50Huile[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemise50Huile {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemise50Huile //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemise50Huile = 0 bCalculRemise50Huile = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemise50Huile ALORS //Trace("xNbNoRemise50Huile3 : " + xNbNoRemise50Huile) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemise50Huile -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemise50Huile = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemise50Huile = Vrai _ET_ xNbRemise50Huile > 0 ALORS //Trace("xNbRemise50Huile1 : " + xNbRemise50Huile) //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 0 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 0 xNbRemise50Huile -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // nMontantRemise50Huile sIdartAjoutOffert50Huile est une chaîne nQteAjoutOffert50Huile est un numérique POUR TOUT ELEMENT nQteAjoutOffert50Huile, sIdartAjoutOffert50Huile DE taListeIDartAjoutLigneOffert50Huile //Trace("nQteAjoutOffert50Huile : " + nQteAjoutOffert50Huile + " / sIdartAjoutOffert50Huile : " + sIdartAjoutOffert50Huile) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffert50Huile) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffert50Huile {"Fiche_caisse_1024.table_article.remise",indChamp} = nMontantRemise50Huile {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromo50Huile nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigne50Huile est une chaîne nQteAjoutLigne50Huile est un numérique POUR TOUT ELEMENT nQteAjoutLigne50Huile, sIdartAjoutLigne50Huile DE taListeIDartAjoutLigne50Huile //Trace("nQteAjoutLigne50Huile : " + nQteAjoutLigne50Huile + " / sIdartAjoutLigne50Huile : " + sIdartAjoutLigne50Huile) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigne50Huile) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigne50Huile : " + sIdartAjoutLigne50Huile) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigne50Huile SI bSalarie50Huile = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //PROMO TF BIS CAVE A VIN 202409 SI DateDuJour >= "20240916" AND DateDuJour <= "20241002" ALORS //Trace("TF BIS CAVE A VIN 202409") nRemiseTFCave est un numérique sCodePromoTFCave est une chaîne sCodePromoTFCave = "TF_Cave_202409" nRemiseTFCave = 15.00 SI {"gnSITE",indVariable} IN(1,2,7,8,11,12,16,19,21,22,25,26,27,28,30,31,32,39,40,41,42,44,45,46,49,52,54,55,56,58,59,62,63,64,67,68,72,74,76,79,80,82,84,89,91,92,93,94,95,97,98,99,100,101,102,103,104,111,112,113,114,115,116,117,118,119,120,122,123,124,128,129,130,131,132,133,139,141,147,149,151,154,155,156,157,159,165,167,168,173,174,178,180,181,183,185,186,187,188,192,195,197,198,199,200,201,204,205,207,208,209,211,213,217,226,228,229,231,232,233,234,237,240,241,242,243,244,246,247,248,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTFCave ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTFCave {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromoTFCave FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TFCAVE_VIN2_202409 SI DateDuJour >= "20240916" ET DateDuJour <= "20241002" ALORS //Trace("TF CAVE_VIN2_202409") sCodePromoTFCAVE2, sTxtSqlTFCAVE2, sIdentifiantTFCAVE2 est une chaîne xNbOffertTFCAVE2, xNbNoRemiseTFCAVE2, xNbRemiseTFCAVE2, xCompteurTFCAVE2 est un entier bCalculNoRemiseTFCAVE2, bCalculRemiseTFCAVE2, bSalarieTFCAVE2 est un booléen taListeIndiceTFCAVE2 est un tableau associatif de numérique taListeIDartAjoutLigneOffertTFCAVE2 est un tableau associatif de numérique taListeIDartAjoutLigneTFCAVE2 est un tableau associatif de numérique sCodePromoTFCAVE2="TFCAVE2_202409" sIdentifiantTFCAVE2="BLOQUE_202409" xNbOffertTFCAVE2 = 0 xNbNoRemiseTFCAVE2 = 0 bSalarieTFCAVE2 = Faux sdReq_SourceTFCAVE2 est une Source de Données SI {"gnSITE",indVariable} IN(1,2,7,8,11,12,16,19,21,22,25,26,27,28,30,31,32,39,40,41,42,44,45,46,49,52,54,55,56,58,59,62,63,64,67,68,72,74,76,79,80,82,84,89,91,92,93,94,95,97,98,99,100,101,102,103,104,111,112,113,114,115,116,117,118,119,120,122,123,124,128,129,130,131,132,133,139,141,147,149,151,154,155,156,157,159,165,167,168,173,174,178,180,181,183,185,186,187,188,192,195,197,198,199,200,201,204,205,207,208,209,211,213,217,226,228,229,231,232,233,234,237,240,241,242,243,244,246,247,248,250) ALORS sTxtSqlTFCAVE2 = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(599893,599909,599931,599920,599918) ] sTxtSqlTFCAVE2 = ChaîneConstruit(sTxtSqlTFCAVE2) SI HExécuteRequêteSQL(sdReq_SourceTFCAVE2,hRequêteDéfaut,sTxtSqlTFCAVE2) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche(sdReq_SourceTFCAVE2,"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve(sdReq_SourceTFCAVE2) = Vrai ALORS //Trace("Trouve") //SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoTFCAVE2 _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantTFCAVE2 ALORS //SINON xCompteurTFCAVE2 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTFCAVE2[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} //FIN FIN FIN SI xCompteurTFCAVE2 > 2 ALORS Trie(taListeIndiceTFCAVE2,ttCroissant) xNbOffertTFCAVE2 = PartieEntière(xCompteurTFCAVE2/3) xNbNoRemiseTFCAVE2 = 2 * xNbOffertTFCAVE2 xNbRemiseTFCAVE2 = xCompteurTFCAVE2 - (xNbOffertTFCAVE2 + xNbNoRemiseTFCAVE2) //Trace("xNbOffertTFCAVE2 : " + xNbOffertTFCAVE2 + " / xNbNoRemiseTFCAVE2 : " + xNbNoRemiseTFCAVE2 + " / xNbRemiseTFCAVE2 : " + xNbRemiseTFCAVE2) POUR TOUT ELEMENT xSIdart, xIndice DE taListeIndiceTFCAVE2 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertTFCAVE2_Avant : " + xNbOffertTFCAVE2) bCalculNoRemiseTFCAVE2 = Vrai bCalculRemiseTFCAVE2 = Vrai SI xNbOffertTFCAVE2 > 0 ALORS //Trace("xNbOffertTFCAVE22 : " + xNbOffertTFCAVE2) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertTFCAVE2 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTFCAVE2 xNbOffertTFCAVE2 = 0 bCalculNoRemiseTFCAVE2 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertTFCAVE2 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertTFCAVE2[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertTFCAVE2 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertTFCAVE2 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertTFCAVE2 = 0 bCalculNoRemiseTFCAVE2 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertTFCAVE2 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTFCAVE2 xNbOffertTFCAVE2 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseTFCAVE2 = Faux FIN bCalculRemiseTFCAVE2 = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseTFCAVE2 : " + bCalculNoRemiseTFCAVE2 + " / xNbNoRemiseTFCAVE2 : " + xNbNoRemiseTFCAVE2) SI bCalculNoRemiseTFCAVE2 = Vrai _ET_ xNbNoRemiseTFCAVE2 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTFCAVE2 ALORS //Trace("xNbNoRemiseTFCAVE21 : " + xNbNoRemiseTFCAVE2) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemiseTFCAVE2 = 0 bCalculRemiseTFCAVE2 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseTFCAVE2 ALORS //Trace("xNbNoRemiseTFCAVE22 : " + xNbNoRemiseTFCAVE2) taListeIDartAjoutLigneTFCAVE2[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTFCAVE2 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTFCAVE2 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL ÿÿÿÿÿÿÿÿ eSI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TRACT 4 FEVRIER 2025") xNombre2411OPTRAC4, xOccurence2411OPTRAC4, xIndice2411OPTRAC4, xAjout2411OPTRAC4 est un entier n2411OPTRAC4 est un numérique sCodePromo2411OPTRAC4 est une chaîne bTest2411OPTRAC4, bSalarie2411OPTRAC4 est un booléen STListeArticle2411OPTRAC4 est une Structure xIndiceLigne2411OPTRAC4 est un entier xQte2411OPTRAC4 est un entier FIN sCodePromo2411OPTRAC4 = "202502_TRACT4" n2411OPTRAC4 = 2.00 bTest2411OPTRAC4 = Faux bSalarie2411OPTRAC4 = Faux xAjout2411OPTRAC4 = 0 taListeIAjout2411OPTRAC4 est un tableau associatif de numérique taListeArticle2411OPTRAC4 est un tableau de STListeArticle2411OPTRAC4 UnArticle2411OPTRAC4 est un STListeArticle2411OPTRAC4 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110617,110618 //Trace("Indice2411OPTRAC4 : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2411OPTRAC4.xIndiceLigne2411OPTRAC4 = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2411OPTRAC4.xQte2411OPTRAC4 = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2411OPTRAC4,UnArticle2411OPTRAC4) xNombre2411OPTRAC4 += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2411OPTRAC4 : " + xNombre2411OPTRAC4) SI xNombre2411OPTRAC4 >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2411OPTRAC4 = Vrai FIN FIN xOccurence2411OPTRAC4 = PartieEntiere(xNombre2411OPTRAC4/2) * 2 //Trace("xOccurence2411OPTRAC4 : " + xOccurence2411OPTRAC4) //Trace("xOccurence2411OPTRAC40 : " + xOccurence2411OPTRAC4) POUR TOUT ELEMENT UnArticle2411OPTRAC4 DE taListeArticle2411OPTRAC4 xIndice2411OPTRAC4 = UnArticle2411OPTRAC4.xIndiceLigne2411OPTRAC4 //Trace("xIndice2411OPTRAC4 : " + xIndice2411OPTRAC4) SI xOccurence2411OPTRAC4 > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].QTE",indChamp} > xOccurence2411OPTRAC4 xAjout2411OPTRAC4 = {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].QTE",indChamp} - xOccurence2411OPTRAC4 taListeIAjout2411OPTRAC4[{"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].IDART",indChamp}] += xAjout2411OPTRAC4 {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].QTE",indChamp} = xOccurence2411OPTRAC4 {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].PRIX_TTC",indChamp} = n2411OPTRAC4 {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].QTE",indChamp}*n2411OPTRAC4,2) {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].nota",indChamp} = sCodePromo2411OPTRAC4 xOccurence2411OPTRAC4 -= 2 //Trace("xOccurence2411OPTRAC41 : " + xOccurence2411OPTRAC4) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAC4+"].QTE",indChamp} = xOccurence2411OPTRAC4 {"Fiche_caisse_1024.table_article["+xIndice2411OPTRAÿÿÿÿÿÿÿÿ Ú ¿õ//MP SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //OP VOLUME 202402 SI (DateDuJour >= "20240428" ET DateDuJour <= "20240930") ALORS //Trace("OP VOLUME 202402") STListeArticleOP est une Structure xCompteurOP est un entier xOccurenceOP est un entier xIdartOP est un entier FIN taListeArticleOP est un tableau associatif de STListeArticleOP stInitialisationPourCompilOP est un STListeArticleOP taListeIndiceOP est un tableau associatif de numérique taListeIDartAjoutLigneOffertOP est un tableau associatif de numérique taListeIDartAjoutLigneOP est un tableau associatif de numérique sCodePromoOP, sTxtSql_OP, sIdentifiantOP est une chaîne nRemiseOP est un numérique xNbOffertOP, xNbNoRemiseOP, xNbRemiseOP, xNbNouvelleQteOP est un entier bCalculNoRemiseOP,bCalculRemiseOP, bSalarieOP, bMagOP est un booléen sdReq_Source_OP est une source de données sCodePromoOP="OFFRE_VOLUME_202401" sIdentifiantOP="BLOQUE_202401" xNbOffertOP = 0 xNbNoRemiseOP = 0 bSalarieOP = Faux bMagOP = Vrai SI {"gnSITE",indvariable} IN(6,20) ALORS bMagOP = Faux FIN SI bMagOP = Vrai ALORS SI (DateDuJour >= "20240428" ET DateDuJour <= "20240630") ALORS sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100549,100854,100900,101851,102116,110406,110365,105926) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) SI HExécuteRequêteSQL(sdReq_Source_OP,hRequêteDéfaut,sTxtSql_OP) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN SINON sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100900,101851,110406,110365,105926,100854,102133,101964) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) SI HExécuteRequêteSQL(sdReq_Source_OP,hRequêteDéfaut,sTxtSql_OP) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN FIN SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieOP = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier(sdReq_Source_OP, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve(sdReq_Source_OP) = Vrai ALORS //Trace("Trouve") SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOP ALORS SINON SI taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilOP FIN taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteurOP +={"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xOccurenceOP += 1 taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIdartOP = {"Fiche_caisse_1024.table_article.IDART",indChamp} taListeIndiceOP[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN FIN FIN FIN A1 sont des STListeArticleOP Trie(taListeIndiceOP,ttcroissant) xCptOP, xIdartControleOP sont des entiers xCptOP = 1 POUR TOUT ELEMENT A1 DE taListeArticleOP //Trace(A1.xCompteurOP + " / " + A1.xOccurenceOP + " / " + A1.xIdartOP) //Trace("xCptOP : " + xCptOP) SI A1.xCompteurOP > 2 ALORS //Trace("xIdartControleOP : " + xIdartControleOP) SI xCptOP = 1 ALORS xIdartControleOP = A1.xIdartOP SINON SI xIdartControleOP <> A1.xIdartOP ALORS xIdartControleOP = A1.xIdartOP FIN xNbOffertOP = PartieEntiere(A1.xCompteurOP/3) xNbNoRemiseOP = 2 * xNbOffertOP xNbRemiseOP = A1.xCompteurOP - (xNbOffertOP + xNbNoRemiseOP) //Trace("xNbOffertOP : " + xNbOffertOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceOP SI sIdart = A1.xIdartOP ALORS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOP_Avant : " + xNbOffertOP) bCalculNoRemiseOP = Vrai bCalculRemiseOP = Vrai SI xNbOffertOP > 0 ALORS //Trace("xNbOffertOP2 : " + xNbOffertOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOP ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP = 0 bCalculNoRemiseOP = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOP ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOP[sIdart] = xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOP = 0 bCalculNoRemiseOP = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOP ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOP = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("bCalculRemiseOP : " + bCalculRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) //INFO("FIN TRAITEMENT OFFERT") SI bCalculRemiseOP = Vrai _ET_ xNbRemiseOP > 0 ALORS //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} + " / xNbRemiseOP1 : " + xNbRemiseOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseOP ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseOP1 : " + xNbRemiseOP) xNbRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseOP ALORS //Trace("xNbRemiseOP2 : " + xNbRemiseOP) taListeIDartAjoutLigneOP[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}]= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbRemiseOP = 0 FIN FIN //Trace("bCalculNoRemiseOP : " + bCalculNoRemiseOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP) SI bCalculNoRemiseOP = Vrai _ET_ xNbNoRemiseOP > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP1 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP2 : " + xNbNoRemiseOP) taListeIDartAjoutLigneOP[sIdart] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP3 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN xCptOP +=1 FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertOP est une chaîne nQteAjoutOffertOP est un numérique POUR TOUT ELEMENT nQteAjoutOffertOP, sIdartAjoutOffertOP DE taListeIDartAjoutLigneOffertOP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertOP {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneOP est une chaîne nQteAjoutLigneOP est un numérique POUR TOUT ELEMENT nQteAjoutLigneOP, sIdartAjoutLigneOP DE taListeIDartAjoutLigneOP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOP SI bSalarieOP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //PROMO DESTOCKAGE CHOCOLAT 202405 SI DateDuJour >= "20240506" and DateDuJour <= "20240731" ALORS //Trace("DESTOCKAGE CHOCOLAT 202405") STListeArticleChoc05 est une Structure xCompteurChoc05 est un entier xOccurenceChoc05 est un entier xIdartChoc05 est un entier FIN taListeArticleChoc05 est un tableau associatif de STListeArticleChoc05 stInitialisationPourCompilChoc05 est un STListeArticleChoc05 taListeIndiceChoc05 est un tableau associatif de numérique taListeIDartAjoutLigneOffertChoc05 est un tableau associatif de numérique taListeIDartAjoutLigneChoc05 est un tableau associatif de numérique sCodePromoChoc05, sTxtSql_Choc05, sIdentifiantChoc05 est une chaîne nRemiseChoc05 est un numérique xNbOffertChoc05, xNbNoRemiseChoc05, xNbRemiseChoc05, xNbNouvelleQteChoc05 est un entier bCalculNoRemiseChoc05,bCalculRemiseChoc05, bSalarieChoc05, bMagChoc05 est un booléen sdReq_Source_Choc05 est une source de données sCodePromoChoc05="DESTOCKAGE_CHOCOLAT_202405" sIdentifiantChoc05="BLOQUE_CHOC_202405" xNbOffertChoc05 = 0 xNbNoRemiseChoc05 = 0 bSalarieChoc05 = Faux bMagChoc05 = Vrai sTxtSql_Choc05 = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(110455) ] sTxtSql_Choc05 = ChaîneConstruit(sTxtSql_Choc05) SI HExécuteRequêteSQL(sdReq_Source_Choc05,hRequêteDéfaut,sTxtSql_Choc05) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieChoc05 = Vrai FIN FIN SI bMagChoc05 = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier(sdReq_Source_Choc05, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve(sdReq_Source_Choc05) = Vrai ALORS //Trace("Trouve") SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoChoc05 _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantChoc05 ALORS SINON SI taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilChoc05 FIN taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteurChoc05 +={"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xOccurenceChoc05 += 1 taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIdartChoc05 = {"Fiche_caisse_1024.table_article.IDART",indChamp} taListeIndiceChoc05[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN FIN FIN FIN A1 sont des STListeArticleChoc05 Trie(taListeIndiceChoc05,ttcroissant) xCptChoc05, xIdartControleChoc05 sont des entiers xCptChoc05 = 1 POUR TOUT ELEMENT A1 DE taListeArticleChoc05 //Trace(A1.xCompteurChoc05 + " / " + A1.xOccurenceChoc05 + " / " + A1.xIdartChoc05) //Trace("xCptChoc05 : " + xCptChoc05) SI A1.xCompteurChoc05 > 2 ALORS //Trace("xIdartControleChoc05 : " + xIdartControleChoc05) SI xCptChoc05 = 1 ALORS xIdartControleChoc05 = A1.xIdartChoc05 SINON SI xIdartControleChoc05 <> A1.xIdartChoc05 ALORS xIdartControleChoc05 = A1.xIdartChoc05 FIN xNbOffertChoc05 = PartieEntiere(A1.xCompteurChoc05/3) xNbNoRemiseChoc05 = 2 * xNbOffertChoc05 xNbRemiseChoc05 = A1.xCompteurChoc05 - (xNbOffertChoc05 + xNbNoRemiseChoc05) //Trace("xNbOffertChoc05 : " + xNbOffertChoc05 + " / xNbNoRemiseChoc05 : " + xNbNoRemiseChoc05 + " / xNbRemiseChoc05 : " + xNbRemiseChoc05) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceChoc05 SI sIdart = A1.xIdartChoc05 ALORS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertChoc05_Avant : " + xNbOffertChoc05) bCalculNoRemiseChoc05 = Vrai bCalculRemiseChoc05 = Vrai SI xNbOffertChoc05 > 0 ALORS //Trace("xNbOffertChoc05-2 : " + xNbOffertChoc05) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertChoc05 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoChoc05 xNbOffertChoc05 = 0 bCalculNoRemiseChoc05 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertChoc05 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertChoc05[sIdart] = xNbOffertChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertChoc05 = 0 bCalculNoRemiseChoc05 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertChoc05 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoChoc05 xNbOffertChoc05 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseChoc05 = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("bCalculRemiseChoc05 : " + bCalculRemiseChoc05 + " / xNbRemiseChoc05 : " + xNbRemiseChoc05) //INFO("FIN TRAITEMENT OFFERT") SI bCalculRemiseChoc05 = Vrai _ET_ xNbRemiseChoc05 > 0 ALORS //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} + " / xNbRemiseChoc05-1 : " + xNbRemiseChoc05) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseChoc05 ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseChoc05-1 : " + xNbRemiseChoc05) xNbRemiseChoc05 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseChoc05 ALORS //Trace("xNbRemiseChoc05-2 : " + xNbRemiseChoc05) taListeIDartAjoutLigneChoc05[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}]= xNbRemiseChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantChoc05 xNbRemiseChoc05 = 0 FIN FIN //Trace("bCalculNoRemiseChoc05 : " + bCalculNoRemiseChoc05 + " / xNbNoRemiseChoc05 : " + xNbNoRemiseChoc05) SI bCalculNoRemiseChoc05 = Vrai _ET_ xNbNoRemiseChoc05 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseChoc05 ALORS //Trace("xNbNoRemiseChoc05-1 : " + xNbNoRemiseChoc05) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantChoc05 xNbNoRemiseChoc05 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseChoc05 ALORS //Trace("xNbNoRemiseChoc05-2 : " + xNbNoRemiseChoc05) taListeIDartAjoutLigneChoc05[sIdart] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantChoc05 xNbNoRemiseChoc05 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseChoc05 ALORS //Trace("xNbNoRemiseChoc05-3 : " + xNbNoRemiseChoc05) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantChoc05 xNbNoRemiseChoc05 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN xCptChoc05 +=1 FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertChoc05 est une chaîne nQteAjoutOffertChoc05 est un numérique POUR TOUT ELEMENT nQteAjoutOffertChoc05, sIdartAjoutOffertChoc05 DE taListeIDartAjoutLigneOffertChoc05 HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertChoc05) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertChoc05 {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoChoc05 nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneChoc05 est une chaîne nQteAjoutLigneChoc05 est un numérique POUR TOUT ELEMENT nQteAjoutLigneChoc05, sIdartAjoutLigneChoc05 DE taListeIDartAjoutLigneChoc05 HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneChoc05) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneChoc05 SI bSalarieChoc05 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //PROMO TF FRAIS 202406 SI DateDuJour >= "20240530" and DateDuJour <= "20240612" ALORS //Trace("TF FRAIS 202406") nRemiseTFFrais est un numérique sCodePromoTFFrais est une chaîne sCodePromoTFFrais = "TF_Frais_202406" nRemiseTFFrais = 15.00 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTFFrais ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTFFrais {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromoTFFrais FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 GASPACHO SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("TRACT 202406 GASPACHO") xNombrePV2406G, xOccurencePV2406G, xIndicePV2406G, xAjoutPV2406G est un entier nPV2406G est un numérique sCodePromoPV2406G est une chaîne bTestPV2406G, bSalariePV2406G est un booléen STListeArticlePV2406G est une Structure xIndiceLignePV2406G est un entier xQtePV2406G est un entier FIN sCodePromoPV2406G = "TRACT_202406G" nPV2406G = 3.50 bTestPV2406G = Faux bSalariePV2406G = Faux xAjoutPV2406G = 0 taListeIAjoutPV2406G est un tableau associatif de numérique taListeArticlePV2406G est un tableau de STListeArticlePV2406G UnArticlePV2406G est un STListeArticlePV2406G POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 106835 //Trace("IndicePV2406G : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2406G.xIndiceLignePV2406G = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2406G.xQtePV2406G = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2406G,UnArticlePV2406G) xNombrePV2406G += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2406G : " + xNombrePV2406G) SI xNombrePV2406G >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2406G = Vrai FIN FIN xOccurencePV2406G = PartieEntiere(xNombrePV2406G/2) * 2 //Trace("xOccurencePV2406G : " + xOccurencePV2406G) //Trace("xOccurencePV2406G0 : " + xOccurencePV2406G) POUR TOUT ELEMENT UnArticlePV2406G DE taListeArticlePV2406G xIndicePV2406G = UnArticlePV2406G.xIndiceLignePV2406G //Trace("xIndicePV2406G : " + xIndicePV2406G) SI xOccurencePV2406G > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} > xOccurencePV2406G xAjoutPV2406G = {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} - xOccurencePV2406G taListeIAjoutPV2406G[{"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].IDART",indChamp}] += xAjoutPV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} = xOccurencePV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TTC",indChamp} = nPV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp}*nPV2406G,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].nota",indChamp} = sCodePromoPV2406G xOccurencePV2406G -= 2 //Trace("xOccurencePV2406G1 : " + xOccurencePV2406G) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} = xOccurencePV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TTC",indChamp} = nPV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp}*nPV2406G,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].nota",indChamp} = sCodePromoPV2406G xOccurencePV2406G = 0 //Trace("xOccurencePV2406G2 : " + xOccurencePV2406G) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TTC",indChamp} = nPV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp}*nPV2406G,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].nota",indChamp} = sCodePromoPV2406G xOccurencePV2406G -= {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} //Trace("xOccurencePV2406G3 : " + xOccurencePV2406G) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2406G : " + xAjoutPV2406G) SI xAjoutPV2406G > 0 ALORS sIdartAjoutPV2406G est une chaîne nQteAjoutPV2406G est un numérique POUR TOUT ELEMENT nQteAjoutPV2406G, sIdartAjoutPV2406G DE taListeIAjoutPV2406G HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2406G) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2406G : " + nQteAjoutPV2406G) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2406G SI bSalariePV2406G = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2406G*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 ARTICHAUD SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("TRACT 202406 ARTICHAUD") xNombrePV2406A, xOccurencePV2406A, xIndicePV2406A, xAjoutPV2406A est un entier nPV2406A est un numérique sCodePromoPV2406A est une chaîne bTestPV2406A, bSalariePV2406A est un booléen STListeArticlePV2406A est une Structure xIndiceLignePV2406A est un entier xQtePV2406A est un entier FIN sCodePromoPV2406A = "TRACT_202406A" nPV2406A = 2.50 bTestPV2406A = Faux bSalariePV2406A = Faux xAjoutPV2406A = 0 taListeIAjoutPV2406A est un tableau associatif de numérique taListeArticlePV2406A est un tableau de STListeArticlePV2406A UnArticlePV2406A est un STListeArticlePV2406A POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 102266 //Trace("IndicePV2406A : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2406A.xIndiceLignePV2406A = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2406A.xQtePV2406A = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2406A,UnArticlePV2406A) xNombrePV2406A += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2406A : " + xNombrePV2406A) SI xNombrePV2406A >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2406A = Vrai FIN FIN xOccurencePV2406A = PartieEntiere(xNombrePV2406A/2) * 2 //Trace("xOccurencePV2406A : " + xOccurencePV2406A) //Trace("xOccurencePV2406A0 : " + xOccurencePV2406A) POUR TOUT ELEMENT UnArticlePV2406A DE taListeArticlePV2406A xIndicePV2406A = UnArticlePV2406A.xIndiceLignePV2406A //Trace("xIndicePV2406A : " + xIndicePV2406A) SI xOccurencePV2406A > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} > xOccurencePV2406A xAjoutPV2406A = {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} - xOccurencePV2406A taListeIAjoutPV2406A[{"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].IDART",indChamp}] += xAjoutPV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} = xOccurencePV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TTC",indChamp} = nPV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp}*nPV2406A,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].nota",indChamp} = sCodePromoPV2406A xOccurencePV2406A -= 2 //Trace("xOccurencePV2406A1 : " + xOccurencePV2406A) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} = xOccurencePV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TTC",indChamp} = nPV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp}*nPV2406A,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].nota",indChamp} = sCodePromoPV2406A xOccurencePV2406A = 0 //Trace("xOccurencePV2406A2 : " + xOccurencePV2406A) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TTC",indChamp} = nPV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp}*nPV2406A,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].nota",indChamp} = sCodePromoPV2406A xOccurencePV2406A -= {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} //Trace("xOccurencePV2406A3 : " + xOccurencePV2406A) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2406A : " + xAjoutPV2406A) SI xAjoutPV2406A > 0 ALORS sIdartAjoutPV2406A est une chaîne nQteAjoutPV2406A est un numérique POUR TOUT ELEMENT nQteAjoutPV2406A, sIdartAjoutPV2406A DE taListeIAjoutPV2406A HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2406A) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2406A : " + nQteAjoutPV2406A) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2406A SI bSalariePV2406A = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2406A*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 TOMATE SECHEE SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("TRACT 202406 TOMATE SECHEE") xNombrePV2406T, xOccurencePV2406T, xIndicePV2406T, xAjoutPV2406T est un entier nPV2406T est un numérique sCodePromoPV2406T est une chaîne bTestPV2406T, bSalariePV2406T est un booléen STListeArticlePV2406T est une Structure xIndiceLignePV2406T est un entier xQtePV2406T est un entier FIN sCodePromoPV2406T = "TRACT_202406T" nPV2406T = 2.50 bTestPV2406T = Faux bSalariePV2406T = Faux xAjoutPV2406T = 0 taListeIAjoutPV2406T est un tableau associatif de numérique taListeArticlePV2406T est un tableau de STListeArticlePV2406T UnArticlePV2406T est un STListeArticlePV2406T POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110311 //Trace("IndicePV2406T : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2406T.xIndiceLignePV2406T = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2406T.xQtePV2406T = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2406T,UnArticlePV2406T) xNombrePV2406T += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2406T : " + xNombrePV2406T) SI xNombrePV2406T >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2406T = Vrai FIN FIN xOccurencePV2406T = PartieEntiere(xNombrePV2406T/2) * 2 //Trace("xOccurencePV2406T : " + xOccurencePV2406T) //Trace("xOccurencePV2406T0 : " + xOccurencePV2406T) POUR TOUT ELEMENT UnArticlePV2406T DE taListeArticlePV2406T xIndicePV2406T = UnArticlePV2406T.xIndiceLignePV2406T //Trace("xIndicePV2406T : " + xIndicePV2406T) SI xOccurencePV2406T > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} > xOccurencePV2406T xAjoutPV2406T = {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} - xOccurencePV2406T taListeIAjoutPV2406T[{"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].IDART",indChamp}] += xAjoutPV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} = xOccurencePV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TTC",indChamp} = nPV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp}*nPV2406T,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].nota",indChamp} = sCodePromoPV2406T xOccurencePV2406T -= 2 //Trace("xOccurencePV2406T1 : " + xOccurencePV2406T) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} = xOccurencePV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TTC",indChamp} = nPV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp}*nPV2406T,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].nota",indChamp} = sCodePromoPV2406T xOccurencePV2406T = 0 //Trace("xOccurencePV2406T2 : " + xOccurencePV2406T) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TTC",indChamp} = nPV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp}*nPV2406T,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].nota",indChamp} = sCodePromoPV2406T xOccurencePV2406T -= {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} //Trace("xOccurencePV2406T3 : " + xOccurencePV2406T) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2406T : " + xAjoutPV2406T) SI xAjoutPV2406T > 0 ALORS sIdartAjoutPV2406T est une chaîne nQteAjoutPV2406T est un numérique POUR TOUT ELEMENT nQteAjoutPV2406T, sIdartAjoutPV2406T DE taListeIAjoutPV2406T HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2406T) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2406T : " + nQteAjoutPV2406T) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2406T SI bSalariePV2406T = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2406T*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 CHOCOLAT SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("TRACT 202406 CHOCOLAT") xNombrePV2406C, xOccurencePV2406C, xIndicePV2406C, xAjoutPV2406C est un entier nPV2406C est un numérique sCodePromoPV2406C est une chaîne bTestPV2406C, bSalariePV2406C est un booléen STListeArticlePV2406C est une Structure xIndiceLignePV2406C est un entier xQtePV2406C est un entier FIN sCodePromoPV2406C = "TRACT_202406C" nPV2406C = 3.00 bTestPV2406C = Faux bSalariePV2406C = Faux xAjoutPV2406C = 0 taListeIAjoutPV2406C est un tableau associatif de numérique taListeArticlePV2406C est un tableau de STListeArticlePV2406C UnArticlePV2406C est un STListeArticlePV2406C POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110413 //Trace("IndicePV2406C : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2406C.xIndiceLignePV2406C = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2406C.xQtePV2406C = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2406C,UnArticlePV2406C) xNombrePV2406C += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2406C : " + xNombrePV2406C) SI xNombrePV2406C >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2406C = Vrai FIN FIN xOccurencePV2406C = PartieEntiere(xNombrePV2406C/2) * 2 //Trace("xOccurencePV2406C : " + xOccurencePV2406C) //Trace("xOccurencePV2406C0 : " + xOccurencePV2406C) POUR TOUT ELEMENT UnArticlePV2406C DE taListeArticlePV2406C xIndicePV2406C = UnArticlePV2406C.xIndiceLignePV2406C //Trace("xIndicePV2406C : " + xIndicePV2406C) SI xOccurencePV2406C > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} > xOccurencePV2406C xAjoutPV2406C = {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} - xOccurencePV2406C taListeIAjoutPV2406C[{"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].IDART",indChamp}] += xAjoutPV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} = xOccurencePV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TTC",indChamp} = nPV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp}*nPV2406C,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].nota",indChamp} = sCodePromoPV2406C xOccurencePV2406C -= 2 //Trace("xOccurencePV2406C1 : " + xOccurencePV2406C) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} = xOccurencePV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TTC",indChamp} = nPV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp}*nPV2406C,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].nota",indChamp} = sCodePromoPV2406C xOccurencePV2406C = 0 //Trace("xOccurencePV2406C2 : " + xOccurencePV2406C) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TTC",indChamp} = nPV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp}*nPV2406C,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].nota",indChamp} = sCodePromoPV2406C xOccurencePV2406C -= {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} //Trace("xOccurencePV2406C3 : " + xOccurencePV2406C) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2406C : " + xAjoutPV2406C) SI xAjoutPV2406C > 0 ALORS sIdartAjoutPV2406C est une chaîne nQteAjoutPV2406C est un numérique POUR TOUT ELEMENT nQteAjoutPV2406C, sIdartAjoutPV2406C DE taListeIAjoutPV2406C HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2406C) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2406C : " + nQteAjoutPV2406C) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2406C SI bSalariePV2406C = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2406C*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO GALETTE RIZ SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("GALETTE RIZ") xNombre2406Riz, xOccurence2406Riz, xOccurence2406RizSansRemise, xIndice2406Riz, xAjout2406Riz, xAjout2406RizSansRemise est un entier xRemise2406Riz est un numérique sCodePromo2406Riz est une chaîne bTest2406Riz, bSalarie2406Riz est un booléen STListeArticle2406Riz est une Structure xIndiceLigne2406Riz est un entier xQte2406Riz est un entier FIN sCodePromo2406Riz = "2406Riz_202404" xRemise2406Riz = 50.00 bTest2406Riz = Faux bSalarie2406Riz = Faux xAjout2406Riz = 0 taListeIAjout2406Riz est un tableau associatif de numérique taListeIAjout2406RizSansRemise est un tableau associatif de numérique taListeArticle2406Riz est un tableau de STListeArticle2406Riz UnArticle2406Riz est un STListeArticle2406Riz POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 100899 //Trace("Indice2406Riz : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2406Riz.xIndiceLigne2406Riz = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2406Riz.xQte2406Riz = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2406Riz,UnArticle2406Riz) xNombre2406Riz += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2406Riz : " + xNombre2406Riz) SI xNombre2406Riz >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2406Riz = Vrai FIN FIN xOccurence2406Riz = PartieEntiere(xNombre2406Riz/2) xOccurence2406RizSansRemise = xOccurence2406Riz //Trace("xOccurence2406Riz : " + xOccurence2406Riz) //Trace("xOccurence2406Riz0 : " + xOccurence2406Riz) POUR TOUT ELEMENT UnArticle2406Riz DE taListeArticle2406Riz xIndice2406Riz = UnArticle2406Riz.xIndiceLigne2406Riz //Trace("xIndice2406Riz : " + xIndice2406Riz) SI xOccurence2406Riz > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} > xOccurence2406Riz xAjout2406RizSansRemise = xOccurence2406Riz xAjout2406Riz = {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} - (xOccurence2406Riz * 2) taListeIAjout2406RizSansRemise[{"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].IDART",indChamp}] = xAjout2406RizSansRemise taListeIAjout2406Riz[{"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].IDART",indChamp}] += xAjout2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} = xOccurence2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = xRemise2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].nota",indChamp} = sCodePromo2406Riz xOccurence2406Riz = 0 //Trace("xOccurence2406Riz1 : " + xOccurence2406Riz) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} = xOccurence2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = xRemise2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].nota",indChamp} = sCodePromo2406Riz xOccurence2406Riz = 0 //Trace("xOccurence2406Riz2 : " + xOccurence2406Riz) SINON {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = xRemise2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].nota",indChamp} = sCodePromo2406Riz xOccurence2406Riz -= {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} //Trace("xOccurence2406Riz3 : " + xOccurence2406Riz) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurence2406RizSansRemise > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} > xOccurence2406RizSansRemise xAjout2406Riz = xOccurence2406Riz taListeIAjout2406Riz[{"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].IDART",indChamp}] += xAjout2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} = xOccurence2406RizSansRemise {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 xOccurence2406RizSansRemise = 0 //Trace("xOccurence2406RizSansRemise1 : " + xOccurence2406RizSansRemise) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} = xOccurence2406RizSansRemise {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 xOccurence2406RizSansRemise = 0 //Trace("xOccurence2406RizSansRemise2 : " + xOccurence2406RizSansRemise) SINON {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 xOccurence2406RizSansRemise -= {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} //Trace("xOccurence2406RizSansRemise3 : " + xOccurence2406RizSansRemise) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjout2406RizSansRemise : " + xAjout2406RizSansRemise) SI xAjout2406RizSansRemise > 0 ALORS sIdartAjout2406RizSansRemise est une chaîne nQteAjout2406RizSansRemise est un numérique POUR TOUT ELEMENT nQteAjout2406RizSansRemise, sIdartAjout2406RizSansRemise DE taListeIAjout2406RizSansRemise HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2406RizSansRemise) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2406RizSansRemise : " + nQteAjout2406RizSansRemise) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2406RizSansRemise {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2406RizSansRemise*{"ARTICLE.PRIX_TTC",indRubrique},2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp}=1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp}=1 nNombreLigneEnCaisse+=1 FIN FIN FIN //Trace("xAjout2406Riz : " + xAjout2406Riz) SI xAjout2406Riz > 0 ALORS sIdartAjout2406Riz est une chaîne nQteAjout2406Riz est un numérique POUR TOUT ELEMENT nQteAjout2406Riz, sIdartAjout2406Riz DE taListeIAjout2406Riz HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2406Riz) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2406Riz : " + nQteAjout2406Riz) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2406Riz SI bSalarie2406Riz = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2406Riz*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO RECHARGE DEODORANT SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("RECHARGE DEODORANT") xNombre2406Deo, xOccurence2406Deo, xOccurence2406DeoSansRemise, xIndice2406Deo, xAjout2406Deo, xAjout2406DeoSansRemise est un entier xRemise2406Deo est un numérique sCodePromo2406Deo est une chaîne bTest2406Deo, bSalarie2406Deo est un booléen STListeArticle2406Deo est une Structure xIndiceLigne2406Deo est un entier xQte2406Deo est un entier FIN sCodePromo2406Deo = "2406Deo_202404" xRemise2406Deo = 40.00 bTest2406Deo = Faux bSalarie2406Deo = Faux xAjout2406Deo = 0 taListeIAjout2406Deo est un tableau associatif de numérique taListeIAjout2406DeoSansRemise est un tableau associatif de numérique taListeArticle2406Deo est un tableau de STListeArticle2406Deo UnArticle2406Deo est un STListeArticle2406Deo POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 106660,106661,106662,106663 //Trace("Indice2406Deo : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2406Deo.xIndiceLigne2406Deo = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2406Deo.xQte2406Deo = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2406Deo,UnArticle2406Deo) xNombre2406Deo += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2406Deo : " + xNombre2406Deo) SI xNombre2406Deo >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2406Deo = Vrai FIN FIN xOccurence2406Deo = PartieEntiere(xNombre2406Deo/2) xOccurence2406DeoSansRemise = xOccurence2406Deo //Trace("xOccurence2406Deo : " + xOccurence2406Deo) //Trace("xOccurence2406Deo0 : " + xOccurence2406Deo) POUR TOUT ELEMENT UnArticle2406Deo DE taListeArticle2406Deo xIndice2406Deo = UnArticle2406Deo.xIndiceLigne2406Deo //Trace("xIndice2406Deo : " + xIndice2406Deo) SI xOccurence2406Deo > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} > xOccurence2406Deo xAjout2406DeoSansRemise = xOccurence2406Deo xAjout2406Deo = {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} - (xOccurence2406Deo * 2) taListeIAjout2406DeoSansRemise[{"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].IDART",indChamp}] = xAjout2406DeoSansRemise taListeIAjout2406Deo[{"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].IDART",indChamp}] += xAjout2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} = xOccurence2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = xRemise2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].nota",indChamp} = sCodePromo2406Deo xOccurence2406Deo = 0 //Trace("xOccurence2406Deo1 : " + xOccurence2406Deo) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} = xOccurence2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = xRemise2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].nota",indChamp} = sCodePromo2406Deo xOccurence2406Deo = 0 //Trace("xOccurence2406Deo2 : " + xOccurence2406Deo) SINON {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = xRemise2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].nota",indChamp} = sCodePromo2406Deo xOccurence2406Deo -= {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} //Trace("xOccurence2406Deo3 : " + xOccurence2406Deo) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurence2406DeoSansRemise > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} > xOccurence2406DeoSansRemise xAjout2406Deo = xOccurence2406Deo taListeIAjout2406Deo[{"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].IDART",indChamp}] += xAjout2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} = xOccurence2406DeoSansRemise {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 xOccurence2406DeoSansRemise = 0 //Trace("xOccurence2406DeoSansRemise1 : " + xOccurence2406DeoSansRemise) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} = xOccurence2406DeoSansRemise {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 xOccurence2406DeoSansRemise = 0 //Trace("xOccurence2406DeoSansRemise2 : " + xOccurence2406DeoSansRemise) SINON {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 xOccurence2406DeoSansRemise -= {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} //Trace("xOccurence2406DeoSansRemise3 : " + xOccurence2406DeoSansRemise) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjout2406DeoSansRemise : " + xAjout2406DeoSansRemise) SI xAjout2406DeoSansRemise > 0 ALORS sIdartAjout2406DeoSansRemise est une chaîne nQteAjout2406DeoSansRemise est un numérique POUR TOUT ELEMENT nQteAjout2406DeoSansRemise, sIdartAjout2406DeoSansRemise DE taListeIAjout2406DeoSansRemise HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2406DeoSansRemise) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2406DeoSansRemise : " + nQteAjout2406DeoSansRemise) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2406DeoSansRemise {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2406DeoSansRemise*{"ARTICLE.PRIX_TTC",indRubrique},2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp}=1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp}=1 nNombreLigneEnCaisse+=1 FIN FIN FIN //Trace("xAjout2406Deo : " + xAjout2406Deo) SI xAjout2406Deo > 0 ALORS sIdartAjout2406Deo est une chaîne nQteAjout2406Deo est un numérique POUR TOUT ELEMENT nQteAjout2406Deo, sIdartAjout2406Deo DE taListeIAjout2406Deo HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2406Deo) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2406Deo : " + nQteAjout2406Deo) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2406Deo SI bSalarie2406Deo = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2406Deo*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TFJUS_202406 SI DateDuJour >= "20240603" ET DateDuJour <= "20240623" ALORS //Trace("TF JUS 202406") xCompteurOPJUS, xIndiceTFJUS, xDiviseurTFJUS est un entier xNbLigneTFJUS, xNbLigneAnnulRemiseTFJUS, xNbLigneNormaleTFJUS, xRemiseTFJUS est un numérique STListeArticleOPJUS est une Structure xCompteurOPJUS est un entier xOccurenceOPJUS est un entier xIdartOPJUS est un entier FIN taListeArticleOPJUS est un tableau associatif de STListeArticleOPJUS stInitialisationPourCompilOPJUS est un STListeArticleOPJUS taListeIndiceOPJUS est un tableau associatif de numérique taListeIDartAjoutLigneOffertOPJUS est un tableau associatif de numérique taListeIDartAjoutLigneOPJUS est un tableau associatif de numérique TableauPositionTFJUS est un tableau associatif de numérique sCodePromoOPJUS, sTxtSql_OPJUS, sIdentifiantOPJUS est une chaîne nRemiseOPJUS est un numérique xNbOffertOPJUS, xNbNoRemiseOPJUS, xNbRemiseOPJUS, xNbNouvelleQteOPJUS est un entier bCalculNoRemiseOPJUS, bCalculRemiseOPJUS, bSalarieOPJUS est un booléen sdReq_Source_OPJUS est une source de données sCodePromoOPJUS="TFJUS_202406" sIdentifiantOPJUS="BLOQUE_202406" xNbOffertOPJUS = 0 xNbNoRemiseOPJUS = 100.00 bSalarieOPJUS = Faux sTxtSql_OPJUS = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100159,100127,100169,100163,100158,100114) ] sTxtSql_OPJUS = ChaîneConstruit(sTxtSql_OPJUS) SI HExécuteRequêteSQL(sdReq_Source_OPJUS,hRequêteDéfaut,sTxtSql_OPJUS) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieOPJUS = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche(sdReq_Source_OPJUS,"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve(sdReq_Source_OPJUS) = Vrai ALORS //Trace("Trouve") //SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOPJUS _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOPJUS ALORS //SINON xCompteurOPJUS += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceOPJUS[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} //FIN FIN FIN SI xCompteurOPJUS > 2 ALORS Trie(taListeIndiceOPJUS,ttCroissant) xNbOffertOPJUS = PartieEntiere(xCompteurOPJUS/3) xNbNoRemiseOPJUS = 2 * xNbOffertOPJUS xNbRemiseOPJUS = xCompteurOPJUS - (xNbOffertOPJUS + xNbNoRemiseOPJUS) //Trace("xNbOffertOPJUS : " + xNbOffertOPJUS + " / xNbNoRemiseOPJUS : " + xNbNoRemiseOPJUS + " / xNbRemiseOPJUS : " + xNbRemiseOPJUS) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceOPJUS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOPJUS_Avant : " + xNbOffertOPJUS) bCalculNoRemiseOPJUS = Vrai bCalculRemiseOPJUS = Vrai SI xNbOffertOPJUS > 0 ALORS //Trace("xNbOffertOPJUS2 : " + xNbOffertOPJUS) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOPJUS ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOPJUS xNbOffertOPJUS = 0 bCalculNoRemiseOPJUS = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOPJUS ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOPJUS[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOPJUS = 0 bCalculNoRemiseOPJUS = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOPJUS ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOPJUS xNbOffertOPJUS -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOPJUS = Faux FIN bCalculRemiseOPJUS = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseOPJUS : " + bCalculNoRemiseOPJUS + " / xNbNoRemiseOPJUS : " + xNbNoRemiseOPJUS) SI bCalculNoRemiseOPJUS = Vrai _ET_ xNbNoRemiseOPJUS > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOPJUS ALORS //Trace("xNbNoRemiseOPJUS1 : " + xNbNoRemiseOPJUS) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemiseOPJUS = 0 bCalculRemiseOPJUS = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseOPJUS ALORS //Trace("xNbNoRemiseOPJUS2 : " + xNbNoRemiseOPJUS) taListeIDartAjoutLigneOPJUS[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOPJUS xNbRemiseOPJUS -= ({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOPJUS) //Trace("xNbRemiseOPJUS2 : " + xNbRemiseOPJUS) {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseOPJUS = 0 bCalculRemiseOPJUS = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseOPJUS ALORS //Trace("xNbNoRemiseOPJUS3 : " + xNbNoRemiseOPJUS) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseOPJUS -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemiseOPJUS = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemiseOPJUS = Vrai _ET_ xNbRemiseOPJUS > 0 ALORS //Trace("xNbRemiseOPJUS1 : " + xNbRemiseOPJUS) //{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) //{"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //xNbRemiseOPJUS -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseOPJUS ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseOP1 : " + xNbRemiseOPJUS) SI bSalarieOPJUS = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN xNbRemiseOPJUS = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseOPJUS ALORS //Trace("xNbRemiseOP2 : " + xNbRemiseOPJUS) taListeIDartAjoutLigneOPJUS[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] += xNbRemiseOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOPJUS xNbRemiseOPJUS = 0 FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertOPJUS est une chaîne nQteAjoutOffertOPJUS est un numérique POUR TOUT ELEMENT nQteAjoutOffertOPJUS, sIdartAjoutOffertOPJUS DE taListeIDartAjoutLigneOffertOPJUS //Trace("nQteAjoutOffertOPJUS : " + nQteAjoutOffertOPJUS + " / sIdartAjoutOffertOPJUS : " + sIdartAjoutOffertOPJUS) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertOPJUS) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertOPJUS {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOPJUS nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneOPJUS est une chaîne nQteAjoutLigneOPJUS est un numérique POUR TOUT ELEMENT nQteAjoutLigneOPJUS, sIdartAjoutLigneOPJUS DE taListeIDartAjoutLigneOPJUS //Trace("nQteAjoutLigneOPJUS : " + nQteAjoutLigneOPJUS + " / sIdartAjoutLigneOPJUS : " + sIdartAjoutLigneOPJUS) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOPJUS) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneOPJUS : " + sIdartAjoutLigneOPJUS) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOPJUS SI bSalarieOPJUS = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //PROMO TF HUILE 202406 SI DateDuJour >= "20240613" and DateDuJour <= "20240626" ALORS //Trace("TF HUILE 202406") nRemiseTFHuile est un numérique sCodePromoTFHuile est une chaîne sCodePromoTFHuile = "TF_Huile_202406" nRemiseTFHuile = 15.00 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTFHuile ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTFHuile {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromoTFHuile FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO DESTOCKAGE CULOTTE 202406 PV_QTE SI DateDuJour >= "20240626" ET DateDuJour <= "20240716" ALORS //Trace("CULOTTE 202406 PV_QTE") xNombrePV_QTE, xOccurencePV_QTE1, xOccurencePV_QTE2, xIndicePV_QTE, xAjoutPV_QTE est un entier nPV_QTE1, nPV_QTE2 est un numérique sCodePromoPV_QTE est une chaîne bSalariePV_QTE est un booléen STListeArticlePV_QTE est une Structure xIndiceLignePV_QTE est un entier xQtePV_QTE est un entier FIN sCodePromoPV_QTE = "DESTOCKAGE_CULOTTE_202406" nPV_QTE1 = 16.99 nPV_QTE2 = 19.99 bSalariePV_QTE = Faux xAjoutPV_QTE = 0 taListeIAjoutPV_QTE est un tableau associatif de numérique taListeArticlePV_QTE est un tableau de STListeArticlePV_QTE UnArticlePV_QTE est un STListeArticlePV_QTE POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 593144 //Trace("IndicePV_QTE : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV_QTE.xIndiceLignePV_QTE = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV_QTE.xQtePV_QTE = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV_QTE,UnArticlePV_QTE) xNombrePV_QTE += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV_QTE : " + xNombrePV_QTE) SI xNombrePV_QTE >= 1 ALORS xOccurencePV_QTE1 = PartieEntiere(xNombrePV_QTE/3) * 3 xOccurencePV_QTE2 = xNombrePV_QTE - xOccurencePV_QTE1 //Trace("xOccurencePV_QTE1 : " + xOccurencePV_QTE1 + " / xOccurencePV_QTE2 : " + xOccurencePV_QTE2) POUR TOUT ELEMENT UnArticlePV_QTE DE taListeArticlePV_QTE xIndicePV_QTE = UnArticlePV_QTE.xIndiceLignePV_QTE //Trace("xIndicePV_QTE : " + xIndicePV_QTE) SI xOccurencePV_QTE1 > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} > xOccurencePV_QTE1 xAjoutPV_QTE = {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} - xOccurencePV_QTE1 taListeIAjoutPV_QTE[{"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].IDART",indChamp}] += xAjoutPV_QTE xOccurencePV_QTE2 -= xAjoutPV_QTE {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} = xOccurencePV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TTC",indChamp} = nPV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp}*nPV_QTE1,2) {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].nota",indChamp} = sCodePromoPV_QTE xOccurencePV_QTE1 = 0 //Trace("xOccurencePV_QTE11 : " + xOccurencePV_QTE1) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} = xOccurencePV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TTC",indChamp} = nPV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp}*nPV_QTE1,2) {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].nota",indChamp} = sCodePromoPV_QTE xOccurencePV_QTE1 = 0 //Trace("xOccurencePV_QTE12 : " + xOccurencePV_QTE1) SINON {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TTC",indChamp} = nPV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp}*nPV_QTE1,2) {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].nota",indChamp} = sCodePromoPV_QTE xOccurencePV_QTE1 -= {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} //Trace("xOccurencePV_QTE13 : " + xOccurencePV_QTE1) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurencePV_QTE1 = 0 _ET_ xOccurencePV_QTE2 > 0 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TTC",indChamp} = nPV_QTE2 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp}*nPV_QTE2,2) {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].nota",indChamp} = sCodePromoPV_QTE xOccurencePV_QTE2 -= {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} //Trace("xOccurencePV_QTE2 : " + xOccurencePV_QTE2) FIN FIN FIN //Trace("xAjoutPV_QTE : " + xAjoutPV_QTE) SI xAjoutPV_QTE > 0 ALORS sIdartAjoutPV_QTE est une chaîne nQteAjoutPV_QTE est un numérique POUR TOUT ELEMENT nQteAjoutPV_QTE, sIdartAjoutPV_QTE DE taListeIAjoutPV_QTE HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV_QTE) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV_QTE : " + nQteAjoutPV_QTE) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV_QTE //SI bSalariePV_QTE = Vrai ALORS // {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = nPV_QTE2 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV_QTE*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 PATES PERLES SI DateDuJour >= "20240627" ET DateDuJour <= "20240807" ALORS //Trace("TRACT 202407 PATES PERLES") xNombrePV2407PP, xOccurencePV2407PP, xIndicePV2407PP, xAjoutPV2407PP est un entier nPV2407PP est un numérique sCodePromoPV2407PP est une chaîne bTestPV2407PP, bSalariePV2407PP est un booléen STListeArticlePV2407PP est une Structure xIndiceLignePV2407PP est un entier xQtePV2407PP est un entier FIN sCodePromoPV2407PP = "PATES_PERLES_202407" nPV2407PP = 2.50 bTestPV2407PP = Faux bSalariePV2407PP = Faux xAjoutPV2407PP = 0 taListeIAjoutPV2407PP est un tableau associatif de numérique taListeArticlePV2407PP est un tableau de STListeArticlePV2407PP UnArticlePV2407PP est un STListeArticlePV2407PP POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110817 //Trace("IndicePV2407PP : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2407PP.xIndiceLignePV2407PP = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2407PP.xQtePV2407PP = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2407PP,UnArticlePV2407PP) xNombrePV2407PP += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2407PP : " + xNombrePV2407PP) SI xNombrePV2407PP >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2407PP = Vrai FIN FIN xOccurencePV2407PP = PartieEntiere(xNombrePV2407PP/2) * 2 //Trace("xOccurencePV2407PP : " + xOccurencePV2407PP) //Trace("xOccurencePV2407PP0 : " + xOccurencePV2407PP) POUR TOUT ELEMENT UnArticlePV2407PP DE taListeArticlePV2407PP xIndicePV2407PP = UnArticlePV2407PP.xIndiceLignePV2407PP //Trace("xIndicePV2407PP : " + xIndicePV2407PP) SI xOccurencePV2407PP > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} > xOccurencePV2407PP xAjoutPV2407PP = {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} - xOccurencePV2407PP taListeIAjoutPV2407PP[{"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].IDART",indChamp}] += xAjoutPV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} = xOccurencePV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TTC",indChamp} = nPV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp}*nPV2407PP,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].nota",indChamp} = sCodePromoPV2407PP xOccurencePV2407PP -= 2 //Trace("xOccurencePV2407PP1 : " + xOccurencePV2407PP) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} = xOccurencePV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TTC",indChamp} = nPV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp}*nPV2407PP,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].nota",indChamp} = sCodePromoPV2407PP xOccurencePV2407PP = 0 //Trace("xOccurencePV2407PP2 : " + xOccurencePV2407PP) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TTC",indChamp} = nPV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp}*nPV2407PP,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].nota",indChamp} = sCodePromoPV2407PP xOccurencePV2407PP -= {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} //Trace("xOccurencePV2407PP3 : " + xOccurencePV2407PP) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2407PP : " + xAjoutPV2407PP) SI xAjoutPV2407PP > 0 ALORS sIdartAjoutPV2407PP est une chaîne nQteAjoutPV2407PP est un numérique POUR TOUT ELEMENT nQteAjoutPV2407PP, sIdartAjoutPV2407PP DE taListeIAjoutPV2407PP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2407PP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2407PP : " + nQteAjoutPV2407PP) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2407PP SI bSalariePV2407PP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2407PP*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 TOMATES SECHEES SI DateDuJour >= "20240627" ET DateDuJour <= "20240807" ALORS //Trace("TRACT 202407 TOMATES SECHEES") xNombrePV2407TC, xOccurencePV2407TC, xIndicePV2407TC, xAjoutPV2407TC est un entier nPV2407TC est un numérique sCodePromoPV2407TC est une chaîne bTestPV2407TC, bSalariePV2407TC est un booléen STListeArticlePV2407TC est une Structure xIndiceLignePV2407TC est un entier xQtePV2407TC est un entier FIN sCodePromoPV2407TC = "TOMATES_SECHEES_202407" nPV2407TC = 3.50 bTestPV2407TC = Faux bSalariePV2407TC = Faux xAjoutPV2407TC = 0 taListeIAjoutPV2407TC est un tableau associatif de numérique taListeArticlePV2407TC est un tableau de STListeArticlePV2407TC UnArticlePV2407TC est un STListeArticlePV2407TC POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110313 //Trace("IndicePV2407TC : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2407TC.xIndiceLignePV2407TC = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2407TC.xQtePV2407TC = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2407TC,UnArticlePV2407TC) xNombrePV2407TC += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2407TC : " + xNombrePV2407TC) SI xNombrePV2407TC >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2407TC = Vrai FIN FIN xOccurencePV2407TC = PartieEntiere(xNombrePV2407TC/2) * 2 //Trace("xOccurencePV2407TC : " + xOccurencePV2407TC) //Trace("xOccurencePV2407TC0 : " + xOccurencePV2407TC) POUR TOUT ELEMENT UnArticlePV2407TC DE taListeArticlePV2407TC xIndicePV2407TC = UnArticlePV2407TC.xIndiceLignePV2407TC //Trace("xIndicePV2407TC : " + xIndicePV2407TC) SI xOccurencePV2407TC > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} > xOccurencePV2407TC xAjoutPV2407TC = {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} - xOccurencePV2407TC taListeIAjoutPV2407TC[{"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].IDART",indChamp}] += xAjoutPV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} = xOccurencePV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TTC",indChamp} = nPV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp}*nPV2407TC,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].nota",indChamp} = sCodePromoPV2407TC xOccurencePV2407TC -= 2 //Trace("xOccurencePV2407TC1 : " + xOccurencePV2407TC) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} = xOccurencePV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TTC",indChamp} = nPV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp}*nPV2407TC,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].nota",indChamp} = sCodePromoPV2407TC xOccurencePV2407TC = 0 //Trace("xOccurencePV2407TC2 : " + xOccurencePV2407TC) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TTC",indChamp} = nPV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp}*nPV2407TC,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].nota",indChamp} = sCodePromoPV2407TC xOccurencePV2407TC -= {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} //Trace("xOccurencePV2407TC3 : " + xOccurencePV2407TC) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2407TC : " + xAjoutPV2407TC) SI xAjoutPV2407TC > 0 ALORS sIdartAjoutPV2407TC est une chaîne nQteAjoutPV2407TC est un numérique POUR TOUT ELEMENT nQteAjoutPV2407TC, sIdartAjoutPV2407TC DE taListeIAjoutPV2407TC HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2407TC) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2407TC : " + nQteAjoutPV2407TC) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2407TC SI bSalariePV2407TC = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2407TC*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 THON AU NATUREL SI DateDuJour >= "20240627" ET DateDuJour <= "20240807" ALORS //Trace("THON AU NATUREL") xNombre2407THON, xOccurence2407THON, xOccurence2407THONSansRemise, xIndice2407THON, xAjout2407THON, xAjout2407THONSansRemise est un entier xRemise2407THON est un numérique sCodePromo2407THON est une chaîne bTest2407THON, bSalarie2407THON est un booléen STListeArticle2407THON est une Structure xIndiceLigne2407THON est un entier xQte2407THON est un entier FIN sCodePromo2407THON = "THON_202407" xRemise2407THON = 50.00 bTest2407THON = Faux bSalarie2407THON = Faux xAjout2407THON = 0 taListeIAjout2407THON est un tableau associatif de numérique taListeIAjout2407THONSansRemise est un tableau associatif de numérique taListeArticle2407THON est un tableau de STListeArticle2407THON UnArticle2407THON est un STListeArticle2407THON POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 100509 //Trace("Indice2407THON : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2407THON.xIndiceLigne2407THON = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2407THON.xQte2407THON = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2407THON,UnArticle2407THON) xNombre2407THON += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2407THON : " + xNombre2407THON) SI xNombre2407THON >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2407THON = Vrai FIN FIN xOccurence2407THON = PartieEntiere(xNombre2407THON/2) xOccurence2407THONSansRemise = xOccurence2407THON //Trace("xOccurence2407THON : " + xOccurence2407THON) //Trace("xOccurence2407THON0 : " + xOccurence2407THON) POUR TOUT ELEMENT UnArticle2407THON DE taListeArticle2407THON xIndice2407THON = UnArticle2407THON.xIndiceLigne2407THON //Trace("xIndice2407THON : " + xIndice2407THON) SI xOccurence2407THON > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} > xOccurence2407THON xAjout2407THONSansRemise = xOccurence2407THON xAjout2407THON = {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} - (xOccurence2407THON * 2) taListeIAjout2407THONSansRemise[{"Fiche_caisse_1024.table_article["+xIndice2407THON+"].IDART",indChamp}] = xAjout2407THONSansRemise taListeIAjout2407THON[{"Fiche_caisse_1024.table_article["+xIndice2407THON+"].IDART",indChamp}] += xAjout2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} = xOccurence2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = xRemise2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].nota",indChamp} = sCodePromo2407THON xOccurence2407THON = 0 //Trace("xOccurence2407THON1 : " + xOccurence2407THON) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} = xOccurence2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = xRemise2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].nota",indChamp} = sCodePromo2407THON xOccurence2407THON = 0 //Trace("xOccurence2407THON2 : " + xOccurence2407THON) SINON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = xRemise2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].nota",indChamp} = sCodePromo2407THON xOccurence2407THON -= {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} //Trace("xOccurence2407THON3 : " + xOccurence2407THON) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurence2407THONSansRemise > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} > xOccurence2407THONSansRemise xAjout2407THON = xOccurence2407THON taListeIAjout2407THON[{"Fiche_caisse_1024.table_article["+xIndice2407THON+"].IDART",indChamp}] += xAjout2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} = xOccurence2407THONSansRemise {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 xOccurence2407THONSansRemise = 0 //Trace("xOccurence2407THONSansRemise1 : " + xOccurence2407THONSansRemise) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} = xOccurence2407THONSansRemise {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 xOccurence2407THONSansRemise = 0 //Trace("xOccurence2407THONSansRemise2 : " + xOccurence2407THONSansRemise) SINON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 xOccurence2407THONSansRemise -= {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} //Trace("xOccurence2407THONSansRemise3 : " + xOccurence2407THONSansRemise) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjout2407THONSansRemise : " + xAjout2407THONSansRemise) SI xAjout2407THONSansRemise > 0 ALORS sIdartAjout2407THONSansRemise est une chaîne nQteAjout2407THONSansRemise est un numérique POUR TOUT ELEMENT nQteAjout2407THONSansRemise, sIdartAjout2407THONSansRemise DE taListeIAjout2407THONSansRemise HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2407THONSansRemise) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2407THONSansRemise : " + nQteAjout2407THONSansRemise) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2407THONSansRemise {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2407THONSansRemise*{"ARTICLE.PRIX_TTC",indRubrique},2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp}=1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp}=1 nNombreLigneEnCaisse+=1 FIN FIN FIN //Trace("xAjout2407THON : " + xAjout2407THON) SI xAjout2407THON > 0 ALORS sIdartAjout2407THON est une chaîne nQteAjout2407THON est un numérique POUR TOUT ELEMENT nQteAjout2407THON, sIdartAjout2407THON DE taListeIAjout2407THON HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2407THON) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2407THON : " + nQteAjout2407THON) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2407THON SI bSalarie2407THON = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2407THON*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 DOYPACK OLIVE SI DateDuJour >= "20240627" ET DateDuJour <= "20240807" ALORS //Trace("DOYPACK OLIVE") xNombre2407DO, xOccurence2407DO, xOccurence2407DOSansRemise, xIndice2407DO, xAjout2407DO, xAjout2407DOSansRemise est un entier xRemise2407DO est un numérique sCodePromo2407DO est une chaîne bTest2407DO, bSalarie2407DO est un booléen STListeArticle2407DO est une Structure xIndiceLigne2407DO est un entier xQte2407DO est un entier FIN sCodePromo2407DO = "DOYPACK_OLIVE_202407" xRemise2407DO = 40.00 bTest2407DO = Faux bSalarie2407DO = Faux xAjout2407DO = 0 taListeIAjout2407DO est un tableau associatif de numérique taListeIAjout2407DOSansRemise est un tableau associatif de numérique taListeArticle2407DO est un tableau de STListeArticle2407DO UnArticle2407DO est un STListeArticle2407DO POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 100611 //Trace("Indice2407DO : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2407DO.xIndiceLigne2407DO = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2407DO.xQte2407DO = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2407DO,UnArticle2407DO) xNombre2407DO += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2407DO : " + xNombre2407DO) SI xNombre2407DO >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2407DO = Vrai FIN FIN xOccurence2407DO = PartieEntiere(xNombre2407DO/2) xOccurence2407DOSansRemise = xOccurence2407DO //Trace("xOccurence2407DO : " + xOccurence2407DO) //Trace("xOccurence2407DO0 : " + xOccurence2407DO) POUR TOUT ELEMENT UnArticle2407DO DE taListeArticle2407DO xIndice2407DO = UnArticle2407DO.xIndiceLigne2407DO //Trace("xIndice2407DO : " + xIndice2407DO) SI xOccurence2407DO > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} > xOccurence2407DO xAjout2407DOSansRemise = xOccurence2407DO xAjout2407DO = {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} - (xOccurence2407DO * 2) taListeIAjout2407DOSansRemise[{"Fiche_caisse_1024.table_article["+xIndice2407DO+"].IDART",indChamp}] = xAjout2407DOSansRemise taListeIAjout2407DO[{"Fiche_caisse_1024.table_article["+xIndice2407DO+"].IDART",indChamp}] += xAjout2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} = xOccurence2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = xRemise2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].nota",indChamp} = sCodePromo2407DO xOccurence2407DO = 0 //Trace("xOccurence2407DO1 : " + xOccurence2407DO) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} = xOccurence2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = xRemise2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].nota",indChamp} = sCodePromo2407DO xOccurence2407DO = 0 //Trace("xOccurence2407DO2 : " + xOccurence2407DO) SINON {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = xRemise2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].nota",indChamp} = sCodePromo2407DO xOccurence2407DO -= {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} //Trace("xOccurence2407DO3 : " + xOccurence2407DO) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurence2407DOSansRemise > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} > xOccurence2407DOSansRemise xAjout2407DO = xOccurence2407DO taListeIAjout2407DO[{"Fiche_caisse_1024.table_article["+xIndice2407DO+"].IDART",indChamp}] += xAjout2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} = xOccurence2407DOSansRemise {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].NO_REMISE",indChamp}= 1 xOccurence2407DOSansRemise = 0 //Trace("xOccurence2407DOSansRemise1 : " + xOccurence2407DOSansRemise) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} = xOccurence2407DOSansRemise {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"FichÒÈÙÖÛ òõ//MP SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //OP VOLUME 202402 SI (DateDuJour >= "20240428" ET DateDuJour <= "20240930") ALORS //Trace("OP VOLUME 202402") STListeArticleOP est une Structure xCompteurOP est un entier xOccurenceOP est un entier xIdartOP est un entier FIN taListeArticleOP est un tableau associatif de STListeArticleOP stInitialisationPourCompilOP est un STListeArticleOP taListeIndiceOP est un tableau associatif de numérique taListeIDartAjoutLigneOffertOP est un tableau associatif de numérique taListeIDartAjoutLigneOP est un tableau associatif de numérique sCodePromoOP, sTxtSql_OP, sIdentifiantOP est une chaîne nRemiseOP est un numérique xNbOffertOP, xNbNoRemiseOP, xNbRemiseOP, xNbNouvelleQteOP est un entier bCalculNoRemiseOP,bCalculRemiseOP, bSalarieOP, bMagOP est un booléen sdReq_Source_OP est une source de données sCodePromoOP="OFFRE_VOLUME_202401" sIdentifiantOP="BLOQUE_202401" xNbOffertOP = 0 xNbNoRemiseOP = 0 bSalarieOP = Faux bMagOP = Vrai SI {"gnSITE",indvariable} IN(6,20) ALORS bMagOP = Faux FIN SI bMagOP = Vrai ALORS SI (DateDuJour >= "20240428" ET DateDuJour <= "20240630") ALORS sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100549,100854,100900,101851,102116,110406,110365,105926) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) SI HExécuteRequêteSQL(sdReq_Source_OP,hRequêteDéfaut,sTxtSql_OP) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN SINON sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100900,101851,110406,110365,105926,100854,102133,101964) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) SI HExécuteRequêteSQL(sdReq_Source_OP,hRequêteDéfaut,sTxtSql_OP) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN FIN SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieOP = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier(sdReq_Source_OP, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve(sdReq_Source_OP) = Vrai ALORS //Trace("Trouve") SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOP ALORS SINON SI taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilOP FIN taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteurOP +={"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xOccurenceOP += 1 taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIdartOP = {"Fiche_caisse_1024.table_article.IDART",indChamp} taListeIndiceOP[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN FIN FIN FIN A1 sont des STListeArticleOP Trie(taListeIndiceOP,ttcroissant) xCptOP, xIdartControleOP sont des entiers xCptOP = 1 POUR TOUT ELEMENT A1 DE taListeArticleOP //Trace(A1.xCompteurOP + " / " + A1.xOccurenceOP + " / " + A1.xIdartOP) //Trace("xCptOP : " + xCptOP) SI A1.xCompteurOP > 2 ALORS //Trace("xIdartControleOP : " + xIdartControleOP) SI xCptOP = 1 ALORS xIdartControleOP = A1.xIdartOP SINON SI xIdartControleOP <> A1.xIdartOP ALORS xIdartControleOP = A1.xIdartOP FIN xNbOffertOP = PartieEntiere(A1.xCompteurOP/3) xNbNoRemiseOP = 2 * xNbOffertOP xNbRemiseOP = A1.xCompteurOP - (xNbOffertOP + xNbNoRemiseOP) //Trace("xNbOffertOP : " + xNbOffertOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceOP SI sIdart = A1.xIdartOP ALORS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOP_Avant : " + xNbOffertOP) bCalculNoRemiseOP = Vrai bCalculRemiseOP = Vrai SI xNbOffertOP > 0 ALORS //Trace("xNbOffertOP2 : " + xNbOffertOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOP ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP = 0 bCalculNoRemiseOP = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOP ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOP[sIdart] = xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOP = 0 bCalculNoRemiseOP = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOP ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOP = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("bCalculRemiseOP : " + bCalculRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) //INFO("FIN TRAITEMENT OFFERT") SI bCalculRemiseOP = Vrai _ET_ xNbRemiseOP > 0 ALORS //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} + " / xNbRemiseOP1 : " + xNbRemiseOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseOP ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseOP1 : " + xNbRemiseOP) xNbRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseOP ALORS //Trace("xNbRemiseOP2 : " + xNbRemiseOP) taListeIDartAjoutLigneOP[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}]= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbRemiseOP = 0 FIN FIN //Trace("bCalculNoRemiseOP : " + bCalculNoRemiseOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP) SI bCalculNoRemiseOP = Vrai _ET_ xNbNoRemiseOP > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP1 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP2 : " + xNbNoRemiseOP) taListeIDartAjoutLigneOP[sIdart] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP3 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN xCptOP +=1 FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertOP est une chaîne nQteAjoutOffertOP est un numérique POUR TOUT ELEMENT nQteAjoutOffertOP, sIdartAjoutOffertOP DE taListeIDartAjoutLigneOffertOP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertOP {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneOP est une chaîne nQteAjoutLigneOP est un numérique POUR TOUT ELEMENT nQteAjoutLigneOP, sIdartAjoutLigneOP DE taListeIDartAjoutLigneOP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOP SI bSalarieOP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //PROMO DESTOCKAGE CHOCOLAT 202405 SI DateDuJour >= "20240506" and DateDuJour <= "20240731" ALORS //Trace("DESTOCKAGE CHOCOLAT 202405") STListeArticleChoc05 est une Structure xCompteurChoc05 est un entier xOccurenceChoc05 est un entier xIdartChoc05 est un entier FIN taListeArticleChoc05 est un tableau associatif de STListeArticleChoc05 stInitialisationPourCompilChoc05 est un STListeArticleChoc05 taListeIndiceChoc05 est un tableau associatif de numérique taListeIDartAjoutLigneOffertChoc05 est un tableau associatif de numérique taListeIDartAjoutLigneChoc05 est un tableau associatif de numérique sCodePromoChoc05, sTxtSql_Choc05, sIdentifiantChoc05 est une chaîne nRemiseChoc05 est un numérique xNbOffertChoc05, xNbNoRemiseChoc05, xNbRemiseChoc05, xNbNouvelleQteChoc05 est un entier bCalculNoRemiseChoc05,bCalculRemiseChoc05, bSalarieChoc05, bMagChoc05 est un booléen sdReq_Source_Choc05 est une source de données sCodePromoChoc05="DESTOCKAGE_CHOCOLAT_202405" sIdentifiantChoc05="BLOQUE_CHOC_202405" xNbOffertChoc05 = 0 xNbNoRemiseChoc05 = 0 bSalarieChoc05 = Faux bMagChoc05 = Vrai sTxtSql_Choc05 = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(110455) ] sTxtSql_Choc05 = ChaîneConstruit(sTxtSql_Choc05) SI HExécuteRequêteSQL(sdReq_Source_Choc05,hRequêteDéfaut,sTxtSql_Choc05) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieChoc05 = Vrai FIN FIN SI bMagChoc05 = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier(sdReq_Source_Choc05, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve(sdReq_Source_Choc05) = Vrai ALORS //Trace("Trouve") SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoChoc05 _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantChoc05 ALORS SINON SI taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilChoc05 FIN taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteurChoc05 +={"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xOccurenceChoc05 += 1 taListeArticleChoc05[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIdartChoc05 = {"Fiche_caisse_1024.table_article.IDART",indChamp} taListeIndiceChoc05[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN FIN FIN FIN A1 sont des STListeArticleChoc05 Trie(taListeIndiceChoc05,ttcroissant) xCptChoc05, xIdartControleChoc05 sont des entiers xCptChoc05 = 1 POUR TOUT ELEMENT A1 DE taListeArticleChoc05 //Trace(A1.xCompteurChoc05 + " / " + A1.xOccurenceChoc05 + " / " + A1.xIdartChoc05) //Trace("xCptChoc05 : " + xCptChoc05) SI A1.xCompteurChoc05 > 2 ALORS //Trace("xIdartControleChoc05 : " + xIdartControleChoc05) SI xCptChoc05 = 1 ALORS xIdartControleChoc05 = A1.xIdartChoc05 SINON SI xIdartControleChoc05 <> A1.xIdartChoc05 ALORS xIdartControleChoc05 = A1.xIdartChoc05 FIN xNbOffertChoc05 = PartieEntiere(A1.xCompteurChoc05/3) xNbNoRemiseChoc05 = 2 * xNbOffertChoc05 xNbRemiseChoc05 = A1.xCompteurChoc05 - (xNbOffertChoc05 + xNbNoRemiseChoc05) //Trace("xNbOffertChoc05 : " + xNbOffertChoc05 + " / xNbNoRemiseChoc05 : " + xNbNoRemiseChoc05 + " / xNbRemiseChoc05 : " + xNbRemiseChoc05) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceChoc05 SI sIdart = A1.xIdartChoc05 ALORS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertChoc05_Avant : " + xNbOffertChoc05) bCalculNoRemiseChoc05 = Vrai bCalculRemiseChoc05 = Vrai SI xNbOffertChoc05 > 0 ALORS //Trace("xNbOffertChoc05-2 : " + xNbOffertChoc05) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertChoc05 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoChoc05 xNbOffertChoc05 = 0 bCalculNoRemiseChoc05 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertChoc05 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertChoc05[sIdart] = xNbOffertChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertChoc05 = 0 bCalculNoRemiseChoc05 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertChoc05 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoChoc05 xNbOffertChoc05 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseChoc05 = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("bCalculRemiseChoc05 : " + bCalculRemiseChoc05 + " / xNbRemiseChoc05 : " + xNbRemiseChoc05) //INFO("FIN TRAITEMENT OFFERT") SI bCalculRemiseChoc05 = Vrai _ET_ xNbRemiseChoc05 > 0 ALORS //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} + " / xNbRemiseChoc05-1 : " + xNbRemiseChoc05) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseChoc05 ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseChoc05-1 : " + xNbRemiseChoc05) xNbRemiseChoc05 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseChoc05 ALORS //Trace("xNbRemiseChoc05-2 : " + xNbRemiseChoc05) taListeIDartAjoutLigneChoc05[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}]= xNbRemiseChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantChoc05 xNbRemiseChoc05 = 0 FIN FIN //Trace("bCalculNoRemiseChoc05 : " + bCalculNoRemiseChoc05 + " / xNbNoRemiseChoc05 : " + xNbNoRemiseChoc05) SI bCalculNoRemiseChoc05 = Vrai _ET_ xNbNoRemiseChoc05 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseChoc05 ALORS //Trace("xNbNoRemiseChoc05-1 : " + xNbNoRemiseChoc05) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantChoc05 xNbNoRemiseChoc05 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseChoc05 ALORS //Trace("xNbNoRemiseChoc05-2 : " + xNbNoRemiseChoc05) taListeIDartAjoutLigneChoc05[sIdart] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseChoc05 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantChoc05 xNbNoRemiseChoc05 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseChoc05 ALORS //Trace("xNbNoRemiseChoc05-3 : " + xNbNoRemiseChoc05) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantChoc05 xNbNoRemiseChoc05 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN xCptChoc05 +=1 FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertChoc05 est une chaîne nQteAjoutOffertChoc05 est un numérique POUR TOUT ELEMENT nQteAjoutOffertChoc05, sIdartAjoutOffertChoc05 DE taListeIDartAjoutLigneOffertChoc05 HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertChoc05) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertChoc05 {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoChoc05 nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneChoc05 est une chaîne nQteAjoutLigneChoc05 est un numérique POUR TOUT ELEMENT nQteAjoutLigneChoc05, sIdartAjoutLigneChoc05 DE taListeIDartAjoutLigneChoc05 HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneChoc05) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneChoc05 SI bSalarieChoc05 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //PROMO TF FRAIS 202406 SI DateDuJour >= "20240530" and DateDuJour <= "20240612" ALORS //Trace("TF FRAIS 202406") nRemiseTFFrais est un numérique sCodePromoTFFrais est une chaîne sCodePromoTFFrais = "TF_Frais_202406" nRemiseTFFrais = 15.00 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTFFrais ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTFFrais {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromoTFFrais FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 GASPACHO SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("TRACT 202406 GASPACHO") xNombrePV2406G, xOccurencePV2406G, xIndicePV2406G, xAjoutPV2406G est un entier nPV2406G est un numérique sCodePromoPV2406G est une chaîne bTestPV2406G, bSalariePV2406G est un booléen STListeArticlePV2406G est une Structure xIndiceLignePV2406G est un entier xQtePV2406G est un entier FIN sCodePromoPV2406G = "TRACT_202406G" nPV2406G = 3.50 bTestPV2406G = Faux bSalariePV2406G = Faux xAjoutPV2406G = 0 taListeIAjoutPV2406G est un tableau associatif de numérique taListeArticlePV2406G est un tableau de STListeArticlePV2406G UnArticlePV2406G est un STListeArticlePV2406G POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 106835 //Trace("IndicePV2406G : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2406G.xIndiceLignePV2406G = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2406G.xQtePV2406G = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2406G,UnArticlePV2406G) xNombrePV2406G += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2406G : " + xNombrePV2406G) SI xNombrePV2406G >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2406G = Vrai FIN FIN xOccurencePV2406G = PartieEntiere(xNombrePV2406G/2) * 2 //Trace("xOccurencePV2406G : " + xOccurencePV2406G) //Trace("xOccurencePV2406G0 : " + xOccurencePV2406G) POUR TOUT ELEMENT UnArticlePV2406G DE taListeArticlePV2406G xIndicePV2406G = UnArticlePV2406G.xIndiceLignePV2406G //Trace("xIndicePV2406G : " + xIndicePV2406G) SI xOccurencePV2406G > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} > xOccurencePV2406G xAjoutPV2406G = {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} - xOccurencePV2406G taListeIAjoutPV2406G[{"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].IDART",indChamp}] += xAjoutPV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} = xOccurencePV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TTC",indChamp} = nPV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp}*nPV2406G,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].nota",indChamp} = sCodePromoPV2406G xOccurencePV2406G -= 2 //Trace("xOccurencePV2406G1 : " + xOccurencePV2406G) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} = xOccurencePV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TTC",indChamp} = nPV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp}*nPV2406G,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].nota",indChamp} = sCodePromoPV2406G xOccurencePV2406G = 0 //Trace("xOccurencePV2406G2 : " + xOccurencePV2406G) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TTC",indChamp} = nPV2406G {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp}*nPV2406G,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].nota",indChamp} = sCodePromoPV2406G xOccurencePV2406G -= {"Fiche_caisse_1024.table_article["+xIndicePV2406G+"].QTE",indChamp} //Trace("xOccurencePV2406G3 : " + xOccurencePV2406G) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2406G : " + xAjoutPV2406G) SI xAjoutPV2406G > 0 ALORS sIdartAjoutPV2406G est une chaîne nQteAjoutPV2406G est un numérique POUR TOUT ELEMENT nQteAjoutPV2406G, sIdartAjoutPV2406G DE taListeIAjoutPV2406G HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2406G) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2406G : " + nQteAjoutPV2406G) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2406G SI bSalariePV2406G = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2406G*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 ARTICHAUD SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("TRACT 202406 ARTICHAUD") xNombrePV2406A, xOccurencePV2406A, xIndicePV2406A, xAjoutPV2406A est un entier nPV2406A est un numérique sCodePromoPV2406A est une chaîne bTestPV2406A, bSalariePV2406A est un booléen STListeArticlePV2406A est une Structure xIndiceLignePV2406A est un entier xQtePV2406A est un entier FIN sCodePromoPV2406A = "TRACT_202406A" nPV2406A = 2.50 bTestPV2406A = Faux bSalariePV2406A = Faux xAjoutPV2406A = 0 taListeIAjoutPV2406A est un tableau associatif de numérique taListeArticlePV2406A est un tableau de STListeArticlePV2406A UnArticlePV2406A est un STListeArticlePV2406A POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 102266 //Trace("IndicePV2406A : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2406A.xIndiceLignePV2406A = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2406A.xQtePV2406A = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2406A,UnArticlePV2406A) xNombrePV2406A += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2406A : " + xNombrePV2406A) SI xNombrePV2406A >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2406A = Vrai FIN FIN xOccurencePV2406A = PartieEntiere(xNombrePV2406A/2) * 2 //Trace("xOccurencePV2406A : " + xOccurencePV2406A) //Trace("xOccurencePV2406A0 : " + xOccurencePV2406A) POUR TOUT ELEMENT UnArticlePV2406A DE taListeArticlePV2406A xIndicePV2406A = UnArticlePV2406A.xIndiceLignePV2406A //Trace("xIndicePV2406A : " + xIndicePV2406A) SI xOccurencePV2406A > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} > xOccurencePV2406A xAjoutPV2406A = {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} - xOccurencePV2406A taListeIAjoutPV2406A[{"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].IDART",indChamp}] += xAjoutPV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} = xOccurencePV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TTC",indChamp} = nPV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp}*nPV2406A,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].nota",indChamp} = sCodePromoPV2406A xOccurencePV2406A -= 2 //Trace("xOccurencePV2406A1 : " + xOccurencePV2406A) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} = xOccurencePV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TTC",indChamp} = nPV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp}*nPV2406A,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].nota",indChamp} = sCodePromoPV2406A xOccurencePV2406A = 0 //Trace("xOccurencePV2406A2 : " + xOccurencePV2406A) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TTC",indChamp} = nPV2406A {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp}*nPV2406A,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].nota",indChamp} = sCodePromoPV2406A xOccurencePV2406A -= {"Fiche_caisse_1024.table_article["+xIndicePV2406A+"].QTE",indChamp} //Trace("xOccurencePV2406A3 : " + xOccurencePV2406A) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2406A : " + xAjoutPV2406A) SI xAjoutPV2406A > 0 ALORS sIdartAjoutPV2406A est une chaîne nQteAjoutPV2406A est un numérique POUR TOUT ELEMENT nQteAjoutPV2406A, sIdartAjoutPV2406A DE taListeIAjoutPV2406A HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2406A) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2406A : " + nQteAjoutPV2406A) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2406A SI bSalariePV2406A = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2406A*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 TOMATE SECHEE SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("TRACT 202406 TOMATE SECHEE") xNombrePV2406T, xOccurencePV2406T, xIndicePV2406T, xAjoutPV2406T est un entier nPV2406T est un numérique sCodePromoPV2406T est une chaîne bTestPV2406T, bSalariePV2406T est un booléen STListeArticlePV2406T est une Structure xIndiceLignePV2406T est un entier xQtePV2406T est un entier FIN sCodePromoPV2406T = "TRACT_202406T" nPV2406T = 2.50 bTestPV2406T = Faux bSalariePV2406T = Faux xAjoutPV2406T = 0 taListeIAjoutPV2406T est un tableau associatif de numérique taListeArticlePV2406T est un tableau de STListeArticlePV2406T UnArticlePV2406T est un STListeArticlePV2406T POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110311 //Trace("IndicePV2406T : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2406T.xIndiceLignePV2406T = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2406T.xQtePV2406T = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2406T,UnArticlePV2406T) xNombrePV2406T += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2406T : " + xNombrePV2406T) SI xNombrePV2406T >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2406T = Vrai FIN FIN xOccurencePV2406T = PartieEntiere(xNombrePV2406T/2) * 2 //Trace("xOccurencePV2406T : " + xOccurencePV2406T) //Trace("xOccurencePV2406T0 : " + xOccurencePV2406T) POUR TOUT ELEMENT UnArticlePV2406T DE taListeArticlePV2406T xIndicePV2406T = UnArticlePV2406T.xIndiceLignePV2406T //Trace("xIndicePV2406T : " + xIndicePV2406T) SI xOccurencePV2406T > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} > xOccurencePV2406T xAjoutPV2406T = {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} - xOccurencePV2406T taListeIAjoutPV2406T[{"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].IDART",indChamp}] += xAjoutPV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} = xOccurencePV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TTC",indChamp} = nPV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp}*nPV2406T,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].nota",indChamp} = sCodePromoPV2406T xOccurencePV2406T -= 2 //Trace("xOccurencePV2406T1 : " + xOccurencePV2406T) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} = xOccurencePV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TTC",indChamp} = nPV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp}*nPV2406T,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].nota",indChamp} = sCodePromoPV2406T xOccurencePV2406T = 0 //Trace("xOccurencePV2406T2 : " + xOccurencePV2406T) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TTC",indChamp} = nPV2406T {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp}*nPV2406T,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].nota",indChamp} = sCodePromoPV2406T xOccurencePV2406T -= {"Fiche_caisse_1024.table_article["+xIndicePV2406T+"].QTE",indChamp} //Trace("xOccurencePV2406T3 : " + xOccurencePV2406T) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2406T : " + xAjoutPV2406T) SI xAjoutPV2406T > 0 ALORS sIdartAjoutPV2406T est une chaîne nQteAjoutPV2406T est un numérique POUR TOUT ELEMENT nQteAjoutPV2406T, sIdartAjoutPV2406T DE taListeIAjoutPV2406T HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2406T) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2406T : " + nQteAjoutPV2406T) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2406T SI bSalariePV2406T = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2406T*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 CHOCOLAT SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("TRACT 202406 CHOCOLAT") xNombrePV2406C, xOccurencePV2406C, xIndicePV2406C, xAjoutPV2406C est un entier nPV2406C est un numérique sCodePromoPV2406C est une chaîne bTestPV2406C, bSalariePV2406C est un booléen STListeArticlePV2406C est une Structure xIndiceLignePV2406C est un entier xQtePV2406C est un entier FIN sCodePromoPV2406C = "TRACT_202406C" nPV2406C = 3.00 bTestPV2406C = Faux bSalariePV2406C = Faux xAjoutPV2406C = 0 taListeIAjoutPV2406C est un tableau associatif de numérique taListeArticlePV2406C est un tableau de STListeArticlePV2406C UnArticlePV2406C est un STListeArticlePV2406C POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110413 //Trace("IndicePV2406C : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2406C.xIndiceLignePV2406C = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2406C.xQtePV2406C = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2406C,UnArticlePV2406C) xNombrePV2406C += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2406C : " + xNombrePV2406C) SI xNombrePV2406C >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2406C = Vrai FIN FIN xOccurencePV2406C = PartieEntiere(xNombrePV2406C/2) * 2 //Trace("xOccurencePV2406C : " + xOccurencePV2406C) //Trace("xOccurencePV2406C0 : " + xOccurencePV2406C) POUR TOUT ELEMENT UnArticlePV2406C DE taListeArticlePV2406C xIndicePV2406C = UnArticlePV2406C.xIndiceLignePV2406C //Trace("xIndicePV2406C : " + xIndicePV2406C) SI xOccurencePV2406C > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} > xOccurencePV2406C xAjoutPV2406C = {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} - xOccurencePV2406C taListeIAjoutPV2406C[{"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].IDART",indChamp}] += xAjoutPV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} = xOccurencePV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TTC",indChamp} = nPV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp}*nPV2406C,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].nota",indChamp} = sCodePromoPV2406C xOccurencePV2406C -= 2 //Trace("xOccurencePV2406C1 : " + xOccurencePV2406C) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} = xOccurencePV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TTC",indChamp} = nPV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp}*nPV2406C,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].nota",indChamp} = sCodePromoPV2406C xOccurencePV2406C = 0 //Trace("xOccurencePV2406C2 : " + xOccurencePV2406C) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TTC",indChamp} = nPV2406C {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp}*nPV2406C,2) {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].nota",indChamp} = sCodePromoPV2406C xOccurencePV2406C -= {"Fiche_caisse_1024.table_article["+xIndicePV2406C+"].QTE",indChamp} //Trace("xOccurencePV2406C3 : " + xOccurencePV2406C) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2406C : " + xAjoutPV2406C) SI xAjoutPV2406C > 0 ALORS sIdartAjoutPV2406C est une chaîne nQteAjoutPV2406C est un numérique POUR TOUT ELEMENT nQteAjoutPV2406C, sIdartAjoutPV2406C DE taListeIAjoutPV2406C HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2406C) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2406C : " + nQteAjoutPV2406C) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2406C SI bSalariePV2406C = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2406C*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO GALETTE RIZ SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("GALETTE RIZ") xNombre2406Riz, xOccurence2406Riz, xOccurence2406RizSansRemise, xIndice2406Riz, xAjout2406Riz, xAjout2406RizSansRemise est un entier xRemise2406Riz est un numérique sCodePromo2406Riz est une chaîne bTest2406Riz, bSalarie2406Riz est un booléen STListeArticle2406Riz est une Structure xIndiceLigne2406Riz est un entier xQte2406Riz est un entier FIN sCodePromo2406Riz = "2406Riz_202404" xRemise2406Riz = 50.00 bTest2406Riz = Faux bSalarie2406Riz = Faux xAjout2406Riz = 0 taListeIAjout2406Riz est un tableau associatif de numérique taListeIAjout2406RizSansRemise est un tableau associatif de numérique taListeArticle2406Riz est un tableau de STListeArticle2406Riz UnArticle2406Riz est un STListeArticle2406Riz POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 100899 //Trace("Indice2406Riz : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2406Riz.xIndiceLigne2406Riz = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2406Riz.xQte2406Riz = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2406Riz,UnArticle2406Riz) xNombre2406Riz += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2406Riz : " + xNombre2406Riz) SI xNombre2406Riz >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2406Riz = Vrai FIN FIN xOccurence2406Riz = PartieEntiere(xNombre2406Riz/2) xOccurence2406RizSansRemise = xOccurence2406Riz //Trace("xOccurence2406Riz : " + xOccurence2406Riz) //Trace("xOccurence2406Riz0 : " + xOccurence2406Riz) POUR TOUT ELEMENT UnArticle2406Riz DE taListeArticle2406Riz xIndice2406Riz = UnArticle2406Riz.xIndiceLigne2406Riz //Trace("xIndice2406Riz : " + xIndice2406Riz) SI xOccurence2406Riz > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} > xOccurence2406Riz xAjout2406RizSansRemise = xOccurence2406Riz xAjout2406Riz = {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} - (xOccurence2406Riz * 2) taListeIAjout2406RizSansRemise[{"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].IDART",indChamp}] = xAjout2406RizSansRemise taListeIAjout2406Riz[{"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].IDART",indChamp}] += xAjout2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} = xOccurence2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = xRemise2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].nota",indChamp} = sCodePromo2406Riz xOccurence2406Riz = 0 //Trace("xOccurence2406Riz1 : " + xOccurence2406Riz) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} = xOccurence2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = xRemise2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].nota",indChamp} = sCodePromo2406Riz xOccurence2406Riz = 0 //Trace("xOccurence2406Riz2 : " + xOccurence2406Riz) SINON {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = xRemise2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].nota",indChamp} = sCodePromo2406Riz xOccurence2406Riz -= {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} //Trace("xOccurence2406Riz3 : " + xOccurence2406Riz) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurence2406RizSansRemise > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} > xOccurence2406RizSansRemise xAjout2406Riz = xOccurence2406Riz taListeIAjout2406Riz[{"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].IDART",indChamp}] += xAjout2406Riz {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} = xOccurence2406RizSansRemise {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 xOccurence2406RizSansRemise = 0 //Trace("xOccurence2406RizSansRemise1 : " + xOccurence2406RizSansRemise) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} = xOccurence2406RizSansRemise {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 xOccurence2406RizSansRemise = 0 //Trace("xOccurence2406RizSansRemise2 : " + xOccurence2406RizSansRemise) SINON {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].NO_REMISE",indChamp}= 1 xOccurence2406RizSansRemise -= {"Fiche_caisse_1024.table_article["+xIndice2406Riz+"].QTE",indChamp} //Trace("xOccurence2406RizSansRemise3 : " + xOccurence2406RizSansRemise) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjout2406RizSansRemise : " + xAjout2406RizSansRemise) SI xAjout2406RizSansRemise > 0 ALORS sIdartAjout2406RizSansRemise est une chaîne nQteAjout2406RizSansRemise est un numérique POUR TOUT ELEMENT nQteAjout2406RizSansRemise, sIdartAjout2406RizSansRemise DE taListeIAjout2406RizSansRemise HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2406RizSansRemise) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2406RizSansRemise : " + nQteAjout2406RizSansRemise) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2406RizSansRemise {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2406RizSansRemise*{"ARTICLE.PRIX_TTC",indRubrique},2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp}=1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp}=1 nNombreLigneEnCaisse+=1 FIN FIN FIN //Trace("xAjout2406Riz : " + xAjout2406Riz) SI xAjout2406Riz > 0 ALORS sIdartAjout2406Riz est une chaîne nQteAjout2406Riz est un numérique POUR TOUT ELEMENT nQteAjout2406Riz, sIdartAjout2406Riz DE taListeIAjout2406Riz HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2406Riz) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2406Riz : " + nQteAjout2406Riz) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2406Riz SI bSalarie2406Riz = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2406Riz*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO RECHARGE DEODORANT SI DateDuJour >= "20240530" ET DateDuJour <= "20240626" ALORS //Trace("RECHARGE DEODORANT") xNombre2406Deo, xOccurence2406Deo, xOccurence2406DeoSansRemise, xIndice2406Deo, xAjout2406Deo, xAjout2406DeoSansRemise est un entier xRemise2406Deo est un numérique sCodePromo2406Deo est une chaîne bTest2406Deo, bSalarie2406Deo est un booléen STListeArticle2406Deo est une Structure xIndiceLigne2406Deo est un entier xQte2406Deo est un entier FIN sCodePromo2406Deo = "2406Deo_202404" xRemise2406Deo = 40.00 bTest2406Deo = Faux bSalarie2406Deo = Faux xAjout2406Deo = 0 taListeIAjout2406Deo est un tableau associatif de numérique taListeIAjout2406DeoSansRemise est un tableau associatif de numérique taListeArticle2406Deo est un tableau de STListeArticle2406Deo UnArticle2406Deo est un STListeArticle2406Deo POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 106660,106661,106662,106663 //Trace("Indice2406Deo : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2406Deo.xIndiceLigne2406Deo = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2406Deo.xQte2406Deo = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2406Deo,UnArticle2406Deo) xNombre2406Deo += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2406Deo : " + xNombre2406Deo) SI xNombre2406Deo >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2406Deo = Vrai FIN FIN xOccurence2406Deo = PartieEntiere(xNombre2406Deo/2) xOccurence2406DeoSansRemise = xOccurence2406Deo //Trace("xOccurence2406Deo : " + xOccurence2406Deo) //Trace("xOccurence2406Deo0 : " + xOccurence2406Deo) POUR TOUT ELEMENT UnArticle2406Deo DE taListeArticle2406Deo xIndice2406Deo = UnArticle2406Deo.xIndiceLigne2406Deo //Trace("xIndice2406Deo : " + xIndice2406Deo) SI xOccurence2406Deo > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} > xOccurence2406Deo xAjout2406DeoSansRemise = xOccurence2406Deo xAjout2406Deo = {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} - (xOccurence2406Deo * 2) taListeIAjout2406DeoSansRemise[{"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].IDART",indChamp}] = xAjout2406DeoSansRemise taListeIAjout2406Deo[{"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].IDART",indChamp}] += xAjout2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} = xOccurence2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = xRemise2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].nota",indChamp} = sCodePromo2406Deo xOccurence2406Deo = 0 //Trace("xOccurence2406Deo1 : " + xOccurence2406Deo) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} = xOccurence2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = xRemise2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].nota",indChamp} = sCodePromo2406Deo xOccurence2406Deo = 0 //Trace("xOccurence2406Deo2 : " + xOccurence2406Deo) SINON {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = xRemise2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].nota",indChamp} = sCodePromo2406Deo xOccurence2406Deo -= {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} //Trace("xOccurence2406Deo3 : " + xOccurence2406Deo) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurence2406DeoSansRemise > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} > xOccurence2406DeoSansRemise xAjout2406Deo = xOccurence2406Deo taListeIAjout2406Deo[{"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].IDART",indChamp}] += xAjout2406Deo {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} = xOccurence2406DeoSansRemise {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 xOccurence2406DeoSansRemise = 0 //Trace("xOccurence2406DeoSansRemise1 : " + xOccurence2406DeoSansRemise) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} = xOccurence2406DeoSansRemise {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 xOccurence2406DeoSansRemise = 0 //Trace("xOccurence2406DeoSansRemise2 : " + xOccurence2406DeoSansRemise) SINON {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].NO_REMISE",indChamp}= 1 xOccurence2406DeoSansRemise -= {"Fiche_caisse_1024.table_article["+xIndice2406Deo+"].QTE",indChamp} //Trace("xOccurence2406DeoSansRemise3 : " + xOccurence2406DeoSansRemise) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjout2406DeoSansRemise : " + xAjout2406DeoSansRemise) SI xAjout2406DeoSansRemise > 0 ALORS sIdartAjout2406DeoSansRemise est une chaîne nQteAjout2406DeoSansRemise est un numérique POUR TOUT ELEMENT nQteAjout2406DeoSansRemise, sIdartAjout2406DeoSansRemise DE taListeIAjout2406DeoSansRemise HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2406DeoSansRemise) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2406DeoSansRemise : " + nQteAjout2406DeoSansRemise) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2406DeoSansRemise {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2406DeoSansRemise*{"ARTICLE.PRIX_TTC",indRubrique},2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp}=1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp}=1 nNombreLigneEnCaisse+=1 FIN FIN FIN //Trace("xAjout2406Deo : " + xAjout2406Deo) SI xAjout2406Deo > 0 ALORS sIdartAjout2406Deo est une chaîne nQteAjout2406Deo est un numérique POUR TOUT ELEMENT nQteAjout2406Deo, sIdartAjout2406Deo DE taListeIAjout2406Deo HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2406Deo) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2406Deo : " + nQteAjout2406Deo) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2406Deo SI bSalarie2406Deo = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2406Deo*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TFJUS_202406 SI DateDuJour >= "20240603" ET DateDuJour <= "20240623" ALORS //Trace("TF JUS 202406") xCompteurOPJUS, xIndiceTFJUS, xDiviseurTFJUS est un entier xNbLigneTFJUS, xNbLigneAnnulRemiseTFJUS, xNbLigneNormaleTFJUS, xRemiseTFJUS est un numérique STListeArticleOPJUS est une Structure xCompteurOPJUS est un entier xOccurenceOPJUS est un entier xIdartOPJUS est un entier FIN taListeArticleOPJUS est un tableau associatif de STListeArticleOPJUS stInitialisationPourCompilOPJUS est un STListeArticleOPJUS taListeIndiceOPJUS est un tableau associatif de numérique taListeIDartAjoutLigneOffertOPJUS est un tableau associatif de numérique taListeIDartAjoutLigneOPJUS est un tableau associatif de numérique TableauPositionTFJUS est un tableau associatif de numérique sCodePromoOPJUS, sTxtSql_OPJUS, sIdentifiantOPJUS est une chaîne nRemiseOPJUS est un numérique xNbOffertOPJUS, xNbNoRemiseOPJUS, xNbRemiseOPJUS, xNbNouvelleQteOPJUS est un entier bCalculNoRemiseOPJUS, bCalculRemiseOPJUS, bSalarieOPJUS est un booléen sdReq_Source_OPJUS est une source de données sCodePromoOPJUS="TFJUS_202406" sIdentifiantOPJUS="BLOQUE_202406" xNbOffertOPJUS = 0 xNbNoRemiseOPJUS = 100.00 bSalarieOPJUS = Faux sTxtSql_OPJUS = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100159,100127,100169,100163,100158,100114) ] sTxtSql_OPJUS = ChaîneConstruit(sTxtSql_OPJUS) SI HExécuteRequêteSQL(sdReq_Source_OPJUS,hRequêteDéfaut,sTxtSql_OPJUS) = Faux ALORS Erreur(ErreurInfo(errComplet)) RETOUR FIN SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarieOPJUS = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche(sdReq_Source_OPJUS,"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve(sdReq_Source_OPJUS) = Vrai ALORS //Trace("Trouve") //SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOPJUS _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOPJUS ALORS //SINON xCompteurOPJUS += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceOPJUS[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} //FIN FIN FIN SI xCompteurOPJUS > 2 ALORS Trie(taListeIndiceOPJUS,ttCroissant) xNbOffertOPJUS = PartieEntiere(xCompteurOPJUS/3) xNbNoRemiseOPJUS = 2 * xNbOffertOPJUS xNbRemiseOPJUS = xCompteurOPJUS - (xNbOffertOPJUS + xNbNoRemiseOPJUS) //Trace("xNbOffertOPJUS : " + xNbOffertOPJUS + " / xNbNoRemiseOPJUS : " + xNbNoRemiseOPJUS + " / xNbRemiseOPJUS : " + xNbRemiseOPJUS) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceOPJUS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOPJUS_Avant : " + xNbOffertOPJUS) bCalculNoRemiseOPJUS = Vrai bCalculRemiseOPJUS = Vrai SI xNbOffertOPJUS > 0 ALORS //Trace("xNbOffertOPJUS2 : " + xNbOffertOPJUS) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOPJUS ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOPJUS xNbOffertOPJUS = 0 bCalculNoRemiseOPJUS = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOPJUS ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOPJUS[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOPJUS = 0 bCalculNoRemiseOPJUS = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOPJUS ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOPJUS xNbOffertOPJUS -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOPJUS = Faux FIN bCalculRemiseOPJUS = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseOPJUS : " + bCalculNoRemiseOPJUS + " / xNbNoRemiseOPJUS : " + xNbNoRemiseOPJUS) SI bCalculNoRemiseOPJUS = Vrai _ET_ xNbNoRemiseOPJUS > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOPJUS ALORS //Trace("xNbNoRemiseOPJUS1 : " + xNbNoRemiseOPJUS) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgBooleen",indChamp} = 1 xNbNoRemiseOPJUS = 0 bCalculRemiseOPJUS = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseOPJUS ALORS //Trace("xNbNoRemiseOPJUS2 : " + xNbNoRemiseOPJUS) taListeIDartAjoutLigneOPJUS[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOPJUS xNbRemiseOPJUS -= ({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOPJUS) //Trace("xNbRemiseOPJUS2 : " + xNbRemiseOPJUS) {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseOPJUS = 0 bCalculRemiseOPJUS = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseOPJUS ALORS //Trace("xNbNoRemiseOPJUS3 : " + xNbNoRemiseOPJUS) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseOPJUS -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemiseOPJUS = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemiseOPJUS = Vrai _ET_ xNbRemiseOPJUS > 0 ALORS //Trace("xNbRemiseOPJUS1 : " + xNbRemiseOPJUS) //{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) //{"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 //xNbRemiseOPJUS -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseOPJUS ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseOP1 : " + xNbRemiseOPJUS) SI bSalarieOPJUS = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN xNbRemiseOPJUS = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseOPJUS ALORS //Trace("xNbRemiseOP2 : " + xNbRemiseOPJUS) taListeIDartAjoutLigneOPJUS[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] += xNbRemiseOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseOPJUS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOPJUS xNbRemiseOPJUS = 0 FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertOPJUS est une chaîne nQteAjoutOffertOPJUS est un numérique POUR TOUT ELEMENT nQteAjoutOffertOPJUS, sIdartAjoutOffertOPJUS DE taListeIDartAjoutLigneOffertOPJUS //Trace("nQteAjoutOffertOPJUS : " + nQteAjoutOffertOPJUS + " / sIdartAjoutOffertOPJUS : " + sIdartAjoutOffertOPJUS) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertOPJUS) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertOPJUS {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOPJUS nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneOPJUS est une chaîne nQteAjoutLigneOPJUS est un numérique POUR TOUT ELEMENT nQteAjoutLigneOPJUS, sIdartAjoutLigneOPJUS DE taListeIDartAjoutLigneOPJUS //Trace("nQteAjoutLigneOPJUS : " + nQteAjoutLigneOPJUS + " / sIdartAjoutLigneOPJUS : " + sIdartAjoutLigneOPJUS) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOPJUS) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneOPJUS : " + sIdartAjoutLigneOPJUS) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOPJUS SI bSalarieOPJUS = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") FIN //PROMO TF HUILE 202406 SI DateDuJour >= "20240613" and DateDuJour <= "20240626" ALORS //Trace("TF HUILE 202406") nRemiseTFHuile est un numérique sCodePromoTFHuile est une chaîne sCodePromoTFHuile = "TF_Huile_202406" nRemiseTFHuile = 15.00 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTFHuile ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTFHuile {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromoTFHuile FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO DESTOCKAGE CULOTTE 202406 PV_QTE SI DateDuJour >= "20240626" ET DateDuJour <= "20240716" ALORS //Trace("CULOTTE 202406 PV_QTE") xNombrePV_QTE, xOccurencePV_QTE1, xOccurencePV_QTE2, xIndicePV_QTE, xAjoutPV_QTE est un entier nPV_QTE1, nPV_QTE2 est un numérique sCodePromoPV_QTE est une chaîne bSalariePV_QTE est un booléen STListeArticlePV_QTE est une Structure xIndiceLignePV_QTE est un entier xQtePV_QTE est un entier FIN sCodePromoPV_QTE = "DESTOCKAGE_CULOTTE_202406" nPV_QTE1 = 16.99 nPV_QTE2 = 19.99 bSalariePV_QTE = Faux xAjoutPV_QTE = 0 taListeIAjoutPV_QTE est un tableau associatif de numérique taListeArticlePV_QTE est un tableau de STListeArticlePV_QTE UnArticlePV_QTE est un STListeArticlePV_QTE POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 593144 //Trace("IndicePV_QTE : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV_QTE.xIndiceLignePV_QTE = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV_QTE.xQtePV_QTE = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV_QTE,UnArticlePV_QTE) xNombrePV_QTE += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV_QTE : " + xNombrePV_QTE) SI xNombrePV_QTE >= 1 ALORS xOccurencePV_QTE1 = PartieEntiere(xNombrePV_QTE/3) * 3 xOccurencePV_QTE2 = xNombrePV_QTE - xOccurencePV_QTE1 //Trace("xOccurencePV_QTE1 : " + xOccurencePV_QTE1 + " / xOccurencePV_QTE2 : " + xOccurencePV_QTE2) POUR TOUT ELEMENT UnArticlePV_QTE DE taListeArticlePV_QTE xIndicePV_QTE = UnArticlePV_QTE.xIndiceLignePV_QTE //Trace("xIndicePV_QTE : " + xIndicePV_QTE) SI xOccurencePV_QTE1 > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} > xOccurencePV_QTE1 xAjoutPV_QTE = {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} - xOccurencePV_QTE1 taListeIAjoutPV_QTE[{"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].IDART",indChamp}] += xAjoutPV_QTE xOccurencePV_QTE2 -= xAjoutPV_QTE {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} = xOccurencePV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TTC",indChamp} = nPV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp}*nPV_QTE1,2) {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].nota",indChamp} = sCodePromoPV_QTE xOccurencePV_QTE1 = 0 //Trace("xOccurencePV_QTE11 : " + xOccurencePV_QTE1) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} = xOccurencePV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TTC",indChamp} = nPV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp}*nPV_QTE1,2) {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].nota",indChamp} = sCodePromoPV_QTE xOccurencePV_QTE1 = 0 //Trace("xOccurencePV_QTE12 : " + xOccurencePV_QTE1) SINON {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TTC",indChamp} = nPV_QTE1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp}*nPV_QTE1,2) {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].nota",indChamp} = sCodePromoPV_QTE xOccurencePV_QTE1 -= {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} //Trace("xOccurencePV_QTE13 : " + xOccurencePV_QTE1) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurencePV_QTE1 = 0 _ET_ xOccurencePV_QTE2 > 0 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TTC",indChamp} = nPV_QTE2 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp}*nPV_QTE2,2) {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].nota",indChamp} = sCodePromoPV_QTE xOccurencePV_QTE2 -= {"Fiche_caisse_1024.table_article["+xIndicePV_QTE+"].QTE",indChamp} //Trace("xOccurencePV_QTE2 : " + xOccurencePV_QTE2) FIN FIN FIN //Trace("xAjoutPV_QTE : " + xAjoutPV_QTE) SI xAjoutPV_QTE > 0 ALORS sIdartAjoutPV_QTE est une chaîne nQteAjoutPV_QTE est un numérique POUR TOUT ELEMENT nQteAjoutPV_QTE, sIdartAjoutPV_QTE DE taListeIAjoutPV_QTE HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV_QTE) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV_QTE : " + nQteAjoutPV_QTE) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV_QTE //SI bSalariePV_QTE = Vrai ALORS // {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = nPV_QTE2 {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV_QTE*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp} = 1 nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 PATES PERLES SI DateDuJour >= "20240627" ET DateDuJour <= "20240807" ALORS //Trace("TRACT 202407 PATES PERLES") xNombrePV2407PP, xOccurencePV2407PP, xIndicePV2407PP, xAjoutPV2407PP est un entier nPV2407PP est un numérique sCodePromoPV2407PP est une chaîne bTestPV2407PP, bSalariePV2407PP est un booléen STListeArticlePV2407PP est une Structure xIndiceLignePV2407PP est un entier xQtePV2407PP est un entier FIN sCodePromoPV2407PP = "PATES_PERLES_202407" nPV2407PP = 2.50 bTestPV2407PP = Faux bSalariePV2407PP = Faux xAjoutPV2407PP = 0 taListeIAjoutPV2407PP est un tableau associatif de numérique taListeArticlePV2407PP est un tableau de STListeArticlePV2407PP UnArticlePV2407PP est un STListeArticlePV2407PP POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110817 //Trace("IndicePV2407PP : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2407PP.xIndiceLignePV2407PP = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2407PP.xQtePV2407PP = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2407PP,UnArticlePV2407PP) xNombrePV2407PP += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2407PP : " + xNombrePV2407PP) SI xNombrePV2407PP >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2407PP = Vrai FIN FIN xOccurencePV2407PP = PartieEntiere(xNombrePV2407PP/2) * 2 //Trace("xOccurencePV2407PP : " + xOccurencePV2407PP) //Trace("xOccurencePV2407PP0 : " + xOccurencePV2407PP) POUR TOUT ELEMENT UnArticlePV2407PP DE taListeArticlePV2407PP xIndicePV2407PP = UnArticlePV2407PP.xIndiceLignePV2407PP //Trace("xIndicePV2407PP : " + xIndicePV2407PP) SI xOccurencePV2407PP > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} > xOccurencePV2407PP xAjoutPV2407PP = {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} - xOccurencePV2407PP taListeIAjoutPV2407PP[{"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].IDART",indChamp}] += xAjoutPV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} = xOccurencePV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TTC",indChamp} = nPV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp}*nPV2407PP,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].nota",indChamp} = sCodePromoPV2407PP xOccurencePV2407PP -= 2 //Trace("xOccurencePV2407PP1 : " + xOccurencePV2407PP) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} = xOccurencePV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TTC",indChamp} = nPV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp}*nPV2407PP,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].nota",indChamp} = sCodePromoPV2407PP xOccurencePV2407PP = 0 //Trace("xOccurencePV2407PP2 : " + xOccurencePV2407PP) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TTC",indChamp} = nPV2407PP {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp}*nPV2407PP,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].nota",indChamp} = sCodePromoPV2407PP xOccurencePV2407PP -= {"Fiche_caisse_1024.table_article["+xIndicePV2407PP+"].QTE",indChamp} //Trace("xOccurencePV2407PP3 : " + xOccurencePV2407PP) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2407PP : " + xAjoutPV2407PP) SI xAjoutPV2407PP > 0 ALORS sIdartAjoutPV2407PP est une chaîne nQteAjoutPV2407PP est un numérique POUR TOUT ELEMENT nQteAjoutPV2407PP, sIdartAjoutPV2407PP DE taListeIAjoutPV2407PP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2407PP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2407PP : " + nQteAjoutPV2407PP) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2407PP SI bSalariePV2407PP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2407PP*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 TOMATES SECHEES SI DateDuJour >= "20240627" ET DateDuJour <= "20240807" ALORS //Trace("TRACT 202407 TOMATES SECHEES") xNombrePV2407TC, xOccurencePV2407TC, xIndicePV2407TC, xAjoutPV2407TC est un entier nPV2407TC est un numérique sCodePromoPV2407TC est une chaîne bTestPV2407TC, bSalariePV2407TC est un booléen STListeArticlePV2407TC est une Structure xIndiceLignePV2407TC est un entier xQtePV2407TC est un entier FIN sCodePromoPV2407TC = "TOMATES_SECHEES_202407" nPV2407TC = 3.50 bTestPV2407TC = Faux bSalariePV2407TC = Faux xAjoutPV2407TC = 0 taListeIAjoutPV2407TC est un tableau associatif de numérique taListeArticlePV2407TC est un tableau de STListeArticlePV2407TC UnArticlePV2407TC est un STListeArticlePV2407TC POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 110313 //Trace("IndicePV2407TC : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticlePV2407TC.xIndiceLignePV2407TC = {"Fiche_caisse_1024.table_article",indChamp} UnArticlePV2407TC.xQtePV2407TC = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticlePV2407TC,UnArticlePV2407TC) xNombrePV2407TC += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombrePV2407TC : " + xNombrePV2407TC) SI xNombrePV2407TC >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalariePV2407TC = Vrai FIN FIN xOccurencePV2407TC = PartieEntiere(xNombrePV2407TC/2) * 2 //Trace("xOccurencePV2407TC : " + xOccurencePV2407TC) //Trace("xOccurencePV2407TC0 : " + xOccurencePV2407TC) POUR TOUT ELEMENT UnArticlePV2407TC DE taListeArticlePV2407TC xIndicePV2407TC = UnArticlePV2407TC.xIndiceLignePV2407TC //Trace("xIndicePV2407TC : " + xIndicePV2407TC) SI xOccurencePV2407TC > 0 SI {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} > xOccurencePV2407TC xAjoutPV2407TC = {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} - xOccurencePV2407TC taListeIAjoutPV2407TC[{"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].IDART",indChamp}] += xAjoutPV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} = xOccurencePV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TTC",indChamp} = nPV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp}*nPV2407TC,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].nota",indChamp} = sCodePromoPV2407TC xOccurencePV2407TC -= 2 //Trace("xOccurencePV2407TC1 : " + xOccurencePV2407TC) SINON SI {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} = xOccurencePV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TTC",indChamp} = nPV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp}*nPV2407TC,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].nota",indChamp} = sCodePromoPV2407TC xOccurencePV2407TC = 0 //Trace("xOccurencePV2407TC2 : " + xOccurencePV2407TC) SINON {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TTC",indChamp} = nPV2407TC {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp}*nPV2407TC,2) {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].nota",indChamp} = sCodePromoPV2407TC xOccurencePV2407TC -= {"Fiche_caisse_1024.table_article["+xIndicePV2407TC+"].QTE",indChamp} //Trace("xOccurencePV2407TC3 : " + xOccurencePV2407TC) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjoutPV2407TC : " + xAjoutPV2407TC) SI xAjoutPV2407TC > 0 ALORS sIdartAjoutPV2407TC est une chaîne nQteAjoutPV2407TC est un numérique POUR TOUT ELEMENT nQteAjoutPV2407TC, sIdartAjoutPV2407TC DE taListeIAjoutPV2407TC HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutPV2407TC) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutPV2407TC : " + nQteAjoutPV2407TC) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutPV2407TC SI bSalariePV2407TC = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutPV2407TC*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 THON AU NATUREL SI DateDuJour >= "20240627" ET DateDuJour <= "20240807" ALORS //Trace("THON AU NATUREL") xNombre2407THON, xOccurence2407THON, xOccurence2407THONSansRemise, xIndice2407THON, xAjout2407THON, xAjout2407THONSansRemise est un entier xRemise2407THON est un numérique sCodePromo2407THON est une chaîne bTest2407THON, bSalarie2407THON est un booléen STListeArticle2407THON est une Structure xIndiceLigne2407THON est un entier xQte2407THON est un entier FIN sCodePromo2407THON = "THON_202407" xRemise2407THON = 50.00 bTest2407THON = Faux bSalarie2407THON = Faux xAjout2407THON = 0 taListeIAjout2407THON est un tableau associatif de numérique taListeIAjout2407THONSansRemise est un tableau associatif de numérique taListeArticle2407THON est un tableau de STListeArticle2407THON UnArticle2407THON est un STListeArticle2407THON POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 100509 //Trace("Indice2407THON : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2407THON.xIndiceLigne2407THON = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2407THON.xQte2407THON = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2407THON,UnArticle2407THON) xNombre2407THON += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2407THON : " + xNombre2407THON) SI xNombre2407THON >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2407THON = Vrai FIN FIN xOccurence2407THON = PartieEntiere(xNombre2407THON/2) xOccurence2407THONSansRemise = xOccurence2407THON //Trace("xOccurence2407THON : " + xOccurence2407THON) //Trace("xOccurence2407THON0 : " + xOccurence2407THON) POUR TOUT ELEMENT UnArticle2407THON DE taListeArticle2407THON xIndice2407THON = UnArticle2407THON.xIndiceLigne2407THON //Trace("xIndice2407THON : " + xIndice2407THON) SI xOccurence2407THON > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} > xOccurence2407THON xAjout2407THONSansRemise = xOccurence2407THON xAjout2407THON = {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} - (xOccurence2407THON * 2) taListeIAjout2407THONSansRemise[{"Fiche_caisse_1024.table_article["+xIndice2407THON+"].IDART",indChamp}] = xAjout2407THONSansRemise taListeIAjout2407THON[{"Fiche_caisse_1024.table_article["+xIndice2407THON+"].IDART",indChamp}] += xAjout2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} = xOccurence2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = xRemise2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].nota",indChamp} = sCodePromo2407THON xOccurence2407THON = 0 //Trace("xOccurence2407THON1 : " + xOccurence2407THON) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} = xOccurence2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = xRemise2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].nota",indChamp} = sCodePromo2407THON xOccurence2407THON = 0 //Trace("xOccurence2407THON2 : " + xOccurence2407THON) SINON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = xRemise2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].nota",indChamp} = sCodePromo2407THON xOccurence2407THON -= {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} //Trace("xOccurence2407THON3 : " + xOccurence2407THON) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurence2407THONSansRemise > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} > xOccurence2407THONSansRemise xAjout2407THON = xOccurence2407THON taListeIAjout2407THON[{"Fiche_caisse_1024.table_article["+xIndice2407THON+"].IDART",indChamp}] += xAjout2407THON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} = xOccurence2407THONSansRemise {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 xOccurence2407THONSansRemise = 0 //Trace("xOccurence2407THONSansRemise1 : " + xOccurence2407THONSansRemise) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} = xOccurence2407THONSansRemise {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 xOccurence2407THONSansRemise = 0 //Trace("xOccurence2407THONSansRemise2 : " + xOccurence2407THONSansRemise) SINON {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].NO_REMISE",indChamp}= 1 xOccurence2407THONSansRemise -= {"Fiche_caisse_1024.table_article["+xIndice2407THON+"].QTE",indChamp} //Trace("xOccurence2407THONSansRemise3 : " + xOccurence2407THONSansRemise) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN FIN //Trace("xAjout2407THONSansRemise : " + xAjout2407THONSansRemise) SI xAjout2407THONSansRemise > 0 ALORS sIdartAjout2407THONSansRemise est une chaîne nQteAjout2407THONSansRemise est un numérique POUR TOUT ELEMENT nQteAjout2407THONSansRemise, sIdartAjout2407THONSansRemise DE taListeIAjout2407THONSansRemise HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2407THONSansRemise) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2407THONSansRemise : " + nQteAjout2407THONSansRemise) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2407THONSansRemise {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2407THONSansRemise*{"ARTICLE.PRIX_TTC",indRubrique},2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NO_REMISE",indChamp}=1 {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp}=1 nNombreLigneEnCaisse+=1 FIN FIN FIN //Trace("xAjout2407THON : " + xAjout2407THON) SI xAjout2407THON > 0 ALORS sIdartAjout2407THON est une chaîne nQteAjout2407THON est un numérique POUR TOUT ELEMENT nQteAjout2407THON, sIdartAjout2407THON DE taListeIAjout2407THON HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjout2407THON) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjout2407THON : " + nQteAjout2407THON) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjout2407THON SI bSalarie2407THON = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjout2407THON*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} nNombreLigneEnCaisse+=1 FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN //PROMO TRACT 202406 DOYPACK OLIVE SI DateDuJour >= "20240627" ET DateDuJour <= "20240807" ALORS //Trace("DOYPACK OLIVE") xNombre2407DO, xOccurence2407DO, xOccurence2407DOSansRemise, xIndice2407DO, xAjout2407DO, xAjout2407DOSansRemise est un entier xRemise2407DO est un numérique sCodePromo2407DO est une chaîne bTest2407DO, bSalarie2407DO est un booléen STListeArticle2407DO est une Structure xIndiceLigne2407DO est un entier xQte2407DO est un entier FIN sCodePromo2407DO = "DOYPACK_OLIVE_202407" xRemise2407DO = 40.00 bTest2407DO = Faux bSalarie2407DO = Faux xAjout2407DO = 0 taListeIAjout2407DO est un tableau associatif de numérique taListeIAjout2407DOSansRemise est un tableau associatif de numérique taListeArticle2407DO est un tableau de STListeArticle2407DO UnArticle2407DO est un STListeArticle2407DO POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 100611 //Trace("Indice2407DO : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticle2407DO.xIndiceLigne2407DO = {"Fiche_caisse_1024.table_article",indChamp} UnArticle2407DO.xQte2407DO = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticle2407DO,UnArticle2407DO) xNombre2407DO += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombre2407DO : " + xNombre2407DO) SI xNombre2407DO >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS HLitRecherche(CLIENT,"IDCLI",{"GNIDCLI",indvariable}) SI HTrouve(CLIENT) = Vrai _ET_ CLIENT.IDCAT=1 ALORS bSalarie2407DO = Vrai FIN FIN xOccurence2407DO = PartieEntiere(xNombre2407DO/2) xOccurence2407DOSansRemise = xOccurence2407DO //Trace("xOccurence2407DO : " + xOccurence2407DO) //Trace("xOccurence2407DO0 : " + xOccurence2407DO) POUR TOUT ELEMENT UnArticle2407DO DE taListeArticle2407DO xIndice2407DO = UnArticle2407DO.xIndiceLigne2407DO //Trace("xIndice2407DO : " + xIndice2407DO) SI xOccurence2407DO > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} > xOccurence2407DO xAjout2407DOSansRemise = xOccurence2407DO xAjout2407DO = {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} - (xOccurence2407DO * 2) taListeIAjout2407DOSansRemise[{"Fiche_caisse_1024.table_article["+xIndice2407DO+"].IDART",indChamp}] = xAjout2407DOSansRemise taListeIAjout2407DO[{"Fiche_caisse_1024.table_article["+xIndice2407DO+"].IDART",indChamp}] += xAjout2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} = xOccurence2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = xRemise2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].nota",indChamp} = sCodePromo2407DO xOccurence2407DO = 0 //Trace("xOccurence2407DO1 : " + xOccurence2407DO) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} = xOccurence2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = xRemise2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].nota",indChamp} = sCodePromo2407DO xOccurence2407DO = 0 //Trace("xOccurence2407DO2 : " + xOccurence2407DO) SINON {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = xRemise2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].nota",indChamp} = sCodePromo2407DO xOccurence2407DO -= {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} //Trace("xOccurence2407DO3 : " + xOccurence2407DO) FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) SINON SI xOccurence2407DOSansRemise > 0 SI {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} > xOccurence2407DOSansRemise xAjout2407DO = xOccurence2407DO taListeIAjout2407DO[{"Fiche_caisse_1024.table_article["+xIndice2407DO+"].IDART",indChamp}] += xAjout2407DO {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} = xOccurence2407DOSansRemise {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].NO_REMISE",indChamp}= 1 xOccurence2407DOSansRemise = 0 //Trace("xOccurence2407DOSansRemise1 : " + xOccurence2407DOSansRemise) SINON SI {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].QTE",indChamp} = xOccurence2407DOSansRemise {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice2407DO+"].COL_PROMO",indChamp} = 1 {"Fich Äëë Ò¶¡¶oRemiseOP ALORS //Trace("xNbNoRemiseOP2 : " + xNbNoRemiseOP) taListeIDartAjoutLigneOP[sIdart] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP3 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN FIN FIN FIN xCptOP +=1 {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertOP est une chaîne nQteAjoutOffertOP est un numérique POUR TOUT ELEMENT nQteAjoutOffertOP, sIdartAjoutOffertOP DE taListeIDartAjoutLigneOffertOP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertOP {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneOP est une chaîne nQteAjoutLigneOP est un numérique POUR TOUT ELEMENT nQteAjoutLigneOP, sIdartAjoutLigneOP DE taListeIDartAjoutLigneOP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOP SI bSalarieOP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRu ÒHTÒxNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP2 : " + xNbNoRemiseOP) taListeIDartAjoutLigneOP[sIdart] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP3 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN FIN FIN FIN xCptOP +=1 ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN // AJOUT DES LIGNES AVEC OFFERT sIdartAjoutOffertOP est une chaîne nQteAjoutOffertOP est un numérique POUR TOUT ELEMENT nQteAjoutOffertOP, sIdartAjoutOffertOP DE taListeIDartAjoutLigneOffertOP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertOP {"Fiche_caisse_1024.table_article.remise",indChamp} = 100.00 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.TIMBRE",indRubrique} ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneOP est une chaîne nQteAjoutLigneOP est un numérique POUR TOUT ELEMENT nQteAjoutLigneOP, sIdartAjoutLigneOP DE taListeIDartAjoutLigneOP HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneOP) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOP SI bSalarieOP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise", R‰ •[sse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 = 0 bCalculRemiseTF202507 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025073 : " + xNbNoRemiseTF202507) //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculRemiseTF202507 = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT NO REMISE") SI bCalculRemiseTF202507 = Vrai _ET_ xNbRemiseTF202507 > 0 ALORS //Trace("xNbRemiseTF2025071 : " + xNbRemiseTF202507) //{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} SI bSalarieTF202507 = Vrai ALORS {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 0 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 0 xNbRemiseTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN // nMontantRemiseTF202507 // AJOUT DES LIGNES REMISEES sIdartAjoutOffertTF202507 est une chaîne nQteAjoutOffertTF202507 est un numérique POUR TOUT ELEMENT nQteAjoutOffertTF202507, sIdartAjoutOffertTF202507 DE taListeIDartAjoutLigneOffertTF202507 //Trace("nQteAjoutOffertTF202507 : " + nQteAjoutOffertTF202507 + " / sIdartAjoutOffertTF202507 : " + sIdartAjoutOffertTF202507) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutOffertTF202507) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutOffertTF202507 {"Fiche_caisse_1024.table_article.remise",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoTF202507 {"Fiche_caisse_1024.table_article",indCha Ô¹¹ÿÿÿÿÿÿÿÿyåmp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneTF202507 est une chaîne nQteAjoutLigneTF202507 est un numérique POUR TOUT ELEMENT nQteAjoutLigneTF202507, sIdartAjoutLigneTF202507 DE taListeIDartAjoutLigneTF202507 //Trace("nQteAjoutLigneTF202507 : " + nQteAjoutLigneTF202507 + " / sIdartAjoutLigneTF202507 : " + sIdartAjoutLigneTF202507) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneTF202507) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneTF202507 : " + sIdartAjoutLigneTF202507) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneTF202507 SI bSalarieTF202507 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN ticle.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse Ò 'Û oSI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF BIS 202506") nRemiseTF est un numérique sCodePromoTF est une chaîne sCodePromoTF = "TF_BIS_202506" nRemiseTF = 15.00 SI {"gnSITE",indvariable} IN(7,8,26,32,40,49,54,55,59,64,72,74,91,95,99,101,115,119,120,122,134,167,178,180,185,195,197,207,217,232,241,242,243,244,247,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTF _ET_ {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve : " + {"Fiche_caisse_1024.table_article.IDART",indChamp}) {"Fiche_caisse_1024.table_article.REMISE",indChamp} = nRemiseTF {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.nota",indChamp} = sCodePromoTF SI nNombreLigneEnCaisse = 1 ALORS ExecuteTraitement("btn_haut",trtClic) ExecuteTraitement("btn_bas",trtClic) FIN FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN NON //Trace("KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ART äëë RV  SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TRACT1 202507") xCompteurTract1 est un entier xNbRemiseTract1, nPvTract1 est un numérique taListeIndiceTract1 est un tableau associatif de numérique taListeIDartAjoutLigneTract1 est un tableau associatif de numérique sCodePromoTract1, sIdentifiantTract1 est une chaîne xNbLigneTract1 est un entier bSalarieTract1, bTestMag est un booléen sCodePromoTract1="Tract1_202507" sIdentifiantTract1="BLOQUE_Tract1_202507" xNbLigneTract1 = 0 nPvTract1 = 3.50 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") xCompteurTract1 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTract1[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteurTract1 >= 2 ALORS Trie(taListeIndiceTract1,ttCroissant) xNbLigneTract1 = PartieEntiere(xCompteurTract1/2)*2 xNbRemiseTract1 = xCompteurTract1 - xNbLigneTract1 //Trace("xNbLigneTract1 : " + xNbLigneTract1 + " / xNbRemiseTract1 : " + xNbRemiseTract1) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceTract1 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbLigneTract1_Avant : " + xNbLigneTract1) SI xNbLigneTract1 > 0 ALORS //Trace("xNbLigneTract12 : " + xNbLigneTract1) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbLigneTract1 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract1 xNbLigneTract1 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbLigneTract1 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneTract1[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbLigneTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbLigneTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbLigneTract1 = 0 Ò Ü ¨SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("APERO_BIERE_202507") nRemiseTF est un numérique sCodePromoTF est une chaîne sCodePromoTF = "APERO_BIERE_202507" nRemiseTF = 15.00 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTF _ET_ {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionP Ò7 BÜ SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbLigneTract2 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbLigneTract2 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneTract2 est une chaîne nQteAjoutLigneTract2 est un numérique POUR TOUT ELEMENT nQteAjoutLigneTract2, sIdartAjoutLigneTract2 DE taListeIDartAjoutLigneTract2 //Trace("nQteAjoutLigneTract2 : " + nQteAjoutLigneTract2 + " / sIdartAjoutLigneTract2 : " + sIdartAjoutLigneTract2) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneTract2) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneTract2 : " + sIdartAjoutLigneTract2) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneTract2 SI bSalarieTractÄëëÒU ;¢TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article",indChamp}..AffichageAcR³»Rtable_article.nota",indChamp} = sCodePromoTF FIN FIN FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN E",indRubrique} FIN nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle tra Ò ÏÛ x7SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF POISSON2 202507") xCompteurTF202507, xQteTestTF202507 est un entier nMontantRemiseTF202507, nMontantRemise_CumulPersoTF202507, xNbRemiseTF202507, xNbNoRemiseTF202507 est un numérique taListeIndiceTF202507 est un tableau associatif de numérique taListeIDartAjoutLigneOffertTF202507 est un tableau associatif de numérique taListeIDartAjoutLigneTF202507 est un tableau associatif de numérique sCodePromoTF202507, sIdentifiantTF202507 est une chaîne xNbOffertTF202507 est un entier bCalculNoRemiseTF202507, bCalculRemiseTF202507, bSalarieTF202507, bMagTF202507 est un booléen sCodePromoTF202507="TF_POISSON2_202507" sIdentifiantTF202507="BLOQUE_POISSON2_202507" xNbOffertTF202507 = 0 xNbNoRemiseTF202507 = 0 nMontantRemiseTF202507 = 100.00 bSalarieTF202507 = Faux bMagTF202507 = Vrai xQteTestTF202507=3 SI {"gnSITE",indvariable} IN(2,16,26,41,44,45,49,53,54,55,56,59,60,64,73,74,82,86,91,93,95,97,99,101,104,112,114,115,119,120,122,132,134,149,167,173,178,180,187,194,195,198,201,205,207,217,224,229,232,236,237,240,243,244,247,248,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") xCompteurTF202507 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTF202507[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteurTF202507 >= xQteTestTF202507 ALORS Trie(taListeIndiceTF202507,ttCroissant) xNbOffertTF202507 = PartieEntiere(xCompteurTF202507/xQteTestTF202507) //xNbNoRemiseTF202507 = xNbOffertTF202507 xNbNoRemiseTF202507 =(xQteTestTF202507 - 1) * xNbOffertTF202507 xNbRemiseTF202507 = xCompteurTF202507 - (xNbOffertTF202507 + xNbNoRemiseTF202507) //Trace("xNbOffertTF202507 : " + xNbOffertTF202507 + " / xNbNoRemiseTF202507 : " + xNbNoRemiseTF202507 + " / xNbRemiseTF202507 : " + xNbRemiseTF202507) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceTF202507 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertTF202507_Avant : " + xNbOffertTF202507) bCalculNoRemiseTF202507 = Vrai bCalculRemiseTF202507 = Vrai SI xNbOffertTF202507 > 0 //Trace("xNbOffertTF2025072 : " + xNbOffertTF202507) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertTF202507 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) //{"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202507 xNbOffertTF202507 = 0 bCalculNoRemiseTF202507 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertTF202507 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertTF202507[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertTF202507 = 0 bCalculNoRemiseTF202507 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertTF202507 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202507 xNbOffertTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseTF202507 = Faux FIN bCalculRemiseTF202507 = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseTF202507 : " + bCalculNoRemiseTF202507 + " / xNbNoRemiseTF202507 : " + xNbNoRemiseTF202507) SI bCalculNoRemiseTF202507 = Vrai _ET_ xNbNoRemiseTF202507 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025071 : " + xNbNoRemiseTF202507) //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 = 0 bCalculRemiseTF202507 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025072 : " + xNbNoRemiseTF202507) taListeIDartAjoutLigneTF202507[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202507 xNbRemiseTF202507 -= ({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202507) {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202507 //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_ÄëëÒ£‰˜ble_article.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.ô22ÿÿÿÿÿÿÿÿgö CONSERVE POISSON 1 JUILLET 2025article",indChamp}..AffichageActif = Vrai d ÿÿÿÿÿÿÿÿ  ^8SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF ROSE2 202505") xCompteurTF202505, xQteTestTF202505 est un entier nMontantRemiseTF202505, nMontantRemise_CumulPersoTF202505, xNbRemiseTF202505, xNbNoRemiseTF202505 est un numérique taListeIndiceTF202505 est un tableau associatif de numérique taListeIDartAjoutLigneOffertTF202505 est un tableau associatif de numérique taListeIDartAjoutLigneTF202505 est un tableau associatif de numérique sCodePromoTF202505, sIdentifiantTF202505 est une chaîne xNbOffertTF202505 est un entier bCalculNoRemiseTF202505, bCalculRemiseTF202505, bSalarieTF202505, bMagTF202505 est un booléen sCodePromoTF202505="TF_ROSE2_202505" sIdentifiantTF202505="BLOQUE_ROSE2_202505" xNbOffertTF202505 = 0 xNbNoRemiseTF202505 = 0 nMontantRemiseTF202505 = 100.00 bSalarieTF202505 = Faux bMagTF202505 = Vrai xQteTestTF202505=3 SI {"gnSITE",indvariable} IN(7,8,11,16,31,32,39,40,41,49,54,55,64,68,74,79,80,89,91,92,93,99,101,104,115,119,120,122,131,132,133,167,178,183,187,195,198,201,205,208,232,234,237,240,241,243,247,248) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") xCompteurTF202505 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTF202505[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteurTF202505 >= xQteTestTF202505 ALORS Trie(taListeIndiceTF202505,ttCroissant) xNbOffertTF202505 = PartieEntiere(xCompteurTF202505/xQteTestTF202505) //xNbNoRemiseTF202505 = xNbOffertTF202505 xNbNoRemiseTF202505 =(xQteTestTF202505 - 1) * xNbOffertTF202505 xNbRemiseTF202505 = xCompteurTF202505 - (xNbOffertTF202505 + xNbNoRemiseTF202505) //Trace("xNbOffertTF202505 : " + xNbOffertTF202505 + " / xNbNoRemiseTF202505 : " + xNbNoRemiseTF202505 + " / xNbRemiseTF202505 : " + xNbRemiseTF202505) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceTF202505 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertTF202505_Avant : " + xNbOffertTF202505) bCalculNoRemiseTF202505 = Vrai bCalculRemiseTF202505 = Vrai SI xNbOffertTF202505 > 0 //Trace("xNbOffertTF2025052 : " + xNbOffertTF202505) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertTF202505 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202505 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) //{"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202505 xNbOffertTF202505 = 0 bCalculNoRemiseTF202505 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertTF202505 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertTF202505[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertTF202505 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertTF202505 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertTF202505 = 0 bCalculNoRemiseTF202505 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertTF202505 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202505 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202505 xNbOffertTF202505 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseTF202505 = Faux FIN bCalculRemiseTF202505 = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseTF202505 : " + bCalculNoRemiseTF202505 + " / xNbNoRemiseTF202505 : " + xNbNoRemiseTF202505) SI bCalculNoRemiseTF202505 = Vrai _ET_ xNbNoRemiseTF202505 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202505 ALORS //Trace("xNbNoRemiseTF2025051 : " + xNbNoRemiseTF202505) //SI bSalarieTF202505 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202505 = 0 bCalculRemiseTF202505 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseTF202505 ALORS //Trace("xNbNoRemiseTF2025052 : " + xNbNoRemiseTF202505) taListeIDartAjoutLigneTF202505[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202505 xNbRemiseTF202505 -= ({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202505) {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202505 //SI bSalarieTF202505 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indCh äëë RmV> 8SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("APERO_BIERE_202507") nRemiseTF est un numérique sCodePromoTF est une chaîne sCodePromoTF = "APERO_BIERE_202507" nRemiseTF = 15.00 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTF _ET_ {"Fiche_caisse_1024.table_article.COL_PROMO",indChamp} = 0 ALORS HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPäëëR¢ ‡A 3sTxtSql_TF est une chaîne sTxtSql_TF = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE (ARTICLE.IDSSFAM=1410 AND ARTICLE.CODE NOT IN (100507,110301,110302)) OR ARTICLE.CODE IN (590177,595142,595207,595218,595219) ] Ò)0ÒsTxtSql_50Pan)TRACT2 JUIN 2025T-SEPTEMBRE 2025) vec remise") rticle",trtAffichageLigne) ÿÒX`Ò_1024.table_article",trtAffichageLigne) nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") BRE",indRubrique} FIN nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traRm t[ TF BIS FRAIS JUIN 2025,sTxtSql_OP) FIN _1024.table_article",trtAffichageLigne)dR1 8\ TRACT2 JUIN 2025 CHERteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne)R£ªR OP VOLUME JUILLET-SEPTEMBRE 2025P) FINise") SE_1024.table_article",trtAffichageLigne) Ô––ÿÿÿÿÿÿÿÿ2Ý_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutTRACT202507 SI bSalarieTRACT202507 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND(nQteAjoutTRACT202507*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN FIN TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUN äëë R˜> jSI DateDuJour >= "20250701" and DateDuJour <= "20250702" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100162,100508,101851,101962,102133,106835,108124,108551,110365,110623,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250703" and DateDuJour <= "20250720" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100162,100508,101851,102133,106835,108124,108551,110365,110623,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250721" and DateDuJour <= "20250806" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100162,101851,101962,102133,106835,108124,108551,110365,110623,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) eÒYaÒ ßsTxtSql_50Pan est une chaîne sTxtSql_50Pan = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100764,100770) ] sTxtSql_50Pan = ChaîneConstruit(sTxtSql_50Pan) execute("ExecutionRequetePreRequis",sTxtSql äëë RîU ‰SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TRACT2 JUILLET 2025") xNombreTRACT202507, xOccurenceTRACT202507, xIndiceTRACT202507, xAjoutTRACT202507 est un entier nTRACT202507 est un numérique sCodePromoTRACT202507 est une chaîne bTestTRACT202507, bSalarieTRACT202507, bTestMag est un booléen STListeArticleTRACT202507 est une Structure xIndiceLigneTRACT202507 est un entier xQteTRACT202507 est un entier FIN sCodePromoTRACT202507 = "202507_TRACT2" nTRACT202507 = 2.50 bTestTRACT202507 = Faux bSalarieTRACT202507 = Faux bTestMag = Vrai xAjoutTRACT202507 = 0 taListeIAjoutTRACT202507 est un tableau associatif de numérique taListeArticleTRACT202507 est un tableau de STListeArticleTRACT202507 UnArticleTRACT202507 est un STListeArticleTRACT202507 SI {"gnSITE",indvariable} IN (171) ALORS bTestMag = Faux FIN SI bTestMag = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", {"Fiche_caisse_1024.table_article.IDART",indChamp},hidentique) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS SELON {"ARTICLE.CODE",indRubrique} CAS 103588 //Trace("IndiceTRACT202507 : " + {"Fiche_caisse_1024.table_article",indChamp}) UnArticleTRACT202507.xIndiceLigneTRACT202507 = {"Fiche_caisse_1024.table_article",indChamp} UnArticleTRACT202507.xQteTRACT202507 = {"Fiche_caisse_1024.table_article.QTE",indChamp} TableauAjoute(taListeArticleTRACT202507,UnArticleTRACT202507) xNombreTRACT202507 += {"Fiche_caisse_1024.table_article.QTE",indChamp} AUTRE CAS //Trace("Autre cas") FIN FIN FIN //Trace("xNombreTRACT202507 : " + xNombreTRACT202507) SI xNombreTRACT202507 >= 2 ALORS SI {"GNIDCLI",indvariable}>0 ALORS SI CLIENT.IDCAT=1 ALORS bSalarieTRACT202507 = Vrai FIN FIN xOccurenceTRACT202507 = PartieEntiere(xNombreTRACT202507/2) * 2 //Trace("xOccurenceTRACT202507 : " + xOccurenceTRACT202507) //Trace("xOccurenceTRACT2025070 : " + xOccurenceTRACT202507) POUR TOUT ELEMENT UnArticleTRACT202507 DE taListeArticleTRACT202507 xIndiceTRACT202507 = UnArticleTRACT202507.xIndiceLigneTRACT202507 //Trace("xIndiceTRACT202507 : " + xIndiceTRACT202507) SI xOccurenceTRACT202507 > 0 SI {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} > xOccurenceTRACT202507 xAjoutTRACT202507 = {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} - xOccurenceTRACT202507 taListeIAjoutTRACT202507[{"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].IDART",indChamp}] += xAjoutTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} = xOccurenceTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TTC",indChamp} = nTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp}*nTRACT202507,2) {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].nota",indChamp} = sCodePromoTRACT202507 xOccurenceTRACT202507 -= 2 //Trace("xOccurenceTRACT2025071 : " + xOccurenceTRACT202507) SINON SI {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} = xOccurenceTRACT202507 {"Fiche_caisse_1024.t Rˆ”R (SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TRACT2 202506") xCompteurTract2 est un entier xNbRemiseTract2, nPvTract2 est un numérique taListeIndiceTract2 est un tableau associatif de numérique taListeIDartAjoutLigneTract2 est un tableau associatif de numérique sCodePromoTract2, sIdentifiantTract2 est une chaîne xNbLigneTract2 est un entier bSalarieTract2, bTestMag est un booléen sCodePromoTract2="Tract2_202506" sIdentifiantTract2="BLOQUE_Tract2_202506" xNbLigneTract2 = 0 nPvTract2 = 2.00 POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") xCompteurTract2 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTract2[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteurTract2 >= 2 ALORS Trie(taListeIndiceTract2,ttCroissant) xNbLigneTract2 = PartieEntiere(xCompteurTract2/2)*2 xNbRemiseTract2 = xCompteurTract2 - xNbLigneTract2 //Trace("xNbLigneTract2 : " + xNbLigneTract2 + " / xNbRemiseTract2 : " + xNbRemiseTract2) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceTract2 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbLigneTract2_Avant : " + xNbLigneTract2) SI xNbLigneTract2 > 0 ALORS //Trace("xNbLigneTract22 : " + xNbLigneTract2) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbLigneTract2 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract2 xNbLigneTract2 = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbLigneTract2 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneTract2[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbLigneTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbLigneTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbLigneTract2 = 0 Òn uÛecute("ExecutionRequetePreRequis",sTxtSql_TF) ÿÿÿÿÿÿÿÿ­ 4—:­ÿÿÿÿ`ªâ9­ ÿÿÿÿÿÿÿÿ SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbLigneTract2 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract2 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbLigneTract2 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN FIN SI fFichierExiste("KeziaII.ini") = Faux ALORS Execute("fct_MAJ_SAI_Totaux_DepuisTable_Article") SINON ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneTract2 est une chaîne nQteAjoutLigneTract2 est un numérique POUR TOUT ELEMENT nQteAjoutLigneTract2, sIdartAjoutLigneTract2 DE taListeIDartAjoutLigneTract2 //Trace("nQteAjoutLigneTract2 : " + nQteAjoutLigneTract2 + " / sIdartAjoutLigneTract2 : " + sIdartAjoutLigneTract2) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneTract2) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneTract2 : " + sIdartAjoutLigneTract2) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE"ÔÿÿÿÿÿÿÿÿÖ CONSERVE POISSON 1 JUILLET 20255ce("Fin boucle traitement ajout ligne avec remise") Ô[[ÿÿÿÿÿÿÿÿ¹ÖsTxtSql_TF = ChaîneConstruit(sTxtSql_TF) execute("ExecutionRequetePreRequis",sTxtSql_TF) ÿÿÿÿ\TAB Ò Ü |7SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF POISSON2 202507") xCompteurTF202507, xQteTestTF202507 est un entier nMontantRemiseTF202507, nMontantRemise_CumulPersoTF202507, xNbRemiseTF202507, xNbNoRemiseTF202507 est un numérique taListeIndiceTF202507 est un tableau associatif de numérique taListeIDartAjoutLigneOffertTF202507 est un tableau associatif de numérique taListeIDartAjoutLigneTF202507 est un tableau associatif de numérique sCodePromoTF202507, sIdentifiantTF202507 est une chaîne xNbOffertTF202507 est un entier bCalculNoRemiseTF202507, bCalculRemiseTF202507, bSalarieTF202507, bMagTF202507 est un booléen sCodePromoTF202507="TF_POISSON2_202507" sIdentifiantTF202507="BLOQUE_POISSON2_202507" xNbOffertTF202507 = 0 xNbNoRemiseTF202507 = 0 nMontantRemiseTF202507 = 100.00 bSalarieTF202507 = Faux bMagTF202507 = Vrai xQteTestTF202507=3 SI {"gnSITE",indvariable} IN(2,16,26,41,44,45,49,53,54,55,56,59,60,64,73,74,82,86,91,93,95,97,99,101,104,112,114,115,119,120,122,132,134,136,149,167,173,178,180,187,194,195,198,201,205,207,217,224,229,232,236,237,240,243,244,247,248,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") xCompteurTF202507 += {"Fiche_caisse_1024.table_article.QTE",indChamp} taListeIndiceTF202507[{"Fiche_caisse_1024.table_article",indChamp}]= {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} FIN FIN SI xCompteurTF202507 >= xQteTestTF202507 ALORS Trie(taListeIndiceTF202507,ttCroissant) xNbOffertTF202507 = PartieEntiere(xCompteurTF202507/xQteTestTF202507) //xNbNoRemiseTF202507 = xNbOffertTF202507 xNbNoRemiseTF202507 =(xQteTestTF202507 - 1) * xNbOffertTF202507 xNbRemiseTF202507 = xCompteurTF202507 - (xNbOffertTF202507 + xNbNoRemiseTF202507) //Trace("xNbOffertTF202507 : " + xNbOffertTF202507 + " / xNbNoRemiseTF202507 : " + xNbNoRemiseTF202507 + " / xNbRemiseTF202507 : " + xNbRemiseTF202507) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceTF202507 //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertTF202507_Avant : " + xNbOffertTF202507) bCalculNoRemiseTF202507 = Vrai bCalculRemiseTF202507 = Vrai SI xNbOffertTF202507 > 0 //Trace("xNbOffertTF2025072 : " + xNbOffertTF202507) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertTF202507 ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) //{"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 //{"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202507 xNbOffertTF202507 = 0 bCalculNoRemiseTF202507 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertTF202507 ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertTF202507[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = xNbOffertTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertTF202507 = 0 bCalculNoRemiseTF202507 = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertTF202507 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) //{"Fiche_caisse_1024.table_article["+xIndice+"].Col_SvgMonetaire",indChamp} = {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = nMontantRemiseTF202507 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTF202507 xNbOffertTF202507 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseTF202507 = Faux FIN bCalculRemiseTF202507 = Faux FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //INFO("FIN TRAITEMENT OFFERT") //Trace("bCalculNoRemiseTF202507 : " + bCalculNoRemiseTF202507 + " / xNbNoRemiseTF202507 : " + xNbNoRemiseTF202507) SI bCalculNoRemiseTF202507 = Vrai _ET_ xNbNoRemiseTF202507 > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025071 : " + xNbNoRemiseTF202507) //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbNoRemiseTF202507 = 0 bCalculRemiseTF202507 = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbNoRemiseTF202507 ALORS //Trace("xNbNoRemiseTF2025072 : " + xNbNoRemiseTF202507) taListeIDartAjoutLigneTF202507[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}] = {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202507 xNbRemiseTF202507 -= ({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} - xNbNoRemiseTF202507) {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseTF202507 //SI bSalarieTF202507 = Vrai ALORS // {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 30.00 //SINON {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 //FIN {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_cai ÒøÓ O6SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier bAIF est un booléen bAIF = Vrai nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("OP VOLUME 202502") STListeArticleOP est une Structure xCompteurOP est un entier xOccurenceOP est un entier xIdartOP est un entier FIN taListeArticleOP est un tableau associatif de STListeArticleOP stInitialisationPourCompilOP est un STListeArticleOP taListeIndiceOP est un tableau associatif de numérique taListeIDartAjoutLigneOffertOP est un tableau associatif de numérique taListeIDartAjoutLigneOP est un tableau associatif de numérique sCodePromoOP, sIdentifiantOP est une chaîne nRemiseOP est un numérique xNbOffertOP, xNbNoRemiseOP, xNbRemiseOP, xNbNouvelleQteOP est un entier bCalculNoRemiseOP,bCalculRemiseOP, bSalarieOP, bMagOP, bMagAIF est un booléen sCodePromoOP="OFFRE_VOLUME_202502" sIdentifiantOP="BLOQUE_202502" xNbOffertOP = 0 xNbNoRemiseOP = 0 bSalarieOP = Faux bMagOP = Vrai bMagAIF = Vrai //SI {"gnSITE",indvariable} IN(82,93) ALORS // bMagAIF = Faux //FIN //SI bAIF = Faux ALORS // bMagAIF = Faux //FIN SI DateDuJour >= "20250515" ET DateDuJour <= "20250517" _ET_ {"gnSITE",indvariable} = 171 ALORS //Trace("bMagOP = Faux") bMagOP = Faux FIN SI {"gnSITE",indvariable} IN(23,30,60,141) ALORS bMagOP = Faux FIN SI bMagOP = Vrai ALORS SI {"GNIDCLI",indvariable}>0 ALORS SI CLIENT.IDCAT=1 ALORS bSalarieOP = Vrai FIN FIN POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOP ALORS SINON SI taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilOP FIN taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteurOP +={"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xOccurenceOP += 1 taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIdartOP = {"Fiche_caisse_1024.table_article.IDART",indChamp} taListeIndiceOP[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN FIN FIN FIN A1 sont des STListeArticleOP Trie(taListeIndiceOP,ttcroissant) xCptOP, xIdartControleOP sont des entiers xCptOP = 1 POUR TOUT ELEMENT A1 DE taListeArticleOP //Trace(A1.xCompteurOP + " / " + A1.xOccurenceOP + " / " + A1.xIdartOP) //Trace("xCptOP : " + xCptOP) SI A1.xCompteurOP > 2 ALORS //Trace("xIdartControleOP : " + xIdartControleOP) SI xCptOP = 1 ALORS xIdartControleOP = A1.xIdartOP SINON SI xIdartControleOP <> A1.xIdartOP ALORS xIdartControleOP = A1.xIdartOP FIN xNbOffertOP = PartieEntiere(A1.xCompteurOP/3) xNbNoRemiseOP = 2 * xNbOffertOP xNbRemiseOP = A1.xCompteurOP - (xNbOffertOP + xNbNoRemiseOP) //Trace("xNbOffertOP : " + xNbOffertOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceOP SI sIdart = A1.xIdartOP ALORS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOP_Avant : " + xNbOffertOP) bCalculNoRemiseOP = Vrai bCalculRemiseOP = Vrai SI xNbOffertOP > 0 ALORS //Trace("xNbOffertOP2 : " + xNbOffertOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOP ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP = 0 bCalculNoRemiseOP = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOP ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOP[sIdart] = xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOP = 0 bCalculNoRemiseOP = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOP ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOP = Faux FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) //Trace("bCalculRemiseOP : " + bCalculRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) //INFO("FIN TRAITEMENT OFFERT") SI bCalculRemiseOP = Vrai _ET_ xNbRemiseOP > 0 ALORS //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} + " / xNbRemiseOP1 : " + xNbRemiseOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseOP ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseOP1 : " + xNbRemiseOP) xNbRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseOP ALORS //Trace("xNbRemiseOP2 : " + xNbRemiseOP) taListeIDartAjoutLigneOP[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}]= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbRemiseOP = 0 FIN FIN //Trace("bCalculNoRemiseOP : " + bCalculNoRemiseOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP) SI bCalculNoRemiseOP = Vrai _ET_ xNbNoRemiseOP > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP1 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article äëë ÒÈ·þ §1SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier bAIF est un booléen bAIF = Vrai nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("OP VOLUME 202507") STListeArticleOP est une Structure xCompteurOP est un entier xOccurenceOP est un entier xIdartOP est un entier FIN taListeArticleOP est un tableau associatif de STListeArticleOP stInitialisationPourCompilOP est un STListeArticleOP taListeIndiceOP est un tableau associatif de numérique taListeIDartAjoutLigneOffertOP est un tableau associatif de numérique taListeIDartAjoutLigneOP est un tableau associatif de numérique sCodePromoOP, sIdentifiantOP est une chaîne nRemiseOP est un numérique xNbOffertOP, xNbNoRemiseOP, xNbRemiseOP, xNbNouvelleQteOP est un entier bCalculNoRemiseOP,bCalculRemiseOP, bSalarieOP, bMagOP, bMagAIF est un booléen sCodePromoOP="OFFRE_VOLUME_202507" sIdentifiantOP="BLOQUE_202507" xNbOffertOP = 0 xNbNoRemiseOP = 0 bSalarieOP = Faux bMagOP = Faux bMagAIF = Vrai SI {"gnSITE",indvariable} IN(59,134,207) ALORS bMagOP = Vrai FIN SI bMagOP = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOP ALORS SINON SI taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilOP FIN taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteurOP +={"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xOccurenceOP += 1 taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIdartOP = {"Fiche_caisse_1024.table_article.IDART",indChamp} taListeIndiceOP[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN FIN FIN FIN A1 sont des STListeArticleOP Trie(taListeIndiceOP,ttcroissant) xCptOP, xIdartControleOP sont des entiers xCptOP = 1 POUR TOUT ELEMENT A1 DE taListeArticleOP //Trace(A1.xCompteurOP + " / " + A1.xOccurenceOP + " / " + A1.xIdartOP) //Trace("xCptOP : " + xCptOP) SI A1.xCompteurOP > 2 ALORS //Trace("xIdartControleOP : " + xIdartControleOP) SI xCptOP = 1 ALORS xIdartControleOP = A1.xIdartOP SINON SI xIdartControleOP <> A1.xIdartOP ALORS xIdartControleOP = A1.xIdartOP FIN xNbOffertOP = PartieEntiere(A1.xCompteurOP/3) xNbNoRemiseOP = 2 * xNbOffertOP xNbRemiseOP = A1.xCompteurOP - (xNbOffertOP + xNbNoRemiseOP) //Trace("xNbOffertOP : " + xNbOffertOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceOP SI sIdart = A1.xIdartOP ALORS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOP_Avant : " + xNbOffertOP) bCalculNoRemiseOP = Vrai bCalculRemiseOP = Vrai SI xNbOffertOP > 0 ALORS //Trace("xNbOffertOP2 : " + xNbOffertOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOP ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP = 0 bCalculNoRemiseOP = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOP ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOP[sIdart] = xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOP = 0 bCalculNoRemiseOP = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOP ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOP = Faux FIN FIN //Trace("bCalculRemiseOP : " + bCalculRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) //INFO("FIN TRAITEMENT OFFERT") SI bCalculRemiseOP = Vrai _ET_ xNbRemiseOP > 0 ALORS //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} + " / xNbRemiseOP1 : " + xNbRemiseOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseOP ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseOP1 : " + xNbRemiseOP) xNbRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseOP ALORS //Trace("xNbRemiseOP2 : " + xNbRemiseOP) taListeIDartAjoutLigneOP[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}]= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbRemiseOP = 0 FIN FIN //Trace("bCalculNoRemiseOP : " + bCalculNoRemiseOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP) SI bCalculNoRemiseOP = Vrai _ET_ xNbNoRemiseOP > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP1 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbN R+ 5\iche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneOP SI bSalarieOP = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 //SINON // {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.qte",indChamp}*({"ARTICLE.PRIX_TTC",indRubrique}*(1-{"Fiche_caisse_1024.table_article.remise",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} SI fFichierExiste("KeziaII.ini") = Faux ALORS //Trace("Pas KeziaII.ini2") {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.EligibleTR",indRubrique} E Ò& 3Û v2SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier bAIF est un booléen bAIF = Vrai nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("OP VOLUME 202502") STListeArticleOP est une Structure xCompteurOP est un entier xOccurenceOP est un entier xIdartOP est un entier FIN taListeArticleOP est un tableau associatif de STListeArticleOP stInitialisationPourCompilOP est un STListeArticleOP taListeIndiceOP est un tableau associatif de numérique taListeIDartAjoutLigneOffertOP est un tableau associatif de numérique taListeIDartAjoutLigneOP est un tableau associatif de numérique sCodePromoOP, sIdentifiantOP est une chaîne nRemiseOP est un numérique xNbOffertOP, xNbNoRemiseOP, xNbRemiseOP, xNbNouvelleQteOP est un entier bCalculNoRemiseOP,bCalculRemiseOP, bSalarieOP, bMagOP, bMagAIF est un booléen sCodePromoOP="OFFRE_VOLUME_202502" sIdentifiantOP="BLOQUE_202502" xNbOffertOP = 0 xNbNoRemiseOP = 0 bSalarieOP = Faux bMagOP = Faux bMagAIF = Vrai SI {"gnSITE",indvariable} IN(59,134,136,207) ALORS bMagOP = Vrai FIN SI bMagOP = Vrai ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN HLitRecherche({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable},"IDART",{"Fiche_caisse_1024.table_article.IDART",indChamp},hIdentique) SI HTrouve({"COL_ProcGlob_GestionPromoSpecifique.gsdReq_PreRequis",indVariable}) = Vrai ALORS //Trace("Trouve") SI {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sCodePromoOP _OU_ {"Fiche_caisse_1024.table_article.NOTA",indChamp} = sIdentifiantOP ALORS SINON SI taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}]..Vide = Vrai ALORS taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}] = stInitialisationPourCompilOP FIN taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xCompteurOP +={"Fiche_caisse_1024.table_article.QTE",indChamp} taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xOccurenceOP += 1 taListeArticleOP[{"Fiche_caisse_1024.table_article.IDART",indChamp}].xIdartOP = {"Fiche_caisse_1024.table_article.IDART",indChamp} taListeIndiceOP[{"Fiche_caisse_1024.table_article",indChamp}] = {"Fiche_caisse_1024.table_article.IDART",indChamp} FIN FIN FIN FIN A1 sont des STListeArticleOP Trie(taListeIndiceOP,ttcroissant) xCptOP, xIdartControleOP sont des entiers xCptOP = 1 POUR TOUT ELEMENT A1 DE taListeArticleOP //Trace(A1.xCompteurOP + " / " + A1.xOccurenceOP + " / " + A1.xIdartOP) //Trace("xCptOP : " + xCptOP) SI A1.xCompteurOP > 2 ALORS //Trace("xIdartControleOP : " + xIdartControleOP) SI xCptOP = 1 ALORS xIdartControleOP = A1.xIdartOP SINON SI xIdartControleOP <> A1.xIdartOP ALORS xIdartControleOP = A1.xIdartOP FIN xNbOffertOP = PartieEntiere(A1.xCompteurOP/3) xNbNoRemiseOP = 2 * xNbOffertOP xNbRemiseOP = A1.xCompteurOP - (xNbOffertOP + xNbNoRemiseOP) //Trace("xNbOffertOP : " + xNbOffertOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) POUR TOUT ELEMENT sIdart, xIndice DE taListeIndiceOP SI sIdart = A1.xIdartOP ALORS //Trace("Indice : " + xIndice + " / Idart : " + sIdart) //Trace("xNbOffertOP_Avant : " + xNbOffertOP) bCalculNoRemiseOP = Vrai bCalculRemiseOP = Vrai SI xNbOffertOP > 0 ALORS //Trace("xNbOffertOP2 : " + xNbOffertOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbOffertOP ALORS //Trace("Indice3 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP = 0 bCalculNoRemiseOP = Faux SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbOffertOP ALORS //Trace("Indice4 : " + xIndice + " / Idart : " + sIdart) taListeIDartAjoutLigneOffertOP[sIdart] = xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbOffertOP {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) xNbOffertOP = 0 bCalculNoRemiseOP = Vrai SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbOffertOP ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 100.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoOP xNbOffertOP -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} bCalculNoRemiseOP = Faux FIN FIN //Trace("bCalculRemiseOP : " + bCalculRemiseOP + " / xNbRemiseOP : " + xNbRemiseOP) //INFO("FIN TRAITEMENT OFFERT") SI bCalculRemiseOP = Vrai _ET_ xNbRemiseOP > 0 ALORS //Trace("Qte : " + {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} + " / xNbRemiseOP1 : " + xNbRemiseOP) SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbRemiseOP ALORS // ON CONSIDERE LA LIGNE COMME AVEC REMISE POSSIBLE //Trace("xNbRemiseOP1 : " + xNbRemiseOP) xNbRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > xNbRemiseOP ALORS //Trace("xNbRemiseOP2 : " + xNbRemiseOP) taListeIDartAjoutLigneOP[{"Fiche_caisse_1024.table_article["+xIndice+"].IDART",indChamp}]= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} -= xNbRemiseOP {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbRemiseOP = 0 FIN FIN //Trace("bCalculNoRemiseOP : " + bCalculNoRemiseOP + " / xNbNoRemiseOP : " + xNbNoRemiseOP) SI bCalculNoRemiseOP = Vrai _ET_ xNbNoRemiseOP > 0 ALORS SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} = xNbNoRemiseOP ALORS //Trace("xNbNoRemiseOP1 : " + xNbNoRemiseOP) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp}*{"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp},2) {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sIdentifiantOP xNbNoRemiseOP = 0 SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} > Ò "Û :SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF POISSON1 202507") nRemiseTF est un numérique sCodePromoTF est une chaîne sCodePromoTF = "TF_POISSON1_202507" nRemiseTF = 15.00 SI {"gnSITE",indvariable} IN(2,16,26,41,44,45,49,53,54,55,56,59,60,64,73,74,82,86,91,93,95,97,99,101,104,112,114,115,119,120,122,132,134,149,167,173,178,180,187,194,195,198,201,205,207,217,224,229,232,236,237,240,243,244,247,248,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTF _ET_ {"Fiche_cR3 :\Sql_TF) CONSERVE POISSON 1 JUILLET 2025OP) FIN ÙÌî\`áÌî\ÿÿÿÿ\PΩî\ÿÿÿÿ°µ í\ RR jSI DateDuJour >= "20250501" and DateDuJour <= "20250514" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100508,100900,101851,101962,102133,108551,110365,110623,120016,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250515" and DateDuJour <= "20250528" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100508,100900,101851,101962,102133,108551,110365,110623,120016,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) execute("ExecutionRequetePreRequis",sTxtSql_OP) FIN SI DateDuJour >= "20250529" and DateDuJour <= "20250615" ALORS sTxtSql_OP est une chaîne sTxtSql_OP = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN(100144,100508,100900,101962,102133,108551,110365,110623,120016,500015) ] sTxtSql_OP = ChaîneConstruit(sTxtSql_OP) eR™  [ CONSERVE POISSON 2 JUILLET 2025xecute("ExecutionRequetePreRequis",sTxtSql_TF)  ô¯î\Ôÿÿÿÿÿÿÿÿ)ÖfichageLigne) 06.trPký0Àá1Ôÿÿÿÿÿÿÿÿ#Ö",sTxtSql_RSP) REMISE SALARIE SUR PROMOMEG€?Y1€UY1 NY1rsPký0Àá1ô''ÿÿÿÿÿÿÿÿQö TRACT 1 JUILLET 2025PTEMBRE 2025P) FINtable_article",indChamp}..AffichageActif = Vrai R2 9\_50Pan)ffichageLigne) FIN N 2025I 2025iche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai Òo vÛ TRACT3 JUIN 2025  ÿÿÿÿRR TRACT1 JUIN 20252025ql_TF) 025xecute("ExecutionRequetePreRequis",sTxtSql_TF) \TABÔhhÿÿÿÿÿÿÿÿÓÖ_article",trtAffichageLigne) FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai ÒÒ CONSERVE POISSON 2 JUILLET 2025xecute("ExecutionRequetePreRequis",sTxtSql_TF) d Rq{R >SI {"Fiche_caisse_1024.btn_total",indChamp} <> "TOTAL" ALORS RETOUR SINON //Trace("Total OK") FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Faux nNombreLigneEnCaisse est un entier nNombreLigneEnCaisse = {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp}..Occurrence //Trace("Nb_Ligne init : " + nNombreLigneEnCaisse) //Trace("TF POISSON1 202507") nRemiseTF est un numérique sCodePromoTF est une chaîne sCodePromoTF = "TF_POISSON1_202507" nRemiseTF = 15.00 SI {"gnSITE",indvariable} IN(2,16,26,41,44,45,49,53,54,55,56,59,60,64,73,74,82,86,91,93,95,97,99,101,104,112,114,115,119,120,122,132,134,136,149,167,173,178,180,187,194,195,198,201,205,207,217,224,229,232,236,237,240,243,244,247,248,250) ALORS POUR TOUTE LIGNE DE {"FICHE_CAISSE_1024.TABLE_ARTICLE",indChamp} SI {"Fiche_caisse_1024.table_article.IDART",indChamp} = "" ALORS CONTINUER FIN SI {"Fiche_caisse_1024.table_article.REMISE",indChamp} < nRemiseTF _ET_ {"Fic R€‹R SINON SI {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} < xNbLigneTract1 ALORS //Trace("Indice5 : " + xIndice + " / Idart : " + sIdart) {"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp} = nPvTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article["+xIndice+"]].QTE",indChamp}*({"Fiche_caisse_1024.table_article["+xIndice+"].PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article["+xIndice+"].REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article["+xIndice+"].NOTA",indChamp} = sCodePromoTract1 {"Fiche_caisse_1024.table_article["+xIndice+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndice+"].NO_REMISE",indChamp} = 1 xNbLigneTract1 -= {"Fiche_caisse_1024.table_article["+xIndice+"].QTE",indChamp} FIN FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneTract1 est une chaîne nQteAjoutLigneTract1 est un numérique POUR TOUT ELEMENT nQteAjoutLigneTract1, sIdartAjoutLigneTract1 DE taListeIDartAjoutLigneTract1 //Trace("nQteAjoutLigneTract1 : " + nQteAjoutLigneTract1 + " / sIdartAjoutLigneTract1 : " + sIdartAjoutLigneTract1) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneTract1) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneTract1 : " + sIdartAjoutLigneTract1) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneTract1 SI bSalarieTract Ò Ûmp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne offert") // AJOUT DES LIGNES AVEC REMISE ACCEPTEE sIdartAjoutLigneTF202507 est une chaîne nQteAjoutLigneTF202507 est un numérique POUR TOUT ELEMENT nQteAjoutLigneTF202507, sIdartAjoutLigneTF202507 DE taListeIDartAjoutLigneTF202507 //Trace("nQteAjoutLigneTF202507 : " + nQteAjoutLigneTF202507 + " / sIdartAjoutLigneTF202507 : " + sIdartAjoutLigneTF202507) HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutLigneTF202507) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("Trouve sIdartAjoutLigneTF202507 : " + sIdartAjoutLigneTF202507) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisse_1024.table_article.code",indChamp} = {"ARTICLE.CODE",indRubrique} {"Fiche_caisse_1024.table_article.def",indChamp} = {"ARTICLE.DEF",indRubrique} {"Fiche_caisse_1024.table_article.qte",indChamp} = nQteAjoutLigneTF202507 SI bSalarieTF202507 = Vrai ALORS {"Fiche_caisse_1024.table_article.remise",indChamp} = 30.00 SINON {"Fiche_caisse_1024.table_article.remise",indChamp} = 0.00 FIN {"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp} = {"ARTICLE.PRIX_TTC",indRubrique} {"Fiche_caisse_1024.table_article.PRIX_TOTAL",indChamp} = ROUND({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN mo_AI //{"Fiche_caisse_1024.table_article.COÄëëÒ2 ¢ff_AI = xControle_AI - SAI_TOTAL sMessageDiff_AI = "OP Anti-Inflation, palier de 35 € non atteint : il manque " + xDiff_AI + " € pour l'atteindre." INFO(sMessageDiff_AI) FIN FIN ExécuteTraitement("FICHE_CAISSE_1024.tableÒ(0ÒindChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAfficha Äëë Rp [/Round({"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp}*nTRACT202507,2) {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].nota",indChamp} = sCodePromoTRACT202507 xOccurenceTRACT202507 = 0 //Trace("xOccurenceTRACT2025072 : " + xOccurenceTRACT202507) SINON {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TTC",indChamp} = nTRACT202507 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].REMISE",indChamp} = 0.00 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp}*nTRACT202507,2) {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].COL_PROMO",indChamp} = 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].NO_REMISE",indChamp}= 1 {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].nota",indChamp} = sCodePromoTRACT202507 xOccurenceTRACT202507 -= {"Fiche_caisse_1024.table_article["+xIndiceTRACT202507+"].QTE",indChamp} //Trace("xOccurenceTRACT2025073 : " + xOccurenceTRACT202507) FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN FIN FIN //Trace("xAjoutTRACT202507 : " + xAjoutTRACT202507) SI xAjoutTRACT202507 > 0 ALORS sIdartAjoutTRACT202507 est une chaîne nQteAjoutTRACT202507 est un numérique POUR TOUT ELEMENT nQteAjoutTRACT202507, sIdartAjoutTRACT202507 DE taListeIAjoutTRACT202507 HLitRecherchePremier({"ARTICLE",indFichier}, "IDART", sIdartAjoutTRACT202507) SI HTrouve({"ARTICLE",indFichier}) = Vrai ALORS //Trace("nQteAjoutTRACT202507 : " + nQteAjoutTRACT202507) {"Fiche_caisse_1024.table_article",indChamp} = (nNombreLigneEnCaisse+1) {"Fiche_caisse_1024.table_article.idart",indChamp} = {"ARTICLE.IDART",indRubrique} {"Fiche_caisseÒ¯·Ò00)),2) {"Fiche_caisse_1024.table_article.CODE_TVA",indChamp} = {"ARTICLE.IDCODE_TVA",indRubrique} {"Fiche_caisse_1024.table_article.COL_EligibleTR",indChamp} = {"ARTICLE.TIMBRE",indRubrique} ExécuteTraitement("FICHE_CAISSEÒV ^Üe_article.nota",indChamp} = sCodePromoTF FIN FIN FIN {"Fiche_caisse_1024.table_article",indChamp}..AffichageActif = Vrai FIN FichierExiste("KeziaII.ini") = Faux ALORS Execute("fct_MAJ_SAI_Totaux_DepuisTable_Article") Ò% -Û ásTxtSql_TF est une chaîne sTxtSql_TF = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.CODE IN (100507,100508,110301,110302) ] sTxtSql_TF = ChaîneConstruit(sTxtSql_TF) execute("ExecutionRequetePreRequis",sTxtäëëR´™8 ÞsTxtSql_TF est une chaîne sTxtSql_TF = [ SELECT ARTICLE.IDART FROM ARTICLE WHERE ARTICLE.IDFAM IN (1087) OR IDSSFAM IN(1050) ] sTxtSql_TF = ChaîneConstruit(sTxtSql_TF) execute("ExecutionRequetePreRequis",sTxtSÔrrÿÿÿÿÿÿÿÿèÖtif = Vrai nNombreLigneEnCaisse+=1 FIN FIN //Trace("Fin boucle traitement ajout ligne avec remise") _DepuisTable_Article") SINON ExécuteTraitement("FICHE_CAISSE_1024.table_article",trtAffichageLigne) FIN ͉ÿÿÿÿÿÿÿÿarticle.PRIX_TOTAL",indChamp} = Round({"Fiche_caisse_1024.table_article.QTE",indChamp}*({"Fiche_caisse_1024.table_article.PRIX_TTC",indChamp}*(1-{"Fiche_caisse_1024.table_article.REMISE",indChamp}/100)),2) {"Fiche_caisse_1024.tabl