Index: Prod/Kenmerk/DataIndex.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/Kenmerk/DataIndex.cls.xml (.../DataIndex.cls.xml) (revision 734) +++ Prod/Kenmerk/DataIndex.cls.xml (.../DataIndex.cls.xml) (revision 910) @@ -1,12 +1,12 @@ - + Opbouw van de index van de DataDefinitie, om deze index ook door SQL toegankelijk te maken is dit in een apart object opgeslagen. Bij de DataDefinitie opbject zitten de waarden van een kenmerk een product in een lijst. In dit index object zit alle waarden separaat. persistent %Library.Persistent -62068,62540.79386 +62136,67187.19289 59612,49806.369104 0 @@ -97,7 +97,7 @@ Groep:%Library.String,KenmNaam:%Library.String="",Sorted:%Boolean=1 %List - + Index: Prod/Kenmerk/Orgalux.cls.xml =================================================================== diff -u -r875 -r910 --- Prod/Kenmerk/Orgalux.cls.xml (.../Orgalux.cls.xml) (revision 875) +++ Prod/Kenmerk/Orgalux.cls.xml (.../Orgalux.cls.xml) (revision 910) @@ -1,20 +1,27 @@ - + DOM.PM.OL 1 Prod.Kenmerk.Product -62136,55494.164756 +62153,50337.294521 62081,42253.24661 0 DOM.PM.TBX.AfmetingCalculator +1 - -TBXAfmetingCalculator - +KenmerkUnID:%String,Taal:%String="N" +1 +1 +%Status + @@ -98,6 +105,19 @@ ]]> + +%List + + + %List %List + + + + +Listbuild 0:DiepteInCM*10, 1:"") - Quit lbDiepte + for ctrItem= 1 : 1 : $listlength(Listbuild) { + set Value = $listget(Listbuild,ctrItem) + set Value = $select(Value>0:Value*10,1:"") + set $list(Listbuild,ctrItem)=Value + } + quit Listbuild ]]> @@ -253,7 +281,7 @@ %String @@ -267,7 +295,7 @@ %String @@ -307,6 +335,19 @@ ]]> + +%List + + + %List + +%List + + + ExtraTips:%String=";BL;" %List @@ -369,7 +423,9 @@ %String - @@ -419,6 +475,13 @@ ]]> + +Label:%String +%String + + + Dit product past in een BinnenLade @@ -782,6 +845,261 @@ Quit 1 ]]> + + +%ListOfDataTypes + 1){ + Set InfoMetLadehoogte = ##class(Res.Vertaling).GetVertaling("OLW","MetLadehoogtes","K",..Taal,,1) + } + Do ##class(TECH.ListUtils).CopyList(BinnenladenTypes,LadenTypes) + For ctrLadenTypes = 1 : 1 : LadenTypes.Count() { + Set InfoMetLadehoogte = InfoMetLadehoogte_LadenTypes.GetAt(ctrLadenTypes) + If (ctrLadenTypes < LadenTypes.Count()){ + Set InfoMetLadehoogte = InfoMetLadehoogte_" "_##class(Res.Vertaling).GetVertaling("OLW","LadeVereistenEn","K",..Taal,,1) + } + } + Set TypesInfoItem = $$REPLACE5^vhRtn1(TypesInfoItem,"::MetLadehoogtes"," "_InfoMetLadehoogte) + do LadeVereisten.Insert(TypesInfoItem) + } Set LadebreedteTekst = ..GeefBreedteTekst() + If ($length(LadebreedteTekst)){ + Do LadeVereisten.Insert(LadebreedteTekst) + } + Set LadediepteTekst = ..GeefDiepteTekst() + If ($length(LadebreedteTekst)){ + Do LadeVereisten.Insert(LadediepteTekst) + } + If ($listlength(lbLadeKleuren) > 0){ + Set InfoKleur = ##class(Res.Vertaling).GetVertaling("OLW","LadeVereisteKleur","L",..Taal,,1)_": " + for ctrLadeKleuren=1:1:$listlength(lbLadeKleuren) + { + If (ctrLadeKleuren > 1) Set InfoKleur = InfoKleur_", " + Set InfoKleur = InfoKleur_($listget(lbLadeKleuren,ctrLadeKleuren)) + } + do LadeVereisten.Insert(InfoKleur) + } + If (..GetVrijeHoogte() '= "") + { + Set InfoVrijeHoogte = ##class(Res.Vertaling).GetVertaling("OLW","LadeVereisteVrijeHoogte","L",..Taal,,1)_" " + Set InfoVrijeHoogte = InfoVrijeHoogte_##class(Res.Vertaling).GetVertaling("OLW","LadeVereisteVrijeHoogte","K",..Taal,,1) + Set InfoVrijeHoogte = $$REPLACE5^vhRtn1(InfoVrijeHoogte,"::Hoogte",..GetVrijeHoogte()) + do LadeVereisten.Insert(InfoVrijeHoogte) + } + Quit LadeVereisten +]]> + + + + +Types toevoegen aan de info lijst. +alle hoogtes weergeven +Ladebreedte +Ladediepte +Kleuren +Vrijehoogte +%String + 1){ + Set WandDikteMax = $LG(..GetWandDiktes(),1) + Set WandDikteMin = $LG(..GetWandDiktes(),2) + Set Corpus = TBXAfmetingCalculator.BepaalLadeBuitenBreedte(BreedteMinimum,WandDikteMax) + Set BreedteMaximum = TBXAfmetingCalculator.BepaalLadeBinnenBreedte(Corpus, WandDikteMax) + Set BreedteMinimum = TBXAfmetingCalculator.BepaalLadeBinnenBreedte(Corpus, WandDikteMin) + Set AfmetingenMinimum = ..GeefBreedteAfmetingen(BreedteMinimum,Corpus,WandDikteMin) + Set AfmetingenMaximum = ..GeefBreedteAfmetingen(BreedteMaximum,Corpus,WandDikteMax) + Set InfoBreedteAfmetingen = ##class(Res.Vertaling).GetVertaling("OLW","LadeVereisteVanTot","K",..Taal,,1) + Set InfoBreedteAfmetingen = $$REPLACE5^vhRtn1(InfoBreedteAfmetingen,"::Minimum",AfmetingenMinimum,"::Maximum",AfmetingenMaximum) + }else{ + Set CorpusMaximum = TBXAfmetingCalculator.BepaalLadeBuitenBreedte(BreedteMaximum,WandDikte) + Set AfmetingenMaximum = ..GeefBreedteAfmetingen(BreedteMaximum,CorpusMaximum,WandDikte) + Set CorpusMinimum = TBXAfmetingCalculator.BepaalLadeBuitenBreedte(BreedteMinimum,WandDikte) + Set AfmetingenMinimum = ..GeefBreedteAfmetingen(BreedteMinimum,CorpusMinimum,WandDikte) + Set InfoBreedteAfmetingen = ##class(Res.Vertaling).GetVertaling("OLW","LadeVereisteVanTot","K",..Taal,,1) + Set InfoBreedteAfmetingen = $$REPLACE5^vhRtn1(InfoBreedteAfmetingen,"::Minimum",AfmetingenMinimum,"::Maximum",AfmetingenMaximum) + } + + Set InfoBreedte = ##class(Res.Vertaling).GetVertaling("OLW","LadeVereisteBreedte","L",..Taal,,1)_": " + } + Quit InfoBreedte_InfoBreedteAfmetingen +]]> + + + +%String + + + + +Afmeting:%Integer,Corpus:%Integer,WandDikte:%Integer +1 +%String + + + + +Diepte:%Integer,Glijder:%Integer +1 +%String + + + + +lbLadeTypesKenmerk:%List +1 +%Boolean + + - + Index: Prod/Product.inc.rou =================================================================== diff -u --- Prod/Product.inc.rou (revision 0) +++ Prod/Product.inc.rou (revision 910) @@ -0,0 +1,128 @@ + /// Property Get + +#define PRGet(%BIndex) $$Get^PRODUKT(PRNr,%BIndex) +#define ProductGet(%PRNr,%BIndex) $$Get^PRODUKT(%PRNr,%BIndex) + +#define PRSet(%BIndex,%Value) Set^PRODUKT(PRNr,%BIndex,%Value) +#define ProductSet(%PRNr,%BIndex,%Value) Set^PRODUKT(%PRNr,%BIndex,%Value) + +#define PRSetRubr(%BIndex,%Value,%RubrName) Set^PRODUKT(PRNr,%BIndex,%Value,%RubrName) +#define ProductSetRubr(%PRNr,%BIndex,%Value,%RubrName) Set^PRODUKT(%PRNr,%BIndex,%Value,%RubrName) + +#define ProductExist(%PRNr) $S(%PRNr?4.7N:$D(^KPR(%PRNr)),1:"") +#define PRExist $S(PRNr?4.7N:$D(^KPR(PRNr)),1:"") + +#Define KortTekst "101" +#Define OmschrijvingN1 "102" +#Define GenProduct "103" +#Define BTWKode "104" +#Define Ligging "105" +#Define ABCKlassificatie "108" +#Define LinkType "123" +#Define ReservatieWMS "109" +#Define OpbrengstRekening "110" +#Define OmschrijvingN2 "111" +#Define BeginStock "112" +#Define DatumBeginStock "113" +#Define Voorraad "114" +#Define Bijhoudenhistoriek "115" +#Define DatumLaatsteUitgaandeBeweging "116" +#Define AantalInToeleveringen "117" +#Define ScanPeriode "118" +#Define ScanType "124" +#Define ProductGroepWMS "201" +#Define CycleCountTypeWMS "202" +#Define SchaduwMunt "203" +#Define Hoogte "204" +#Define Breedte "205" +#Define Lengte "206" +#Define Telbaar "207" +#Define DatumFIFO "208" +#Define BeginSituatieInventaris "209" +#Define GrootteOrde "210" +#Define ControleStatus "212" +#Define Gewicht "213" +#Define GrootteOrdeSchaduw "214" +#Define KATPrijsHandelSchaduw "215" +#Define KATPrijsIndustrieSchaduw "216" +#Define BufferWeken "217" +#Define KATPrijsHandel "218" +#Define KATPrijsIndustrie "219" +#Define StockType "220" +#Define GGWeekVerkoop "221" +#Define OmschrijvingF1 "222" +#Define Gemiddeldeweekverkoop "223" +#Define Rotatie "224" +#Define NONAktief "225" +#Define OmschrijvingE1 "301" +#Define OmschrijvingD1 "302" +#Define SchaduwPPL "303" +#Define SchaduwKortingPerc "304" +#Define SchaduwVorkPerc "305" +#Define SchaduwDBPerc "306" +#Define SchaduwCifPerc "307" +#Define Statistieknummer "308" +#Define AantalReservatie "309" +#Define SchaduwKSDBPerc "310" +#Define TelWeegSchaalTelwijzeWMS "311" +#Define TelWeegschaalSampleMethodeWMS "312" +#Define BarcodeType "313" +#Define BarcodeWaarde "314" +#Define OpslagZone "315" +#Define PalletQty "316" +#Define SendToRemoveFromWMS "317" +#Define IdentNummer "325" +#Define BlzRefKataloog "401" +#Define KataloogNaam "402" +#Define KSPrijsLijst "403" +#Define NotAvailableTo "404" +#Define OmschrijvingF2 "421" +#Define OmschrijvingE2 "422" +#Define OmschrijvingD2 "423" +#Define WerkvloerHerbestelWijze "1603" +#Define WerkvloerHerbestelPunt "1604" +#Define WerkvloerHerbestelAantal "1605" +#Define WerkvloerHerbestelAfronding "1606" +#Define WerkvloerGrootteNetto "1607" +#Define WerkvloerGrootteBruto "1608" +#Define WerkvloerEenheid "1609" +#Define WerkvloerMetaTag "1610" +#Define WerkvloerDefaultMagazijn "1611" +#Define WerkvloerSubMag "1612" +#Define Hoofdgroep "I01" +#Define Groep "I02" +#Define SubGroep "I03" +#Define KlassificatieKey "I04" +#Define Sectie "I05" +#Define LeveranciersNr "J01" +#Define Merk "J02" +#Define Leveranciersreferentie "J03" +#Define VHDeBetho "J04" +#Define MinimumBestelHoeveelheid "J06" +#Define LeveringsTermijn "J07" +#Define CorrFaktorCiffPPL "J08" +#Define KortingPerc "J09" +#Define KSDBPerc "J10" +#Define KSKleinVerpak "J11" +#Define KSGrootVerpak "J12" +#Define VerkoopPerStuk "J13" +#Define KleinVerpakking "J14" +#Define NormaleVerpakking "J15" +#Define GrootVerpakking "J16" +#Define MuntAankoop "J17" +#Define BPrijs "J18" +#Define PPLMTL "J19" +#Define MargeEUR "J20" +#Define CifPerc "J21" +#Define CifPPLEUR "J23" +#Define DBPerc "J24" +#Define LijstprijsEUR "J25" +#Define VorkEUR "J26" +#Define VorkPerc "J27" +#Define GrootteOrdeAankoop "J28" +#Define VerpakkingsProduct "J32" +#Define AantalProductenPerVerpakking "J33" +#Define ProformaFaktuur "J34" +#Define MaxLogSteuer "J22" +#Define GAProductID "G13" + \ No newline at end of file Index: Prod/Kenmerk/Utils.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/Kenmerk/Utils.cls.xml (.../Utils.cls.xml) (revision 734) +++ Prod/Kenmerk/Utils.cls.xml (.../Utils.cls.xml) (revision 910) @@ -1,11 +1,11 @@ - + Gebruikstools voor de klassen van Kenmerk vhLib.Macro,Prod.Kenmerk %Library.RegisteredObject -62006,40503.810429 +62140,42931.163042 59284,55860.703 0 @@ -316,5 +316,5 @@ ]]> - + Index: Prod/Kenmerk/MetaGroep.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/Kenmerk/MetaGroep.cls.xml (.../MetaGroep.cls.xml) (revision 734) +++ Prod/Kenmerk/MetaGroep.cls.xml (.../MetaGroep.cls.xml) (revision 910) @@ -1,12 +1,13 @@ - + Groepering van de verschillende kenmerken tot een lijst van kenmerken behorende tot een productgroep persistent %Library.Persistent -59275,52589.213 +62152,30262.399039 59275,52589.213 +0 @@ -38,13 +39,27 @@ %Library.SQLQuery -() -SELECT ID,Code,Omschrijving FROM Prod_Kenmerk.MetaGroep - + SELECT ID,Code,Omschrijving FROM Prod_Kenmerk.MetaGroep + +1 +%ListOfDataTypes + + + %Library.CacheStorage ^Prod.Ken.MetaDefinitieD @@ -67,5 +82,5 @@ - + Index: Prod/GADef/emKadBeslag.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/GADef/emKadBeslag.cls.xml (.../emKadBeslag.cls.xml) (revision 734) +++ Prod/GADef/emKadBeslag.cls.xml (.../emKadBeslag.cls.xml) (revision 910) @@ -1,5 +1,5 @@ - + Afspraken i.v.m. Posities van Beslag en Boringen: @@ -19,7 +19,7 @@ ]]> serial %Library.SerialObject -61306,63230.562316 +62139,55443.752872 58490,37729 0 @@ -46,7 +46,8 @@ WandDitke van de corpus. Bij klapscharen moet deze mee in -rekening gebracht worden voor de posities van de boringen. +rekening gebracht worden voor de posities van de boringen. +[Maatwerk Framework : GUI kenmerk] %Library.Float @@ -384,5 +385,5 @@ - + Index: Prod/Kenmerk/DataDefinitie.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/Kenmerk/DataDefinitie.cls.xml (.../DataDefinitie.cls.xml) (revision 734) +++ Prod/Kenmerk/DataDefinitie.cls.xml (.../DataDefinitie.cls.xml) (revision 910) @@ -1,5 +1,5 @@ - + Vaste leggen van de kenmerken per product. @@ -10,7 +10,7 @@ persistent %VHMacro %Library.Persistent -62082,51248.274471 +62150,59282.768952 59232,54592 0 @@ -162,6 +162,13 @@ ]]> + +1 +GroepID,UnID,Kenmerk + + + w $$ListToPieces^vhLib(##class(Prod.Kenmerk.DataDefinitie).Get("TB",89973,"BasisType"),";") @@ -687,5 +694,5 @@ - + Index: Prod/GAMeta/Item/tmpDev2.mac.rou =================================================================== diff -u --- Prod/GAMeta/Item/tmpDev2.mac.rou (revision 0) +++ Prod/GAMeta/Item/tmpDev2.mac.rou (revision 910) @@ -0,0 +1,258 @@ +#include %VHMacro +#include %Prod.Product + +#define HTML(%v) $ZCVT(%v,"O","HTML") +#define Attrib(%n,%v) $$PARAMFILL^XMLWRITE(%n,$$$HTML(%v)) +#define AttribInvers(%v) $S($G(%arInvers("DItem",%v,1))=1:$$$Attrib("invers",1), 1:"") + + ; Prod.GAMeta.EM.Item +XMLWrite ; Parameters: DItem,DevObj,Taal,Opties,XSLURL +#define IsList(%v) $$IsList^vhLib(%v) + Do XMLBuildArrayInvers(DItem) + If (..Code?1(1"PARAM",1"PARAMFORMULE",1"PARAMOBJ")) Do + . If ..Code="PARAMOBJ" Do TAGWRITE^XMLWRITE(DevObj,"WAARDE",DItem.Get("ObjectID"),$$$Attrib("class",DItem.Get("ClassName"))) + . Else Do TAGWRITE^XMLWRITE(DevObj,"WAARDE",$$xmlwFormatValue(DItem.Get("Val")),$$$Attrib("unit","")) + . Do TAGWRITE^XMLWRITE(DevObj,"PROGLABEL",DItem.Get("ProgLabel")) + . Do XMLFabrTekst("FabrTekst") + . Do XMLAddTags + Else If ..Code="KST" Do + . ; KST Niet opnemen in XML + Else Do + . Do XMLAddTags + Quit +xmlwFormatValue(ItemVal) + Quit:(ItemVal="")||('$$$IsList(.ItemVal)) ItemVal + Quit $$$LCVT(.ItemVal) + + + ; Prod.GAMeta.EM.ItemPR +XMLWritePR ; Parameters: DItem,DevObj,Taal,Opties,XSLURL + New PRNr,Prod + Do XMLBuildArrayInvers(DItem) + Do xmlwPRBasis + Do XMLAddTags + Quit + + ; Prod.GAMeta.EM.ItemPR1DIM +XMLWritePR1DIM ; Parameters: DItem,DevObj,Taal,Opties,XSLURL +#define ProptPR(%v1,%v2) $$$LCase(##class(Prod.Product).GetPropViaNr(%v1,%v2)) + New PRNr,Prod + Do XMLBuildArrayInvers(DItem) + Do xmlwPRBasis + Do TAGWRITE^XMLWRITE(DevObj,"DIMHF",DItem.Get("DimHF"),$$$Attrib("unit",$$$ProptPR(PRNr,"HFEenheid")),$$$AttribInvers("DimHF")) + Do WRITELN^XMLWRITE(DevObj) + Do XMLAddTags + Quit + +XMLFabrGroep +#define Delim "\" + New XMLGroepen,XMLGroep,i + Set XMLGroepen=DItem.EvalTemplAuto("FabrGroep") + Set XMLGroep=$P(XMLGroepen,$$$Delim,1) + Do XMLFabrGroepAndSortTags(DevObj,XMLGroep,1) + ;For i=1:1:$L(XMLGroepen,$$$Delim) Do + ;. Set XMLGroep=$P(XMLGroepen,$$$Delim,i) + ;. Do TAGWRITE^XMLWRITE(DevObj,"GROEP",XMLGroep,$$$Attrib("OMS",$$$UCASE($E(XMLGroep,1,99)))) + ;. Do XMLFabrGroepAndSortTags(DevObj,XMLGroep,1) + Quit + +XMLFabrGroepAndSortTags(DevObj,pdlGroepSort,blnWithSort) +#define Delim ";" + Set XMLGroep=$P(pdlGroepSort,$$$Delim,1) + Set SortKey=$P(pdlGroepSort,$$$Delim,2) ; _DItem.Get("PRNr") ; _(DItem.Code) + Do TAGWRITE^XMLWRITE(DevObj,"GROEP",XMLGroep,$$$Attrib("OMS",$$$UCase(XMLGroep))) + Do:(blnWithSort)&&($L(SortKey)) TAGWRITE^XMLWRITE(DevObj,"SORT",SortKey) + Quit + +XMLWriteExtra ; Parameters: DItem,DevObj,ParamKey + ;d WL^vhDBG("XMLWriteExtra : "_ParamKey_" - "_DItem) + Do XMLFabrTekst(ParamKey) + Quit + +XMLFabrTekst(ParamKey) + Quit:('DItem.Autos.IsDefined(ParamKey)) + New lbTekst + Set lbTekst=DItem.EvalTemplAuto(ParamKey) + Quit:(lbTekst="") + If $$$IsList(lbTekst) Do + . Do XMLFabrGroepAndSortTags(DevObj,$LG(lbTekst,1),1) + . Do TAGWRITE^XMLWRITE(DevObj,"LANGTEKST",$LG(lbTekst,2)) + . Do:($LD(lbTekst,3)) TAGWRITE^XMLWRITE(DevObj,"DIMHF",$LI(lbTekst,3),$$$AttribInvers("DimHF")) + . Do:($LD(lbTekst,4)) TAGWRITE^XMLWRITE(DevObj,"QTY",$LI(lbTekst,4),$$$AttribInvers("Qty")) + . Do:($LD(lbTekst,5)) TAGWRITE^XMLWRITE(DevObj,"MAGAZIJN",$LI(lbTekst,5)) + . Do:($LD(lbTekst,6)) TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",$LI(lbTekst,6)) + Else Do + . ; alleen LangTekst + . Do TAGWRITE^XMLWRITE(DevObj,"LANGTEKST",lbTekst) + Do WRITELN^XMLWRITE(DevObj) + Quit + +XMLAddTags + Quit:('DItem.Autos.IsDefined("XMLTags")) + New lbTags,i + Set lbTags=DItem.EvalTemplAuto("XMLTags") + Quit:(lbTags="") + For i=1:1:$LL(lbTags) Do:($LD(lbTags,i)) + . Do WRITE^XMLWRITE(DevObj,$LI(lbTags,i)) + . Do WRITELN^XMLWRITE(DevObj) + Quit + +xmlwPRBasis +#define IsValidPR(%v) (%v?2.6N) + New KMVal + If DItem.Autos.IsDefined("FabrTekst") Do Quit + . Do XMLFabrTekst("FabrTekst") + ; Else + Do XMLFabrGroep + Set PRNr=DItem.Get("PRNr") + ; Afdekkkappen kunnen klantgebonden zijn, indien de bouwsteen afwijkt van het product in DItem dan wordt het bouwsteen product gebruikt + If DItem.Label?1(1"PRAKLI",1"PRAKRE") Do + . Set MPRNr=DItem.Product.ProductGetObjectId() + . Quit:MPRNr'?4.7N + . Set HFPRNr=$P($G(^PRBS("BS",MPRNr,DItem.Label_".001")),"\",1) + . Quit:HFPRNr'?4.7N + . Quit:HFPRNr=PRNr + . Set PRNr=HFPRNr + . Do DItem.Parameters.SetAt(HFPRNr,"PRNr") ; ingeheugen wijzigen van Parameters + . Do DItem.Parameters.SetAt($$$PRGet($$$KortTekst),"KTekst") + . Set:('DItem.IsFixed("PRNr")) DItem.FixedKeys=DItem.FixedKeys_$LB("PRNr") ; Fixed -> speciale markering van langtekst en korttekst + Do TAGWRITE^XMLWRITE(DevObj,"PRNR",PRNr) + Do TAGWRITE^XMLWRITE(DevObj,"LANGTEKST",$S($$$IsValidPR(PRNr):$$xmlwBuildLangTekst, 1:"["_DItem.Label_"]")) + Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",DItem.Get("KTekst")) + Do xmlwKORTTEKSTfmt + Do TAGWRITE^XMLWRITE(DevObj,"QTY",DItem.Get("Qty"),$$$Attrib("unit","st"),$$$AttribInvers("Qty")) + Do WRITELN^XMLWRITE(DevObj) + Quit +xmlwBuildLangTekst() + ; Als FabrOms niet bestaat, dan ..GetLangTekst() + ; Als FabrOms wel bestaat, dan EvalTemplAuto("FabrOms") + ; FabrOms kan (lees: zal meestal) de exec "Meta.GetOmsViaKenm()" bevatten + Quit:(DItem.IsFixed("PRNr")) "### "_..GetLangTekst(PRNr,DItem,1)_" ###" + Quit:('DItem.Autos.IsDefined("FabrOms")) ..GetLangTekst(PRNr,DItem,1) + ; Else: LangTekst opbouwen adh. van FabrOms ; (??? OOK indien geen product gevonden ???) + New txt + Set txt=DItem.EvalTemplAuto("FabrOms") + Quit txt +xmlwKORTTEKSTfmt +#define MarkInvers(%v) ""_%v_"" + If DItem.IsFixed("PRNr") Do + . Set KTxtFmt=DItem.Get("KTekst") + . Set:($L(KTxtFmt)) KTxtFmt=$$$MarkInvers(KTxtFmt) + Else Do + . Set KTxtFmt=$$xmlwBuildKTekst(DItem) + Do:($L(KTxtFmt)) TAGWRITE^XMLWRITE(DevObj,"KORTTEKSTfmt",$$$Replace(KTxtFmt," "," ")) + Quit +xmlwBuildKTekst(DItem) + Quit:(+$G(%arInvers("DItem","KTekst"))<1) "" + ; Build KortTekst + apply INVERS when necessary + New KTxt,i + Set KTxt=DItem.Get("KTekst") + Quit:(KTxt="") "" + Do @("xmlwBuildINVktxt"_DItem.Label) + Set Self="" + Quit $G(KTxt) +xmlwBuildINVktxtPRBDHO + Set:($G(%arInvers("DItem","KTekst","LD"))=1) $E(KTxt,1,8)=$$$MarkInvers($E(KTxt,1,8)) + Quit +xmlwBuildINVktxtPRLALI ; idem voor Links/Rechts +xmlwBuildINVktxtPRLARE + Set i=$L(KTxt) + Set:($G(%arInvers("DItem","KTekst","KL"))=1) $E(KTxt,i-3,i)=$$$MarkInvers($E(KTxt,i-3,i)) + Set:($G(%arInvers("DItem","KTekst","DC"))=1) $E(KTxt,10,11)=$$$MarkInvers($E(KTxt,10,11)) + Set:($G(%arInvers("DItem","KTekst","ZW"))=1) $E(KTxt,1,9)=$$$MarkInvers($E(KTxt,1,9)) + Quit +xmlwBuildINVktxtPRCPLI ; idem voor Links/Rechts +xmlwBuildINVktxtPRCPRE + Set:($G(%arInvers("DItem","KTekst","DK"))=1) $E(KTxt,1,9)=$$$MarkInvers($E(KTxt,1,9)) + Quit + + +XMLBuildArrayInvers(DItem) +#define DItemGetKenmVal(%v) DItem.MetaItem.GetKenmVal(%v,DItem.Get("PRNr"),DItem.Get("KenmGrp")) +#define IsFixedPR DItem.IsFixed("PRNr") + Quit:(DItem.Product.MetaStruct.Code'="TBX") + Kill %arInvers("DItem") + Quit:(DItem.Label="") + Quit:($TEXT(@("xmlwArrayInvers"_DItem.Label))="") + ; Else: Build KortTekst + determine if INVERS must be applied + New Self,tmpAr + Set Self=DItem + Do @("xmlwArrayInvers"_DItem.Label) + Do xmlwSubNodeInversAny(.tmpAr,"KTekst") + Merge %arInvers("DItem")=tmpAr + Quit +xmlwSubNodeInversAny(tmpAr,Node) ; tmpAr als .local doorgeven + ; Counts the number of TRUE conditions for this Node + ; tmpAr("KTekst","KL")=1 + ; tmpAr("KTekst","ZW")=1 + ; ==> Set tmpAr("KTekst")=2 + New Key,dummy + Set tmpAr(Node)=0 + Set Key="" + For Set Key=$O(tmpAr(Node,Key)) Quit:(Key="") Set:($G(tmpAr(Node,Key))=1) dummy=$INCREMENT(tmpAr(Node)) + Quit + + ; Labels via INDIRECT : xmlwArrayInvers... +xmlwArrayInversPRBDHO ; Bodem (Hout) + Set tmpAr("KTekst","LD")=($$$DItemGetKenmVal("LadeDiepte")'=500) + Set tmpAr("FabrOms","Kleur")=('$$$IsFixedPR)&&(($$$DItemGetKenmVal("Kleur")'="LG")||(DItem.Val("KB")'="LG")) + Set tmpAr("DimHF",1)=1 + Quit +xmlwArrayInversPRRUGHS ; Rug (Hout) + Set tmpAr("FabrOms","Kleur")=('$$$IsFixedPR)&&($$$DItemGetKenmVal("Kleur")'="LG") + Quit +xmlwArrayInversPRRUGLI ; Rughouders +xmlwArrayInversPRRUGRE ; idem voor Links/Rechts + Set tmpAr("FabrOms","RugHoogte")=('$$$IsFixedPR)&&($$$DItemGetKenmVal("RugHoogte")?1.A1"-"1.A) ; Speciale "L"-rugwandhouder voor Verlaagde rug (1e item uit Kenmerkwaarden) + Quit + /* +xmlwArrayInversPRRUGV1 + Set tmpAr("FabrOms","Kleur")=('$$$IsFixedPR)&&($$$DItemGetKenmVal("Kleur")'="MG") + Quit + */ +xmlwArrayInversPRSCRHO ; Bodem (Hout) + Set tmpAr("Qty",1)=(DItem.Val("DK")'=80) + Quit +xmlwArrayInversPRLALI ; LadeZijkant +xmlwArrayInversPRLARE ; idem voor Links/Rechts + Set tmpAr("KTekst","KL")=($$$DItemGetKenmVal("Kleur")'="MG") + Set tmpAr("KTekst","ZW")=($$$DItemGetKenmVal("ZijwandHoogte")'="M") + Set tmpAr("KTekst","DC")=($$$DItemGetKenmVal("Design")?1(1"I",1"MA",1"F")) + Set tmpAr("FabrOms","Kleur" )=('$$$IsFixedPR)&&(tmpAr("KTekst","KL")) + Set tmpAr("FabrOms","Design" )=('$$$IsFixedPR)&&(tmpAr("KTekst","DC")) + Set tmpAr("FabrOms","ZijwandHoogte")=('$$$IsFixedPR)&&(tmpAr("KTekst","ZW")) + Quit +xmlwArrayInversPRCPLI ; CorpusProfielen +xmlwArrayInversPRCPRE ; idem voor Links/Rechts + Set tmpAr("KTekst","DK")=($$$DItemGetKenmVal("DraagKracht")'=30)||($$$DItemGetKenmVal("Opties")'["B") + Quit +xmlwArrayInversPRRL ; Reling + Set tmpAr("FabrOms","Kleur")=('$$$IsFixedPR)&&($$xmlwRLKleurAfwijkend($$$DItemGetKenmVal("Kleur"),DItem.Val("KL"))) + Quit +xmlwArrayInversPRBSD2 ; BOXSIDE Dubbelwandig +xmlwArrayInversPRBSELI ; idem voor BOXSIDE Enkelwandig -Links/-Rechts +xmlwArrayInversPRBSERE + Set tmpAr("FabrOms","Kleur")=('$$$IsFixedPR)&&($$xmlwBSKleurAfwijkend($$$DItemGetKenmVal("Kleur"),DItem.Val("KL"))) + Quit +xmlwArrayInversPRASM ; Anti-slipmatten +xmlwArrayInversPRASMROL ; Anti-slipmatten op rol +xmlwArrayInversPRASMROLSPLI ; idem bij asm voor Spoelbak +xmlwArrayInversPRASMROLSPRE +xmlwArrayInversPRTUSASMROL + Set tmpAr("FabrOms","BasisType")=1 + Set tmpAr("FabrOms","Kleur")=1 + Quit +xmlwArrayInversPRAKLI ; Afdekkappen +xmlwArrayInversPRAKRE ; idem voor Links/Rechts + Set tmpAr("FabrOms","OptiesTxt")=($$$DItemGetKenmVal("Actief")'="A") ; OptiesTxt is fictieve kenmerknaam, want voor bestaande kenmerken zoekt het systeem naar vertalingen en dat willen we hier niet. + Quit +xmlwArrayInversPRSRUG + Set tmpAr("FabrOms","BasisType")=1 + Quit + + +xmlwRLKleurAfwijkend(RK,KL) + Quit:(RK="CR") (KL'="IN") ; RelingKleur Chroom komt overeen met LadeKleur Inox + Quit (RK'=KL) +xmlwBSKleurAfwijkend(KX,KL) + Quit (KX'=KL) \ No newline at end of file Index: Prod/GAData/Product/tmpDev2.mac.rou =================================================================== diff -u --- Prod/GAData/Product/tmpDev2.mac.rou (revision 0) +++ Prod/GAData/Product/tmpDev2.mac.rou (revision 910) @@ -0,0 +1,528 @@ +#include PRGACNTs +#include %Prod.Product + +XMLWrite ; Parameters: DevObj,Taal,Opties,XSLURL +#define HTML(%v) $ZCVT(%v,"O","HTML") +#define Attrib(%n,%v) $$PARAMFILL^XMLWRITE(%n,$$$HTML(%v)) + + New MetaCode,Key,DItem,Oms,TypeAttr + Set MetaCode=..MetaStruct.Code ; = "TBX" / "GRP" / "TLM" + Kill %arInvers("DItem") + + New IsDevObjEmpty,StartXMLDeclaration ; Added by WimV on 15/02/2011 + Set IsDevObjEmpty=('$IsObject(DevObj))||(DevObj.Size=0) + Set StartXMLDeclaration=($G(%WithXMLDeclaration,1)) + + Do:(StartXMLDeclaration) WRITE^XMLWRITE(DevObj,"") + If $L($G(XSLURL)) Do + . Do WRITE^XMLWRITE(DevObj,"") + . Do WRITELN^XMLWRITE(DevObj) + If $L($G(XSLURL))||($IsObject($G(%request))&&($G(%request.Data("NOXSL",1))=1)) Do + . Do WRITE^XMLWRITE(DevObj," ]>") + . Do WRITELN^XMLWRITE(DevObj) + If $G(Opties)["GAF" Do + . Do BEGINTAG^XMLWRITE(DevObj,"PRODUCTEN") + . Do xmlwLangEnKortTxt + + Do WRITELN^XMLWRITE(DevObj) + Do xmlwSpecialOms ; bepaalt variables Oms en TypeAttr + Do BEGINTAG^XMLWRITE(DevObj,"GAPROD",$S($G(Opties)["GAO":$$$Attrib("OMS",Oms) ,1:""),$$$Attrib("TYPE",TypeAttr) ) + Do WRITELN^XMLWRITE(DevObj) + + Do:(..%Id()) TAGWRITE^XMLWRITE(DevObj,"PRODID",..%Id()) + Do BEGINTAG^XMLWRITE(DevObj,"METASTRUCT") + Do TAGWRITE^XMLWRITE(DevObj,"CODE",..MetaStruct.Code) + Do TAGWRITE^XMLWRITE(DevObj,"VERSIE",..MetaStruct.Version) + Do ENDTAG^XMLWRITE(DevObj,"METASTRUCT",1) + + Do TAGWRITE^XMLWRITE(DevObj,"TEMPLATECODE",%this.TemplateCode) + If %this.Template Do + . Do TAGWRITE^XMLWRITE(DevObj,"TEMPLATE",%this.Template.%Id()) + . Do WRITELN^XMLWRITE(DevObj) + + Do xmlwSpecialValues + + Do TAGWRITE^XMLWRITE(DevObj,"DOSSIERNR",..Dossier) + Do WRITELN^XMLWRITE(DevObj) + + New MetaArray,%arMetaDefObj + Set Key="" + For Set DItem=..DataItems.GetNext(.Key) Quit:(Key="") Do:(DItem.IsActief()) + . Do DItem.XMLWrite(DevObj,Taal,.Opties,.XSLURL) + . ;Do WRITELN^XMLWRITE(DevObj) + Do xmlwUnloadMetaObjs + Do xmlwExtraFromPRBS ; Met $X$ gemarkeerde bouwstenen ook opnemen + + Do ENDTAG^XMLWRITE(DevObj,"GAPROD",1) + Do:($G(Opties)["GAF") ENDTAG^XMLWRITE(DevObj,"PRODUCTEN",1) + Quit +xmlwUnloadMetaObjs + ; Close MetaObjects (opened in MetaDef. - method GetOmsViaKenm() ) + New k,tmpOref + Set k="" + For Set k=$O(MetaArray(k)) Quit:(k="") Set MetaArray(k)="" Kill MetaArray(k) ; Set tmpOref=MetaArray(k) Do tmpOref.%Close() + For Set k=$O(%arMetaDefObj(k)) Quit:(k="") Set %arMetaDefObj(k)="" Kill %arMetaDefObj(k) ; New %array - added by WimV on 14/02/2008 + Quit +xmlwLangEnKortTxt + New Oms,Cnt,Txt + Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",..KortTekst()) + Do WRITELN^XMLWRITE(DevObj) + Do ..LangTekst(.Taal,.Oms) + Do BEGINTAG^XMLWRITE(DevObj,"OMS",$$PARAMFILL^XMLWRITE("TAAL",Taal)) + Set Cnt=0 + Set J="" + For Set J=$O(Oms(J)) Quit:(J="") Do:($L(Oms(J))) + . Set Cnt=Cnt+1 + . Do TAGWRITE^XMLWRITE(DevObj,"LIJN",$$ConvertToHTML^vhRtn1(Oms(J)),$$PARAMFILL^XMLWRITE("VOLGNR",Cnt)) + . Do WRITELN^XMLWRITE(DevObj) + Do ENDTAG^XMLWRITE(DevObj,"OMS") + Quit +xmlwSpecialOms + If MetaCode="TBX" Do + . Set TypeAttr="Tandembox" + . Set Oms="TandemBOX"_$S(..Val("PRO")=1:" pro", 1:"") + Else If MetaCode="GRP" Do + . Set TypeAttr="Greep" + . Set Oms="Greep op maat" + Else If MetaCode="TLM" Do + . Set TypeAttr="Verlichting" + . Set Oms="TL-Verlichting" + Else If MetaCode="ASM" Do + . Set TypeAttr="Antislipmat" + . Set Oms="Antislipmat op maat" + Else Do + . Set TypeAttr="Onbekend" + . Set Oms="Onbekend" + Quit +xmlwSpecialValues + If MetaCode="TBX" Do xmlwSpecialsTBX + Else If MetaCode="GRP" Do xmlwSpecialsGRP + Else If MetaCode="TLM" Do xmlwSpecialsTLM + Else If MetaCode="ASM" Do xmlwSpecialsASM + Quit + +xmlwExtraFromPRBS ; extra producten toevoegen die handmatig zijn toegevoegd aan de bouwstenen + New MPRNr,BSKey,BSRec + #define PRBSExtraGrp "$X$" + #define XMLGrp "Speciaal" + #define XMLSubGrp "EXTRA" + #define MarkInvers(%v) ""_%v_"" + + Quit:'$isobject(..Product) + Set MPRNr=..Product.%Id() + Quit:MPRNr'?4.7N + Quit:'$D(^PRBS("BS",MPRNr)) + + Set BSKey="" + For Set BSKey=$O(^PRBS("BS",MPRNr,BSKey)) Quit:BSKey="" Do + . Quit:$P(^PRBS("BS",MPRNr,BSKey),"\",11)'=$$$PRBSExtraGrp + . Set BSRec=^PRBS("BS",MPRNr,BSKey) + . Do COMMENT^XMLWRITE(DevObj,"Data opgehaald uit bouwstenen",1) + . Do BEGINTAG^XMLWRITE(DevObj,"ITEM",$$$Attrib("ID",BSKey),$$$Attrib("SubGroep",$$$XMLSubGrp),$$$Attrib("Meta","PRBS")) + . Do WRITELN^XMLWRITE(DevObj) + . If $P(BSRec,"\",3)="H" Do xmlwPRBSHalffabr(BSRec,$G(^PRBS("BS",MPRNr,BSKey,"D"))) + . Do ENDTAG^XMLWRITE(DevObj,"ITEM",1) + + Quit + +xmlwPRBSHalffabr(BSRec,BSRecDim) + New KPRNr,Qty,LangTekst + Set KPRNr=$P(BSRec,"\") + Set Qty=$P(BSRec,"\",2) + Set LangTekst=$P(BSRec,"\",13) + Set:LangTekst="" LangTekst=##class(Prod.ProductTekst).GetOmschrijvingViaPRNr(KPRNr, "N", ";", 1) + Do TAGWRITE^XMLWRITE(DevObj,"GROEP",$$$XMLGrp,$$$Attrib("OMS",$$$UCase($$$XMLGrp))) ;--> bvb. "ONDERDELEN 2" / "BINFRONT" + Do TAGWRITE^XMLWRITE(DevObj,"PRNR",KPRNr) + Do TAGWRITE^XMLWRITE(DevObj,"LANGTEKST",LangTekst) + Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",$$$ProductGet(KPRNr,$$$KortTekst)) + Do TAGWRITE^XMLWRITE(DevObj,"QTY",Qty,$$$Attrib("unit","st")) + Do WRITELN^XMLWRITE(DevObj) + Do:$P(BSRecDim,"\") TAGWRITE^XMLWRITE(DevObj,"DIMHF",$P(BSRecDim,"\")) ; afmeting + Quit + +xmlwSpecialsTLM +#define ImageDir $$$ImageDirGA("TLM") +#define NodeIL "IL" +#define DflSnoerLen 1500 + New URLLi,URLRe,UL,UR,blTLM,PosList,pID,pIDFirstVR,pIDLastVR,SnoerUit,SnoerLExtra,pType,ktxt + New TLID,blnTLExist, pTypeVR,pTypeOms,SnoerLExtraVR,SnLen,DItem + Set UL=..Val("UL") + Set UR=..Val("UR") + Set URLLi=$$$ImageDir_$S($L(UL):"Verstek_Li_"_UL_".jpg", 1:"spacer.gif") + Set URLRe=$$$ImageDir_$S($L(UR):"Verstek_Re_"_UR_".jpg", 1:"spacer.gif") + Do TAGWRITE^XMLWRITE(DevObj,"IMAGE_LI_URL",URLLi) + Do WRITELN^XMLWRITE(DevObj) + Do TAGWRITE^XMLWRITE(DevObj,"IMAGE_RE_URL",URLRe) + Do WRITELN^XMLWRITE(DevObj) + ; Posities: + Set PosList=..Val("LPOS") + Set SnoerUit=..Val("SN") + Set SnoerLExtra=1200 ; ..Val("SNLX") + If $LL(PosList)=0 Do Quit + . Do TAGWRITE^XMLWRITE(DevObj,"TLPOSITIES","") + . Do WRITELN^XMLWRITE(DevObj) + ; Else + Do BEGINTAG^XMLWRITE(DevObj,"TLPOSITIES") + Set blTLM=##class(BL.PR.GA.Verlichting).%New() + Do blTLM.Initialize() + Do blTLM.FillTLPosFromLists(..Val("LLAMP"),PosList,,..Val("LP")) + Do blTLM.CalcSnoerLengte("*") + Set pID=$O(blTLM.TLPos(0)) + Set pIDFirstVR=$S($L(pID)&&($G(blTLM.TLPos(pID,".TYPE"))="VR"):pID, 1:"X") + Set pID=$O(blTLM.TLPos($$$MaxTLPos),-1) + Set pIDLastVR= $S($L(pID)&&($G(blTLM.TLPos(pID,".TYPE"))="VR"):pID, 1:"X") + Set pID=0 + For Set pID=$O(blTLM.TLPos(pID)) Quit:(pID=$$$MaxTLPos)||(pID="") Do + . Set pType=$G(blTLM.TLPos(pID,".TYPE")) + . Quit:(pType="UIT") + . Do BEGINTAG^XMLWRITE(DevObj,"TLPOS",$$$Attrib("sort",pID)) + . If pType="TL" Do xmlwTLPosTL + . Else If pType="VR" Do xmlwTLPosVR + . Else Do xmlwTLPosUnknown + . Do ENDTAG^XMLWRITE(DevObj,"TLPOS") + Do WRITELN^XMLWRITE(DevObj) + Do TAGWRITE^XMLWRITE(DevObj,"LISTBEGINPOS",$$LCVTSimple^vhLib(PosList," - ",1),$$$Attrib("unit","mm")) + Do WRITELN^XMLWRITE(DevObj) + Do ENDTAG^XMLWRITE(DevObj,"TLPOSITIES") + Quit +xmlwTLPosTL +#define ProgLblLamp(%v) "PRLA"_%v +#define ProgLblLampH(%v) "PRLH"_%v + Set TLID=blTLM.TLPos(pID,"ID") + Set blnTLExist=$L(TLID)&&(blTLM.SwizzleTLs(TLID)) + Set (ktxt,ktxtLH)="" + Do + . Set DItem=$G(..LookUp($$$NodeIL,$$$ProgLblLamp(TLID))) + . Quit:('DItem) + . Set ktxt=DItem.Eval("KTekst") + Do + . Set DItem=$G(..LookUp($$$NodeIL,$$$ProgLblLampH(TLID))) + . Quit:('DItem) + . Set ktxtLH=DItem.Eval("KTekst") + Do TAGWRITE^XMLWRITE(DevObj,"OBJTYPE",pType,$$$Attrib("oms","Lamp")) + Do TAGWRITE^XMLWRITE(DevObj,"KENM",$S(blnTLExist:blTLM.SwizzleTLs(TLID).Vermogen, 1:"?"),$S(blnTLExist:$$$Attrib("unit","W"),1:"")) + Do TAGWRITE^XMLWRITE(DevObj,"TUSSENLENGTE",$G(blTLM.TLPos(pID,"LEN")),$$$Attrib("unit","mm")) + Do TAGWRITE^XMLWRITE(DevObj,"BEGINPOS",$G(blTLM.TLPos(pID,"POS","B")),$$$Attrib("unit","mm")) + Do TAGWRITE^XMLWRITE(DevObj,"EINDPOS", $G(blTLM.TLPos(pID,"POS","E")),$$$Attrib("unit","mm")) + Do WRITELN^XMLWRITE(DevObj) + Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",ktxtLH) ; Lamphouder + Do TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",ktxt) ; Lamp + Do WRITELN^XMLWRITE(DevObj) + Quit +xmlwTLPosVR +#define ProgLblSnoer(%v) "PRSN"_"" + If pID=pIDFirstVR Do ;If (blnFirstVR)&&($$xmlwTLPosIsOfType($O(..TLPos(pID),-1),"UIT")) Do + . If $E(SnoerUit,1)="L" Do + .. Set pTypeVR="SN" + .. Set SnoerLExtraVR=SnoerLExtra + . Else Do + .. Set pTypeVR="B" + Else If pID=pIDLastVR Do + . If $E(SnoerUit,1)="R" Do + .. Set pTypeVR="SN" + .. Set SnoerLExtraVR=SnoerLExtra + . Else Do + .. Set pTypeVR="E" + Else Do + . Set pTypeVR="SN" + . Set tmpSnoerLExtra=0 + ; Snoer gegevens + If pTypeVR="SN" Do + . Set SnLen=$$$DflSnoerLen + . Set ktxt="EYY.test" + . ; Of via Lookup wordt dit: + . Set DItem=$G(..LookUp($$$NodeIL,$$$ProgLblSnoer(""))) + . Set ktxt="KTekst" + . Quit:('DItem) + . Set ktxt=DItem.Eval("KTekst") + . ;Set SnLen=$$$DflSnoerLen + Set pTypeOms=$CASE(pTypeVR, "SN":"Snoer", "B":"Begin", "E":"Einde", :"?") + Do TAGWRITE^XMLWRITE(DevObj,"OBJTYPE",pTypeVR,$$$Attrib("oms",pTypeOms)) + Do:(pTypeVR="SN") TAGWRITE^XMLWRITE(DevObj,"KENM",SnLen,$$$Attrib("unit","mm")) + Do TAGWRITE^XMLWRITE(DevObj,"TUSSENLENGTE",$G(blTLM.TLPos(pID,"LEN")),$$$Attrib("unit","mm")) + Do WRITELN^XMLWRITE(DevObj) + Do:(pTypeVR="SN") TAGWRITE^XMLWRITE(DevObj,"KORTTEKST",ktxt) + Do:(pTypeVR="SN") WRITELN^XMLWRITE(DevObj) + Quit +xmlwTLPosIsOfType(pID,pType) + Quit:(pID="") 0 + Quit ($G(blTLM.TLPos(pID,".TYPE"))=pType) +xmlwTLPosUnknown + Do TAGWRITE^XMLWRITE(DevObj,"OBJTYPE",pType,$$$Attrib("oms","Onbekend "_pType)) + Quit + +xmlwSpecialsASM + Quit + +xmlwSpecialsGRP + Quit + +xmlwSpecialsTBX +#define VTLKeyLC "PR;GA;TBLC" + New LC,URL2 + Set LC=..Val("LC") + Do TAGWRITE^XMLWRITE(DevObj,"LADECODE",LC) + Do WRITELN^XMLWRITE(DevObj) + // Via BL.Prod.ImageLink + Set URL2=##class(BL.PR.GA.TandemBox).GetImageURL("WEB", ..Val("LC"),..Val("BS"),..Val("DS"),..Val("BGRP"),..Val("SPZK")) + + // Via VertalingLink (OLD) + ;Set URL2=##class(Res.VertalingLink).GetLinkVertaling($$$VTLKeyLC,$$xmlwTBXLCToImg(LC),"LB",Taal,,"WWW") + ;Set:(URL2[".gif")&&(..Val("BS")="BD") URL2=$$REPLACE^vhRtn1(URL2,".gif","_BS.gif") ; Dubbelwandige boxside + Do TAGWRITE^XMLWRITE(DevObj,"IMAGEURL",URL2) + Do WRITELN^XMLWRITE(DevObj) + Quit + /* +xmlwTBXLCToImg(LC) + Quit:($G(LC)="") "" + Quit ##class(BL.PR.GA.TandemBox).ImageCodeFromLC(.LC,..Val("BS")) + */ + + + ; GAData.Product methods: +ConsistencyCheck() ; Parameters: CheckArray,lbChecks CheckArray als .local doorgeven + Set:('$D(lbChecks)) lbChecks=$LB($$$ccChildExpr,$$$ccVolgNrDItem,$$$ccVolgNrKost,$$$ccItemLabel,$$$ccProgLabel,$$$ccKolomNrParam,$$$ccParamMode,$$$ccExecutes) + Quit:(lbChecks="") + Kill CheckArray + Do:($LF(lbChecks,$$$ccChildExpr)) cchChildExpr + Do:($LF(lbChecks,$$$ccVolgNrDItem)) cchVolgNrDItem + Do:($LF(lbChecks,$$$ccVolgNrKost)) cchVolgNrKost + Do:($LF(lbChecks,$$$ccItemLabel)) cchItemLabel + Do:($LF(lbChecks,$$$ccProgLabel)) cchProgLabel + Do:($LF(lbChecks,$$$ccKolomNrParam)) cchKolomNrParam + Do:($LF(lbChecks,$$$ccParamMode)) cchParamMode + Do:($LF(lbChecks,$$$ccExecutes)) cchExecutes + Quit $D(CheckArray)=0 +cchChildExpr + New arChExprSG + Do cchChildExprMStruct + Do cchChildExprDItems + Quit +cchChildExprMStruct + ; Controleert voor alle Childs (in de hierarchy) dat de Code aanwezig is in de ChildExpr van de Parent (HG-GR-SG) + New tmpAr,tmpLB + New MetaH,MetaG,MetaS,ChExprH,ChExprG,iG,iS + Set MetaH=..MetaStruct + Quit:('MetaH) + Set ChExprH=$$cchExprToList(MetaH.ChildExpr) + Set iG="" + For Set MetaG=MetaH.Groepen.GetNext(.iG) Quit:(iG="") Do + . Set:($LF(ChExprH,MetaG.Code)<1) tmpAr("GR",MetaG.Code)=MetaH.ChildExpr + . Set ChExprG=$$cchExprToList(MetaG.ChildExpr) + . Set iS="" + . For Set MetaS=MetaG.SubGroepen.GetNext(.iS) Quit:(iS="") Do + .. Set:($LF(ChExprG,MetaS.Code)<1) tmpAr("SG",MetaS.Code)=MetaG.ChildExpr + .. Set arChExprSG(MetaS.Code)=MetaS.ChildExpr + Merge CheckArray($$$ccChildExpr)=tmpAr + Quit +cchChildExprDItems + ; Controleert voor alle DataItems dat DItem.Code aanwezig is in de ChildExpr van de SubGroep + ; Maakt gebruik van local "arChExprSG" die opgebouwd is in routine "cchChildExprMStruct" + New tmpAr,iI,DItem,SGCode + New i,Ch,blnIsChild + Set iI="" + For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do + . Set SGCode=DItem.SubGroepCode + . If SGCode="" Do Quit + .. Set tmpAr("DI",DItem.Code)="?SubGroep" + . Else If $$cchExprViaWildCard($$cchExprToList($G(arChExprSG(SGCode))),DItem.Code) Quit + . Else Set tmpAr("DI",DItem.Code)=$G(arChExprSG(SGCode)) ; DItem.Code past niet in de ChildExpr van de SG + Merge CheckArray($$$ccChildExpr)=tmpAr + Quit +cchExprViaWildCard(lbChExpr,ItemCode) + Quit:($LF(lbChExpr,ItemCode)>0) 1 + Set blnIsChild=0 + For i=1:1:$LL(lbChExpr) Do + . Set Ch=$LI(lbChExpr,i) + . If (Ch?.E1"*")&&($E(Ch,1,$L(Ch)-1)=$E(ItemCode,1,$L(Ch)-1)) Do + .. Set blnIsChild=1 + .. Set i=$LL(lbChExpr) ; quit for-loop immediate + Quit blnIsChild +cchVolgNrDItem + ; Controleert dat de VolgNrs van alle DataItems binnen dezelfde SubGroep uniek zijn + New tmpAr,tmpVNr,iI,DItem + Set iI="" + For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do + . If $D(tmpVNr(DItem.SubGroepCode,DItem.VolgNr)) Set tmpAr(DItem.SubGroepCode,DItem.Code)=DItem.VolgNr + . Else Set tmpVNr(DItem.SubGroepCode,DItem.VolgNr)="" + Merge CheckArray($$$ccVolgNrDItem)=tmpAr + Quit +cchVolgNrKost + ; Controleert dat de VolgNrs van alle Kost-elementen binnen hetzelfde DataItem uniek zijn + New tmpAr,iI,DItem,KKey,MKost,KostArray + Set iI="" + For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do + . New tmpVNr + . Do cchVNrKostType("T") + . Do cchVNrKostType("M") + Merge CheckArray($$$ccVolgNrKost)=tmpAr + Quit +cchVNrKostType(KostType) + Set KostArray=$S(KostType="M":DItem.KostMat, 1:DItem.KostTijd) ; Materiaal of Tijd - array of objects + Set KKey="" + For Set MKost=KostArray.GetNext(.KKey) Quit:(KKey="") Do + . If $D(tmpVNr(MKost.VolgNr)) Set tmpAr(KostType,DItem.Code,KKey)=MKost.VolgNr + . Else Set tmpVNr(MKost.VolgNr)="" + Quit +cchItemLabel + ; Controleert dat het ItemLabel van alle DataItems uniek zijn + New tmpAr,tmpVNr,iI,DItem + Set iI="" + For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do + . Quit:(DItem.Label="") + . If $D(tmpVNr(DItem.Label)) Set tmpAr(DItem.Code)=DItem.Label + . Else Set tmpVNr(DItem.Label)="" + Merge CheckArray($$$ccItemLabel)=tmpAr + Quit +cchProgLabel + ; Controleert dat de ProgLabels van alle DataItems uniek zijn + New tmpAr,tmpVNr,iI,DItem,iP,ProgLabel,MParam + Set iI="" + For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do + . Quit:('DItem.IsActief()) + . Set iP="" + . For Set MParam=DItem.MetaItem.Parameters.GetNext(.iP) Quit:(iP="") Do:(iP?1"ProgLabel".E) + .. Set ProgLabel=DItem.Get(iP) + .. Quit:(ProgLabel="") + .. If $D(tmpVNr(ProgLabel)) Set tmpAr(DItem.Code,iP)=ProgLabel + .. Else Set tmpVNr(ProgLabel)="" + Merge CheckArray($$$ccProgLabel)=tmpAr + Quit +cchKolomNrParam + ; Deze method moet eigenlijk alleen maar op ieder MetaItem-object uitgevoerd worden, ipv. alle DataItems af te lopen ! + ; Controleert dat de KolomNrs van alle MetaParams binnen hetzelfde MetaItem uniek zijn + New tmpAr,iI,DItem,iP,MParam + Set iI="" + For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do + . New tmpVNr + . Set iP="" + . For Set MParam=DItem.MetaItem.Parameters.GetNext(.iP) Quit:(iP="") Do:(MParam.KolomNr>0) + .. If $D(tmpVNr(MParam.KolomNr)) Set tmpAr(DItem.MetaItem.%Id(),iP)=MParam.KolomNr + .. Else Set tmpVNr(MParam.KolomNr)="" + Merge CheckArray($$$ccKolomNrParam)=tmpAr + Quit +cchParamMode + ; Deze method moet eigenlijk alleen maar op ieder MetaItem-object uitgevoerd worden, ipv. alle DataItems af te lopen ! + ; Controleert dat de waarde van Mode van alle MetaParams toegelaten is. + New tmpAr,iI,DItem,iP,MParam + Set iI="" + For Set DItem=..DataItems.GetNext(.iI) Quit:(iI="") Do + . New tmpVNr + . Set iP="" + . For Set MParam=DItem.MetaItem.Parameters.GetNext(.iP) Quit:(iP="") Do + .. If (MParam.Mode="")||("S;F;V;C;M;L;E"'[MParam.Mode) Set tmpAr(DItem.MetaItem.%Id(),iP)=MParam.Mode + Merge CheckArray($$$ccParamMode)=tmpAr + Quit +cchExecutes + Quit +cchExprToList(sExpr) + ; Convert Child Expression to $LB() + ; New tmpLB in bovenliggende routine + Set tmpLB="" + For i=1:1:$L(sExpr,"+") Set tmpLB=tmpLB_$LB($P(sExpr,"+",i)) + Quit tmpLB + + +CheckArrayTranslate ; Parameters: CheckArrayIn,CheckArrayOut,blnAsText CheckArray's als .local doorgeven) + Kill CheckArrayOut + Do chtChildExpr + Do chtVolgNrDItem + Do chtVolgNrKost + Do chtItemLabel + Do chtProgLabel + Do chtKolomNrParam + Do chtParamMode + Do chtExecutes + Quit +chtAddMsg(type,msg) + If blnAsText Do + . Set CheckArrayOut=$G(CheckArrayOut)_"["_type_"]: "_msg_$$$CRLF + Else Do + . Set:($L(msg)) CheckArrayOut($O(CheckArrayOut(""),-1)+1)="["_type_"]: "_msg + Quit +chtChildExpr +#define TranslMetaType(%v) $CASE(%v, "GR":"de Groep", "SG":"de Subgroep", "DI":"het DataItem", :"?") + Quit:('$D(CheckArrayIn($$$ccChildExpr))) + New tmpAr,i,c + Merge tmpAr=CheckArrayIn($$$ccChildExpr) + Set i="" + For Set i=$O(tmpAr(i)) Quit:(i="") Do + . Set c="" + . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do + .. Do chtAddMsg("ChildExpr",$$$TranslMetaType(i)_" met code """_c_""" kan niet voorkomen in de ChildExpr: "_tmpAr(i,c)) + Quit +chtVolgNrDItem + Quit:('$D(CheckArrayIn($$$ccVolgNrDItem))) + New tmpAr,i,c + Merge tmpAr=CheckArrayIn($$$ccVolgNrDItem) + Set i="" + For Set i=$O(tmpAr(i)) Quit:(i="") Do + . Set c="" + . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do + .. Do chtAddMsg("UniekVolgNrDItem","het VolgNr ("_tmpAr(i,c)_") van het DataItem """_c_""" is niet uniek binnen de Subgroep """_i) + Quit +chtVolgNrKost + Quit:('$D(CheckArrayIn($$$ccVolgNrKost))) + New tmpAr,i,c + Merge tmpAr=CheckArrayIn($$$ccVolgNrKost) + Set i="" + For Set i=$O(tmpAr("T",i)) Quit:(i="") Do + . Set c="" + . For Set c=$O(tmpAr("T",i,c)) Quit:(c="") Do + .. Do chtAddMsg("UniekVolgNrKost","het VolgNr ("_tmpAr("T",i,c)_") van het KostTijd-element """_c_""" is niet uniek binnen DataItem """_i) + Set i="" + For Set i=$O(tmpAr("M",i)) Quit:(i="") Do + . Set c="" + . For Set c=$O(tmpAr("M",i,c)) Quit:(c="") Do + .. Do chtAddMsg("UniekVolgNrKost","het VolgNr ("_tmpAr("M",i,c)_") van het KostMat-element """_c_""" is niet uniek binnen DataItem """_i) + Quit +chtItemLabel + Quit:('$D(CheckArrayIn($$$ccItemLabel))) + New tmpAr,i + Merge tmpAr=CheckArrayIn($$$ccItemLabel) + Set i="" + For Set i=$O(tmpAr(i)) Quit:(i="") Do + . Do chtAddMsg("UniekItemLabel","het Label """_tmpAr(i)_""" van het DataItem """_i_""" is niet uniek") + Quit +chtProgLabel + Quit:('$D(CheckArrayIn($$$ccProgLabel))) + New tmpAr,i,c + Merge tmpAr=CheckArrayIn($$$ccProgLabel) + Set i="" + For Set i=$O(tmpAr(i)) Quit:(i="") Do + . Set c="" + . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do + .. Do chtAddMsg("UniekProgLabel","de ProgLabel """_tmpAr(i,c)_""" van het DataItem """_i_ """ bij parameter """_c_""" is niet uniek") + Quit +chtKolomNrParam + Quit:('$D(CheckArrayIn($$$ccKolomNrParam))) + New tmpAr,i,c + Merge tmpAr=CheckArrayIn($$$ccKolomNrParam) + Set i="" + For Set i=$O(tmpAr(i)) Quit:(i="") Do + . Set c="" + . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do + .. Do chtAddMsg("UniekKolomNrParam","het KolomNr ("_tmpAr(i,c)_") van parameter """_c_""" is niet uniek binnen het MetaItem """_i) + Quit +chtParamMode + Quit:('$D(CheckArrayIn($$$ccParamMode))) + New tmpAr,i,c + Merge tmpAr=CheckArrayIn($$$ccParamMode) + Set i="" + For Set i=$O(tmpAr(i)) Quit:(i="") Do + . Set c="" + . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do + .. Do chtAddMsg("ParamMode","In het MetaItem """_i_""" is Mode """_tmpAr(i,c)_""" (bij parameter """_c_""") is niet toegelaten") + Quit +chtExecutes + Quit:('$D(CheckArrayIn($$$ccExecutes))) + New tmpAr,i,c + Merge tmpAr=CheckArrayIn($$$ccExecutes) + Set i="" + For Set i=$O(tmpAr(i)) Quit:(i="") Do + . Do:($D(tmpAr(i))#10) chtAddMsg("Execute",i_"/"_tmpAr(i)) + . Set c="" + . For Set c=$O(tmpAr(i,c)) Quit:(c="") Do + .. Do chtAddMsg("Execute",i_"/"_c_"/"_tmpAr(i,c)) + Quit + \ No newline at end of file Index: Prod/GADef/emKadBoring.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/GADef/emKadBoring.cls.xml (.../emKadBoring.cls.xml) (revision 734) +++ Prod/GADef/emKadBoring.cls.xml (.../emKadBoring.cls.xml) (revision 910) @@ -1,5 +1,5 @@ - + Afspraken i.v.m. Posities van Beslag en Boringen: @@ -18,8 +18,9 @@ ]]> serial %Library.SerialObject,%VHSys.Library -59626,62964.235335 +62139,55343.025787 58457,36479 +0 %Library.Float @@ -83,14 +84,20 @@ + +[Maatwerk Framework : GUI kenmerk] %Library.String + +[Maatwerk Framework : GUI kenmerk] %Library.String + +[Maatwerk Framework : GUI kenmerk] %Library.String @@ -160,8 +167,6 @@ Set:($G(AbsPos)="") AbsPos=IPos Quit AbsPos - - ]]> @@ -171,30 +176,21 @@ Als blnOpposite=1, dan geeft CalcHoogtePos steeds de dikte/breedte (voor onder+boven/interne+externe zijde).]]> GADefProd:Prod.GADef.KaderDeur,blnOpposite:%Library.Integer=1 %Library.Float - GADefProd:Prod.GADef.KaderDeur %Library.Float - GADefProd:Prod.GADef.KaderDeur %Library.Float - @@ -260,7 +256,6 @@ Quit:(msg'="") msg Quit msg - ]]> @@ -372,8 +367,6 @@ . ; Quit vOK - - ]]> @@ -439,8 +432,6 @@ Do:(OK'=1) %this.OpmerkingKodeSet(msg,"NL") Quit OK - - ]]> @@ -500,7 +491,6 @@ Set:(CopyProptList["%3") caNewObj.TxtSpecial=%this.TxtSpecial Quit caNewObj - ]]> @@ -528,8 +518,6 @@ If %this.BoorDiepte>0, ('%this.BoorDiameter)!(%this.BoorDiameter>0), %this.AfschuinDiameter'>0, ('%this.BoorGlasDiameter)!(%this.BoorGlasDiameter=7) Quit 0 Quit 1 - - ]]> @@ -553,7 +541,6 @@ .Set Prijs=Prijs+KostObj.Kost(QtyStaffel,MuntPar,DtlObj,$G(Opties),1,Omtrek,Opp,Volume) .Do KostObj.%Close() Quit Prijs - ]]> @@ -578,8 +565,6 @@ Set %this.TxtOpmerking=OK_FullOpm Quit 1 - - ]]> @@ -616,8 +601,6 @@ Set %this.TxtSpecial=txt Quit txt - - ]]> @@ -670,8 +653,6 @@ ; Add VML boring to DevObj Do WRITE^XMLWRITE(.DevObj,strVML) Quit - - ]]> @@ -775,7 +756,6 @@ xvwVMLGroepClose() Quit "" - ]]> @@ -825,8 +805,6 @@ Do:(RandPos'="") TAGWRITE^XMLWRITE(DevObj,"RANDPOS",RandPos,"UNIT=""mm""") Do ENDTAG^XMLWRITE(DevObj,"BORING") - - ]]> @@ -886,5 +864,5 @@ - + Index: Prod/ProductTekst.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/ProductTekst.cls.xml (.../ProductTekst.cls.xml) (revision 734) +++ Prod/ProductTekst.cls.xml (.../ProductTekst.cls.xml) (revision 910) @@ -1,11 +1,11 @@ - + persistent %VHMacro DataM %Library.Persistent -62074,42849.4813 +62136,54626.099589 59613,58961.975076 0 @@ -1062,7 +1062,7 @@ 1 - + Index: Prod/BouwStenenSchaduw.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/BouwStenenSchaduw.cls.xml (.../BouwStenenSchaduw.cls.xml) (revision 734) +++ Prod/BouwStenenSchaduw.cls.xml (.../BouwStenenSchaduw.cls.xml) (revision 910) @@ -1,11 +1,11 @@ - + persistent 1 VHOpslag %Persistent,Prod.BouwStenen -61764,50428.193518 +62144,56993.561784 59772,53878.611013 0 @@ -111,6 +111,19 @@ %String + + +Orgalux kindproduct +"" = onbepaald + 0 = neen + 1 = ja +%String + + + +%Integer + + %String @@ -195,6 +208,10 @@ "\" 2 + +"\" +24 + "\" "D" @@ -214,6 +231,10 @@ "\" 11 + +"\" +23 + "\" 1 @@ -281,5 +302,5 @@ - + Index: Prod/BouwStenen.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/BouwStenen.cls.xml (.../BouwStenen.cls.xml) (revision 734) +++ Prod/BouwStenen.cls.xml (.../BouwStenen.cls.xml) (revision 910) @@ -1,11 +1,11 @@ - + persistent 1 VHOpslag %Persistent -61764,50451.967431 +62153,49968.170889 59772,53878.611013 0 @@ -111,6 +111,19 @@ %String + + +Orgalux kindproduct +"" = onbepaald + 0 = neen + 1 = ja +%String + + + +%Integer + + %String @@ -195,6 +208,10 @@ "\" 2 + +"\" +24 + "\" "D" @@ -214,6 +231,10 @@ "\" 11 + +"\" +23 + "\" 1 @@ -281,5 +302,5 @@ - + Index: Prod/Kenmerk/Product.cls.xml =================================================================== diff -u -r802 -r910 --- Prod/Kenmerk/Product.cls.xml (.../Product.cls.xml) (revision 802) +++ Prod/Kenmerk/Product.cls.xml (.../Product.cls.xml) (revision 910) @@ -1,9 +1,9 @@ - + 1 %RegisteredObject -62129,42925.974682 +62136,54874.35559 0 @@ -116,5 +116,5 @@ ]]> - + Index: Prod/GAMeta/ItemPR.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/GAMeta/ItemPR.cls.xml (.../ItemPR.cls.xml) (revision 734) +++ Prod/GAMeta/ItemPR.cls.xml (.../ItemPR.cls.xml) (revision 910) @@ -1,12 +1,12 @@ - + Geeft het Bruto en Netto gewicht terug in de vorm van een $LB persistent %Prod.Product Prod.GAMeta.Item -61290,38707.399497 +62143,64764.113836 59113,28257 0 @@ -177,10 +177,10 @@ . Set MDef=##class(Prod.Kenmerk.MetaDefinitie).%OpenId(KenmGrp_"||"_Kenm) . Set MetaArray(KenmGrp_"||"_Kenm)=MDef ; Get Vertaling via MetaDef - Set RetVTL=$S($IsObject(MDef):MDef.VertaalItem(KMVal,.Taal,"K",1), 1:KMVal_" [?MetaDef:"_Kenm_"]") + Set RetVTL=$S($IsObject(MDef):MDef.VertaalItem(KMVal,.Taal,"K",1), 1:KMVal) ; , 1:KMVal_" [?MetaDef:"_Kenm_"]") Set MDef="" ; Apply Invers (if defined) - Set:($G(%arInvers("DItem","FabrOms",Kenm))=1) RetVTL=$$$MarkInvers(RetVTL) + Set:($G(%arInvers("DItem","FabrOms",Kenm))=1)&&($L(RetVTL)) RetVTL=$$$MarkInvers(RetVTL) Quit RetVTL /* /// Previous code @@ -295,5 +295,5 @@ %Library.CacheStorage - + Index: Prod/Product.cls.xml =================================================================== diff -u -r734 -r910 --- Prod/Product.cls.xml (.../Product.cls.xml) (revision 734) +++ Prod/Product.cls.xml (.../Product.cls.xml) (revision 910) @@ -1,11 +1,11 @@ - + persistent vhLib.Macro DataM %Library.Persistent -61999,54166.921694 +62138,49972.170883 59730,43699.597133 0 @@ -794,7 +794,7 @@ IdentNr:%Library.String %Library.String @@ -1380,5 +1380,5 @@ - +