Index: grails-app/controllers/com/lemans/ds/catalog/CatalogInstanceController.groovy =================================================================== diff -u -rc4a0bac1bd749cde79ea08298eee9100a7a001c2 -rd2311b73f8b96b5c8b3426860221cb63b9f8bb57 --- grails-app/controllers/com/lemans/ds/catalog/CatalogInstanceController.groovy (.../CatalogInstanceController.groovy) (revision c4a0bac1bd749cde79ea08298eee9100a7a001c2) +++ grails-app/controllers/com/lemans/ds/catalog/CatalogInstanceController.groovy (.../CatalogInstanceController.groovy) (revision d2311b73f8b96b5c8b3426860221cb63b9f8bb57) @@ -14,7 +14,7 @@ } def index() { - Map criteria = common() + pagination() + filters(['year', 'marketingName', 'catalogId', 'catalogName']) + Map criteria = common() + pagination() + filters(['year', 'marketingName', 'catalogId', 'catalogName', 'tagId']) renderPaginated catalogInstanceService.findAll(criteria) } Index: grails-app/services/com/lemans/ds/catalog/CatalogInstanceService.groovy =================================================================== diff -u -rc4a0bac1bd749cde79ea08298eee9100a7a001c2 -rd2311b73f8b96b5c8b3426860221cb63b9f8bb57 --- grails-app/services/com/lemans/ds/catalog/CatalogInstanceService.groovy (.../CatalogInstanceService.groovy) (revision c4a0bac1bd749cde79ea08298eee9100a7a001c2) +++ grails-app/services/com/lemans/ds/catalog/CatalogInstanceService.groovy (.../CatalogInstanceService.groovy) (revision d2311b73f8b96b5c8b3426860221cb63b9f8bb57) @@ -28,6 +28,26 @@ if (criteria.catalogName) { clauses << "catalogName like '${replaceAsteriskToPercentageForLikeSearch(criteria.catalogName)}'" } if (criteria.catalogId) { clauses << 'catalogId = :catalogId' } + if (criteria.tagId) { + if (criteria.tagId.toString().contains('!')) { + clauses << """ NOT EXISTS ( + SELECT 1 + FROM dbo.FlagValue fv + WHERE fv.dateDeleted IS NULL + AND fv.entityId = x.catalogInstanceId + AND fv.flagId = 82 + )""" + } else { + clauses << """EXISTS ( + SELECT 1 + FROM dbo.FlagValue fv + WHERE fv.dateDeleted IS NULL + AND fv.entityId = x.catalogInstanceId + AND fv.flagId = 82 + )""" + } + } + clauses << 'dateDeleted IS NULL' clauses }