diff --git a/src/requisition-view-tab/requisition-view-tab.controller.js b/src/requisition-view-tab/requisition-view-tab.controller.js index 5be2727c..e761b945 100644 --- a/src/requisition-view-tab/requisition-view-tab.controller.js +++ b/src/requisition-view-tab/requisition-view-tab.controller.js @@ -181,7 +181,7 @@ lineItem.quantities = {}; } lineItem.quantities[column.name] = {}; - if (lineItem[column.name]) { + if (lineItem[column.name] !== null && lineItem[column.name] !== undefined) { lineItem.quantities[column.name].quantity = lineItem[column.name]; lineItem.quantities[column.name] = quantityUnitCalculateService. recalculateInputQuantity(lineItem.quantities[column.name], diff --git a/src/requisition-view-tab/requisition-view-tab.controller.spec.js b/src/requisition-view-tab/requisition-view-tab.controller.spec.js index 6e8ef357..d154aa79 100644 --- a/src/requisition-view-tab/requisition-view-tab.controller.spec.js +++ b/src/requisition-view-tab/requisition-view-tab.controller.spec.js @@ -21,6 +21,12 @@ describe('ViewTabController', function() { set: function() {}, get: function() {} }); + $provide.value('quantityUnitCalculateService', { + recalculateInputQuantity: jasmine.createSpy('recalculateInputQuantity') + .andCallFake(function(item) { + return item; + }) + }); }); var RequisitionLineItemDataBuilder, RequisitionDataBuilder, RequisitionColumnDataBuilder, OrderableDataBuilder; @@ -454,6 +460,44 @@ describe('ViewTabController', function() { }); + describe('quantities initialization', function() { + + it('should populate quantities with zero value from line item', function() { + var RequisitionColumnDataBuilder; + inject(function($injector) { + RequisitionColumnDataBuilder = $injector.get('RequisitionColumnDataBuilder'); + }); + + var column = new RequisitionColumnDataBuilder() + .buildRequestedQuantityColumn(this.requisition); + var lineItem = { + requestedQuantity: 0, + orderable: { + netContent: 10 + }, + updateFieldValue: jasmine.createSpy('updateFieldValue') + }; + + this.vm = this.$controller('ViewTabController', { + lineItems: [lineItem], + items: [lineItem], + columns: [column], + requisition: this.requisition, + canSubmit: this.canSubmit, + canAuthorize: this.canAuthorize, + fullSupply: this.fullSupply, + program: {}, + $scope: this.$scope, + canApproveAndReject: this.canApproveAndReject, + canUnskipRequisitionItemWhenApproving: this.canUnskipRequisitionItemWhenApproving + }); + this.vm.$onInit(); + + expect(lineItem.quantities['requestedQuantity'].quantity).toBe(0); + }); + + }); + }); describe('deleteLineItem', function() {