Commit 13bfe86ad8075b034e311e28d4b9ba32fbffca8e

Authored by Jose Pinto
1 parent 13fb801930
Exists in master

Confirmar antes de eliminar

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 'focaBotoneraLateralService', 'focaModalService',
5 function($scope, focaAbmVendedorCobradorService, $location, $filter, 5 function($scope, focaAbmVendedorCobradorService, $location, $filter,
6 $uibModal, focaBotoneraLateralService) { 6 focaBotoneraLateralService, focaModalService) {
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 actualizarTabla(); 21 actualizarTabla();
22 22
23 $scope.editar = function(id) { 23 $scope.editar = function(id) {
24 $location.path('/vendedor-cobrador/' + id); 24 $location.path('/vendedor-cobrador/' + id);
25 }; 25 };
26 26
27 $scope.eliminar = function(id) { 27 $scope.eliminar = function(vendedorCobrador) {
28 focaAbmVendedorCobradorService 28 var tipo = vendedorCobrador.ES_COBRADOR ? 'cobrador' : 'vendedor';
29 .eliminarVendedorCobrador(id) 29 focaModalService.confirm('¿Está seguro que desea borrar el ' + tipo +
30 .then(function() { 30 ' ' + vendedorCobrador.NomVen + '?')
31 actualizarTabla(); 31 .then(function(data) {
32 }); 32 if(data) {
33 focaAbmVendedorCobradorService
34 .eliminarVendedorCobrador(vendedorCobrador.CodVen)
35 .then(function() {
36 actualizarTabla();
37 });
38 }
39 });
33 }; 40 };
34 41
35 $scope.selectPage = function(page) { 42 $scope.selectPage = function(page) {
36 var start = (page - 1) * $scope.numPerPage; 43 var start = (page - 1) * $scope.numPerPage;
37 var end = start + $scope.numPerPage; 44 var end = start + $scope.numPerPage;
38 $scope.paginas = []; 45 $scope.paginas = [];
39 $scope.paginas = calcularPages(page); 46 $scope.paginas = calcularPages(page);
40 $scope.currentPageVendedoresCobradores = 47 $scope.currentPageVendedoresCobradores =
41 $scope.filteredVendedoresCobradores.slice(start, end); 48 $scope.filteredVendedoresCobradores.slice(start, end);
42 $scope.currentPage = page; 49 $scope.currentPage = page;
43 }; 50 };
44 51
45 $scope.resetPage = function() { 52 $scope.resetPage = function() {
46 $scope.currentPage = 1; 53 $scope.currentPage = 1;
47 $scope.selectPage(1); 54 $scope.selectPage(1);
48 }; 55 };
49 56
50 $scope.search = function() { 57 $scope.search = function() {
51 $scope.filteredVendedoresCobradores = $filter('filter')( 58 $scope.filteredVendedoresCobradores = $filter('filter')(
52 $scope.vendedoresCobradores, {$: $scope.filters} 59 $scope.vendedoresCobradores, {$: $scope.filters}
53 ); 60 );
54 61
55 $scope.lastPage = Math.ceil( 62 $scope.lastPage = Math.ceil(
56 $scope.filteredVendedoresCobradores.length / $scope.numPerPage 63 $scope.filteredVendedoresCobradores.length / $scope.numPerPage
57 ); 64 );
58 65
59 $scope.resetPage(); 66 $scope.resetPage();
60 }; 67 };
61 68
62 function calcularPages(paginaActual) { 69 function calcularPages(paginaActual) {
63 var paginas = []; 70 var paginas = [];
64 paginas.push(paginaActual); 71 paginas.push(paginaActual);
65 72
66 if(paginaActual - 1 > 1) { 73 if(paginaActual - 1 > 1) {
67 74
68 paginas.unshift(paginaActual - 1); 75 paginas.unshift(paginaActual - 1);
69 if(paginaActual - 2 > 1) { 76 if(paginaActual - 2 > 1) {
70 paginas.unshift(paginaActual - 2); 77 paginas.unshift(paginaActual - 2);
71 } 78 }
72 } 79 }
73 80
74 if(paginaActual + 1 < $scope.lastPage) { 81 if(paginaActual + 1 < $scope.lastPage) {
75 paginas.push(paginaActual + 1); 82 paginas.push(paginaActual + 1);
76 if(paginaActual + 2 < $scope.lastPage) { 83 if(paginaActual + 2 < $scope.lastPage) {
77 paginas.push(paginaActual + 2); 84 paginas.push(paginaActual + 2);
78 } 85 }
79 } 86 }
80 87
81 if(paginaActual !== 1) { 88 if(paginaActual !== 1) {
82 paginas.unshift(1); 89 paginas.unshift(1);
83 } 90 }
84 91
85 if(paginaActual !== $scope.lastPage) { 92 if(paginaActual !== $scope.lastPage) {
86 paginas.push($scope.lastPage); 93 paginas.push($scope.lastPage);
87 } 94 }
88 95
89 return paginas; 96 return paginas;
90 } 97 }
91 98
92 function primera() { 99 function primera() {
93 $scope.selectedClientes = 0; 100 $scope.selectedClientes = 0;
94 } 101 }
95 102
96 function anterior() { 103 function anterior() {
97 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) { 104 if ($scope.selectedClientes === 0 && $scope.currentPage > 1) {
98 retrocederPagina(); 105 retrocederPagina();
99 } else { 106 } else {
100 $scope.selectedClientes--; 107 $scope.selectedClientes--;
101 } 108 }
102 } 109 }
103 110
104 function siguiente() { 111 function siguiente() {
105 if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) { 112 if ($scope.selectedClientes < $scope.currentPageVendedoresCobradores.length - 1 ) {
106 $scope.selectedClientes++; 113 $scope.selectedClientes++;
107 } else { 114 } else {
108 avanzarPagina(); 115 avanzarPagina();
109 } 116 }
110 } 117 }
111 118
112 function retrocederPagina() { 119 function retrocederPagina() {
113 if ($scope.currentPage > 1) { 120 if ($scope.currentPage > 1) {
114 $scope.selectPage($scope.currentPage - 1); 121 $scope.selectPage($scope.currentPage - 1);
115 $scope.selectedClientes = $scope.numPerPage - 1; 122 $scope.selectedClientes = $scope.numPerPage - 1;
116 } 123 }
117 } 124 }
118 125
119 function avanzarPagina() { 126 function avanzarPagina() {
120 if ($scope.currentPage < $scope.lastPage) { 127 if ($scope.currentPage < $scope.lastPage) {
121 $scope.selectPage($scope.currentPage + 1); 128 $scope.selectPage($scope.currentPage + 1);
122 $scope.selectedClientes = 0; 129 $scope.selectedClientes = 0;
123 } 130 }
124 } 131 }
125 132
126 function actualizarTabla() { 133 function actualizarTabla() {
127 focaAbmVendedorCobradorService.getVendedoresCobradores().then(function(res) { 134 focaAbmVendedorCobradorService.getVendedoresCobradores().then(function(res) {
128 $scope.vendedoresCobradores = res.data; 135 $scope.vendedoresCobradores = res.data;
129 $scope.search(); 136 $scope.search();
130 }); 137 });
131 } 138 }
132 } 139 }
133 ]) 140 ])
134 .controller('focaAbmVendedorCobradorController', [ 141 .controller('focaAbmVendedorCobradorController', [
135 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService', 142 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService',
136 '$timeout', '$uibModal', '$location', 'focaModalService', 143 '$timeout', '$uibModal', '$location', 'focaModalService',
137 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService, 144 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService,
138 $timeout, $uibModal, $location, focaModalService) { 145 $timeout, $uibModal, $location, focaModalService) {
139 146
140 $scope.now = new Date(); 147 $scope.now = new Date();
141 $scope.focused = 0; 148 $scope.focused = 0;
142 $scope.vendedorCobrador = { 149 $scope.vendedorCobrador = {
143 CodVen: 0, 150 CodVen: 0,
144 ES_COBRADOR: false, 151 ES_COBRADOR: false,
145 DNI: ' ', 152 DNI: ' ',
146 ClaVen: '', 153 ClaVen: '',
147 ComVen: '0.00', 154 ComVen: '0.00',
148 provincia: { 155 provincia: {
149 NOMBRE: '' 156 NOMBRE: ''
150 }, 157 },
151 localidad: { 158 localidad: {
152 NOMBRE: ' ' 159 NOMBRE: ' '
153 } 160 }
154 }; 161 };
155 $scope.options = [ 162 $scope.options = [
156 { 163 {
157 label: 'Vendedor', 164 label: 'Vendedor',
158 value: null 165 value: null
159 }, 166 },
160 { 167 {
161 label: 'Cobrador', 168 label: 'Cobrador',
162 value: true 169 value: true
163 } 170 }
164 ]; 171 ];
165 //SETEO BOTONERA LATERAL 172 //SETEO BOTONERA LATERAL
166 $timeout(function() { 173 $timeout(function() {
167 focaBotoneraLateralService.showSalir(false); 174 focaBotoneraLateralService.showSalir(false);
168 focaBotoneraLateralService.showPausar(true); 175 focaBotoneraLateralService.showPausar(true);
169 focaBotoneraLateralService.showCancelar(false); 176 focaBotoneraLateralService.showCancelar(false);
170 focaBotoneraLateralService.showGuardar(true, $scope.guardar); 177 focaBotoneraLateralService.showGuardar(true, $scope.guardar);
171 focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar); 178 focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar);
172 }); 179 });
173 180
174 focaAbmVendedorCobradorService 181 focaAbmVendedorCobradorService
175 .getVendedorCobradorById($routeParams.id) 182 .getVendedorCobradorById($routeParams.id)
176 .then(function(res) { 183 .then(function(res) {
177 if(res.data){ 184 if(res.data){
178 $scope.vendedorCobrador = res.data; 185 $scope.vendedorCobrador = res.data;
179 delete $scope.vendedorCobrador.FCVEN; 186 delete $scope.vendedorCobrador.FCVEN;
180 delete $scope.vendedorCobrador.FEC; 187 delete $scope.vendedorCobrador.FEC;
181 } 188 }
182 }); 189 });
183 190
184 $scope.guardar = function() { 191 $scope.guardar = function() {
185 if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) { 192 if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) {
186 focaModalService.alert('Las contraseñas deben coincidir'); 193 focaModalService.alert('Las contraseñas deben coincidir');
187 return; 194 return;
188 } 195 }
189 $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID; 196 $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID;
190 $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID; 197 $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID;
191 198
192 delete $scope.vendedorCobrador.provincia; 199 delete $scope.vendedorCobrador.provincia;
193 delete $scope.vendedorCobrador.localidad; 200 delete $scope.vendedorCobrador.localidad;
194 delete $scope.vendedorCobrador.ClaVen2; 201 delete $scope.vendedorCobrador.ClaVen2;
195 202
196 focaAbmVendedorCobradorService 203 focaAbmVendedorCobradorService
197 .guardarVendedorCobrador($scope.vendedorCobrador) 204 .guardarVendedorCobrador($scope.vendedorCobrador)
198 .then(function() { 205 .then(function() {
199 $location.path('/vendedor-cobrador'); 206 $location.path('/vendedor-cobrador');
200 }); 207 });
201 }; 208 };
202 209
203 $scope.seleccionarProvincia = function(key) { 210 $scope.seleccionarProvincia = function(key) {
204 if(key === 13) { 211 if(key === 13) {
205 var modalInstance = $uibModal.open( 212 var modalInstance = $uibModal.open(
206 { 213 {
207 ariaLabelledBy: 'Búsqueda de provincias', 214 ariaLabelledBy: 'Búsqueda de provincias',
208 templateUrl: 'modal-provincias.html', 215 templateUrl: 'modal-provincias.html',
209 controller: 'focaModalProvinciaController', 216 controller: 'focaModalProvinciaController',
210 size: 'md', 217 size: 'md',
211 resolve: { 218 resolve: {
212 filters: function() { 219 filters: function() {
213 return $scope.vendedorCobrador.provincia.NOMBRE; 220 return $scope.vendedorCobrador.provincia.NOMBRE;
214 } 221 }
215 } 222 }
216 } 223 }
217 ); 224 );
218 modalInstance.result.then(function(provincia) { 225 modalInstance.result.then(function(provincia) {
219 $scope.vendedorCobrador.provincia = provincia; 226 $scope.vendedorCobrador.provincia = provincia;
220 $timeout(function() { 227 $timeout(function() {
221 $scope.focused = 5; 228 $scope.focused = 5;
222 }); 229 });
223 }, function() { 230 }, function() {
224 //TODO: función llamada cuando cancela el modal 231 //TODO: función llamada cuando cancela el modal
225 }); 232 });
226 } 233 }
227 }; 234 };
228 $scope.seleccionarLocalidad = function(key) { 235 $scope.seleccionarLocalidad = function(key) {
229 if(!$scope.vendedorCobrador.provincia.ID) { 236 if(!$scope.vendedorCobrador.provincia.ID) {
230 focaModalService.alert('Seleccione una provincia'); 237 focaModalService.alert('Seleccione una provincia');
231 return; 238 return;
232 } 239 }
233 if(key === 13) { 240 if(key === 13) {
234 var modalInstance = $uibModal.open( 241 var modalInstance = $uibModal.open(
235 { 242 {
236 ariaLabelledBy: 'Búsqueda de localidades', 243 ariaLabelledBy: 'Búsqueda de localidades',
237 templateUrl: 'modal-localidades.html', 244 templateUrl: 'modal-localidades.html',
238 controller: 'focaModalLocalidadController', 245 controller: 'focaModalLocalidadController',
239 size: 'md', 246 size: 'md',
240 resolve: { 247 resolve: {
241 filters: { 248 filters: {
242 idProvincia: $scope.vendedorCobrador.provincia.ID, 249 idProvincia: $scope.vendedorCobrador.provincia.ID,
243 busqueda: $scope.vendedorCobrador.localidad.NOMBRE 250 busqueda: $scope.vendedorCobrador.localidad.NOMBRE
244 } 251 }
245 } 252 }
246 } 253 }
247 ); 254 );
248 modalInstance.result.then(function(localidad) { 255 modalInstance.result.then(function(localidad) {
249 $scope.vendedorCobrador.localidad = localidad; 256 $scope.vendedorCobrador.localidad = localidad;
250 $timeout(function() { 257 $timeout(function() {
251 $scope.focused = 6; 258 $scope.focused = 6;
252 }); 259 });
253 }, function() { 260 }, function() {
254 //TODO: función llamada cuando cancela el modal 261 //TODO: función llamada cuando cancela el modal
255 }); 262 });
256 } 263 }
257 }; 264 };
258 265
259 $scope.cancelar = function() { 266 $scope.cancelar = function() {
260 $location.path('/vendedor-cobrador'); 267 $location.path('/vendedor-cobrador');
261 }; 268 };
262 269
263 $scope.next = function(key) { 270 $scope.next = function(key) {
264 if(key === 13) $scope.focused++; 271 if(key === 13) $scope.focused++;
265 }; 272 };
266 } 273 }
267 ]); 274 ]);
268 275
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 ng-click="eliminar(vendedorCobrador)"
64 > 64 >
65 <i class="fa fa-trash"></i> 65 <i class="fa fa-trash"></i>
66 </button> 66 </button>
67 </td> 67 </td>
68 </tr> 68 </tr>
69 </body> 69 </body>
70 </table> 70 </table>
71 </div> 71 </div>
72 </div> 72 </div>
73 <div class="row"> 73 <div class="row">
74 <nav ng-show="currentPageVendedoresCobradores.length > 0" class="mr-auto"> 74 <nav ng-show="currentPageVendedoresCobradores.length > 0" class="mr-auto">
75 <ul class="pagination pagination-sm mb-0"> 75 <ul class="pagination pagination-sm mb-0">
76 <li class="page-item" ng-class="{'disabled': currentPage == 1}"> 76 <li class="page-item" ng-class="{'disabled': currentPage == 1}">
77 <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)">
78 <span aria-hidden="true">&laquo;</span> 78 <span aria-hidden="true">&laquo;</span>
79 <span class="sr-only">Anterior</span> 79 <span class="sr-only">Anterior</span>
80 </a> 80 </a>
81 </li> 81 </li>
82 <li 82 <li
83 class="page-item" 83 class="page-item"
84 ng-repeat="pagina in paginas" 84 ng-repeat="pagina in paginas"
85 ng-class="{'active': pagina == currentPage}" 85 ng-class="{'active': pagina == currentPage}"
86 > 86 >
87 <a 87 <a
88 class="page-link" 88 class="page-link"
89 href="javascript:void()" 89 href="javascript:void()"
90 ng-click="selectPage(pagina)" 90 ng-click="selectPage(pagina)"
91 ng-bind="pagina" 91 ng-bind="pagina"
92 ></a> 92 ></a>
93 </li> 93 </li>
94 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}"> 94 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}">
95 <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)">
96 <span aria-hidden="true">&raquo;</span> 96 <span aria-hidden="true">&raquo;</span>
97 <span class="sr-only">Siguiente</span> 97 <span class="sr-only">Siguiente</span>
98 </a> 98 </a>
99 </li> 99 </li>
100 </ul> 100 </ul>
101 </nav> 101 </nav>
102 </div> 102 </div>
103 103