Index: APPS/PM/OL/MasterAutoGenerator.cls.xml
===================================================================
diff -u -r1507 -r1517
--- APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1507)
+++ APPS/PM/OL/MasterAutoGenerator.cls.xml (.../MasterAutoGenerator.cls.xml) (revision 1517)
@@ -244,12 +244,13 @@
Set ProdKM.TeVerwijderen=0
// Alle kenmerken invullen
- Set ProductKenmerken=##class(APPS.PM.KenmerkenService).%New().GeefProductKenmerkenForUnID(ProdKM.PRNr, ProdKM.SubID, ..KenmerkGroepID)
- If ($IsObject(ProductKenmerken))&&(ProductKenmerken.Kenmerken.Count()>0) {
- Set KenmerkenIt=##class(TECH.ListIterator).%New(ProductKenmerken.Kenmerken)
+ Set KenmerkenSet = ##class(APPS.PM.KenmerkenService).%New().GeefProductKenmerkenForUnID(UnID, ..KenmerkGroepID)
+
+ If ($IsObject(KenmerkenSet))&&(KenmerkenSet.Kenmerken.Count()>0) {
+ Set KenmerkenIt=##class(TECH.ListIterator).%New(KenmerkenSet.Kenmerken)
While (KenmerkenIt.HasNext()) {
Set ProductKenmerk=KenmerkenIt.Next()
- Set KenmerkNaam=ProductKenmerk.KenmerkNaam
+ Set KenmerkNaam=ProductKenmerk.Naam
Set KenmerkWaarden=OLKenmerken.GetKenmerkenPublic(KenmerkNaam) ; Waarden is een $LB()
If ($LL(KenmerkWaarden)=1)&&(KenmerkNaam'?1(1"Diepte",1"WandDikte",1"Websites",1"LadeFamilie",1"KleurFilter")) {
// Voor alle kenmerken, behalve bovenvernoemde in pattern-match, worden de single-value waarden omgezet van $LB() naar string.
Index: APPS/PM/dto/Kenm/ProductKenmerken.cls.xml
===================================================================
diff -u -r1112 -r1517
--- APPS/PM/dto/Kenm/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1112)
+++ APPS/PM/dto/Kenm/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1517)
@@ -8,13 +8,13 @@
%RegisteredObject,%XML.Adaptor
0
-
-ProductKenmerk
+
+APPS.PM.dto.Kenm.ProductKenmerkenGroep
list
-
-APPS.PM.dto.ProductIDs
+
+%Integer
Index: DOM/PM/impl/DataM/DataMProductAPI.cls.xml
===================================================================
diff -u -r1516 -r1517
--- DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1516)
+++ DOM/PM/impl/DataM/DataMProductAPI.cls.xml (.../DataMProductAPI.cls.xml) (revision 1517)
@@ -209,35 +209,38 @@
While (ProductKenmerkenIt.HasNext())
{
Set ProductKenmerken = ProductKenmerkenIt.Next()
- Set ProductIDs = ProductKenmerken.IDs
+ Set PRNr = ProductKenmerken.PRNr
- Set UnID = ProductIDs.PRNr
- /// Als er een MultipleNr is opgegeven, de UnID correct invullen
- If (ProductIDs.MultipleNr '= "")
- {
- Set UnID = ##class(BL.Kenm.ProdMulti).GetFullID(ProductIDs.PRNr,ProductIDs.MultipleNr)
- }
-
-
- Set ProductKenmerkIt = ##class(TECH.ListIterator).%New(ProductKenmerken.Kenmerken)
- While (ProductKenmerkIt.HasNext())
- {
- Set ProductKenmerk = ProductKenmerkIt.Next()
+ Set KenmerkGroepenIt = ##class(TECH.ListIterator).%New(ProductKenmerken.KenmerkenGroepen)
+ While (KenmerkGroepenIt.HasNext()){
+ Set KenmerkGroep = KenmerkGroepenIt.Next()
- Set ProductKenmerkenSets = ..GeefProductKenmerkenSets(ProductIDs.PRNr,ProductKenmerk.Groep)
- Set ProductKenmerkenSet = ProductKenmerkenSets.GeefKenmerkenSet(UnID)
-
- /// Nagaan dat product als GeneratieType niet AUTO is.
- If ((ProductKenmerk.Groep = "OL") && (ProductKenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) = ##class(APPS.PM.enu.GeneratieType).Auto())) {
- Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).InvalidInput(),"Kon het kenmerk niet opslaan om het AUTO als GeneratieType heeft."))
+ Set KenmerkenSetIt = ##class(TECH.ListIterator).%New(KenmerkGroep.Sets)
+ While (KenmerkenSetIt.HasNext()) {
+ Set KenmerkenSet = KenmerkenSetIt.Next()
+ Set UnID = KenmerkenSet.UnID
+
+ Set ProductKenmerkIt = ##class(TECH.ListIterator).%New(KenmerkenSet.Kenmerken)
+ While (ProductKenmerkIt.HasNext())
+ {
+ Set ProductKenmerk = ProductKenmerkIt.Next()
+
+ Set ProductKenmerkenSets = ..GeefProductKenmerkenSets(PRNr,KenmerkGroep.Naam)
+ Set ProductKenmerkenSet = ProductKenmerkenSets.GeefKenmerkenSet(UnID)
+
+ /// Nagaan dat product als GeneratieType niet AUTO is.
+ If ((ProductKenmerk.Naam = "OL") && (ProductKenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1) = ##class(APPS.PM.enu.GeneratieType).Auto())) {
+ Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).InvalidInput(),"Kon het kenmerk niet opslaan om het AUTO als GeneratieType heeft."))
+ }
+
+ Do ProductKenmerkenSet.ZetRaiseEvent(0) /// Geen event raisen, want is buld operatie
+
+ Set Wijziging = ProductKenmerkenSet.ZetKenmerkWaarden(ProductKenmerk.Waarden,ProductKenmerk.Naam)
+ If (Wijziging '= ""){
+ Do KenmerkenModifiedEventData.Wijzigingen.Insert(Wijziging)
+ }
+ }
}
-
- Do ProductKenmerkenSet.ZetRaiseEvent(0) /// Geen event raisen, want is buld operatie
-
- Set Wijziging = ProductKenmerkenSet.ZetKenmerkWaarden(ProductKenmerk.Waarden,ProductKenmerk.KenmerkNaam)
- If (Wijziging '= ""){
- Do KenmerkenModifiedEventData.Wijzigingen.Insert(Wijziging)
- }
}
}
/// Event raisen
Index: APPS/PM/dto/Kenm/ProductKenmerk.cls.xml
===================================================================
diff -u -r1112 -r1517
--- APPS/PM/dto/Kenm/ProductKenmerk.cls.xml (.../ProductKenmerk.cls.xml) (revision 1112)
+++ APPS/PM/dto/Kenm/ProductKenmerk.cls.xml (.../ProductKenmerk.cls.xml) (revision 1517)
@@ -7,7 +7,7 @@
%RegisteredObject,%XML.Adaptor
0
-
+
%String
@@ -17,9 +17,5 @@
%String
list
-
-
-%String
-
Index: APPS/PM/dto/Kenm/ProductKenmerkenSet.cls.xml
===================================================================
diff -u
--- APPS/PM/dto/Kenm/ProductKenmerkenSet.cls.xml (revision 0)
+++ APPS/PM/dto/Kenm/ProductKenmerkenSet.cls.xml (revision 1517)
@@ -0,0 +1,23 @@
+
+
+
+
+JBL + 2011-06-24
+1
+%RegisteredObject,%XML.Adaptor
+0
+
+
+APPS.PM.dto.Kenm.ProductKenmerk
+list
+
+
+
+%String
+
+
+
+APPS.PM.enu.GeneratieType
+
+
+
Index: APPS/PM/OL/ProductKenmerken.cls.xml
===================================================================
diff -u -r1507 -r1517
--- APPS/PM/OL/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1507)
+++ APPS/PM/OL/ProductKenmerken.cls.xml (.../ProductKenmerken.cls.xml) (revision 1517)
@@ -390,7 +390,7 @@
Set VariantObject = ##class(APPS.PM.OL.KortTekstPatroon).%New().CreatePatroonMatch(VariantPRNr,..VariabeleKenmerken)
Set sc=..BewaarKenmerkenVanVariant(ImportLog,VariantObject)
- d WLIP^vhDBG(127,"Status Bewaard voor Variant (PRNr:"_Variant_") "_PotVariant.KortTekst_" = "_$S($$$ISOK(sc):"OK", 1:$$ParseStatus^vhLib(sc))_"")
+ d WLIP^vhDBG(127,"Status Bewaard voor Variant (PRNr:"_VariantPRNr_") "_VariantObject.KortTekst_" = "_$S($$$ISOK(sc):"OK", 1:$$ParseStatus^vhLib(sc))_"")
}
Set:(Varianten.Count()=0) sc=$$$ERROR($$$GeneralError,"Geen varianten gevonden voor deze master ("_..UnID_" "_..KortTekst_" #KT="_Varianten.Count()_")")
Quit sc
Index: vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml
===================================================================
diff -u -r1507 -r1517
--- vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml (.../TestKenmerkenService.cls.xml) (revision 1507)
+++ vhUnitTest/APPS/PM/TestKenmerkenService.cls.xml (.../TestKenmerkenService.cls.xml) (revision 1517)
@@ -57,13 +57,13 @@
do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),PRNrs.Count(),"Aantal gevonden productkenmerken is het gelijk aan het aantal gevraagde producten.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.Count(),8,"Juiste aantal gedefineerde kenmerken.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),8,"Juiste aantal gedefineerde kenmerken.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).IDs.PRNr,PRNrs.GetAt(1),"PRNr komt overeen.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,PRNrs.GetAt(1),"PRNr komt overeen.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).Kenmerken.Count(),15,"Juiste aantal gedefineerde kenmerken.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),15,"Juiste aantal gedefineerde kenmerken.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).Kenmerken.GetAt(1).KenmerkNaam,"ProductType","Kenmerknaam is correct ingevuld.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.GetAt(1).Naam,"ProductType","Kenmerknaam is correct ingevuld.")
]]>
@@ -78,19 +78,21 @@
Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs)
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),2,"Aantal gevonden productkenmerken is het gelijk aan het aantal gevraagde producten, twee omdat het een multiple product is.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),1,"Aantal gevonden productkenmerken met uniek PRNr is het gelijk aan het aantal gevraagde producten.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.Count(),19,"Juiste aantal gedefineerde kenmerken voor ProductKenmerken1.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.Count(),2,"Er zijn twee kenmerkensets gevonden voor het product.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).IDs.PRNr,PRNrs.GetAt(1),"PRNr komt overeen.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken.Count(),19,"Juiste aantal gedefineerde kenmerken voor ProductKenmerken1.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).IDs.MultipleNr,1,"MultipleNr 1 is in orde.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,PRNrs.GetAt(1),"PRNr komt overeen.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).IDs.MultipleNr,2,"MultipleNr 1 is in orde.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).UnID,"1003.1","UnID 1003.1 is in orde.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).Kenmerken.Count(),19,"Juiste aantal gedefineerde kenmerken ProductKenmerken2.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(2).UnID,"1003.2","UnID 1003.2 is in orde.")
- do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).Kenmerken.GetAt(1).KenmerkNaam,"ProductType","Kenmerknaam is correct ingevuld.")
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(2).Kenmerken.Count(),19,"Juiste aantal gedefineerde kenmerken ProductKenmerken2.")
+
+ do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(2).Kenmerken.GetAt(1).Naam,"ProductType","Kenmerknaam is correct ingevuld.")
]]>
@@ -146,23 +148,27 @@
Do KenmerkGroepen.Insert("OL")
Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs, KenmerkGroepen)
-
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1),"Keuken","Er is een ingevulde eigenschap "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).KenmerkNaam_" : "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1)_"")
+
+ Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken
+
+ Do $$$AssertEquals(Kenmerken.GetAt(4).Waarden.GetAt(1),"Keuken","Er is een ingevulde eigenschap "_Kenmerken.GetAt(4).Naam_" : "_Kenmerken.GetAt(4).Waarden.GetAt(1)_"")
; [Review WV JBL Kenm] wat een geflipte expression :-P
; bestaat er geen method Product.GeefKenmerkViaNaam("MeubelToepassing") i.p.v. GetAt(4) ?
///Kenmerk wijzigen en wegschrijven
Set Waarden = ##class(%ListOfDataTypes).%New()
Do Waarden.Insert(NieuweWaarde)
- Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden = Waarden
+ Set Kenmerken.GetAt(4).Waarden = Waarden
+ /// Set ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken = Kenmerken
Do KenmerkenService.BewaarProductenKenmerken(ProductenKenmerken)
- k ProductenKenmerken
+ k ProductenKenmerken, Kenmerken
///Opnieuw ophalen van kenmerken
Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs, KenmerkGroepen)
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1),NieuweWaarde,"Er is een ingevulde eigenschap "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).KenmerkNaam_" : "_NieuweWaarde_"")
+ Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken
+ Do $$$AssertEquals(Kenmerken.GetAt(4).Waarden.GetAt(1),NieuweWaarde,"Er is een ingevulde eigenschap "_Kenmerken.GetAt(4).Naam_" : "_NieuweWaarde_"")
// We gaan nog eens opnieuw bewaren. Dit zou geen save mogen trigger => zelfde waarden is geen save.
@@ -172,8 +178,9 @@
Set Waarden = ##class(%ListOfDataTypes).%New()
Do Waarden.Insert(NieuweWaarde)
- Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden = Waarden
+ Set Kenmerken.GetAt(4).Waarden = Waarden
+ /// Set ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken = Kenmerken
Do KenmerkenService.BewaarProductenKenmerken(ProductenKenmerken)
Do $$$AssertFalse(%HeeftModEventOntvangen,"De mod event werd niet opgegooid omdat er geen wijzigingen waren")
@@ -203,22 +210,24 @@
Do KenmerkGroepen.Insert("OL")
Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs, KenmerkGroepen)
- Set OudeWaarde1 = ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(3).Waarden.GetAt(1)
- Set OudeWaarde2 = ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1)
+ Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken
+ Set OudeWaarde1 = Kenmerken.GetAt(3).Waarden.GetAt(1)
+ Set OudeWaarde2 = Kenmerken.GetAt(4).Waarden.GetAt(1)
Set Waarden = ##class(%ListOfDataTypes).%New()
Do Waarden.Insert("GoedeWaarde")
/// Goed kenmerk instellen
- Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(3).Waarden = Waarden
+ Set Kenmerken.GetAt(3).Waarden = Waarden
/// Slecht kenmerk instellen
- Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).KenmerkNaam = "NietBestaandKenmerk"
- Set ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden = Waarden
+ Set Kenmerken.GetAt(4).Naam = "NietBestaandKenmerk"
+ Set Kenmerken.GetAt(4).Waarden = Waarden
Set ..ErrorMsg=""
Set $ZTRAP = "Catch"
+ /// Set ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken = Kenmerken
Do KenmerkenService.BewaarProductenKenmerken(ProductenKenmerken)
GoTo Catch
Catch Set $ZTRAP = ""
@@ -233,9 +242,9 @@
///Opnieuw ophalen van kenmerken
Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs, KenmerkGroepen)
-
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(3).Waarden.GetAt(1),OudeWaarde1,"Gerolbackte eigenschap "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(3).KenmerkNaam_" : "_NieuweWaarde_"")
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).Waarden.GetAt(1),OudeWaarde2,"Gerolbackte eigenschap "_ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.GetAt(4).KenmerkNaam_" : "_NieuweWaarde_"")
+ Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken
+ Do $$$AssertEquals(Kenmerken.GetAt(3).Waarden.GetAt(1),OudeWaarde1,"Gerolbackte eigenschap "_Kenmerken.GetAt(3).Naam_" : "_NieuweWaarde_"")
+ Do $$$AssertEquals(Kenmerken.GetAt(4).Waarden.GetAt(1),OudeWaarde2,"Gerolbackte eigenschap "_Kenmerken.GetAt(4).Naam_" : "_NieuweWaarde_"")
]]>
@@ -245,7 +254,7 @@
@@ -307,8 +319,8 @@
Set PRNr = GewijzigdePRNrs.GetAt(1)
Set ProductenKenmerken = KenmerkenService.GeefProductenKenmerkenOne(PRNr,KenmerkGroep)
-
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.Count(),18,"Er zijn 18 kenmerken gevonden.")
+ Set Kenmerken = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets.GetAt(1).Kenmerken
+ Do $$$AssertEquals(Kenmerken.Count(),18,"Er zijn 18 kenmerken gevonden.")
]]>
@@ -331,7 +343,8 @@
Do PRNrs.Insert(PRNr)
Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen)
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),3,"Er zijn drie producten gevonden.")
+ Set Sets = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets
+ Do $$$AssertEquals(Sets.Count(),3,"Er zijn 3 productkenmerken sets gevonden voor dit product.")
Set GewijzigdePRNrs = KenmerkenService.VerwijderKenmerkenSets(KenmerkGroep,UnIDs)
@@ -340,9 +353,12 @@
Do $$$AssertEquals(GewijzigdePRNrs.GetAt(1),PRNr,"De kenmerkensets van product '"_PRNr_"' gewijzigd.")
Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen)
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),2,"Er zijn twee producten gevonden.")
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden voor het eerste product.")
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(2).Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden voor het tweede product.")
+ Set Sets = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets
+ Set Kenmerken = Sets.GetAt(1).Kenmerken
+
+ Do $$$AssertEquals(Sets.Count(),2,"Er zijn 2 productkenmerken sets gevonden voor dit product.")
+ Do $$$AssertEquals(Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden voor het eerste product.")
+ Do $$$AssertEquals(Kenmerken.Count(),17,"Er zijn 17 kenmerken gevonden voor het tweede product.")
]]>
@@ -380,15 +396,19 @@
Do $$$AssertEquals(GewijzigdePRNrs.GetAt(1),1022,"Gewijzigd PRNr : 1022")
Set PRNrs = ##class(%ListOfDataTypes).%New()
Do PRNrs.Insert(1022)
- Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen)
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),2,"Er zijn twee multiple producten aanwezig voor PRNr 1022")
+ Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen)
+ Set Sets = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets
+ Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,1022,"PRNr is correct"_1022)
+ Do $$$AssertEquals(Sets.Count(),2,"Er zijn twee multiple producten aanwezig voor PRNr 1022")
Do $$$AssertEquals(GewijzigdePRNrs.GetAt(2),1023,"Gewijzigd PRNr : 1023")
Do PRNrs.Clear()
Do PRNrs.Insert(1023)
Set ProductenKenmerken = KenmerkenService.GeefProductKenmerken(PRNrs,KenmerkGroepen)
- Do $$$AssertEquals(ProductenKenmerken.Kenmerken.Count(),2,"Er zijn twee multiple producten aanwezig voor PRNr 1022")
+ Set Sets = ProductenKenmerken.Kenmerken.GetAt(1).KenmerkenGroepen.GetAt(1).Sets
+ Do $$$AssertEquals(ProductenKenmerken.Kenmerken.GetAt(1).PRNr,1023,"PRNr is correct"_1023)
+ Do $$$AssertEquals(Sets.Count(),2,"Er zijn twee multiple producten aanwezig voor PRNr 1023")
]]>
Index: JBL Product AMF.prj.xml
===================================================================
diff -u -r1507 -r1517
--- JBL Product AMF.prj.xml (.../JBL Product AMF.prj.xml) (revision 1507)
+++ JBL Product AMF.prj.xml (.../JBL Product AMF.prj.xml) (revision 1517)
@@ -1,10 +1,11 @@
-
+
+
Index: vhUnitTest/APPS/PM/OL/MasterAutoGenerator.cls.xml
===================================================================
diff -u
--- vhUnitTest/APPS/PM/OL/MasterAutoGenerator.cls.xml (revision 0)
+++ vhUnitTest/APPS/PM/OL/MasterAutoGenerator.cls.xml (revision 1517)
@@ -0,0 +1,57 @@
+
+
+
+
+Do ##class(vhUnitTest.Manager).RunTest("/display=all/debug","APPS.PM.OL.MasterAutoGenerator")
+1
+vhUnitTest.TestCase
+0
+
+
+vhUnitTest.DOM.PM.TestData
+1
+
+
+
+%Status
+
+
+
+
+%Status
+
+
+
+
+ 0),"Er zijn waardes voor de kenmerken.")
+]]>
+
+
+
Index: APPS/PM/dto/Kenm/ProductKenmerkenGroep.cls.xml
===================================================================
diff -u
--- APPS/PM/dto/Kenm/ProductKenmerkenGroep.cls.xml (revision 0)
+++ APPS/PM/dto/Kenm/ProductKenmerkenGroep.cls.xml (revision 1517)
@@ -0,0 +1,19 @@
+
+
+
+
+JBL + 2011-06-24
+1
+%RegisteredObject,%XML.Adaptor
+0
+
+
+APPS.PM.dto.Kenm.ProductKenmerkenSet
+list
+
+
+
+%String
+
+
+
Index: DOM/PM/impl/ProductKenmerkenSet.cls.xml
===================================================================
diff -u -r1507 -r1517
--- DOM/PM/impl/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1507)
+++ DOM/PM/impl/ProductKenmerkenSet.cls.xml (.../ProductKenmerkenSet.cls.xml) (revision 1517)
@@ -56,11 +56,13 @@
/// JBL : opmerking zou beter zijn om foutmelding te geven.
/// Maar oude code geeft steeds lege waarde teruggeeft als het kenmerk niet gevonden is.
+ /*
Else{
Set ErrorMsg = "Kon kenmerk niet vinden voor "_..UnID_" : "_..KenmerkGroep_"||"_..UnID_"||"_KenmerkNaam
Do ##class(vhLib.Logger).%New("APPS.PM.OL").ErrorMail("Kenmerk niet gevonden.",ErrorMsg)
//Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.BaseException).%New(##class(TECH.enu.ExceptionCode).GeneralError(),ErrorMsg))
}
+ */
Quit KenmerkWaarden
]]>
Index: APPS/PM/KenmerkenService.cls.xml
===================================================================
diff -u -r1507 -r1517
--- APPS/PM/KenmerkenService.cls.xml (.../KenmerkenService.cls.xml) (revision 1507)
+++ APPS/PM/KenmerkenService.cls.xml (.../KenmerkenService.cls.xml) (revision 1517)
@@ -52,7 +52,9 @@
$$$chkIsObject(PRNrs)
Set ProductenKenmerken = ##class(APPS.PM.dto.Kenm.ProductenKenmerken).%New()
+ Set ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI()
+
// nadien nagaan of er iets in kenmerkGroepen zit
if ('$IsObject(KenmerkGroepen) || (KenmerkGroepen.Count() = 0)) {
Set KenmerkGroepen = ##class(Prod.Kenmerk.MetaGroep).GetAllMetaGroupsAsList()
@@ -67,46 +69,70 @@
Set PRNr = PRNrIterator.Next()
Set Product = ProductAPI.GeefProduct(PRNr)
-
+ Set ProductKenmerken = ##class(APPS.PM.dto.Kenm.ProductKenmerken).%New()
+ Set ProductKenmerken.PRNr = PRNr
+
Set KenmerkGroepIterator = ##class(TECH.ListIterator).%New(KenmerkGroepen)
While (KenmerkGroepIterator.HasNext())
{
Set KenmerkGroep = KenmerkGroepIterator.Next()
+
+ Set ProductKenmerkenGroep = ##class(APPS.PM.dto.Kenm.ProductKenmerkenGroep).%New()
+ Set ProductKenmerkenGroep.Sets = ##class(%ListOfObjects).%New()
+ Set ProductKenmerkenGroep.Naam = KenmerkGroep
+
+ Set KenmerkenSets = ProductAPI.GeefProductKenmerkenSets(PRNr, KenmerkGroep)
Set ProductIDsLijst = ProductService.GeefProductIDsVanProduct(Product)
- For ID=1:1:ProductIDsLijst.Count()
- {
- Set ProductIDs = ProductIDsLijst.GetAt(ID)
- Set ProductKenmerken = ##class(APPS.PM.dto.Kenm.ProductKenmerken).%New()
+ Set ProductIDsIt = ##class(TECH.ListIterator).%New(ProductIDsLijst)
+ While (ProductIDsIt.HasNext()){
+ Set ProductIDs = ProductIDsIt.Next()
+
+ Set ProductKenmerkenSet = ##class(APPS.PM.dto.Kenm.ProductKenmerkenSet).%New()
Set UnID = ##class(BL.Kenm.ProdMulti).GetFullID(ProductIDs.PRNr,ProductIDs.MultipleNr)
+
+ Set ProductKenmerkenSet.UnID = UnID
+
+ /// GeneratieType
+ Set KenmerkenSet = KenmerkenSets.GeefKenmerkenSet(UnID)
+ If (KenmerkenSet.GeefKenmerkWaarden("GeneratieType").Count() > 0){
+ Set ProductKenmerkenSet.GeneratieType = KenmerkenSet.GeefKenmerkWaarden("GeneratieType").GetAt(1)
+ }Else{
+ Set ProductKenmerkenSet.GeneratieType = ##class(APPS.PM.enu.GeneratieType).Single()
+ }
+
+ Set Kenmerken = ##class(%ListOfObjects).%New()
+
Set tmpStatus=RS.Execute(KenmerkGroep)
- Set KenmerkAanwezig = 0
If $$$ISOK(tmpStatus)
- {
+ {
While (RS.Next())
{
Set DataDefID= ##class(Prod.Kenmerk.DataDefinitie).BuildDataDefinitionID(KenmerkGroep,UnID,RS.Get("Kenmerk"))
If ##class(Prod.Kenmerk.DataDefinitie).%ExistsId(DataDefID)
{
Set tmpDataDef=##class(Prod.Kenmerk.DataDefinitie).%OpenId(DataDefID)
Set ProductKenmerk = ##class(APPS.PM.dto.Kenm.ProductKenmerk).%New()
- Set ProductKenmerk.KenmerkNaam = tmpDataDef.GeefKenmerk().Kenmerk
+ Set ProductKenmerk.Naam = tmpDataDef.GeefKenmerk().Kenmerk
Set ProductKenmerk.Waarden = tmpDataDef.Waarden
- Set ProductKenmerk.Groep = KenmerkGroep
-
- Do ProductKenmerken.Kenmerken.Insert(ProductKenmerk)
- Set KenmerkAanwezig = 1
+ Do Kenmerken.Insert(ProductKenmerk)
}
}
}
- if (KenmerkAanwezig){
- /// ProductKenmerken toevoegen.
- Set ProductKenmerken.IDs = ProductIDs
- Do ProductenKenmerken.Kenmerken.Insert(ProductKenmerken)
+
+ /// Enkel Set toevoegen als er kenmerken zijn voor die set.
+ If (Kenmerken.Count() > 0){
+ Set ProductKenmerkenSet.Kenmerken = Kenmerken
+ Do ProductKenmerkenGroep.Sets.Insert(ProductKenmerkenSet)
}
- //}
- }
+ }
+
+ /// Enkel groepen toevoegen als er sets aanwezig zijn
+ If (ProductKenmerkenGroep.Sets.Count() > 0) {
+ Do ProductKenmerken.KenmerkenGroepen.Insert(ProductKenmerkenGroep)
+ }
}
+ Do ProductenKenmerken.Kenmerken.Insert(ProductKenmerken)
}
$$$TECHErrorTrapOff
@@ -133,19 +159,34 @@
Geeft de ProductKenmerken voor 1 UnID terug (combinatie van PRNr en SubID)
-PRNr:%String,SubID:%String,KenmerkGroep:%String
-APPS.PM.dto.Kenm.ProductKenmerken
+UnID:%String,KenmerkGroep:%String
+APPS.PM.dto.Kenm.ProductKenmerkenSet