Index: src/main/groovy/com/lemans/pricecalc/services/catalog/CatalogPartManagerService.groovy =================================================================== diff -u -raa52647609538e55ba1dbd110e7457a49cf6fb00 -re75d53060ecf69093ee7c9255cd2c3298701dd1c --- src/main/groovy/com/lemans/pricecalc/services/catalog/CatalogPartManagerService.groovy (.../CatalogPartManagerService.groovy) (revision aa52647609538e55ba1dbd110e7457a49cf6fb00) +++ src/main/groovy/com/lemans/pricecalc/services/catalog/CatalogPartManagerService.groovy (.../CatalogPartManagerService.groovy) (revision e75d53060ecf69093ee7c9255cd2c3298701dd1c) @@ -36,14 +36,13 @@ @Autowired String mfFileDropLocation - private static final List INITIAL_PRICING_UNADAPTABLE = [39601, 39602, 39603, 39604, 39605, 39606, 39607, 39608] //39600 - private static final List PRICING_STARTED_UNADAPTABLE = [39601, 39602, 39603, 39604, 39605, 39606, 39607] //39608 + private static final List INITIAL_PRICING_UNADAPTABLE = [39601, 39602, 39603, 39604, 39605, 39606, 39607] //39600 private static final List BUYER_REVIEW_PRICING_UNADAPTABLE = [39600, 39603, 39604, 39605, 39606, 39607] // 39601 - private static final List READY_FOR_APPROVAL_UNADAPTABLE = [39600, 39603, 39604, 39605, 39606, 39607, 39608] // 39602 - private static final List REJECTION_REVIEW_UNADAPTABLE = [39600, 39608, 39601, 39603, 39604, 39605] //39609 - private static final List FINALIZED_UNADAPTABLE = [39600, 39601, 39605, 39604, 39606, 39607, 39608] //39603 - private static final List REVISION_UNADAPTABLE = [39600, 39601, 39602, 39606, 39607, 39608] //39604 - private static final List REVISION_FINALIZED_UNADAPTABLE = [39600, 39601, 39602, 39603, 39607, 39608] //39605 + private static final List READY_FOR_APPROVAL_UNADAPTABLE = [39600, 39603, 39604, 39605, 39606, 39607] // 39602 + private static final List REJECTION_REVIEW_UNADAPTABLE = [39600, 39601, 39603, 39604, 39605] //39609 + private static final List FINALIZED_UNADAPTABLE = [39600, 39601, 39605, 39604, 39606, 39607] //39603 + private static final List REVISION_UNADAPTABLE = [39600, 39601, 39602, 39606, 39607] //39604 + private static final List REVISION_FINALIZED_UNADAPTABLE = [39600, 39601, 39602, 39603, 39607] //39605 private static final String VENDOR_SQL = """ SELECT @@ -197,11 +196,11 @@ private void validateUserAndInput(User user, CatalogPart catalogPart, Map input) { if (input?.statusCodeId) { validateStatusCode(catalogPart, user, input.statusCodeId) } if (input?.baseDealerPrice || input?.retailPrice) { - if ((catalogPart.statusCodeId in [39600, 39608, 39604, 39606] && !user.isAdmin) || !(user.isBuyer || user.isManager || user.isAdmin) || + if ((catalogPart.statusCodeId in [39600, 39604, 39606] && !user.isAdmin) || !(user.isBuyer || user.isManager || user.isAdmin) || (catalogPart.statusCodeId in [39601] && !(user.isBuyer || user.isManager || user.isAdmin))) { catalogPart.errors.reject('user', 'Inadequate permission to perform this action') } - if (!(catalogPart.statusCodeId in [39600, 39601, 39604, 39606, 39608, 39609])) { + if (!(catalogPart.statusCodeId in [39600, 39601, 39604, 39606, 39609])) { catalogPart.errors.reject('user', "Price can't be updated in the following part statuses: Ready for approval OR Finalized.") } } @@ -214,13 +213,9 @@ if (catalogPart.statusCodeId in INITIAL_PRICING_UNADAPTABLE) { catalogPart.errors.reject('statusCode', 'Inappropriate status transition') } if (!user.isAdmin) { catalogPart.errors.reject('user', 'Inadequate permission to perform this action') } break - case 39608: //pricing started - if (catalogPart.statusCodeId in PRICING_STARTED_UNADAPTABLE) { catalogPart.errors.reject('statusCode', 'Inappropriate status transition') } - if (!user.isAdmin) { catalogPart.errors.reject('user', 'Inadequate permission to perform this action') } - break case 39601: //Buyer pricing review if (catalogPart.statusCodeId in BUYER_REVIEW_PRICING_UNADAPTABLE) { catalogPart.errors.reject('statusCode', 'Inappropriate status transition') } - if ((user.isBuyer && !user.isAdmin) || (catalogPart.statusCodeId == 39608 && user.isManager && !user.isAdmin) || !(user.isBuyer || user.isAdmin || user.isManager)) { + if ((user.isBuyer && !user.isAdmin) || (catalogPart.statusCodeId == 39600 && user.isManager && !user.isAdmin) || !(user.isBuyer || user.isAdmin || user.isManager)) { catalogPart.errors.reject('user', 'Inadequate permission to perform this action') } break case 39602: //Ready for approval Index: src/main/groovy/com/lemans/pricecalc/services/helper/EmailService.groovy =================================================================== diff -u -rb2be73313b86b3503313403130cf4d7ddc5ea3e1 -re75d53060ecf69093ee7c9255cd2c3298701dd1c --- src/main/groovy/com/lemans/pricecalc/services/helper/EmailService.groovy (.../EmailService.groovy) (revision b2be73313b86b3503313403130cf4d7ddc5ea3e1) +++ src/main/groovy/com/lemans/pricecalc/services/helper/EmailService.groovy (.../EmailService.groovy) (revision e75d53060ecf69093ee7c9255cd2c3298701dd1c) @@ -29,7 +29,7 @@ calcPro.vwCatalogPart WITH(NOLOCK) WHERE catalogId = :catalogId AND dateDeleted IS NULL - AND statusCodeId IN (39600, 39608) + AND statusCodeId IN (39600) AND vendorId = :vendorId''' private static final String PENDING_MANAGER_APPROVALS = '''SELECT @@ -38,7 +38,7 @@ CalcPro.vwCatalogPart WITH(NOLOCK) WHERE catalogId = :catalogId AND dateDeleted IS NULL - AND statusCodeId IN (39600, 39608, 39601, 39609) + AND statusCodeId IN (39600, 39601, 39609) AND vendorId = :vendorId''' private static final String REJECTION_REVIEWS = '''SELECT