persistent vhLib.Macro,BL.Derde.KlantSpecifiek 0 %Library.Persistent 0 %Library.Date Derde.Klant.Klant Res.Munt Flow.Had.OrderLijn parent array OrderHfd 1 %Library.Integer %Library.String %Library.Integer %Library.String %Library.Stream characterstream 1 Uniekheid index voor property OrderNr 1 1 OrderNr 1 Klant Creëren van de moederbon in Admin (^MBLOG). 299999 Number=200000 For Quit:'$D(^KTO1(Number))&'$D(^RCP("D",Number)) Set Number=Number+1 Set:Number>299999 Number=200000 Set ^KTO(0,"TR")=Number+1 Lock -^KTO(0,"TR") Set %this.ToeleveringsNr=Number Quit ]]> Alle producten van het order worden eveneens overgebracht naar Admin (^KPR en ^HADPR).]]> "ORDF"
  • opties van Prod.GADef.Kaderdeur
  • opties van Prod.GADef.Banco]]> 1 Input:%Library.String,DevObj:%Library.String,Taal:%Library.String,Opties:%Library.String,XSLURL:%Library.String ") . Do WRITE^XMLWRITE(DevObj,"") . Do WRITE^XMLWRITE(DevObj,NL) If $L($G(XSLURL))||($IsObject($G(%request))&&($G(%request.Data("NOXSL",1))=1)) Do . Do WRITE^XMLWRITE(DevObj," ]>") . Do WRITELN^XMLWRITE(DevObj) Do:(Opties["ORDF") BEGINTAG^XMLWRITE(DevObj,"ORDER") Do WRITE^XMLWRITE(DevObj,NL) If ObjTyp="ORD" Do ;Order . Set ORDNr=ObjRef . Set Rec=^KOD(KLNr,"F",ORDNr,1) . Set Ref=$P(Rec,D,3) . Set OrdDat=$P(Rec,D,2) . Set TOERef=TOENr ; Set:'TOERef TOERef=$P(Rec,D,4) . Set KLNm=$P(^DKL("K","KL.A",KLNr,0),D,2) . Set Gemeente=$P(^DKL("K","KL.A",KLNr,0),D,7) . Set LEVNr=$S(TOERef="":"",1:$P($G(^KTO1(TOERef)),D)) . Set:($L(LEVNr)) DueOutH=$P($G(^KTO(LEVNr,TOERef,1)),"\",19) . Set Global=$NA(^KOD(KLNr,"F",ORDNr)) If ObjTyp="OFF" Do ; Offerte . Set Rec=^KOFKL(KLNr,"F",ObjRef,1) . Set Ref=$P(Rec,D,3) . Set OrdDat=$P(Rec,D,2) . Set TOERef="",TOENr="" . Set KLNm=$P(^DKL("K","KL.A",KLNr,0),D,2) . Set Gemeente=$P(^DKL("K","KL.A",KLNr,0),D,7) . Set Global=$NA(^KOFKL(KLNr,"F",ObjRef)) If ObjTyp="TOE" Do ; Toelevering . Set LEVNr=$P($G(^KTO1(ObjRef)),D) . Set Rec=^KTO(LEVNr,ObjRef,1) . Set Ref=$P(Rec,D,3) . Set OrdDat=$P(Rec,D,2) . Set DueOutH=$P(Rec,"\",19) . Set TOERef=ObjRef . Set TOENr="" . Set KLNm=$S(KLNr:$P(^DKL("K","KL.A",KLNr,0),D,2),1:"") . Set Gemeente=$S(KLNr:$P(^DKL("K","KL.A",KLNr,0),D,7),1:"") . Set Global=$NA(^KTO(LEVNr,ObjRef)) . Set Rec=$S($G(LEVNr):^KTO(LEVNr,ObjRef,1),1:"") . Set ORDNr=$P(Rec,D,7) . Do:(ORDNr) TAGWRITE^XMLWRITE(DevObj,"ORDERNR",ORDNr) Do TAGWRITE^XMLWRITE(DevObj,"TAAL", Taal) Do TAGWRITE^XMLWRITE(DevObj,"KLANTORDERREF", $$ConvertToHTML^vhRtn1(Ref)) ; $$REPLACE^vhRtn1(Ref, "&","&") Do TAGWRITE^XMLWRITE(DevObj,"PRODUCTIENR", TOERef) If $L($G(DueOutH)) Do . Set T=$$FMTDT^vhDTyp(DueOutH) . Set:($G(KLNr))&&($G(ORDNr))&&($D(^KOD(KLNr,"F",ORDNr))) VerzW=$$SHOW^KLVERZW(,KLNr,ORDNr) . Set:($L($G(VerzW)))&&(VerzW'["SP")&&(VerzW'["DI1") T=T_" "_VerzW . Do TAGWRITE^XMLWRITE(DevObj,"DUEOUTDATE",T) . ;Do TAGWRITE^XMLWRITE(DevObj,"DUEOUTDATE",$ZD($P(DueOutH,",",1),4)) . ;Do TAGWRITE^XMLWRITE(DevObj,"DUEOUTTIME",$ZT($P(DueOutH,",",2),2)) ;Do TAGWRITE^XMLWRITE(DevObj,"KLANTORDERNR", "") Do TAGWRITE^XMLWRITE(DevObj,"BESTELDATUM", OrdDat) Do WRITE^XMLWRITE(DevObj,NL) ; Klant gegevens New tmpKlant Set tmpKlant=##class(Derde.Klant.Klant).%OpenId(KLNr) Do tmpKlant.XMLWrite(DevObj,$G(Taal),$G(Opties),"") Do tmpKlant.%Close() ; Orderlijn(en) Prefetch Kill arOrd Set LijnRef=99 For Set LijnRef=$O(@Global@(LijnRef)) Quit:(LijnRef="") Do . Set LijnRec=@Global@(LijnRef) . Set PRNr=$P(LijnRec,D,2) . Quit:(PRNr'?4.7N) . Quit:('$D(^KPR(PRNr,"J6332"))) . Quit:('$D(^KPR(PRNr,"G"))) . Quit:(TOENr)&&($P(LijnRec,D,27)'=TOENr) . Quit:($$ISTBX^PRODUKT2(PRNr))&&('..AfdrukTBXNeeded(PRNr,KLNr)) . Set arOrd(LijnRef)=LijnRec ; Orderlijn(en) Loop Set LijnNr=0 Set LijnRef=99 For Set LijnRef=$O(arOrd(LijnRef)) Quit:(LijnRef="") Do . Set LijnRec=arOrd(LijnRef) . Set PRNr=$P(LijnRec,D,2) . Quit:(PRNr="") ; extra check op PRNr, andere checks reeds in Prefetch gedaan . Set objProduct=##class(Prod.Product).%OpenId(PRNr) . Set LijnNr=LijnNr+1 . Set Qty=$P(LijnRec,D,3) . Do xmlwBuildBarCodeData . Do WRITE^XMLWRITE(DevObj,NL) . Do BEGINTAG^XMLWRITE(DevObj,"ORDERLIJN") . Do WRITE^XMLWRITE(DevObj,NL) . Do TAGWRITE^XMLWRITE(DevObj,"LIJNREF", LijnNr) . Do TAGWRITE^XMLWRITE(DevObj,"KLANTPRODREF", $P($G(^KPR(PRNr,"G")),D,13)) ; ProductID . Do TAGWRITE^XMLWRITE(DevObj,"QTY", Qty) ; Aantal . ; GADefObject Open+XMLWrite . If (Opties'[";PROM;PRKR;PRQTY") Do Set Opties=Opties_";PROM;PRKR;PRQTY" . If (Opties'["ORDSORT") Do Set Opties=Opties_";ORDSORT" . Set %WithXMLDeclaration=0 . Do:(objProduct) objProduct.XMLWrite(KLNr_"\"_Qty_"\",DevObj,$G(Taal),$G(Opties),"") . Kill %WithXMLDeclaration . ;Do:(objProduct) objProduct.%Close() . Set:(objProduct) objProduct="" . Do ENDTAG^XMLWRITE(DevObj,"ORDERLIJN") . Do WRITE^XMLWRITE(DevObj,NL) ; Prepare Barcode images Do xmlwPrepBarcodeIMGs Do:(Opties["ORDF") ENDTAG^XMLWRITE(DevObj,"ORDER") Do WRITE^XMLWRITE(DevObj,NL) Quit xmlwBuildBarCodeData Set:($IsObject(objProduct)) arBarCode(LijnNr)=objProduct.GetBarCodeData() Quit xmlwPrepBarcodeIMGs #define bcDossier 1 ; Call WebService once for the concatenated Values. New i,BCValue,BCValues,ws,sc ; lbBCData Set ws=##class(WS.BarCode.BarcodeSoap).%New() Do ws.SetTimeOut(30) Set BCValues="" Set i="" For Set i=$O(arBarCode(i)) Quit:(i="") Do:$L($G(arBarCode(i))) . Set BCValue=TOERef_$LG(arBarCode(i),$$$bcDossier) . ; Call WebService for each BarCode . ;Set sc=ws.CreateBarcode(BCValue,"\") . ; Concatenate values . Set BCValues=BCValues_"\"_BCValue Set:($E(BCValues,1)="\") $E(BCValues,1)="" Set $ZTRAP="xmlwSoapErrorBarCode" Set:($L(BCValues)) sc=ws.CreateBarcode(BCValues,"\") Set $ZTRAP="" ;d WL^vhDBG(BCValues_" --> "_$G(sc)) Set ws="" Quit xmlwSoapErrorBarCode New CustomMsg // Send mail Set CustomMsg="XMLWrite: BarCodes="_BCValues_" : CreateBarcode() Failed." Do SOAPErrorMail^cspBasis.SOAPlib("",,CustomMsg,) ; use default message settings Set $ZE="" Quit ]]> Controle of de afdruk van een TBX productfiche noodzakelijk is 1 PRNr,KLNr Opties :
  • F : Full XML-beschrijving; i.e. met tag <ORDER>
  • .

    XSLURL : Toevoegen van de reference naar de XSL. Indien Leeg (""), tags worden weggelaten.]]> DevObj:%Library.String,Taal:%Library.String,Opties:%Library.String,XSLURL:%Library.String="" ") . Do WRITE^XMLWRITE(DevObj,"") . Do WRITE^XMLWRITE(DevObj,NL) Do:(Opties["F") BEGINTAG^XMLWRITE(DevObj,"ORDER") Do WRITE^XMLWRITE(DevObj,NL) ; Order gegevens Do TAGWRITE^XMLWRITE(DevObj,"KLANTORDERREF", $$REPLACE^vhRtn1(%this.Referentie, "&","&")) Do TAGWRITE^XMLWRITE(DevObj,"PRODUCTIENR", %this.ToeleveringsNr) ;Do TAGWRITE^XMLWRITE(DevObj,"KLANTORDERNR", "") Do TAGWRITE^XMLWRITE(DevObj,"BESTELDATUM", $ZDATE(%this.CreatieDatum,4)) Do WRITE^XMLWRITE(DevObj,NL) ; Klant gegevens Do BEGINTAG^XMLWRITE(DevObj,"KLANT") Do TAGWRITE^XMLWRITE(DevObj,"NAAM",$$REPLACE^vhRtn1(%this.Klant.Nummer_" - "_%this.Klant.Naam,"&","&")) Do TAGWRITE^XMLWRITE(DevObj,"GEMEENTE",$$REPLACE^vhRtn1(%this.Klant.StraatNrBus, "&","&")) ; more to come ... Do ENDTAG^XMLWRITE(DevObj,"KLANT") Do WRITE^XMLWRITE(DevObj,NL) ; Orderlijn(en) Set OrderNr=%this.OrderNr Set LijnNr=0 Set Reslt=##class(%ResultSet).%New("Flow.Had.OrderLijn:LijstPerOrder") Do Reslt.Execute(OrderNr) For Quit:'Reslt.Next() Do . Set LijnNr=LijnNr+1 . Do WRITE^XMLWRITE(DevObj,NL) . Do BEGINTAG^XMLWRITE(DevObj,"ORDERLIJN") . Do WRITE^XMLWRITE(DevObj,NL) . Do TAGWRITE^XMLWRITE(DevObj,"LIJNREF", LijnNr) . Do TAGWRITE^XMLWRITE(DevObj,"KLANTPRODREF", Reslt.GetData(5)) ; ProductID . Do TAGWRITE^XMLWRITE(DevObj,"QTY", Reslt.GetData(4)) ; Aantal . Do TAGWRITE^XMLWRITE(DevObj,"PRIJS", Reslt.GetData(6), "MUNT="""_Reslt.GetData(7)_"""") ; NettoPrijs + attr. Munt . ;Do TAGWRITE^XMLWRITE(DevObj,"LEVERWEEK", "") . ;Do TAGWRITE^XMLWRITE(DevObj,"LEVERDATUM", "") . ; GADefObject Open+XMLWrite . Set:(Reslt.GetData(3)) objGADef=##class(Prod.GADef.KaderDeur).%OpenId(Reslt.GetData(3)) . Do:(objGADef) objGADef.XMLWrite(DevObj,Taal,"GAV;GAO","") . Do:(objGADef) objGADef.%Close() . Do ENDTAG^XMLWRITE(DevObj,"ORDERLIJN") . Do WRITE^XMLWRITE(DevObj,NL) Do Reslt.%Close() Do:(Opties["F") ENDTAG^XMLWRITE(DevObj,"ORDER") Do WRITE^XMLWRITE(DevObj,NL) Quit ]]> Method voor oproep via ActiveX De output zal geschreven worden naar %this.XMLStreamC Input:%Library.String,Taal:%Library.String,Opties:%Library.String,XSLURL:%Library.String 0 Method voor oproep via ActiveX De output zal geschreven worden naar %this.XMLStreamC Taal:%Library.String,Opties:%Library.String,XSLURL:%Library.String 0 Ophalen van alle orders van een klant %Library.SQLQuery DerdeID:%Library.Integer SELECT OrderNr, Referentie, CreatieDatum FROM Flow_Had.OrderHfd WHERE (Klant = :DerdeID) ORDER BY CreatieDatum %Library.CacheStorage ^Flow.Had.OrderHfdD OrderHfdDefaultData ^Flow.Had.OrderHfdD ^Flow.Had.OrderHfdI ^Flow.Had.OrderHfdS %%CLASSNAME node 0 CreatieDatum Klant Munt Referentie VerantwoordelijkeKlant ToeleveringsNr OrderLijn subnode "OL"