1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
| transacpv est une structure
tEndToEndID est une chaîne
tInstdAmt est une chaîne
TMndtId est une chaîne
TDtoofsgntr est une chaîne
tvar est un tableau local de 10 chaînes
FIN
ttransac est une transacpv
lot est une structure
lPmtInID est une chaîne
lPmtMtd est une chaîne
lBtchBookg est une chaîne
lNbofTxs est une chaîne
lCtrlsum est une chaîne
lsvclvl est une chaîne
LCD est une chaîne
LSeqtp est une chaîne
lReqdColltnDt est une chaîne
lNm est une chaîne
Liban est une chaîne
Lbic est une chaîne
lChrgBr est une chaîne
Lics est une chaîne
lPrty est une chaîne
Slot est un tableau local de transacpv
FIN
Tlot est une lot
Entet est une structure
entmsgid est une chaîne
entcredtm est une chaîne
entnboftxs est un chaîne
entctrlsum est une chaîne
entnomcrean est une chaîne
FIN
tentet est une Entet
totxml est une structure
sonentet est une entet
sonlot est un tableau dynamique de lot
FIN
xmltot est totxml
//xmltot:sonlot = allouer un tableau dynamique de 20 chaînes
//tlot:slot = allouer un tableau dynamique de 2000000 chaînes
// Chargement du contenu XML
HExécuteRequête(REQ_totdet)
res1=HLitPremier(REQ_totdet)
res2=HLitPremier(Typentete)
sMggif = Milieu(Typentete.Numctr,1,3) + heurjour1
// mise en place entéte
//datech = DateVersChaîne(DateSys(),"AAAA-MM-JJ")+"T"+HeureVersChaîne(HeureSys(),"hh:mm:ss")
//prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CreDtTm=DateVersChaîne(DateSys(),"AAAAMMJJ") +HeureVersChaîne(HeureSys(),"HHMMSS")
//prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CreDtTm=DateVersChaîne(DateSys(),"AAAAMMJJ")+ hEurjour1
//nfo(prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CreDtTm)
rMontent = Arrondi(REQ_totdet.la_somme_Montprel,2)
dAtjour = DateSys()
hEurjour =HeureVersChaîne(HeureSys(),"hhmmss")
heurjour1 =Gauche(heurjour,6)
sMggif = Milieu(Typentete.Numctr,1,3) + heurjour1
datech = DateVersChaîne(DateSys(),"AAAAMMJJ")+heurjour1
// prevXML.Document.CstmrDrctDbtInitn.GrpHdr.MsgId=sMggif
tentet:entmsgid = sMggif
// prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CreDtTm=Datech
tentet:entcredtm = Datech
//prevXML.Document.CstmrDrctDbtInitn.GrpHdr.NbOfTxs= REQ_totdet.Comptage_1
tentet:entnboftxs = REQ_totdet.Comptage_1
// prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CtrlSum = rMontent
tentet:entctrlsum = rMontent
//prevXML.Document.CstmrDrctDbtInitn.GrpHdr.InitgPty.Nm= Typentete.Nomcreancier
tentet:entnomcrean = Typentete.Nomcreancier
xmltot:sonentet= tentet
HLibèreRequête(REQ_totdet)
HExécuteRequête(REQ_totlot)
Res1=HLitPremier(REQ_totlot,REQ_totlot.Nomfichier,REQ_totlot.typeseq)
TANTQUE HEnDehors(REQ_totlot) = Faux
// mise en place lot
// prevXML.document.CstmrDrctDbtInitn.PmtInf[N].PmtInfId = Typentete.Reférence
Tlot:lPmtInID = Typentete.Reférence
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].PmtMtd = "DD"
tlot:lPmtMtd = "DD"
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].BtchBookG = "false"
tlot:lBtchBookg = "false"
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].NbOfTxs = REQ_totlot.nbrelot
tlot:lNbofTxs = REQ_totlot.nbrelot
rMontlot = Arrondi(REQ_totlot.Totmontlotl,2)
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CtrlSum = rMontlot
tlot:lCtrlsum = rMontlot
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].PmtTpInf.SvcLvl.Cd="SEPA"
tlot:lsvclvl = "SEPA"
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].PmtTpInf.LclInstrm.Cd="CORE"
tlot:lcd = "CORE"
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].PmtTpInf.SeqTp = REQ_totlot.typeseq
Tlot:LSeqtp = REQ_totlot.typeseq
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].ReqdColltnDt = DateVersChaîne(Typentete.Dateech,"AAAAMMJJ")
tlot:lReqdColltnDt = DateVersChaîne(Typentete.Dateech,"AAAAMMJJ")
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].Cdtr.Nm = Typentete.Nomcreancier
Tlot:lNm = Typentete.Nomcreancier
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrAcct.id.IBAN= Gauche(Typentete.Iban,27)
tlot:Liban = Gauche(Typentete.Iban,27)
droitech = Droite(Typentete.Bic,3)
SI droitech = " "
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrAgt.FinInstnId.BIC = Gauche(Typentete.bic,8)
tlot:Lbic = Gauche(Typentete.Bic,8)
SINON
Tlot:Lbic = Typentete.Bic
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrAgt.FinInstnId.BIC = Typentete.Bic
FIN
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].ChrgBr = "SLEV"
tlot:lChrgBr = "SLEV"
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrSchmeId.Id.PrvtId.Othr.Id = Typentete.Ics
tlot:Lics = Typentete.Ics
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrSchmeId.Id.PrvtId.Othr.SchmeNm.Prtry= "SEPA"
tlot:lPrty = "SEPA"
clepar = HFiltreIdentique(Typdetail,Nomfichiertypeseq,REQ_totlot.Nomfichier,REQ_totlot.typeseq)
HLitPremier(Typdetail, CléPar,hSansRafraîchir)
N1 = 1
TANTQUE PAS HEnDehors()
nbmaj = 0
nbre = nbre + 1
nBre1 = modulo(nBre,10000)
SI nbre1 = 0 ALORS
memoira()
gsGtoparch = "OK "
creatarch("chgt",Nbre, " ",DateSys() + HeureSys(),"201001010")
FIN
// mise en place transaction
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].PmtId.EndToEndID = Typdetail.Libecomp
ttransac:tEndToEndID = Typdetail.Libecomp
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].InstdAmt:Ccy = "EUR"
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].InstdAmt = Typdetail.Montprel
ttransac:tInstdAmt = "CCY=EUR>" + Typdetail.Montprel
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.MndtId = Typdetail.Rumd
ttransac:TMndtId = Typdetail.Rumd
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.DtOfSgntr = Typdetail.Rumd
ttransac:TDtoofsgntr = Typdetail.Rumd
topmaji = " "
Topmajin = " "
topmajm = " "
topmajib = " "
Topmajs = " "
Pancrum = Typdetail.AncienRum
Pancics = Typentete.ancics
Ancinomcre = Typentete.anciennomcrean
anciban = Typdetail.ancieniban
// info(Typentete.ancicis," ",Typdetail.AncienRum)
Modifpain008(Typentete.Ics,Typdetail.Rumd,Typdetail.Iban,Pancics,Pancrum,Typentete.Nomcreancier,ancinomcre,anciban,topmajm,topmaji,topmajin,Topmajib,Topmajs)
SI Topmaji = "OK" OU Topmajib = "OK" OU Topmajm = "OK" OU Topmajs = "OK" OU topmajin = "OK" ALORS
nbmaj = nbmaj + 1
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInd = "true"
Insère (ttransac:tvar,nbmaj, "true")
FIN
SI Topmajm = "OK" ALORS
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj, Typdetail.AncienRum)
ttransac:Tvar = Typdetail.AncienRum
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfdtls.OrgnlMndtID = Typdetail.AncienRum
FIN
SI TopmajIn = "OK" ALORS
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj, Ancinomcre)
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfdtls.OrgnlCdtrSchmeId.Nm = Ancinomcre
FIN
SI Topmaji = "OK" ALORS
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj, Typentete.ancics)
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj, "SEPA")
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfdtls.OrgnlCdtrSchmeId.Id.PrvtId.Othr.Id= Typentete.ancics
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfdtls.OrgnlCdtrSchmeId.Id.PrvtId.Othr.SchmeNm.Prtry= "SEPA"
FIN
SI Topmajib = "OK" ALORS
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj, Gauche(anciban,27))
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfdtls.OrgnlDbtrAcct.Id.IBAN=Gauche(anciban,27)
FIN
SI Topmajs = "OK" ALORS
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj,"SMNDA")
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfdtls.OrgnlDbtrAgt.FinInstnId.Othr.Id = "SMNDA"
FIN
droitech = Droite(Typdetail.Bic,3)
SI droitech = " " ALORS
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj,Gauche(Typdetail.Bic,8))
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DbtrAgt.FinInstnId.BIC = Gauche(Typdetail.Bic,8)
SINON
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj,Typdetail.Bic)
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DbtrAgt.FinInstnId.BIC = Typdetail.Bic
FIN
nbmaj = nbmaj + 1
ttransac:Tvar = Typdetail.Nomdebiteur
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].Dbtr.Nm = Typdetail.Nomdebiteur
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj,Gauche(Typdetail.Iban,27))
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DbtrAcct.Id.IBAN=Gauche(Typdetail.Iban,27)
SI Milieu(Typdetail.librepiq,1,1) <> " " ALORS
nbmaj = nbmaj + 1
Insère (ttransac:tvar,nbmaj,Typdetail.librepiq)
// prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].RmtInf.Ustrd = Typdetail.librepiq
FIN
Tlot:Slot[N1] = ttransac
HLitSuivant(Typdetail, CléPar)
N1 = N1 + 1
FIN
xmltot:sonlot[N] = Tlot
N = N + 1
HLitSuivant(REQ_totlot,REQ_totlot.Nomfichier,REQ_totlot.typeseq)
FIN
HLibèreRequête(REQ_totlot)
// Enregistrement du fichier XML
gsGtoparch = "OK "
creatarch("serialis",nBre, " ",DateSys() + HeureSys(),"201001010")
Sérialise(xmltot,bufxml,psdXML)
gsGtoparch = "OK " |
Partager