FLOWORD43 ;Order [ 06/30/2003 2:41 PM ] ; ; Wijzig lijn LMODIFY(Input,Default) New PRNr,LEVNr Quit:'$D(Detail) Set K=^KOD(KLNr,"F",ORDNr,Detail(@DL(1)@(6))) If $P($P(K,D,17),"#")="KF11" Do WIJZIG^FLOWTEXT(Q_UGL,ORDNr,Detail(@DL(1)@(6)),"FLOWORD") Quit Do .Set PRNr=$P(K,D,2),LEVNr=$$LEVNR^PRODUKT2(PRNr) .If Input'="P",LEVNr'=6332,$$CHECKWMS^FLOW(,,ORDNr,Detail(@DL(1)@(6)),,,1) Quit .Set Default=$G(Default) .Do SCROL^KF2(Detail(@DL(1)@(6)),Input,Default) .If Input="A"!(Input="L") Do LRECALC^FLOWORD(KLNr,ORDNr,Detail(@DL(1)@(6)),2) If @DL(1)@(6)=@DL(1)@(9) Do EL^PROC Quit Set DL(2)="DO" Do ML^PROC Kill DL(2) Quit ; ; Wijzig alle lijnen AMODIFY(Input) New Default Quit:'$D(Detail) Set Input=$E(Input,2) Quit:Input'="L" If Input="L" Do .Do DL^PROC .Set Default=$$DEFAULT^KF2AD(Input) .Do EL^PROC Quit:Default="-" Set DL(2)="HO" Do ML^PROC Kill DL(2) For Do If @DL(1)@(6)=@DL(1)@(9) Do Quit .If '$P(^KOD(KLNr,"F",ORDNr,Detail(@DL(1)@(6))),D,2) Set DL(2)="DO" Do ML^PROC Kill DL(2) Quit .Do LMODIFY(Input,Default) Quit ; ; KS kwantumkorting voor tandembox KSTBXKWK(KLNr,ORDNr,OLNr,Display,KortTyp,ORecalc) New K,R,Rec,BrutoPr,OrdDat,OrdMunt,LijnMunt,PrMunt,Closed,PRNr,TbxAant,Aantal,Prijs New Netto,Bruto,Eenheid,LevTerm,Round,OrdTyp,KortTxt,OudePr,NieuwePr,TempLNr Set ORecalc=$G(ORecalc) If '$D(KlMunt)!'$D(IsHandel) New KlMunt,IsHandel Do INITKL^FLOWORD2 New SpecPrys,Korting,Korting1,Korting2,OptKort Set (OLNr,TempLNr)=$G(OLNr),Display=$G(Display),KortTyp=$G(KortTyp) If Display Set FP=UL*100+1 Write @F,@F1 Set R=^KOD(KLNr,"F",ORDNr,1),OrdDat=$P(R,D,2),OrdMunt=$P(R,D,18),Closed=$P(R,D,22) Set OrdTyp=$P(R,D,25),BrutoPr=$P(R,D,27) Do:$$ISKLANT^KS(KLNr) .If OLNr Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) If PRNr Quit:'$$ISTBX^PRODUKT2(PRNr) ; Is de toegevoegde of gewijzigde lijn een TB .Set TbxAant=0,OLNr=100 ; Totaliseren van de aantallen .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do ..Set Rec=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(Rec,D,2) ..Quit:'PRNr Quit:'$$ISTBX^PRODUKT2(PRNr) ..Set TbxAant=TbxAant+$P(Rec,D,3) .Quit:'TbxAant .Do:Display DL^PROC .Set OLNr=100 ; Invullen van de kwantumkorting .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do ..Set Rec=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(Rec,D,2) ..Quit:'PRNr Quit:'$$ISTBX^PRODUKT2(PRNr) ..Quit:$P(Rec,D,26)="*" Quit:$P(Rec,D,26)="=" ..If $L(KortTyp),$P(Rec,D,26)'=KortTyp Quit ..Set LijnMunt=$P(Rec,D,22) If Closed,OrdMunt'=LijnMunt,KlMunt'="MTL" Quit ..Set Aantal=$P(Rec,D,3),Round=$P(Rec,D,21),LevTerm=$P(Rec,D,25),SpecPrys=$P(Rec,D,26) ..Set (Korting1,Korting2,SpecPrys)="" ..Do STORE^vhTERMINA() ..Set R=$$GetKorting^KORTING(KLNr,PRNr,"N",OrdDat,TbxAant,LevTerm,$S(Display:"D",1:"")) ..Do REFRESH^vhTERMINA() ..Set Korting1=$LG(R,2),Korting2=$LG(R,3),OptKort=$S($LG(R,6)="O":"O",1:""),R=$P(Rec,D,7) ..If '$L(KortTyp),"O"'[$P(Rec,D,26),Korting1+Korting2'>($P(R,"#")+$P(R,"#",2)) Quit ..Set R=$$PROD^KPRIJS(PRNr,Korting1,Korting2,KlMunt,BrutoPr,IsHandel) ..Set Prijs=$J($P(R,D),0,2),PrMunt=$P(R,D,2) ..If Closed,OrdMunt'=PrMunt,'ORecalc Do Quit ...Set R=$$TXTPOP^FLOW("ORECALC","","OrdMunt","PrMunt") ..Set Korting1=$P(R,D,5),Korting2=$P(R,D,6),Round=$P(R,D,10),Eenheid=$P(R,D,11) ..If Prijs=$P(Rec,D,6),Korting1=$P($P(Rec,D,7),"#"),Korting2=$P($P(Rec,D,7),"#",2) ..Else If Closed,OLNr'=TempLNr Do Quit:$$^vhTXTPOP("FLOWORD","KSTBXKWK","",KortTxt,OudePr,NieuwePr) ...Set KortTxt=$P(^KPR(PRNr,0),D) ...Set OudePr=$P(Rec,D,6),NieuwePr=Prijs ...Set:$P($P(Rec,D,7),"#") OudePr=OudePr_" ("_$$FMTKORT^FLOW($P($P(Rec,D,7),"#"),$P($P(Rec,D,7),"#",7))_"%)" ...Set:Korting1 NieuwePr=NieuwePr_" ("_$$FMTKORT^FLOW(Korting1,Korting2)_"%)" ..Set Netto=$J(Aantal/Eenheid*Prijs,0,2) ..If BrutoPr Set Prijs=$J($P(R,D,4),0,2),Netto=$J(Prijs*(100-Korting1)/100*(100-Korting2)/100*Aantal/Eenheid,0,2) ..Set Bruto=$J(Aantal/Eenheid*Prijs,0,2),Korting=Korting1_"#"_Korting2 ..If Display Do CALCTOT^FLOW(-$P(Rec,D,9),$P(Rec,D,22),1) ..Set $P(Rec,D,6)=Prijs,$P(Rec,D,7)=Korting,$P(Rec,D,9)=Netto,$P(Rec,D,10)=Netto,$P(Rec,D,16)=Bruto ..If KlMunt="MTL" Set ($P(Rec,D,22),LijnMunt)=PrMunt ..If Display Do CALCTOT^FLOW(Netto,$P(Rec,D,22),1) ..If OrdTyp="C"!(OrdTyp="A") Set OptKort="=" ..Set $P(Rec,D,21)=Round,$P(Rec,D,26)=OptKort ..Set ^KOD(KLNr,"F",ORDNr,OLNr)=Rec ..If Closed,OrdMunt'=LijnMunt Set R=^KOD(KLNr,"F",ORDNr,1),$P(R,D,18)=LijnMunt,^KOD(KLNr,"F",ORDNr,1)=R .If Display Do WL^PROC Quit ; TBXAANT(KLNr,ORDNr,Date) New R,OLNr,Rec,PRNr,TbxAant Set ORDNr=$G(ORDNr),Date=$G(Date,+$H),TbxAant=0 If ORDNr Do .Set Rec=^KOD(KLNr,"F",ORDNr,1),OLNr=100 .Quit:$$INTDATE^vhDTyp($P(Rec,D,2))'=Date .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do ..Set Rec=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(Rec,D,2) ..If PRNr,$$ISTBX^PRODUKT2(PRNr) Set TbxAant=TbxAant+$P(Rec,D,3) Else For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Set TbxAant=TbxAant+$$TBXAANT(KLNr,ORDNr,Date) Quit TbxAant ;