Commit d036690bd57a68b368ae7e52ce31a66c788ead50

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'master'

eliminar vendedor-cobrador

See merge request !2
src/js/controller.js
1 angular.module('focaAbmVendedorCobrador') 1 angular.module('focaAbmVendedorCobrador')
2 .controller('focaAbmVendedoresCobradoresController', [ 2 .controller('focaAbmVendedoresCobradoresController', [
3 '$scope', 'focaAbmVendedorCobradorService', '$location', '$filter', 3 '$scope', 'focaAbmVendedorCobradorService', '$location', '$filter',
4 '$uibModal', 'focaBotoneraLateralService', 4 '$uibModal', 'focaBotoneraLateralService',
5 function($scope, focaAbmVendedorCobradorService, $location, $filter, 5 function($scope, focaAbmVendedorCobradorService, $location, $filter,
6 $uibModal, focaBotoneraLateralService) { 6 $uibModal, focaBotoneraLateralService) {
7 7
8 $scope.now = new Date(); 8 $scope.now = new Date();
9 $scope.vendedoresCobradores = []; 9 $scope.vendedoresCobradores = [];
10 $scope.filters = ''; 10 $scope.filters = '';
11 $scope.numPerPage = 10; 11 $scope.numPerPage = 10;
12 $scope.currentPageVendedoresCobradores = []; 12 $scope.currentPageVendedoresCobradores = [];
13 $scope.filteredVendedoresCobradores = []; 13 $scope.filteredVendedoresCobradores = [];
14 14
15 //SETEO BOTONERA LATERAL 15 //SETEO BOTONERA LATERAL
16 focaBotoneraLateralService.showSalir(true); 16 focaBotoneraLateralService.showSalir(true);
17 focaBotoneraLateralService.showPausar(false); 17 focaBotoneraLateralService.showPausar(false);
18 focaBotoneraLateralService.showCancelar(false); 18 focaBotoneraLateralService.showCancelar(false);
19 focaBotoneraLateralService.showGuardar(false); 19 focaBotoneraLateralService.showGuardar(false);
20 20
21 focaAbmVendedorCobradorService.getVendedoresCobradores().then(function(res) { 21 actualizarTabla();
22 $scope.vendedoresCobradores = res.data;
23
24 $scope.search();
25 });
26 22
27 $scope.editar = function(id) { 23 $scope.editar = function(id) {
28 $location.path('/vendedor-cobrador/' + id); 24 $location.path('/vendedor-cobrador/' + id);
29 }; 25 };
30 26
27 $scope.eliminar = function(id) {
28 focaAbmVendedorCobradorService
29 .eliminarVendedorCobrador(id)
30 .then(function() {
31 actualizarTabla();
32 });
33 };
34
31 $scope.selectPage = function(page) { 35 $scope.selectPage = function(page) {
32 var start = (page - 1) * $scope.numPerPage; 36 var start = (page - 1) * $scope.numPerPage;
33 var end = start + $scope.numPerPage; 37 var end = start + $scope.numPerPage;
34 $scope.paginas = []; 38 $scope.paginas = [];
35 $scope.paginas = calcularPages(page); 39 $scope.paginas = calcularPages(page);
36 $scope.currentPageVendedoresCobradores = 40 $scope.currentPageVendedoresCobradores =
37 $scope.filteredVendedoresCobradores.slice(start, end); 41 $scope.filteredVendedoresCobradores.slice(start, end);
38 $scope.currentPage = page; 42 $scope.currentPage = page;
39 }; 43 };
40 44
41 $scope.resetPage = function() { 45 $scope.resetPage = function() {
42 $scope.currentPage = 1; 46 $scope.currentPage = 1;
43 $scope.selectPage(1); 47 $scope.selectPage(1);
44 }; 48 };
45 49
46 $scope.search = function() { 50 $scope.search = function() {
47 $scope.filteredVendedoresCobradores = $filter('filter')( 51 $scope.filteredVendedoresCobradores = $filter('filter')(
48 $scope.vendedoresCobradores, {$: $scope.filters} 52 $scope.vendedoresCobradores, {$: $scope.filters}
49 ); 53 );
50 54
51 $scope.lastPage = Math.ceil( 55 $scope.lastPage = Math.ceil(
52 $scope.filteredVendedoresCobradores.length / $scope.numPerPage 56 $scope.filteredVendedoresCobradores.length / $scope.numPerPage
53 ); 57 );
54 58
55 $scope.resetPage(); 59 $scope.resetPage();
56 }; 60 };
57 61
58 function calcularPages(paginaActual) { 62 function calcularPages(paginaActual) {
59 var paginas = []; 63 var paginas = [];
60 paginas.push(paginaActual); 64 paginas.push(paginaActual);
61 65
62 if(paginaActual - 1 > 1) { 66 if(paginaActual - 1 > 1) {
63 67
64 paginas.unshift(paginaActual - 1); 68 paginas.unshift(paginaActual - 1);
65 if(paginaActual - 2 > 1) { 69 if(paginaActual - 2 > 1) {
66 paginas.unshift(paginaActual - 2); 70 paginas.unshift(paginaActual - 2);
67 } 71 }
68 } 72 }
69 73
70 if(paginaActual + 1 < $scope.lastPage) { 74 if(paginaActual + 1 < $scope.lastPage) {
71 paginas.push(paginaActual + 1); 75 paginas.push(paginaActual + 1);
72 if(paginaActual + 2 < $scope.lastPage) { 76 if(paginaActual + 2 < $scope.lastPage) {
73 paginas.push(paginaActual + 2); 77 paginas.push(paginaActual + 2);
74 } 78 }
75 } 79 }
76 80
77 if(paginaActual !== 1) { 81 if(paginaActual !== 1) {
78 paginas.unshift(1); 82 paginas.unshift(1);
79 } 83 }
80 84
81 if(paginaActual !== $scope.lastPage) { 85 if(paginaActual !== $scope.lastPage) {
82 paginas.push($scope.lastPage); 86 paginas.push($scope.lastPage);
83 } 87 }
84 88
85 return paginas; 89 return paginas;
86 } 90 }
87 91
88 function primera() { 92 function primera() {
89 $scope.selectedClientes = 0; 93 $scope.selectedClientes = 0;
90 } 94 }
91 95
92 function anterior() { 96 function anterior() {
93 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { 97 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) {
94 retrocederPagina(); 98 retrocederPagina();
95 } else { 99 } else {
96 $scope.selectedClientes--; 100 $scope.selectedClientes--;
97 } 101 }
98 } 102 }
99 103
100 function siguiente() { 104 function siguiente() {
101 if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) { 105 if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) {
102 $scope.selectedClientes++; 106 $scope.selectedClientes++;
103 } else { 107 } else {
104 avanzarPagina(); 108 avanzarPagina();
105 } 109 }
106 } 110 }
107 111
108 function retrocederPagina() { 112 function retrocederPagina() {
109 if ($scope.currentPage > 1) { 113 if ($scope.currentPage > 1) {
110 $scope.selectPage($scope.currentPage - 1); 114 $scope.selectPage($scope.currentPage - 1);
111 $scope.selectedClientes = $scope.numPerPage - 1; 115 $scope.selectedClientes = $scope.numPerPage - 1;
112 } 116 }
113 } 117 }
114 118
115 function avanzarPagina() { 119 function avanzarPagina() {
116 if ($scope.currentPage < $scope.lastPage) { 120 if ($scope.currentPage < $scope.lastPage) {
117 $scope.selectPage($scope.currentPage + 1); 121 $scope.selectPage($scope.currentPage + 1);
118 $scope.selectedClientes = 0; 122 $scope.selectedClientes = 0;
119 } 123 }
120 } 124 }
125
126 function actualizarTabla() {
127 focaAbmVendedorCobradorService.getVendedoresCobradores().then(function(res) {
128 $scope.vendedoresCobradores = res.data;
129 $scope.search();
130 });
131 }
121 } 132 }
122 ]) 133 ])
123 .controller('focaAbmVendedorCobradorController', [ 134 .controller('focaAbmVendedorCobradorController', [
124 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService', 135 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService',
125 '$timeout', '$uibModal', '$location', 'focaModalService', 136 '$timeout', '$uibModal', '$location', 'focaModalService',
126 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService, 137 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService,
127 $timeout, $uibModal, $location, focaModalService) { 138 $timeout, $uibModal, $location, focaModalService) {
128 139
129 $scope.now = new Date(); 140 $scope.now = new Date();
130 $scope.vendedorCobrador = { 141 $scope.vendedorCobrador = {
131 CodVen: 0, 142 CodVen: 0,
132 ES_COBRADOR: false, 143 ES_COBRADOR: false,
133 DNI: ' ', 144 DNI: ' ',
134 ClaVen: '', 145 ClaVen: '',
135 ComVen: '0.00', 146 ComVen: '0.00',
136 provincia: { 147 provincia: {
137 NOMBRE: '' 148 NOMBRE: ''
138 }, 149 },
139 localidad: { 150 localidad: {
140 NOMBRE: '' 151 NOMBRE: ''
141 } 152 }
142 }; 153 };
143 //SETEO BOTONERA LATERAL 154 //SETEO BOTONERA LATERAL
144 $timeout(function() { 155 $timeout(function() {
145 focaBotoneraLateralService.showSalir(false); 156 focaBotoneraLateralService.showSalir(false);
146 focaBotoneraLateralService.showPausar(true); 157 focaBotoneraLateralService.showPausar(true);
147 focaBotoneraLateralService.showCancelar(true); 158 focaBotoneraLateralService.showCancelar(true);
148 focaBotoneraLateralService.showGuardar(true, $scope.guardar); 159 focaBotoneraLateralService.showGuardar(true, $scope.guardar);
149 }); 160 });
150 161
151 focaAbmVendedorCobradorService 162 focaAbmVendedorCobradorService
152 .getVendedorCobradorById($routeParams.id) 163 .getVendedorCobradorById($routeParams.id)
153 .then(function(res) { 164 .then(function(res) {
154 if(res.data){ 165 if(res.data){
155 $scope.vendedorCobrador = res.data; 166 $scope.vendedorCobrador = res.data;
156 delete $scope.vendedorCobrador.FCVEN; 167 delete $scope.vendedorCobrador.FCVEN;
157 delete $scope.vendedorCobrador.FEC; 168 delete $scope.vendedorCobrador.FEC;
158 } 169 }
159 }); 170 });
160 171
161 $scope.guardar = function() { 172 $scope.guardar = function() {
162 if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) { 173 if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) {
163 focaModalService.alert('Las contraseñas deben coincidir'); 174 focaModalService.alert('Las contraseñas deben coincidir');
164 return; 175 return;
165 } 176 }
166 $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID; 177 $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID;
167 $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID; 178 $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID;
168 179
169 delete $scope.vendedorCobrador.provincia; 180 delete $scope.vendedorCobrador.provincia;
170 delete $scope.vendedorCobrador.localidad; 181 delete $scope.vendedorCobrador.localidad;
171 delete $scope.vendedorCobrador.ClaVen2; 182 delete $scope.vendedorCobrador.ClaVen2;
172 183
173 focaAbmVendedorCobradorService 184 focaAbmVendedorCobradorService
174 .guardarVendedorCobrador($scope.vendedorCobrador) 185 .guardarVendedorCobrador($scope.vendedorCobrador)
175 .then(function() { 186 .then(function() {
176 $location.path('/vendedor-cobrador'); 187 $location.path('/vendedor-cobrador');
177 }); 188 });
178 }; 189 };
179 190
180 $scope.seleccionarProvincia = function(key) { 191 $scope.seleccionarProvincia = function(key) {
181 if(key === 13) { 192 if(key === 13) {
182 var modalInstance = $uibModal.open( 193 var modalInstance = $uibModal.open(
183 { 194 {
184 ariaLabelledBy: 'Búsqueda de provincias', 195 ariaLabelledBy: 'Búsqueda de provincias',
185 templateUrl: 'modal-provincias.html', 196 templateUrl: 'modal-provincias.html',
186 controller: 'focaModalProvinciaController', 197 controller: 'focaModalProvinciaController',
187 size: 'md', 198 size: 'md',
188 resolve: { 199 resolve: {
189 filters: function() { 200 filters: function() {
190 return $scope.vendedorCobrador.provincia.NOMBRE; 201 return $scope.vendedorCobrador.provincia.NOMBRE;
191 } 202 }
192 } 203 }
193 } 204 }
194 ); 205 );
195 modalInstance.result.then(function(provincia) { 206 modalInstance.result.then(function(provincia) {
196 $scope.vendedorCobrador.provincia = provincia; 207 $scope.vendedorCobrador.provincia = provincia;
197 $timeout(function() { 208 $timeout(function() {
198 $scope.focused = 5; 209 $scope.focused = 5;
199 }); 210 });
200 }, function() { 211 }, function() {
201 //TODO: función llamada cuando cancela el modal 212 //TODO: función llamada cuando cancela el modal
202 }); 213 });
203 } 214 }
204 }; 215 };
205 $scope.seleccionarLocalidad = function(key) { 216 $scope.seleccionarLocalidad = function(key) {
206 if(!$scope.vendedorCobrador.provincia.ID) { 217 if(!$scope.vendedorCobrador.provincia.ID) {
207 //TODO: Poner modal alert de foca 218 //TODO: Poner modal alert de foca
208 alert('Seleccione una provincia'); 219 alert('Seleccione una provincia');
209 return; 220 return;
210 } 221 }
211 if(key === 13) { 222 if(key === 13) {
212 var modalInstance = $uibModal.open( 223 var modalInstance = $uibModal.open(
213 { 224 {
214 ariaLabelledBy: 'Búsqueda de localidades', 225 ariaLabelledBy: 'Búsqueda de localidades',
215 templateUrl: 'modal-localidades.html', 226 templateUrl: 'modal-localidades.html',
216 controller: 'focaModalLocalidadController', 227 controller: 'focaModalLocalidadController',
217 size: 'md', 228 size: 'md',
218 resolve: { 229 resolve: {
219 filters: { 230 filters: {
220 idProvincia: $scope.vendedorCobrador.provincia.ID, 231 idProvincia: $scope.vendedorCobrador.provincia.ID,
221 busqueda: $scope.vendedorCobrador.localidad.NOMBRE 232 busqueda: $scope.vendedorCobrador.localidad.NOMBRE
222 } 233 }
223 } 234 }
224 } 235 }
225 ); 236 );
226 modalInstance.result.then(function(localidad) { 237 modalInstance.result.then(function(localidad) {
227 $scope.vendedorCobrador.localidad = localidad; 238 $scope.vendedorCobrador.localidad = localidad;
228 }, function() { 239 }, function() {
229 //TODO: función llamada cuando cancela el modal 240 //TODO: función llamada cuando cancela el modal
230 }); 241 });
231 } 242 }
1 angular.module('focaAbmVendedorCobrador') 1 angular.module('focaAbmVendedorCobrador')
2 .factory('focaAbmVendedorCobradorService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { 2 .factory('focaAbmVendedorCobradorService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) {
3 return { 3 return {
4 getVendedoresCobradores: function() { 4 getVendedoresCobradores: function() {
5 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador'); 5 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador');
6 }, 6 },
7 getVendedorCobradorById: function(id) { 7 getVendedorCobradorById: function(id) {
8 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/' + id); 8 return $http.get(API_ENDPOINT.URL + '/vendedor-cobrador/' + id);
9 }, 9 },
10 guardarVendedorCobrador: function(vendedorCobrador) { 10 guardarVendedorCobrador: function(vendedorCobrador) {
11 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador', 11 return $http.post(API_ENDPOINT.URL + '/vendedor-cobrador',
12 {vendedorCobrador: vendedorCobrador}); 12 {vendedorCobrador: vendedorCobrador});
13 },
14 eliminarVendedorCobrador: function(id) {
15 return $http.delete(API_ENDPOINT.URL + '/vendedor-cobrador/' + id);
13 } 16 }
14 }; 17 };
15 }]); 18 }]);
16 19
src/views/foca-abm-vendedor-cobrador-listado.html
1 <div class="row"> 1 <div class="row">
2 <foca-cabecera-facturador 2 <foca-cabecera-facturador
3 titulo="'Vendedores / Cobradores'" 3 titulo="'Vendedores / Cobradores'"
4 fecha="now" 4 fecha="now"
5 class="mb-0 col-lg-12" 5 class="mb-0 col-lg-12"
6 ></foca-cabecera-facturador> 6 ></foca-cabecera-facturador>
7 </div> 7 </div>
8 <div class="row"> 8 <div class="row">
9 <div class="col-12 col-md-10 p-0 mt-4 border border-white rounded"> 9 <div class="col-12 col-md-10 p-0 mt-4 border border-white rounded">
10 <div class="form-group input-group mt-3 px-5"> 10 <div class="form-group input-group mt-3 px-5">
11 <input 11 <input
12 type="text" 12 type="text"
13 class="form-control form-control-sm" 13 class="form-control form-control-sm"
14 id="search" 14 id="search"
15 placeholder="Búsqueda" 15 placeholder="Búsqueda"
16 teclado-virtual 16 teclado-virtual
17 ng-change="search()" 17 ng-change="search()"
18 ng-model="filters" 18 ng-model="filters"
19 /> 19 />
20 <div class="input-group-append"> 20 <div class="input-group-append">
21 <button 21 <button
22 ladda="searchLoading" 22 ladda="searchLoading"
23 class="btn btn-outline-secondary" 23 class="btn btn-outline-secondary"
24 type="button" 24 type="button"
25 ng-click="busquedaPress(13)" 25 ng-click="busquedaPress(13)"
26 > 26 >
27 <i class="fa fa-search" aria-hidden="true"></i> 27 <i class="fa fa-search" aria-hidden="true"></i>
28 </button> 28 </button>
29 </div> 29 </div>
30 </div> 30 </div>
31 <table class="table table-default table-hover table-sm table-abm table-striped mb-0"> 31 <table class="table table-default table-hover table-sm table-abm table-striped mb-0">
32 <thead> 32 <thead>
33 <tr> 33 <tr>
34 <th class="text-center">Código</th> 34 <th class="text-center">Código</th>
35 <th>Nombre</th> 35 <th>Nombre</th>
36 <th>Tipo</th> 36 <th>Tipo</th>
37 <th class="text-center"> 37 <th class="text-center">
38 <button 38 <button
39 class="btn btn-outline-debo boton-accion" 39 class="btn btn-outline-debo boton-accion"
40 title="Agregar" 40 title="Agregar"
41 ng-click="editar(0)" 41 ng-click="editar(0)"
42 ><i class="fa fa-plus"></i> 42 ><i class="fa fa-plus"></i>
43 </button> 43 </button>
44 </th> 44 </th>
45 </tr> 45 </tr>
46 </thead> 46 </thead>
47 <tbody> 47 <tbody>
48 <tr ng-repeat="vendedorCobrador in currentPageVendedoresCobradores"> 48 <tr ng-repeat="vendedorCobrador in currentPageVendedoresCobradores">
49 <td ng-bind="vendedorCobrador.CodVen" class="text-center"></td> 49 <td ng-bind="vendedorCobrador.CodVen" class="text-center"></td>
50 <td ng-bind="vendedorCobrador.NomVen"></td> 50 <td ng-bind="vendedorCobrador.NomVen"></td>
51 <td ng-bind="vendedorCobrador.ES_COBRADOR ? 'Cobrador' : 'Vendedor'"></td> 51 <td ng-bind="vendedorCobrador.ES_COBRADOR ? 'Cobrador' : 'Vendedor'"></td>
52 <td class="text-center"> 52 <td class="text-center">
53 <button 53 <button
54 class="btn btn-outline-dark boton-accion" 54 class="btn btn-outline-dark boton-accion"
55 title="Editar" 55 title="Editar"
56 ng-click="editar(vendedorCobrador.CodVen)" 56 ng-click="editar(vendedorCobrador.CodVen)"
57 > 57 >
58 <i class="fa fa-pencil"></i> 58 <i class="fa fa-pencil"></i>
59 </button> 59 </button>
60 <button 60 <button
61 class="btn btn-outline-dark boton-accion" 61 class="btn btn-outline-dark boton-accion"
62 title="Eliminar" 62 title="Eliminar"
63 ng-click="eliminar(vendedorCobrador.CodVen)"
63 > 64 >
64 <i class="fa fa-trash"></i> 65 <i class="fa fa-trash"></i>
65 </button> 66 </button>
66 </td> 67 </td>
67 </tr> 68 </tr>
68 </body> 69 </body>
69 </table> 70 </table>
70 </div> 71 </div>
71 </div> 72 </div>
72 <div class="row"> 73 <div class="row">
73 <nav ng-show="currentPageVendedoresCobradores.length > 0" class="mr-auto"> 74 <nav ng-show="currentPageVendedoresCobradores.length > 0" class="mr-auto">
74 <ul class="pagination pagination-sm mb-0"> 75 <ul class="pagination pagination-sm mb-0">
75 <li class="page-item" ng-class="{'disabled': currentPage == 1}"> 76 <li class="page-item" ng-class="{'disabled': currentPage == 1}">
76 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)"> 77 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)">
77 <span aria-hidden="true">&laquo;</span> 78 <span aria-hidden="true">&laquo;</span>
78 <span class="sr-only">Anterior</span> 79 <span class="sr-only">Anterior</span>
79 </a> 80 </a>
80 </li> 81 </li>
81 <li 82 <li
82 class="page-item" 83 class="page-item"
83 ng-repeat="pagina in paginas" 84 ng-repeat="pagina in paginas"
84 ng-class="{'active': pagina == currentPage}" 85 ng-class="{'active': pagina == currentPage}"
85 > 86 >
86 <a 87 <a
87 class="page-link" 88 class="page-link"
88 href="javascript:void()" 89 href="javascript:void()"
89 ng-click="selectPage(pagina)" 90 ng-click="selectPage(pagina)"
90 ng-bind="pagina" 91 ng-bind="pagina"
91 ></a> 92 ></a>
92 </li> 93 </li>
93 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}"> 94 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}">
94 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)"> 95 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)">
95 <span aria-hidden="true">&raquo;</span> 96 <span aria-hidden="true">&raquo;</span>
96 <span class="sr-only">Siguiente</span> 97 <span class="sr-only">Siguiente</span>
97 </a> 98 </a>
98 </li> 99 </li>
99 </ul> 100 </ul>
100 </nav> 101 </nav>
101 </div> 102 </div>
102 103