Index: UI/PR/Kenm/MainForm.cls.xml =================================================================== diff -u -r1074 -r1217 --- UI/PR/Kenm/MainForm.cls.xml (.../MainForm.cls.xml) (revision 1074) +++ UI/PR/Kenm/MainForm.cls.xml (.../MainForm.cls.xml) (revision 1217) @@ -2,10 +2,149 @@ serial -ProdCataloogCNTs,ReportErrorCNTs,KeyCodesCNTs,%VHMacro,APPS.PM.OL.Common +ProdCataloogCNTs,ReportErrorCNTs,KeyCodesCNTs,vhLib.Macro,APPS.PM.OL.Common Default %Library.TMFormClass +0 + +%TMSpeedButton + + + +UnID:%String +cache +0 +document +literal + + + + +cache +0 +%Library.Boolean +document +literal + + + + +Args:%String +cache +0 +document +literal + + + UI.PR.Kenm.MainForm @@ -763,6 +902,14 @@ .. Do ..SetNonMultipleValue(kenmerkRunner,tmpDataDef.Waarden) . Set DataDef(kenmerkRunner)=tmpDataDef + If HoofdGroep="OL" Do ; Added by WimV on 12/05/2011 + . Set DataDefGT=$G(DataDef("GeneratieType")) + . Set GeneratieType=$S($IsObject(DataDefGT):DataDefGT.Waarden.GetAt(1), 1:"") + . d WLIP^vhDBG(97,"GT="_GeneratieType) + . Set ..btnGenereerAutoVarianten.Enabled = $S(GeneratieType=$$$gtMaster:"True", 1:"False") + Else Do + . Set ..btnGenereerAutoVarianten.Enabled = "False" + Do ..AddMsgToLog() Quit @@ -1918,6 +2065,17 @@ ; Layout = tlCenter ; OnClick = lblProdMultiUnID1Click ; end + ; object btnGenereerAutoVarianten: CSpeedButton + ; Left = 593 + ; Top = 6 + ; Width = 149 + ; Height = 21 + ; Hint = 'Genereer AUTO varianten voor deze master' + ; Anchors = [akTop, akRight] + ; Caption = 'Genereer AUTO varianten' + ; Enabled = False + ; OnClick = btnGenereerAutoVariantenClick + ; end ; end ; object ilTreeView: CImageList ; Left = 16 @@ -2075,6 +2233,7 @@ d %this.pmUtils.%Close() d %this.pmVoorbeeldTalen.%Close() d %this.ilTreeView.%Close() + d %this.btnGenereerAutoVarianten.%Close() d %this.lblProdMultiUnID8.%Close() d %this.lblProdMultiUnID7.%Close() d %this.lblProdMultiUnID6.%Close() @@ -2521,6 +2680,7 @@ s %this.lblProdMultiUnID6=##class(%TMLabel).%New($lb(%this.pnlProdMulti.Address,0)) s %this.lblProdMultiUnID7=##class(%TMLabel).%New($lb(%this.pnlProdMulti.Address,0)) s %this.lblProdMultiUnID8=##class(%TMLabel).%New($lb(%this.pnlProdMulti.Address,0)) + s %this.btnGenereerAutoVarianten=##class(%TMSpeedButton).%New($lb(%this.pnlProdMulti.Address,0)) s %this.ilTreeView=##class(%TMImageList).%New($lb(%this.Form.Address,0)) s %this.pmVoorbeeldTalen=##class(%TMPopupMenu).%New($lb(%this.Form.Address,0)) s %this.pmUtils=##class(%TMPopupMenu).%New($lb(%this.Form.Address,0)) @@ -2606,6 +2766,7 @@ d %this.lblProdMultiUnID6.SetMultiProperty($lb("Left","Top","Width","Height","Alignment","AutoSize","Caption","Color","ParentColor","Layout","OnClick"),$lb(545,6,65,21,"taCenter","False","UnID",$$$clSilver,"False","tlCenter",$lb(%this,"lblProdMultiUnID1Click"))) d %this.lblProdMultiUnID7.SetMultiProperty($lb("Left","Top","Width","Height","Alignment","AutoSize","Caption","Color","ParentColor","Layout","OnClick"),$lb(617,6,65,21,"taCenter","False","UnID",$$$clSilver,"False","tlCenter",$lb(%this,"lblProdMultiUnID1Click"))) d %this.lblProdMultiUnID8.SetMultiProperty($lb("Left","Top","Width","Height","Alignment","AutoSize","Caption","Color","ParentColor","Layout","OnClick"),$lb(689,6,65,21,"taCenter","False","UnID",$$$clSilver,"False","tlCenter",$lb(%this,"lblProdMultiUnID1Click"))) + d %this.btnGenereerAutoVarianten.SetMultiProperty($lb("Left","Top","Width","Height","Hint","Anchors","Caption","Enabled","OnClick"),$lb(593,6,149,21,"Genereer AUTO varianten voor deze master",$lb("akTop","akRight"),"Genereer AUTO varianten","False",$lb(%this,"btnGenereerAutoVariantenClick"))) d %this.ilTreeView.SetMultiProperty($lb("Bitmap"),$lb("CLSDFOLD.ICO,OPENFOLD.ICO,MISC14.ICO,MISC15.ICO,MISC16.ico")) s %this.pmUtils.Images=%this.ilUtils d %this.miCopyValues.SetMultiProperty($lb("Caption","ImageIndex","ShortCut","OnClick"),$lb("Kopiƫren",0,112,$lb(%this,"miCopyValuesClick"))) @@ -2851,6 +3012,8 @@ ;Opvullen TreeView Do ..GetProducten() + Set ..btnGenereerAutoVarianten.Enabled = "False" + ;Bouwen dynamische compo's ;Do ..BuildLocal() niet nodig, selectie van cbbMetaGroep vereist @@ -2956,8 +3119,7 @@ New AlreadyLocked Set AlreadyLocked="False" - //JBL tijdelijk in commentaar gezet !!! TO DO - //Lock +^Prod.Ken.DataDefinitieD(UnID):0 Else Set AlreadyLocked="True" + Lock +^Prod.Ken.DataDefinitieD(UnID):0 Else Set AlreadyLocked="True" If AlreadyLocked="True" Do . Do ..AddMsgToLog(" - LOCK: Product '"_UnID_"' is reeds gelocked.") @@ -2996,9 +3158,12 @@ literal +ToonMasterAutoWarning:%Boolean=1 cache 0 %Library.Boolean @@ -3033,7 +3199,7 @@ Quit:('..tvProducten.Selected) 1 ;Selectie vereist Quit:(..tvProducten.Selected.Level'=2) 1 ;Productkeuze vereist - New DoSave + New DoSave,DoGenereerVarianten,IsModified Set DoSave=0 If ..PastePerformed Do . New CopyTranslations,StopAsking @@ -3046,8 +3212,9 @@ Quit:('DoSave) 0 - New PRNr,MetaGroep,blIndex,lbValidate + New PRNr,UnID,MetaGroep,blIndex,lbValidate Set PRNr=..GetSelectedPRNr() + Set UnID=..GetSelectedUnID() Set MetaGroep=..GetSelectedMetaGroep() ; Voorbereidende Validate voor OEI + DeleteIndex() @@ -3084,41 +3251,41 @@ Do ..UpdateDataDef() //Props bijwerken met huidige values (enkel non-multiples) - New kenmerkRunner, IsModified - Set kenmerkRunner="" - Set IsModified = 0 + Set IsModified=..IsProductDataModified() - For Set kenmerkRunner=$O(DataDef(kenmerkRunner)) Quit:(kenmerkRunner="") Do - . Set ORef=DataDef(kenmerkRunner) - . if ('IsModified) Do - .. Set IsModified = ORef.WaardenIsModified() - - Set DoSave = IsModified + Set DoGenereerVarianten = 0 // Gebruiker waarschuwen voor wijzigingen if (IsModified) { - new DDefObj, UnID + new DDefObj, UnID, MsgResult Set kenmerkFirst=$O(DataDef("")) Set DDefObj=DataDef(kenmerkFirst) Set UnID = DDefObj.UnID Set Product = ##class(Prod.Kenmerk.Orgalux).%New(UnID) Set GeneratieType = "" if ($IsObject(Product)) Set GeneratieType = Product.GetGeneratieType() + + Set IsOk = $$$IDOK Set Message = "" if (GeneratieType=$$$gtAuto) { Set Message = "Let op: u gaat een automatisch gegenereerde kenmerken-set wijzigen! Weet dat dit bij een volgende import van kenmerken-sets uit Excel overschreven kan worden. Wilt u de wijzigingen opslaan?" + Set IsOk = MApplication.MessageBox(Message,"Waarschuwing",$$$MBICONWARNING+$$$MBOKCANCEL) } - if (GeneratieType=$$$gtMaster) + if (GeneratieType=$$$gtMaster)&&(ToonMasterAutoWarning=1) { - Set Message = "Let op: u gaat een kenmerken-set wijzigen die als master is ingesteld voor andere kenmerken-sets! Weet dat dit pas effect zal hebben op de bijhorende automatisch gegenereerde kenmerken-sets, indien deze wijziging gebeurt via een import vanuit Excel. Wilt u de wijzigingen opslaan?" + ;Set Message = "Let op: u gaat een kenmerken-set wijzigen die als master is ingesteld voor andere kenmerken-sets! Weet dat dit pas effect zal hebben op de bijhorende automatisch gegenereerde kenmerken-sets, indien deze wijziging gebeurt via een import vanuit Excel. Wilt u de wijzigingen opslaan?" + Set Message = "Let op: u gaat een kenmerken-set wijzigen die als master is ingesteld voor andere kenmerken-sets! Wilt u opslaan en de MASTER doorvoeren op z'n AUTO-producten?" + Set Message = Message _ $$$CRLF + Set Message = Message _ $$$CRLF _ " - (JA) Wijzigingen opslaan + genereren van de AUTO-kenmerken" + Set Message = Message _ $$$CRLF _ " - (NEE) Alleen de wijzigingen opslaan" + Set Message = Message _ $$$CRLF _ " - (CANCEL) Annuleren, dus niet bewaren" + Set Message = Message _ $$$CRLF + Set MsgResult = MApplication.MessageBox(Message,"Waarschuwing",$$$MBICONWARNING+$$$MBYESNOCANCEL) + Set IsOk=$S(MsgResult=$$$IDCANCEL:$$$IDCANCEL, 1:$$$IDOK) + Set DoGenereerVarianten=(MsgResult=$$$IDYES) } - Set IsOk = $$$IDOK - if (Message '= "") - { - Set IsOk = MApplication.MessageBox(Message,"Waarschuwing",$$$MBICONWARNING+$$$MBOKCANCEL) - } Set DoSave = (IsOk = $$$IDOK) } @@ -3143,6 +3310,7 @@ ... Quit:(SelNode.HasChildren="True") ... Set SelNode.ImageIndex=2 + ; Validate voor OEI : ter controle van de nieuwe waarden + BuildIndex() If (MetaGroep="OEI") Do . Set blIndex=##class(BL.Prod.SearchBuildIndex).Instantiate() @@ -3155,8 +3323,52 @@ . . Do ..AddMsgToLog("Validatie voor OEI failed : "_$$$LCVT(lbValidate),"True") . . Do MApplication.MessageBox("Validation after save : "_$$$CRLF_$$$LCVT(lbValidate),"Validate OEI",$$$MBICONEXCLAMATION) + + If (MetaGroep="OL")&&(DoSave) Do ; Added by WimV on 12/05/2011 + . Do ..AddMsgToLog("Bezig met het verwerken van de 'afgeleide' kenmerken en updaten van de FotoLinks en ImageLinks voor UnID="_UnID_" ...","True") + . + . ;s objTestOpenDDef1=$G(DataDef("ProductSorteerSleutel")) + . ;s objTestOpenDDef2=$G(DataDef("LadeBreedteMaxAangeraden")) + . ;d WLIP^vhDBG(97,"before 'afgeleide' kenmerken") + . ;d:($IsObject(objTestOpenDDef1)) WLIP^vhDBG(97,"ProductSorteerSleutel : DataDef is modified "_objTestOpenDDef1.%IsModified()_" Waarden is modified "_objTestOpenDDef1.WaardenIsModified()_" - waarde: "_objTestOpenDDef1.Waarden.Count()_" items "_objTestOpenDDef1.Waarden.GetAt(1)) + . ;d:($IsObject(objTestOpenDDef2)) WLIP^vhDBG(97,"LadeBreedteMaxAangeraden : DataDef is modified "_objTestOpenDDef2.%IsModified()_" Waarden is modified "_objTestOpenDDef2.WaardenIsModified()_" - waarde: "_objTestOpenDDef2.Waarden.Count()_" items "_objTestOpenDDef2.Waarden.GetAt(1)) + . + . New ListOfUnIDs,BLProdMulti,sc + . Set ListOfUnIDs=##class(%ListOfDataTypes).%New() + . Do ListOfUnIDs.Insert(UnID) + . Set BLProdMulti=..blKenm + . Set sc=##class(APPS.PM.OL.AfgeleideKenmerkenGenerator).VerwerkProducten(ListOfUnIDs,0,BLProdMulti) + . Do:($$$ISERR(sc)) ..AddMsgToLog("Fout bij het verwerken van de 'afgeleide' kenmerken voor UnID="_UnID_" : "_$$ParseStatus^vhLib(sc),"True") + . + . ;d WLIP^vhDBG(97," ") + . ;d WLIP^vhDBG(97,"after 'afgeleide' kenmerken") + . ;d:($IsObject(objTestOpenDDef1)) WLIP^vhDBG(97,"ProductSorteerSleutel : DataDef is modified "_objTestOpenDDef1.%IsModified()_" Waarden is modified "_objTestOpenDDef1.WaardenIsModified()_" - waarde: "_objTestOpenDDef1.Waarden.Count()_" items "_objTestOpenDDef1.Waarden.GetAt(1)) + . ;d:($IsObject(objTestOpenDDef2)) WLIP^vhDBG(97,"LadeBreedteMaxAangeraden : DataDef is modified "_objTestOpenDDef2.%IsModified()_" Waarden is modified "_objTestOpenDDef2.WaardenIsModified()_" - waarde: "_objTestOpenDDef2.Waarden.Count()_" items "_objTestOpenDDef2.Waarden.GetAt(1)) + . + . ; Nogmaals bewaren van de gewijzigde DataDefs m.n. de DataDefs met lege waarden (ironisch genoeg staan deze als %IsModified=1) + . For Set kenmerkRunner=$O(DataDef(kenmerkRunner)) Quit:(kenmerkRunner="") Do + . . Set ORef=DataDef(kenmerkRunner) + . . If ORef.%IsModified() Do + . . . Set tmpStatus=ORef.%Save() + . . . If $$$ISERR(tmpStatus) Do + . . . . Do ..AddMsgToLog(" - ERROR: "_kenmerkRunner_" ("_ORef.%Id()_", "_ORef.%ClassName(1)_")") + . . . . Do ..ReportError($$$reStatusError,tmpStatus) + . + . ;d WLIP^vhDBG(97," ") + . ;d WLIP^vhDBG(97,"after extra Save() na 'afgeleide' kenmerken") + . ;d:($IsObject(objTestOpenDDef1)) WLIP^vhDBG(97,"ProductSorteerSleutel : DataDef is modified "_objTestOpenDDef1.%IsModified()_" Waarden is modified "_objTestOpenDDef1.WaardenIsModified()_" - waarde: "_objTestOpenDDef1.Waarden.Count()_" items "_objTestOpenDDef1.Waarden.GetAt(1)) + . ;d:($IsObject(objTestOpenDDef2)) WLIP^vhDBG(97,"LadeBreedteMaxAangeraden : DataDef is modified "_objTestOpenDDef2.%IsModified()_" Waarden is modified "_objTestOpenDDef2.WaardenIsModified()_" - waarde: "_objTestOpenDDef2.Waarden.Count()_" items "_objTestOpenDDef2.Waarden.GetAt(1)) + + ;d WLIP^vhDBG(97,"IsProductDataModified after AfgeleideKenmerkenGenerator : " _ ..IsProductDataModified()) + + Do ..RefreshKenmerkWaarden() //Eventuele nieuwe waarden wo dan ook ingelezen... + If (MetaGroep="OL")&&(DoGenereerVarianten) Do ; Added by WimV on 19/05/2011 + . Do ..GenereerAutoVarianten(UnID) + + Do ..AddMsgToLog("Het bewaren van de gegevens is afgelopen.","True") + //MOUSE & STATUSBAR: clear Do ..AddMsgToLog() Set MApplication.ScreenCursor=$$$crDefault @@ -4138,6 +4350,7 @@ ;Beginning of user code Set ..txtUserInputProduct.Text="" + Set ..btnGenereerAutoVarianten.Enabled="False" //Quit indien geen selectie (just to be sure...) Quit:(..tvProducten.Selected="") @@ -4551,6 +4764,9 @@ ProdMultiUnIDsArrayCnt + +btnGenereerAutoVarianten + Index: APPS/PM/IKenmerkBuilder.cls.xml =================================================================== diff -u -r1133 -r1217 --- APPS/PM/IKenmerkBuilder.cls.xml (.../IKenmerkBuilder.cls.xml) (revision 1133) +++ APPS/PM/IKenmerkBuilder.cls.xml (.../IKenmerkBuilder.cls.xml) (revision 1217) @@ -90,18 +90,54 @@ Set sc = $$$OK For { Set KenmerkWaarde=..AantepassenKenmerken.GetNext(.Kenmerk) Quit:(Kenmerk="") If ($length(KenmerkWaarde)) { - Set sc=##class(Prod.Kenmerk.DataDefinitie).Set(GroepID,..KenmerkObject.GetID(),Kenmerk,KenmerkWaarde) + + /* If Kenmerk="xProductSorteerSleutel" { + // Debug voor dit kenmerk + d WLIP^vhDBG(97,"Kenmerk ProductSorteerSleutel : DataDef obj: "_$G(DataDef(Kenmerk))) + s objTestNew=##class(Prod.Kenmerk.DataDefinitie).%New() + s objTestOpenOther=##class(Prod.Kenmerk.DataDefinitie).%OpenId("89998||TB||BasisType") + s objTestOpenDDef=##class(Prod.Kenmerk.DataDefinitie).%OpenId("435360.1||OL||ProductSorteerSleutel") + + d WLIP^vhDBG(97," oref New "_objTestNew_$$$CRLF_" oref other "_objTestOpenOther_$$$CRLF_" oref DDef "_objTestOpenDDef) + d:($IsObject(objTestOpenDDef)) WLIP^vhDBG(97,"DataDef is modified "_objTestOpenDDef.%IsModified()_" Waarden is modified "_objTestOpenDDef.WaardenIsModified()) + + } + */ + + Set sc=##class(Prod.Kenmerk.DataDefinitie).WijzigOfMaak(GroepID,..KenmerkObject.GetID(),Kenmerk,KenmerkWaarde) Set:(sc=0) sc=$$$ERROR($$$GeneralError,"Prod.Kenmerk.DataDefinite "_Kenmerk_" kan niet toegevoegd worden.") + + /* d:(xKenmerk="ProductSorteerSleutel")&&($IsObject(objTestOpenDDef)) WLIP^vhDBG(97,"Set done. DataDef is modified "_objTestOpenDDef.%IsModified()_" Waarden is modified "_objTestOpenDDef.WaardenIsModified()) + Set (objTestNew,objTestOpenOther,objTestOpenDDef)="" + */ If $$$ISERR(sc) { Do ..Write($$$CRLF_$$$TAB_$$ParseStatus^vhLib(sc)) quit } else { Do ..Write($$$CRLF_$$$TAB_"saved "_Kenmerk_" : "_$$$LCVT(KenmerkWaarde)) } - + } Else { + + /* If Kenmerk="xLadeBreedteMaxAangeraden" { + // Debug voor dit kenmerk + d WLIP^vhDBG(97,"Kenmerk LadeBreedteMaxAangeraden : DataDef obj: "_$G(DataDef(Kenmerk))) + s objTestNew=##class(Prod.Kenmerk.DataDefinitie).%New() + s objTestOpenOther=##class(Prod.Kenmerk.DataDefinitie).%OpenId("89998||TB||BasisType") + s objTestOpenDDef=##class(Prod.Kenmerk.DataDefinitie).%OpenId("435360.1||OL||LadeBreedteMaxAangeraden") + + d WLIP^vhDBG(97," oref New "_objTestNew_$$$CRLF_" oref other "_objTestOpenOther_$$$CRLF_" oref DDef "_objTestOpenDDef_$S($IsObject(objTestOpenDDef):" waarde "_objTestOpenDDef.Waarden.Count()_" "_objTestOpenDDef.Waarden.GetAt(1) , 1:"")) + d:($IsObject(objTestOpenDDef)) WLIP^vhDBG(97,"DataDef is modified "_objTestOpenDDef.%IsModified()_" Waarden is modified "_objTestOpenDDef.WaardenIsModified()) + + } + */ Set sc=##class(Prod.Kenmerk.DataDefinitie).DeleteKM(GroepID,..KenmerkObject.GetID(),Kenmerk) + + /* d:(Kenmerk="xLadeBreedteMaxAangeraden")&&($IsObject(objTestOpenDDef)) WLIP^vhDBG(97,"Set done. DataDef is modified "_objTestOpenDDef.%IsModified()_" Waarden is modified "_objTestOpenDDef.WaardenIsModified()_" - "_$S($IsObject(objTestOpenDDef):" waarde "_objTestOpenDDef.Waarden.Count()_" "_objTestOpenDDef.Waarden.GetAt(1) , 1:"")) + Set (objTestNew,objTestOpenOther,objTestOpenDDef)="" + */ + If $$$ISERR(sc) { Do ..Write($$$CRLF_$$$TAB_$$ParseStatus^vhLib(sc)) quit }