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
| // Résumé : Créé le fichier XML Prélévement SEPA PAIN.008.001.02
// / Syntaxe :
//creationxml (<repfichie>, <codret2>)
//
// Paramètres :
// repfichie : <indiquez ici le rôle de repfichie>
// codret2 : <indiquez ici le rôle de ret>
// Valeur de retour :
// Aucune
//
// Exemple :
// Exemple :
// Exemple :
// Indiquez ici un exemple d'utilisation.
//
PROCEDURE creationxml(repfichie,codret2)
prevXML est un xmlDocument, description="Pain.008.001.02.xsd"
N est un entier = 1
N1 est un entier = 1
nBre est entier
nBre1 est un entier
Res1 est un booléen
res2 est un booléen
droitech est un chaîne
clepar est une chaîne
Datech est une chaîne UNICODE
dAtjour est une Date
hEurjour est une Heure
heurjour1 est une chaîne
Topmajm est une chaîne
Topmaji est une chaîne
Topmajib est une chaîne
Topmajin est une chaîne
Topmajs est une chaîne
Ancinomcre est une chaîne
anciban est une chaîne
Pancrum est une chaîne
Pancics est une chaîne
sRepfichie1 est une chaîne
sRepfichier2 est une chaîne
nSN1 est un entier
rMontent est un réel
rMontlot est un réel
// Chargement du contenu XML
HExécuteRequête(REQ_totdet)
Res1=HLitPremier(REQ_totdet)
res2=HLitPremier(Typentete)
// mise en place entéte
//datech = DateVersChaîne(DateSys(),"AAAA-MM-JJ")+"T"+HeureVersChaîne(HeureSys(),"hh:mm:ss")
rMontent = Arrondi(REQ_totdet.la_somme_Montprel,2)
dAtjour = DateSys()
hEurjour =HeureVersChaîne(HeureSys(),"hhmmss")
heurjour1 =Gauche(hEurjour,6)
Datech = DateVersChaîne(DateSys(),"AAAAMMJJ")+heurjour1
//Info(datjour,hEurjour,heurjour1,datech)
prevXML.Document.CstmrDrctDbtInitn.GrpHdr.MsgId="HHHH"
//prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CreDtTm=DateVersChaîne(DateSys(),"AAAAMMJJ") +HeureVersChaîne(HeureSys(),"HHMMSS")
//prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CreDtTm=DateVersChaîne(DateSys(),"AAAAMMJJ")+ hEurjour1
prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CreDtTm=Datech
//nfo(prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CreDtTm)
prevXML.Document.CstmrDrctDbtInitn.GrpHdr.NbOfTxs= REQ_totdet.Comptage_1
prevXML.Document.CstmrDrctDbtInitn.GrpHdr.CtrlSum = rMontent
prevXML.Document.CstmrDrctDbtInitn.GrpHdr.InitgPty.Nm= Typentete.Nomcreancier
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 = "REMIS1"
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].PmtMtd = "DD"
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].BtchBookg = "false"
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].NbOfTxs = REQ_totlot.nbrelot
rMontlot = Arrondi(REQ_totlot.Totmontlotl,2)
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CtrlSum = rMontlot
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].PmtTpInf.SvcLvl.Cd="SEPA"
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].PmtTpInf.LclInstrm.Cd="CORE"
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].PmtTpInf.SeqTp = REQ_totlot.typeseq
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].ReqdColltnDt = DateVersChaîne(Typentete.Dateech,"AAAAMMJJ")
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].Cdtr.Nm = Typentete.Nomcreancier
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrAcct.Id.IBAN= Gauche(Typentete.Iban,27)
droitech = Droite(Typentete.Bic,3)
SI droitech = " "
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrAgt.FinInstnId.BIC = Gauche(Typentete.Bic,8)
ELSE
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrAgt.FinInstnId.BIC = Typentete.Bic
FIN
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].ChrgBr = "SLEV"
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrSchmeId.Id.PrvtId.Othr.Id = Typentete.Ics
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].CdtrSchmeId.Id.PrvtId.Othr.SchmeNm.Prtry= "SEPA"
clepar = HFiltreIdentique(Typdetail,Nomfichiertypeseq,REQ_totlot.Nomfichier,REQ_totlot.typeseq)
HLitPremier(Typdetail, clepar)
N1 = 1
TANTQUE PAS HEnDehors()
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
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].InstdAmt:Ccy = "EUR"
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].InstdAmt = Typdetail.Montprel
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.MndtId = Typdetail.Rumd
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.DtOfSgntr = DateVersChaîne(Typdetail.Datesignd,"AAAAMMJJ")
Topmaji = " "
Topmajin = " "
Topmajm = " "
Topmajib = " "
Topmajs = " "
Pancrum = Typdetail.AncienRum
Pancics = Typentete.ancics
// info(Typentete.ancics," ",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
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInd = "true"
FIN
SI Topmajm = "OK" ALORS
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfDtls.OrgnlMndtId = Typdetail.AncienRum
FIN
SI Topmajin = "OK" ALORS
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfDtls.OrgnlCdtrSchmeId.Nm = Ancinomcre
FIN
SI Topmaji = "OK" ALORS
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
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfDtls.OrgnlDbtrAcct.Id.IBAN=Gauche(anciban,27)
FIN
SI Topmajs = "OK" ALORS
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DrctDbtTx.MndtRltdInf.AmdmntInfDtls.OrgnlDbtrAgt.FinInstnId.Othr.Id = "SMNDA"
FIN
droitech = Droite(Typdetail.Bic,3)
SI droitech = " "
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DbtrAgt.FinInstnId.BIC = Gauche(Typdetail.Bic,8)
ELSE
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DbtrAgt.FinInstnId.BIC = Typdetail.Bic
FIN
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].Dbtr.Nm = Typdetail.Nomdebiteur
prevXML.Document.CstmrDrctDbtInitn.PmtInf[N].DrctDbtTxInf[N1].DbtrAcct.Id.IBAN=Gauche(Typdetail.Iban,27)
// creatarch(Typentete.Ics,Typdetail.Rumd,Typdetail.Iban,Typentete.Nomcreancier,Typdetail.Datesignd)
HLitSuivant(Typdetail, clepar)
N1 = N1 + 1
FIN
N = N + 1
HLitSuivant(REQ_totlot,REQ_totlot.Nomfichier,REQ_totlot.typeseq)
FIN
HLibèreRequête(REQ_totlot)
// Enregistrement du fichier XML
sRepfichie1 = Droite(repfichie,3)
nSN1 = PositionOccurrence(repfichie,sRepfichie1, 1)
nSN1 = nSN1 - 1
sRepfichier2 = Milieu(repfichie,1,nSN1) + "XML"
gsGtoparch = "OK "
creatarch("sauv",nBre, " ",DateSys() + HeureSys(),"201001010")
XMLSauve(prevXML,sRepfichier2,xvSansValidation)
gsGtoparch = "OK "
creatarch("fsauv",nBre, " ",DateSys() + HeureSys(),"201001010")
// edition()
codret2 = "OK" |
Partager