Index: grails-app/services/com/lemans/ds/qualitycontrol/QcChangeLogService.groovy =================================================================== diff -u -rd62387f918194bc923545698f275fd0c49a98e01 -rf6a0290445bf02c8a7454a4d0beef7fff8081444 --- grails-app/services/com/lemans/ds/qualitycontrol/QcChangeLogService.groovy (.../QcChangeLogService.groovy) (revision d62387f918194bc923545698f275fd0c49a98e01) +++ grails-app/services/com/lemans/ds/qualitycontrol/QcChangeLogService.groovy (.../QcChangeLogService.groovy) (revision f6a0290445bf02c8a7454a4d0beef7fff8081444) @@ -50,6 +50,17 @@ changeLogId = :changeLogId ''' + private static final String CHANGE_LOG_UPDATE_BY_ID_TO_A_SQL = ''' +UPDATE + qc.ChangeLog +SET + approvalStatusId = 13002 +WHERE + changeLogId = :changeLogId + AND approvalStatusId = 13001 + AND dateDeleted IS NOT NULL +''' + private static final String CHANGE_LOG_UPDATE_BY_ID_SQL = ''' UPDATE qc.ChangeLog @@ -413,6 +424,16 @@ } } + private setApprovedToDeletedPendingChangeLogs(List changeLogsToBeSetToApproved) { + if (changeLogsToBeSetToApproved) { + sql().withBatch(50, CHANGE_LOG_UPDATE_BY_ID_TO_A_SQL) { stmt -> + changeLogsToBeSetToApproved.each { + stmt.addBatch([changeLogId: it]) + } + } + } + } + private void deleteChangeLogsByConfigAndEntity(List changeLogsToBeDeleted) { if (changeLogsToBeDeleted) { sql().withBatch(50, CHANGE_LOG_DELETE_SQL) { stmt -> @@ -506,7 +527,9 @@ } void findAndDeleteChangeLogs(String entityName, List parentEntityIds, String userName) { - deleteChangeLogsById(getPendingOrDeclinedEntitiesByEntity(entityName, parentEntityIds), userName) + List pendingOrDeclinedChangeLogs = getPendingOrDeclinedEntitiesByEntity(entityName, parentEntityIds) + deleteChangeLogsById(pendingOrDeclinedChangeLogs, userName) + setApprovedToDeletedPendingChangeLogs(pendingOrDeclinedChangeLogs, userName) } void findAndDeleteChangeLogs(String entityName, Object entity, List entityIds, String userName) {