CEUROFF ; Conversie naar Euro (offertes) ;[ 01/03/2002 3:16 PM ] 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(^KOFKL(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 +^KOFKL(KLNr) .Else For Do ADD^vhLock("^KOFKL(KLNr)") Quit:%TC Do LDISP^vhLock("^KOFKL(KLNr)","Offertes") .Set OFFNr="" .For Set OFFNr=$O(^KOFKL(KLNr,"F",OFFNr)) Quit:OFFNr="" Do ONEOFF(KLNr,OFFNr,1) .If 'vhLock Lock -^KOFKL(KLNr) .Else Do REMOVE^vhLock("^KOFKL(KLNr)") Quit ; ONEOFF(KLNr,OFFNr,NoTxtPop) New %TC,R,KlRef,KlNaam,KlMunt,DerdeNr,OffMunt,OLNr Set KLNr=$G(KLNr),OFFNr=$G(OFFNr),NoTxtPop=$G(NoTxtPop),vhLock=$G(vhLock) Do:'KLNr .Set:OFFNr KLNr=$P($G(^KOFKL1(OFFNr,"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","KLOFF","",KlNaam,KlMunt,KLNr) Quit .If OFFNr,'$D(^KOFKL(KLNr,"F",OFFNr)) Set OFFNr="" .Set:'OFFNr DerdeNr("K")=KLNr,OFFNr=$$SELECT^FLOW("KOFKL","KOFKL1",1,,.DerdeNr) .Do:OFFNr ..Set R=^KOFKL(KLNr,"F",OFFNr,1),OffMunt=$P(R,D,18) ..Quit:OffMunt="EUR" ..If 'vhLock Lock +^KOFKL(KLNr,"F",OFFNr) ..Else For Do ADD^vhLock("^KOFKL(KLNr,""F"",OFFNr)") Quit:%TC Do LDISP^vhLock("^KOFKL(KLNr,""F"",OFFNr)","Offerte "_OFFNr) ..Merge ^EUROFKL(KLNr,"F",OFFNr)=^KOFKL(KLNr,"F",OFFNr) ..Set R=^KOFKL(KLNr,"F",OFFNr,1),$P(R,D,18)="EUR",^KOFKL(KLNr,"F",OFFNr,1)=R,OLNr=100 ..For Set OLNr=$O(^KOFKL(KLNr,"F",OFFNr,OLNr)) Quit:OLNr="" Do:OLNr?.N ONELINE(KLNr,OFFNr,OLNr) ..If 'vhLock Lock -^KOFKL(KLNr,"F",OFFNr) ..Else Do REMOVE^vhLock("^KOFKL(KLNr,""F"",OFFNr)") Quit ; ONELINE(KLNr,OFFNr,OLNr) New R,PRNr,OffMunt Set R=^KOFKL(KLNr,"F",OFFNr,1),OffMunt=$P(R,D,18) Do:OffMunt="EUR" .Set R=^KOFKL(KLNr,"F",OFFNr,OLNr),PRNr=$P(R,D,2),LijnMunt=$P(R,D,22) .Quit:LijnMunt=OffMunt .If $P(R,D,17)'="KOF0",$P($P(R,D,17),"#")'="KOF1925" Quit .If PRNr,'$D(^KPR(PRNr)) Kill ^KOFKL(KLNr,"F",OFFNr,OLNr) Quit .If PRNr Do ..Set R=$$PRODLINE(KLNr,OFFNr,OLNr) .Else Set R=$$MANLINE(KLNr,OFFNr,OLNr) .Set $P(R,D,22)="EUR",^KOFKL(KLNr,"F",OFFNr,OLNr)=R Quit ; MANLINE(KLNr,OFFNr,OLNr) New R,BrutoPr,EurRound,Korting1,Korting2,EenhVerk,ManProd,BedrNet,BedrBrut Set R=^KOFKL(KLNr,"F",OFFNr,1),BrutoPr=$P(R,D,27) Set R=^KOFKL(KLNr,"F",OFFNr,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,OFFNr,OLNr) New K,R,Rec,BrutoPr,OffDat,PRNr,Aantal,Prijs New BedrNet,BedrBrut,EenhVerk,LevTerm,Round,OffTyp 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=^KOFKL(KLNr,"F",OFFNr,1),OffDat=$P(R,D,2) Set OffTyp=$P(R,D,25),BrutoPr=$P(R,D,27) Set Rec=^KOFKL(KLNr,"F",OFFNr,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",OffDat,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 (OldPrijs,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 OffTyp="C"!(OffTyp="A") Set OptKort="=" Set $P(Rec,D,21)=Round,$P(Rec,D,26)=OptKort,$P(Rec,D,22)="EUR" Quit Rec ;