EWPAL2 ;Nachtelijke stockoverdracht : Correctie op aantallen nog steeds in receptie of in orderpicking [ 05/24/2002 2:25 PM ] CORR(PRNr,PalId) New MPRNr,Qty,QtyO,QtyB,QtyT ;PalId=Optioneel If $P(^KPR(PRNr,2),D,15)=0 Set Qty="" ; Opslagzone manueel Else Do .Set PalId=$G(PalId) .Set QtyO=$$CORRORD(PRNr,PRNr,$G(PalId)) .Set QtyB=$$CORRBON(PRNr,PRNr,$G(PalId)) .Set QtyT=$$CORRTOE(PRNr,PRNr,$G(PalId)) .Set MPRNr="" .For Set MPRNr=$O(^PRLINK("IKM",PRNr,MPRNr)) Quit:MPRNr="" Do ..Set QtyO=QtyO+$$CORRORD(MPRNr,PRNr,$G(PalId)) ..Set QtyB=QtyB+$$CORRBON(MPRNr,PRNr,$G(PalId)) ..Set QtyT=QtyT+$$CORRTOE(MPRNr,PRNr,$G(PalId)) Set Qty=QtyO-QtyB-QtyT Quit Qty_";"_QtyO_";"_QtyB_";"_QtyT CORRORD(MPRNr,KPRNr,PalId) New CONSNr,ORDNr,OLUNr,SubLNr,Rec Set Qty=0 Set ORDNr="" For Set ORDNr=$O(^ORD("IP",MPRNr,ORDNr)) Quit:ORDNr="" Do:$D(^ORDW("IO",ORDNr)) .Set OLUNr="" .For Set OLUNr=$O(^ORD("IP",MPRNr,ORDNr,OLUNr)) Quit:OLUNr="" Do:$D(^ORDW("IO",ORDNr,OLUNr)) ..Set CONSNr=^ORDW("IO",ORDNr,OLUNr) ..Set SOLNr="" ..For Set SOLNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr)) Quit:SOLNr="" Do ...Set Rec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLNr) ...Quit:$P(Rec,D,1)'=KPRNr ...Quit:'$P(Rec,D,4) ; geen aantal ...If $L($G(PalId)) Quit:$P(Rec,D,10)'=PalId ...Set Qty=Qty+$P(Rec,D,4) Quit Qty CORRBON(MPRNr,KPRNr,PalId) ; Correctie op terugnames New RCPNr,BONNr,LUNr,SubLNr,Rec Set Qty=0 Set BONNr="" ;b For Set BONNr=$O(^KUP(MPRNr,BONNr)) Quit:BONNr="" Do:$D(^RCP("IU",BONNr)) .Set RCPNr=^RCP("IU",BONNr) .Set LUNr="" .For Set LUNr=$O(^RCP("D",RCPNr,"D",BONNr,LUNr)) Quit:LUNr="" Do ..Set SubLNr="" ..Quit:$P(^RCP("D",RCPNr,"D",BONNr,LUNr),D,2)="I" ; Reeds ingeboekt ..Quit:$P(^RCP("D",RCPNr,"D",BONNr,LUNr),D,1)'=MPRNr ; Moeder product ..For Set SubLNr=$O(^RCP("D",RCPNr,"D",BONNr,LUNr,SubLNr)) Quit:SubLNr="" Do ...Set Rec=^RCP("D",RCPNr,"D",BONNr,LUNr,SubLNr) ...Quit:$P(Rec,D,1)'=KPRNr ...Quit:'$P(Rec,D,7) ; Nog niet gestockeerd ...If $L($G(PalId)) Quit:$P(Rec,D,5)'=PalId ...;w BONNr," ",RCPNr," ",LUNr," ",SubLNr," ",MPRNr," ",KPRNr," ",$P(Rec,D,4),! ...Set Qty=Qty+$P(Rec,D,4) Quit Qty CORRTOE(MPRNr,KPRNr,PalId) New RCPNr,TOENr,LUNr,SubLNr,Rec Set Qty=0 Set TOENr="" For Set TOENr=$O(^TO("IP",MPRNr,TOENr)) Quit:TOENr="" Do:$D(^RCP("IT",TOENr)) .Set LUNr="" .For Set LUNr=$O(^TO("IP",MPRNr,TOENr,LUNr)) Quit:LUNr="" Do:$D(^RCP("IT",TOENr,LUNr)) ..Set RCPNr=^RCP("IT",TOENr,LUNr) ..Quit:'$D(^RCP("D",RCPNr,"D",TOENr,LUNr)) ..Quit:$P(^RCP("D",RCPNr,"D",TOENr,LUNr),D,2)="I" ; Reeds ingeboekt ..Set SubLNr="" ..For Set SubLNr=$O(^RCP("D",RCPNr,"D",TOENr,LUNr,SubLNr)) Quit:SubLNr="" Do ...Set Rec=^RCP("D",RCPNr,"D",TOENr,LUNr,SubLNr) ...Quit:$P(Rec,D,1)'=KPRNr ...Quit:'$P(Rec,D,7) ; Nog niet gestockeerd ...If $L($G(PalId)) Quit:$P(Rec,D,5)'=PalId ...Set Qty=Qty+$P(Rec,D,4) Quit Qty BLDKUP New KLNr,BONNr,LNr,PRNr Kill ^KUP Set (KLNr,BONNr)="" For Set KLNr=$O(^KUL(KLNr)) Quit:KLNr="" Do .For Set BONNr=$O(^KUL(KLNr,"F",BONNr)) Quit:BONNr="" Do ..Set LNr=99 ..For Set LNr=$O(^KUL(KLNr,"F",BONNr,LNr)) Quit:'LNr Do ...Set PRNr=$P(^(LNr),D,2) ...Quit:'PRNr ...Set ^KUP(PRNr,BONNr,LNr)=KLNr Quit