#include BL.Derde.LevSpecifiek #include Prod.Product #include vhLib.Macro ; 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 { New SalesPriceService, Result, ResultLine #dim SalesPriceService As AXimpl.Admin.VKP.SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() #dim Result As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC = SalesPriceService.GeefPrijs(KLNr, PRNr, $get(SimPPL), $get(Aantal)) #dim ResultLine As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC = Result.Lines.GetAt(1) Do DumpObject^%apiOBJ(ResultLine) Do 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) 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,,5000) ;Do PrijsOphalen(1614,860769) Do PrijsOphalen(3042,1529657) Do PrijsOphalen(1125,2001) Do PrijsOphalen(1125,1529657) Do PrijsOphalen(1125,1174139,10) Do PrijsOphalen(1125,858490,20) Do PrijsOphalen(1125,1804877,30) Do PrijsOphalen(1125,249821) Do PrijsOphalen(4810,808099) Do PrijsOphalen(4810,3551) Do PrijsOphalen(4810,1277761) Do PrijsOphalen(4810,113091) ; schroeven per honderd Do PrijsOphalen(4810,685017) Do PrijsOphalen(4810,794520) Do PrijsOphalen(14604,675436,100) Do PrijsOphalen(14604,904305) Do PrijsOphalen(14604,794520,200) Do PrijsOphalen(19485,675436,500) Quit PrijsOphalen(KLNr,PRNr,CifPPL,Aantal) Write !,KLNr," ",$P(^KKL(^KK1(KLNr),0),"\",2),! Write PRNr," ",$P(^KPR(PRNr,2),"\",25)," ",$P(^KPR(PRNr,0),"\"),! New SalesPriceService, Result, ResultLine #dim SalesPriceService As AXimpl.Admin.VKP.SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() #dim Result As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC = SalesPriceService.GeefPrijs(KLNr, PRNr, CifPPL, Aantal) #dim ResultLine As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC = Result.Lines.GetAt(1) ;Do DumpObject^%apiOBJ(Result.Lines.GetAt(1)) ;Do 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^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,! Write "AX : ",PrijsRecAX,! Quit All 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) ; Quit Klant(KLNr,DiffOnly) Set TijdStipStartLog=$zH Set 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 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",! Set TijdStipStartAll=$zH Set itKlant = ##class(TECH.DynamicIterator).%New(##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlantIterator(),,"(Item.GeefRegio()'=98)&&(Item.GeefRegio()'=99)") While itKlant.HasNext() { 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.10 "))'=""),(KLNr?4.6N) { Set TijdStipStartLog=$zH Set Count=$$KlantCheck(KLNr,1) Use 0 Write KLNr," ",Count," ",$ZH-TijdStipStartLog," ",$ZH-TijdStipStartAll,! Use Dev } Set KLNr=$O(^KSTKL(KLNr)) } Do CLOSE^vhDEV(Dev) Write "ALL=",$ZH-TijdStipStartAll,! Quit KlantCheck(KLNr,DiffOnly) New ProductDataFactory, ProductDataLijst, SalesPriceService #dim ProductDataFactory As AXimpl.Admin.VKP.SalesPriceService.ProductDataFactory = ##class(AXimpl.Admin.VKP.SalesPriceService.ProductDataFactory).%New() #dim ProductDataLijst As AXimpl.Admin.VKP.SalesPriceService.ProductDataLijst = ##class(AXimpl.Admin.VKP.SalesPriceService.ProductDataLijst).%New() #dim SalesPriceService As AXimpl.Admin.VKP.SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() Set PRNr=$O(^KSTKL(KLNr,0)) Set CountAll=0 While (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 1||($P($$KLANTPR^KPRIJSADMIN(KLNr,PRNr),"\",8)'="K") ; GEEN KAT omdat de klantgrp op AX klant nog niet is ingevuld { Do ProductDataLijst.Insert(ProductDataFactory.MaakProductData(PRNr)) Set CountAll=CountAll+1 If (ProductDataLijst.Count() = 100) { Do Compare(KLNr, SalesPriceService, ProductDataLijst) Use 0 Write KLNr, " ", ProductDataLijst.Count(), " ", CountAll, " ", $zhorolog - TijdStipStartLog, ! Use Dev Set ProductDataLijst = ##class(AXimpl.Admin.VKP.SalesPriceService.ProductDataLijst).%New() Set TijdStipStartLog=$zh } } } Set PRNr= $O(^KSTKL(KLNr,PRNr)) } Do:(ProductDataLijst.Count()) Compare(KLNr, SalesPriceService, ProductDataLijst) Quit CountAll Compare(KLNr, SalesPriceService, ProductDataLijst) New Result, ResultLine, ResultLineIterator, MessageId, MessageIdFormatter, ProductNummer #dim Result As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC = SalesPriceService.GeefPrijsVoorProducten(KLNr, ProductDataLijst) #dim ResultLine As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC #dim ResultLineIterator As TECH.Iterator = ##class(TECH.ListIterator).%New(Result.Lines) #dim MessageId As %String #dim MessageIdFormatter As AXimpl.MessageIdFormatter = ##class(AXimpl.MessageIdFormatter).%New() #dim ProductNummer As %String While (ResultLineIterator.HasNext()) { Set ResultLine = ResultLineIterator.Next() Set MessageId = MessageIdFormatter.Format(ResultLine.MessageId) Set ProductNummer = ProductDataLijst.FindByMessageId(MessageId) Set PrijsRec = $$KLANTPR^KPRIJSADMIN(KLNr, ProductNummer) If (Result.InclVAT) { Set $piece(PrijsRec, "\", 1) = $justify($piece(PrijsRec, "\", 1) * 1.21, 0, 2) } Set Diff = "" If $$$Not($length(ResultLine.ErrorTxt)) { Set Diff = $$$ExcelNum((ResultLine.Price / ResultLine.PriceUnit) - ($piece(PrijsRec, "\", 1) / $piece(PrijsRec, "\", 11))) } If ($$$Not($get(DiffOnly)) || ((Diff > 0.01) || (Diff < -0.01)) || $length(ResultLine.ErrorTxt)) { Write ResultLine.MessageId, *9 Write KLNr, *9, $piece(^KKL(^KK1(KLNr), 0), "\", 2), *9 Write ProductNummer, *9, ResultLine.ItemId, *9, $$$PRGet($$$KortTekst) Write *9, $piece(PrijsRec, "\", 7), *9, $piece(PrijsRec, "\", 8) Write *9, Result.InclVAT, *9, $$$ExcelNum(ResultLine.Price), *9, ResultLine.PriceUnit Write *9, $$$ExcelNum($piece(PrijsRec, "\", 1)), *9, $piece(PrijsRec, "\", 11) Write *9, Diff Write *9, ResultLine.ErrorTxt Write *9, $$$PRGet($$$SubGroep) Write ! } } Quit KlantSingle(KLNr) Set TijdStipStartLog=$zH Set PRNr=$O(^KSTKL(KLNr,0)) Set Count=0 New SalesPriceService, Result #dim SalesPriceService As AXimpl.Admin.VKP.SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() #dim Result As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC 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 Result = SalesPriceService.GeefPrijs(KLNr, PRNr, CifPPL) Set Count=Count+1 } Set PRNr=$O(^KSTKL(KLNr,PRNr)) } Write KLNr, " #Prod:", Count, " Ophalen:", $zhorolog - TijdStipStartLog, ! Quit Multi New ProductDataFactory, ProductDataLijst, SalesPriceService, Result, ResultLine, ResultLineIterator #dim ProductDataFactory As AXimpl.Admin.VKP.SalesPriceService.ProductDataFactory = ##class(AXimpl.Admin.VKP.SalesPriceService.ProductDataFactory).%New() #dim ProductDataLijst As AXimpl.Admin.VKP.SalesPriceService.ProductDataLijst = ##class(AXimpl.Admin.VKP.SalesPriceService.ProductDataLijst).%New() Do ProductDataLijst.Insert(ProductDataFactory.MaakProductData(3551)) Do ProductDataLijst.Insert(ProductDataFactory.MaakProductData(685017)) Do ProductDataLijst.Insert(ProductDataFactory.MaakProductData(675436, 100)) #dim SalesPriceService As AXimpl.Admin.VKP.SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() #dim Result As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC = SalesPriceService.GeefPrijs(4810, ProductDataLijst) #dim ResultLineIterator As TECH.Iterator = ##class(TECH.ListIterator).%New(Result.Lines) #dim ResultLine As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC While (ResultLineIterator.HasNext()) { Set ResultLine = ResultLineIterator.Next() Do DumpObject^%apiOBJ(ResultLine) } Quit KLANTPR Set PRNr=3551 Set KLNr=4810 W "Admin:",$$KLANTPR^KPRIJSADMIN(KLNr,PRNr),! W "AX :",$$KLANTPR^KPRIJSAX(KLNr,PRNr),! q PRIJSGEG Set PRNr=3551 W "Admin:",$$PRIJSGEG^KPRIJSADMIN(PRNr),! W "AX :",$$PRIJSGEG^KPRIJSAX(PRNr),! q ZETURL 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" q