EWCORR ;E'WMS corrigeren[ 10/26/2001 2:36 PM ] ; Quit ; ALLSTOCK Set Q="K" Do ^cA604 Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:'PRNr Do ONESTOCK(PRNr) Quit ; ONESTOCK(PRNr) New R,Hist,HistNr,HistRec,FysStock,StockCnt,Quit,Date,Aantal,StockVal,Value Set FysStock=$P(^KPR(PRNr,0),D,14),HistNr="H9999",(StockCnt,StockVal,Quit)=0 For Set HistNr=$O(^KPR(PRNr,HistNr),-1) Quit:HistNr="" Do Quit:Quit .Set HistRec=^KPR(PRNr,HistNr) .Quit:HistRec'["Corr WMS" .For I=$L(HistRec,D):-1:1 Do Quit:Quit Quit:HistRec'["Corr WMS" ..Set R=$P(HistRec,D,I) ..Quit:R="" ..If R["Start WMS" Set Quit=1 Quit ..Quit:R'["Corr WMS" ..Set Aantal=$E($P(R,"#"),8,99) Set:$E(R,7)=4 Aantal=-Aantal ..Set StockCnt=StockCnt+Aantal ..Set Value=$P(R,"#",2) Set:$E(R,7)=4 Value=-Value ..Set StockVal=StockVal+Value ..Set $P(HistRec,D,I,I+99)=$P(HistRec,D,I+1,I+99) ..Set Hist(HistNr)=HistRec If +FysStock=StockCnt Do .;Quit:$Zu(0)'="LVH,DEV" .Set HistNr="" .For Set HistNr=$O(Hist(HistNr)) Quit:HistNr="" Do ..Set HistRec=Hist(HistNr) ..If $TR(HistRec,D,"")="" Do Quit ...Set ^KPR(PRNr,"H")=^KPR(PRNr,"H")-1 ...Kill:^KPR(PRNr,"H")=0 ^KPR(PRNr,"H") ...Kill ^KPR(PRNr,HistNr) ..Set ^KPR(PRNr,HistNr)=HistRec .Set $P(^KPR(PRNr,0),D,14)=0 .Set R=$G(^KPR(PRNr,"S199812")) .Quit:R="" .Set $P(R,D)=$P(R,D)-FysStock,$P(R,D,2)=$P(R,D,2)-StockVal .Set $P(R,D,5)=$P(R,D,5)-FysStock,$P(R,D,6)=$P(R,D,6)-StockVal .If $TR(R,"\0","")="" Kill ^KPR(PRNr,"S199812") .Else Set ^KPR(PRNr,"S199812")=R Else Do .Write !!,PRNr,! .ZWrite:$D(Hist) Hist .Write !,+FysStock," - ",StockCnt .Write *7 Read R Quit ; CORRRCP New %SC,RcpRec,RCPNr,TOENr,TLUNr,STLUNr,AantVerw,AantWMSC,AantBo,AantWMSS Set RcpRec=^HULP(%J,"L",LD("SELECT")) Set RCPNr=$P(RcpRec,D,3),TOENr=$P(RcpRec,D,4),TLUNr=$P(RcpRec,D,5),STLUNr=$P(RcpRec,D,6) If STLUNr,TLUNr,TOENr,RCPNr Do .New RCPStat .Set RCPStat=$P(RcpRec,D,12) .Set AantVerw=$P(RcpRec,D,13),AantWMSC=$P(RcpRec,D,14) .Do EDIT^vhScherm("EWCORRRCPS") .Quit:'%SC .Set $P(RcpRec,D,12)=RCPStat .Set $P(RcpRec,D,13)=AantVerw,$P(RcpRec,D,14)=AantWMSC .Set ^HULP(%J,"L",LD("SELECT"))=RcpRec .Set RcpRec=^RCP("D",RCPNr,"D",TOENr,TLUNr,STLUNr) .Set $P(RcpRec,D,2)=RCPStat .Set $P(RcpRec,D,3)=AantVerw,$P(RcpRec,D,4)=AantWMSC .Set ^RCP("D",RCPNr,"D",TOENr,TLUNr,STLUNr)=RcpRec .Do:RCPStat="C" ##class(OBJTimpl.WMSOrder.ZendOpslagOntvangst).MarkeerOntvangst(RCPNr, TOENr, TLUNr, STLUNr) ;OBJT Else If TLUNr,TOENr,RCPNr Do .Do RCPMAN(RCPNr,TOENr,TLUNr) .Q .New RCPStat,RCPProb .Set RCPStat=$P(RcpRec,D,12),RCPProb=$P(RcpRec,D,13) .Set AantVerw=$P(RcpRec,D,14),AantWMSC=$P(RcpRec,D,15),AantBo=$P(RcpRec,D,16),AantWMSS=$P(RcpRec,D,18) .Do EDIT^vhScherm("EWCORRRCPL") .Quit:'%SC .Set $P(RcpRec,D,12)=RCPStat,$P(RcpRec,D,13)=RCPProb .Set $P(RcpRec,D,14)=AantVerw,$P(RcpRec,D,15)=AantWMSC,$P(RcpRec,D,16)=AantBo,$P(RcpRec,D,18)=AantWMSS .Set ^HULP(%J,"L",LD("SELECT"))=RcpRec .Set RcpRec=^RCP("D",RCPNr,"D",TOENr,TLUNr) .Set $P(RcpRec,D,2)=RCPStat,$P(RcpRec,D,3)=RCPProb .Set $P(RcpRec,D,4)=AantVerw,$P(RcpRec,D,5)=AantWMSC,$P(RcpRec,D,6)=AantBo,$P(RcpRec,D,8)=AantWMSS .Set ^RCP("D",RCPNr,"D",TOENr,TLUNr)=RcpRec Else If RCPNr Do .Do EDIT^vhScherm("EWCORRRCP") .Quit:'%SC .Set $P(RcpRec,D,30)=RCPStat,$P(RcpRec,D,31)=RCPProb .Set ^HULP(%J,"L",LD("SELECT"))=RcpRec .Set RcpRec=^RCP("D",RCPNr) .Set $P(RcpRec,D,20)=RCPStat,$P(RcpRec,D,21)=RCPProb .Set ^RCP("D",RCPNr)=RcpRec Do ADD^vhScherm(1,24) Do REFRESH^EWRCPST Quit ; CORRORD New %SC,OrdRec,SOrdRec,CONSNr,ORDNr,OLUNr,SOLUNr,AantVerw,AantWMS,AantBo New CONSStat,CONSProb,MPRNr,KPRNr,KindFactor Set OrdRec=^HULP(%J,"L",LD("SELECT")) Set CONSNr=$P(OrdRec,D,2),ORDNr=$P(OrdRec,D,3),OLUNr=$P(OrdRec,D,4) If $$CONSSTAT(CONSNr)="K" Do WARN^vhTXTPOP("Deze bon moet vrijgegeven worden door de boekhouding!","") Quit If $$CONSSTAT(CONSNr)="B" Do WARN^vhTXTPOP("Deze bon werd reeds opgemaakt!","") Quit If "\3\17\"'[(D_$G(QU(1))_D),$$CONSSTAT(CONSNr)="" Do WARN^vhTXTPOP("Deze bon is nog niet in verwerking in het WMS!","") Quit If 0,SOLUNr,OLUNr,ORDNr,CONSNr Do .Set CONSStat=$P(OrdRec,D,12) .Set AantVerw=$P(OrdRec,D,13),AantWMS=$P(OrdRec,D,14) .Do EDIT^vhScherm("EWCORRORDS") .Quit:'%SC .Set $P(OrdRec,D,12)=CONSStat .Set $P(OrdRec,D,13)=AantVerw,$P(OrdRec,D,14)=AantWMS .Set ^HULP(%J,"L",LD("SELECT"))=OrdRec .Set OrdRec=^RCP("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr) .Set $P(OrdRec,D,2)=CONSStat .Set $P(OrdRec,D,3)=AantVerw,$P(OrdRec,D,4)=AantWMS .Set ^RCP("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr)=OrdRec Else If OLUNr,ORDNr,CONSNr Do .New R,CONSStat,CONSProb,KLNr,OLNr,OrdAant .Set CONSStat=$P(OrdRec,D,6),CONSProb=$P(OrdRec,D,7) .Set AantVerw=$P(OrdRec,D,8),AantWMS=$P(OrdRec,D,9),AantBo=$P(OrdRec,D,10) .Set KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=^ORD("IU",ORDNr,OLUNr),R=^KOD(KLNr,"F",ORDNr,OLNr),OrdAant=$P(R,D,3) .Do EDIT^vhScherm("EWCORRORDL") .Quit:'%SC .If "m"[CONSProb Set CONSProb=$S($L(CONSStat):"m",1:"") .Set:$L(CONSProb) CONSProb="m" .Set $P(OrdRec,D,6)=CONSStat,$P(OrdRec,D,7)=CONSProb .Set $P(OrdRec,D,8)=AantVerw,$P(OrdRec,D,9)=AantWMS,$P(OrdRec,D,10)=AantBo .Set ^HULP(%J,"L",LD("SELECT"))=OrdRec .Set OrdRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr) .Set $P(OrdRec,D,2)=CONSStat,$P(OrdRec,D,3)=CONSProb .Set $P(OrdRec,D,4)=AantVerw,$P(OrdRec,D,5)=AantWMS,$P(OrdRec,D,6)=AantBo .Set ^ORDW("D",CONSNr,"D",ORDNr,OLUNr)=OrdRec .Set MPRNr=$P(OrdRec,D) .Set SOLUNr=0 .For Set SOLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr)) Quit:SOLUNr="" Do ..If SOLUNr#100 Do ; Bij correctie alleen de master lijnen behouden ...Kill ^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr) ..Else Do ...Set SOrdRec=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr) ...Set KPRNr=$P(SOrdRec,D) ...Set $P(SOrdRec,D,2)=$S(CONSStat="W":"W",CONSStat="A":"A",1:"Q") ...Set KindFactor=$$GetMoederKindFactorRecursief^PRBS(MPRNr,KPRNr) ...Set $P(SOrdRec,D,3)=AantVerw*KindFactor ...Set $P(SOrdRec,D,4)=AantWMS*KindFactor ...Set:$P(SOrdRec,D,5)="" $P(SOrdRec,D,10)="MAN.COR." ...Set:$P(SOrdRec,D,6)="" $P(SOrdRec,D,6)=$H ...Set ^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr)=SOrdRec Else If CONSNr Do .If '$$ISAFGEWERKT(CONSNr) Do WARN^vhTXTPOP("Bepaalde lijnen van deze bon zijn nog niet afgewerkt!!!","") Quit .Set CONSStat=$P(OrdRec,D,24),CONSProb=$P(OrdRec,D,25) .Do EDIT^vhScherm("EWCORRORD") .Quit:'%SC .If "m"[CONSProb Set CONSProb=$S($L(CONSStat):"m",1:"") .Set:$L(CONSProb) CONSProb="m" .Set $P(OrdRec,D,24)=CONSStat,$P(OrdRec,D,25)=CONSProb .Set ^HULP(%J,"L",LD("SELECT"))=OrdRec .Set OrdRec=^ORDW("D",CONSNr) .Set $P(OrdRec,D,20)=CONSStat,$P(OrdRec,D,21)=CONSProb .Set ^ORDW("D",CONSNr)=OrdRec .Do REWRITE^EWORDST(1) Do ADD^vhScherm(1,24) Do REFRESH^EWORDST Quit ; RCPMAN(RCPNr,TOENr,TLUNr) ;Manuele correctie van de receptie met gelijktijdige correctie van de sublijnen New SQty,VQty,SubQty,LRec,SLRec,SLNr,MPRNr,KPRNr ;Indien X wordt ingetypt dan wordt de default waarde gecorrigeerd Do STORE^vhTERMINA(19,24) Set SQty=$$ASK^vhINP("Aantal dat gestockeerd werd : ",10,"","Aantal ingave of X[] voor alles wat verwacht werd") Do REFRESH^vhTERMINA(19,24) Set LRec=^RCP("D",RCPNr,"D",TOENr,TLUNr) Set:SQty="X"!(SQty="x") SQty=$P(LRec,D,4) Set VQty=$P(LRec,D,4) Set $P(LRec,D,2)="S" Set $P(LRec,D,3)=$S(SQty=0:"G",VQty'=SQty:"Q",1:"") Set $P(LRec,D,5)=SQty Set $P(LRec,D,8)=SQty Set MPRNr=$P(LRec,D) Set ^RCP("D",RCPNr,"D",TOENr,TLUNr)=LRec Set SLNr=0 For Set SLNr=$O(^RCP("D",RCPNr,"D",TOENr,TLUNr,SLNr)) Quit:SLNr="" Do .If SLNr#100 Do ; Bij correctie alleen de master lijnen behouden ..Kill ^RCP("D",RCPNr,"D",TOENr,TLUNr,SLNr) .Else Do ..Set SLRec=^RCP("D",RCPNr,"D",TOENr,TLUNr,SLNr) ..Set KPRNr=$P(SLRec,D) ..Set SubQty=SQty*$P($G(^PRLINK("D",MPRNr,KPRNr),1),D) ..Set $P(SLRec,D,4)=SubQty ..Set $P(SLRec,D,2)="Q" ..Set:$P(SLRec,D,5)="" $P(SLRec,D,5)=$P($H,",") ; Datum als paletID ..Set:$P(SLRec,D,6)="" $P(SLRec,D,6)=$H ..Set ^RCP("D",RCPNr,"D",TOENr,TLUNr,SLNr)=SLRec Quit ; CORRWMS New Set Q="K" Do ^cA604 Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:'PRNr Do CUMHIST^PRODUKT4(PRNr,"Corr WMS") Quit ; ISAFGEWERKT(CONSNr) New R,Afgewerkt,ORDNr,OLUNr Set Afgewerkt=1,ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:'Afgewerkt . Set OLUNr="" . For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:'Afgewerkt . . Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),Afgewerkt=$P(R,D,2)="A" Quit Afgewerkt ; CONSSTAT(CONSNr) Quit $P(^ORDW("D",CONSNr),D,20) ; RECALC(Rubriek,Input) If Rubriek="S" Do ; Status . Set:Input="A" AantWMS=AantVerw . Set:Input="" AantWMS="" . Do PUT^vhScherm("WMSCONTR",AantWMS) If Rubriek="G" Do ; Geraapt . Do PUT^vhScherm("CONSSTAT","A"),PUT^vhScherm("WMSCONTR",Input) Do PUT^vhScherm("BO",AantBo) Quit ;