Proxy-klasse voor een OrderBevestiging BL.Sys.FOP.Common,BL.Flow.Doc.Common,vhLib.Macro 1 %RegisteredObject,pxOrderAbstract,%XML.Adaptor right ORDER Datum van creatie van het document %Library.String Steeds "OrderBevestiging" %Library.String %Library.String %Library.String Type van het order: OrderBevestiging, Proforma, Monster, Afroep, ... %Library.String %Library.String %Library.String %Library.String %Library.String %Library.String %Library.Integer BL.FOP.Derde.pxKlantAdres BL.FOP.Derde.pxLevAdres %Library.String %Library.String %Library.String BL.Flow.Proxy.pxHoutCertificaat list BL.FOP.Basis.pxTekstHTML list BL.Flow.Proxy.pxPPODfields BL.Flow.Offerte.enu.Oorsprong BL.FOP.Proxy.enu.HoofdingType BL.FOP.Derde.pxAfzenderHoofding BL.Flow.Proxy.impl.VerkoopsvoorwaardenURLBepaler 1 VerkoopsvoorwaardenURLBepaler:BL.Flow.Proxy.impl.VerkoopsvoorwaardenURLBepaler 1 1 %Status 1 Aanmaken van een Order-proxy object 1 pxOrder ORDNr:%String,lbPPODKeywords:%List,Opties:%String %Status TO DO: refactor via KlantOrderInstellingen ! Do:($IsObject($G(%blFlowDoc))) %blFlowDoc.ReplaceXsltParam("pImageColVisible="_$$$xslpFromDoc,"pImageColVisible="_%blFlowDoc.ShowImageColumn(KLNr,"O",ORDNr)) // Lock opzetten, om gelijktijdigheid van sortering/verwerking te vermijden Lock +^OD("SORT",ORDNr) #dim blnBruto As %Boolean = "" Do fobAlgemeen ; (KLNr,KLID,Taal,ORDNr) ; ORDER Set LijnObj="" Do SortOrder(KLNr,"F",ORDNr,.Sort) Set SortKey="" For Set SortKey=$O(Sort(SortKey)) Quit:(SortKey="") Do . Set PrevObj=$G(LijnObj) . Set PrevRec=$G(RecL) . Set RecL=Sort(SortKey) ; ^KOD(KLNr,"F",ORDNr,LijnNr) . Set LijnSoort=$P(RecL,"\",17) . If $P(LijnSoort,"#",1)?1(1"KF0",1"KF6") Do ; ProductLijn . . Set LijnObj=##class(pxProductLijn).BuildFromRec("O",RecL,KLNr,Taal,blnBruto,,lbDocRef) . . Do ..AppendLijn(LijnObj) . Else If $P(LijnSoort,"#",1)="KF11" Do ; TekstLijn . . Set LijnObj=##class(pxTekstLijn).BuildFromRec("O",RecL,PrevObj,PrevRec) . . If LijnObj=PrevObj Quit ; TekstItem added to Previous LijnObj . . Else Do ..AppendLijn(LijnObj) . Else If $P(LijnSoort,"#",1)="KF1925" Do ; Manuele Lijn / manuele ProductLijn . . Set LijnObj=##class(pxManueleLijn).BuildFromRec("O",RecL,KLNr,Taal,blnBruto,,lbDocRef) . . Do ..AppendLijn(LijnObj) . Else Do ; nothing . . Set LijnObj="" . ; Next LijnNr #dim PartijID As %String = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) #dim Klant As DOM.VKP.VanHoeckeKlant = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(PartijID) #dim blnToonOrderTotaal As %Boolean = ##class(TECH.Config.ConfigMgr).Instance().GeefBoolean("BL.FLOW.pxOrder_ToonOrderTotalenOpOrderBevestiging") #dim KlantInstellingenService As APPS.common.KlantInstellingenService = ##class(APPS.ApplicatieContext).Instance().GeefOrderVerwerkingAPI().GeefKlantInstellingenService() If (KlantInstellingenService.WilOrderTotaalZienOpOrderBevestiging(PartijID) || blnToonOrderTotaal) { #dim OrdPrijsRec As %String = ..GeefOrderPrijsRec(ORDNr) #dim GoederenMetPort As %String =$P(OrdPrijsRec,"\",2) #dim Btw As %String = $P(OrdPrijsRec,"\",4) #dim Port As %String = $P(OrdPrijsRec,"\",5) #dim TekstOrderTotaal As %String = "" #dim OrderTotaal As %Decimal = 0 If Klant.GeefBusinessType() = ##class(DOM.VKP.enu.BusinessType).B2C() { If BtwRegime { Set TekstOrderTotaal="OrderTotaalB2CInclBTW" Set OrderTotaal=GoederenMetPort+Btw } Else{ Set TekstOrderTotaal="OrderTotaalB2CExclBTW" Set OrderTotaal=GoederenMetPort } } Else { Set TekstOrderTotaal="OrderTotaalB2B" Set OrderTotaal=GoederenMetPort-Port } Set TekstOrderTotaal=##class(Res.Vertaling).GetVertaling($$$VertalingsGroep,TekstOrderTotaal,"L", Taal) Set:(blnBruto) TekstOrderTotaal = TekstOrderTotaal_" ("_##class(Res.Vertaling).GetVertaling($$$VertalingsGroep,"OrderTotaal_inclKorting","L", Taal)_")" #dim tmpRec As %String = "" Set $P(tmpRec,"\",3)="" ; AANTAL Set $P(tmpRec,"\",5)=TekstOrderTotaal ; OMS Set $P(tmpRec,"\",6)="" ; EHPRIJS Set $P(tmpRec,"\",8) = ..GeefBTWCodeVanOrder(Order) ; BTWCode Set $P(tmpRec,"\",9)=OrderTotaal ; BEDRAG Set $P(tmpRec,"\",16)="" ; BEDRAG (BRUTO) Set $P(tmpRec,"\",17)="KOFGRP##0" ; LijnSoort (GroepTotaal, 0:geen pagebreak) Set $P(tmpRec,"\",20)="" ; IdentNr Set LijnObj=##class(pxManueleLijn).BuildFromRec("O",tmpRec,KLNr,Taal,blnBruto,,lbDocRef) Do ..AppendLijn(LijnObj) } Do fobOrderEnd ; (KLNr,ORDNr,Taal) Do fobPPODFields() // Lock terug afzetten Lock -^OD("SORT",ORDNr) Quit $$$OK fobAlgemeen ; (KLNr,KLID,Taal,ORDNr) Set Rec=$G(^KOD(KLNr,"F",ORDNr,1)) Set blnBruto=''($P(Rec,"\",27)) Set ..DOCDATUM=$$EXTDATE^vhLib.DataTypes($H) Set ..ORDERNR=ORDNr Set ..ORDERDATUM=$P(Rec,"\",2) Set ..ORDERREF=$P(Rec,"\",3) Set ..BTWNR=##class(BL.FOP.Derde.pxAdres).BtwNrTekst($P(^KKL(KLID,0),"\",16)) Set ..TAAL=Taal Set ..REMBOURS=blnRembours Set ..ISORGALUX=IsOrgalux Set ..BRUTONETTO=$S(blnBruto:"B",1:"N") Set ..MUNT=$P(Rec,"\",18) Set ..KLORDREF=..KlantOrderRef($P(Rec,"\",19),$P(Rec,"\",40),$P(Rec,"\",9) ) ; (OrgalRef,EdiNummer,VHisieVwCust) Set ..ORDERTYPE=$P(Rec,"\",25) Set ..EDIBron = $P(Rec,"\",53) Set AfzenderHoofdingBepaler = ##class(BL.Flow.Proxy.impl.AfzenderHoofdingBepaler).%New() #dim AfzenderHoofdingDto As BL.Flow.Proxy.dto.AfzenderHoofdingDto = AfzenderHoofdingBepaler.GeefAfzenderHoofdingDto(..EDIBron) Set ..AfzenderHoofding = AfzenderHoofdingDto.AfzenderHoofding Set ..HeaderType = AfzenderHoofdingDto.HeaderType ; FACTADRES Set pxFAdr=##class(BL.FOP.Derde.pxKlantAdres).%New() Do pxFAdr.FillViaKLNr(KLNr,"") Set ..FACTADRES=pxFAdr ; LEVADRES Set Rec3=$G(^KOD(KLNr,"F",ORDNr,3)) If $L($P(Rec3,"\",2)) Do . Set pxLAdr=##class(BL.FOP.Derde.pxLevAdres).%New() . Do pxLAdr.FillViaKLNr(KLNr,Rec3) . Set ..LEVADRES=pxLAdr Quit SortOrder(KLNr,FactSoort,ORDNr,Sort) ; Sort via .Local Kill Sort Set OLNr=99,GroepCnt=$A("A"),(TempKlOL,TextBlock)="",(OrdNet,OrdBrut)=0 For Set OLNr=$O(^KOD(KLNr,FactSoort,ORDNr,OLNr)) Quit:'OLNr Do . Set RecL=^KOD(KLNr,FactSoort,ORDNr,OLNr) . If KLNr=12486 Set OrdNet=OrdNet+$P(RecL,"\",9),OrdBrut=OrdBrut+$P(RecL,"\",16) ; Voor SFS het ordertotaal afdrukken . If $$fobHeeftSpecialeSortering(KLNr) Do . . Set KlOLNr=$P(RecL,"\",35) Set:$P(RecL,"\",17)="KF5" GroepCnt=GroepCnt+1 . . Do:KlOLNr="" . . . If $P($P(RecL,"\",17),"#")="KF11" Set:TextBlock="" TextBlock=$P($P(RecL,"\",18),";") . . . Else If $P(RecL,"\",17)="KF5" Set KlOLNr=" " . . . Else If $P($P(RecL,"\",17),"#")="KF1925" Set KlOLNr=TempKlOL . . Set $P(KlOLNr,".")=$J($P(KlOLNr,"."),3) . . Set SortKey=$C(GroepCnt)_"~"_KlOLNr_"~"_OLNr,Sort(SortKey)=RecL . . Set TempKlOL=KlOLNr . . If $P($P(RecL,"\",17),"#")="KF11",TextBlock'=$P($P(RecL,"\",18),";") Set GroepCnt=GroepCnt+1 . Else Do ; Alle andere klanten . . Set Sort(OLNr)=RecL Do:OrdNet . Set RecL="",$P(RecL,"\",5)=##class(Res.Vertaling).GetVertalingPlus("DOC","OrderTotaal",,Taal) . Set ($P(RecL,"\",9),$P(RecL,"\",10))=OrdNet,$P(RecL,"\",16)=OrdBrut,$P(RecL,"\",17)="KF1925###" . Set OLNr=$O(Sort(""),-1)+1,Sort(OLNr)=RecL Quit fobHeeftSpecialeSortering(KLNr) #dim KlantID As DOM.VKP.VanHoeckeKlantID = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) #dim HeeftSpecialeSortering As %Boolean = ##class(TECH.StringUtils).Equals(KlantID,##class(DOM.VKP.enu.Klant).Keller() ,##class(DOM.VKP.enu.Klant).DKGDeKeukenfabriek()) quit HeeftSpecialeSortering fobOrderEnd ; (KLNr,ORDNr,Taal) Set ..HoutCertificaten=##class(BL.Flow.Proxy.pxHoutCertificaat).BepaalHoutCertificatenViaOrder(ORDNr,Taal) Do fobVoorWaarden ; (KLNr,ORDNr,Taal) Quit fobVoorWaarden ; (KLNr,ORDNr,Taal) Do ..BuildVoorWaarden(KLNr,ORDNr,Taal) Quit fobPPODFields() Quit:($G(lbPPODKeywords)=$LB()) Set Ref="ORD;"_ORDNr Set pxPPOD=##class(BL.Flow.Proxy.pxPPODfields).Create($$$ppodtOrder, $G(Regio," "), $G(Taal," "), $G(KLNr," "), Ref, " ", $G(Bijlage," "), $G(DocSort," "), $G(EnvelopKey," "), ) Do:($LL($G(lbPPODKeywords))) pxPPOD.FillFromLB(lbPPODKeywords) Set ..PPODFIELDS=pxPPOD Quit ]]> Order:DOM.VKP.Order 1 %String CW: Goederen is incl. port ]]> OrderID:%String 1 0 %String Order Voorwaarden ProcedureBlock doesn't allow use of $NAME(...) function KLNr:%String,ORDNr:%String,Taal:%String 0 Is een Orgalux order ? 1 ORDNr:%String 0 %Boolean Oorsprong:BL.Flow.Offerte.enu.Oorsprong,Taal:DOM.enu.Taal 1