ZBCHKWN ;Nazicht link produkten met order en toeleveringen ;[ 09/02/1999 9:29 AM ] ; Do .New Check .Set Q="K" .Do ^cA604 If '$D(Check) Do .Quit .Xecute F70 .Write @F80 Do OD:$G(Check)'=0,TO:$G(Check)'=0,PR:(Check) If '$D(Check) Do .Quit .Xecute F71 Quit ; PR Write !!,"*** W-Node - Produkten ***" Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do .Set KortTxt=$P(^KPR(PRNr,0),D) .Set TotToel=$P(^KPR(PRNr,0),D,17),TotRes=$P(^KPR(PRNr,2),D,9) .If $P(TotToel,"#",2)+$P(TotToel,"#",3)'=+TotToel Do ..Set Check=0 ..Do wKORTTXT^zbcheck ..Write !!,"Totaal toeleveringen foutief $P(",$ZR,",""\"",17) = ",TotToel,!,?8,"Tot = ",$P(TotToel,"#"),?29,"Stk = ",$P(TotToel,"#",2),?50,"Kom = ",$P(TotToel,"#",3) .If $P(TotRes,"#",2)+$P(TotRes,"#",3)'=+TotRes Do ..Set Check=0 ..Do wKORTTXT^zbcheck ..Write !!,"Totaal orders foutief $P(",$ZR,",""\"",9) = ",TotRes,!,?8,"Tot = ",$P(TotRes,"#"),?29,"Stk = ",$P(TotRes,"#",2),?50,"Kom = ",$P(TotRes,"#",3) .Set W="W",(Toel,ToelS,ToelK,Res,ResS,ResK)=0 .For Set W=$O(^KPR(PRNr,W)) Quit:$E(W)'="W" Do ..Set Rec=^KPR(PRNr,W),Ref=$E(W,18,23),LijnNr=$TR($E(W,24,26)," ","")+100,ZR=$ZR ..If $E(W,9)="T" Do ...If '$D(^KTO1(Ref)) Do Quit ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"Toelevering ",Ref," onbekend - ",ZR ...Set LEVNr=$P(^KTO1(Ref),D) ...If '$D(^KTO(LEVNr,Ref,LijnNr)) Do ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"Toelevering ",Ref," lijn ",LijnNr," onbekend - ",ZR ...Set Toel=Toel+$P(Rec,D,5),@("Toel"_$P("S\K",D,$P(Rec,D,7)+1))=@("Toel"_$P("S\K",D,$P(Rec,D,7)+1))+$P(Rec,D,5) ..If $E(W,9)="R" Do ... If '$D(^KO1(Ref)) Do Quit ... .Set Check=0 ... .Do wKORTTXT^zbcheck ... .Write !!,"Order ",Ref," onbekend - ",ZR ... . Write !,"CleanUp KPR(W-node) : Kill "_$Name(^KPR(PRNr,W))_" with value '"_$G(^KPR(PRNr,W))_"' ." ... . Kill ^KPR(PRNr,W) ... If $P(^KO1(Ref,"F"),D,2) Do ... .Set Check=0 ... .Do wKORTTXT^zbcheck ... .Write !!,"Order ",Ref," uitgeleverd - bon ",$P(^KO1(Ref,"F"),D,2)," - ",ZR ... . Write !,"CleanUp KPR(W-node) : Kill "_$Name(^KPR(PRNr,W))_" with value '"_$G(^KPR(PRNr,W))_"' ." ... . Kill ^KPR(PRNr,W) ... Set KLNr=$P(^KO1(Ref,"F"),D) ... If '$D(^KOD(KLNr,"F",Ref,LijnNr)) Do Quit ... . Set Check=0 ... . Do wKORTTXT^zbcheck ... . Write !!,"Order ",Ref," lijn ",LijnNr," onbekend - ",ZR ... . Set Res=Res+$P(Rec,D),@("Res"_$P("S\K",D,$P(Rec,D,3)+1))=@("Res"_$P("S\K",D,$P(Rec,D,3)+1))+$P(Rec,D) ... . Write !,"CleanUp KPR(W-node) : Kill "_$Name(^KPR(PRNr,W))_" with value '"_$G(^KPR(PRNr,W))_"' ." ... . Kill ^KPR(PRNr,W) ... If ($O(^KPR(PRNr,"W"))'?1"W".E) Kill ^KPR(PRNr,"W") ; lees: indien geen andere W-subnodes, dan opkuis ^KPR( ,"W") ... ... Set OrdTyp=$P(^KOD(KLNr,"F",Ref,1),D,25) ... Set R=^KOD(KLNr,"F",Ref,LijnNr) ... Quit:$P(R,D,14)["S" Quit:$P(R,D,14)["Z" ... Set LevTerm=$P(R,D,25) ... If OrdTyp="A",$$INTDATE^vhLib.DataTypes(LevTerm,"DW")>$$LEVWK^PRODUKT4(PRNr,KLNr) Quit ... Set Res=Res+$P(Rec,D),@("Res"_$P("S\K",D,$P(Rec,D,3)+1))=@("Res"_$P("S\K",D,$P(Rec,D,3)+1))+$P(Rec,D) .If Toel'=+TotToel Do ..Set Check=0 ..Do wKORTTXT^zbcheck ..Write !!,"Cumul toeleveringen ^KPR(",PRNr,",""W..."") <> $P(^KPR(",PRNr,",0),""\"",17)",!,?8,"Cumul = ",Toel,?29,"Tot = ",+$P(TotToel,"#") .If ToelS'=+$P(TotToel,"#",2) Do ..Set Check=0 ..Do wKORTTXT^zbcheck ..Write !!,"Cumul toeleveringen stock ^KPR(",PRNr,",""W..."") <> $P(^KPR(",PRNr,",0),""\"",17)",!,?8,"Cumul = ",ToelS,?29,"Stk = ",+$P(TotToel,"#",2) .If ToelK'=+$P(TotToel,"#",3) Do ..Set Check=0 ..Do wKORTTXT^zbcheck ..Write !!,"Cumul toeleveringen kom ^KPR(",PRNr,",""W..."") <> $P(^KPR(",PRNr,",0),""\"",17)",!,?8,"Cumul = ",ToelK,?29,"Kom = ",+$P(TotToel,"#",3) . New Piece9 . Set Piece9 = $P(^KPR(PRNr,2),"\",9) .If Res'=+TotRes Do ..Set Check=0 ..Do wKORTTXT^zbcheck ..Write !!,"Cumul orders ^KPR(",PRNr,",""W..."") <> $P(^KPR(",PRNr,",2),""\"",9)",!,?8,"Cumul = ",Res,?29,"Tot = ",+$P(TotRes,"#") .. Set $P(Piece9,"#",1)=Res .If ResS'=+$P(TotRes,"#",2) Do ..Set Check=0 ..Do wKORTTXT^zbcheck ..Write !!,"Cumul orders stock ^KPR(",PRNr,",""W..."") <> $P(^KPR(",PRNr,",2),""\"",9)",!,?8,"Cumul = ",ResS,?29,"Stk = ",+$P(TotRes,"#",2) .. Set $P(Piece9,"#",2)=ResS .If ResK'=+$P(TotRes,"#",3) Do ..Set Check=0 ..Do wKORTTXT^zbcheck ..Write !!,"Cumul orders kom ^KPR(",PRNr,",""W..."") <> $P(^KPR(",PRNr,",2),""\"",9)",!,?8,"Cumul = ",ResK,?29,"Stk = ",+$P(TotRes,"#",3) .. Set $P(Piece9,"#",3)=ResK . . If ($P(^KPR(PRNr,2),"\",9) '= Piece9) Do . . Write !,"*** Fixing Piece9 : "_( $P(^KPR(PRNr,2),"\",9) )_ " --> " _ Piece9,! . . Set $P(^KPR(PRNr,2),"\",9) = Piece9 . . ;Break Quit ; OD Write !!,"*** W-Node - Orders ***" Set KLNr=0 For Set KLNr=$O(^KOD(KLNr)) Quit:KLNr="" Do .Set ORDNr="" .For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do ..Set R=$P(^KOD(KLNr,"F",ORDNr,1),D,2),OrdDat=$$CONVDATE^vhLib.DataTypes(R,,"DSN") ..Set LijnNr=100 ..For Set LijnNr=$O(^KOD(KLNr,"F",ORDNr,LijnNr)) Quit:LijnNr="" Do ...Set R=^KOD(KLNr,"F",ORDNr,LijnNr),PRNr=$P(R,D,2) Quit:'PRNr ...Set KortTxt=$P(^KPR(PRNr,0),D) ...If '$D(^KPR(PRNr,"W 0.0R"_OrdDat_ORDNr_$J(LijnNr-100,3))) Do Quit ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"W-node ",$ZR," onbekend",!,?8,"Order = ",ORDNr,?29,"Lijn = ",LijnNr ...If $P(^KPR(PRNr,"W 0.0R"_OrdDat_ORDNr_$J(LijnNr-100,3)),D)'=$P(R,D,3) Do ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"W-node ",$ZR," aantal verschillend",!,?8,"Order = ",ORDNr,?29,"Lijn = ",LijnNr,?50,"Aantal = ",$P(@$ZR,D)," <> ",$P(R,D,3) ...If $P(^KPR(PRNr,"W 0.0R"_OrdDat_ORDNr_$J(LijnNr-100,3)),D,2)'=$P(R,D,25) Do ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"W-node ",$ZR," levert verschillend",!,?8,"Order = ",ORDNr,?29,"Lijn = ",LijnNr,?50,"Levert = ",$S($P(@$ZR,D,2)?5N:$$EXTDATE^vhLib.DataTypes($P(@$ZR,D,2)),1:$P(@$ZR,D,2))," <> ",$S($P(R,D,25)?5N:$$EXTDATE^vhLib.DataTypes($P(R,D,25)),1:$P(R,D,25)) ...If ''$P(^KPR(PRNr,"W 0.0R"_OrdDat_ORDNr_$J(LijnNr-100,3)),D,3)'=''$P(R,D,27) Do ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"W-node ",$ZR," type reservatie verschillend",!,?8,"Order = ",ORDNr,?29,"Lijn = ",LijnNr,?50,"Type = ",$S(''$P(@$ZR,D,3):"Kom",1:"Stk")," <> ",$S(''$P(R,D,27):"Kom",1:"Stk") .... If ($P(R,D,27)> 0) && $D(^KTO(6332,$P(R,D,27),$P(R,D,28))) Do .... . Set $P(^KPR(PRNr,"W 0.0R"_OrdDat_ORDNr_$J(LijnNr-100,3)),D,3) = 1 .... . Write !,"Fixing type reservatie : set W-node op KOM=1" .... Else Do .... . Write !,"ATTENTION : W-node staat op KOM=1. fix toelev verwijzing !" Quit ; TO Write !!,"*** W-Node - Toeleveringen ***" Set LEVNr=0 For Set LEVNr=$O(^KTO(LEVNr)) Quit:LEVNr="" Do .Set TOENr="" .For Set TOENr=$O(^KTO(LEVNr,TOENr)) Quit:TOENr="" Do ..Set R=$P(^KTO(LEVNr,TOENr,1),D,2),ToeDat=$$CONVDATE^vhLib.DataTypes(R,,"DSN") ..Quit:($Data(^AfdrukkenVoorraadIdentificatieToelevering(TOENr))) ; KPR W-nodes niet controleren voor tijdelijke toeleveringen bedoeld voor "AfdrukkenVoorraadIdentificatie", want de W-nodes zijn hier (momenteel) nog niet correct opgezet. ..Set LijnNr=100 ..For Set LijnNr=$O(^KTO(LEVNr,TOENr,LijnNr)) Quit:LijnNr="" Do ...Set R=^KTO(LEVNr,TOENr,LijnNr),PRNr=$P(R,D,2) Quit:'PRNr ...Set KortTxt=$P(^KPR(PRNr,0),D) ...If ('$D(^KPR(PRNr,"W 0.0T"_ToeDat_TOENr_$J(LijnNr-100,3)))) Do Quit ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"W-node ",$ZR," onbekend",!,?8,"Toelev = ",TOENr,?29,"Lijn = ",LijnNr ...If $P(^KPR(PRNr,"W 0.0T"_ToeDat_TOENr_$J(LijnNr-100,3)),D,5)'=$P(R,D,3) Do ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"W-node ",$ZR," aantal verschillend",!,?8,"Toelev = ",TOENr,?29,"Lijn = ",LijnNr,?50,"Aantal = ",$P(@$ZR,D,5)," <> ",$P(R,D,3) ...If $P(^KPR(PRNr,"W 0.0T"_ToeDat_TOENr_$J(LijnNr-100,3)),D,6)'=$P(R,D,25) Do ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"W-node ",$ZR," levert verschillend",!,?8,"Toelev = ",TOENr,?29,"Lijn = ",LijnNr,?50,"Levert = ",$P(@$ZR,D,6)," <> ",$P(R,D,25) ...If ''$P(^KPR(PRNr,"W 0.0T"_ToeDat_TOENr_$J(LijnNr-100,3)),D,7)'=''$P(R,D,27) Do ....Set Check=0 ....Do wKORTTXT^zbcheck ....Write !!,"W-node ",$ZR," type toelevering verschillend",!,?8,"Toelev = ",TOENr,?29,"Lijn = ",LijnNr,?50,"Type = ",$S(''$P(@$ZR,D,3):"Kom",1:"Stk")," <> ",$S(''$P(R,D,27):"Kom",1:"Stk") Quit ; CHECK() New Set Check=1 Do ZBCHKWN Quit Check ;