diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 347590a74..f94ae26a7 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -162,7 +162,7 @@ export default { }, clientBalance: { balanceButton: 'vn-left-menu a[ui-sref="client.card.balance.index"]', - companyAutocomplete: 'vn-client-balance-index vn-autocomplete[ng-model="$ctrl.companyFk"]', + companyAutocomplete: 'vn-client-balance-index vn-autocomplete[ng-model="$ctrl.companyId"]', newPaymentButton: `vn-float-button`, newPaymentBank: '.vn-dialog.shown vn-autocomplete[ng-model="$ctrl.receipt.bankFk"]', newPaymentAmountInput: '.vn-dialog.shown vn-input-number[ng-model="$ctrl.receipt.amountPaid"] input', diff --git a/modules/client/back/methods/receipt/filter.js b/modules/client/back/methods/receipt/filter.js index bf362f665..532d72811 100644 --- a/modules/client/back/methods/receipt/filter.js +++ b/modules/client/back/methods/receipt/filter.js @@ -11,12 +11,12 @@ module.exports = Self => { description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string', http: {source: 'query'} }, { - arg: 'clientFk', + arg: 'clientId', type: 'Number', description: 'The client id', required: true, }, { - arg: 'companyFk', + arg: 'companyId', type: 'Number', description: 'The company id', required: true, diff --git a/modules/client/front/balance/index/index.html b/modules/client/front/balance/index/index.html index 720668bcf..f42998bbd 100644 --- a/modules/client/front/balance/index/index.html +++ b/modules/client/front/balance/index/index.html @@ -19,7 +19,7 @@ this.$.riskModel.applyFilter({ where: { clientFk: this.$stateParams.id, - companyFk: this.companyFk + companyFk: this.companyId } })).then(() => this.getBalances()); } @@ -48,7 +48,7 @@ class Controller { getCurrentBalance() { const clientRisks = this.$.riskModel.data; - const selectedCompany = this.companyFk; + const selectedCompany = this.companyId; const currentBalance = clientRisks.find(balance => { return balance.companyFk === selectedCompany; }); @@ -63,7 +63,6 @@ class Controller { balance.balance = this.getCurrentBalance(); if (index > 0) { let previousBalance = balances[index - 1]; - balance.balance = previousBalance.balance - (previousBalance.debit - previousBalance.credit); } }); @@ -71,7 +70,7 @@ class Controller { openCreateDialog() { - this.$.balanceCreateDialog.companyFk = this.companyFk; + this.$.balanceCreateDialog.companyFk = this.companyId; this.$.balanceCreateDialog.onResponse = () => this.getData(); this.$.balanceCreateDialog.show(); } diff --git a/modules/client/front/balance/index/index.spec.js b/modules/client/front/balance/index/index.spec.js index a1b9a3ad7..8551d12f5 100644 --- a/modules/client/front/balance/index/index.spec.js +++ b/modules/client/front/balance/index/index.spec.js @@ -11,24 +11,91 @@ describe('Client', () => { $componentController = _$componentController_; let $scope = $rootScope.$new(); controller = $componentController('vnClientBalanceIndex', {$scope}); - controller._companyFk = 442; - controller.$stateParams.id = 101; - controller.$.model = {applyFilter: () => {}}; - controller.$.riskModel = {applyFilter: () => {}}; + controller.$.riskModel = { + applyFilter: () => {}, + data: + [{ + clientFk: 101, + companyFk: 442, + amount: 713.24, + company: { + id: 442, + code: 'VNL' + } + }] + }; })); describe('getData()', () => { it('should apply the filters on he models and get the client balance', () => { + controller._companyId = 442; + controller.$stateParams.id = 101; spyOn(controller, 'getBalances'); spyOn(controller.$.model, 'applyFilter').and.returnValue(Promise.resolve()); spyOn(controller.$.riskModel, 'applyFilter').and.returnValue(Promise.resolve()); + controller.getData().then(() => { - expect(controller.$.model.applyFilter).toHaveBeenCalledWith(null, {'clientFk': 101, 'companyFk': 442}); + expect(controller.$.model.applyFilter).toHaveBeenCalledWith(null, {'clientId': 101, 'companyId': 442}); expect(controller.$.riskModel.applyFilter).toHaveBeenCalledWith({'where': {'clientFk': 101, 'companyFk': 442}}); expect(controller.getBalances).toHaveBeenCalledWith(); }); }); }); + + describe('company setter/getter', () => { + it('should return the company', () => { + controller.companyId = null; + + expect(controller._companyId).toEqual(jasmine.any(Object)); + }); + + it('should return the company and then call getData()', () => { + spyOn(controller, 'getData'); + controller.companyId = 442; + + expect(controller._companyId).toEqual(442); + expect(controller.getData).toHaveBeenCalledWith(); + }); + }); + + describe('getCurrentBalance()', () => { + it('should return the client balance amount', () => { + controller._companyId = 442; + let result = controller.getCurrentBalance(); + + expect(result).toEqual(713.24); + }); + }); + + describe('getBalances()', () => { + it('should return the total client balance amount', () => { + spyOn(controller, 'getCurrentBalance').and.callThrough(); + controller._companyId = 442; + controller.$.model = {data: + [{ + id: 1, + debit: 1000, + credit: null + }, + { + id: 2, + debit: null, + credit: 500 + }, + { + id: 3, + debit: null, + credit: 300 + } + ]}; + controller.getBalances(); + const expectedBalances = controller.$.model.data; + + expect(expectedBalances[0].balance).toEqual(713.24); + expect(expectedBalances[1].balance).toEqual(-286.76); + expect(expectedBalances[2].balance).toEqual(213.24); + }); + }); }); });