CEURORD ; Conversie naar Euro (orders) ;[ 01/03/2002 9:35 AM ] Quit ; ONECUST(KLNr,NoTxtPop,vhLock) New %TC,R,KlRef,KlNaam,KlMunt Set KLNr=$G(KLNr),NoTxtPop=$G(NoTxtPop),vhLock=$G(vhLock) Set:'KLNr KLNr=$$SELECT^KLANT6() If KLNr,$D(^KOD(KLNr)) Do .Set KlRef=^KK1(KLNr),R=^KKL(KlRef,0),KlNaam=$P(R,D,2),KlMunt=$P(R,D,11) .Set:KlMunt="" KlMunt=$$FADEF^vhRtn1() .If 'NoTxtPop,KlMunt'="EUR" Quit:'$$^vhTXTPOP("CEUR","KLANT","",KlNaam,KlMunt) .Do ONECUST^CEURKL(KLNr,0,0) .If 'vhLock Lock +^KOD(KLNr) .Else For Do ADD^vhLock("^KOD(KLNr)") Quit:%TC Do LDISP^vhLock("^KOD(KLNr)","Orders") .Set ORDNr="" .For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do ONEORD(KLNr,ORDNr,1,vhLock) .If 'vhLock Lock -^KOD(KLNr) .Else Do REMOVE^vhLock("^KOD(KLNr)") Quit ; ONEORD(KLNr,ORDNr,NoTxtPop,vhLock) New %TC,R,KlRef,KlNaam,KlMunt,DerdeNr,OrdMunt,OLNr Set KLNr=$G(KLNr),ORDNr=$G(ORDNr),NoTxtPop=$G(NoTxtPop),vhLock=$G(vhLock) Do:'KLNr .Set:ORDNr KLNr=$P($G(^KO1(ORDNr,"F")),D) .Set:'KLNr KLNr=$$SELECT^KLANT6() Do:KLNr .Set KlRef=^KK1(KLNr),R=^KKL(KlRef,0),KlNaam=$P(R,D,2),KlMunt=$P(R,D,11) .Set:KlMunt="" KlMunt=$$FADEF^vhRtn1() .If 'NoTxtPop,KlMunt'="EUR" Set R=$$^vhTXTPOP("CEUR","KLORD","",KlNaam,KlMunt,KLNr) Quit .If ORDNr,'$D(^KOD(KLNr,"F",ORDNr)) Set ORDNr="" .Set:'ORDNr DerdeNr("K")=KLNr,ORDNr=$$SELECT^FLOW("KOD","KO1",1,,.DerdeNr) .Do:ORDNr ..Set R=^KOD(KLNr,"F",ORDNr,1),OrdMunt=$P(R,D,18) ..Quit:OrdMunt="EUR" ..If 'vhLock Lock +^KOD(KLNr,"F",ORDNr) ..Else For Do ADD^vhLock("^KOD(KLNr,""F"",ORDNr)") Quit:%TC Do LDISP^vhLock("^KOD(KLNr,""F"",ORDNr)","Order "_ORDNr) ..Merge ^EUROD(KLNr,"F",ORDNr)=^KOD(KLNr,"F",ORDNr) ..Set R=^KOD(KLNr,"F",ORDNr,1),$P(R,D,18)="EUR",^KOD(KLNr,"F",ORDNr,1)=R,OLNr=100 ..For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do ONELINE(KLNr,ORDNr,OLNr) ..If 'vhLock Lock -^KOD(KLNr,"F",ORDNr) ..Else Do REMOVE^vhLock("^KOD(KLNr,""F"",ORDNr)") Quit ; ONELINE(KLNr,ORDNr,OLNr) New R,PRNr,OrdMunt Set R=^KOD(KLNr,"F",ORDNr,1),OrdMunt=$P(R,D,18) Do:OrdMunt="EUR" .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2),LijnMunt=$P(R,D,22) .Quit:LijnMunt=OrdMunt .If $P(R,D,17)'="KF0",$P($P(R,D,17),"#")'="KF1925" Quit .If PRNr Do ..Set R=$$PRODLINE(KLNr,ORDNr,OLNr) .Else Set R=$$MANLINE(KLNr,ORDNr,OLNr) .Set $P(R,D,22)="EUR",^KOD(KLNr,"F",ORDNr,OLNr)=R Quit ; MANLINE(KLNr,ORDNr,OLNr) New R,BrutoPr,EurRound,Korting1,Korting2,EenhVerk,ManProd,BedrNet,BedrBrut Set R=^KOD(KLNr,"F",ORDNr,1),BrutoPr=$P(R,D,27) Set R=^KOD(KLNr,"F",ORDNr,OLNr),Korting1=$P($P(R,D,7),"#"),Korting2=$P($P(R,D,7),"#",2) Set EenhVerk=$P(R,D,21),LijnMunt=$P(R,D,22),ManProd=$L($P(R,D,20)) Set EurRound=$$MUNT^vhRtn1("EUR",4),Aantal=$P(R,D,3),EenhPr=$P(R,D,6),BedrNet=$P(R,D,9),BedrBrut=$P(R,D,16) If ManProd Do .Set EenhPr=$$MUNT^vhRtn1(LijnMunt,5,EenhPr_"#1",,"EUR") .Set (BedrNet,BedrBrut)=$J(EenhPr*Aantal/$S(EenhVerk="M":1000,EenhVerk="H":100,1:1),0,EurRound) .Set:BrutoPr BedrNet=$J($$CALCKORT^vhRtn1(BedrBrut,Korting1,Korting2),0,EurRound) Else Do .If Aantal Do ..Set EenhPr=$$MUNT^vhRtn1(LijnMunt,5,EenhPr_"#1",,"EUR") ..Set (BedrNet,BedrBrut)=$J(EenhPr*Aantal,0,EurRound) .Else Set (BedrNet,BedrBrut)=$$MUNT^vhRtn1(LijnMunt,5,BedrNet_"#1",,"EUR") Set $P(R,D,6)=EenhPr,$P(R,D,9)=BedrNet,$P(R,D,10)=BedrNet,$P(R,D,16)=BedrBrut,$P(R,D,22)="EUR" Quit R ; PRODLINE(KLNr,ORDNr,OLNr) New K,R,Rec,BrutoPr,OrdDat,PRNr,Aantal,Prijs New BedrNet,BedrBrut,EenhVerk,LevTerm,Round,OrdTyp New Korting,Korting1,Korting2,OptKort New EenhPr,EurRound,LijnMunt,DifEurCt New KlRef,IsHandel Set KlRef=^KK1(KLNr),R=^KKL(KlRef,1),IsHandel=$P(R,D,25) Set DifEurCt=.02,R=^KOD(KLNr,"F",ORDNr,1),OrdDat=$P(R,D,2) Set OrdTyp=$P(R,D,25),BrutoPr=$P(R,D,27) Set Rec=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(Rec,D,2) Set Aantal=$P(Rec,D,3),Round=$P(Rec,D,21),LevTerm=$P(Rec,D,25) Set Korting=$P(Rec,D,7),Korting1=$P(Korting,"#"),Korting2=$P(Korting,"#",2) Do STORE^vhTERMINA() Set R=$$GetKorting^KORTING(KLNr,PRNr,"N",OrdDat,Aantal,LevTerm) 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) Set Prijs=$J($P(R,D),0,2) Set Korting1=$P(R,D,5),Korting2=$P(R,D,6),Round=$P(R,D,10),EenhVerk=$P(R,D,11) Set BedrNet=$J(Aantal/EenhVerk*Prijs,0,2) If BrutoPr Set Prijs=$J($P(R,D,4),0,2),BedrNet=$J(Prijs*(100-Korting1)/100*(100-Korting2)/100*Aantal/EenhVerk,0,2) Set BedrBrut=$J(Aantal/EenhVerk*Prijs,0,2),Korting=Korting1_"#"_Korting2 If $P(Rec,D,26)="*"!($P(Rec,D,26)="=") Do .Set EurRound=$$MUNT^vhRtn1("EUR",4) .Set EenhPr=$P(Rec,D,6),LijnMunt=$P(Rec,D,22),EenhPr=$$MUNT^vhRtn1(LijnMunt,5,EenhPr_"#1",,"EUR") .If BrutoPr Do ..Set EenhVerk=$P(Rec,D,21) ..Set BedrBrut=$J(EenhPr*Aantal/$S($E(EenhVerk)="M":1000,$E(EenhVerk)="H":100,1:1),0,EurRound) ..Set Korting=$P(Rec,D,7),Korting1=$P(Korting,"#"),Korting2=$P(Korting,"#",2) ..Set BedrNet=$J($$CALCKORT^vhRtn1(BedrBrut,Korting1,Korting2),0,EurRound) ..Set Prijs=EenhPr,Round=$P(Rec,D,21),OptKort=$P(Rec,D,26) .Else Do ..If EenhPr-Prijs'>DifEurCt,Prijs-EenhPr'>DifEurCt Quit ..Set EenhVerk=$P(Rec,D,21) ..Set (BedrNet,BedrBrut)=$J(EenhPr*Aantal/$S($E(EenhVerk)="M":1000,$E(EenhVerk)="H":100,1:1),0,EurRound) ..Set Prijs=EenhPr,Korting=$P(Rec,D,7),Round=$P(Rec,D,21),OptKort=$P(Rec,D,26) Set $P(Rec,D,6)=Prijs,$P(Rec,D,7)=Korting,$P(Rec,D,9)=BedrNet,$P(Rec,D,10)=BedrNet,$P(Rec,D,16)=BedrBrut If OrdTyp="C"!(OrdTyp="A") Set OptKort="=" Set $P(Rec,D,21)=Round,$P(Rec,D,26)=OptKort,$P(Rec,D,22)="EUR" Quit Rec ;