cwchkRP ; ontwikkeling cw Quit ; RP New Producten,Error Do FetchProd(.Producten) Do Check(.Producten,.Error) Do Mail(.Error) Quit ; Ophalen van de producten die moeten gecontroleerd worden FetchProd(Producten) New LEVNr,VervRef,FANr,LijnRef,VervRec,PRNr,SortKey Set LEVNr=5005,VervRef="" For Set VervRef=$O(^Verv(LEVNr,"D",VervRef)) Quit:VervRef="" Do . Set FANr="" . For Set FANr=$O(^Verv(LEVNr,"D",VervRef,FANr)) Quit:FANr="" Do . . Set LijnRef="" . . For Set LijnRef=$O(^Verv(LEVNr,"D",VervRef,FANr,LijnRef)) Quit:LijnRef="" Do . . . Quit:'$D(^Verv(LEVNr,"D",VervRef,FANr,LijnRef,"RP")) . . . Set VervRec=^Verv(LEVNr,"D",VervRef,FANr,LijnRef),PRNr=$P(VervRec,D,7) . . . Quit:'PRNr . . . Set Producten("P",PRNr)="" . . . Quit:'$D(^KPR(PRNr)) . . . Set SortKey=$$SORTKEY^PRODUKT(PRNr) . . . Set Producten("S",SortKey)=PRNr Quit Check(Producten,Error) New I,R,LEVNr,VervRef,FANr,LijnRef,VervRec,SoDo,RecuPakRec,RecuPakKLNrBlum,RecuPakProdBlum,RecuPakAantalBlum,RecuPakProdVH,RecuPakAantalVH,PRNr,Aantal Set LEVNr=5005,VervRef="" For Set VervRef=$O(^Verv(LEVNr,"D",VervRef)) Quit:VervRef="" Do . Set VervRec=^Verv(LEVNr,"D",VervRef),SoDo=$P(VervRec,D,15) . Set FANr="" . For Set FANr=$O(^Verv(LEVNr,"D",VervRef,FANr)) Quit:FANr="" Do . . Set LijnRef="" . . For Set LijnRef=$O(^Verv(LEVNr,"D",VervRef,FANr,LijnRef)) Quit:LijnRef="" Do . . . Quit:'$D(^Verv(LEVNr,"D",VervRef,FANr,LijnRef,"RP")) . . . Set VervRec=^Verv(LEVNr,"D",VervRef,FANr,LijnRef),PRNr=$P(VervRec,D,7),Aantal=$P(VervRec,D,10) . . . Quit:'PRNr . . . If '$D(^KPR(PRNr)) Set Error("P","onbekend",VervRef,FANr,LijnRef)="Vervoer '"_VervRef_"', factuur '"_FANr_"', lijn '"_LijnRef_"' product '"_PRNr_"' onbekend." . . . Set RecuPakRec=^Verv(LEVNr,"D",VervRef,FANr,LijnRef,"RP") . . . If $L(RecuPakRec,D)>1,SoDo="SO" Do ; Record voor SO verschillend van DO, dus volgorde omkeren . . . . Set RecuPakRec=$Reverse(RecuPakRec) . . . . For I=1:1:$L(RecuPakRec,D) Set $P(RecuPakRec,D,I)=$Reverse($P(RecuPakRec,D,I)) . . . For I=1:1 Set R=$P(RecuPakRec,D,I) Quit:R="" Do . . . . Set RecuPakKLNrBlum=$P(R,";"),RecuPakProdBlum=$P(R,";",2),RecuPakAantalBlum=+$P(R,";",3) . . . . If '$D(^BLBeri("K",RecuPakKLNrBlum)) Set Error("K","onbekend",VervRef,FANr,LijnRef+(I/10))="Vervoer '"_VervRef_"', factuur '"_FANr_"', lijn '"_LijnRef_"' klantnummer '"_RecuPakKLNrBlum_"' onbekend." . . . . If '$D(^KPR2(RecuPakProdBlum_" ")) Set Error("P","onbekend",VervRef,FANr,LijnRef+(I/10))="Vervoer '"_VervRef_"', factuur '"_FANr_"', lijn '"_LijnRef_"' product '"_RecuPakProdBlum_"' onbekend." . . . . Set RecuPakProdBlum=$P(^KPR2(RecuPakProdBlum_" "),D) . . . . Set R=$O(^KPR(PRNr,"J")) Set:$E(R)="J" R=^KPR(PRNr,R) Set RecuPakProdVH=$P(R,D,32),RecuPakAantalVH=+$P(R,D,33) . . . . If 'RecuPakProdVH Set Error("P","onbekend",VervRef,FANr,LijnRef+(I/10))="Vervoer '"_VervRef_"', factuur '"_FANr_"', lijn '"_LijnRef_"' product '"_$P(^KPR(PRNr,0),D)_"' verpakkingsproduct onbekend." . . . . Else Do . . . . . If RecuPakProdVH'=RecuPakProdBlum Set Error("P","verschil",VervRef,FANr,LijnRef+(I/10))="Vervoer '"_VervRef_"', factuur '"_FANr_"', lijn '"_LijnRef_"' product '"_$P(^KPR(PRNr,0),D)_"' verpakkingsproduct verschillend '"_$P(^KPR(RecuPakProdBlum,0),D)_" (Blum) - "_$P(^KPR(RecuPakProdVH,0),D)_" (VH)'" . . . . . If RecuPakAantalVH'=(Aantal\RecuPakAantalBlum) Set Error("A","verschil",VervRef,FANr,LijnRef+(I/10))="Vervoer '"_VervRef_"', factuur '"_FANr_"', lijn '"_LijnRef_"' product '"_$P(^KPR(PRNr,0),D)_"' aantal verschillend '"_(Aantal\RecuPakAantalBlum)_" (Blum) - "_RecuPakAantalVH_" (VH)'" . . . . Set PRNr=RecuPakProdBlum,Aantal=RecuPakAantalBlum Quit ; Opmaken van de mail indien fouten Mail(Error) New I1,I2,From,To,Subject,Body,VervRef,FANr,LijnRef,Status Do:$D(Error) . Set From=$ZUTIL(110)_"@VANHOECKE.BE" . Set To=$LB("cw@vanhoecke.be") . Set Subject="Controle vervoer - recupak" . Set Body="Er werden fouten gevonden!!!" . Set I1="" . For Set I1=$O(Error(I1)) Quit:I1="" Do . . Set:I1="A" Body=Body_$C(13)_$C(13)_"Fouten i.v.m. aantallen"_$C(13)_"-----------------------" . . Set:I1="K" Body=Body_$C(13)_$C(13)_"Fouten i.v.m. klanten"_$C(13)_"---------------------" . . Set:I1="P" Body=Body_$C(13)_$C(13)_"Fouten i.v.m. producten"_$C(13)_"-----------------------" . . Set I2="" . . For Set I2=$O(Error(I1,I2)) Quit:I2="" Do . . . Set:$O(Error(I1,I2),-1)'="" Body=Body_$C(13) . . . Set VervRef="" . . . For Set VervRef=$O(Error(I1,I2,VervRef)) Quit:VervRef="" Do . . . . Set:$L($G(Error(I1,I2,VervRef))) Body=Body_$C(13)_Error(I1,I2,VervRef) . . . . Set FANr="" . . . . For Set FANr=$O(Error(I1,I2,VervRef,FANr)) Quit:FANr="" Do . . . . . Set:$L($G(Error(I1,I2,VervRef,FANr))) Body=Body_$C(13)_Error(I1,I2,VervRef,FANr) . . . . . Set LijnRef="" . . . . . For Set LijnRef=$O(Error(I1,I2,VervRef,FANr,LijnRef)) Quit:LijnRef="" Set Body=Body_$C(13)_Error(I1,I2,VervRef,FANr,LijnRef) . Set Status=$$SendMiniMail^vhLib(From,To,Subject,Body) Quit