Commit df64c94e16c26d3f45293c89eb97798f9f28ddef

Authored by Eric Fernandez
Exists in master and in 1 other branch develop

Merge branch 'master' into 'develop'

Master

See merge request !30
src/js/controller.js
1 angular.module('focaAdminSeguimiento').controller('focaAdminSeguimientoController', [ 1 angular.module('focaAdminSeguimiento').controller('focaAdminSeguimientoController', [
2 '$scope', '$timeout', 'focaAdminSeguimientoService', '$uibModal', 2 '$scope', '$timeout', 'focaAdminSeguimientoService', '$uibModal',
3 'focaBotoneraLateralService','$location', '$routeParams', 3 'focaBotoneraLateralService', '$location', '$routeParams', 'focaModalService',
4 function($scope, $timeout, focaAdminSeguimientoService, $uibModal, 4 function ($scope, $timeout, focaAdminSeguimientoService, $uibModal,
5 focaBotoneraLateralService, $location, $routeParams) { 5 focaBotoneraLateralService, $location, $routeParams, focaModalService) {
6 $scope.actividad = ''; 6 $scope.actividad = '';
7 $scope.titulo = ''; 7 $scope.titulo = '';
8 var cabecera = ''; 8 var cabecera = '';
9 var plural = ''; 9 var plural = '';
10 10
11 $scope.now = new Date(); 11 $scope.now = new Date();
12 $scope.dateOptions = { 12 $scope.dateOptions = {
13 maxDate: new Date() 13 maxDate: new Date()
14 }; 14 };
15 15
16 switch ($routeParams.parametro) { 16 switch ($routeParams.parametro) {
17 case 'nota-pedido': 17 case 'nota-pedido':
18 $scope.actividad = 'Nota de pedido'; 18 $scope.actividad = 'Nota de pedido';
19 $scope.titulo = 'Seguimiento de nota de pedido'; 19 $scope.titulo = 'Seguimiento de nota de pedido';
20 cabecera = 'Vendedor:'; 20 cabecera = 'Vendedor:';
21 plural = 'Vendedores'; 21 plural = 'Vendedores';
22 break; 22 break;
23 case 'hoja-ruta': 23 case 'hoja-ruta':
24 $scope.actividad = 'Entrega de producto'; 24 $scope.actividad = 'Entrega de producto';
25 $scope.titulo = 'Seguimiento de hoja de ruta'; 25 $scope.titulo = 'Seguimiento de hoja de ruta';
26 cabecera = 'Vehiculo:'; 26 cabecera = 'Vehiculo:';
27 plural = 'Vehiculos'; 27 plural = 'Vehiculos';
28 break; 28 break;
29 case 'cobranza': 29 case 'cobranza':
30 $scope.actividad = 'Cobranza'; 30 $scope.actividad = 'Cobranza';
31 $scope.titulo = 'Seguimiento de cobranza'; 31 $scope.titulo = 'Seguimiento de cobranza';
32 cabecera = 'Cobrador:'; 32 cabecera = 'Cobrador:';
33 plural = 'Cobradores'; 33 plural = 'Cobradores';
34 break; 34 break;
35 } 35 }
36 36
37 $scope.idUsuario = 0; 37 $scope.idUsuario = 0;
38 $scope.marcadores = []; 38 $scope.marcadores = [];
39 getSeguimiento(); 39 getSeguimiento();
40 40
41 //SETEO BOTONERA LATERAL 41 //SETEO BOTONERA LATERAL
42 focaBotoneraLateralService.showSalir(true); 42 focaBotoneraLateralService.showSalir(true);
43 focaBotoneraLateralService.showPausar(false); 43 focaBotoneraLateralService.showPausar(false);
44 focaBotoneraLateralService.showGuardar(false); 44 focaBotoneraLateralService.showGuardar(false);
45 45
46 $scope.general = function() { 46 $scope.general = function () {
47 $scope.idUsuario = 0; 47 $scope.idUsuario = 0;
48 getSeguimiento(); 48 getSeguimiento();
49 }; 49 };
50 50
51 $scope.individual = function() { 51 $scope.individual = function () {
52 $scope.idUsuario = -1; 52 $scope.idUsuario = -1;
53 }; 53 };
54 54
55 $scope.salir = function() { 55 $scope.salir = function () {
56 $location.path('/'); 56 $location.path('/');
57 }; 57 };
58 58
59 $scope.search = function(key) { 59 $scope.search = function (key) {
60 if (key === 13) { 60 if (key === 13) {
61 $scope.idUsuario = $scope.idUsuarioInput; 61 $scope.idUsuario = $scope.idUsuarioInput;
62 62
63 getSeguimiento(); 63 getSeguimiento();
64 if ($scope.actividad === 'Entrega de producto' && $scope.idUsuario !== 0) { 64 if ($scope.actividad === 'Entrega de producto' && $scope.idUsuario !== 0) {
65 focaAdminSeguimientoService.obtenerRemitosVehiculo($scope.idUsuario) 65 focaAdminSeguimientoService.obtenerRemitosVehiculo($scope.idUsuario)
66 .then(function(res) { 66 .then(function (res) {
67 var remitos = []; 67 var remitos = [];
68 for (var i = 0; i < res.data.length; i++) { 68 for (var i = 0; i < res.data.length; i++) {
69 remitos = remitos.concat(res.data[i].remitos); 69 remitos = remitos.concat(res.data[i].remitos);
70 } 70 }
71 $scope.remitosVehiculo = remitos; 71 $scope.remitosVehiculo = remitos;
72 }); 72 });
73 } 73 }
74 } 74 }
75 }; 75 };
76 76
77 $scope.fecha = function() { 77 $scope.fecha = function () {
78 getSeguimiento(); 78 getSeguimiento();
79 }; 79 };
80 80
81 $scope.showMarcadores = function() { 81 $scope.showMarcadores = function () {
82 var texto = ''; 82 var texto = '';
83 83
84 if ($scope.actividad === 'Nota de pedido') { 84 if ($scope.actividad === 'Nota de pedido') {
85 texto = 'Marcadores de notas de pedido'; 85 texto = 'Marcadores de notas de pedido';
86 } 86 }
87 87
88 if ($scope.actividad === 'Entrega de producto') { 88 if ($scope.actividad === 'Entrega de producto') {
89 texto = 'Marcadores de entregas'; 89 texto = 'Marcadores de entregas';
90 } 90 }
91 91
92 if ($scope.actividad === 'Cobranza') { 92 if ($scope.actividad === 'Cobranza') {
93 texto = 'Marcadores de cobranzas'; 93 texto = 'Marcadores de cobranzas';
94 } 94 }
95 95
96 96
97 var modalInstance = $uibModal.open( 97 var modalInstance = $uibModal.open(
98 { 98 {
99 ariaLabelledBy: texto, 99 ariaLabelledBy: texto,
100 templateUrl: 'foca-modal-marcadores.html', 100 templateUrl: 'foca-modal-marcadores.html',
101 controller: 'focaModalMarcadoresController', 101 controller: 'focaModalMarcadoresController',
102 size: 'lg', 102 size: 'lg',
103 resolve: { 103 resolve: {
104 parametros: function() { 104 parametros: function () {
105 var parametros = { 105 var parametros = {
106 marcadores: $scope.marcadores, 106 marcadores: $scope.marcadores,
107 actividad: $scope.actividad 107 actividad: $scope.actividad
108 }; 108 };
109 109
110 return parametros; 110 return parametros;
111 } 111 }
112 } 112 }
113 } 113 }
114 ); 114 );
115 115
116 modalInstance.result.then( 116 modalInstance.result.then(
117 function(localizacion) { 117 function (localizacion) {
118 $scope.$broadcast('moveMap', { 118 $scope.$broadcast('moveMap', {
119 latitud: localizacion.latitud, 119 latitud: localizacion.latitud,
120 longitud: localizacion.longitud, 120 longitud: localizacion.longitud,
121 indice: localizacion.indice 121 indice: localizacion.indice
122 }); 122 });
123 }, function() { 123 }, function () {
124 // funcion ejecutada cuando se cancela el modal 124 // funcion ejecutada cuando se cancela el modal
125 } 125 }
126 ); 126 );
127 }; 127 };
128 128
129 function getSeguimiento() { 129 function getSeguimiento() {
130 var now = $scope.now; 130 var now = $scope.now;
131 var hasta = angular.copy(now); 131 var hasta = angular.copy(now);
132 hasta.setDate(hasta.getDate() + 1); 132 hasta.setDate(hasta.getDate() + 1);
133 133
134 var datos = { 134 var datos = {
135 actividad: $scope.actividad, 135 actividad: $scope.actividad,
136 idUsuario: $scope.idUsuario, 136 idUsuario: $scope.idUsuario,
137 fechaDesde: now, 137 fechaDesde: now,
138 fechaHasta: hasta, 138 fechaHasta: hasta,
139 entregado: $scope.filtroEstado ? true : ($scope.filtroEstado !== undefined ? 139 entregado: $scope.filtroEstado ? true : ($scope.filtroEstado !== undefined ?
140 false : undefined) 140 false : undefined)
141 }; 141 };
142 142
143 $scope.datosBuscados = { 143 $scope.datosBuscados = {
144 actividad: $scope.actividad, 144 actividad: $scope.actividad,
145 individual: $scope.idUsuario !== 0 ? true : false 145 individual: $scope.idUsuario !== 0 ? true : false
146 }; 146 };
147 147
148 focaAdminSeguimientoService 148 focaAdminSeguimientoService
149 .obtenerActividad(datos) 149 .obtenerActividad(datos)
150 .then(function(datos) { 150 .then(function (datos) {
151 $scope.marcadores = datos.data; 151 $scope.marcadores = datos.data;
152 $scope.$broadcast('cleanCabecera'); 152 $scope.$broadcast('cleanCabecera');
153 153
154 if ($scope.idUsuario !== 0) { 154 if ($scope.idUsuario !== 0) {
155 $scope.$broadcast('addCabecera', { 155 $scope.$broadcast('addCabecera', {
156 label: 'Individual', 156 label: 'Individual',
157 valor: '' 157 valor: ''
158 }); 158 });
159 159
160 var valor = ''; 160 var valor = '';
161 switch ($routeParams.parametro) { 161 switch ($routeParams.parametro) {
162 case 'nota-pedido': 162 case 'nota-pedido':
163 if (datos.data.length) { 163 if (datos.data.length) {
164 valor = datos.data[0].notaPedido.vendedor.NUM + ' - ' + 164 valor = datos.data[0].notaPedido.vendedor.NUM + ' - ' +
165 datos.data[0].notaPedido.vendedor.NOM.trim(); 165 datos.data[0].notaPedido.vendedor.NOM.trim();
166 } else { 166 } else {
167 valor = $scope.idUsuario; 167 valor = $scope.idUsuario;
168 } 168 }
169 break; 169 break;
170 case 'hoja-ruta': 170 case 'hoja-ruta':
171 if (datos.data.length) { 171 if (datos.data.length) {
172 valor = datos.data[0].hojaRutaMovimiento.remito.hojaRuta 172 valor = datos.data[0].hojaRutaMovimiento.remito.hojaRuta
173 .vehiculo.codigo + ' - ' + datos.data[0] 173 .vehiculo.codigo + ' - ' + datos.data[0]
174 .hojaRutaMovimiento.remito.hojaRuta.vehiculo.tractor.trim(); 174 .hojaRutaMovimiento.remito.hojaRuta.vehiculo.tractor.trim();
175 } else { 175 } else {
176 valor = $scope.idUsuario; 176 valor = $scope.idUsuario;
177 } 177 }
178 178
179 break; 179 break;
180 case 'cobranza': 180 case 'cobranza':
181 if (datos.data.length) { 181 if (datos.data.length) {
182 valor = datos.data[0].recibo.cobrador.NUM + ' - ' + 182 valor = datos.data[0].recibo.cobrador.NUM + ' - ' +
183 datos.data[0].recibo.cobrador.NOM.trim(); 183 datos.data[0].recibo.cobrador.NOM.trim();
184 } else { 184 } else {
185 valor = $scope.idUsuario; 185 valor = $scope.idUsuario;
186 } 186 }
187 break; 187 break;
188 } 188 }
189 189
190 $scope.$broadcast('addCabecera', { 190 $scope.$broadcast('addCabecera', {
191 label: cabecera, 191 label: cabecera,
192 valor: valor 192 valor: valor
193 }); 193 });
194 194
195 } else { 195 } else {
196 $scope.$broadcast('addCabecera',{ 196 $scope.$broadcast('addCabecera', {
197 label: 'General', 197 label: 'General',
198 valor: '' 198 valor: ''
199 }); 199 });
200 } 200 }
201 201
202 $scope.$broadcast('addCabecera', { 202 $scope.$broadcast('addCabecera', {
203 label: 'Cantidad: ', 203 label: 'Cantidad: ',
204 valor: datos.data.length + ' Marcadores' 204 valor: datos.data.length + ' Marcadores'
205 }); 205 });
206 }); 206 });
207 } 207 }
208 $scope.openModal = function () {
209 var parametrosModal = {};
210 switch ($routeParams.parametro) {
211 case 'nota-pedido':
212 parametrosModal = {
213 titulo: 'Búsqueda vendedores',
214 query: '/vendedor',
215 columnas: [
216 {
217 propiedad: 'NUM',
218 nombre: 'Código',
219 filtro: {
220 nombre: 'rellenarDigitos',
221 parametro: 3
222 }
223 },
224 {
225 propiedad: 'NOM',
226 nombre: 'Nombre'
227 }
228 ],
229 size: 'md'
230 };
231 break;
232 case 'hoja-ruta':
233 parametrosModal = {
234 titulo: 'Búsqueda de Transportista',
235 query: '/transportista',
236 columnas: [
237 {
238 nombre: 'Código',
239 propiedad: 'COD'
240 },
241 {
242 nombre: 'Nombre',
243 propiedad: 'NOM'
244 },
245 {
246 nombre: 'CUIT',
247 propiedad: 'CUIT'
248 }
249 ],
250 size: 'md'
251 };
252 break;
253 case 'cobranza':
254 parametrosModal = {
255 titulo: 'Búsqueda de cobradores',
256 query: '/cobrador',
257 columnas: [
258 {
259 propiedad: 'NUM',
260 nombre: 'Codigo',
261 filtro: {
262 nombre: 'rellenarDigitos',
263 parametro: 3
264 }
265 },
266 {
267 propiedad: 'NOM',
268 nombre: 'Nombre'
269 }
270 ],
271 size: 'md'
272 };
273 break;
274 default:
275 break;
276 }
277 focaModalService.modal(parametrosModal)
278 .then(
279 function (data) {
280 $scope.idUsuario = $scope.idUsuarioInput = data.NUM;
281 getSeguimiento();
282 if ($scope.actividad === 'Entrega de producto' && $scope.idUsuario !== 0) {
283 focaAdminSeguimientoService.obtenerRemitosVehiculo($scope.idUsuario)
284 .then(function (res) {
285 var remitos = [];
286 for (var i = 0; i < res.data.length; i++) {
287 remitos = remitos.concat(res.data[i].remitos);
288 }
289 $scope.remitosVehiculo = remitos;
290 });
291 }
292 }
293 )
294 .catch(function (e) { console.log(e) });
295 }
208 } 296 }
209 ]); 297 ]);
210 298
src/views/foca-admin-seguimiento.html
1 <div class="foca-admin-seguimiento"> 1 <div class="foca-admin-seguimiento">
2 <div class="row"> 2 <div class="row">
3 <foca-cabecera-facturador 3 <foca-cabecera-facturador
4 titulo="titulo" 4 titulo="titulo"
5 fecha="now" 5 fecha="now"
6 class="mb-0 col-lg-12" 6 class="mb-0 col-lg-12"
7 ></foca-cabecera-facturador> 7 ></foca-cabecera-facturador>
8 </div> 8 </div>
9 <div class="row"> 9 <div class="row">
10 <div class="col-10"> 10 <div class="col-10">
11 <osm 11 <osm
12 latitud="-34.7152975" 12 latitud="-34.7152975"
13 longitud="-65.9053867" 13 longitud="-65.9053867"
14 zoom="6" 14 zoom="6"
15 marcadores="marcadores" 15 marcadores="marcadores"
16 parametros= "datosBuscados" 16 parametros= "datosBuscados"
17 /> 17 />
18 </div> 18 </div>
19 <div class="col-2 pl-0"> 19 <div class="col-2 pl-0">
20 <input 20 <div class="input-group mb-3">
21 type="text" 21 <div class="input-group-prepend my-2">
22 ng-model="now" 22 <button
23 class="btn col-12 my-1" 23 class="input-group-text"
24 ng-blur="fecha()" 24 ng-click="datepickerOpen = true"
25 uib-datepicker-popup="dd/MM/yyyy" 25 >
26 show-button-bar="false" 26 <i class="fa fa-calendar" aria-hidden="true"></i>
27 is-open="datepickerOpen" 27 </button>
28 on-open-focus="false" 28 </div>
29 ng-focus="datepickerOpen = true" 29 <input
30 datepicker-options="dateOptions" 30 type="text"
31 /> 31 ng-model="now"
32 <button 32 class="form-control col-12 my-2"
33 type="button" 33 ng-blur="fecha()"
34 ng-class="{'active': idUsuario == 0}" 34 uib-datepicker-popup="dd/MM/yyyy"
35 class="btn col-12 my-1" 35 show-button-bar="false"
36 is-open="datepickerOpen"
37 on-open-focus="false"
38 ng-focus="datepickerOpen = true"
39 datepicker-options="dateOptions"
40 />
41 </div>
42 <button
43 type="button"
44 ng-class="{'active': idUsuario == 0}"
45 class="btn btn-outline-debo col-12 my-1"
36 ng-click="general()" 46 ng-click="general()"
37 >General</button> 47 >General</button>
38 <button 48 <button
39 type="button" 49 type="button"
40 ng-class="{'active': idUsuario != 0}" 50 ng-class="{'active': idUsuario != 0}"
41 class="btn col-12 my-1" 51 class="btn btn-outline-debo col-12 my-1"
42 ng-click="individual()" 52 ng-click="individual()"
43 >Individual</button> 53 >Individual</button>
44 <div class="form-group my-1" ng-show="idUsuario != 0"> 54 <div class="form-group my-1" ng-show="idUsuario != 0">
45 <input 55 <button
46 type="text" 56 class="btn btn-default"
47 placeholder="Vendedor"
48 class="form-control"
49 ng-model="idUsuarioInput"
50 ng-keypress="search($event.keyCode)"
51 foca-focus="idUsuario == -1" 57 foca-focus="idUsuario == -1"
52 ng-show="actividad == 'Nota de pedido'" 58 ng-show="actividad == 'Nota de pedido'"
53 teclado-virtual 59 ng-click="openModal()">
54 > 60 <i class="fa fa-hand-pointer-o" aria-hidden="true"></i>
55 <input 61 Vendedor
56 type="text" 62 </button>
57 placeholder="Vehiculo" 63 <button
58 class="form-control" 64 class="btn btn-default"
59 ng-model="idUsuarioInput"
60 ng-keypress="search($event.keyCode)"
61 foca-focus="idUsuario == -1" 65 foca-focus="idUsuario == -1"
62 ng-show="actividad == 'Entrega de producto'" 66 ng-show="actividad == 'Entrega de producto'"
63 teclado-virtual 67 ng-click="openModal()">
64 > 68 <i class="fa fa-hand-pointer-o" aria-hidden="true"></i>
65 <input 69 Transportista
66 type="text" 70 </button>
67 placeholder="Cobrador" 71 <button
68 class="form-control" 72 class="btn btn-default"
69 ng-model="idUsuarioInput"
70 ng-keypress="search($event.keyCode)"
71 foca-focus="idUsuario == -1" 73 foca-focus="idUsuario == -1"
72 ng-show="actividad == 'Cobranza'" 74 ng-show="actividad == 'Cobranza'"
73 teclado-virtual 75 ng-click="openModal()">
74 > 76 <i class="fa fa-hand-pointer-o" aria-hidden="true"></i>
77 Cobrador
78 </button>
75 </div> 79 </div>
76 <button 80 <button
77 type="button" 81 type="button"
78 class="btn col-12 my-1" 82 class="btn btn-danger col-12 my-1"
79 ng-show="marcadores.length > 0 && idUsuario > 0" 83 ng-show="marcadores.length > 0 && idUsuario > 0"
80 ng-click="showMarcadores()" 84 ng-click="showMarcadores()"
81 >Listar marcadores</button> 85 >Listar marcadores</button>
82 <div ng-show="actividad === 'Entrega de producto' && idUsuario != 0"> 86 <div ng-show="actividad === 'Entrega de producto' && idUsuario !== 0">
83 <div class="custom-control custom-radio"> 87 <div class="custom-control custom-radio">
84 <input 88 <input
85 type="radio" 89 type="radio"
86 class="custom-control-input" 90 class="custom-control-input"
87 id="idTodos" 91 id="idTodos"
88 name="filtro" 92 name="filtro"
89 ng-model="filtroEstado" 93 ng-model="filtroEstado"
90 ng-change="search(13)" 94 ng-change="search(13)"
91 checked> 95 checked>
92 <label class="custom-control-label pb-3" for="idTodos"></label> 96 <label class="custom-control-label pb-3" for="idTodos"></label>
93 <img src="img/marker-icon-grey.png"> 97 <img src="img/marker-icon-grey.png">
94 <strong>Todos</strong> 98 <strong>Todos</strong>
95 </div> 99 </div>
96 <div class="custom-control custom-radio"> 100 <div class="custom-control custom-radio">
97 <input 101 <input
98 type="radio" 102 type="radio"
99 class="custom-control-input" 103 class="custom-control-input"
100 id="entregado" 104 id="entregado"
101 name="filtro" 105 name="filtro"
102 ng-model="filtroEstado" 106 ng-model="filtroEstado"
103 ng-change="search(13)" 107 ng-change="search(13)"
104 ng-value="true"> 108 ng-value="true">
105 <label class="custom-control-label pb-3" for="entregado"></label> 109 <label class="custom-control-label pb-3" for="entregado"></label>
106 <img src="img/marker-icon-green.png"> 110 <img src="img/marker-icon-green.png">
107 <strong>Entregado</strong> 111 <strong>Entregado</strong>
108 </div> 112 </div>
109 <div class="custom-control custom-radio"> 113 <div class="custom-control custom-radio">
110 <input 114 <input
111 type="radio" 115 type="radio"
112 class="custom-control-input" 116 class="custom-control-input"
113 id="noEntregado" 117 id="noEntregado"
114 name="filtro" 118 name="filtro"
115 ng-model="filtroEstado" 119 ng-model="filtroEstado"
116 ng-change="search(13)" 120 ng-change="search(13)"
117 ng-value="false"> 121 ng-value="false">
118 <label class="custom-control-label pb-3" for="noEntregado"></label> 122 <label class="custom-control-label pb-3" for="noEntregado"></label>
119 <img src="img/marker-icon-yellow.png"> 123 <img src="img/marker-icon-yellow.png">
120 <strong>No entregado</strong> 124 <strong>No entregado</strong>
121 </div> 125 </div>
122 </div> 126 </div>
123 </div> 127 </div>
124 </div> 128 </div>
125 <div ng-show="actividad === 'Entrega de producto' && idUsuario != 0"> 129 <div ng-show="actividad === 'Entrega de producto' && idUsuario != 0">
126 <strong>Remitos pendientes de entrega</strong> 130 <strong>Remitos pendientes de entrega</strong>
127 <table class="table"> 131 <table class="table">
128 <thead> 132 <thead>
129 <tr> 133 <tr>
130 <th>Remito Nº</th> 134 <th>Remito Nº</th>
131 <th>Cliente</th> 135 <th>Cliente</th>
132 <th>Dirección</th> 136 <th>Dirección</th>
133 </tr> 137 </tr>
134 </thead> 138 </thead>
135 <tbody> 139 <tbody>
136 <tr ng-repeat="remito in remitosVehiculo"> 140 <tr ng-repeat="remito in remitosVehiculo">
137 <td ng-bind="[remito.sucursal, remito.numeroRemito] | comprobante"></td> 141 <td ng-bind="[remito.sucursal, remito.numeroRemito] | comprobante"></td>