Commit 085458a11e3c3a10e85a880fa6459b05ee6031c1

Authored by Nicolás Guarnieri
Exists in master and in 2 other branches develop, lab

Merge branch 'master' into 'master'

Master

See merge request !12
src/js/controllerItem.js
1 angular.module('focaAbmVendedorCobrador') 1 angular.module('focaAbmVendedorCobrador')
2 .controller('focaAbmVendedorCobradorController', [ 2 .controller('focaAbmVendedorCobradorController', [
3 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService', 3 '$scope', 'focaAbmVendedorCobradorService', '$routeParams', 'focaBotoneraLateralService',
4 '$timeout', '$uibModal', '$location', 'focaModalService', 4 '$timeout', '$uibModal', '$location', 'focaModalService',
5 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService, 5 function($scope, focaAbmVendedorCobradorService, $routeParams, focaBotoneraLateralService,
6 $timeout, $uibModal, $location, focaModalService) { 6 $timeout, $uibModal, $location, focaModalService) {
7 7
8 $scope.now = new Date(); 8 $scope.now = new Date();
9 $scope.focused = 0; 9 $scope.focused = 0;
10 $scope.vendedorCobrador = { 10 $scope.vendedorCobrador = {
11 ES_COBRADOR: false, 11 ES_COBRADOR: false,
12 DNI: ' ', 12 DNI: ' ',
13 ClaVen: '', 13 ClaVen: '',
14 ComVen: '0.00', 14 ComVen: '0.00',
15 comisionCobrador: '0.00', 15 comisionCobrador: '0.00',
16 provincia: { 16 provincia: {
17 NOMBRE: '' 17 NOMBRE: ''
18 }, 18 },
19 localidad: { 19 localidad: {
20 NOMBRE: ' ' 20 NOMBRE: ' '
21 } 21 }
22 }; 22 };
23 $scope.options = [ 23 $scope.options = [
24 { 24 {
25 label: 'Vendedor', 25 label: 'Vendedor',
26 value: 1 26 value: 1
27 }, 27 },
28 { 28 {
29 label: 'Cobrador', 29 label: 'Cobrador',
30 value: 2 30 value: 2
31 }, 31 },
32 { 32 {
33 label: 'Vendedor y cobrador', 33 label: 'Vendedor y cobrador',
34 value: 3 34 value: 3
35 } 35 }
36 ]; 36 ];
37 //SETEO BOTONERA LATERAL 37 //SETEO BOTONERA LATERAL
38 $timeout(function() { 38 $timeout(function() {
39 focaBotoneraLateralService.showSalir(false); 39 focaBotoneraLateralService.showSalir(false);
40 focaBotoneraLateralService.showPausar(true); 40 focaBotoneraLateralService.showPausar(true);
41 focaBotoneraLateralService.showCancelar(false); 41 focaBotoneraLateralService.showCancelar(false);
42 focaBotoneraLateralService.showGuardar(true, $scope.guardar); 42 focaBotoneraLateralService.showGuardar(true, $scope.guardar);
43 focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar); 43 focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar);
44 }); 44 });
45 focaAbmVendedorCobradorService 45 focaAbmVendedorCobradorService
46 .getCodigoSiguiente() 46 .getCodigoSiguiente()
47 .then(function(res) { 47 .then(function(res) {
48 $scope.vendedorCobrador.CodVen = res.data.mayor; 48 $scope.vendedorCobrador.CodVen = res.data.mayor;
49 }); 49 });
50 focaAbmVendedorCobradorService 50 focaAbmVendedorCobradorService
51 .getVendedorCobradorById($routeParams.id) 51 .getVendedorCobradorById($routeParams.id)
52 .then(function(res) { 52 .then(function(res) {
53 if(res.data){ 53 if(res.data){
54 $scope.edicion = true; 54 $scope.edicion = true;
55 $scope.vendedorCobrador = res.data; 55 $scope.vendedorCobrador = res.data;
56 delete $scope.vendedorCobrador.FCVEN; 56 delete $scope.vendedorCobrador.FCVEN;
57 delete $scope.vendedorCobrador.FEC; 57 delete $scope.vendedorCobrador.FEC;
58 } 58 }
59 }); 59 });
60 60
61 $scope.guardar = function() { 61 $scope.guardar = function() {
62 if($scope.vendedorCobrador.ClaVen !== $scope.vendedorCobrador.ClaVen2) { 62 var vendedorCobrador = angular.copy($scope.vendedorCobrador);
63 if (vendedorCobrador.ClaVen !== vendedorCobrador.ClaVen2) {
63 focaModalService.alert('Las contraseñas deben coincidir'); 64 focaModalService.alert('Las contraseñas deben coincidir');
64 return; 65 return;
65 } 66 }
66 $scope.vendedorCobrador.PciVen = $scope.vendedorCobrador.provincia.ID; 67 vendedorCobrador.PciVen = vendedorCobrador.provincia.ID;
67 $scope.vendedorCobrador.LocVen = $scope.vendedorCobrador.localidad.ID; 68 vendedorCobrador.LocVen = vendedorCobrador.localidad.ID;
68 69
69 delete $scope.vendedorCobrador.provincia; 70 delete vendedorCobrador.provincia;
70 delete $scope.vendedorCobrador.localidad; 71 delete vendedorCobrador.localidad;
71 delete $scope.vendedorCobrador.ClaVen2; 72 delete vendedorCobrador.ClaVen2;
72 if($scope.vendedorCobrador.rol == 1) { 73 if (vendedorCobrador.rol == 1) {
73 delete $scope.vendedorCobrador.comisionCobrador; 74 delete vendedorCobrador.comisionCobrador;
74 }else if($scope.vendedorCobrador.rol == 2) { 75 } else if (vendedorCobrador.rol == 2) {
75 delete $scope.vendedorCobrador.ComVen; 76 delete vendedorCobrador.ComVen;
76 } 77 }
78 vendedorCobrador.metodo = ($routeParams.id === '0') ? 'crear' : 'actualizar';
77 79
78 focaAbmVendedorCobradorService 80 focaAbmVendedorCobradorService
79 .guardarVendedorCobrador($scope.vendedorCobrador) 81 .guardarVendedorCobrador(vendedorCobrador)
80 .then(function() { 82 .then(function() {
81 $location.path('/vendedor-cobrador'); 83 $location.path('/vendedor-cobrador');
84 })
85 .catch(function(err) {
86 if (err.status === 409) {
87 focaModalService.alert(err.data);
88 }
82 }); 89 });
83 }; 90 };
84 91
85 $scope.seleccionarProvincia = function(key) { 92 $scope.seleccionarProvincia = function(key) {
86 if(key === 13) { 93 if(key === 13) {
87 var parametrosModal = { 94 var parametrosModal = {
88 query: '/provincia', 95 query: '/provincia',
89 columnas: [ 96 columnas: [
90 { 97 {
91 propiedad: 'ID', 98 propiedad: 'ID',
92 nombre: 'Codigo', 99 nombre: 'Codigo',
93 filtro: { 100 filtro: {
94 nombre: 'rellenarDigitos', 101 nombre: 'rellenarDigitos',
95 parametro: 3} 102 parametro: 3}
96 }, 103 },
97 { 104 {
98 propiedad: 'NOMBRE', 105 propiedad: 'NOMBRE',
99 nombre: 'Nombre' 106 nombre: 'Nombre'
100 } 107 }
101 ], 108 ],
102 titulo:'Búsqueda de provincias', 109 titulo:'Búsqueda de provincias',
103 size: 'md' 110 size: 'md'
104 }; 111 };
105 focaModalService.modal(parametrosModal).then(function(provincia) { 112 focaModalService.modal(parametrosModal).then(function(provincia) {
106 $scope.vendedorCobrador.provincia = provincia; 113 $scope.vendedorCobrador.provincia = provincia;
107 $timeout(function() { 114 $timeout(function() {
108 $scope.focused = 5; 115 $scope.focused = 5;
109 }); 116 });
110 }, function() { 117 }, function() {
111 //TODO: función llamada cuando cancela el modal 118 //TODO: función llamada cuando cancela el modal
112 }); 119 });
113 } 120 }
114 }; 121 };
115 $scope.seleccionarLocalidad = function(key) { 122 $scope.seleccionarLocalidad = function(key) {
116 if(!$scope.vendedorCobrador.provincia.ID) { 123 if(!$scope.vendedorCobrador.provincia.ID) {
117 focaModalService.alert('Seleccione una provincia'); 124 focaModalService.alert('Seleccione una provincia');
118 return; 125 return;
119 } 126 }
120 if(key === 13) { 127 if(key === 13) {
121 var parametrosModal = { 128 var parametrosModal = {
122 query: '/localidad/' + $scope.vendedorCobrador.provincia.ID, 129 query: '/localidad/' + $scope.vendedorCobrador.provincia.ID,
123 columnas: [ 130 columnas: [
124 { 131 {
125 propiedad: 'ID', 132 propiedad: 'ID',
126 nombre: 'Código', 133 nombre: 'Código',
127 filtro: { 134 filtro: {
128 nombre: 'rellenarDigitos', 135 nombre: 'rellenarDigitos',
129 parametro: 3 136 parametro: 3
130 } 137 }
131 }, 138 },
132 { 139 {
133 propiedad: 'NOMBRE', 140 propiedad: 'NOMBRE',
134 nombre: 'Nombre' 141 nombre: 'Nombre'
135 } 142 }
136 ], 143 ],
137 titulo:'Búsqueda de localidades', 144 titulo:'Búsqueda de localidades',
138 size: 'md' 145 size: 'md'
139 }; 146 };
140 focaModalService.modal(parametrosModal).then(function(localidad) { 147 focaModalService.modal(parametrosModal).then(function(localidad) {
141 $scope.vendedorCobrador.localidad = localidad; 148 $scope.vendedorCobrador.localidad = localidad;
142 $timeout(function() { 149 $timeout(function() {
143 $scope.focused = 6; 150 $scope.focused = 6;
144 }); 151 });
145 }, function() { 152 }, function() {
146 //TODO: función llamada cuando cancela el modal 153 //TODO: función llamada cuando cancela el modal
147 }); 154 });
148 } 155 }
149 }; 156 };
150 157
151 $scope.cancelar = function() { 158 $scope.cancelar = function() {
152 $location.path('/vendedor-cobrador'); 159 $location.path('/vendedor-cobrador');
153 }; 160 };
154 161
155 $scope.next = function(key) { 162 $scope.next = function(key) {
156 if(key === 13) $scope.focused++; 163 if(key === 13) $scope.focused++;
157 }; 164 };
158 } 165 }
159 ]); 166 ]);
160 167
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-keypress="search($event.keyCode)" 17 ng-keypress="search($event.keyCode)"
18 ng-model="filters" 18 ng-model="filters"
19 foca-focus="true" 19 foca-focus="true"
20 /> 20 />
21 <div class="input-group-append"> 21 <div class="input-group-append">
22 <button 22 <button
23 ladda="searchLoading" 23 ladda="searchLoading"
24 class="btn btn-outline-secondary" 24 class="btn btn-outline-secondary"
25 type="button" 25 type="button"
26 ng-click="search(13)" 26 ng-click="search(13)"
27 > 27 >
28 <i class="fa fa-search" aria-hidden="true"></i> 28 <i class="fa fa-search" aria-hidden="true"></i>
29 </button> 29 </button>
30 </div> 30 </div>
31 </div> 31 </div>
32 <table class="table table-default table-hover table-sm table-abm table-striped mb-0"> 32 <table class="table table-default table-hover table-sm table-abm table-striped mb-0">
33 <thead> 33 <thead>
34 <tr> 34 <tr>
35 <th class="text-center">Código</th> 35 <th class="text-center">Código</th>
36 <th>Nombre</th> 36 <th>Nombre</th>
37 <th>Tipo</th> 37 <th>Tipo</th>
38 <th class="text-center"> 38 <th class="text-center">
39 <button 39 <button
40 class="btn btn-outline-debo boton-accion" 40 class="btn btn-outline-debo boton-accion"
41 title="Agregar" 41 title="Agregar"
42 ng-click="editar(0)" 42 ng-click="editar(0)"
43 ><i class="fa fa-plus"></i> 43 ><i class="fa fa-plus"></i>
44 </button> 44 </button>
45 </th> 45 </th>
46 </tr> 46 </tr>
47 </thead> 47 </thead>
48 <tbody> 48 <tbody>
49 <tr ng-repeat="vendedorCobrador in currentPageVendedoresCobradores"> 49 <tr ng-repeat="vendedorCobrador in currentPageVendedoresCobradores">
50 <td ng-bind="vendedorCobrador.CodVen" class="text-center"></td> 50 <td ng-bind="vendedorCobrador.CodVen" class="text-center"></td>
51 <td ng-bind="vendedorCobrador.NomVen"></td> 51 <td ng-bind="vendedorCobrador.NomVen"></td>
52 <td ng-bind="vendedorCobrador.ES_COBRADOR ? 'Cobrador' : 'Vendedor'"></td> 52 <td ng-if="vendedorCobrador.rol == 1">Vendedor</td>
53 <td ng-if="vendedorCobrador.rol == 2">Cobrador</td>
54 <td ng-if="vendedorCobrador.rol == 3">Vendedor / Cobrador</td>
55 <td ng-if="!vendedorCobrador.rol"></td>
53 <td class="text-center"> 56 <td class="text-center">
54 <button 57 <button
55 class="btn btn-outline-dark boton-accion" 58 class="btn btn-outline-dark boton-accion"
56 title="Editar" 59 title="Editar"
57 ng-click="editar(vendedorCobrador.CodVen)" 60 ng-click="editar(vendedorCobrador.CodVen)"
58 > 61 >
59 <i class="fa fa-pencil"></i> 62 <i class="fa fa-pencil"></i>
60 </button> 63 </button>
61 <button 64 <button
62 class="btn btn-outline-dark boton-accion" 65 class="btn btn-outline-dark boton-accion"
63 title="Eliminar" 66 title="Eliminar"
64 ng-click="eliminar(vendedorCobrador)" 67 ng-click="eliminar(vendedorCobrador)"
65 > 68 >
66 <i class="fa fa-trash"></i> 69 <i class="fa fa-trash"></i>
67 </button> 70 </button>
68 </td> 71 </td>
69 </tr> 72 </tr>
70 </body> 73 </body>
71 </table> 74 </table>
72 </div> 75 </div>
73 </div> 76 </div>
74 <div class="row"> 77 <div class="row">
75 <nav ng-show="currentPageVendedoresCobradores.length > 0" class="mr-auto"> 78 <nav ng-show="currentPageVendedoresCobradores.length > 0" class="mr-auto">
76 <ul class="pagination pagination-sm mb-0"> 79 <ul class="pagination pagination-sm mb-0">
77 <li class="page-item" ng-class="{'disabled': currentPage == 1}"> 80 <li class="page-item" ng-class="{'disabled': currentPage == 1}">
78 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)"> 81 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage - 1)">
79 <span aria-hidden="true">&laquo;</span> 82 <span aria-hidden="true">&laquo;</span>
80 <span class="sr-only">Anterior</span> 83 <span class="sr-only">Anterior</span>
81 </a> 84 </a>
82 </li> 85 </li>
83 <li 86 <li
84 class="page-item" 87 class="page-item"
85 ng-repeat="pagina in paginas" 88 ng-repeat="pagina in paginas"
86 ng-class="{'active': pagina == currentPage}" 89 ng-class="{'active': pagina == currentPage}"
87 > 90 >
88 <a 91 <a
89 class="page-link" 92 class="page-link"
90 href="javascript:void()" 93 href="javascript:void()"
91 ng-click="selectPage(pagina)" 94 ng-click="selectPage(pagina)"
92 ng-bind="pagina" 95 ng-bind="pagina"
93 ></a> 96 ></a>
94 </li> 97 </li>
95 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}"> 98 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}">
96 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)"> 99 <a class="page-link" href="javascript:void()" ng-click="selectPage(currentPage + 1)">
97 <span aria-hidden="true">&raquo;</span> 100 <span aria-hidden="true">&raquo;</span>
98 <span class="sr-only">Siguiente</span> 101 <span class="sr-only">Siguiente</span>
99 </a> 102 </a>
100 </li> 103 </li>
101 </ul> 104 </ul>
102 </nav> 105 </nav>
103 </div> 106 </div>
104 107