#include vhLib.Macro #include BL.EC.Common #include %occInclude ; Call by: Do Test^Flow.Offerte.LijnProductGA.tmpDev ;Test() [routine: zie lager] ; Deze routine werkt niet binnen PROCEDUREBLOCK KLANTPRxKPRIJS(KLNrPrs,GenPRNr,KPrijsVH) New PrijsRec $$$InitOldLocals Set PrijsRec=$$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,$G(%NoSa),$J(KPrijsVH,0,2)) Quit PrijsRec /* ; WELKE ONDERDELEN UIT ONDERSTAANDE CODE MOETEN EVENTUEEL NOG ; GEÏMPLEMENTEERD WORDEN IN DE HUIDIGE ROUTINES/METHODS ? nfwProductFromWSLijn(WSLn,i) ; Returns Prod (kan zowel ORef als string value zijn) ; Maakt een GAData.Product object voor WSLn If (WSLn.Exclude=1) Do Quit "" ;Else If WSLn.ItemSTDL=$$$tbxCodeStdLade Do Quit $$$tbxCodeStdLade ; ... Quit Prod bfwCalcProductsInit ;New i,Prod,arValidPR,Som,SomAant,WSLn,OrdStdL,arWSStdL,KLReductie,KLKorting ; defined in bfwCalcWSLijnen() Set OrdStdL="LoadMeNow" Set KLNrProd=+$S(sDomVERW'="VHEPN":sDomKLNr, 1:WS.KLNummer) Set KLKorting=WS.KLKorting ; (waarde in % uitgedrukt) Set KLReductie=$S(+KLKorting'=0:$J(1-(KLKorting/100),0,4), 1:1) Set (Som,SomAant)=0 Quit bfwCalcProduct(Prod,i) ;Set SomAant=SomAant+WSLn.Qty Kill arValidPR If Prod=$$$tbxCodeStdLade Do . Do bfwCalcProdStdL ; all params are globally known Else If $IsObject(Prod) Do . Do bfwCalcProdViaItems Else Do . ; Nothing Merge arValidWS(i)=arValidPR(0) Quit */ ; Call by: Do CreateOFF^Flow.Offerte.LijnProductGA.tmpDev CreateOFF // WS.TBX.Order wordt omgezet in Flow.Offerte.Hoofding+Lijnen // Deze Flow.Offerte wordt opgeslagen en kan later gebruikt worden om te processen. s:('$D(%ClientIP)) %ClientIP="192.168.1.97" New sc Do tstCreateOfferte(391) Quit tstCreateOfferte(WSOrdID) $$$blEDI Set oHfd=%blEDI.WSOrd2Offerte("",WSOrdID) If '$IsObject(oHfd) Do Quit . w "Offerte Hfd not created.",! ; Else w "Succesfully converted WSOrd to Off. Hoofding ID="_oHfd.%Id(),! Quit ; Call by: Do Simulate^Flow.Offerte.LijnProductGA.tmpDev() Simulate(OffID) s:('$D(%ClientIP)) %ClientIP="192.168.1.97" ;New oHfd New Taal Set Taal="N" Kill %blFlowOfferte,%blFlowOffProdGAData $$$blFlowOfferte Set oHfd=%blFlowOfferte.Open($G(OffID,1576)) Quit:('$IsObject(oHfd)) Do %blFlowOfferte.SimulateAll(Taal) kill arKDtl Do simShowResults Kill %blFlowOffProdGAData Quit simShowResults ;Do ObjToXMLFileDBG^vhLib(oHfd,"c:\temp\","OFFERTE_sim",,) ; ("_"_$P(oLijn.GroepKey,".",2)) New Key,oLijn Set Key="" For Set oLijn=%blFlowOfferte.oOfferte.Lijnen.GetNext(.Key) Quit:Key="" Do . Do simShowResLijn(oLijn) Quit simShowResLijn(oLijn) w oLijn.GroepKey,! w $$$LCVT(oLijn.Status),! ;w oLijn.GenerischType," - " ;w oLijn.GenerischProductGetObjectId(),! w oLijn.NettoEPrijs," - " w oLijn.BrutoEPrijs,! ;w oLijn.Korting1," - " ;w oLijn.Korting2," - " ;w oLijn.GrootteOrde,! ;Do oLijn.Kenmerken.SetAt(KPrijsVH,"PPL") w oLijn.KortTekst,! ;w $$$LCVT(oLijn.LangTekst),! w ! Quit ; Call by: Do Generate^Flow.Offerte.LijnProductGA.tmpDev() Generate(OffID) s:('$D(%ClientIP)) %ClientIP="192.168.1.97" ;New oHfd Kill %blFlowOfferte,%blFlowOffProdGAData $$$blFlowOfferte Set oHfd=%blFlowOfferte.Open($G(OffID,1576)) Quit:('$IsObject(oHfd)) Do %blFlowOfferte.GenerateAll() kill arKDtl Do genShowResults Kill %blFlowOffProdGAData Quit genShowResults Do ObjToXMLFileDBG^vhLib(oHfd,"c:\temp\","OFFERTE",,) ; ("_"_$P(oLijn.GroepKey,".",2)) Quit Test2 // Een WS.TBX.OrderLijn wordt omgezet in Flow.Offerte.Lijn --> LijnProductGAData [TBX] // Op deze lijn wordt GenerateProduct() uitgevoerd, deze creëert het Afgeleid product en het Prod.product // en beiden worden bewaard. Kill New sc Set LnA="" ;Set LnA=##class(Flow.Offerte.LijnProductGA).NewFromWSOrderLn(391,2) w:('LnA) "No LijnProductGAData [TBX]" Quit:('LnA) Set sc=LnA.GenerateProduct() w $$$LCVT($$ObjectArrayToLB^vhLib(LnA.Kenmerken)),!,! Do $system.OBJ.Dump(LnA) w !,! Quit /* NewFromWSOrderLn(WSOrder,LijnID) ; Parameters: WSOrder,LijnID Quit:($G(WSOrder)="") "x" If '$IsObject(WSOrder) Do . Set WSOrder=##class(WS.TBX.Order).%OpenId(WSOrder) Quit $$NewFromWSOrderObj(WSOrder,.LijnID) NewFromWSOrderObj(WSOrder,LijnID) #define SetKenmVal(%v,%k) LnA.Kenmerken.SetAt(%v,%k) Quit:('$IsObject(WSOrder)) "" New WSOrdID,WSLn,LnA Set WSOrdID=WSOrder.%Id() Set WSLn=WSOrder.Lijnen.GetAt(LijnID) Quit:('$IsObject(WSLn)) "" Set LnA=##class(Flow.Offerte.LijnProductGA).%New() Do nfwProptFromWSOrder Do nfwProptFromWSLijn ; Fill Kenmerken array from WSLn Do nfwKenmFromWSOrder Do nfwKenmFromWSLijn Quit LnA nfwProptFromWSOrder Quit nfwProptFromWSLijn Set LnA.GenerischType=WSLn.GAMeta Set LnA.GenerischProduct="" ; TO DO : GenPRNr invullen Set LnA.Aantal=WSLn.Qty Quit nfwKenmFromWSOrder Do $$$SetKenmVal(WSOrder.mID,"ID") Do $$$SetKenmVal(WSOrder.Taal,"Taal") Do $$$SetKenmVal(WSOrder.BonType,"BonType") Do $$$SetKenmVal(WSOrder.LeverTijd,"LeverTijd") Do $$$SetKenmVal(WSOrder.Commissie,"Commissie") Do $$$SetKenmVal(WSOrder.IngaveTijdStip,"IngaveTijdStip") Do $$$SetKenmVal(WSOrder.KLNaam,"KLNaam") Do $$$SetKenmVal(WSOrder.KLNummer,"KLNummer") Do $$$SetKenmVal(WSOrder.KLStraatNrBus,"KLStraatNrBus") Do $$$SetKenmVal(WSOrder.KLPostNr,"KLPostNr") Do $$$SetKenmVal(WSOrder.KLWoonPlaats,"KLWoonPlaats") Do $$$SetKenmVal(WSOrder.KLTelefoon,"KLTelefoon") Do $$$SetKenmVal(WSOrder.KLFax,"KLFax") Do $$$SetKenmVal(WSOrder.KLEMail,"KLEMail") Do $$$SetKenmVal(WSOrder.TotPrijs,"TotPrijs") Do $$$SetKenmVal(WSOrder.TotAantal,"TotAantal") Do $$$SetKenmVal(WSOrder.KLPrijsKlasse,"KLPrijsKlasse") Do $$$SetKenmVal(WSOrder.KLKorting,"KLKorting") Do $$$SetKenmVal(WSOrder.KLBTWNr,"KLBTWNr") Do $$$SetKenmVal(WSOrder.SubmitTS,"SubmitTS") Do $$$SetKenmVal(WSOrder.WebDomain,"WebDomain") Quit nfwKenmFromWSLijn New Key Set WSLn.GAMeta="TBX" Do $$$SetKenmVal(WSLn.LijnNr,"LIJNNR") Do $$$SetKenmVal(WSLn.Qty,"AANT") Do $$$SetKenmVal(WSLn.GAMeta,"GAMETA") Do $$$SetKenmVal(WSLn.Exclude,"EXCLUDE") Do $$$SetKenmVal(WSLn.KostPrijs,"PRIJS") For Key="DS","LT","CB","WD","LD","DK","BM","BX","ASM","BGRP","SPZK","SB","OPVL","STDL","VPK","OLP" Do . Do $$$SetKenmVal($zobjproperty(WSLn,"Item"_Key),"Item"_Key) For Key="KL","KB","RK","KX","FB" Do . Do $$$SetKenmVal($zobjproperty(WSLn,"Item"_Key),"Item"_Key) Quit */ DbgAdd(s,v) Set sDbg=sDbg_s_"="_v_" ** " Quit TTrace(msg) s:('$D(%ClientIP)) %ClientIP="192.168.1.97" d WL^vhDBG("TBox:"_msg) Quit TTraceW(msg) d TTrace(.msg) ;w msg,! Quit