Index: UI/PR/GA/TandemBox.cls.xml =================================================================== diff -u -r908 -r1047 --- UI/PR/GA/TandemBox.cls.xml (.../TandemBox.cls.xml) (revision 908) +++ UI/PR/GA/TandemBox.cls.xml (.../TandemBox.cls.xml) (revision 1047) @@ -1,12 +1,12 @@ - + serial KeyCodesCNTs,PRGACNTs,UILibCtrlCNTs Default %Library.TMFormClass -62144,41634.722483 -62144,41093 +62201,51448.786504 +62144,41688 0 @@ -2268,7 +2268,7 @@ @@ -4145,8 +4145,8 @@ Set oBTVal=..blTBox.BTValues Set LadeCode=..cboLadeCode.SelectedGetKey() Set msg="" ; msg is returned by reference - Quit:(..cboSPZijkant.SelectedGetKey()="") 1 Quit:(..cboKlasse.SelectedGetKey()="SY") 1 + Quit:(..cboSPZijkant.SelectedGetKey()="") 1 // Controle intivo spoelbak DLS If (LadeCode?1(1"DLS2"))&&(..cboSPZijkant.SelectedGetKey()'?1(1"SA",1"M")) Do Quit 0 @@ -6594,5 +6594,5 @@ - + Index: cw.mac.rou =================================================================== diff -u -r1033 -r1047 --- cw.mac.rou (.../cw.mac.rou) (revision 1033) +++ cw.mac.rou (.../cw.mac.rou) (revision 1047) @@ -26,6 +26,10 @@ Set Producten(SortKey)=PRNr } If $D(Producten) { + Do INIT^vhLIST("CHUI.Flow.Offerte.Offerte","DPLUS2",.LD) + Do WRITE^vhLIST(.LD) + } + If $D(pProducten) { Set Tekst(1)="Volgende levertermijnen naar D+2" Set Tekst(2)="wegens stop op automatisch magazijn",Tekst(3)="&S",SortKey="" For { FishEye: Tag 1047 refers to a dead (removed) revision in file `zTryout/CSC/KenmerkConversie.cls.xml'. FishEye: No comparison available. Pass `N' to diff? Index: Prod/GADef/KaderDeur.cls.xml =================================================================== diff -u -r995 -r1047 --- Prod/GADef/KaderDeur.cls.xml (.../KaderDeur.cls.xml) (revision 995) +++ Prod/GADef/KaderDeur.cls.xml (.../KaderDeur.cls.xml) (revision 1047) @@ -1,5 +1,5 @@ - + Afspraken i.v.m. Posities van Beslag en Boringen: @@ -19,7 +19,7 @@ persistent vhLib.Macro Prod.GADef.AfgeleidDef,%VHSys.Library -62188,60468.776989 +62201,44425.690237 59275,54270.198 0 @@ -1315,7 +1315,7 @@ d WL^vhDBG("SchaduwProduct: "_Templ.SchaduwProduct.%Id()) Set QtyStaffel="" ; wordt bepaald door de Qty van het normaal product Do ; Added by WimV on 30/03/2010 - . Set blnTempFixForJB=1 + . Set blnTempFixForJB=0 . Set QtyStaffel=$S(blnTempFixForJB:1, 1:"") Set:(+QtyStaffel'>0) QtyStaffel=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("KAD",PRNr,"QTY"),1) Set KadObj=##class(Prod.GADef.KaderDeur).%OpenId(KadID) @@ -1344,7 +1344,7 @@ Set Familie = ##class(DOM.PM.enu.Familie).AluKader() Set Variant = ##class(DOM.PM.enu.AluKaderVariant).Basis() - Do ##class(zTryout.CSC.KenmerkConversie).ConverteerProductToIK(Convertor,Kaderdeur,Familie,Variant,PRNr) + Do ##class(APPS.PM.Maatwerk.KenmerkConversie).ConverteerProductToIK(Convertor,Kaderdeur,Familie,Variant,PRNr) } Set $ZTRAP = "" Quit @@ -1353,7 +1353,7 @@ Set $ZTRAP = "" Set Exception = ##class(TECH.ExceptionHandler).Catch() Set Body="PRNr = "_..ProductGetObjectId()_$$$CRLF_Exception.ToString()_$$$CRLF_$$$CRLF_$$GetJobInfo^vhLib(1,"") - Do SendMiniMail^vhLib($$$SystemMail("reports"),$LB("ICT_SupportTBX@vanhoecke.be"),"Fout in Kaderdeur KenmerkConversie",Body) + Do SendMiniMail^vhLib.Mail($$$SystemMail("reports"),$LB("ICT_SupportTBX@vanhoecke.be"),"Fout in Kaderdeur KenmerkConversie",Body) Quit ]]> @@ -2820,5 +2820,5 @@ - + Index: BL/PR/GA/TandemBoxRecalc.cls.xml =================================================================== diff -u -r946 -r1047 --- BL/PR/GA/TandemBoxRecalc.cls.xml (.../TandemBoxRecalc.cls.xml) (revision 946) +++ BL/PR/GA/TandemBoxRecalc.cls.xml (.../TandemBoxRecalc.cls.xml) (revision 1047) @@ -1,11 +1,12 @@ - + 1 PRGACNTs,%Prod.Product,BL.Derde.KlantSpecifiek 1 %RegisteredObject -62171,53615.306974 +62201,52185.313424 +62171,58112.143853 0 @@ -75,36 +76,161 @@ Herberekenen van de Bouwstenen voor TBX-producten. Deze routine kan in drie stappen verlopen + + + + +/ Check Only : CountProducts +1 + + + + + +Check Only : Recalc products without changes +1 + + + + + +Recalc products and update BS +1 + + + + + +Check Only : Recalc manuele PRBS-producten without changes +1 + + + + + +Recalc manuele PRBS-producten and update BS +De lijst van manuele PRBS-producten wordt één voor één afgelopen, zodat je bij ieder product Y/N kunt kiezen +1 + @@ -133,7 +259,7 @@ // Display errors if any occured If $D(arErrors) { - Write !,$$$ArrayTT2("arErrors",.arErrors),! + Write !,$$$ArrayTT("arErrors",.arErrors),! } ]]> @@ -155,7 +281,7 @@ ]]> - + arProd als .local doorgeven @@ -175,6 +301,8 @@ 1 + + +Toevoegen van het Manuele PRBS-product aan de array arProd(). +arProd als .local doorgeven + +1 + + + + + +Toevoegen van alle Manuele PRBS-producten aan de array arProd(). +arProd als .local doorgeven + +1 + + + 1 @@ -341,5 +506,5 @@ ]]> - + Index: BL/PR/GA/impl/TandemBoxRecalcInputKM.cls.xml =================================================================== diff -u -r734 -r1047 --- BL/PR/GA/impl/TandemBoxRecalcInputKM.cls.xml (.../TandemBoxRecalcInputKM.cls.xml) (revision 734) +++ BL/PR/GA/impl/TandemBoxRecalcInputKM.cls.xml (.../TandemBoxRecalcInputKM.cls.xml) (revision 1047) @@ -1,9 +1,9 @@ - + 1 BL.PR.GA.TandemBoxRecalc -62111,55109.746494 +62201,51197.625397 62062,42004.771402 0 @@ -53,7 +53,7 @@ // Display errors if any occured If $D(arErrors) { - Write !,$$$ArrayTT2("arErrors",.arErrors),! + Write !,$$$ArrayTT("arErrors",.arErrors),! } ]]> @@ -177,5 +177,5 @@ ]]> - + Index: APPS/PM/Maatwerk/KenmerkConversie.cls.xml =================================================================== diff -u --- APPS/PM/Maatwerk/KenmerkConversie.cls.xml (revision 0) +++ APPS/PM/Maatwerk/KenmerkConversie.cls.xml (revision 1047) @@ -0,0 +1,192 @@ + + + +1 +%RegisteredObject +62201,48741.261804 +0 + + + +OPPASSEN BIJ HET UITVOEREN: + +De KILLEXTENT mag NIET meer uitgevoerd worden van zodra OLM wordt gedeployed + + +d ##class(APPS.PM.Maatwerk.KenmerkConversie).ConverteerTBX() +1 + 0) + { + w "Probleem bij product "_PRNr_":",! + Set Iterator = ##class(TECH.ListIterator).%New(ErrorLijst) + While (Iterator.HasNext()) + { + w Iterator.Next(),! + } + } + Else + { + Set Familie = Product.GeefFamilie() + Set Variant = Product.GeefVariant() + Set ProductSpecificatie = ##class(DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie).%New(Familie, Variant, Kenmerken) + Do ProductSpecificatie.Annotaties.SetAt("De ingegeven kenmerken werden gegenereerd door conversie van het oude product","Gegenereerd door") + Set Status = ProductSpecificatie.%Save() + + Set ParsedStatus = $$ParseStatus^vhLib(Status) + If (ParsedStatus '= "") + { + w "Save gefaald voor "_PRNr_": "_ParsedStatus,! + } + Else + { + Set $Piece(^KPR(Product.GeefPRNr(),15),"\",13) = ProductSpecificatie.%Id() + } + } + } + Set PRNr = $Order(^KPR(PRNr)) + } +]]> + + + + +d ##class(APPS.PM.Maatwerk.KenmerkConversie).ConverteerKAD() +1 + 0) + { + w "Probleem bij product "_ID_":",! + Set Iterator = ##class(TECH.ListIterator).%New(ErrorLijst) + While (Iterator.HasNext()) + { + w Iterator.Next(),! + } + } + Else + { + Set Familie = ##class(DOM.PM.enu.Familie).AluKader() + Set Variant = ##class(DOM.PM.enu.AluKaderVariant).Basis() + Set ProductSpecificatie = ##class(DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie).%New(Familie, Variant, Kenmerken) + Do ProductSpecificatie.Annotaties.SetAt("De ingegeven kenmerken werden gegenereerd door conversie van het oude product","Gegenereerd door") + Set Status = ProductSpecificatie.%Save() + + Set ParsedStatus = $$ParseStatus^vhLib(Status) + If (ParsedStatus '= "") + { + w "Save gefaald voor "_PRNr_": "_ParsedStatus,! + } + Else + { + Set $Piece(^KPR(PRNr,15),"\",13) = ProductSpecificatie.%Id() + } + } + Set i = i + 1 + } + } + } + w "# verwerkt: "_i +]]> + + + + +Converteert het gegeven Product met de gegeven Convertor naar IngegevenKenmerken. +Deze en de bijhorende ProductSpecificatie zullen bewaard worden. + +Convertor en Product moeten nog polymorph gemaakt worden. +Wanneer Product afgeleid wordt van DOM.PM.Product, dan kan die zelf zijn Familie, Variant en PRNr bepalen. Dan kunnen die parameters logischerwijs weggelaten worden. + +Deze method moet in een Helper-klasse geplaatst worden. +1 +Convertor:%RegisteredObject,Product:%RegisteredObject,Familie:DOM.PM.enu.Familie,Variant:DOM.PM.enu.Variant,PRNr:%String + 0) { + Set Iterator = ##class(TECH.ListIterator).%New(ErrorLijst) + While (Iterator.HasNext()) + { + Do ##class(vhLib.Logger).%New("Kenmerken conversie").Info("Probleem bij product "_PRNr,Iterator.Next()) + } + } + + Set ProductSpecificatie = "" + Set ProductSpecificatieID = $Piece($G(^KPR(PRNr,15)),"\",13) + + If $Length(ProductSpecificatieID) { + Set ProductSpecificatie = ##class(DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie).%OpenId(ProductSpecificatieID) + } + + If ($IsObject(ProductSpecificatie)) { + Do ProductSpecificatie.ZetIngegevenKenmerken(Kenmerken) + } + Else { + Set ProductSpecificatie = ##class(DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie).%New(Familie, Variant, Kenmerken) + Do ProductSpecificatie.Annotaties.SetAt("De ingegeven kenmerken werden gegenereerd door conversie van het oude product","Gegenereerd door") + } + + Set Status = ProductSpecificatie.%Save() + + If ($$$ISOK(Status)) { + Set $Piece(^KPR(PRNr,15),"\",13) = ProductSpecificatie.%Id() + } + Else { + Set ParsedStatus = $$ParseStatus^vhLib(Status) + Do ##class(vhLib.Logger).%New("Kenmerken conversie").Info("Probleem bij product "_PRNr,"Save gefaald voor "_PRNr_": "_ParsedStatus) + } + Quit +]]> + + + +%SQLQuery + SELECT ID + FROM Prod_GADef.KaderDeur where templateroutine is null + + + + Index: Prod/GADef/KaderDeur/tmpDev.mac.rou =================================================================== diff -u --- Prod/GADef/KaderDeur/tmpDev.mac.rou (revision 0) +++ Prod/GADef/KaderDeur/tmpDev.mac.rou (revision 1047) @@ -0,0 +1,605 @@ +#include %occInclude +#include %VHMacro + +OLDTransformPrevNext(TranslateMe,RelPosPrev,RelPosNext) + ;TransformPrevNext(TranslateMe,RelPosPrev,RelPosNext) + Quit "" + +OLDAbsPosRecalcAll(Opties,%this) + ; AbsPosRecalcAll(Opties) + Quit + +OLDAbsPosCalc(sCode,RelPos,PrevVal,NextVal,%this) + ; AbsPosCalc(sCode,RelPos,PrevVal,NextVal) + Quit 0 + + + +IsUserWV() + Set blnTelnetWV=($ZUTIL(67,7,$J)["TNT|WV_XP") + Set blnUserWV=(blnTelnetWV||$$ClientIsIP^vhLib(97)) + Quit ''blnUserWV + +CalcNewKost(SetGlobVar) Set SetGlobVar=$G(SetGlobVar,0) + Quit 1 + New tmpUserWV,blnCalc + Set tmpUserWV=$S((SetGlobVar)||('$D(%IsUserWV)):$$IsUserWV(), 1:%IsUserWV) ; $S(('SetGlobVar)&&($D(%IsUserWV)):%IsUserWV, 1:$$IsUserWV()) + Set:(SetGlobVar) %IsUserWV=tmpUserWV + Set blnCalc=(tmpUserWV=1) + Quit blnCalc + + + + ; Do StartJobBuildAllPRBS^Prod.GADef.KaderDeur.tmpDev() +StartJobBuildAllPRBS() + Job BGxBuildAllPRBS^Prod.GADef.KaderDeur.tmpDev() + w "Job started in process (ID): "_$ZCHILD + Quit +BGxBuildAllPRBS() + New StartTime,sc,scM,msg + d LOW^%PRIO + Set StartTime=$ZDT($H,4) + ;Do GetIDsKostSpecial() + Set sc=$$BuildAllPRBS() + Set msg="routine BuildAllPRBS() finished."_$$$CRLF_ + "Time: from "_StartTime_" until "_$ZDT($H,4)_$$$CRLF_ + "Job ID: "_$J_$$$CRLF_ + $$ParseStatus^vhLib(sc) + Set scM=$$SendMiniMail^vhLib(""""_$$$Server_""" ",$LB("WV@vanhoecke.be"),"Job finished",msg,0) + Kill:($$$ISOK(sc))&&($$$ISOK(scM)) ^wvKadDiff(-1,"NEXT ID") + Quit + + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + // BEREKENING VAN DE Bouwstenen in ^PRBS (dd. septemeer 2006) // + // // + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + + ; w $$BuildAllPRBS^Prod.GADef.KaderDeur.tmpDev() +BuildAllPRBS(KadIDCust) + New sc + Kill %arLOG + If ($G(KadIDCust)) Do + . Kill %arFakeIDs + . Set %arFakeIDs(KadIDCust)="" ; KadID + Set sc=$$LoopKadObjViaKPR("") ; 240000) + w $$$ArrayTT("%arLOG"),! + Do ArrayToTabDelim^vhLib(.%arLOG,"c:\temp\KadPrijsCmp_007.txt",,"") + Quit sc +LoopKadObjViaKPR(StartPRNr) + New PRNr,KadID,KadObj,tmpTemplateRef + Set PRNr=$G(StartPRNr,"") + For Set KadID=$$cnpNextFromKPR(.PRNr) Quit:(PRNr="") Do + . Quit:(KadID<1000) + . Set ^wvKadDiff(-1,"NEXT ID")=KadID_" (PRNr="_PRNr_")" + . w !,KadID_" (PRNr="_PRNr_") " + . q:(KadID<104090)||(KadID>104100) ; q:(KadID>266440) + . ; Get Objects + . Set KadObj=##class(Prod.GADef.KaderDeur).%OpenId(KadID) + . Do BuildPRBS(KadObj) + Quit $$$OK +BuildPRBS(KadObj) + Quit:('$IsObject(KadObj))||('$IsObject(KadObj.Product)) + New CalcObj,Staffel,PRNr,KPrijs,tmpAr + Set CalcObj=##class(Prod.GADef.KadPrijs).%OpenId(KadObj.%Id()) + Quit:('$IsObject(CalcObj)) + Set Staffel=CalcObj.Aantal + Set PRNr=KadObj.ProductGetObjectId() + Set KPrijs=KadObj.KostPrijsCalc(Staffel) ; uitvoeren om KadObj.GADataProduct aan te maken + Set %arLOG(PRNr)=KadID_" "_KPrijs + Merge tmpAr=^HADPR("P",PRNr) + If $IsObject(KadObj.GADataProduct) Do + . Do KadObj.GADataProduct.ProductSetObjectId(KadObj.ProductGetObjectId()) + . Do KadObj.GADataProduct.KPRCreate("",Staffel,0) + . ;Set tmpTemplateRef=KadObj.GADataProduct.TemplateTmp + Merge ^HADPR("P",PRNr)=tmpAr ; reset ^HADPR + ;w tmpTemplateRef,! + Quit + +GetIDsKostSpecial() + Kill %arFakeIDs + &sql(DECLARE crsKadKS CURSOR FOR SELECT ID INTO :ID FROM Prod_GADef.KaderDeur WHERE (ID>1000) AND ( (ConstructKostSpecial<>0) OR (ProfAfwKostSpecial<>0) OR (VullingKostSpecial<>0) ) ) + &sql(OPEN crsKadKS) + For &sql(FETCH crsKadKS) Quit:(SQLCODE) Set %arFakeIDs(ID)="" + &sql(CLOSE crsKadKS) + Quit + + ;d RecalcKostSpecial^Prod.GADef.KaderDeur.tmpDev() +RecalcKostSpecial() + New KadID,KadObj,BEF2EUR + Do GetIDsKostSpecial() + Set BEF2EUR=1 ; 1/40.3399 + Set KadID="" + For Set KadID=$Order(%arFakeIDs(KadID)) Quit:(KadID="") Do + . Set KadObj=##class(Prod.GADef.KaderDeur).%OpenId(KadID) + . Quit:('$IsObject(KadObj)) + . Set:(KadObj.ProfAfwKostSpecial) KadObj.ProfAfwKostSpecial=$J(KadObj.ProfAfwKostSpecial*BEF2EUR,0,5) + . Set:(KadObj.VullingKostSpecial) KadObj.VullingKostSpecial=$J(KadObj.VullingKostSpecial*BEF2EUR,0,5) + . Set:(KadObj.ConstructKostSpecial) KadObj.ConstructKostSpecial=$J(KadObj.ConstructKostSpecial*BEF2EUR,0,5) + . Set sc=KadObj.%Save() + . w KadID_" "_$S($$$ISERR(sc):$$ParseStatus^vhLib(sc), 1:1),! + Quit $$$OK + + + + /* + /// Verplaatst naar CALCviaGADataProduct^Prod.GADef.KaderDeur.KostPrijs(%this,Staffel,CalcObj) +CalcKostPrijsNew(%this,Staffel,CalcObj) +#define KADBasis "KADBasis" + New KadObj,TemplateID,Prod,arValidPR,KPrijs,arKDtls,BEF2EUR + Set KadObj=%this + ;Set BldDtl=($IsObject($G(CalcObj))) + Set TemplateID=$LG(##class(Prod.GAData.Template).IDsViaCode($$$KADBasis),1) + Set Prod=##class(Prod.GAData.Product).BuildFromTemplate(TemplateID) + Quit:('$IsObject(Prod)) "" + Do Prod.KlantSetObjectId($G(KLNr)) + Do Prod.TemplateTmpInit() + Do Prod.AutosFromTemplate(,"FILL") + Do tnbValuesToProduct + Do Prod.CalcAll() + Set:($IsObject($G(CalcObj))) CalcObj.DetailGAData=Prod + If 'Prod.ValidatePR(.arValidPR) Do ; Quit "" + . Do tnbInvalidPR + . Set KPrijs="" + Else Do + . Set KPrijs=+$J($G(Prod.Cumuls("KPrijs")),0,2) + ;Set %FRZ("ProfKant")=Prod.Val("LFREZZK") ; for debugging purpose + Quit $J(KPrijs,0,2) +tnbInvalidPR +#define CRLF $C(13,10) + New msg,Key,DItem + d WLIP^vhDBG(97,"KAD KPCalc New - "_$G(KadID,%this.%Id())_" - %NoSa : "_$G(%NoSa)_" Staffel: "_Staffel) + Set msg="Fouten bij de validatie van de producten: " + Set Key="" + For Set Key=$O(arValidPR(0,Key)) Quit:(Key="") Do + . Set DItem=Prod.DataItems.GetAt(Key) + . Set msg=msg_$$$CRLF_"> "_DItem.Get("Oms")_" ("_DItem.Code_") : PRNr="""_DItem.Get("PRNr")_"""" + ;Do MApplication.MessageBox(msg,"Producten valideren",$$$MBICONEXCLAMATION) + d WL^vhDBG(msg) + Quit +tnbValuesToProduct + Do:('$D(Prod.LookUp("PLItem"))) Prod.BuildLookUp($LB("ICode")) ; "PLItem" is onderdeel van BuildLU("ICode") + Do tnbSetViaObj(KadObj) + Do tnbSetViaProgLabel("QTY",Staffel) + Set sc=$$tnbSetDItemKadObj(KadObj) + Do Prod.BuildLookUp($LB("PL")) + Quit +tnbSetViaObj(KadObj) + Do tnbSetViaProgLabel("TOEP",KadObj.Toepassing.ItemID) + Do tnbSetViaProgLabel("PH",KadObj.Hoogte) + Do tnbSetViaProgLabel("PB",KadObj.Breedte) + Do tnbSetViaProgLabel("PT",KadObj.ProfType.ItemID) + Do tnbSetViaProgLabel("PA",KadObj.ProfAfw.ItemID) + If $IsObject(KadObj.Vulling.Vulling) Do + . Do tnbSetViaProgLabel("VULCODE",KadObj.Vulling.Vulling.ItemID) + . Do tnbSetViaProgLabel("LVE",$$tnbListVullingExtras()) + . Do tnbSetViaProgLabel("VULOPP",KadObj.VulOpp()) + . Do tnbSetViaProgLabel("VULOMTREK",KadObj.VulOmtrek()) + Do tnbSetViaProgLabel("OPH",KadObj.OphangPlaats.ItemID) + Do tnbSetViaProgLabel("LBSL","") + Do tnbSetViaProgLabel("LBSL2","") + Do tnbSetViaProgLabel("LBOR","") + Do tnbSetViaProgLabel("MON",KadObj.Gemonteerd) + Do tnbSetViaProgLabel("VPK",KadObj.Verpakking) + Do tnbSetViaProgLabel("DOSNR",KadObj.Dossier) + Set BEF2EUR=1 ; 1/40.3399 + Do tnbSetViaProgLabel("PROFKS",KadObj.ProfAfwKostSpecial*BEF2EUR) + Do tnbSetViaProgLabel("VULKS",KadObj.VullingKostSpecial*BEF2EUR) + Do tnbSetViaProgLabel("CONSKS",KadObj.ConstructKostSpecial*BEF2EUR) + Do tnbSetViaProgLabel("GEWICHT",KadObj.Gewicht()) + Do tnbSetViaProgLabel("PWIJZE",$S(1:KadObj.ProductieWijzeGetObjectId(), ..cboLosProfDeel.ItemIndex>-1:"LPR", 1:"")) + Do tnbSetViaProgLabel("ODEEL",$$ObjectListToLB^vhLib(KadObj.Onderdelen)) + Quit +tnbListVullingExtras() + Quit:('$IsObject(KadObj.Vulling)) + New Key,VE,tmpLB + Set (tmpLB,Key)="" + For Set VE=KadObj.Vulling.VullingExtra.GetNext(.Key) Quit:(Key="") Set tmpLB=tmpLB_$LB(VE.ItemID) + Quit tmpLB +tnbSetViaProgLabel(ProgLabel,Val) + Do Prod.SetItemValByPL(ProgLabel,Val) + Quit +tnbSetDItemKadObj(KadObj) +#define NodePLItem "PLItem" + New Item,ProgLabel + Set ProgLabel="KADOBJ" + Set Item=$G(Prod.LookUp($$$NodePLItem,ProgLabel,"IOref")) + Quit:('$IsObject(Item)) $$$ERROR($$$GeneralError,"No Item Object") + Set Item.FixedKeys=$LB("Object") ; Temporary set key fixed, else it will be cleared before Re-CalcAll() + Quit Item.SetObject(KadObj) + Quit $$$OK + + */ + + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + // ANALYSE VAN DE NIEUWE PRIJZEN (t.o.v huidige KostPrijs in ^KPR) (dd. juni 2006) // + // // + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + + ; w $$CheckNewPrs^Prod.GADef.KaderDeur.tmpDev() +CheckNewPrs(KadIDCust,SelectKLNr) + Do WLIP^vhDBG(97,"CheckNewPrs") + New sc + W "Killing large variables. Please wait ...",! + Kill %arFakeIDs + Kill %arLOG,%arLOGI,%arLOGD + W "Start processing ...",! + ;Set %arLOG(0)=$LB("[NP]","[OP]","[DIFF]","Toepas","Prof","Vul","Hgt","Brd","Qty","FrezZK","LVE","VPKType","ProfKS","VulKS","ConsKS") + ;Set %arLOGD("KLNr","KKey","PRNr")=$LB("KadID","","FxPRS","other PRS","RelDiff") + Set:($G(KadIDCust)) %arFakeIDs(KadIDCust)="" ; KadID + /* * / + Set %arFakeIDs(104295)="" ; KadID + Set %arFakeIDs(104318)="" + Set %arFakeIDs(255644)="" + Set %arFakeIDs(256223)="" + Set %arFakeIDs(263864)="" + Set %arFakeIDs(264165)="" + /* */ + Set sc=$$CheckNewPrices("") ; 250000) + Do cnpCompareSimilar() + ;w $$$ArrayTT("log(""SAME"")",.%arLOG),! + ;w $$$ArrayTT("log(""DIFF"")",.%arLOG),! + ;w $$$ArrayTT("%arLOG"),! + Do:($L($G(SelectKLNr))) ArrayToTabDelim^vhLib(.%arLOG,"c:\temp\KadPrijsChk_003.txt",,"") + Do ArrayToTabDelim^vhLib(.%arLOGD,"c:\temp\KadPrijsChkDiff_"_$S($L($G(SelectKLNr)):SelectKLNr_"_",1:"")_"003.txt",,"") + Quit sc +CheckNewPrices(StartPRNr) +#define Pc(%i) $P(Rec,"\",%i)_"\" +#define Pc2(%i,%j) $P(Rec,"\",%i,%j)_"\" + New PRNr,KadID,CalcObj,Qty,KLNr,OldPRS,NewPRS,Rec,KKey ; KadObj,KPrijs,PrevPRS,lbBadIDs + Set PRNr=$G(StartPRNr,"") + For Set KadID=$$cnpNextFromKPR(.PRNr) Quit:(PRNr="") Do + . Quit:(KadID<1000) + . Set NewPRS=$P(^KPR(PRNr,2),"\",3) + . Quit:('NewPRS) ; SchaduwPrijs nog niet ingevuld + . ; Get Objects + . Quit:('##class(Prod.GADef.KaderDeur).%ExistsId(KadID)) + . Set CalcObj=##class(Prod.GADef.KadPrijs).%OpenId(KadID) + . Quit:('$IsObject(CalcObj)) + . w PRNr_" "_KadID,! + . Set Qty=CalcObj.Aantal + . Set KLNr=$O(^KSTPR(PRNr,0)) Set:(KLNr="") KLNr="0" + . Quit:($L($G(SelectKLNr)))&&(KLNr'=SelectKLNr) + . Set Rec=$G(^KPR(PRNr,"G")) + . Set OldPRS=$P(Rec,"\",12) + . ;w:(OldPRS'=$P(^KPR(PRNr,"J6332"),"\",19)) "HLX:"_$P(^KPR(PRNr,"J6332"),"\",19)_" "_OldPRS,! + . ;d:(OldPRS'=$P(^KPR(PRNr,"J6332"),"\",19)) WL^vhDBG(KadID_" "_"HLX:"_$P(^KPR(PRNr,"J6332"),"\",19)_" "_OldPRS) + . ;Set:(OldPRS="") OldPRS=$P(^KPR(PRNr,"J6332"),"\",19) + . Do:($J(NewPRS,0,2)'=$J(CalcObj.TotaleKostPrijs,0,2)) WL^vhDBG(KadID_" NewPRS NIET gelijk : "_NewPRS_" - CalcObj: "_CalcObj.TotaleKostPrijs) + . Do:(KadID'=$P(Rec,"\",13)) WL^vhDBG(KadID_" NIET gelijk aan ID in ""G""-node : "_$P(Rec,"\",13)) + . Set KKey=$$$Pc(2)_$$$Pc(5)_$$$Pc2(8,9)_$$$Pc(10)_$$$Pc(11)_$$$Pc(14)_$$$Pc(6) + . Set %arLOG(KLNr,KKey,PRNr)=$LB(Qty,KadID,$P(Rec,"\",1),OldPRS,"-->",NewPRS) + . Set %arLOGI(KadID)=$LB(KLNr,PRNr,KKey) + Quit $$$OK +cnpCompareSimilar() + New KLNr,KKey,PRNr,blnDiff + Set (KLNr,KKey,PRNr)="" + For Set KLNr=$O(%arLOG(KLNr)) Quit:(KLNr="") Do + . W KLNr,! + . For Set KKey=$O(%arLOG(KLNr,KKey)) Quit:(KKey="") Do + . . Set blnDiff=0 + . . For Set PRNr=$O(%arLOG(KLNr,KKey,PRNr)) Quit:(PRNr="") Set %arLOG(KLNr,KKey,PRNr)=%arLOG(KLNr,KKey,PRNr)_$$cnpCalcRelDiffLB(PRNr,.blnDiff) + . . Do:(blnDiff) WL^vhDBG("KLNR: "_KLNr_" "_KKey) + . . Merge:(blnDiff) %arLOGD(KLNr,KKey)=%arLOG(KLNr,KKey) + . Kill:($G(SelectKLNr)="") %arLOG(KLNr) + Quit +cnpCalcRelDiffLB(FixedPRNr,blnOver) ; blnOver als .local doorgeven +#define RelMarge 5 +#define iPRS $LI(%arLOG(KLNr,KKey,iPRNr),6) +#define iOldPRS $LI(%arLOG(KLNr,KKey,iPRNr),4) +#define FactOld $S('FxOldPRS||'$$$iOldPRS:1, 1:FxOldPRS/$$$iOldPRS) + New FxPRS,FxOldPRS,tmpLB,iPRNr,iPRS,RelDiff + Set FxPRS=$LI(%arLOG(KLNr,KKey,FixedPRNr),6) + Set FxOldPRS=$LI(%arLOG(KLNr,KKey,FixedPRNr),4) + Set tmpLB="" + Set iPRNr=FixedPRNr ; Start $ORDER() from FixedPRNr + For Set iPRNr=$O(%arLOG(KLNr,KKey,iPRNr)) Quit:(iPRNr="") Do + . Set RelDiff=$J((FxPRS-($$$iPRS*$$$FactOld))/FxPRS*100,0,1) + . ;Do WL^vhDBG("KLNR: "_KLNr_" "_RelDiff) + . Set tmpLB=tmpLB_$LB(RelDiff) + . If $ZAbs(RelDiff)>$$$RelMarge Do + . . Set blnOver=1 + . . Do WL^vhDBG("KLNR: "_KLNr_" KadID: "_$LI(%arLOG(KLNr,KKey,FixedPRNr),2)_" 5% marge overschreden : "_FxPRS_" - "_$$$iPRS_" ("_$J($$$FactOld,0,3)_") -> "_RelDiff) + ;Set %arLOGD(KLNr,KKey,FixedPRNr)=$LB($LI(%arLOG(KLNr,KKey,FixedPRNr),2)," >5% ",FxPRS,iPRS,RelDiff) + Quit tmpLB + + ; Set %arLOGD("KLNr","KKey","PRNr")=$LB("KadID","","FxPRS","other PRS","RelDiff") + + + + + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + // VERGELIJKING VAN DE PRIJSBEREKENING (nieuwe methode: via Prod.GAData) (dd. juni 2006) // + // // + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + + ; w $$ComparePrs^Prod.GADef.KaderDeur.tmpDev() +ComparePrs(KadIDCust) + New sc + Kill %arFakeIDs + Kill %arLOG + Set %arLOG(0)=$LB("[NP]","[OP]","[DIFF]","Toepas","Prof","Vul","Hgt","Brd","Qty","FrezZK","LVE","VPKType","ProfKS","VulKS","ConsKS") + Set:($G(KadIDCust)) %arFakeIDs(KadIDCust)="" ; KadID + /* * / + Set %arFakeIDs(104295)="" ; KadID + Set %arFakeIDs(104318)="" + Set %arFakeIDs(255644)="" + Set %arFakeIDs(256223)="" + Set %arFakeIDs(263864)="" + Set %arFakeIDs(264165)="" + /* */ + Set sc=$$CompareNewPrices(1,240000) ; 240000) + ;w $$$ArrayTT("log(""SAME"")",.%arLOG),! + ;w $$$ArrayTT("log(""DIFF"")",.%arLOG),! + w $$$ArrayTT("%arLOG"),! + Do ArrayToTabDelim^vhLib(.%arLOG,"c:\temp\KadPrijsCmp_004.txt",,"") + Quit sc +CompareNewPrices(blnSimulate,StartPRNr) +#define SINGLESaveGAData ($O(%arFakeIDs($O(%arFakeIDs(""))))="")&&($O(%arFakeIDs(""))'="") +#define DEBUGSaveGAData 0 + New PRNr,KadID,KadObj,KPrijs,CalcObj,PrevPRS,Qty,lbBadIDs + New Munt,BldDtl,ForceRecalc + Set PRNr=$G(StartPRNr,"") + For Set KadID=$$cnpNextFromKPR(.PRNr) Quit:(PRNr="") Do + . Quit:(KadID<1000) + . ; Get Objects + . Set KadObj=##class(Prod.GADef.KaderDeur).%OpenId(KadID) + . Quit:('$IsObject(KadObj)) + . Set CalcObj=##class(Prod.GADef.KadPrijs).%OpenId(KadID) + . Quit:('$IsObject(CalcObj)) + .; ; w PRNr_" "_KadID,! + .; ; Get previous values + .; Set Qty=CalcObj.Aantal + .; Set PrevPRS=CalcObj.TotaleKostPrijs + . ; Calc new price + . Set KPrijs=$$cmpCalcPrice(KadObj,CalcObj,blnSimulate&&('$G(KadIDCust))) + . Do:($$$DEBUGSaveGAData)||($$$SINGLESaveGAData) CalcObj.SaveGADataDtl() ; ckpSaveProdGAData() + . ; Handle result + .; Set:(PrevPRS'=KPrijs) %arLOG("DIFF",KadID)=$LB(PRNr,Qty,PrevPRS,"->",KPrijs) + .; Set:(PrevPRS=KPrijs) %arLOG("SAME",KadID)=$LB(PRNr,Qty,KPrijs) + . If blnSimulate Do + . . Write "Kad: "_KadID,! ; _" (#="_Qty_") "_PrevPRS_" --> "_KPrijs,! + . Else Do + . . Set tmpPRNr=$S(KadID=PRNr:KadObj.ProductGetObjectId(), 1:PRNr) ; 230848 + . . Set $P(^KPR(tmpPRNr,2),"\",3)=$J(KPrijs,0,2) + . . Set $P(^KPR(tmpPRNr,1),"\",3)="EUR" + . . w tmpPRNr _" " ;_(^KPR(tmpPRNr,2)),! + Quit $$$OK +cmpCalcPrice(KadObj,CalcObj,blnCalcOnly) + Quit:(blnCalcOnly) KadObj.KostPrijsCalc(CalcObj.Aantal) + ; Else: Store in CalcObj + Set Munt="" + Set BldDtl=$G(KadIDCust)>0 ; 0 ; (CalcObj.HasDetails()) + Set ForceRecalc=1 + Quit KadObj.KostPrijs(CalcObj.Aantal,Munt,BldDtl,ForceRecalc) + + + + + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + // BEREKENING VAN DE SCHADUWPRIJS in het kader van de prijsverhoging (dd. mei 2006) // + // Twee fasen: 1) simulatie met output naar device // + // 2) invullen van de nieuwe waarde in de SCHADUWPRIJS // + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + + ; w $$SimNewPrs^Prod.GADef.KaderDeur.tmpDev() +SimNewPrs(KadIDCust) + New sc + Kill %arLOG + If ($G(KadIDCust)) Do + . Kill %arFakeIDs + . Set %arFakeIDs(KadIDCust)="" ; KadID + ;Set %arFakeIDs(265418)="" ; KadID + /* * / + Set %arFakeIDs(104295)="" ; KadID + Set %arFakeIDs(104318)="" + Set %arFakeIDs(255644)="" + Set %arFakeIDs(256223)="" + Set %arFakeIDs(263864)="" + Set %arFakeIDs(264165)="" + /* */ + + Set %NoSa="S" + Set sc=$$CalcNewPrices(1,"240000") ; 240000) + Kill %NoSa + ;w $$$ArrayTT("log(""SAME"")",.%arLOG),! + ;w $$$ArrayTT("log(""DIFF"")",.%arLOG),! + w $$$ArrayTT("%arLOG"),! + Do ArrayToTabDelim^vhLib(.%arLOG,"c:\temp\KadPrijsCmp_007.txt",,"") + Quit sc + + ; Do KPRFillSH^Prod.GADef.KaderDeur.tmpDev() +KPRFillSH(KadIDCust) + New sc + Kill %arLOG + If ($G(KadIDCust)) Do + . Kill %arFakeIDs + . Set %arFakeIDs(KadIDCust)="" ; KadID + Set %NoSa="S" + Set sc=$$CalcNewPrices(0,"") + Kill %NoSa + Do ArrayToTabDelim^vhLib(.%arLOG,"c:\temp\KadPrijsCmp_008.txt",,"") + Quit sc + +TestD() + New arDiff,KadID,PRNr,Delta,PrsKPR + ;Do LoadDiff() + Merge arDiff=%arLOG("DIFF") + + Set KadID="" + For Set KadID=$O(arDiff(KadID)) Quit:(KadID="") Do + . Set PRNr=$LG(arDiff(KadID),1) + . Quit:PRNr="" + . Set PrsKPR=$P($G(^KPR(PRNr,"G")),"\",12) + . Set:(PrsKPR'=$J($LG(arDiff(KadID),3),0,2)) arDiff(0,"PrsKPR",KadID)=PrsKPR + . ;w PRNr_": " zw ^ORD("IP",PRNr) zw ^BON("IP",PRNr) zw ^TO("IP",PRNr) w ! + . w PRNr_": " w ! ; zw ^PRHIST(PRNr) w ! + . ;Set:($D(^PRHIST(PRNr))) arDiff(KadID,"HIST")=1 + . Set Delta=$LG(arDiff(KadID),5)-$LG(arDiff(KadID),3) + . Set $LI(arDiff(KadID),6)="D= "_$J(Delta,0,2) + . Set arDiff(0,"DATA",KadID)=$$tstGetKadPropts(KadID) + . If '$D(^PRHIST(PRNr)) Do + . . Merge arDiff(0,"NoHist",KadID)=arDiff(KadID) + . . Merge:($D(^KOFKLP(PRNr))) arDiff(0,"OFF","NoHist",KadID)=arDiff(KadID) + . . Kill arDiff(KadID) + . ;Merge:('$D(^PRHIST(PRNr))) arDiff(0,"NoHist",KadID)=arDiff(KadID) + . ;Merge:('$D(^PRHIST(PRNr)))&&($D(^KOFKLP(PRNr))) arDiff(0,"NoHist","OFF",KadID)=arDiff(KadID) + . ;Kill:('$D(^PRHIST(PRNr))) arDiff(KadID) + . Merge:($D(^KOFKLP(PRNr))) arDiff(0,"OFF","Hist",KadID)=arDiff(KadID) + ;Do WLIP^vhDBG(97,$$$ArrayTT("arDiff")) + Do ArrayToTextWF^vhLib("arDiff","c:\temp\KadPrijsLog_009.txt") + Quit +tstGetKadPropts(KadID) + New tmpID,tmpAr,tmpCode + &sql(SELECT ID, Vulling_Vulling, Vulling_VullingExtra, Breedte, Hoogte, TemplateUsed, ProfType, ProfAfw, Toepassing, Product, TemplateRoutine, WijzigTijdStip + INTO :tmpID, :tmpAr(1), :tmpAr(2), :tmpAr(3), :tmpAr(4), :tmpAr(5), :tmpAr(6), :tmpAr(7), :tmpAr(8), :tmpAr(9), :tmpAr(10), :tmpAr(11) FROM Prod_GADef.KaderDeur WHERE ID=:KadID) + Quit $J($LG(arDiff(KadID),6),14)_" "_$J($G(tmpAr(1)),8)_" "_$J($$$LCVT($G(tmpAr(2))),16)_" "_$J($G(tmpAr(3)),7)_" "_$J($G(tmpAr(4)),7)_" "_$J($G(tmpAr(5)),7)_" "_$J($G(tmpAr(6)),7)_" "_$J($G(tmpAr(7)),7)_" "_$G(tmpAr(8))_" "_$G(tmpAr(9))_" "_$G(tmpAr(10))_" "_$G(tmpAr(11)) + Quit "" +TestC() + New arDiff,KadID,CalcObj,arComp + Do LoadDiff() + Set KadID="" + For Set KadID=$O(arDiff(KadID)) Quit:(KadID="") Do + . Set CalcObj=##class(Prod.GADef.KadPrijs).%OpenId(KadID) + . Set:('$IsObject(CalcObj)) arComp("NoCalc",KadID)="" + . Quit:('$IsObject(CalcObj)) + . ;Set:(CalcObj.HasDetails()) arComp("NoDtl",KadID)="" + . Set arComp($S(CalcObj.HasDetails()>0:"DTL",1:"NoDtl"),KadID)="" + + Do WLIP^vhDBG(97,$$$ArrayTT("arComp(""NoCalc"")",.arComp)) + Do WLIP^vhDBG(97,$$$ArrayTT("arComp(""DTL"")",.arComp)) + Do WLIP^vhDBG(97,$$$ArrayTT("arComp(""NoDtl"")",.arComp)) + Quit + +CalcNewPrices(blnSimulate,StartPRNr) + New PRNr,KadID,KadObj,KPrijs,CalcObj,PrevPRS,Qty,lbBadIDs + New Munt,BldDtl,ForceRecalc + Set lbBadIDs="" ; $LB(97870,97871,239511) + Set PRNr=$G(StartPRNr,"") + For Set KadID=$$cnpNextFromKPR(.PRNr) Quit:(PRNr="") Do + . Quit:(KadID<1000) + . w !,KadID_" " + . q:(KadID<108222) ; q:(KadID>266440) + . ;Quit:($LF(lbBadIDs,KadID)>0) + . ; Get Objects + . Set KadObj=##class(Prod.GADef.KaderDeur).%OpenId(KadID) + . Quit:('$IsObject(KadObj)) + . Set CalcObj=##class(Prod.GADef.KadPrijs).%OpenId(KadID) + . Quit:('$IsObject(CalcObj)) + . ;w PRNr_" "_KadID,! + . Set tmpPRNr=$S(KadID=PRNr:KadObj.ProductGetObjectId(), 1:PRNr) ; 230848 + . ; Get previous values + . Set Qty=CalcObj.Aantal + . Set PrevPRS=CalcObj.TotaleKostPrijs + . Set PrevPRS=$P(^KPR(tmpPRNr,2),"\",3) ; CalcObj.TotaleKostPrijs + . ; Calc new price + . Set KPrijs=$$cnpCalcPrice(KadObj,CalcObj,blnSimulate) + . Set $LI(%arLOG(KadID),2)=PrevPRS + . Set $LI(%arLOG(KadID),3)=$LI(%arLOG(KadID),1)-$LG(%arLOG(KadID),2) + + . ; Handle result + . ;Set:(PrevPRS'=KPrijs) %arLOG("DIFF",KadID)=$LB(PRNr,Qty,PrevPRS,"->",KPrijs) + . ;Set:(PrevPRS=KPrijs) %arLOG("SAME",KadID)=$LB(PRNr,Qty,KPrijs) + . If blnSimulate Do + . . Write "Kad: "_KadID,! ; _" (#="_Qty_") "_PrevPRS_" --> "_KPrijs,! + . Else Do + . . Set tmpPRNr=$S(KadID=PRNr:KadObj.ProductGetObjectId(), 1:PRNr) ; 230848 + . . Set $P(^KPR(tmpPRNr,2),"\",3)=$J(KPrijs,0,2) + . . Set $P(^KPR(tmpPRNr,1),"\",3)="EUR" + . . w tmpPRNr _" " ;_(^KPR(tmpPRNr,2)),! + Quit $$$OK +cnpNextFromKPR(PRNr) ; PRNr als .local doorgeven +#define FromArray 0 + If $$$FromArray || ($$$aHasSubNodes(%arFakeIDs)) Do Quit KadID + . Set PRNr=$O(%arFakeIDs(PRNr)) + . Set KadID=PRNr + ; Else Loop through ^KPR + Set PRNr=$O(^KPR(PRNr)) + Quit:(PRNr="") "" + Quit:(PRNr'?4.6N) "" + Quit:($P($$GENTYP^HAD(PRNr),"\",1)'?1(1"KAD",1"PRF",1"GLA")) "" + Set KadID=$P($G(^KPR(PRNr,"G")),"\",13) + Quit KadID +cnpCalcPrice(KadObj,CalcObj,blnCalcOnly) + Quit:(blnCalcOnly) KadObj.KostPrijsCalc(CalcObj.Aantal) + ; Else: Store in CalcObj + Set Munt="" + Set BldDtl=0 ; (CalcObj.HasDetails()) + Set ForceRecalc=1 + Quit KadObj.KostPrijs(CalcObj.Aantal,Munt,BldDtl,ForceRecalc) + +LoadDiff() + Merge arDiff=^wvKadDiff + Quit + + + + + // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // + + /* + ; OPROEPEN via: Do PrijsAnalyse^Prod.GADef.KaderDeur.tmpDev( ,.ar) +PrijsAnalyse(KadID,RetArray) + Kill RetArray + Quit:($G(KadID)="") + New KadObj,KPrs + New QtyStaffel,Munt,BldDtl,ForceRecalc + Set KadObj=##class(Prod.GADef.KaderDeur).%OpenId(KadID) + Quit:('KadObj) + Set QtyStaffel=$$praGetQtyStaffel(KadID) + If QtyStaffel'>0 Do Quit + . ;Write "QtyStaffel onbekend !" + . Set RetArray="QtyStaffel onbekend !" + Else Do + . ;Write "KadID: "_KadID_" Qty:"_QtyStaffel,! + ; Else + Set Munt="" + Set BldDtl=1 + ;Set ForceRecalc=0 + Set KPrs=KadObj.KostPrijs(QtyStaffel,Munt,BldDtl,$G(ForceRecalc)) + Set KadObj="" + ; Calc prices + Set MatKost=$$praCalcMatKost(KadID) + Set lbProdKost=$$praCalcProdKost(KadID) + Set ProdKost=$LG(lbProdKost,1) + Set ProdTijd=$LG(lbProdKost,2) + ; Build return Array + Set RetArray("KPrijs")=KPrs + Set RetArray("MatKost")=MatKost + Set RetArray("ProdKost")=ProdKost + Set RetArray("ProdTijd")=ProdTijd + zw RetArray + Quit +praGetQtyStaffel(KadID) + // Dit SQL-statement geeft de objecten weer die geen KadPrijs-object hebben ==> QtyStaffel is onbekend !!! + // SELECT KD.* FROM Prod_GADef.KaderDeur AS KD,Prod_GADef.KadPrijs AS KP + // WHERE (KD.ID=*KP.ID) AND (KP.ID is null) and (KD.TemplateRoutine="" or KD.TemplateRoutine is null ) + // + New CalcObj,tmpQty + Set CalcObj=##CLASS(Prod.GADef.KadPrijs).%OpenId(KadID) + Quit:('CalcObj) 0 + Set tmpQty=CalcObj.Aantal + Set CalcObj="" + Quit tmpQty +praCalcMatKost(KadID) + New RS,sQuery,tmpStatus,Sum + Set Sum=0 + Set RS=##class(%ResultSet).%New("Prod.GADef.KadPrijs:LijstMateriaalKost") + Set tmpStatus=RS.Execute(KadID) + For Quit:('RS.Next()) Do + . Set Sum=Sum+RS.Get("MatKost") + . ;RS.Get("ID") ;RS.Get("KostCode") ;RS.Get("MatKost") + Do RS.%Close() + Quit Sum +praCalcProdKost(KadID) + New RS,sQuery,tmpStatus,SumK,SumT + Set (SumK,SumT)=0 + Set RS=##class(%ResultSet).%New("Prod.GADef.KadPrijs:LijstProductieKost") + Set tmpStatus=RS.Execute(KadID) + For Quit:('RS.Next()) Do + . Set SumK=SumK+RS.Get("TijdKost") + . Set SumT=SumT+RS.Get("Tijd") + . ;RS.Get("ID") ;RS.Get("KostPlaats") ;RS.Get("TijdKost") ;RS.Get("Tijd") + Do RS.%Close() + Quit $LB(SumK,SumT) + + */ \ No newline at end of file Index: APPS/Halux/Planning/impl/ActiviteitInfoTBX.cls.xml =================================================================== diff -u -r1012 -r1047 --- APPS/Halux/Planning/impl/ActiviteitInfoTBX.cls.xml (.../ActiviteitInfoTBX.cls.xml) (revision 1012) +++ APPS/Halux/Planning/impl/ActiviteitInfoTBX.cls.xml (.../ActiviteitInfoTBX.cls.xml) (revision 1047) @@ -1,9 +1,9 @@ - + 1 %RegisteredObject,DOM.PM.Maatwerk.Calc.Kost.IKostItemVisitor -62199,33332.493296 +62201,42200.876323 0 @@ -103,6 +103,7 @@ } Set BerekeningsSpecificatie = ..Product.GeefBerekeningsSpecificatie() + d WLIP^vhDBG(191,..Product.GeefKorttekst()_" "_..Product.GeefBerekeningsSpecificatie()) Set BerekeningsSpecificatie = ##class(DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie).%New(BerekeningsSpecificatie.GeefHoeveelheid(),BerekeningsSpecificatie.GeefKlantID(),BerekeningsSpecificatie.GeefPersonality(),"Planning") Set KostItem = BerekeningService.BerekenKostItemsBoom(HalffabItemsBoom,BerekeningsSpecificatie) @@ -205,5 +206,5 @@ ]]> - + Index: vhMAIL5.mac.rou =================================================================== diff -u -r734 -r1047 --- vhMAIL5.mac.rou (.../vhMAIL5.mac.rou) (revision 734) +++ vhMAIL5.mac.rou (.../vhMAIL5.mac.rou) (revision 1047) @@ -394,7 +394,6 @@ If $L($G(Optie("LATER"))) Set ^vhMAIL("D",MailId,"S")=Optie("LATER") Do:$L(TInterv) TINTERV(MailId,TInterv) Do BLDIND(MailId) - Set:$L($G(cwTUserId)) ^cw("Mail",MailId)=cwTUserId Quit MailId ; ; Verwijderen van een mail Index: APPS/Halux/Planning/impl/ActiviteitInfoALU.cls.xml =================================================================== diff -u -r954 -r1047 --- APPS/Halux/Planning/impl/ActiviteitInfoALU.cls.xml (.../ActiviteitInfoALU.cls.xml) (revision 954) +++ APPS/Halux/Planning/impl/ActiviteitInfoALU.cls.xml (.../ActiviteitInfoALU.cls.xml) (revision 1047) @@ -1,9 +1,9 @@ - + 1 %RegisteredObject -62174,57532.007615 +62201,54743.372346 0 @@ -33,7 +33,7 @@ &SQL(SELECT SchaduwVersion INTO :SchaduwVersie FROM Prod_GAData.Template WHERE Code = "KADBasis") If (..Product.GeefSchaduwVersie() '= SchaduwVersie) { - //Do ##class(Prod.GADef.KaderDeur).KPRCreateSchaduwViaPRNr(Product.GeefPRNr()) + //Do ##class(Prod.GADef.KaderDeur).KPRCreateSchaduwViaPRNr(..Product.GeefPRNr()) } Set KostBouwstenenIterator = ..Product.GeefKostSchaduwBouwstenenIt() @@ -87,5 +87,5 @@ ]]> - + Index: DOM/PM/impl/DataM/DataMProduct.cls.xml =================================================================== diff -u -r1012 -r1047 --- DOM/PM/impl/DataM/DataMProduct.cls.xml (.../DataMProduct.cls.xml) (revision 1012) +++ DOM/PM/impl/DataM/DataMProduct.cls.xml (.../DataMProduct.cls.xml) (revision 1047) @@ -1,10 +1,10 @@ - + BL.Kenm.Common 1 %RegisteredObject -62193,49101.267172 +62201,43168.196587 62159,61822.534455 0 @@ -23,6 +23,11 @@ 1 + +%String +1 + + %String 1 @@ -88,6 +93,17 @@ ]]> + +1 +%String + + + 1 %String @@ -218,7 +234,7 @@ DOM.PM.Maatwerk.Calc.Common.BerekeningsSpecificatie DOM.PM.Maatwerk.Calc.Common.ProductSpecificatie - + Index: BL/PR/GA/TandemBox.cls.xml =================================================================== diff -u -r771 -r1047 --- BL/PR/GA/TandemBox.cls.xml (.../TandemBox.cls.xml) (revision 771) +++ BL/PR/GA/TandemBox.cls.xml (.../TandemBox.cls.xml) (revision 1047) @@ -1,9 +1,9 @@ - + PRGACNTs,BL.EC.Common BL.Lib.BaseObj -62124,59901.919876 +62201,51003.128358 59295,64161.046 0 @@ -1636,7 +1636,7 @@ New blnOK Kill arErrs Set blnOK=$$chkKenmPR - ;d WL^vhDBG("Errors: "_$S(blnOK:"None",1:$$$ArrayTT2("arErrs",.arErrs))) + ;d WL^vhDBG("Errors: "_$S(blnOK:"None",1:$$$ArrayTT("arErrs",.arErrs))) Quit blnOK chkKenmPR() New blnOK,i,WSLn,KenmArray,PRArray,dsID,KMNaam,KMWaarde @@ -1828,5 +1828,5 @@ ]]> - + Index: BL/Flow/PrijsLijst/Doc.cls.xml =================================================================== diff -u -r734 -r1047 --- BL/Flow/PrijsLijst/Doc.cls.xml (.../Doc.cls.xml) (revision 734) +++ BL/Flow/PrijsLijst/Doc.cls.xml (.../Doc.cls.xml) (revision 1047) @@ -1,10 +1,10 @@ - + BL.Sys.FOP.Common 1 BL.Flow.Docs.Basis,BL.Flow.Basis.DocNew -61552,33174.463273 +62201,53134.19102 0 @@ -572,7 +572,7 @@ . . If $LL(tmpLB)' - + Index: BL/Flow/Proxy/pxLevering.cls.xml =================================================================== diff -u -r901 -r1047 --- BL/Flow/Proxy/pxLevering.cls.xml (.../pxLevering.cls.xml) (revision 901) +++ BL/Flow/Proxy/pxLevering.cls.xml (.../pxLevering.cls.xml) (revision 1047) @@ -1,12 +1,12 @@ - + Proxy-klasse voor een Leveringsbon BL.Sys.FOP.Common,BL.Flow.Doc.Common,%VHMacro,BL.Derde.KlantSpecifiek 1 %RegisteredObject,%XML.Adaptor -62136,60293.724134 +62201,53148.875446 60017,42885.748409 0 @@ -284,7 +284,7 @@ Set pxOrd="",LijnObj="" Do flbSortOrder(KLNr,FactSoort,BONNr,.Sort) Set Netto=0 - ;d WLIP^vhDBG(97,"Sort array:"_$$$ArrayTT2("Sort",.Sort)) + ;d WLIP^vhDBG(97,"Sort array:"_$$$ArrayTT("Sort",.Sort)) Set SortKey="" For Set SortKey=$O(Sort(SortKey)) Quit:(SortKey="") Do . Set PrevObj=$G(LijnObj) @@ -707,5 +707,5 @@ ]]> - + Index: WV PM Maatwerk.prj.xml =================================================================== diff -u -r1030 -r1047 --- WV PM Maatwerk.prj.xml (.../WV PM Maatwerk.prj.xml) (revision 1030) +++ WV PM Maatwerk.prj.xml (.../WV PM Maatwerk.prj.xml) (revision 1047) @@ -1,10 +1,11 @@ - - + + + @@ -293,5 +294,5 @@ - + Index: vhLib/Macro.inc.rou =================================================================== diff -u -r1013 -r1047 --- vhLib/Macro.inc.rou (.../Macro.inc.rou) (revision 1013) +++ vhLib/Macro.inc.rou (.../Macro.inc.rou) (revision 1047) @@ -60,21 +60,30 @@ #define Contains(%s,%ss) ($F(%s,%ss)>0) - // Arrays -#define aHasData(%v) $D(%v)#10 -#define aHasSubNodes(%v) $D(%v)>1 - //Excel format #define ExcelNum(%v) $$ExcelNum^vhLib(%v) #define ExcelDat(%v) $$EXTDATE^vhDTyp(%v,"DK") #define ExcelDateAsNum(%v) %v-21548 + // Arrays +#define aHasData(%v) $D(%v)#10 +#define aHasSubNodes(%v) $D(%v)>1 +#def1arg ArrayTT(%r) $C(13,10)_$$ArrayToText^vhLib(%r) +#define MDToText(%o,%p) $C(13,10)_$$ArrayToText^vhLib(%p,%o,%p) + // ListBuilds #define LCVT(%v) $$LCVT^vhLib(%v) #define IsList(%v) $$IsList^vhLib(%v) #define LBDeleteAt(%lb,%i) $LI(%lb,1,%i-1)_$LI(%lb,%i+1,-1) #define DoLBDeleteAt(%lb,%i) Set $LI(%lb,%i,%i)="" #define DoLBDeleteAtIf(%c,%lb,%i) Set:(%c) $LI(%lb,%i,%i)="" + /* + // Gebruik van LBDeleteAt: + // =-=-=-=-=-=-=-=-=-=-=-= + $$$DoLBDeleteAt(MyLB,5) + $$$DoLBDeleteAtIf(Cond,MyLB,5) + If (cond) $$$DoLBDeleteAt(MyLB,5) + */ #define ClassParameter(%v) ##class(%Library.CompiledParameter).%OpenId(%v).Default Index: UI/PR/GA/Antislipmat.cls.xml =================================================================== diff -u -r734 -r1047 --- UI/PR/GA/Antislipmat.cls.xml (.../Antislipmat.cls.xml) (revision 734) +++ UI/PR/GA/Antislipmat.cls.xml (.../Antislipmat.cls.xml) (revision 1047) @@ -1,11 +1,11 @@ - + serial KeyCodesCNTs,PRGACNTs,UILibCtrlCNTs,%occInclude Default %Library.TMFormClass -62073,44143.178469 +62201,51355.95378 60520,41750 0 @@ -1421,7 +1421,7 @@ n Oms d ..Product.LangTekst("N",.Oms) - d MApplication.MessageBox("KortTekst: "_..Product.KortTekst()_$$$CRLF_$$$ArrayTT2(" ",.Oms)) + d MApplication.MessageBox("KortTekst: "_..Product.KortTekst()_$$$CRLF_$$$ArrayTT(" ",.Oms)) quit Set CStream=##class(%GlobalCharacterStream).%New() @@ -2291,5 +2291,5 @@ - + Index: Prod/GAData/Product.cls.xml =================================================================== diff -u -r995 -r1047 --- Prod/GAData/Product.cls.xml (.../Product.cls.xml) (revision 995) +++ Prod/GAData/Product.cls.xml (.../Product.cls.xml) (revision 1047) @@ -1,5 +1,5 @@ - + 0 0 @@ -9,75 +9,35 @@ 0 %Library.Persistent,%XML.Adaptor 0 -62188,60497.001038 +62201,51265.772246 60124,43245.68975 0 %Library.String -0 -0 - -0 -0 -0 -0 -0 Derde.Klant.Klant -0 -0 - -0 -0 -0 -0 -0 Prod.GAData.Item -0 -0 children - Product -0 -0 1 -0 -0 -0 Prod.GAData.KostPrijs -0 -0 children - Product -0 -0 1 -0 -0 -0 Prod.GAMeta.Struct -0 -0 - -0 -0 -0 -0 -0 @@ -92,52 +52,20 @@ %Library.String -0 -0 - -0 -0 -0 -0 -0 Prod.Product -0 -0 - -0 -0 -0 -0 -0 Prod.GAData.Template -0 -0 - -0 -0 -0 -0 -0 %Library.String -0 -0 - -0 -0 -0 -0 -0 @@ -150,13 +78,6 @@ propt. "Template" niet bewaard. Daarvoor is deze "TemplateTmp", welke ingevuld wordt door het oproepen van de method ..TemplateTmpInit() . Prod.GAData.Template -0 -0 - -0 -0 -0 -0 1 @@ -165,25 +86,13 @@ Voor de structuur: zie method ..BuildLookUp(lbNodes) %Library.String -0 -0 - 1 -0 -0 -0 1 %Library.String -0 -0 - 1 -0 -0 -0 1 @@ -193,24 +102,13 @@ hoofdgroep-niveau van de data-items (enkel van params die moeten gecumuleerd worden) %Library.String -0 -0 - 1 -0 -0 -0 1 -0 -0 -code IsNew:%Library.Boolean=1 -0 %Library.Status -0 Mogelijke waarden voor Action zijn: "FILL", "CLEAR". De parameter Templ is optioneel; als deze niet meegegeven is, wordt de template via TemplateCode geopend. -0 -0 -code -0 1 -0 Maakt een nieuw product, vertrekkende van een bestaand product (gegeven door ProductID), en kopieert alle properties, DataItems (en KostPrijzen). -0 1 -code ProductID:%Library.String -0 Prod.GAData.Product -0 Maakt een nieuw product, vertrekkende van het template-product (gegeven door TemplateID), en kopieert alle DataItems. -0 1 -code TemplateID:%Library.String,blnSchaduw:%Boolean=0 -0 Prod.GAData.Product -0 Maakt een array met de hierarchische structuur van Struct op basis van Code/ID en gesorteerd volgens Nr: Struct - Groep - SubGroep - Item -0 -0 -code Ref:%Library.String="arStruct" -0 0 -0 ..LookUp("ISort",SubGroepCode,"VNr",Item.VolgNr)="" ]]> -0 -0 -code lbNodes:%Library.List -0 -0 -0 -0 -code Ref:%Library.String="arTree",blnShowPrijs:%Library.Boolean=0 -0 -0 -0 -0 -code Ref:%Library.String="arTree" -0 -0 -0 -0 -code - -0 0 -0 -0 -0 -code Aantal:%Library.Integer -0 %Library.Float -0 -0 1 -code -0 -0 -0 -0 -code ClearMode:%Library.String -0 1 -0 -0 -0 -code -0 %Library.Integer -0 @@ -556,13 +396,8 @@ Kopieert alle DataItems van het gegeven product (Prod) naar het huidige product. Ook de parent/child relatie wordt gelegd tussen elk gekopieerde DataItem en het huidige product. -0 -0 -code Prod:Prod.GAData.Product,ItemsCopyMode:%Library.String="NotProd" -0 1 -0 Copy maken van GAData.Product in een nieuw object. Verschillende CopyModes: "FullCopy" (=Default), "Empty" -0 -0 -code CopyMode:%Library.String="FullCopy" -0 -0 Gebruik voor opbouw van de Items in een nieuwe Template (product). -0 -0 -code - -0 -0 Returns the Child-object with the given ChildID (without ParentID), or "" if not found. Parameter Key is passed by Reference and gets the value of the position in the collection of Childs. -0 -0 -code -0 Prod.GAData.Item -0 Ophalen van het dossiernr indien het nog niet bestaat dan invullen -0 -0 -code GenPRNr:%Library.String -0 -0 Parameter Key is passed by Reference and gets the value of the position in the collection of Childs. ]]> -0 -0 -code -0 %RegisteredObject -0 -0 -0 -code Type:%Library.String="N" -0 %Library.Float -0 -0 -0 -code GenPRNr:%Library.Integer,QtyStaffel:%Library.String=1,Opties:%Integer="C;P;H",NoSa:%String="" -0 -0 -0 -0 -code - -0 %Library.String -0 Returns the Child-object with the given ChildID (without ParentID), or "" if not found. Parameter Key is passed by Reference and gets the value of the position in the collection of Childs. -0 -0 -code -0 Prod.GAData.KostPrijs -0 Formateer de langtekst van een product in de geselecteerde taal -0 -0 -code -0 -0 Gebruik voor opbouw van de Items in een nieuwe Template (product). -0 -0 -code MetaItem:Prod.GAMeta.Item,SGCode:%Library.String,Code:%Library.String,VolgNr:%Library.Integer -0 1 Prod.GAData.Item -0 -0 1 -code Template:Prod.GAData.Template -0 -0 Opent het GAData.Product en berekent alle gegevens die niet bewaard worden. -0 1 -code ProdID:%Library.String,blnSchaduw:%Boolean=0 -0 Prod.GAData.Product -0 -0 -0 -code - -0 %String -0 -0 -0 -code - -0 Prod.GAData.Template -0 -0 -0 -code - -0 Prod.GAData.Template -0 -0 -0 -code Msg:%Library.String -0 -0 bvb. voor het updaten van een ProgLabel in de LookUp. -0 -0 -code -0 0 -0 bvb. voor het updaten van een ProgLabel in de LookUp. -0 -0 -code -0 0 -0 Geeft de waarde van een proglabel -0 -0 -code ProgLabel:%Library.String -0 %Library.String -0 Valideert de producten van alle DataItems en geeft aan of alle producten OK zijn (geeft 0 of 1 terug). -0 -0 -code -0 1 %Library.Integer -0
XSLURL : Toevoegen van de reference naar de XSL. Indien Leeg (""), tags worden weggelaten.]]> -0 -0 -code DevObj:%Library.String,Taal:%Library.String,Opties:%Library.String,XSLURL:%Library.String -0 -0
- +
Index: FaxMail2.mac.rou =================================================================== diff -u -r948 -r1047 --- FaxMail2.mac.rou (.../FaxMail2.mac.rou) (revision 948) +++ FaxMail2.mac.rou (.../FaxMail2.mac.rou) (revision 1047) @@ -34,6 +34,7 @@ New %J,I,R,LEVNr,Data,MTData,OPData,Taal,Tav,Document,DocNum,zb,ToDev Set Data("Via")="TOE",(Document,Data("Document"))="T" Merge DocNum=TOENr,Data("DocNum")=TOENr,OPData=Data + If 'TOENr Merge ^cw("FaxMail2",$H,"DocNum")=DocNum,^cw("FaxMail2",$H,"Data")=Data,^cw("FaxMail2",$H,"OPData")=OPData Set R=^KTO1(TOENr),LEVNr=$P(R,D) Set TextId=$G(TextId) Set:TextId="" TextId=$$TSELECT^DCFAX() Do:$L(TextId) Index: Prod/GAData/Template.cls.xml =================================================================== diff -u -r734 -r1047 --- Prod/GAData/Template.cls.xml (.../Template.cls.xml) (revision 734) +++ Prod/GAData/Template.cls.xml (.../Template.cls.xml) (revision 1047) @@ -1,10 +1,10 @@ - + persistent PRGACNTs %Library.Persistent,%XML.Adaptor -61767,76195.285107 +62201,50392.758243 58959,35070 0 @@ -367,7 +367,7 @@ . Set ..SchaduwVersion=..Version Set SyncResult=..SyncProd(PrevProdID,PrevProdID,.SyncStat,$LB(1,0,0)) ; Analyse only !!! - d WLIP^vhDBG(97,"SyncResult : "_SyncResult_$$$CRLF_$$$ArrayTT2("SyncStat",.SyncStat)) + d WLIP^vhDBG(97,"SyncResult : "_SyncResult_$$$CRLF_$$$ArrayTT("SyncStat",.SyncStat)) If SyncResult Do . Kill SyncStat("SAME") . If $D(SyncStat) Do ; NIET alle items synchroon @@ -599,5 +599,5 @@ - + Index: BL/Flow/Proxy/pxTransportLijst.cls.xml =================================================================== diff -u -r734 -r1047 --- BL/Flow/Proxy/pxTransportLijst.cls.xml (.../pxTransportLijst.cls.xml) (revision 734) +++ BL/Flow/Proxy/pxTransportLijst.cls.xml (.../pxTransportLijst.cls.xml) (revision 1047) @@ -1,12 +1,12 @@ - + Proxy-klasse voor een TransportLijst BL.Sys.FOP.Common,%VHMacro 1 %RegisteredObject,%XML.Adaptor -61639,32016.461216 +62201,53161.860504 60017,42885.748409 0 @@ -502,7 +502,7 @@ Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Do ftpSortOrder(TransportNr,%J) ; via .local of via ^HULP global !!! Grote lijst! - ;d WLIP^vhDBG(97,"Sort array:"_$$$ArrayTT2("Sort",.Sort)) + ;d WLIP^vhDBG(97,"Sort array:"_$$$ArrayTT("Sort",.Sort)) Set SortKey="" For Set SortKey=$O(^HULP(%J,SortKey)) Quit:SortKey="" Do . Set GroepNr=^HULP(%J,SortKey) @@ -650,5 +650,5 @@ ]]> - + Index: BL/PR/GA/impl/TandemBoxRecalcBS.cls.xml =================================================================== diff -u -r994 -r1047 --- BL/PR/GA/impl/TandemBoxRecalcBS.cls.xml (.../TandemBoxRecalcBS.cls.xml) (revision 994) +++ BL/PR/GA/impl/TandemBoxRecalcBS.cls.xml (.../TandemBoxRecalcBS.cls.xml) (revision 1047) @@ -1,9 +1,9 @@ - + 1 BL.PR.GA.TandemBoxRecalc -62182,48223.346602 +62201,51201.505185 62125,38650.023573 0 @@ -98,7 +98,7 @@ // Display errors if any occured If $D(arErrors) { - Write !,$$$ArrayTT2("arErrors",.arErrors),! + Write !,$$$ArrayTT("arErrors",.arErrors),! } ]]> @@ -291,5 +291,5 @@ ]]> - + Index: zTryout/JCL/Datum.cls.xml =================================================================== diff -u -r946 -r1047 --- zTryout/JCL/Datum.cls.xml (.../Datum.cls.xml) (revision 946) +++ zTryout/JCL/Datum.cls.xml (.../Datum.cls.xml) (revision 1047) @@ -1,10 +1,10 @@ - + persistent 1 %Persistent -62168,43464.446839 +62201,39003.598298 0 @@ -27,6 +27,7 @@ 1 - + Index: BL/EC/EDI.cls.xml =================================================================== diff -u -r771 -r1047 --- BL/EC/EDI.cls.xml (.../EDI.cls.xml) (revision 771) +++ BL/EC/EDI.cls.xml (.../EDI.cls.xml) (revision 1047) @@ -1,10 +1,10 @@ - + BL.EC.Common 1 %RegisteredObject -62124,59790.230757 +62201,52928.018928 60207,60266.060949 0 @@ -190,7 +190,7 @@ . . . Set tmpAr(Dim3)=$LG(lbDimV3,k) . . . Do comListAddExtraKM(Dim3,$LG(lbDimV3,k)) . . . Merge arList($Increment(arList))=tmpAr - ;d WL^vhDBG($$$ArrayTT2("arList",.arList)) + ;d WL^vhDBG($$$ArrayTT("arList",.arList)) Merge arMatrix("IN","LST")=arList Quit comListAddExtraKM(pDim,KMVal) @@ -367,5 +367,5 @@ - + Index: Prod/GAData/Template/tmpDev.mac.rou =================================================================== diff -u --- Prod/GAData/Template/tmpDev.mac.rou (revision 0) +++ Prod/GAData/Template/tmpDev.mac.rou (revision 1047) @@ -0,0 +1,396 @@ +#include PRGACNTs +#include %occInclude + + + /* +s obj=##class(Prod.GAData.Template).%OpenId(29) +s sc=obj.BuildMetaDef("IL=CB","F") w $S(sc>0:sc, 1:$$ParseStatus^vhLib(sc)) + */ + +BuildMetaDef() ; (DItemVia,MetaFormat,lbMetaClass,lbFlags) +#define NodeIC "IC" +#define NodeIL "IL" +#define NodePLItem "PLItem" +#define mdCreated 1 +#define mdUpdated 2 +#define mdOverwrited 3 + + New Via,MDef,MDefClass,MGroepClass,lbProgLabels,Kenm,sc + New blnExistMDef,blnUpdatedMDef + Set Via=$P(DItemVia,"=",1) + Set DItem=$$bmdGetDItem(Via,$P(DItemVia,"=",2)) + ;d WL^vhDBG("DItem via "_DItemVia_" --> DItem: "_DItem.Code _" - "_DItem) + Quit:('$IsObject(DItem)) $$$ERROR($$$GeneralError,"DItem kan niet gevonden") + If Via="PL" Do + . Set Kenm=$P(DItemVia,"=",2) + Else Do + . Set lbProgLabels=$$bmdGetProgLabels + . Set Kenm=$LG(lbProgLabels,1) ; First ProgLabel + . ;d WL^vhDBG("DItem ProgLabels="_$$$LCVT(lbProgLabels)) + Quit:(Kenm="") $$$ERROR($$$GeneralError,"Geen Kenm via ProgLabel via DItem") + Set MDefClass=$LG(lbMetaClass,1) + Set MGroepClass=$LG(lbMetaClass,2) + Quit:(MDefClass="")||(MGroepClass="") $$$ERROR($$$GeneralError,"Klasse naam voor MetaGroep of MetaDef niet opgegeven") + Set MDef=$$bmdGetMDefObj(Kenm) + Quit:('$IsObject(MDef)) $$$ERROR($$$GeneralError,"MetaDef kan niet ge�nstantieerd worden voor Kenm "_GroepID_"||"_Kenm) + Do MDef.GroepSetObjectId(GroepID) + Set MDef.Kenmerk=Kenm + Set MDef.VolgNr=$$bmdVolgNrAutoInc(GroepID,Kenm) + Set MDef.Format=$S($L($G(MetaFormat)):MetaFormat,1:"T") + Set MDef.Multiple=1 + Set MDef.MultipleDisplay=1 + Set MDef.Omschrijving=DItem.Get("Oms") + Set MDef.SubGroep=DItem.SubGroepCode + Set MDef.ToelatenEC=0 + Set MDef.Verplicht=0 + Set MDef.SortType="M" + Set sc=MDef.%Save() + If $$$ISERR(sc) Do Quit sc + . Set MDef="" + . ;d WL^vhDBG("Fout "_$$ParseStatus^vhLib(sc)) + ; Else ; If $$$ISOK(sc) Do + Set blnUpdatedMDef=1 + ;d WL^vhDBG("Voor groep "_$S(MDef.Groep:MDef.Groep.Code, 1:"?")_" : Kenmerk "_MDef.Kenmerk_" aangemaakt/ge-update") + ;d WL^vhDBG("DumpObject:"_$$$CRLF_$$ObjToText^vhLib(MDef)) + Quit $S($G(blnExistMDef):$S($G(blnUpdatedMDef):$$$mdUpdated, 1:$$$mdOverwrited),1:$$$mdCreated) + Quit $$$OK +bmdGetDItem(Via,Key) + Do:(Via="IL")&&('$$$aHasData(GAProd.LookUp($$$NodeIL))) GAProd.BuildLookUp($LB("ICode")) + Do:(Via="PL")&&('$$$aHasData(GAProd.LookUp($$$NodePLItem))) GAProd.BuildLookUp($LB("ICode")) + ;d WL^vhDBG("Via="_Via_" Key="_Key_$$$CRLF_$$$ArrayTT("Lu",GAProd,"LookUp")) + Quit:(Via="IC") GAProd.DataItemsGetChildAt(Key) ; DItem.Code + Quit:(Via="IL") $G(GAProd.LookUp($$$NodeIL,Key)) ; ItemLabel + Quit:(Via="PL") $G(GAProd.LookUp($$$NodePLItem,Key,"IOref")) ; ProgLabel + Quit "" +bmdGetProgLabels() + New PL,tmpLB + Set (PL,tmpLB)="" + For Set PL=$O(GAProd.LookUp($$$NodeIC,DItem.Code,"PL",PL)) Quit:(PL="") Set tmpLB=tmpLB_$LB(PL) + Quit tmpLB +bmdVolgNrAutoInc(GroepID,Kenm) + New SortedKenm,MaxVolgNr + &SQL(SELECT Kenmerk,VolgNr INTO :SortedKenm, :MaxVolgNr FROM Prod_Kenmerk.MetaDefinitie WHERE (Groep = :GroepID) ORDER BY VolgNr DESC) + Quit:($G(MaxVolgNr)<1) 1 + Quit $S($G(SortedKenm)=$G(Kenm):MaxVolgNr ,1:MaxVolgNr+1) +bmdGetMDefObj(Kenm) + New GrpObj,SaveGrp + Set SaveGrp=$$$OK + If '$zobjclassmethod(MGroepClass,"%ExistsId",GroepID) Do + . ;Set GrpObj=$zobjnew(MGroepClass) + . Set GrpObj=$zobjclassmethod(MGroepClass,"%New") + . ;Set GrpObj=##class(Prod.Kenmerk.MetaGroep).%New() + . Set GrpObj.Code=GroepID + . Set GrpObj.Omschrijving=$S($L(..MetaStruct.Omschrijving):..MetaStruct.Omschrijving ,1:"Oms. "_Groep) + . Set GrpObj.VertalingsGroep="" + . ;d WL^vhDBG("GrpObj :"_GrpObj_" voor GroepID:"_$G(GroepID,"?")) + . ;d WL^vhDBG("DumpObject:"_$$$CRLF_$$ObjToText^vhLib(GrpObj)) + . Set SaveGrp=GrpObj.%Save() + . ;d WL^vhDBG("SaveGrp :"_$$ParseStatus^vhLib(SaveGrp)) + . Set GrpObj="" + Quit:($$$ISERR(SaveGrp)) "" + ;d WL^vhDBG("Groep OK") + Set blnExistMDef=($zobjclassmethod(MDefClass,"%ExistsId",GroepID_"||"_Kenm)) + ;d WL^vhDBG("KenmExists "_Kenm_" ? "_(blnExistMDef)) + Quit:('blnExistMDef) $zobjclassmethod(MDefClass,"%New") ; $zobjnew(MDefClass) + Quit $zobjclassmethod(MDefClass,"%OpenId",GroepID_"||"_Kenm) + + /* +TPConsistencyCheck() ; Parameters: CheckArray ; CheckArray als .local doorgeven) + New ChkOK + Set ChkOK=..Product.ConsistencyCheck(.CheckArray) + n msg + If ChkOK s msg="Alle Checks zijn OK. ("_$ZT($P($H,",",2),1)_")" + Else Set msg="Inconsistente gegevens:"_$$$CRLF_$$ArrayToText^vhLib("CheckArray") + d ..Product.TTrace(msg) + Quit ChkOK + */ + +TPConsistencyCheckVB() ; Parameters: (geen) + New CheckArray,msg,TPProd + Set TPProd=$S(..SchaduwActief:..SchaduwProduct, 1:..Product) + Set msg=$$tpcVBCheckDItemCodes(TPProd) + Quit:($L(msg)) msg + ; Else + If TPProd.ConsistencyCheck(.CheckArray) Set msg="" + Else Do + . New CheckArrayOut + . Do ##class(Prod.GAData.Product).CheckArrayTranslate(.CheckArray,.CheckArrayOut,1) + . Set msg="Inconsistente gegevens in de Template: "_$$$CRLF_$G(CheckArrayOut) + Quit msg +tpcVBCheckDItemCodes(TPProd) + // DItem codes moeten uniek zijn over de hele template + New tmpAr,Key,msg + Set msg="" + Set Key="" + For Set DItem=TPProd.DataItems.GetNext(.Key) Quit:(Key="") Do + . Set DItemCode=DItem.Code + . If '$D(tmpAr(DItemCode)) Do + .. Set tmpAr(DItemCode)=DItem + . Else Do + .. Set msg=msg_$$tpcBuildText(tmpAr(DItemCode),DItem)_$$$CRLF + Quit msg +tpcBuildText(DIFirst,DIDouble) + New msgFirst,msgDbl + Set msgFirst="SG:"_DIFirst.SubGroepCode_" - VNr:"_DIFirst.VolgNr_" - Meta:"_DIFirst.MetaItemGetObjectId()_" - Lbl:"_DIFirst.Label + Set msgDbl="SG:"_DIDouble.SubGroepCode_" - VNr:"_DIDouble.VolgNr_" - Meta:"_DIDouble.MetaItemGetObjectId()_" - Lbl:"_DIDouble.Label + Quit "Conflict Code: '"_DIDouble.Code_"' tussen DItems ("_msgFirst_") en ("_msgDbl_")." + + + +MakeVCompatible() ; Parameters: ProdID + New Prod,Templ,CVResult + Set Templ=##class(Prod.GAData.Template).GetTemplFromProdID($G(ProdID),.Prod) + Quit:('Templ) "No Template object" + Quit:(Templ.SchaduwActief) "Schaduw is Actief. MakeVCompatible() is niet mogelijk." + Set CVResult=Templ.CheckVersion(.Prod,$LB(1,1,0)) + If CVResult=1 Do Quit "Version OK" + . Set Prod="" + Else Do + . Do mvcSyncProd + Quit "1" +mvcSyncProd + ; Het Prod-object wordt altijd gesloten (Prod="") + New SyncStat,PrevPVersion,sc,SyncResult + Set PrevPVersion=Prod.TemplateVersion + d WL^vhDBG("Version: Prod:"_Prod.TemplateVersion_" templ:"_Templ.Product.TemplateVersion) + Set Prod.TemplateVersion=Templ.Product.TemplateVersion + Set sc=Prod.%Save() + Set Prod="" + Set SyncResult=Templ.SyncProd(ProdID,ProdID,.SyncStat,$LB(0,1,0)) + If (SyncResult=0) Do + . ; TO DO: + . ; Reset TemplateVersion + Quit + + +SyncProd() ; Parameters: ProdID,NewProdID,SyncStat,lbFlags +#define StorageGAProd ^Prod.GAData.ProductD +#define StorageDItems(%v) $$$StorageGAProd(%v,"I") +#define ndNoLabel "##NoLbl" + s:('$D(%ClientIP)) %ClientIP="192.168.1.97" + Quit:($G(ProdID)="") 1 + New TemplID + Set TemplID=..ProductGetObjectId() ; $S(..SchaduwActief:..SchaduwProductGetObjectId() , 1:..ProductGetObjectId()) + Quit:(TemplID="")||(TemplID=ProdID) 1 + New arProd,arTempl,arNew,arComp,arSync,DestID + New blnRemoveLostDItems,blnDoNotSave,blnForceSyncAll + New DItemsTP,DItemsPR,DItemsNew,ProdPR + Set NewProdID=$G(NewProdID,"New"_ProdID) + ; Flags + Set blnDoNotSave=$LG(lbFlags,1,1) ; Alleen analyse van het te synchroniseren product + Set blnRemoveLostDItems=$LG(lbFlags,2,0) ; De DItems die niet meer voorkomen in Template, niet mee kopi�ren + Set blnForceSyncAll=$LG(lbFlags,3,0) ; Forceren om alle DItems te synchroniseren + Kill SyncStat + ; Build LookUps + Do sypLabelsFromObj(TemplID,.arTempl) + Do sypLabelsFromObj(ProdID,.arProd) + ; Sync-tabel opstellen + Do sypBuildSyncTabel + /* + zw arComp + w ! + zw arSync + w ! + w $$ArrayToText^vhLib("SyncStat") + + If RetVal Do + . k SyncStat("SAME") + . If $D(SyncStat) Do + .. w " niet alle items synchroon:"_$$ArrayToText^vhLib("SyncStat"),! + . Else Do + .. w " Alle items lopen synchroon met de Template." + Else Do + . w " SyncProd is mislukt.",! + */ + + Quit:(blnDoNotSave) 1 + + ; Storage/Globals to Locals + Merge DItemsTP=$$$StorageDItems(TemplID) + Merge DItemsPR=$$$StorageDItems(ProdID) + Set ProdPR=$$$StorageGAProd(ProdID) + + ; Syncronize via Item Label + Do sypSyncDItems + Do sypResetKostItems + + ; Create/Save (new) synchronised Product + Do sypCleanUpData + Set $$$StorageGAProd(NewProdID)=ProdPR + Merge $$$StorageDItems(NewProdID)=DItemsNew + + /*** DEBUG-Version *** / + /*** ============= *** / + ;New OutF,scF,WrAttrib,FilePath + ;Set FilePath="C:\Temp\GAProd.Data.Debug.txt" + ;Set WrAttrib=$G(WrAttrib,"WSN") + ;Set OutF=##class(%Library.File).%New(FilePath) + ;Set scF=OutF.Open(WrAttrib) ; "WSN" + ; ;q:('scF) + ;d ArrayToTextW^vhLib($Na($$$StorageDItems(ProdID)),OutF) + ;d WL^vhDBG("DItems before ALL: "_$$ArrayToText^vhLib($Na($$$StorageDItems(ProdID)))) + ; Syncronize via Item Label + Do sypSyncDItems + ;d ArrayToTextW^vhLib("DItemsNew",OutF) + ;d WL^vhDBG($$$CRLF_$$$CRLF_$$$CRLF_"DItemsNew: "_$$ArrayToText^vhLib("DItemsNew")) + Do sypResetKostItems + ;d ArrayToTextW^vhLib("DItemsNew",OutF) + ;d WL^vhDBG($$$CRLF_$$$CRLF_$$$CRLF_"DItemsNew: after ResetKost: "_$$ArrayToText^vhLib("DItemsNew")) + ; Create/Save (new) synchronised Product + Do sypCleanUpData + ;d ArrayToTextW^vhLib($Na($$$StorageDItems(ProdID)),OutF) + ;d WL^vhDBG($$$CRLF_$$$CRLF_$$$CRLF_"DItems after CleanUpData: "_$$ArrayToText^vhLib($Na($$$StorageDItems(ProdID)))) + Set $$$StorageGAProd(NewProdID)=ProdPR + Merge $$$StorageDItems(NewProdID)=DItemsNew + ;d ArrayToTextW^vhLib($Na($$$StorageDItems(ProdID)),OutF) + ;d WL^vhDBG($$$CRLF_$$$CRLF_$$$CRLF_"DItems after Merge New: "_$$ArrayToText^vhLib($Na($$$StorageDItems(ProdID)))) + ;Set OutF="" + /*** ============= ***/ + + Do sypSyncItemsVolgNr(TemplID,NewProdID) + d WL^vhDBG("SyncProd Update ("_..MetaStruct.Code_"/"_TemplID_"): ProdID="_ProdID) + + New objPR + Set objPR=##class(Prod.GAData.Product).%OpenId(NewProdID) + ;Do sypConsistencyCheck(NewProdID) + Quit:('$$sypConsistencyCheckObj(objPR)) 1 + Do sypSetDataDefaults(objPR) + Set objPR="" + Quit 1 +sypSyncItemsVolgNr(TemplID,ProdID) +#define liSGCode 3 +#define liVolgNr 4 +#define liCompare 4 + New ID,tmpLB,liCompare + Set ID="" + Set liCompare=$$$Max($$$liSGCode,$$$liVolgNr) + ; d WL^vhDBG("SyncItemsVolgNr $LI: 1 - "_liCompare) + For Set ID=$O($$$StorageGAProd(TemplID,"I",ID)) Quit:(ID="") Do + . If '$$$aHasData($$$StorageGAProd(ProdID,"I",ID)) Do Quit ; niet consistente data + . . d WL^vhDBG("!!! No data on "_$Na($$$StorageGAProd(ProdID,"I",ID))_" !!!") + . ; Else + . Set tmpLB=$$$StorageGAProd(TemplID,"I",ID) + . ;d:($LI($$$StorageGAProd(ProdID,"I",ID),1,liCompare)=$LI(tmpLB,1,liCompare)) WL^vhDBG("Data OK") + . Quit:($LI($$$StorageGAProd(ProdID,"I",ID),1,liCompare)=$LI(tmpLB,1,liCompare)) ; data OK + . ;d:($LI($$$StorageGAProd(ProdID,"I",ID),$$$liSGCode)=$LG(tmpLB,$$$liSGCode)) WL^vhDBG("Update VolgNr: "_$LI($$$StorageGAProd(ProdID,"I",ID),$$$liVolgNr)_" --> "_$LG(tmpLB,$$$liVolgNr)) + . Set:($LI($$$StorageGAProd(ProdID,"I",ID),$$$liSGCode)=$LG(tmpLB,$$$liSGCode)) $LI($$$StorageGAProd(ProdID,"I",ID),$$$liVolgNr)=$LG(tmpLB,$$$liVolgNr) + Quit +sypLabelsFromObj(ObjID,arObj) + New ID,Lbl + Kill arObj + Set SQLCODE="" + &sql(DECLARE crsGA1 CURSOR FOR SELECT Code,Label INTO :ID, :Lbl FROM Prod_GAData.Item WHERE (Product=:ObjID)) + &sql(OPEN crsGA1) + For &sql(FETCH crsGA1) Quit:(SQLCODE) Set:($L(Lbl)) arObj(Lbl,"ID")=ID Set:('$L(Lbl)) arObj($$$ndNoLabel,"ID",ID)="" ;d WL^vhDBG(ObjID_". "_ID_" "_Lbl) ; W ID_" "_Lbl,! + &sql(CLOSE crsGA1) + Quit +sypBuildSyncTabel + New Key,TPID,PRID,tmpAr,Compare + Merge tmpAr=arProd ; tmpAr systematisch opkuisen totdat enkel DItems overblijven die niet meer in Templ-Prod voorkomen. Dit geeft een lijst van "LostID" + Set Key="" + For Set Key=$O(arTempl(Key)) Quit:(Key="") Do + . Quit:(Key=$$$ndNoLabel) + . Set TPID=arTempl(Key,"ID") + . Set PRID=$G(arProd(Key,"ID")) + . Set arComp("ID",TPID)=PRID + . Set Compare=$S(TPID=PRID:"SAME", PRID="":"NEW", 1:"DIFF") ; , TPID="":"LOST" ; TPID kan niet leeg zijn, want For Loop arTempl() + . Set:(Compare'="SAME")||(blnForceSyncAll) arSync("ID",TPID)=PRID + . Set SyncStat(Compare)=$G(SyncStat(Compare))_$LB(TPID) + . Kill:($L(PRID))&&($D($$$StorageGAProd(TemplID,"I",PRID))) tmpAr(Key) + + Set Compare="LOST" + Set Key="" + For Set Key=$O(tmpAr(Key)) Quit:(Key="") Do ; loopt door de overgebleven DItems; ID's in een lijst "LostID" bijhouden + . If Key=$$$ndNoLabel Do Quit + .. ;Merge arSync($$$ndNoLabel)=tmpAr($$$ndNoLabel,"ID") + . Set PRID=$G(arProd(Key,"ID")) + . Set arComp("LostID",PRID)="" + . ;Set arSync("LostID",PRID)="" + . Set SyncStat(Compare)=$G(SyncStat(Compare))_$LB(PRID) + Merge arSync("LostID")=arComp("LostID") + Quit +sypSyncDItems + #define liFixedKeys 6 + New liFixedKeys + Set liFixedKeys=$$$liFixedKeys ; Hard-coded positie in de $LB() - altern.: get storage-position from ^oddDef() + Set DestID="" + For Set DestID=$O(arSync("ID",DestID)) Quit:(DestID="") Do + . If $L($G(arSync("ID",DestID))) Do + .. Merge DItemsNew(DestID)=DItemsPR(arSync("ID",DestID)) ; Values overnemen v/h oorspronkelijke product + .. Set DItemsNew(DestID)=DItemsTP(DestID) ; DataItem-properties overschrijven met de waarden v/h Template-DItem + .. Set $LI(DItemsNew(DestID),liFixedKeys)=$LG(DItemsPR(arSync("ID",DestID)),liFixedKeys) ; list-item FixedKeys overnemen v/h oorspronkelijke product + . Else Do + .. ;w "DItem met ID """_DestID_""" werd toegevoegd (gekopieerd van Template-DItem)",! + .. Merge DItemsNew(DestID)=DItemsTP(DestID) ; Values overnemen v/h Template-DItem + .. Kill DItemsNew(DestID,"AU") ; "Autos" alleen in template + Do:('blnRemoveLostDItems) sypSyncStorageLostDItems + Quit +sypSyncStorageLostDItems + ; De DItems komen niet meer voor in Template, maar kunnen toch gekopieerd worden. + New ID + Set ID="" + For Set ID=$O(arSync("LostID",ID)) Quit:(ID="") Do + . Merge:('$D(DItemsNew(ID))) DItemsNew(ID)=DItemsPR(ID) ; Values overnemen v/h oorspronkelijke product, alleen als deze node nog niet bezet is. + Quit + +sypResetKostItems + ; Overschrijven van de Kost-Items: + ; - via LostID's zullen de Kost-items eerst verwijderd worden (in sypCleanUpData() ) + ; - dan zullen de nieuwe Kost-items toegevoegd worden via "Merge $$$StorageDItems(NewProdID)=DItemsNew" + New ID + Set ID="" + For Set ID=$O(DItemsPR(ID)) Quit:(ID="") Do:(ID?1"KST".E) + . Set arSync("LostID",ID)="" + For Set ID=$O(DItemsTP(ID)) Quit:(ID="") Do:(ID?1"KST".E) + . Merge DItemsNew(ID)=DItemsTP(ID) ; Values overnemen v/h Template-DItem + . Kill DItemsNew(ID,"AU") ; "Autos" alleen in template + Quit + +sypCleanUpData + ;k $$$StorageDItems(NewProdID) + New ID + Set ID="" + For Set ID=$O(arSync("ID",ID)) Quit:(ID="") Do + . Kill $$$StorageGAProd(NewProdID,"I",ID) + Set ID="" + For Set ID=$O(arSync("LostID",ID)) Quit:(ID="") Do + . Kill $$$StorageGAProd(NewProdID,"I",ID) + Quit +sypConsistencyCheck(ProdID) + New objPR,blnOK + Set objPR=##class(Prod.GAData.Product).%OpenId(ProdID) + Set blnOK=$$sypConsistencyCheckObj(objPR) + Set objPR="" + Quit blnOK +sypConsistencyCheckObj(objPR) + New arCC,arCCOut,DevObj + Quit:(objPR.ConsistencyCheck(.arCC)=1) 1 + ; Else + Do ##class(Prod.GAData.Product).CheckArrayTranslate(.arCC,.arCCOut) + d WL^vhDBG("Consistency errors for product (ID="_objPR.%Id()_") : "_$$$ArrayTT("arCC")) + d WL^vhDBG(" > in words:"_$$$ArrayTT("arCCOut")) + Quit 0 +sypSetDataDefaults(objPR) + ; De routines onder SetDataDefaults() zijn zeer specifiek geschreven en zijn dus grotendeels hard-coded. +#define NOT(%v) '(%v) +#define DItemVal(%v) $$$StorageGAProd(PRID,"I",%v,"P","Val") + New blnSave,PRID + Set blnSave=0 + Set PRID=objPR.%Id() + ;Do objPR.BuildLookUp($LB("PL")) + Do sypSetDFLBinnenGreep + Set:(blnSave) sc=objPR.%Save() + Quit +sypSetDFLBinnenGreep + ;Quit $D(SyncStat(SAME,"BGRP")) + New CodeBGRP,tmpCode + Set CodeBGRP=$G(arTempl("BGRP","ID")) + Quit:(CodeBGRP="")||($L($G($$$DItemVal(CodeBGRP)))) + Quit:($G(arTempl("LT","ID"))="")||($G($$$DItemVal(arTempl("LT","ID")))'="B") + Quit:($G(arTempl("RH","ID"))="")||($G($$$DItemVal(arTempl("RH","ID")))'?1(1"D",1"C")) + ;d WL^vhDBG("SetDFLBinnenGreep LT:"_($$$DItemVal(arTempl("LT","ID")))_" RH:"_($$$DItemVal(arTempl("RH","ID")))) + ; Else BGRP (leeg) moet ge-default worden voor de D/Z of C/Z lade + Set $$$DItemVal(CodeBGRP)="H" + d WL^vhDBG("BGRP set to ""H""") + ;Set blnSave=1 + Quit \ No newline at end of file Index: APPS/PM/OL/ExcelImport.cls.xml =================================================================== diff -u -r994 -r1047 --- APPS/PM/OL/ExcelImport.cls.xml (.../ExcelImport.cls.xml) (revision 994) +++ APPS/PM/OL/ExcelImport.cls.xml (.../ExcelImport.cls.xml) (revision 1047) @@ -1,10 +1,10 @@ - + APPS.PM.OL.Common,%Prod.Product,BL.Derde.KlantSpecifiek 1 %RegisteredObject -62187,65578.291675 +62201,52948.134286 0 @@ -243,7 +243,7 @@ // CleanUp ^HULP Kill ^HULP(SubNode) - ;d ..ImportLog.DebugWrite("") ; !,$$$ArrayTT3("LogVerwerkt",##this,"LogVerwerkt"),! + ;d ..ImportLog.DebugWrite("") ; !,$$$ArrayTT("LogVerwerkt",##this,"LogVerwerkt"),! w !,"ImportKenmerkenFromCSV() finished.",! Do ..VerwerkLogging() @@ -973,5 +973,5 @@ ]]> - +