KTWL1 G 1 ;MODULE WIJZIGEN TOELEVERINGSLIJNEN PRODUKTEN (OPVRAGEN GEGEVENS) [ 04/04/2002 1:42 PM ] ; S1 S X=0 S1A S X=X+1,UP=$P(TUM,D,X) G S1Z:UP="",S1A:'$D(@$P(UP,U,1)) S FP=UL*100+1+$P(UVV,",",$P(UP,U,2)) W @F S1B I $P(UP,U,3)="L" W @$P(UP,U,1) W:$P(UP,U,1)'="U26" $E(BLA,1,$P(UVV,",",($P(UP,U,2)+1))-$P(UVV,",",$P(UP,U,2))-1-$L(@$P(UP,U,1))) G S1A S1C W $J(@$P(UP,U,1),$P(UVV,",",($P(UP,U,2)+1))-$P(UVV,",",$P(UP,U,2))-1) G S1A S1Z Q ; C1 S FP=2454+F60 W @F,@F2,"[] = ok" Q C2 S FP=2454+F60 W @F,@F2,"of kort% [] = ok" Q ; R0 S R7="K'[D&(K'?.E1C.E)" S:$P(R,D,8)'="" R7=R7_"&("_$P(R,D,8)_")" S:$P(R,D,7)'="" R7=R7_"&("_$P($T(@$P(R,D,7))," ",2,99)_")" R0A S R2=$P(R,D,2),R3=$P(R,D,3),R4=$P(R,D,4),R5=$P(R,D,5),R6=$P(R,D,6) R0B S R0=$L(R4)+R3+3 S FP=R2*100+R3+F60 W @F W:R3<4 @F1 W @F2,R4," : " I R5'="" W:R5["""" !,?2,@R5 D:R5'["""" @R5 R0C S FP=R2*100+R0+F60 W @F,@F2 W $E("........................................",1,R6),@F,@F0 R0D R K W @F2 I $L(K)'>R6,@R7 S @$P(R,D,1)=K R0E E G R0C R0F S FP=$P(R,D,9)*100+($P(R,D,10)*1) I FP W @F,$J("",R6),@F,K R0Z K R,R0,R2,R3,R4,R5,R6,R7 Q ;V4 03.10.84 ; 1 New PAOld Set PAOld=PA G 30:"WL"'[SWLPA S K=$G(AutoInp) I K="" S R="K\23\54\LEVERT \C1\5" D R0 G YZ:K="," I K="-" G 3^KTWL:'$G(ScrolToe),YZ I "?"'[K D VALDATE^vhDTyp(K,"DW",$H-7) G 1:'%TC S:K?.N&($P(%EXT,"/",2)<%WK) $P(%EXT,"/")=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp(,"J","+1"),"J") S K=%EXT 5 I $L(K) D .S:K="?" K=" ? " S ULT=K .I $G(AutoInp)="" S FP=2039+F60 W @F," ",@F,ULT .I '$D(OrdLevT) S OrdLevT=$$ORDLEVT(ULT,U2) 30 S K="" I "WP"[SWLPA S R="K\23\54\AANK PR\C2\9\\""-,""[K!(K?.N)!(K?.N1"".""1N)!(K?.N1"".""2N)!(K[""%""&(+K'>100)&(+K?.N!(+K?.N1"".""1N)!(+K?.N1"".""2N)))\\" D R0 G YZ:K="," I K="-" G 1:SWLPA="W",YZ 31 S U26=$P(U2,D,26) G 32:'$L(K) S (U26,PK1,PK2)="" I K["%" S PA=UEP*(100-K)/100,PA=$J(PA,0,2),PK1=+K G 312 310 S PA=K S:UEP PK1=1-(PA/UEP)*100,PA=$J(PA,0,2) 312 S FP=2164 W @F,@F2 I PK1 W $J(PK1,4,2)," %" S U26="*" 314 S FP=2264 W @F,@F2,PA," ",UMC,"/",USP 32 S UA=$P(U2,D,3) G 35:"WA"'[SWLPA S FP=2354 W @F,@F2,"AANTAL : ",UA 33 S R="K\24\54\AANTAL \\6\\""-,""[K!(K?.N&(K>0))\\" D R0 G 30:K="-"&(SWLPA="W"),YZ:K="-",YZ:K="," I K S UA=K 35 S UR=$P(U2,D,27),UUZ=$P($P(U2,D,28),";") D KWNODE^FLOWTOE(LC,TR,UVN) 351 G 36:'UR S KC=$P(@("^"_Q_"O1(UR,""F"")"),D,1),X=@("^"_Q_"OD(KC,""F"",UR,1)") S UOD=$TR($$EXTDATE^vhDTyp($$INTDATE^vhDTyp($P(X,D,2)),"DS"),D,"") 354 L (@("^"_Q_"TO(LC,TR)"),@("^"_Q_"OD(KC,""F"",UR)")):2 E S FP=2403+F60 W @F,@F2,@F4,"ORDER ",UR," IS IN GEBRUIK [] = OK ",@F5 R K G 354 D KWNODE^FLOWORD(KC,UR,UUZ) 356 S X=@("^"_Q_"OD(KC,""F"",UR,UUZ)"),OldOrderAantal=$p(X,D,3),OldOrderLevertermijn=$p(X,D,25) I UA'=$P(U2,D,3) S X=$P(X,D,1,2)_D_UA_D_$P(X,D,4,8)_D_($J($P(X,D,9)/$P(X,D,3)*UA,0,2))_D_($J($P(X,D,10)/$P(X,D,3)*UA,0,2))_D_$P(X,D,11,15)_D_($J($P(X,D,16)/$P(X,D,3)*UA,0,2))_D_$P(X,D,17,99) I $L($G(OrdLevT)),$P(@("^"_Q_"OD(KC,""F"",UR,1)"),D,25)'="C" D .S:$P(X,D,29)="" $P(X,D,29)=$P(X,D,25) S $P(X,D,25)=OrdLevT S @("^"_Q_"OD(KC,""F"",UR,UUZ)")=X D SWNODE^FLOWORD(KC,UR,UUZ) New OrderID,OrderLijnID,KlantID,ProductID,WijzigingTypes,ProductOrderLijnWijzigEventData,ProductOrderLijnGewijzigdEvent Set OrderID=UR,OrderLijnID=UUZ,KlantID=KC Set WijzigingTypes = ##class(DOM.VKP.impl.ProductOrderLijnWijzigingTypes).%New() Do:OldOrderAantal'=UA WijzigingTypes.Insert(##class(DOM.VKP.enu.ProductOrderLijnWijzigingType).Aantal()) If $L($G(OrdLevT)),OldOrderLevertermijn'=$G(OrdLevT) Do WijzigingTypes.Insert(##class(DOM.VKP.enu.ProductOrderLijnWijzigingType).Leverdatum()) If (WijzigingTypes.Count() > 0) { Do ProductOrderLijnWijzigingen^FLOWORD2(KlantID, OrderID, OrderLijnID, WijzigingTypes) } D:UA'=$P(U2,D,3) RecalcCommKort^FLOWMANL("KOD",KC,UR) I $L($G(OrdLevT)),$$ASKTEKST^KF2(UR) D .S X="",$P(X,D,5)="Wijziging toelevering",$P(X,D,15)=$$UNIEKLNR^FLOWORD(KC,UR) .S $P(X,D,17)="KF11\"_$P($H,",",2)_";T;;",$P(X,D,36)="" .S UUZ=^KOD(KC,"F",UR,0),^(0)=UUZ+1,^(UUZ)=X I $D(@("^"_Q_"OD(0,""F"",3)")) S URLC=UR D @^(3) 36 S:ULT'=$P(U2,D,25)&'$L(ULTA) ULTA=$P(U2,D,25) G 37:ULT=$P(U2,D,25)!('$P(U2,D,27)) 360 I '$D(@("^"_Q_"TOK(LC,TR,UVN)")) S @("^"_Q_"TOK(LC,TR,UVN)")=$P(U2,D,25)_D_ULT_D_1_D_$P(U2,D,27,28)_D G 37 362 S X=^(UVN),X=$P(X,D,1)_D_ULT_D_($P(X,D,3)+1)_D_$P(X,D,4,99),^(UVN)=X 37 S X=@("^"_Q_UGL_"(LC,TR,1)"),UN=$J(PA*UA/$P("1\100\1000",D,$F("EHM",USP)-1),0,2),UBE=$J($P(U2,D,16)/$P(U2,D,3)*UA,0,2),UK="" S:PK1 UK=$J(PK1,4,1) S:PK2 UK=UK_" "_$J(PK2,4,1) 38 S:ULT'=$P(U2,D,25) $P(U2,D,24)="G" S R=U2 S U2=$P(U2,D,1,2)_D_UA_D_$P(U2,D,4,6)_D_PK1_"#"_PK2_D_$P(U2,D,8)_D_UN_D_UN_D_$P(U2,D,11,15)_D_UBE_D_$P(U2,D,17,24)_D_ULT_D_U26_D_$P(U2,D,27,28)_D_ULTA_D_$P(U2,D,30,99),^(UVN)=U2 D SWNODE^FLOWTOE(LC,TR,UVN) New ToeleveringID,ToeleveringLijnID,LeverancierID,WijzigingTypes Set ToeleveringID=TR,ToeleveringLijnID=UVN,LeverancierID=LC Set WijzigingTypes = ##class(DOM.AKP.impl.ProductToelevLijnWijzigingTypes).%New() Do:$P(R,D,3)'=UA WijzigingTypes.Insert(##class(DOM.AKP.enu.ProductToeleveringLijnWijzigingType).Aantal()) Do:PAOld'=PA WijzigingTypes.Insert(##class(DOM.AKP.enu.ProductToeleveringLijnWijzigingType).Prijs()) Do:$P(R,D,25)'=ULT WijzigingTypes.Insert(##class(DOM.AKP.enu.ProductToeleveringLijnWijzigingType).Leverdatum()) If (WijzigingTypes.Count() > 0) { Do ProductToeleveringLijnWijzigingen^FLOWTOE2(LeverancierID, ToeleveringID, ToeleveringLijnID, WijzigingTypes) } I LC=6332,"WL"[SWLPA D MODBATCH(TR,$P(U2,D,15)) 39 K UEP,USP I '$G(ScrolToe) D S1 G 3^KTWL ; YZ K UO,U2,UR,UUZ,KC,UN,UMC,MSG,PGV,PST,PC,PR,PN,PRE,PSN,PY,PK1,PK2,Q15,Q16,UA,UK,UEP,UBE,TOD,UOD,UOR,ULT,ULTA,U26,X K OrdLevT,OldOrderAantal,OldOrderLevertermijn L @("^"_Q_"TO(LC,TR)") Q Q ; DEFAULT(K) New %TC,%EXT,%INT If K="L" Do Quit K .Set FP=$P(UD,D,2)+1*100+1 W @F,@F1 .For Do Quit:K="-"!$G(%TC) ..Set FP=2103 Write @F,"Huidige week : ",$$EXTDATE^vhDTyp($H,"DW") ..Set R="K\23\3\LEVERWEEK VOOR DE VOLLEDIGE TOELEVERING\\5\\$L(K)" ..Do R0 Quit:K="-" ..Do VALDATE^vhDTyp(K,"DW") ..If %TC Set:K?.N&($P(%EXT,"/",2)<%WK) $P(%EXT,"/")=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp(,"J","+1"),"J") Set K=%EXT .Set FP=$P(UD,D,2)+1*100+1 W @F,@F1 Quit "-" ; ORDLEVT(LevT,Rec) New R,KLNr,ORDNr,OLNr,LeverDagOrder,VerzendWijze,LandCode,PostCode,blVerzendWijze,blLeveringsTermijn Set ORDNr=$P(Rec,D,27),OLNr=$P(Rec,D,28) If ORDNr,OLNr Set KLNr=$P(^KO1(ORDNr,"F"),D) If $P(^KOD(KLNr,"F",ORDNr,1),D,25)="C" Set K="" Else Do .If LevT=$P(Rec,D,25)!'$P(Rec,D,27) Set K="" Quit .Set LeverDagOrder=$P(^KOD(KLNr,"F",ORDNr,OLNr),D,25) .Set VerzendWijze=$$DEFAULT^KLVERZW(,KLNr) .Set LandCode=$$LAND^vhRtn1(KLNr,"K") .Set PostCode=$P(^KKL(^KK1(KLNr),0),D,6) .Set blVerzendWijze=##class(DOM.VKP.VerzendWijze).%New(KLNr,VerzendWijze,LandCode,PostCode) .Set blLeveringsTermijn=##class(DOM.VKP.LeveringsTermijn).%New(,blVerzendWijze) .Set K=$$GetLeverDag^FLOW3(KLNr,,$$CALCDATE^vhDTyp($$INTDATE^vhDTyp(LevT,"DW"),"W",0,"LA"),,$LB(LeverDagOrder),"Leverdag order ('-' is onveranderd "_$$EXTDATE^vhDTyp(LeverDagOrder)_")") Quit K ; MODBATCH(TOENr,TLUNr) Quit New R,LEVNr,TLNr,OldBatch,NewBatch,VolgNr,Quit,ProdWk,FabKey Set LEVNr=$P(^KTO1(TOENr),D),TLNr=^TO("IU",TOENr,TLUNr) Set R=^KTO(LEVNr,TOENr,TLNr),PRNr=$P(R,D,2),NewBatch=$P($P(R,D,25),"/",2)_" " Set FabKey=$$FABKEYT^HADOPV(TOENr,TLUNr) Set OldBatch=$P($G(^HADPR("F",FabKey)),D) If $L(OldBatch),$E(OldBatch,1,2)'=$E(NewBatch,1,2) Do .Set (VolgNr,Quit)=0 .For Set VolgNr=$O(^HADPR("O",OldBatch,VolgNr)) Quit:VolgNr="" Do Quit:Quit ..Set R=^HADPR("O",OldBatch,VolgNr) ..If $P(R,D,6)=TOENr,$P(R,D,5)=TLUNr Set Quit=1 .Do:VolgNr ..Kill ^HADPR("O",OldBatch,VolgNr) ..Set $P(R,D,8)=NewBatch,VolgNr=$O(^HADPR("O",NewBatch,""),-1)+1,^HADPR("O",NewBatch,VolgNr)=R .Set $P(^HADPR("F",FabKey),D)=NewBatch .If '$D(^HADPR("B",NewBatch)) Do ..Set R="Week "_$E(NewBatch,1,2)_D_$H,ProdWk=$$INTDATE^vhDTyp(NewBatch,"DW") ..Set R=R_D_$$CALCDATE^vhDTyp($$CALCDATE^vhDTyp(ProdWk,"W","FD"),"A","-0") ..Set R=R_D_$$CALCDATE^vhDTyp($$CALCDATE^vhDTyp(ProdWk,"W","LD"),"A","+0") ..Set ^HADPR("B",NewBatch)=R Quit ;