PVRECUPAK // Local(RecupNr,"V",PRNr) = Afgeleide van beslag voorraad // Local(RecupNr,"L",KLNr) = Saldo Leverancier (als klant) // Local(RecupNr,"K",KLNr) = Saldo Klant // Local(RecupNr,"L",KLNR) = Aantal in levering // Local(RecupNr,"R",RecupNr)= Aantal in voorraad van de RecuPak product Cumul Set D="\" Set Ref=$name(Local) Kill @Ref Write "BeslagVoorraad",! Do ScanBeslagVoorraad(Ref) Set LEVNr=##class(Derde.Lev.Lev).LevAlsKlant(5005) Write "Leverancier saldo",! Do ScanLeverancier(Ref,LEVNr) Write "Klanten saldo",! Do ScanKlanten(Ref,LEVNr) Write "Uitleveringsbons",! Do ScanUitLeveringsBons(Ref) Write "RecuPakVoorraad",! Do ScanRecuPakVoorraad(Ref) Set Ref2=$name(Local2) Kill @Ref2 Write "Translate",! Do Translate(Ref,Ref2) Write "Transfer",! Do Transfer(Ref2) Quit ScanBeslagVoorraad(Ref) New PRNr,RecupPRNr,RecupQty,List Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Set FysStock=$$GETSTOCK^PRODUKT4(PRNr,"F",,0) . Set List=##class(BL.Flow.RecuPak.Main).GetQty(PRNr, FysStock,1) . Set RecupPRNr=$LG(List,1) . Set RecupQty=$LG(List,2) . Quit:'RecupPRNr||'RecupQty . Set @Ref@(RecupPRNr,"V",PRNr)=$LB(RecupQty) . ; Controle dekplaten . Set List=##class(BL.Flow.RecuPak.Main).GetQty(PRNr, FysStock,1) . Set RecupPRNr=$LG(List,1) . Set RecupQty=$LG(List,2) . Quit:'RecupPRNr||'RecupQty . Set @Ref@(RecupPRNr,"V",PRNr)=$LB(RecupQty) Quit ScanLeverancier(Ref,KLNr) New RecupPRNr,objHist &sql(DECLARE Cscanlev CURSOR FOR SELECT Product INTO :RecupPRNr FROM Flow_RecuPak.Historiek WHERE Klant=:KLNr) &sql(OPEN Cscanlev) For &sql(FETCH Cscanlev) Quit:(SQLCODE '= 0) Do . Quit:'$D(^KPR(RecupPRNr)) ; onbestaand product . Set objHist=##class(Flow.RecuPak.Historiek).OpenLast(KLNr,RecupPRNr) . Quit:'$IsObject(objHist) . Set @Ref@(RecupPRNr,"L",KLNr)=$LB(objHist.Saldo,objHist.TijdStip) &SQL(CLOSE Cscanlev) Quit ScanKlanten(Ref,ExeptKLNr) New KLNr,RecupPRNr,objHist &sql(DECLARE Cscankl CURSOR FOR SELECT Klant,Product INTO :KLNr, :RecupPRNr FROM Flow_RecuPak.Historiek WHERE Klant<>:ExeptKLNr) &sql(OPEN Cscankl) For &sql(FETCH Cscankl) Quit:(SQLCODE '= 0) Do . Quit:'$D(^KPR(RecupPRNr)) ; onbestaand product . Set objHist=##class(Flow.RecuPak.Historiek).OpenLast(KLNr,RecupPRNr) . Quit:'$IsObject(objHist) . Set @Ref@(RecupPRNr,"K",KLNr)=$LB(objHist.Saldo,objHist.TijdStip) &SQL(CLOSE Cscankl) Quit ScanUitLeveringsBons(Ref) New BLObj,Qty,List Set KLNr=0 Set BlumKLNr=##class(Derde.Lev.Lev).LevAlsKlant(5005) For Set KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do . Set Node=$S(KLNr=BlumKLNr:"T",1:"B") . Set BONNr=0 . For Set BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do .. Set BLObj=##class(BL.Flow.RecuPak.Main).%New() .. Do BLObj.GetGeleverdAantal(BONNr, 1) ;gecummuleerd .. Set RecupPRNr="" .. For Set RecupPRNr=$O(BLObj.Verpak(RecupPRNr)) Quit:RecupPRNr="" Do ... Set Qty=$LG(BLObj.Verpak(RecupPRNr),3) ... Set Qty=$LG(Qty,1) ... Set List=$G(@Ref@(RecupPRNr,"B",KLNr)) ... Set $LI(List)=$LG(List)-Qty ... Set @Ref@(RecupPRNr,Node,KLNr)=List Quit ScanRecuPakVoorraad(Ref) New RecupPRNr Set RecupPRNr="" For Set RecupPRNr=$O(^HISTPAK("P",RecupPRNr)) Quit:RecupPRNr="" Do . Quit:'$D(^KPR(RecupPRNr)) . Set FysStock=$$GETSTOCK^PRODUKT4(RecupPRNr,"F",,0) . Set @Ref@(RecupPRNr,"R",RecupPRNr)=$LB(FysStock) Quit // Vertalen van de opgehaalde gegevens naar displaybare Translate(Ref,Ref2) New Sort, SortMax, RecupPRNr,VolgNr,Qty,Datum,List,Key,RecupKortTxt,Orig,OrigOms,KLId,KeyNm ; Sortering Set RecupPRNr="" For Set RecupPRNr=$O(^HISTPAK("P",RecupPRNr)) Quit:RecupPRNr="" Do . Set Sort=$LG(^HISTPAK("P",RecupPRNr)) . If 'Sort Set Sort=$G(SortMax,9999)+1,SortMax=Sort . Set Sort(Sort)=RecupPRNr ; Verwerking Set Sort="" For Set Sort=$O(Sort(Sort)) Quit:Sort="" Do . Set VolgNr=Sort*10000 . Set RecupPRNr=Sort(Sort) . Set RecupKortTxt=$P(^KPR(RecupPRNr,0),D) . For Orig="K","B","T","L","V","R" Do .. Set Key="" .. For Set Key=$O(@Ref@(RecupPRNr,Orig,Key)) Quit:Key="" Do ... Set List=@Ref@(RecupPRNr,Orig,Key) ... Set Qty=$LG(List) ... Set Datum=$LG(List,2) ... If "K;B;L;T"[Orig Do ; Klant .... Set KLId=^KK1(Key) .... Set KeyNm=$P(^KKL(KLId,0),D,2) ... Else Do ; Product .... Set KeyNm=$P(^KPR(Key,0),D,1) ... Set VolgNr=$I(VolgNr) ... Set OrigOms=$P("Klant,Bon,TerugGave,Lev,Beslag,FysSt",",",$F("KBTLVR",Orig)-1) ... Set @Ref2@(VolgNr)=$LB(RecupPRNr,RecupKortTxt,Orig,OrigOms,Key,KeyNm,Qty,Datum,$$EXTDATE^vhDTyp(Datum,"DK")) Quit Transfer(Ref) New VolgNr,Dev,I,List Set Dev=0 Set Dev=$$OPEN^vhDEV(,"RecuPakOverzicht.txt","W") Use Dev Write "Controleformule : Lev - TerugGave = FysSt - Klant",! Write "Lege ecopack (werkvloer+Halux) = FysSt + Bon - Beslag",!,! Write $TR("PRNr;RecupPak;Orig;OrigOms;KLNr;Naam;Aantal;Datum",";",$c(9)),! Set VolgNr="" For Set VolgNr=$O(@Ref@(VolgNr)) Quit:VolgNr="" Do . Set List=@Ref@(VolgNr) . For I=1,2,3,4,5,6,7,9 Write $S(I=1:"",1:$C(9)),$LI(List,I) . Write ! Close:0'[Dev Dev