Index: PVAX.mac.rou =================================================================== diff -u -r48610 -r50299 --- PVAX.mac.rou (.../PVAX.mac.rou) (revision 48610) +++ PVAX.mac.rou (.../PVAX.mac.rou) (revision 50299) @@ -2,23 +2,131 @@ #include Prod.Product #include vhLib.Macro - ;d PrijsOphalen^PVAX(4810 + ; 1614 ;vossaert consument + ; 20986 ; bosq uitz op la-mon + ; 4810 ; Lobelle uitz op CH + ; 23112 ; DKG + ; 1736 ; dupont + ; 3042 ; dovy + ; 4140 ; Tinello + ; d Test^PVAX( + +QTest + Set DiffOnly=1 + Set Detail=0 + Do Test(1614) + Do Test(20986) + Do Test(4810) + Do Test(23112) + Do Test(1736) + Do Test(3042) + Do Test(4140) + Do Test(2669) + Do Test(6333) + Do Test(8868) + Do Test(9248) + Do Test(11409) + Do Test(13353) + Do Test(13604) + Q + + +Test(KLNr) + Kill ^AXPrijsCache + s %DebugPrijs=0 + Write:'DiffOnly !!!,KLNr," ",$P(^KKL(^KK1(KLNr),0),"\",2),! + Do PrijsDtl^PVAX(KLNr,904960) ; KAT ZML... + Do PrijsDtl^PVAX(KLNr,3551) ; Scharnier + Do PrijsDtl^PVAX(KLNr,1057498) ; opvullijst + Do PrijsDtl^PVAX(KLNr,794517) ; OLVLIV + Do PrijsDtl^PVAX(KLNr,856189) ; SCR (per honderd) + Do PrijsDtl^PVAX(KLNr,24665) ; KAT prijs ZAA + Do PrijsDtl^PVAX(KLNr,888253) ; OL. Matjes + Do PrijsDtl^PVAX(KLNr,1023740) ; TAOR lade + Do PrijsDtl^PVAX(KLNr,1112967) ; lade + Do PrijsDtl^PVAX(KLNr,675436,50.1234) ; lade + Do PrijsDtl^PVAX(KLNr,675436,50.1255) ; lade + Do PrijsDtl^PVAX(KLNr,995672) ; IO orgalux op maat + Quit + +PrijsDtl(KLNr,PRNr,SimPPL,Aantal) + Set Tijd=$zh + Write:'DiffOnly !,PRNr," ",$P(^KPR(PRNr,2),"\",25)," ",$P(^KPR(PRNr,0),"\"),! + If Detail + { + Set SalesPriceService=##class(AXimpl.Admin.VKP.SalesPriceService).%New() + s x =$$$ProductGet(PRNr, $$$CifPPLEUR) + Set Result=SalesPriceService.GeefPrijs(KLNr,PRNr,$G(SimPPL),$G(Aantal)) + Set it=SalesPriceService.GeefRequestIterator() + d DumpObject^%apiOBJ(it.Next()) + d DumpObject^%apiOBJ(Result) + } + Set:$G(Aantal)'>0 PrijsRec=$$KLANTPR^KPRIJSADMIN(KLNr,PRNr,,.SimPPL) + Set:$G(Aantal)>0 PrijsRec=$$KlantPrijs^KPRIJSADMIN(KLNr,PRNr,,,Aantal) + Set:$G(Aantal)'>0 PrijsRecAX=$$KLANTPR^KPRIJSAX(KLNr,PRNr,,.SimPPL) + Set:$G(Aantal)>0 PrijsRecAX=$$KlantPrijs^KPRIJSAX(KLNr,PRNr,,,Aantal) + ;Set:$G(Aantal)'>0 PrijsRecAX2=$$KLANTPR^KPRIJSAX(KLNr,PRNr,,.SimPPL) + ;Set:$G(Aantal)>0 PrijsRecAX2=$$KlantPrijs^KPRIJSAX(KLNr,PRNr,,,Aantal) + If '$G(DiffOnly)&&(KLNr=1614) ; incl BTW + { + Write "Admin prijs incl BTW: ",$J($P(PrijsRec,"\")*1.21,0,2),! + Write " AX prijsincl BTW: ",$J($P(PrijsRecAX,"\")*1.21,0,2),! + } + Set Diff=$P(PrijsRec,"\")-$P(PrijsRecAX,"\") + Set:Diff<0 Diff=-Diff + If '$G(DiffOnly)||(Diff>.01) + { + If DiffOnly + { + Write !,KLNr," ",$P(^KKL(^KK1(KLNr),0),"\",2),! + Write PRNr," ",$P(^KPR(PRNr,2),"\",25)," ",$P(^KPR(PRNr,0),"\"),! + } + Write "Admin prijs: ",$P(PrijsRec,"\")," ",$P(PrijsRec,"\",3)," lijstprijs : ",$P(PrijsRec,"\",4),! + Write " AX prijs: ",$P(PrijsRecAX,"\")," ",$P(PrijsRecAX,"\",3)," AX lijstpr : ",$P(PrijsRecAX,"\",4),! + } + ;Write "Lijstprijs : ",$P($$PRIJSGEG^KPRIJS(PRNr,,.SimPPL),"\",15),! + + If (Diff>.01)||($P(PrijsRecAX,"\",3)'=$P(PrijsRec,"\",3)) + { write "**** foutieve verkoopprijs ****",! + } + Set Diff=$P(PrijsRec,"\",4)-$P(PrijsRecAX,"\",4) + Set:Diff<1 Diff=Diff*-1 + If (Diff>.01) + { write "**** foutieve lijstprijs *****",! + } + If Detail + { + Write "Admin: ",PrijsRec,! + Write "AX : ",PrijsRecAX,! + } + ;Write "AX znd cache : ",PrijsRecAX2,! + Write:'$G(DiffOnly) "Tijd:",$ZH-Tijd,! + Quit PVAX + + Do PrijsOphalen(4140,1828637) + q + Do PrijsOphalen(1938,500816) + q + Do PrijsOphalen(4810,808099) + Do PrijsOphalen(4810,3551) + Do PrijsOphalen(4810,1277761) + Do PrijsOphalen(4810,113091) ; schroeven per honderd + q ;Do PrijsOphalen(8365,1168275) - Do PrijsOphalen(2252,225635,,3000) + ;Do PrijsOphalen(2252,225635,,3000) - Do PrijsOphalen(2252,225635,,5000) + ;Do PrijsOphalen(2252,225635,,5000) ;Do PrijsOphalen(1614,860769) - q - Do PrijsOphalen(3042,1529657) + Do PrijsOphalen(3042,1529657) - q + Do PrijsOphalen(1125,2001) - q + Do PrijsOphalen(1125,1529657) Do PrijsOphalen(1125,1174139,10) @@ -46,11 +154,14 @@ Write !,KLNr," ",$P(^KKL(^KK1(KLNr),0),"\",2),! Write PRNr," ",$P(^KPR(PRNr,2),"\",25)," ",$P(^KPR(PRNr,0),"\"),! Set Result=SalesPriceService.GeefPrijs(KLNr,PRNr,.CifPPL,.Aantal) - d DumpObject^%apiOBJ(Result) + Set it=SalesPriceService.GeefRequestIterator() + + ;d DumpObject^%apiOBJ(it.Next()) + ;d DumpObject^%apiOBJ(Result) Set:'$G(Aantal) PrijsRec=$$KLANTPR^KPRIJSADMIN(KLNr,PRNr,,.CifPPL) Set:$G(Aantal) PrijsRec=$$KlantPrijs^KPRIJSADMIN(KLNr,PRNr,,,Aantal) Write !,"Admin prijs: ",$P(PrijsRec,"\")," lijstprijs : ",$P(PrijsRec,"\",4),! - Set:'$G(Aantal) PrijsRecAX=$$KLANTPR^KPRIJS(KLNr,PRNr,,.CifPPL) + Set:'$G(Aantal) PrijsRecAX=$$KLANTPR^KPRIJSAX(KLNr,PRNr,,.CifPPL) Set:$G(Aantal) PrijsRecAX=$$KlantPrijs^KPRIJS(KLNr,PRNr,,,Aantal) Write " AX prijs: ",$P(PrijsRecAX,"\")," AX lijstpr : ",$P(PrijsRecAX,"\",4),! Write !,"Admin: ",PrijsRec,! @@ -59,26 +170,41 @@ q All - Do Klant(1938) ; roobrouck - - Do Klant(4810) ; lobelle - Do KlantCheck(1736) ; dupont - ;Do KlantCheck(1614) ; Vossaert (B2C) - Do KlantCheck(3042) ; dovy - Do KlantCheck(23112) ; DKG - q - + Set DiffOnly=0 + Do Klant(4810,DiffOnly) ; lobelle + Do Klant^PVAX(3042,DiffOnly) ; dovy + Set DiffOnly=1 + Do Klant(1938,DiffOnly) ; roobrouck + Do Klant^PVAX(2096,DiffOnly) + Do Klant(1736,DiffOnly) ; dupont + Do Klant(4875,DiffOnly) ; Haefele B + Do Klant^PVAX(1614,DiffOnly) ; Vossaert (B2C) + Do Klant^PVAX(3042,DiffOnly) ; dovy + Do Klant(23112,DiffOnly) ; DKG + Do Klant(2669,DiffOnly) ; + Do Klant(6333,DiffOnly) ; + Do Klant(8868,DiffOnly) ; + Do Klant(9248,DiffOnly) ; + Do Klant(11409,DiffOnly) ; + Do Klant(13353,DiffOnly) ; + Do Klant(13604,DiffOnly) ; + Q Klant(KLNr,DiffOnly) + Set TijdStipStartLog=$zH + s DiffOnly=0 Set Dev=$$OPEN^vhDEV("e:\AX","PrijsVGL AX "_KLNr_" - "_$TR($ZDT($H,8),":")_".txt","W") Use Dev Write "GUID KLNr Nm PRNr ItemID KortTekst Codex Kat InclBTW AXPrice AXGO AdminPrice AdminGO Verschil ErrorTxt",! Do KlantCheck(KLNr,.DiffOnly) Do CLOSE^vhDEV(Dev) + + Write KLNr," #Prod:",Count," Ophalen:",$ZH-TijdStipStartLog,! + Quit AlleKlanten - Set Dev=$$OPEN^vhDEV("e:\AX","PrijsVGL AX"_$TR($ZDT($H,8),":")_".txt","W") + Set Dev=$$OPEN^vhDEV("e:\AX","PrijsVGL AX ALLE KLANTEN "_$TR($ZDT($H,8),":")_".txt","W") Use Dev Write "GUID KLNr Nm PRNr ItemID KortTekst Codex Kat InclBTW AXPrice AXGO AdminPrice AdminGO Verschil ErrorTxt",! @@ -88,14 +214,15 @@ { Set Klant=itKlant.Next() Set KLNr=$P(Klant.GeefID(),"||",2) + Continue:KLNr'>4553 Continue:(Klant.GeefBusinessType() = ##class(DOM.VKP.enu.BusinessType).B2C()) - If $D(^KK1(KLNr)),($O(^KSTKL(KLNr,0,"2016.07 "))'=""),(KLNr?4.6N) + If $D(^KK1(KLNr)),($O(^KSTKL(KLNr,0,"2016.10 "))'=""),(KLNr?4.6N) { Set TijdStipStartLog=$zH - Do KlantCheck(KLNr,1) + Set Count=$$KlantCheck(KLNr,1) Use 0 - Write KLNr," ",$ZH-TijdStipStartLog,! + Write KLNr," ",Count," ",$ZH-TijdStipStartLog," ",$ZH-TijdStipStartAll,! Use Dev } Set KLNr=$O(^KSTKL(KLNr)) @@ -107,32 +234,46 @@ KlantCheck(KLNr,DiffOnly) Set SalesPriceService=##class(AXimpl.Admin.VKP.SalesPriceService).%New() Do SalesPriceService.Initialisatie(KLNr) - Kill CacheID + Kill CacheId + Kill CacheCif Set PRNr=$O(^KSTKL(KLNr,0)) - Set Count=0 + Set Count=0,CountAll=0 While PRNr { - If ($O(^KSTKL(KLNr,PRNr,"2016.07 "))'="") && ('$D(^KPR(PRNr,"J"_$$$LevHalux))) && ($$$PRGet($$$GenProduct)="") && ($$$PRGet($$$NONAktief)'=1) && '$$IsOrgaluxOpMaat^PRODUKT2(PRNr) + + If $D(^KPR(PRNr)) && ($O(^KSTKL(KLNr,PRNr,"2016.07 "))'="") && ('$D(^KPR(PRNr,"J"_$$$LevHalux))) && ($$$PRGet($$$GenProduct)="") && ($$$PRGet($$$NONAktief)'=1) && '$$IsOrgaluxOpMaat^PRODUKT2(PRNr) { - If $D(^KPR(PRNr,"J"_$$$LevVanHoecke)) { - Set CifPPL=$$CifPPL^KPRIJS(PRNr) - } Else { - Set CifPPL="" + If 1||($P($$KLANTPR^KPRIJSADMIN(KLNr,PRNr),"\",8)'="K") ; GEEN KAT omdat de klantgrp op AX klant nog niet is ingevuld + { + Set MessageId=SalesPriceService.VoegToeProduct(PRNr) + Set Count=Count+1 + Set CountAll=CountAll+1 + Set CacheId(MessageId)=PRNr + If Count=100 { + Do Compare(KLNr,SalesPriceService) + Use 0 + Write KLNr," ",Count," ",CountAll," ",$ZH-TijdStipStartLog,! + Use Dev + Set SalesPriceService=##class(AXimpl.Admin.VKP.SalesPriceService).%New() + Do SalesPriceService.Initialisatie(KLNr) + Set Count=0 + Set TijdStipStartLog=$zh + Kill CacheId + } } - Set MessageId=SalesPriceService.VoegToeProduct(PRNr,CifPPL) - Set Count=Count+1 - Set CacheId(MessageId)=PRNr } Set PRNr=$O(^KSTKL(KLNr,PRNr)) } - If Count - { + Do:Count Compare(KLNr,SalesPriceService) + + Quit CountAll + +Compare(KLNr,SalesPriceService) Do SalesPriceService.VoerUit() Set it=SalesPriceService.GeefResultaatIterator() - ;Set Dev=$$OPEN^vhDEV("e:\AX","PrijsVGL AX "_KLNr_".txt","W") - ;Use Dev While it.HasNext() { + Set Result=it.Next() Set MessageId="{"_$zcvt(Result.MessageId,"U")_"}" Set PRNr=$G(CacheId(MessageId)) @@ -150,16 +291,36 @@ Write *9,$$$ExcelNum($P(PrijsRec,"\",1)),*9,$P(PrijsRec,"\",11) Write *9,Diff Write *9,Result.ErrorTxt + Write *9,$$$PRGet($$$SubGroep) Write ! } - ;d DumpObject^%apiOBJ(Result) - } + Quit + +KlantSingle(KLNr) + Set TijdStipStartLog=$zH + Set PRNr=$O(^KSTKL(KLNr,0)) + Set Count=0 + While PRNr + { + If ($O(^KSTKL(KLNr,PRNr,"2016.07 "))'="") && ('$D(^KPR(PRNr,"J"_$$$LevHalux))) && ($$$PRGet($$$GenProduct)="") && ($$$PRGet($$$NONAktief)'=1) && '$$IsOrgaluxOpMaat^PRODUKT2(PRNr) + { + If $D(^KPR(PRNr,"J"_$$$LevVanHoecke)) { + Set CifPPL=$$CifPPL^KPRIJS(PRNr) + } Else { + Set CifPPL="" + } + Set SalesPriceService=##class(AXimpl.Admin.VKP.SalesPriceService).%New() + Do SalesPriceService.Initialisatie(KLNr) + Set MessageId=SalesPriceService.VoegToeProduct(PRNr,CifPPL) + Do SalesPriceService.VoerUit() + Set it=SalesPriceService.GeefResultaatIterator() + Set Count=Count+1 + } + Set PRNr=$O(^KSTKL(KLNr,PRNr)) } - ;Do CLOSE^vhDEV(Dev) - ;Write KLNr," #Prod:",Count," Ophalen:",TijdOphalen," Webservice:",TijdWebservice," Vgl: ",$ZH-TijdStipStartLog,! + Write KLNr," #Prod:",Count," Ophalen:",$ZH-TijdStipStartLog,! Quit - Multi Set SalesPriceService=##class(AXimpl.Admin.VKP.SalesPriceService).%New() Do SalesPriceService.Initialisatie(4810) @@ -192,6 +353,7 @@ Do ##class(TECH.Config.ConfigMgr).Instance().SetString("VHIP907SalesPriceServiceUrl","http://ax-aos-dev:84/MicrosoftDynamicsAXAif60_ACCEPT/SalesPriceService/xppservice.svc") Do ##class(TECH.Config.ConfigMgr).Instance().SetString("VHIP907SalesPriceServiceUrl","http://ax_scan:81/MicrosoftDynamicsAXAif60_PROD/SalesPriceService/xppservice.svc") + Do ##class(TECH.Config.ConfigMgr).Instance().SetString("AX_SalesPriceOut_Fase","2A") Do ##class(TECH.Config.ConfigMgr).Instance().SetBoolean("BevestigdAXOrderSluitenActief",1) ;##class(TECH.Config.ConfigMgr).Instance().GetString("AX_SalesPriceOut_Fase") = "2A" Index: AXimpl/Admin/VKP/SalesPriceService.cls.xml =================================================================== diff -u -r49398 -r50299 --- AXimpl/Admin/VKP/SalesPriceService.cls.xml (.../SalesPriceService.cls.xml) (revision 49398) +++ AXimpl/Admin/VKP/SalesPriceService.cls.xml (.../SalesPriceService.cls.xml) (revision 50299) @@ -2,136 +2,210 @@ Set Result = SalesPriceService.GeefPrijs(KlantNummer, ProductNummer, CifPpl (optioneel)) -
-SalesPrice voor meerdere producten: -
Set ProductData1 = ProductDataFactory.MaakProductData(ProductNummer, CifPpl (optioneel)) -
Set ProductData2 = ProductDataFactory.MaakProductData(ProductNummer, CifPpl (optioneel)) -
Set Result = SalesPriceService.GeefPrijsVoorProducten(KlantNummer, ProductData1, ProductData2)]]>
+/ SalesPrice kan voor een of meerdre producten: +
Voor 1 product: +
Set Result = SalesPriceService.GeefPrice(KLNr, PRNr, optionele CifPPL) +
Voor meerdere producten via iterator: +
Do SalesPriceService.Initialisatie(KLNr) +
Do SalesPriceService.VoegToe(PRNr1, optionele CifPPL) +
Do SalesPriceService.VoegToe(PRNr2, optionele CifPPL) +
Do SalesPriceService.VoerUit() +
Set iterator=SalesPriceService.GeefResultaatIterator +
+
Voor meerdere producten via het onthouden van een reference: +
Do SalesPriceService.Initialisatie(KLNr) +
Set Reference1=SalesPriceService.VoegToe(PRNr1, optionele CifPPL) +
Set Reference2=SalesPriceService.VoegToe(PRNr2, optionele CifPPL) +
Do SalesPriceService.VoerUit() +
Do SalesPriceService.GeefResultaat(Reference1) +
Do SalesPriceService.GeefResultaat(Reference2)]]> Prod.Product,BL.Derde.LevSpecifiek TECH.Mockable + + 1 +d rc.ZetApplicatie("AX_FASE") +w ci.GeefString("AX_FASE") -> 2A + +*/ +]]> + + + +AXimpl.MessageManager +1 + + AXimpl.Dynamics.SalesPriceOut.SalesPriceService 1 - -AXimpl.MessageManager + +AX.Uitgaand.PM.impl.Convertor.Sopr.ProductConvertor 1 - -AXimpl.Admin.VKP.SalesPriceService.AxItemIdBepaler + +AXif.Dynamics.SalesPriceOut.MessageParts.ADUSalesPriceHeaderInputDC 1 + +AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC +1 + + + +KlantNummer:%String,ProductNummer:%String,PrijsRec:%String + + + -SalesPriceService:AXimpl.Dynamics.SalesPriceOut.SalesPriceService="",MessageManager:AXimpl.MessageManager="",AxItemIdBepaler:AXimpl.Admin.VKP.SalesPriceService.AxItemIdBepaler="" +SalesPriceService:AXimpl.Dynamics.SalesPriceOut.SalesPriceService="",MessageManager:AXimpl.MessageManager="",ProductApi:DOM.PM.ProductAPI 1 1 %Status 1 - -KlantNummer:%String,ProductNummer:%String,CifPpl:%String -AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC + +KlantNummer:%String - -KlantNummer:%String,ProductDataLijst...:AXimpl.Admin.VKP.SalesPriceService.ProductData -AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC + +ProductNummer:%String,CifPPL:%String="",Aantal:%String=1,TransDate:%Date +%String + + + +Reference:%String +AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC + - -KlantNummer:%String,Lines:%ListOfDataTypes -1 -AXif.Dynamics.SalesPriceOut.MessageParts.ADUSalesPriceHeaderInputDC + + + + + + + + + +AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC + + + +KlantNummer:%String,ProductNummer:%String,CifPPL:%String,Aantal:%String,TransDate:%Date +AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC + - -ProductNummer:%String,CifPpl:%String + +PRNr:%String 1 -AXif.Dynamics.SalesPriceOut.MessageParts.ADUSalesPriceLineInputDC +%String -KlantNummer:%String +KLNr:%String 1 %String - + + +KLNr:%String +%String + +
Index: AXimpl/Dynamics/SalesPriceOut/SalesPriceService.cls.xml =================================================================== diff -u -r49181 -r50299 --- AXimpl/Dynamics/SalesPriceOut/SalesPriceService.cls.xml (.../SalesPriceService.cls.xml) (revision 49181) +++ AXimpl/Dynamics/SalesPriceOut/SalesPriceService.cls.xml (.../SalesPriceService.cls.xml) (revision 50299) @@ -1,13 +1,80 @@ -1 -TECH.Interface +1 +%SOAP.WebClient + + +This is the namespace used by the Service +http://tempuri.org/ + + + + +Use xsi:type attribute for literal types. +1 + + + +RoutingService + + + + +This is the name of the Service +This is the SOAP version supported by the service. +1.1 + + + + +This is the namespace used for types by the Service +http://tempuri.org + + + +1 +1 +%Status +1 + + + -1 -SalesPriceInput:AXif.Dynamics.SalesPriceOut.MessageParts.ADUSalesPriceHeaderInputDC +1 +SalesPriceInput:AXif.Dynamics.SalesPriceOut.MessageParts.ADUSalesPriceHeaderInputDC(XMLNAME="_salesPriceInput") +1 AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC +1 +document +literal + 1) + { + Try { + #dim SalesPriceInputLijn As AXif.Dynamics.SalesPriceOut.MessageParts.ADUSalesPriceLineInputDC = SalesPriceInput.Lines.GetAt(1) + Do ##class(vhLib.Logger).%New("SalesPriceService").Debug("getPrice traag", + "CustAccount='"_SalesPriceInput.CustAccount + _"'; Snelheid=" _ (HuidigeTijdSeconden-StartTijdSeconden) + _ "sec; ItemId='" _ SalesPriceInputLijn.ItemId _ "'; MessageId='" _ SalesPriceInput.MessageId _ "'") + + } Catch { + Do ##class(vhLib.Logger).%New().LogExceptie(##class(TECH.ExceptionHandler).Catch()) + } + } + Quit Resultaat +]]> Index: KPRIJSAX.mac.rou =================================================================== diff -u -r48147 -r50299 --- KPRIJSAX.mac.rou (.../KPRIJSAX.mac.rou) (revision 48147) +++ KPRIJSAX.mac.rou (.../KPRIJSAX.mac.rou) (revision 50299) @@ -73,7 +73,7 @@ New Korting1,Korting2,CheckKAT,KlantGrOrde KLANTPR3 New R,KatProd,IsKatPr,FaMunt,Munt,MuntPar,VkpPr,KortNiv,AkpEUR,VkpEUR,LijstEUR,KlMunt,KlTyp,NetBrutP,PrijsKl,IsKsCust,IsLidVan,%LidVan,LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,PrMunt,CifPPL,LijstPr,Vork,%Vork - New BTWfactor,LijstPr1,VkpEURIncl,VkpPr1,VkpPrIncl + New BTWfactor,LijstPr1,VkpEURIncl,VkpPr1,VkpPrIncl,VkpEURAX,LijstEURAX ; Opgezet via GETCUST : KlMunt,KlTyp,NetBrutP,PrijsKl,IsKsCust,IsLidVan,%LidVan ; Opgezet via GETPROD : LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,PrMunt,CifPPL,LijstPr,Vork,%Vork New LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,PrMunt,CifPPL,LijstPr,Vork,%Vork,BusinessType,Klant,KlantID, CorFakt,KortRec @@ -94,28 +94,86 @@ // VHIP907: Verkoopprijzen // VHIP907->MVI: voorlopig laat ik alles invullen in fase 2a en overschrijf ik enkel de waarden die ax teruggeeft - New SalesPriceService, Result If $$IsAX(KLNr,PRNr) { - Set SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() - #Dim Result as AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC - Set Result = SalesPriceService.GeefPrijs(KLNr, PRNr, $S($G(SimPPL):SimPPL,1:"")) - - Set VkpEUR = Result.Price - Set VkpPr = VkpEUR - Set LijstEUR = Result.GrossPrice - Set LijstPr = LijstEUR - Set Korting2=0 - Set Korting1=(1-(VkpEUR/LijstEUR))*100 - } + Kill ^AXPrijsCache + Set CacheMinuten=$LG($G(^AXPrijsCache(KLNr,PRNr,$S($G(SimPPL):SimPPL,1:"*"),$S($G(Aantal):Aantal,1:"*"))),1) + If (($$GeefMinuten($H)-600)0 + { + Set VkpEUR=VkpEURAX + Set LijstEUR=LijstEURAX + If InclBTW + { + Set VkpEUR=+$J(VkpEUR/1.21,0,10) + } + Set VkpPr = VkpEUR + Set LijstPr = LijstEUR + If PriceUnit>1 + { + Set VkpEUR=VkpEUR/PriceUnit + Set LijstEUR=LijstEUR/PriceUnit + } + Set GrOrde=$Case(PriceUnit,100:"H",:"E") + Set GrOrdNum=$Case(GrOrde,"H":100,:1) + + Set Korting2=0 + If +LijstEUR=0 { + Set Korting1=0 + } else { + Set Korting1=(1-(VkpEUR/LijstEUR))*100 + } + } + Else + { + Write "**** Prijs is NUL ****" + } + } Quit $$BUILD ; Build = VkpPr_D_Munt_D_GrOrde_D_LijstPr_D_Korting1_D_Korting2_D_$G(PrijsKl)_D_$G(KortNiv)_D_+$J(1/MuntPar,0,8)_D_GrOrde_1_D_GrOrdNum_D_1_D_AkpEUR_D_VkpEUR_D_LijstEUR ; 1:prijs,2:munt,3:eenheid,4:lijstprijs,5:korting1,6:korting2,7:codex,8:katprijs,9:pariteit,10:afrondingsregel,11:eenheid(numeriek),12:round,13:aankpr(EUR),14:prijs(EUR),15:lijstprijs(EUR) - +PrijzenViaAdmin(KLNr) +{ + Quit $$$MaatwerkKlantenMetWildcardUitz[(";"_KLNr_";") +} - +GeefMinuten(DatumEnTijd) + Quit $P(DatumEnTijd,".")*24*60+($P(DatumEnTijd,".",2)\60) + +KillAXCache + Kill ^AXPrijsCache + Quit + // Set twee kortingen om van in % (*100) naar ��n korting in % OneKorting(Korting1,Korting2) Quit (1-((1-(Korting1/100))*(1-(Korting2/100))))*100 @@ -125,13 +183,12 @@ Set IsAX=0 If ($$$CheckAXFase) { Set IsAX=1 - If $$$MaatwerkKlantenMetWildcardUitz[(";"&KLNr&";") { + If $$PrijzenViaAdmin(KLNr) { If PRNr,$$$PRGet($$$LeveranciersNr)=$$$LevHalux { Set IsAX=0 } } } - ;w "KLNr",KLNr," PRNr",PRNr," = ",IsAX,! Quit IsAX PRODINCLBTW(PRNr,Land,KlMunt,Korting1,Korting2,NetBrutP,KlTyp,NoSa,SimPPL,KlantGrOrde,CheckKAT,BusinessType) @@ -142,7 +199,8 @@ ProdViaCodex(PRNr,Codex) New KLNr - Set KLNr=$Case(Codex,"L":$$$KlantLVanHoecke,"R":$$$KlantRVanHoecke,"S":$$$KlantSVanHoecke,"B":$$$KlantBVanHoecke,"G":$$$KlantGVanHoecke,"P":$$$KlantPVanHoecke,"C":$$$KlantCVanHoecke) + Set KLNr=$Case(Codex,"L":$$$CKlantL,"R":$$$CKlantR,"S":$$$CKlantS,"B":$$$CKlantB,"G":$$$CKlantG,"P":$$$CKlantP,"C":$$$CKlantCExcl) + Quit:'$D(^KK1(KLNr)) "" Quit $$KLANTPR(KLNr,PRNr) @@ -252,7 +310,47 @@ Set Result=##class(AXimpl.Admin.VKP.SalesPriceService).%New().GeefPrijs($$$KlantLVanHoecke,PRNr,.SimCifPPL) Quit Result.GrossPrice - +PRIJSGEGZONDERAX(PRNr,NoSa,SimPPL) ; Ophalen van de prijsgegevens van een product + ; De SimPPL wordt genomen ter vervanging van de PPL in PRNr, + ; zo kan dan het product een generisch product zijn waarvoor het afgeleid product nog niet bestaat + ; De SimPPL moet voldoen aan de muntpariteit en de grootteorde + ; Output: Piece 1 = PPL + ; Piece 2 = aankoopmunt + ; Piece 3 = aankoopeenheid + ; Piece 4 = aankoopeenheid (numeriek) + ; Piece 5 = korting + ; Piece 6 = CifPPL + ; Piece 7 = firmamunt + ; Piece 8 = verkoopeenheid + ; Piece 9 = verkoopeenheid (numeriek) + ; Piece 10 = Cif% + ; Piece 11 = dekkingsbijdrage + ; Piece 12 = dekkingsbijdrage% + ; Piece 13 = vork + ; Piece 14 = vork% + ; Piece 15 = lijstprijs (per stuk) + ; Piece 16 = katprod industrie (Prijsklasse code) + ; Piece 17 = katprod handel (Prijsklasse code) + ; Piece 18 = katprod KS (Prijsklasse code) + ; Piece 19 = LEVNr + ; Piece 20 = CorFakt + New I,J,R,LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,GrtPr,PrMunt,CifPPL,LijstPr,Vork,DB,FaMunt,Decimal,EenhAank,PPL,%Korting,%Vork,%DB,%Cif,CorFakt + Do GetProdBasis + ;Set Decimal=$$MUNT^vhRtn1(FaMunt,4),%DB=$J(%DB*GrOrdNum,0,Decimal) + Set R=CifPPL/(100-%DB/100)*%DB/100,R=$J(R,1,4),LijstPr=CifPPL+R + Set LijstPr=LijstPr*GrOrdNum + Set GrtPr=LijstPr*(100-%Vork/100) + Set GrtPr=$J($$ROUND(GrtPr),0,2) + Set LijstPr=$J($$ROUND(LijstPr),0,2) + Set Vork=LijstPr-GrtPr/GrOrdNum + Set LijstPr=LijstPr/GrOrdNum + Set PPL=$J(PPL*EenhAank,0,4) + Set DB=LijstPr-CifPPL + Set R=PPL_D_PrMunt_D_$S(EenhAank=1:"E",EenhAank=100:"H",EenhAank=1000:"M",1:"")_D_EenhAank + Set R=R_D_%Korting_D_CifPPL_D_FaMunt_D_GrOrde_D_GrOrdNum_D_%Cif_D_DB_D_%DB_D_Vork_D_%Vork_D_LijstPr + Set R=R_D_KatPrInd_D_KatPrHan_D_KatPrKs_D_LEVNr_D_CorFakt + Quit R + GETPROD(PRNr,NoSa,SimPPL) ; Ophalen productgegevens New J,R,FaMunt,EenhAank,PPL,%Korting,%DB,%Cif Do GetProdBasis