Index: CHANGELOG.md =================================================================== diff -u -N -r63821a96e541fc20e39a5aad8bb48f4e80d60aca -r434adde4d6e44e27ced98b6ae6985bf3f15193d1 --- CHANGELOG.md (.../CHANGELOG.md) (revision 63821a96e541fc20e39a5aad8bb48f4e80d60aca) +++ CHANGELOG.md (.../CHANGELOG.md) (revision 434adde4d6e44e27ced98b6ae6985bf3f15193d1) @@ -12,6 +12,7 @@ * [OLMIS-7582](https://openlmis.atlassian.net/browse/OLMIS-7582): fixed getStockAdjustment function when there is no draft in Physical Inventory - mobile app * [OLMIS-7599](https://openlmis.atlassian.net/browse/OLMIS-7599): fixed refreshing the app - mobile app * [OLMIS-7593](https://openlmis.atlassian.net/browse/OLMIS-7593): fixed issue with saving the Unaccounted Quantity field in draft +* [OLMIS-7608](https://openlmis.atlassian.net/browse/OLMIS-7608): Fixed wrong error displaying when making receives and updating physical inventory Improvements: * [OLMIS-7588](https://openlmis.atlassian.net/browse/OLMIS-7588): Physical Inventory validation for unaccounted quantity - mobile app Index: src/stock-adjustment-creation/adjustment-creation.controller.js =================================================================== diff -u -N -r4ab1e5e0a5a657ca718bcd646162990cd5f5ada5 -r434adde4d6e44e27ced98b6ae6985bf3f15193d1 --- src/stock-adjustment-creation/adjustment-creation.controller.js (.../adjustment-creation.controller.js) (revision 4ab1e5e0a5a657ca718bcd646162990cd5f5ada5) +++ src/stock-adjustment-creation/adjustment-creation.controller.js (.../adjustment-creation.controller.js) (revision 434adde4d6e44e27ced98b6ae6985bf3f15193d1) @@ -470,8 +470,16 @@ }) .catch(function(response) { if (response.data.messageKey === - 'referenceData.error.lot.lotCode.mustBeUnique') { - errorLots.push(lot.lotCode); + 'referenceData.error.lot.lotCode.mustBeUnique' || + response.data.messageKey === + 'referenceData.error.lot.tradeItem.required') { + errorLots.push({ + lotCode: lot.lotCode, + error: response.data.messageKey === + 'referenceData.error.lot.lotCode.mustBeUnique' ? + 'stockPhysicalInventoryDraft.lotCodeMustBeUnique' : + 'stockPhysicalInventoryDraft.tradeItemRequuiredToAddLotCode' + }); } })); }); @@ -513,8 +521,17 @@ .catch(function(errorResponse) { loadingModalService.close(); if (errorLots) { - alertService.error('stockPhysicalInventoryDraft.lotCodeMustBeUnique', - errorLots.join(', ')); + var errorLotsReduced = errorLots.reduce(function(result, currentValue) { + if (currentValue.error in result) { + result[currentValue.error].push(currentValue.lotCode); + } else { + result[currentValue.error] = [currentValue.lotCode]; + } + return result; + }, {}); + for (var error in errorLotsReduced) { + alertService.error(error, errorLotsReduced[error].join(', ')); + } vm.selectedOrderableGroup = undefined; vm.selectedLot = undefined; vm.lotChanged(); Index: src/stock-physical-inventory-draft/messages_en.json =================================================================== diff -u -N -r65b4d8ff6555ac16d77240a28d324d95863a71fb -r434adde4d6e44e27ced98b6ae6985bf3f15193d1 --- src/stock-physical-inventory-draft/messages_en.json (.../messages_en.json) (revision 65b4d8ff6555ac16d77240a28d324d95863a71fb) +++ src/stock-physical-inventory-draft/messages_en.json (.../messages_en.json) (revision 434adde4d6e44e27ced98b6ae6985bf3f15193d1) @@ -13,6 +13,7 @@ "stockPhysicalInventoryDraft.productCode": "Product Code", "stockPhysicalInventoryDraft.lotCode": "Lot Code", "stockPhysicalInventoryDraft.lotCodeMustBeUnique": "Lot code must be unique", + "stockPhysicalInventoryDraft.tradeItemRequuiredToAddLotCode": "Trade Item is required to add a Lot Code", "stockPhysicalInventoryDraft.expiryDate": "Expiry Date", "stockPhysicalInventoryDraft.soh": "Stock on Hand", "stockPhysicalInventoryDraft.currentStock": "Current Stock", Index: src/stock-physical-inventory-draft/physical-inventory-draft.controller.js =================================================================== diff -u -N -r63821a96e541fc20e39a5aad8bb48f4e80d60aca -r434adde4d6e44e27ced98b6ae6985bf3f15193d1 --- src/stock-physical-inventory-draft/physical-inventory-draft.controller.js (.../physical-inventory-draft.controller.js) (revision 63821a96e541fc20e39a5aad8bb48f4e80d60aca) +++ src/stock-physical-inventory-draft/physical-inventory-draft.controller.js (.../physical-inventory-draft.controller.js) (revision 434adde4d6e44e27ced98b6ae6985bf3f15193d1) @@ -519,8 +519,16 @@ }) .catch(function(response) { if (response.data.messageKey === - 'referenceData.error.lot.lotCode.mustBeUnique') { - errorLots.push(lineItem.lot.lotCode); + 'referenceData.error.lot.lotCode.mustBeUnique' || + response.data.messageKey === + 'referenceData.error.lot.tradeItem.required') { + errorLots.push({ + lotCode: lineItem.lot.lotCode, + error: response.data.messageKey === + 'referenceData.error.lot.lotCode.mustBeUnique' ? + 'stockPhysicalInventoryDraft.lotCodeMustBeUnique' : + 'stockPhysicalInventoryDraft.tradeItemRequuiredToAddLotCode' + }); } })); } @@ -544,8 +552,17 @@ .catch(function(errorResponse) { loadingModalService.close(); if (errorLots) { - alertService.error('stockPhysicalInventoryDraft.lotCodeMustBeUnique', - errorLots.join(', ')); + var errorLotsReduced = errorLots.reduce(function(result, currentValue) { + if (currentValue.error in result) { + result[currentValue.error].push(currentValue.lotCode); + } else { + result[currentValue.error] = [currentValue.lotCode]; + } + return result; + }, {}); + for (var error in errorLotsReduced) { + alertService.error(error, errorLotsReduced[error].join(', ')); + } return $q.reject(errorResponse.data.message); } alertService.error(errorResponse.data.message);