FLOWOFF4 ;Offerte [ 12/23/2003 2:05 PM ] ; ; KS kwantumkorting voor tandembox KSTBXKWK(KLNr,OFFNr,OFLNr,Display) New K,R,Rec,BrutoPr,OffDat,OffMunt,PRNr,TbxAant,Aantal,Prijs New Netto,Bruto,Eenheid,LevTerm,Round,OffTyp,NoSa, Klant, KlantID,IsKSKlant New SpecPrys,Korting,Korting1,Korting2,OptKort Set OFLNr=$G(OFLNr),Display=$G(Display) If Display Set FP=UL*100+1 Write @F,@F1 Set R=^KOFKL(KLNr,"F",OFFNr,1),OffDat=$P(R,D,2),NoSa=$$NoSa^FLOWOFF(KLNr,OFFNr) Set OffMunt=$P(R,D,18),OffTyp=$P(R,D,25),BrutoPr=$P(R,D,27) #dim KlantID As DOM.VKP.VanHoeckeKlantID = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) #dim IsKSKlant As %Boolean = '(##class(DOM.DomeinContext).Instance().GeefKlantTypeAPI().IsIndustriePoolKlant(KlantID)) #dim Klant As DOM.VKP.Klant = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(KlantID) Do:(IsKSKlant) .D ##class(vhLib.Logger).%New().Info("FLOWORD4","Kwantumkorting wordt berekend"_$C(13,10)_"Klant : "_KlantID_$C(13,10)_"Offerte : "_OFFNr_$C(13,10)_$$GetStackToString^vhLib.System()) .If OFLNr Set R=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(R,D,2) If PRNr Quit:'$$ISTBX^PRODUKT2(PRNr) ; Is de toegevoegde of gewijzigde lijn een TB .Set TbxAant=0,OFLNr=100 ; Totaliseren van de aantallen .For Set OFLNr=$O(^KOFKL(KLNr,"F",OFFNr,OFLNr)) Quit:'OFLNr Do ..Set Rec=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(Rec,D,2) ..Quit:'PRNr Quit:'$$ISTBX^PRODUKT2(PRNr) ..Set TbxAant=TbxAant+$P(Rec,D,3) .Quit:'TbxAant .Set OFLNr=100 ; Invullen van de kwantumkorting .For Set OFLNr=$O(^KOFKL(KLNr,"F",OFFNr,OFLNr)) Quit:'OFLNr Do ..Set Rec=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(Rec,D,2) ..Quit:'PRNr Quit:'$$ISTBX^PRODUKT2(PRNr) ..Quit:$P(Rec,D,26)="*" Quit:$P(Rec,D,26)="=" ..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,NoSa,OffDat,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) ..Set R=$$PROD^KPRIJS(PRNr,Korting1,Korting2,KlMunt,BrutoPr,IsHandel,NoSa,,,,Klant.GeefBusinessType()) ..Set Prijs=$J($P(R,D),0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) ..Set Korting1=$P(R,D,5),Korting2=$P(R,D,6),Round=$P(R,D,10),Eenheid=$P(R,D,11) ..Set Netto=$J(Aantal/Eenheid*Prijs,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) ..If BrutoPr Set Prijs=$J($P(R,D,4),0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()),Netto=$J(Prijs*(100-Korting1)/100*(100-Korting2)/100*Aantal/Eenheid,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) ..Set Bruto=$J(Aantal/Eenheid*Prijs,0,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()),Korting=Korting1_"#"_Korting2 ..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 OffTyp="C"!(OffTyp="A") Set OptKort="=" ..Set $P(Rec,D,21)=Round,$P(Rec,D,26)=OptKort ..Set ^KOFKL(KLNr,"F",OFFNr,OFLNr)=Rec .If Display Do WL^PROC Quit ; TRANS(OFFNr) New R,KLNr,KLNaam,OffDate,OFLNr,PRNr,Aantal,Prijs,GrOrde,Munt,KortTxt,LangTxt1,LangTxt2,Kleur,KLRef,File,Dev,IdentNr,CifPPL,Taal Set MetCifPPL=$$IO^cQ5()=1015 Set File="OFF"_OFFNr_".TXT",Dev=$$OPEN^vhDEV(,File,"W","A") If 0'[Dev Do .Set R=^KOFKL1(OFFNr,"F"),KLNr=$P(R,D),KLNaam=$P(^KKL(^KK1(KLNr),0),D,2),Taal=$P(^KKL(^KK1(KLNr),0),D,9),OFLNr=100 .Set R=^KOFKL(KLNr,"F",OFFNr,1),OffDate=$P(R,D,2) .Use Dev .Write KLNr,$C(9),KLNaam,$C(9),OFFNr,$C(9),OffDate,$C(10) .Write $TR("PRNr;IdentNr;Korttekst;Langtekst1;Langtekst2;Kleur;Ref;Aantal;Prijs;Munt;Verpak;MinBH;LevTrm",";",$C(9)),$C(10) .For Set OFLNr=$O(^KOFKL(KLNr,"F",OFFNr,OFLNr)) Quit:OFLNr'?3N Do ..Set R=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(R,D,2) ..Quit:'PRNr Quit:'$D(^KPR(PRNr)) ..Set Aantal=$P(R,D,3),Prijs=$P(R,D,6),GrOrde=$P(R,D,21),Munt=$P(R,D,22) ..Set Prijs=Prijs/$S($E(GrOrde)="M":1000,$E(GrOrde)="H":100,1:1) ..Set KeyJ=$O(^KPR(PRNr,"J")) ..Set PrijsGeg=$$PRIJSGEG^KPRIJS(PRNr,"S") ..Set CifPPL=$P(PrijsGeg,D,6) ..Set R=^KPR(PRNr,0),KortTxt=$P(R,D) ..Set R=$$GETOMSCH^PRODUKT2(PRNr,Taal),LangTxt1=$P(R,D),LangTxt2=$P(R,D,2) ..Set IdentNr=$P(^KPR(PRNr,2),D,25) ..Set GrootVerpak=$P(^KPR(PRNr,KeyJ),D,16) ..Set MinBH=$P(^KPR(PRNr,KeyJ),D,6) ..Set LevTrm=$P(^KPR(PRNr,KeyJ),D,7) ..Set Stock=$P(^KPR(PRNr,1),D,20) ..Set:Stock (MinBH,LevTrm)="" ; stockproduct ..Set Kleur=$$OMSCHR^PRKLEUR(PRNr,Taal) ..Set KLRef=$$DISP^PAKKET(KLNr,PRNr) ..Use Dev ..Write PRNr,$C(9),IdentNr,$C(9),KortTxt,$C(9),LangTxt1,$C(9),LangTxt2,$C(9),Kleur,$C(9),KLRef,$C(9) ..Write Aantal,$C(9),$TR(Prijs,".",","),$C(9),Munt,$C(9),GrootVerpak,$C(9),MinBH,$C(9),LevTrm ..Write:MetCifPPL $C(9),$TR(CifPPL,".",",") ..Write ! .Close Dev Else Write !,File," niet beschikbaar!" Quit ;