PVXML ;NEW PROGRAM [ 04/03/2003 4:59 PM ] ;Afdruk ORGALUX verpakkingslijst [ 09/21/2001 3:42 PM ] Do WRITEBON(306450,"NF","F","Orgalux verpak.xsl","","test.xml") Quit WRITEBON(BONNr,Talen,Opties,XSLURL,Dir,FileNm) New Dev,Rec,PL,ORDNr,KlantRef,KLNr,QtyDoos,PRNr,LNr Set Dev=0 Set Dev=$$OPEN^vhDEV(Dir,FileNm,"W") Use Dev Do:Opties["F" BEGINTAG^cXMLWRITE(Dev,"?xml version=""1.0""?") Do:$L($G(XSLURL)) BEGINTAG^cXMLWRITE(Dev,"?xml-stylesheet type=""text/xsl"" href="""_XSLURL_"""?") Set KLNr=$P(^KU1(BONNr,"F"),D,1) Set LNr="99" Kill PL,QtyDoos For Set LNr=$O(^KUL(KLNr,"F",BONNr,LNr)) Quit:'LNr Do . Set Rec=^KUL(KLNr,"F",BONNr,LNr) . If $P(Rec,D,17)="KF5" Do .. Set ORDNr=$P($P(Rec,D,5)," - ",1) .. Set KlantRef=$$CONVHTML^vhRtn1($P(Rec,D,20)) .. If $D(PL) Do ... Do WRITEXML(Dev,KLNr,BONNr,ORDNr,KlantRef,QtyDoos,$NA(PL),Talen) ... Kill PL,QtyDoos . Else If $P(Rec,D,17)="KF6" Do .. Set PRNr=$P(Rec,D,2) .. Quit:PRNr'?4.7N .. If PRNr=68856 Do Quit ; Overdoos verpakking ... Set QtyDoos=$G(QtyDoos)+$P(Rec,D,3) .. Set PL=$G(PL)+1 .. Set PL(PL)=PRNr_D_$P(Rec,D,3) If $D(PL) Do . Do WRITEXML(Dev,KLNr,BONNr,ORDNr,KlantRef,$G(QtyDoos,0),$NA(PL),Talen) Close:0'[Dev Dev Quit WRITEXML(Dev,KLNr,BONNr,ORDNr,KlantRef,QtyDoos,ProdList,Talen) ; ProdList via $NAME(Ref) doorgegeven en bevat ; @ProdList@(VolgNr)=PRNr\Qty ; New KLNm,I,Rec Set Talen=$G(Talen,"NF") Set KLNm=$P(^KKL(^KK1(KLNr),8),D,1) ; Orgalux naam Set:KLNm="" KLNm=$P(^KKL(^KK1(KLNr),0),D,2) ; Klantnaam Do BEGINTAG^cXMLWRITE(Dev,"VERPAKLIJST") Do TAGWRITE^cXMLWRITE(Dev,"KLANTNR",KLNr) Do WRITELN^cXMLWRITE(Dev) Do:$L($P($G(^KKL(^KK1(KLNr),7)),D,1)) TAGWRITE^cXMLWRITE(Dev,"KLANTLOGO",$P($G(^KKL(^KK1(KLNr),7)),D,1)) Do WRITELN^cXMLWRITE(Dev) Do TAGWRITE^cXMLWRITE(Dev,"KLANTNAAM",KLNm) Do WRITELN^cXMLWRITE(Dev) Do TAGWRITE^cXMLWRITE(Dev,"BON",BONNr) Do WRITELN^cXMLWRITE(Dev) Do TAGWRITE^cXMLWRITE(Dev,"ORDER",ORDNr) Do WRITELN^cXMLWRITE(Dev) Do TAGWRITE^cXMLWRITE(Dev,"KLANTREF",KlantRef) Do WRITELN^cXMLWRITE(Dev) Do TAGWRITE^cXMLWRITE(Dev,"DOOS",QtyDoos,$$PARAMFILL^cXMLWRITE("TYPE","STD")) For I=1:1:$L(Talen) Do . Do TAGWRITE^cXMLWRITE(Dev,"TAAL",$E(Talen,I)) . Do WRITELN^cXMLWRITE(Dev) Set VolgNr="" For Set VolgNr=$O(@ProdList@(VolgNr)) Quit:VolgNr="" Do .Set Rec=@ProdList@(VolgNr) .Do ONEPROD($P(Rec,D,1),$P(Rec,D,2),"QO") Do ENDTAG^cXMLWRITE(Dev,"VERPAKLIJST") Quit ONEPROD(PRNr,Qty,Opties) ;Opties="O" ;orderverwerking incl. QTY ; ="L" ;lijst kindproducten incl. ; ="K" ;Is kindproduct New KortTxt,IDNr,TekRef,Cnt,J,I,Node,Piece,Txt Set Opties=$G(Opties) Do VANNAAR^vhTERMINA("P") Do BEGINTAG^cXMLWRITE(Dev,$S(Opties["K":"KINDPRODUCT",1:"PRODUCT")) Do WRITELN^cXMLWRITE(Dev) Set KortTxt=$P(^KPR(PRNr,0),D) Set:Opties'["K" KortTxt=$E(KortTxt,4,99) Set TekRef=$$TEKREF(PRNr) Set IDNr=$P(^KPR(PRNr,2),D,25) Do TAGWRITE^cXMLWRITE(Dev,"PRNR",PRNr) Do WRITELN^cXMLWRITE(Dev) Do TAGWRITE^cXMLWRITE(Dev,"KORTTEKST",$$CONVHTML^vhRtn1(KortTxt)) Do WRITELN^cXMLWRITE(Dev) Do TAGWRITE^cXMLWRITE(Dev,"IDENTNR",IDNr) Do WRITELN^cXMLWRITE(Dev) Do:Opties'["K" TAGWRITE^cXMLWRITE(Dev,"TEKREF",TekRef),WRITELN^cXMLWRITE(Dev) Do:Opties["Q" TAGWRITE^cXMLWRITE(Dev,"QTY",Qty) Do WRITELN^cXMLWRITE(Dev) If Opties["O" For I=1:1:$L(Talen) Do . Set Taal=$E(Talen,I) . Set:Taal="N" List="0.2,0.11,6.1,6.2,6.3" . Set:Taal="F" List="1.22,3.21,8.1,8.2,8.3" . Set:Taal="D" List="2.2,3.23,10.1,10.2,10.3" . Set:Taal="E" List="2.1,3.22,12.1,12.2,12.3" . Do BEGINTAG^cXMLWRITE(Dev,"OMS",$$PARAMFILL^cXMLWRITE("TAAL",Taal)) . Set Cnt=0 . For J=1:1:$L(List,",") Do .. Set Node=$P($P(List,",",J),".",1) .. Set Piece=$P($P(List,",",J),".",2) .. Set Txt=$P($G(^KPR(PRNr,Node)),D,Piece) .. Quit:Txt="" .. Set Cnt=Cnt+1 .. Do TAGWRITE^cXMLWRITE(Dev,"LIJN",$$CONVHTML^vhRtn1(Txt),$$PARAMFILL^cXMLWRITE("VOLGNR",Cnt)) .. Do WRITELN^cXMLWRITE(Dev) . Do ENDTAG^cXMLWRITE(Dev,"OMS") . Do WRITELN^cXMLWRITE(Dev) Do:Opties["L" KINDPROD(PRNr) Do ENDTAG^cXMLWRITE(Dev,$S(Opties["K":"KINDPRODUCT",1:"PRODUCT")) Do WRITELN^cXMLWRITE(Dev) Quit TEKREF(PRNr,Opties) New TekRef Set TekRef=$P(^KPR(PRNr,0),D) Set TekRef=$E(TekRef,4,99) Set TekRef=$TR($E(TekRef,1,8),".# ","") Set:($E(TekRef,7,8)=16)!($E(TekRef,7,8)=18)!($E(TekRef,7,8)=19) $E(TekRef,7,8)="xx" Set:($E(TekRef,7,8)="IN")!($E(TekRef,7,8)="GR")!($E(TekRef,7,8)="WI") $E(TekRef,7,8)="" Quit $S($L(TekRef):TekRef_".Gif",1:"") KINDPROD(PRNr) New KPRNr,Sort Set KPRNr="" For Set KPRNr=$O(^PRLINK("D",PRNr,KPRNr)) Quit:KPRNr="" Do . Set Sort($$SORTKEY^PRODUKT(KPRNr))=KPRNr_D_$P(^PRLINK("D",PRNr,KPRNr),D) Set Sort="" For Set Sort=$O(Sort(Sort)) Quit:Sort="" Do . Do ONEPROD($P(Sort(Sort),D,1),$P(Sort(Sort),D,2),"QK") Quit CATALOG ; Opbouw van een XML document met ALLE ORGALUX producten en de kinderen ervan. New KLNm,Dev,I,Rec Set Talen=$G(Talen,"NF") Set Dev=0 Set Dev=$$OPEN^vhDEV(,"OrgaluxCataloog.xml","W") Use Dev Do WRITE^cXMLWRITE(Dev,"") Do WRITELN^cXMLWRITE(Dev) Do BEGINTAG^cXMLWRITE(Dev,"VERPAKLIJST") Set (HG,GR,SG,KORTT)="" For Set HG=$O(^KPH(HG)) Quit:HG="" Do:HG["OL" .For Set GR=$O(^KPH(HG,GR)) Quit:GR="" Do ..Quit:GR["SHR" ;Showroom ..Quit:GR["BRO" ;Brochures ..For Set SG=$O(^KPH(HG,GR,SG)) Quit:SG="" Do ...For Set KORTT=$O(^KPH(HG,GR,SG," ",KORTT)) Quit:KORTT="" Do ....Set PRNr=^KPH(HG,GR,SG," ",KORTT) ....Do ONEPROD(PRNr,,"LO") Do ENDTAG^cXMLWRITE(Dev,"VERPAKLIJST") Close:0'[Dev Dev Quit