diff --git a/client/ticket/src/sale/sale.html b/client/ticket/src/sale/sale.html index 4714a7c2c..7894e19c4 100644 --- a/client/ticket/src/sale/sale.html +++ b/client/ticket/src/sale/sale.html @@ -15,6 +15,13 @@ url="/ticket/api/States/alertLevelIs0" on-change="$ctrl.onStateChange(value)"> + + diff --git a/client/ticket/src/sale/sale.js b/client/ticket/src/sale/sale.js index 31e4a1309..eb95de8ee 100644 --- a/client/ticket/src/sale/sale.js +++ b/client/ticket/src/sale/sale.js @@ -10,6 +10,16 @@ class Controller extends FilterTicketList { this.$http = $http; } + get isChecked() { + let data = this.$.index.model.instances; + if (data) + for (let instance of data) + if (instance.checked) + return true; + + return false; + } + onStateOkClick() { let filter = {where: {code: "OK"}, fields: ["id"]}; let json = encodeURIComponent(JSON.stringify(filter)); @@ -25,6 +35,25 @@ class Controller extends FilterTicketList { }); } + onRemoveLinesClick() { + let lines = { + delete: [] + }; + let data = this.$.index.model.instances; + if (data) + for (let i = 0; i < data.length;) { + if (data[i].checked) { + lines.delete.push(data[i].id); + data.splice(i, 1); + } else { + i++; + } + } + + let query = `/ticket/api/Sales/crudSale`; + this.$http.post(query, lines); + } + showDescriptor(event, itemFk) { this.$.descriptor.itemFk = itemFk; this.$.descriptor.parent = event.target; diff --git a/client/ticket/src/sale/sale.spec.js b/client/ticket/src/sale/sale.spec.js index 960794f96..dd7da0867 100644 --- a/client/ticket/src/sale/sale.spec.js +++ b/client/ticket/src/sale/sale.spec.js @@ -26,6 +26,18 @@ describe('Ticket', () => { controller = $componentController('vnTicketSale', {$scope: $scope}, {$state: $state}); })); + describe('isChecked() setter/getter', () => { + it('should set isChecked value to true when one of the instances has the value checked to true', () => { + let lines = [ + {checked: false}, + {checked: true} + ]; + $scope.index.model.instances = lines; + + expect(controller.isChecked).toBeTruthy(); + }); + }); + describe('onStateOkClick()', () => { it('should perform a get and then call a function', () => { let filter = {where: {code: "OK"}, fields: ["id"]}; @@ -50,5 +62,21 @@ describe('Ticket', () => { $httpBackend.flush(); }); }); + + describe('onRemoveLinesClick()', () => { + it('should remove an object of the model if has the attribute cheched true', () => { + $scope.index.model.instances = [{id: 1, checked: true}, {id: 2, checked: false}]; + controller.onRemoveLinesClick(); + + expect($scope.index.model.instances).toEqual([{id: 2, checked: false}]); + }); + + it('should make a post if an object the model has the attribute cheched true', () => { + $scope.index.model.instances = [{id: 1, checked: false}, {id: 2, checked: false}]; + $httpBackend.expectPOST(`/ticket/api/Sales/crudSale`).respond(); + controller.onRemoveLinesClick(); + $httpBackend.flush(); + }); + }); }); });