#include Prod.Product #include vhLib.Macro #include BL.Derde.LevSpecifiek Storage Set Dev=$$OPEN^vhDEV(,"EWMS STORAGE.txt","W","T") Use Dev Write $TR("SortKey,PRNr,IdentNr,KortTekst,Stock,Gewicht;LEVNr;LEVNm;GVP;NVP;Mag;PalQty;LaagQty;Tray8x6Qty;Tray6x4Qty;Doos2Qty;DoosQty;DoosType;Fragiel;PalletInstabiel;StabiliteitDoos;Glad;Krasgevoelig;Reden,Lengte,Breedte,Hoogte,MaxStock,GemStock,MaxNbrDoos,GemNbrDoos,MaxPalNbrDoos,GemPalNbrDoos",",;",$C(9,9)),! Write $TR("",",",$C(9)),! Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Do StorageOne(PRNr) Quit Do CLOSE^vhDEV(Dev) Quit StorageOne(PRNr) Set Mag=$LG($G(^PVProd(PRNr)),1) Quit:Mag'="M" Set Reden=$LG($G(^PVProd(PRNr)),2) Set GVP=$$$PRGet($$$GrootVerpakking) Set PalQty=$LG($G(^PVProd(PRNr)),3) Set Doos2Qty=$LG($G(^PVProd(PRNr)),4) Set DoosQty=$LG($G(^PVProd(PRNr)),5) ; afmeting verpakking Set BLID="0"_$E($TR($P(^KPR(PRNr,2),D,25),".",""),2,99) Set BLRec=$G(^BLProd("D",BLID)) Set Ho=$P(BLRec,D,25) Set Le=$P(BLRec,D,23) Set Br=$P(BLRec,D,24) Do FetchStock(PRNr,.MaxStock,.GemStock) Set MaxDozen=$J(MaxStock\GVP+.499,0,0) Set GemDozen=$J(GemStock+.499\GVP,0,0) Set PalQty=$$$PRGet($$$PalletQty) Set MaxPalDozen=MaxDozen Set GemPalDozen=GemDozen If PalQty>10,PalQty10,PalQtyEnd) . For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do . . For Set OLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLNr)) Quit:OLNr="" Do . . . Set MPRNr=$P(^ORDW("D",CONSNr,"D",ORDNr,OLNr),D) . . . Quit:'$D(^KPR(MPRNr)) . . . If $$ISORGAL^PRODUKT2(MPRNr)||($$AANTKIND2^PRLINK(MPRNr)>1) Set MPRNr="" . . . Kill Cache . . . For Set SOLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLNr,SOLNr)) Quit:SOLNr="" Do . . . . Set SOLRec=^ORDW("D",CONSNr,"D",ORDNr,OLNr,SOLNr) . . . . Set Qty=$P(SOLRec,D,3) . . . . Set PRNr=$P(SOLRec,D,1) . . . . Quit:'$D(^KPR(PRNr)) . . . . Set LEVNr=$$$PRGet($$$LeveranciersNr) . . . . Quit:LEVNr=$$$LevHalux . . . . Quit:'PRNr . . . . Quit:Qty<0 . . . . Quit:'$D(^KPR(PRNr)) . . . . Set:MPRNr?4.7N PRNr=MPRNr . . . . Set Cache(PRNr)=$G(Cache(PRNr))+$P(SOLRec,D,3) . . . Set PRNr="" . . . For Set PRNr=$O(Cache(PRNr)) Quit:PRNr="" Do . . . . Set Qty=Cache(PRNr) . . . . Do WriteOne(PRNr,Qty,CONSNr,DueOut,KLNr) Do CLOSE^vhDEV(Dev) Quit WriteOne(PRNr,Qty,CONSNr,DueOut,KLNr) Set PalQty=$LG($G(^PVProd(PRNr)),3) Set Doos2Qty=$LG($G(^PVProd(PRNr)),4) Set DoosQty=$LG($G(^PVProd(PRNr)),5) Set Mag=$LG($G(^PVProd(PRNr)),1) Set Reden=$LG($G(^PVProd(PRNr)),2) Set RestQty=Qty Set (NbrPal,NbrDoos2,NbrDoos,NbrPcs)=0 If PalQty,RestQty'25 Do Define(PRNr,"P",9999999,"Gewicht") . Else Do Define(PRNr,"M",GVP,"Bak:Niet Blum") ; Niet Blum If LEVNr'=$$$LevBlum Do Quit . If TotGewicht>25 Do Define(PRNr,"P",9999999,"Gewicht") . Else If OpslagZone'=1 Do Define(PRNr,"U",9999999,"Opslagzone") . Else Do Define(PRNr,"M",GVP,"Bak:Niet blum") ; Blum If LEVNr=$$$LevBlum Do Quit . If (Ho>40)||(Le>75) Do . . Do Define(PRNr,"P",9999999,"TeGroot") . Else If TotGewicht>25 Do . . Do Define(PRNr,"P",9999999,"Gewicht") . Else If 'Br||'Le do . . Set BakQty=GVP . . Set:TotGewicht BakQty=50\(TotGewicht)*GVP . . Do Define(PRNr,"M",BakQty,"Bak:geen afmeting") . Else If (Br<25)||(Le<25) Do . . Set BakQty=(60*40)\(Br*Le)*GVP . . For Quit:BakQty*Gewicht/1000<50 Set BakQty=BakQty-GVP . . Set:BakQty<1 BakQty=1 . . Do Define(PRNr,"M",BakQty,"Bak:TeKlein") . Else Do . . Do Define(PRNr,"M",GVP,"Doos") Quit Define(PRNr,Mag,GVP,Reden) If Mag="M",Reden'["Bak" Do . Set PalQty=$$$PRGet($$$PalletQty) . Set Gewicht=$$$PRGet($$$Gewicht) . ; afmeting verpakking . Set BLID="0"_$E($TR($P(^KPR(PRNr,2),D,25),".",""),2,99) . Set BLRec=$G(^BLProd("D",BLID)) . Set Ho=$P(BLRec,D,25) . Set Le=$P(BLRec,D,23) . Set Br=$P(BLRec,D,24) . . If PalQty>100 Set PalQty=PalQty\2 . Set Doos2Qty=GVP*2 . If Doos2Qty*Gewicht/1000>50 Set Doos2Qty=0 . Set ^PVProd(PRNr)=$LB(Mag,Reden,PalQty,Doos2Qty,GVP) Else Do . Set ^PVProd(PRNr)=$LB(Mag,Reden,0,0,0) Quit