Index: vhUnitTest/APPS/PM/TestProductService.cls.xml
===================================================================
diff -u -r1724 -r1763
--- vhUnitTest/APPS/PM/TestProductService.cls.xml (.../TestProductService.cls.xml) (revision 1724)
+++ vhUnitTest/APPS/PM/TestProductService.cls.xml (.../TestProductService.cls.xml) (revision 1763)
@@ -76,6 +76,30 @@
]]>
+
+
+
+
1
APPS.PM.enu.GeneratieType
list
+
+
+%String
+
Index: APPS/PM/ProductService.cls.xml
===================================================================
diff -u -r1723 -r1763
--- APPS/PM/ProductService.cls.xml (.../ProductService.cls.xml) (revision 1723)
+++ APPS/PM/ProductService.cls.xml (.../ProductService.cls.xml) (revision 1763)
@@ -88,24 +88,42 @@
Set AantalToegevoegde = 0
Set rs = rsSearch
+ If ($Length(Criteria.DataInKenmerkGroep)>0)
+ {
+ Set DataInKenmerkGroepResultSet = ##class(%ResultSet).%New()
+ Do DataInKenmerkGroepResultSet.Prepare("SELECT Count(1) As HeeftDataInKenmerkGroep FROM Prod_Kenmerk.DataDefinitie WHERE PRNr = ? AND KenmerkGroep = ?")
+ }
+
While(rs.Next() && ((Criteria.MaxAantalResultaten = "") || (AantalToegevoegde < Criteria.MaxAantalResultaten))) {
Set PRNr = rs.GetData(1)
If ((PRNrArray.Count() = 0) || (PRNrArray.IsDefined(PRNr) = 1 )){
Set Product = ProductAPI.GeefProduct(PRNr)
Set Toevoegen = 1
/// Als op exacte korttekst gezocht word, die hier controleren.
- If (Criteria.ExacteKorttekst && (Criteria.SoortProductID = ##class(APPS.PM.enu.SoortProductID).Korttekst()) && (Product.GeefKorttekst() '= Criteria.ProductID)){
+ If (Toevoegen && Criteria.ExacteKorttekst && (Criteria.SoortProductID = ##class(APPS.PM.enu.SoortProductID).Korttekst()) && (Product.GeefKorttekst() '= Criteria.ProductID)){
Set Toevoegen = 0
}
/// Indien GeopenNa meegeven, hier checken met datum van opening product
- If (Criteria.GeopendNa && (Product.GeefOpeningDatum() <= Criteria.GeopendNa)){
+ If (Toevoegen && Criteria.GeopendNa && (Product.GeefOpeningDatum() <= Criteria.GeopendNa)){
Set Toevoegen = 0
}
+
+ If (Toevoegen && ($Length(Criteria.DataInKenmerkGroep)>0))
+ {
+ Do DataInKenmerkGroepResultSet.Execute(PRNr, Criteria.DataInKenmerkGroep)
+ If (DataInKenmerkGroepResultSet.Next())
+ {
+ Set Toevoegen = (DataInKenmerkGroepResultSet.Data("HeeftDataInKenmerkGroep")>0)
+ }
+ Else
+ {
+ Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.GeneralErrorException).%New("Kon de query niet uitvoeren om te achterhalen of het product data heeft in een kenmerkgroep"))
+ }
+ }
+
/// Als generatietype is opgegeven hierop filteren
- If ($IsObject(Criteria.GeneratieType) && (Criteria.GeneratieType.Count() > 0) && ('Criteria.GeneratieType.Find(##class(APPS.PM.enu.GeneratieType).Onbepaald()))){
-
-
+ If (Toevoegen && $IsObject(Criteria.GeneratieType) && (Criteria.GeneratieType.Count() > 0) && ('Criteria.GeneratieType.Find(##class(APPS.PM.enu.GeneratieType).Onbepaald()))){
/// Indien product multiple heeft, toevoegen als minstens één multiple hetzelfde generatietype heeft.
/// Nie alle multiples moeten dus voldoen aan hetzelfde generatietype.
If ($$ISORGAL^ORGALUX(PRNr)){
@@ -114,7 +132,6 @@
Set MultipleIt = ##class(TECH.ListIterator).%New(Multiples)
While (MultipleIt.HasNext()){
Set UnID = MultipleIt.Next()
- Set DataDefID= ##class(Prod.Kenmerk.DataDefinitie).BuildDataDefinitionID($$$KenmerkGroepID,UnID,"GeneratieType")
Set GeneratieTypeDataDef=$LG(##class(Prod.Kenmerk.DataDefinitie).Get($$$KenmerkGroepID,UnID,"GeneratieType"),1)
Set GeneratieTypeIt = ##class(TECH.ListIterator).%New(Criteria.GeneratieType)
While (GeneratieTypeIt.HasNext()){