EWORDRES ;WMS ORDER RESERVATIE [ 10/26/2001 2:42 PM ] Set Online=1 Goto DoIt NIGHT d ^cA604 Set OnLine=0 Goto DoIt DoIt Kill Res Lock +^ORDW,+^KPR If OnLine Write !,"Start Calc" Do CALC If OnLine Write !,"Start Store" Do STORE Lock -^ORDW,-^KPR Quit CALC Set Res=0 Set (CONSNr,ORDNr,OLUNr)="" For Set CONSNr=$O(^ORDW("D",CONSNr)) Quit:CONSNr="" Do .For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do ..For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do ...Set OLRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr) ...Quit:$P(OLRec,D,2)="B" ; Reeds op bon ...Quit:$P(OLRec,D,4)<0 ; Terugname, normaal reeds op bon ...Set MPRNr=$P(^ORDW("D",CONSNr,"D",ORDNr,OLUNr),D,1) ; Moederproduct ...Set MQty=$P(^ORDW("D",CONSNr,"D",ORDNr,OLUNr),D,4) ; Moederproduct ...Set Res(MPRNr)=$G(Res(MPRNr))+MQty ...Set KPRNr="" ...For Set KPRNr=$O(^PRLINK("D",MPRNr,KPRNr)) Quit:KPRNr="" Do ....Set KQty=MQty*$P(^PRLINK("D",MPRNr,KPRNr),D) ....Set Res(KPRNr)=$G(Res(KPRNr))+KQty Quit STORE Set PRNr="" For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do .Quit:$$OPSLMAN^PRODUKT2(PRNr) ;Manuele opslag, normaal reeds op bon .Quit:+$P(^KPR(PRNr,0),D,9)=+$G(Res(PRNr)) .If OnLine Write $P(^KPR(PRNr,0),D,1)," O:",$P(^KPR(PRNr,0),D,9)," N:",+$G(Res(PRNr)),! .Set $P(^KPR(PRNr,0),D,9)=+$G(Res(PRNr)) Quit