BL.EC.Common,Prod.Product,vhLib.Macro 1 %RegisteredObject 0 BOOLEAN 1 %String %String BL.EC.importBXF.pxDynaplan %String 1 BL.EC.importBXF.pxCorpus %String 1 %Boolean 0 1 flgDebugMode 1 FileName %CharacterStream Converteert XML naar Orders in VHisie en/of TBXWebsite * Werkwijze Method ..Init : init Method ..XML2Array : converteren XML naar array Method ..VerwerkOnderdelen : converteren naar VHisie order Method ..VerwerkTBX : converteren naar TBX order * Result Geeft foutmelding terug ( "" geen probleem ) ]]> XMLAsStream:%CharacterStream,Options,Taal %String Opzetten van initiele waarden * Werkwijze Aanmaak ..ltTBXLadeCodes : lookup table voor TBX LadeCode ]]> Opties Converteert XML naar Array * Werkwijze XML wordt geparsed en property arXMLData wordt opgevuld. arXMLDATA 1 : "PR" , CorpusNaam , ArtikelNr_" "_IdentNr,"#") = Aantal .........................................,"A") = ArtikelNr .........................................,"I") = IdentNr .........................................,"OM") = Omschrijving 2 : "TBX" , "CP" , CorpusNaam , LadeNr ) = Design 3 : "TBX" , "DS" , Design , CorpusNaam , LadeNr , Kenmerk ) = Waarde ............................................, "pxTBXLade" ) = oRef naar PROD.GAData.TBXLade 4 : "-1" , CorpusNaam , CorpusOnderdeel , ArtikelNr ) = $LB(IdentNr,Omschrijving) // probleem gevallen ]]> Data,Taal 1 %Status Set ..Version gelijk aan versie gevonden in XML ]]> 1 %String Haalt ..Corpus.Commissie op vanuit ..Corpus ]]> 1 1 CorpusOnderdeel 1 pxCorpusOnderdeel,CorpusOnderdeel 1 warnings . . . Do ..SetTBXKenmerkenSpecial(.arTBXKenm,pxArtikel) . . . Set %arXMLData("-1",..Corpus.Naam,CorpusOnderdeel,pxArtikel.ArtikelNummer) = $LB(pxArtikel.Identificatie,pxArtikel.Omschrijving) . . . Set Info = pxArtikel.ArtikelNummer _$C(9)_ pxArtikel.Identificatie _ $C(9)_pxArtikel.Omschrijving _$C(9) . . . ;$$$AddToLog("I","EDI DynaPlug - DYNAPLAN","MISSING PRODUCTS",Info) . . . Do ..VerwerkProducten(pxArtikel,CorpusOnderdeel) . . If '##class(BL.Prod.DynaLog.TBXProduct).IsTBXProduct(pxArtikel.Identificatie,pxArtikel.ArtikelNummer ) Do . . . ; indien product geen TBX product is doorsturen verwerk product als onderdeel. . . . Do ..VerwerkProducten(pxArtikel,CorpusOnderdeel) . Else Do . . Do ..VerwerkProducten(pxArtikel,CorpusOnderdeel) If ( CorpusOnderdeel [ "Lade" ) && ( ..Opties'["LO" ) && ( ..Corpus.CorpusType '[ "SPACECORNER" ) Do . Do:(CorpusOnderdeel="BinnenLade") ..BerekenOpvullijsten(.arTBXKenm,pxCorpusOnderdeel) . Set Index = $O(%arXMLData("TBX","CP",..Corpus.Naam,""),-1)+1 . Set pxTBXLade = ..CreeerTBXLade(.arTBXKenm,..Corpus.Naam_" # "_Index) . If '$L(pxTBXLade.DS) Do // Geen DS = Geen TBX Lade --> verwerken als aparte onderdelen ;;; . . Set IdxArtikel = "" . . For Set pxArtikel = pxBeslag.Onderdelen.GetNext(.IdxArtikel) Quit:(IdxArtikel="") Do . . . Do ..VerwerkProducten(pxArtikel,CorpusOnderdeel) . Else Do . . Set %arXMLData("TBX","CP",..Corpus.Naam,Index) = pxTBXLade.DS . . Merge %arXMLData("TBX","DS",pxTBXLade.DS,..Corpus.Naam,Index) = arTBXKenm Quit ]]> arTBXKenm,pxBinnenLade 1 0 ) Do . Set IdxInsprong = "" . For Set pxInsprong = pxBinnenLade.Insprong.GetNext(.IdxInsprong) Quit:(IdxInsprong="") Do . . If pxInsprong.Naam [ "Links" Set arTBXKenm("OPVLLI") = ( pxInsprong.Afmetingen.Stop.Y - pxInsprong.Afmetingen.Start.Y ) . . Else Set arTBXKenm("OPVLRE") = ( pxInsprong.Afmetingen.Stop.Y - pxInsprong.Afmetingen.Start.Y ) Quit ]]> pxArtikel,CorpusOnderdeel,PRNr 1 Haalt TBX kenmerken op adv pxArtikel / specialekes / uitzonderingen * Returns arTBXKenm wordt vervolledigd met nieuwe kenmerken. ]]> arTBXKenm,pxArtikel 1 Haalt TBX kenmerken op adv pxArtikel,CorpusOnderdeel, PRNr * Returns arTBXKenm wordt vervolledigd met nieuwe kenmerken. * Parameters
  • arTBXKenm : ar waar gevonden resultaten plaats worden.
  • pxArtikel : BL.EC.importBXF.pxArtikel
  • CorpusOnderdeel : string ( ref -> BL.EC.importBXF.pxCorpus )
  • PRNr : integer ]]> 1 0 ) Set arTBXKenm("FRONTB","FB") = FBevestiging If BasisType = "BSD" Do . Set arTBXKenm("LA",BasisType) = "" If BasisType = "FRONTGRP" Do . Set arTBXKenm(BasisType,"Opties") = ##class(Prod.Kenmerk.DataDefinitie).Get("TB",PRNr,"Opties") If BasisType [ "RUG" Do . Set RugHoogte = $LG(##class(Prod.Kenmerk.DataDefinitie).Get("TB",PRNr,"RugHoogte")) . Quit:( ( $G(arTBXKenm("KLAS"))="SP2" ) && ( RugHoogte = "N" ) ) . Set:'$L($G(arTBXKenm(BasisType,"RH"))) arTBXKenm(BasisType,"RH") = RugHoogte If BasisType = "FRONTRL" Do . Set arTBXKenm("FRONTRL")="" . Set arTBXKenm("FRONTRL","Opties")=##class(Prod.Kenmerk.DataDefinitie).Get("TB",PRNr,"Opties") If BasisType = "LASP2" Do . Set arTBXKenm("KLAS")="SP2" . Set arTBXKenm("SPZK")="M" . Set YPos1=1 , YPos2=2 // Positie van ladebreedte verschilt in XML afhankelijk van gekozen hoogte . If $G(arTBXKenm("LA","ZW"))="M" && ( pxArtikel.Aantal = 2 ) Set YPos1=3 , YPos2=4 . Set arTBXKenm("SPZLI")= ..Corpus.Data.Afmeting.Breedte - ..Corpus.Data.WandDikte.Links - $zabs(pxArtikel.SubArtikel.GetAt(YPos1).YPos) - 14 // hardcoded ????? . Set SpoelBakBreedte = $zabs(pxArtikel.SubArtikel.GetAt(YPos1).YPos) - $zabs(pxArtikel.SubArtikel.GetAt(YPos2).YPos) - 8 // hardcoded ????? . Set arTBXKenm("SPZRE")= ..Corpus.Data.Afmeting.InterneBreedte - ( SpoelBakBreedte ) - arTBXKenm("SPZLI") . If ( arTBXKenm("SPZRE") ) '= ( arTBXKenm("SPZLI") ) Do . . Set arTBXKenm("NOT_WIZARD_PROOF")="" Quit ]]> Creert een TBXLade object adv een array met TBX Kenmerken. Prod.GAData.TBXLade 0 For Index = "RUGS","RUGH" Set:$D(arTBXKenm(Index,"RH")) pxTBXLade.RH = $piece(arTBXKenm(Index,"RH"),"-",1) Set pxTBXLade.KLAS = $G(arTBXKenm("KLAS"),"L") // Bepaal LadeCode If $L(pxTBXLade.KLAS) && $L(pxTBXLade.GT) && $L(pxTBXLade.LT) && $L(pxTBXLade.ZW) && $L(pxTBXLade.RH) do . Set Index = pxTBXLade.KLAS_"-"_pxTBXLade.GT_"-"_pxTBXLade.LT_"-"_pxTBXLade.ZW_"-"_pxTBXLade.RH . Set pxTBXLade.LC = $G(..ltTBXLadeCodes(Index)) // Bepaal BoxSide set RLAantal = $G(arTBXKenm("RL","#"),1) if ( ( pxTBXLade.DC = "S" ) || ( pxTBXLade.DC = "I" ) ) && ( pxTBXLade.LC?1(1"N",1"M",1"K",1"MS2",1"M/Z",1"K/Z") ) { set pxTBXLade.BS = "ZR" } elseif ( pxTBXLade.DC = "S" ) && ( pxTBXLade.LC?1(1"B",1"BS2",1"B/Z",1"C",1"C/Z",1"D",1"D/Z",1"DS2") ) && ( RLAantal = 1 ) { if ( $data(arTBXKenm("BSD")) ) { Set pxTBXLade.BS = "BD" } elseif ( $data(arTBXKenm("BSG")) ) { Set pxTBXLade.BS = "BG" } elseif ( $data(arTBXKenm("BSE")) ) { Set pxTBXLade.BS = "BG" } ; Boxside glas ipv enkelwandige boxside else { Set pxTBXLade.BS = "ER" } } elseif ( pxTBXLade.DC = "S" ) && ( pxTBXLade.LC?1(1"D",1"D/Z",1"DS2") ) && ( RLAantal = 2 ) { set pxTBXLade.BS = "DR" } elseif ( pxTBXLade.DC = "I" ) && ( pxTBXLade.LC?1(1"D",1"DL",1"DL/Z",1"DLS2") ) && ( $D(arTBXKenm("BXK")) ) { set pxTBXLade.BS = "CAP" } elseif ( pxTBXLade.DC = "I" ) && ( pxTBXLade.LC?1(1"D",1"C",1"DL",1"DL/Z",1"CL",1"CL/Z",1"DLS2") ) && ( $D(arTBXKenm("BXKA")) ) { set pxTBXLade.BS = "COV" } ;D WLIP^vhDBG(195,"Info : "_pxTBXLade.DC_"-"_pxTBXLade.LC_"-") ;D WLIP^vhDBG(195,$$ArrayToText^vhLib("arTBXKenm",.arTBXKenm)) // Bepaal Binnengreep Set FGOpties = $G(arTBXKenm("FRONTGRP","Opties")) If ( pxTBXLade.LT = "L" ) Set pxTBXLade.BGRP = "X" Else If ( pxTBXLade.LT = "B" ) Do . If ( pxTBXLade.DC = "I" ) && ( pxTBXLade.LC?1(1"DL/Z",1"CL/Z") ) Do . . If ( '$D(arTBXKenm("FRONTGRP","Opties") ) ) && ( '$D(arTBXKenm("FRONTRL","Opties") ) ) Set pxTBXLade.BGRP="R" . . Else If ( '$D(arTBXKenm("FRONTGRP","Opties") ) ) && ( $D(arTBXKenm("FRONTRL","Opties") )) Set pxTBXLade.BGRP="V" . . Else If ( $LF(FGOpties,"RG") || $LF(FGOpties,"G") ) Set pxTBXLade.BGRP="RG" . . Else If ( $LF(FGOpties,"RM") || $LF(FGOpties,"M") ) Set pxTBXLade.BGRP="RM" . Else If ( pxTBXLade.DC = "S" ) Do . . If ( pxTBXLade.LC?1(1"D/Z",1"C/Z") ) Set pxTBXLade.BGRP="H" . . Else If ( pxTBXLade.LC?1(1"B/Z",1"M/Z",1"K/Z") ) Do . . . If '$D(arTBXKenm("FRONTGRP","Opties") ) Set pxTBXLade.BGRP="Z" . . . Else If $LG(arTBXKenm("FRONTGRP","Opties") ) ?1(1"RG",1"G") Set pxTBXLade.BGRP="G" . . . Else If $LG(arTBXKenm("FRONTGRP","Opties") ) ?1(1"RM",1"M") Set pxTBXLade.BGRP="M" // Set BM If $D(arTBXKenm("CP","Opties")) Do . Set BM = $LG(arTBXKenm("CP","Opties")) . Set pxTBXLade.BM = $S(BM="B":"I",1:BM) // Bepaal opvullijsten Set flagSpecial = 0 For Property="OPVLRE","OPVLLI" Do . If ($G(arTBXKenm(Property))#25)=0 Do . . Set $zobjproperty(pxTBXLade,Property)=$G(arTBXKenm(Property))/25 . If ($G(arTBXKenm(Property))#25)'=0 Do . . Set flagSpecial = 1 // Indien opvullijsten afwijkende waarde hebben geen veelvoud van 25 -> omvormen naar binnenmaat If $G(flagSpecial) Do . Set pxTBXLade.CB = pxTBXLade.CB - ( pxTBXLade.WD * 2 ) - $G(arTBXKenm("OPVLRE")) - $G(arTBXKenm("OPVLLI")) . Set pxTBXLade.WD = "B" If $D(arTBXKenm("SPZK")) Do . Set pxTBXLade.SPZK = arTBXKenm("SPZK") . Set pxTBXLade.SPZLI = arTBXKenm("SPZLI") . Set pxTBXLade.SPZRE = arTBXKenm("SPZRE") Do ##class(BL.PR.GA.TandemBox).FillKleurDefaultsFromDS(pxTBXLade) // invullen van de standaard waarden if '$length(pxTBXLade.LC) { do ..AddWarning("-2","Ladecode ( KLAS-GT-LT-ZW-RH ) kon niet worden achterhaald") do ..AddWarning("-2",$$ObjToText^vhLib(pxTBXLade)) } Set arTBXKenm("pxTBXLade")=pxTBXLade Quit pxTBXLade ]]> BasisType,BlumKleur:%String 1 %String Converteer %blDynaPlan.arXMLData naar Flow.Offerte wordt aangeroepen vanuit VerwerkDynaPlanData 1 Converteer %blDynplan.arXMLData naar WS.TBX.Order en geef door naar TBoxWeb wordt aangeroepen vanuit VerwerkDynaPlanData 1 Opbouw hoofding voor arWSOrd %blDynaPlan en %ECSession moeten gekend zijn 1 1 0:"L",1:"")_$S(pxTBXLade.OPVLRE>0:"R",1:"") Set:arWSOrd("LN",TBXCounter,"OPVL")="LR" arWSOrd("LN",TBXCounter,"OPVL")="L+R" Set arWSOrd("LN",TBXCounter,"PRIJS")= "" Set arWSOrd("LN",TBXCounter,"SPZK")= pxTBXLade.SPZK _ $S(pxTBXLade.SPZK="M":";"_pxTBXLade.SPZLI_";"_pxTBXLade.SPZRE,1:"") Set arWSOrd("LN",TBXCounter,"STDL")="" Set arWSOrd("LN",TBXCounter,"VPK")="S" Quit ]]> 1 ZoekKey 0 %List 1 ZoekKey,Via:%String 1 %List Level,Warning "_Warning_"" quit ]]> 1 ") Do Body.CopyFrom($$ArrayToHTMLTable^vhLib(.Data)) } Set IdxWarning = "" For { Set IdxWarning = $O(..arXMLData("-2",IdxWarning)) Quit:IdxWarning="" do Body.WriteLine(..arXMLData("-2",IdxWarning)) } Do Body.WriteLine("
    Deze aanvraag werd ingediend door gebruiker :
    ") Set UserNaam = ##class(Derde.EC.Toegang).%OpenId(%ECSession.ToegangID).UserNaam Set Klant = %ECSession.KlantNr_" "_##class(Derde.Klant.Klant).GetFullName(%ECSession.KlantNr) Set KlantInfo = Klant_" "_##class(Derde.Klant.Klant).GetWoonplaats(%ECSession.KlantNr) Do Body.WriteLine("
  • " _ UserNaam _ " voor "_ KlantInfo) Set BodyIsStream = 1 , BodyIsHTML = 1 Set Subject = "Dynaplug problemen - ("_Klant_" : "_ UserNaam _ ")" Set MailTo = $listbuild(##class(TECH.Config.ConfigMgr).Instance().GetString("BL.EC.DynaPlan_MailWaarschuwingenNaar")) Do SendMiniMail^vhLib($$$SystemMail("Dynalog WebShop"),MailTo,Subject,Body,BodyIsStream,BodyIsHTML) Quit ]]>