KF0AD ; MODULE REGISTREREN PRODUKTLIJNEN ORDERS - levering per dag (OPVRAGEN GEGEVENS); Quit naar %F10 - Go naar KF0 [ 09/24/2003 2:14 PM ] ; COMPDATE(Val,Op,Ref) Set Val=$$INTDATE^vhDTyp(Val,"DW"),Ref=$$INTDATE^vhDTyp(Ref,"DW") Q $$COMPDATE^vhDTyp(Val,"W",Op,Ref) ; S3 I $L(BackGrnd) D IDPROD^KF0 S R=BackGrnd D ^KF0268 S BackGrnd="" S R="UA\"_(23+L24)_"\54\AANTAL \C3\7\\$L(K)&(""-""[K!(K?.N)!(K?1""-"".N))!(K=""""&$G(BEV))&(K'=0)\\" D R0 I K="",BEV S (UA,K)=BEV G S3Z:"-,"[K ;I 'PSN,UAF,K>PraStock G S3 I $G(UitVerkoop),K>PraStock G S3 I 'PSN G S3:K(PST+PY-PRE)) I K>(PST+PY-PRE),K>$P(X,D,6) G S3:K#$P(X,D,16) I $G(CheckKs),$$ISKLANT^KS(KC),'$$CheckMinQty^KS(PR,UA) G S3 Q:PERSTUK=1 S3A ;I KYW,PKV I UA#PKV S FP=2454+F60 W @F,@F4,"AANT VEELV NP [] = ok ",@F5,@F0 R K G S3 ; Test handel en verpakking tijdelijk afgesloten cw 16.10.07 S3Z Q ; S4 N %SC,Impuls,MinAfn D NIEUW^vhScherm("KPBI","","","","","",3) S K=$S('%SC:"-",'MinAfn:Impuls,UA#MinAfn:"-",1:Impuls) I MinAfn,UA#MinAfn D TXTL^vhINP("FLOW","MINAFNAME") Q ; 28 N PERSTUK,NoModAantal,ULTTemp,UitVerkoop 29 K BEV S ULTE="" F FP=2339,2439 W @F,@F2 Set UitVerkoop=$P(^KPR(PR,0),D,6) Set:UitVerkoop>$H UitVerkoop="" 30 I $L($G(LevTerm)) S K="" K LevTerm E S R="K\23\54\LEVEREN\C1\8\\" D R0 G YZ:K="-",47:K="," S K=$S(K="":$S(ULT:ULT,1:K),1:$$INTDATE^vhDTyp(K)) G 30:'K S K=$$EXTDATE^vhDTyp(K) I $L(K) D VALDATE^vhDTyp(K,"DK",$H) G 30:'%TC I '$$ISARBDAG^vhRtn2(%INT),'$$^vhTXTPOP("FLOW","NOARBDAG","",%EXT) G 29 I $L(K) Do I ULT="" S ULT=ULTTemp G 29 .S ULTTemp=ULT,ULT=%INT .Quit:UTYP="C" Quit:UTYP="A" .If ##Class(DOM.CRM.impl.KlantVerlofPeriode).IsVerlofDag(KC,%INT) Set:'$$^vhTXTPOP("FLOW","KLVERLOF","",%EXT,$P(^KKL(^KK1(KC),0),D,2)) ULT="" Quit ; Verlof klant .Quit:$$DIFFDATE^vhDTyp($$EXTDATE^vhDTyp(DefLeverDag),%EXT,"DK")\7'>10 .Quit:$$^vhTXTPOP("FLOWORD","PLUS10WEKENPD","",%EXT,$J($$DIFFDATE^vhDTyp($$EXTDATE^vhDTyp(DefLeverDag),%EXT,"DK")\7+.5,0,0),$$EXTDATE^vhDTyp(DefLeverDag)) ; Ingegeven leverweek is meer dan 10 weken te ver .Set ULT="" 31 I UTYP="C" D G 29:K="-",47:K="," I $L(K) S ULTE=K .I $L(BackGrnd) D IDPROD^KF0 S R=BackGrnd D ^KF0268 S BackGrnd="" .S ULTE=ULT .I $D(DefLevM),DefLevM>ULTE S ULTE=DefLevM .I $G(URO) S R=$$GELDTOT^FLOWOFF(URO) .E S R=$$CALCDATE^vhDTyp(ULT,"W","+26") .I ULTE(PST-$P(PRE,"#",2)) S ULT=ULTT,FP=2313+F60 W @F," ",@F,ULTT G 29 350 G 36:'PSN S ULTT=$$INTDATE^vhDTyp(%WK,"DW")+(PLL+1*7) S ULTT=$$EXTDATE^vhDTyp(ULTT,"DW") I $$COMPDATE(ULTT,"]",ULT) G 36:UA'>(PST-$P(PRE,"#",2)) I UA'0 D S4 G 33:K="-",47:K="," S KOMM="" I 'PSN,UAF,UA>0 D G 33:TOENr="-" I TOENr S KOMM=1 S ULT=$$MODTOE(KC,UR,PR,TOENr,ULT,UA) .S TOENr=$$TOELEV(KC,UR,PR) .I TOENr="-" D IDPROD^KF0 S R=ProdGeg D ^KF0268 I $L(ULTE) S K=ULT,ULT=ULTE,ULTE=K S:'AFE AFE=1 38 S POSR=$P(^KPR(PR,0),D,10) ; Speciaal rekeningnummer product S:$P($$GETALG^DEFAULTS("KF0","POHALUX"),D)=KC POSR=$P($$GETALG^DEFAULTS("KF0","POHALUX"),D,2) ; Speciaal rekeningnummer voor Halux I $L(POSR),$E(POSR,$L(POSR))'=" " S POSR=POSR_" " S UN=$J(UEP/AFE*UA,1,2) I KKN S UEP=PLP,UN=$J(UEP*(100-PK1)/100*(100-PK2)/100*UA/AFE,1,2) 39 S UC=PR,UBE=$J(UEP/AFE*UA,1,2),(B(101),B(111))=$S($L(POSR):POSR,1:PO) S B(102)=PR,B(103)=UA,B(104)=UE,B(106)=UEP,B(107)=PK1_"#"_PK2,B(108)=PB 41 S (B(109),B(110))=UN,B(114)=VWTYP,B(116)=UBE,B(112)="L",B(117)="KF0",B(121)=USP S B(122)=UMC,B(124)=1,(B(125),DefLeverDag)=ULT,B(129)=ULTE,B(131)=$G(PakketNr) S B(126)=$S($G(NoRecalc):"=",1:$G(NoRecalc)) 43 I KV="MTL" S UN=$J(UN*UPAR/LPAR,1,2) 45 S UTOT=UTOT+UN D SHOWTOT^KFTOT(UTOT) S UK="" S:PK1 UK=$J(PK1,4,1) S:PK2 UK=UK_" "_$J(PK2,4,1) If $G(Mirror),'$P(Mirror,D,2) Set $P(Mirror,D,2)=UA If '$G(Mirror),'$G(AutoOrd),'$G(CopyOffOrOrd) Do ; Verwerken van het eventueele spiegelproduct . New MirrorPRNr,MirrorLine . Set MirrorPRNr=$$GetMirror^PRODUKT(PR) . If 'MirrorPRNr Kill Mirror Quit . Set MirrorLine=$$MirrorLine^FLOWORD(KC,UR,PR) . If 'MirrorLine Do ; Het spiegelproduct bestaat nog niet . . Set Mirror=$$AddMirror^PRODUKT(PR,UA) . . If Mirror Set Mirror=$TR(Mirror,"#",D)_D_ULT . . Else Kill Mirror . Else If $P(^KOD(KC,"F",UR,MirrorLine),D,3)'=UA,$$ModMirror^PRODUKT(PR,UA) Do ; Het spiegelproduct bestaat reeds, aantal aanpassen? . . Do KWNODE^FLOWORD(KC,UR,MirrorLine) . . Set R=^KOD(KC,"F",UR,MirrorLine) . . Set UTOT=UTOT-$P(R,D,9) . . Set $P(R,D,9)=$J($P(R,D,9)/$P(R,D,3)*UA,0,2) . . Set $P(R,D,10)=$J($P(R,D,10)/$P(R,D,3)*UA,0,2) . . Set $P(R,D,16)=$J($P(R,D,16)/$P(R,D,3)*UA,0,2) . . Set $P(R,D,3)=UA,^KOD(KC,"F",UR,MirrorLine)=R . . Set UTOT=UTOT+$P(R,D,9) . . Do SWNODE^FLOWORD(KC,UR,MirrorLine),SHOWTOT^KFTOT(UTOT) 47 I K="," S K="-" ; YZ K AFA,AFE,AFR,KPC,GR,OGR,BGR,KKD,UPAR,MSG,PKP,PLL,PST,PB,PLQ,PC,PR,PK1,PK2,PLP,PPL,PID,PRE,PSN,PVK,PGV,PNV,PKV,PY,Q15,BEV,POSR K S,SW25,UE,UN,UAF,UOD,UOR,UVM,ULTT,ULTE,X,UTYP,L24,%TC,%INT,%EXT,KOMM,NoRecalc L @("^"_Q_UGL_"(KC,US,UR)") Q ; TOELEV(KLNr,ORDNr,PRNr) New R,LEVNr,TOENr,DL,LD,KlantNm,Munt,OrdDat Set OrdDat=$P(^KOD(KLNr,"F",ORDNr,1),D,2) Set R=$O(^KPR(PRNr,"J")),R=^KPR(PRNr,R),LEVNr=$P(R,D),Munt=$P(R,D,17) Set TOENr="" For Set TOENr=$O(^KTO(LEVNr,TOENr)) Quit:TOENr="" Set R=^KTO(LEVNr,TOENr,1) If $P(R,D,8)=KLNr Set TOENr(TOENr)=TOENr Set DL(1)="LD",LD(1)="TOENr" Do RL^PROC1 Set LD(2)="1;N+;L;8;;| \1;C;L;10;; | ;;$P(^KTO(LEVNr,X,1),D,2)\1;C;L;25;; | ;;$P(^KTO(LEVNr,X,1),D,3)\1;C;L;25;;;;$P(^KTO(LEVNr,X,1),D,10)" Set LD(3)=25-$O(TOENr(""),-1) Set:LD(3)<20 LD(3)=20 Set:$O(TOENr(""))'="" LD(8)="Selekteer een toelevering - " Set LD(8)=$G(LD(8))_"N=nieuwe toelevering" Set:UA'>PraStock LD(8)=LD(8)_"- S=uit stock" Set LD(6)=1,R="" For Set R=$O(TOENr(R)) Quit:R="" If $P(^KTO(LEVNr,TOENr(R),1),D,7)=ORDNr Set LD(6)=R Quit Do WL^PROC For Do SL^PROC Quit:"\-\N\"[(D_R_D)!(R="ENTER"&($O(TOENr(""))'=""))!(R="S"&(UA'>PraStock)) If "\-\S\"[(D_R_D) Quit R If R'="N" Do Quit TOENr .Set TOENr=$P(TOENr(LD(6)),D),R=^KTO(LEVNr,TOENr,1) .Quit:$L($P(R,D,10)) .Set:LEVNr=5005 ^BLBeri("Z",TOENr)=LEVNr_D Set ^KTOB(TOENr)=LEVNr_D Set TOENr=$$GETNUM^FLOW("KTO","KTO1") Lock +^KTO(LEVNr,TOENr) Set KlantNm=$P(^KKL(^KK1(KLNr),0),D,2) Set R="",$P(R,D,25)=D,$P(R,D,2)=OrdDat,$P(R,D,3)="KOMM. "_KlantNm Set $P(R,D,6)=LEVNr,$P(R,D,7)=ORDNr,$P(R,D,8)=KLNr,$P(R,D,18)=Munt,$P(R,D,22)=2 Set ^KTO(LEVNr,TOENr,0)=101,^KTO(LEVNr,TOENr,1)=R Set ^KTO1(TOENr)=LEVNr_D,^KTO2(LEVNr,TOENr)="" Set:LEVNr=5005 ^BLBeri("Z",TOENr)=LEVNr_D Set ^KTOB(TOENr)=LEVNr_D Lock -^KTO(LEVNr,TOENr) Quit TOENr ; MODTOE(KLNr,ORDNr,PRNr,TOENr,KLevWeek,Aantal) New R,LIJNNr,LEVNr,Prijs,Korting,Netto,Bruto,Eenheid,Munt,ToeDat,ToeRef,LLevWeek,IK,%TC,IDNr,TLUNr,LeveringPerDag Set LEVNr=$P(^KTO1(TOENr),D),LeveringPerDag=KLevWeek?5N For Do ADD^vhLock("^KTO(LEVNr,TOENr)") Quit:%TC Do LDISP^vhLock("^KTO(LEVNr,TOENr)","Toelevering "_TOENr) Set OLNr=^KOD(KLNr,"F",ORDNr,0),LIJNNr=^KTO(LEVNr,TOENr,0) Set R=^KTO(LEVNr,TOENr,1),ToeDat=$P(R,D,2),ToeRef=$P(R,D,3) Set IDNr=$P(^KPR(PRNr,2),D,25) Set R=^KPR(PRNr,"J"_LEVNr),Prijs=$P(R,D,19),Korting=$P(R,D,9)_"#",Eenheid=$P(R,D,28),Munt=$P(R,D,17) Set R=$P(R,D,7) If $H#7'=4,R=1,LEVNr=5005,$E(IDNr)'=7 Set R=2 Set LLevWeek=$$INTDATE^vhDTyp($$EXTDATE^vhDTyp($H+(R*2),"DW"),"DW") Set:'LeveringPerDag KLevWeek=$$INTDATE^vhDTyp(KLevWeek,"DW") If KLevWeek'>LLevWeek Set KLevWeek=LLevWeek+7 Else Set LLevWeek=KLevWeek-7 Set LLevWeek=$$EXTDATE^vhDTyp(LLevWeek,"DW") Set:'LeveringPerDag KLevWeek=$$EXTDATE^vhDTyp(KLevWeek,"DW") Set Bruto=$J(Prijs*Aantal/$S(Eenheid="M":1000,Eenheid="H":100,1:1),0,2) Set Netto=Prijs-(Prijs*$P(Korting,"#")/100),Netto=Netto-(Netto*$P(Korting,"#",2)/100) Set Netto=$J(Netto*Aantal/$S(Eenheid="M":1000,Eenheid="H":100,1:1),0,2) Set R="",$P(R,D,35)=D,$P(R,D,2)=PRNr,$P(R,D,3)=Aantal,$P(R,D,6)=Prijs,$P(R,D,7)=Korting Set $P(R,D,9)=Netto,$P(R,D,10)=Netto,$P(R,D,12)="L",$P(R,D,16)=Bruto,$P(R,D,17)="KTRPL" Set $P(R,D,21)=Eenheid,$P(R,D,22)=Munt,$P(R,D,25)=LLevWeek,$P(R,D,27)=ORDNr New r Set r=$P(R,D,28),$P(r,";")=OLNr,$P(R,D,28)=r Set LIJNNr=^KTO(LEVNr,TOENr,0),^KTO(LEVNr,TOENr,0)=LIJNNr+1 Set $P(R,D,13)=LIJNNr-100,TLUNr=$$UNIEKLNR^FLOWTOE(LEVNr,TOENr),$P(R,D,15)=TLUNr Set ^KTO(LEVNr,TOENr,LIJNNr)=R Do SWNODE^FLOWTOE(LEVNr,TOENr,LIJNNr) Set Toelevering = ##class(DOM.DomeinContext).Instance().GeefToeleveringAPI().GeefToelevering(TOENr) Set ToeleveringModifiedEventData = ##class(TECH.Events.ToeleveringModifiedEventData).%New(Toelevering) Set ToeleveringModifiedEvent = ##class(TECH.Events.ToeleveringModifiedEvent).%New(ToeleveringModifiedEventData) Do ##class(TECH.PubSub.OrchestrationContext).GetEventRaiser().RaiseEventAsync(ToeleveringModifiedEvent) Set B(127)=TOENr,B(128)=LIJNNr Quit KLevWeek ; C1 S FP=2454 W:ULT'="?" @F,"[] = ",$$EXTDATE^vhDTyp(ULT) Q C2 S FP=2454 W @F,@F2,"[] = ",$$EXTDATE^vhDTyp(ULTE) Q C3 Q:L24 S FP=2454 w @F,@F1 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 ;