Commit 58552da156b5fa82e2adfae51e99f4315d179c7c

Authored by Luis Suarez
1 parent 719ab7c849
Exists in develop

valido marcadores para nota de pedido

Showing 1 changed file with 26 additions and 7 deletions   Show diff stats
src/js/osm-directive.js
1 angular.module('focaAdminSeguimiento').directive('osm', function() { 1 angular.module('focaAdminSeguimiento').directive('osm', function() {
2 return { 2 return {
3 restrict: 'E', 3 restrict: 'E',
4 link: function(scope, el, attrs) { 4 link: function(scope, el, attrs) {
5 var contenedor = document.createElement('div'); 5 var contenedor = document.createElement('div');
6 el.append(contenedor); 6 el.append(contenedor);
7 scope.map = L.map(contenedor).setView([attrs.latitud, attrs.longitud], attrs.zoom); 7 scope.map = L.map(contenedor).setView([attrs.latitud, attrs.longitud], attrs.zoom);
8 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(scope.map); 8 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(scope.map);
9 }, 9 },
10 controller: ['$scope', '$filter', function($scope, $filter) { 10 controller: ['$scope', '$filter', function($scope, $filter) {
11 $scope.markers = []; 11 $scope.markers = [];
12 $scope.$watch('marcadores', function() { 12 $scope.$watch('marcadores', function() {
13 for(var i in $scope.markers) { 13 for(var i in $scope.markers) {
14 $scope.map.removeLayer($scope.markers[i]); 14 $scope.map.removeLayer($scope.markers[i]);
15 } 15 }
16 16
17 $scope.markers = []; 17 $scope.markers = [];
18 var observacion = ''; 18 var observacion = '';
19 19
20 angular.forEach($scope.marcadores, function(marcador) { 20 angular.forEach($scope.marcadores, function(marcador) {
21 var icon = new L.Icon({ 21 var icon = new L.Icon({
22 iconUrl: 'img/marker-icon-2x-blue.png', 22 iconUrl: 'img/marker-icon-2x-blue.png',
23 shadowUrl: 'img/marker-shadow.png', 23 shadowUrl: 'img/marker-shadow.png',
24 iconSize: [25, 41], 24 iconSize: [25, 41],
25 iconAnchor: [12, 41], 25 iconAnchor: [12, 41],
26 popupAnchor: [1, -34], 26 popupAnchor: [1, -34],
27 shadowSize: [41, 41] 27 shadowSize: [41, 41]
28 }); 28 });
29 if ($scope.parametros.actividad === 'Nota de pedido') { 29 if ($scope.parametros.actividad === 'Nota de pedido') {
30 observacion = generarObservacion(getNotaPedido(marcador)); 30 observacion = generarObservacion(getNotaPedido(marcador));
31 } 31 }
32 32
33 if ($scope.parametros.actividad === 'Cobranza') { 33 if ($scope.parametros.actividad === 'Cobranza') {
34 observacion = getCobranza(marcador); 34 observacion = getCobranza(marcador);
35 } 35 }
36 36
37 if ($scope.parametros.actividad === 'Entrega de producto') { 37 if ($scope.parametros.actividad === 'Entrega de producto') {
38 observacion = getEntrega(marcador); 38 observacion = getEntrega(marcador);
39 if (marcador.hojaRutaMovimiento.remito.rechazado) { 39 if (marcador.hojaRutaMovimiento.remito.rechazado) {
40 icon = new L.Icon({ 40 icon = new L.Icon({
41 iconUrl: 'img/marker-icon-2x-yellow.png', 41 iconUrl: 'img/marker-icon-2x-yellow.png',
42 shadowUrl: 'img/marker-shadow.png', 42 shadowUrl: 'img/marker-shadow.png',
43 iconSize: [25, 41], 43 iconSize: [25, 41],
44 iconAnchor: [12, 41], 44 iconAnchor: [12, 41],
45 popupAnchor: [1, -34], 45 popupAnchor: [1, -34],
46 shadowSize: [41, 41] 46 shadowSize: [41, 41]
47 }); 47 });
48 } else { 48 } else {
49 icon = new L.Icon({ 49 icon = new L.Icon({
50 iconUrl: 'img/marker-icon-2x-green.png', 50 iconUrl: 'img/marker-icon-2x-green.png',
51 shadowUrl: 'img/marker-shadow.png', 51 shadowUrl: 'img/marker-shadow.png',
52 iconSize: [25, 41], 52 iconSize: [25, 41],
53 iconAnchor: [12, 41], 53 iconAnchor: [12, 41],
54 popupAnchor: [1, -34], 54 popupAnchor: [1, -34],
55 shadowSize: [41, 41] 55 shadowSize: [41, 41]
56 }); 56 });
57 } 57 }
58 } 58 }
59 59
60 // if (marcador.visita) icon.options.iconUrl = 'img/marker-icon-2x-yellow.png'; 60 // if (marcador.visita) icon.options.iconUrl = 'img/marker-icon-2x-yellow.png';
61 61
62 if (observacion) { 62 if (observacion) {
63 $scope.markers.push( 63 if ($scope.parametros.actividad === 'Nota de pedido') {
64 L.marker( 64 if (marcador.cliente.puntoDescarga) {
65 [marcador.latitud, marcador.longitud], 65 $scope.markers.push(
66 {icon: icon}).addTo($scope.map) 66 L.marker(
67 .bindPopup(observacion) 67 [marcador.cliente.puntoDescarga[0].latitud,
68 ); 68 marcador.cliente.puntoDescarga[0].longitud],
69 69 {icon: icon}).addTo($scope.map)
70 .bindPopup(observacion)
71 );
72 } else if (marcador.cliente.direcciones) {
73 $scope.markers.push(
74 L.marker(
75 [marcador.cliente.direcciones[0].DATO,
76 marcador.cliente.direcciones[1].DATO],
77 {icon: icon}).addTo($scope.map)
78 .bindPopup(observacion)
79 );
80 }
81 } else {
82 $scope.markers.push(
83 L.marker(
84 [marcador.latitud, marcador.longitud],
85 {icon: icon}).addTo($scope.map)
86 .bindPopup(observacion)
87 );
88 }
70 $scope.markers[0].openPopup(); 89 $scope.markers[0].openPopup();
71 } 90 }
72 }); 91 });
73 92
74 function getNotaPedido(marcador) { 93 function getNotaPedido(marcador) {
75 var observacion = []; 94 var observacion = [];
76 95
77 // if(marcador.visita) { 96 // if(marcador.visita) {
78 // return getVisita(marcador); 97 // return getVisita(marcador);
79 // } else if(!marcador.id) { 98 // } else if(!marcador.id) {
80 // return false; 99 // return false;
81 // } 100 // }
82 101
83 var notaPedido = marcador; 102 var notaPedido = marcador;
84 103
85 if (notaPedido.vendedor && 104 if (notaPedido.vendedor &&
86 notaPedido.vendedor.NUM && 105 notaPedido.vendedor.NUM &&
87 notaPedido.vendedor.NOM) { 106 notaPedido.vendedor.NOM) {
88 observacion.push([ 107 observacion.push([
89 'Vendedor', 108 'Vendedor',
90 notaPedido.vendedor.NUM + ' - ' + notaPedido.vendedor.NOM 109 notaPedido.vendedor.NUM + ' - ' + notaPedido.vendedor.NOM
91 ]); 110 ]);
92 } 111 }
93 112
94 113
95 if (!$scope.parametros.individual) { 114 if (!$scope.parametros.individual) {
96 observacion.push(['Ultima Nota de Pedido', '']); 115 observacion.push(['Ultima Nota de Pedido', '']);
97 } 116 }
98 117
99 var textFecha = $filter('date')(notaPedido.fechaCarga.slice(0,10), 'dd/MM/yyyy') + 118 var textFecha = $filter('date')(notaPedido.fechaCarga.slice(0,10), 'dd/MM/yyyy') +
100 ' ' + notaPedido.fechaCarga.slice(11,19); 119 ' ' + notaPedido.fechaCarga.slice(11,19);
101 observacion.push(['Fecha', textFecha]); 120 observacion.push(['Fecha', textFecha]);
102 121
103 observacion.push(['Nº', 122 observacion.push(['Nº',
104 $filter('comprobante')([notaPedido.sucursal, notaPedido.numeroNotaPedido ]) 123 $filter('comprobante')([notaPedido.sucursal, notaPedido.numeroNotaPedido ])
105 ]); 124 ]);
106 125
107 if (notaPedido.cliente) { 126 if (notaPedido.cliente) {
108 observacion.push(['Cliente', notaPedido.cliente.NOM]); 127 observacion.push(['Cliente', notaPedido.cliente.NOM]);
109 } 128 }
110 129
111 if ($scope.parametros.individual) { 130 if ($scope.parametros.individual) {
112 observacion.push(['Total', $filter('currency')(notaPedido.total, '$')]); 131 observacion.push(['Total', $filter('currency')(notaPedido.total, '$')]);
113 // observacion.unshift(['Orden', marcador.orden]); 132 // observacion.unshift(['Orden', marcador.orden]);
114 133
115 if (marcador.distancia) { 134 if (marcador.distancia) {
116 observacion.push(['Distancia a casa central', 135 observacion.push(['Distancia a casa central',
117 marcador.distancia + 'km' 136 marcador.distancia + 'km'
118 ]); 137 ]);
119 } 138 }
120 } else { 139 } else {
121 observacion.push(['Cantidad de nota de pedido', 140 observacion.push(['Cantidad de nota de pedido',
122 notaPedido.cantidad 141 notaPedido.cantidad
123 ]); 142 ]);
124 143
125 observacion.push(['Total Vendido', 144 observacion.push(['Total Vendido',
126 $filter('currency')(notaPedido.total, '$') 145 $filter('currency')(notaPedido.total, '$')
127 ]); 146 ]);
128 } 147 }
129 148
130 return observacion; 149 return observacion;
131 } 150 }
132 151
133 function getCobranza(marcador) { 152 function getCobranza(marcador) {
134 if(marcador.visita) { 153 if(marcador.visita) {
135 return generarObservacion(getVisita(marcador)); 154 return generarObservacion(getVisita(marcador));
136 } 155 }
137 156
138 observacion = ''; 157 observacion = '';
139 observacion += 'Cobrador: ' + marcador.recibo.cobrador.NUM + ' - ' + 158 observacion += 'Cobrador: ' + marcador.recibo.cobrador.NUM + ' - ' +
140 marcador.recibo.CFE + '<br/>'; 159 marcador.recibo.CFE + '<br/>';
141 160
142 if (!$scope.parametros.individual) { 161 if (!$scope.parametros.individual) {
143 observacion += '<b>Ultima Cobranza</b><br/>'; 162 observacion += '<b>Ultima Cobranza</b><br/>';
144 } 163 }
145 164
146 observacion += 'Fecha: ' + 165 observacion += 'Fecha: ' +
147 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + 166 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' +
148 marcador.fecha.slice(11,19) + '<br/>'; 167 marcador.fecha.slice(11,19) + '<br/>';
149 observacion += 'Nº: ' + $filter('comprobante')([ 168 observacion += 'Nº: ' + $filter('comprobante')([
150 marcador.recibo.PVE, marcador.recibo.NCO]) + '<br/>'; 169 marcador.recibo.PVE, marcador.recibo.NCO]) + '<br/>';
151 observacion += 'Cliente: ' + marcador.recibo.cliente.NOM + '<br/>'; 170 observacion += 'Cliente: ' + marcador.recibo.cliente.NOM + '<br/>';
152 var totalCobrado = 0; 171 var totalCobrado = 0;
153 for (var i = 0; i < marcador.recibo.cuerpos.length; i++) { 172 for (var i = 0; i < marcador.recibo.cuerpos.length; i++) {
154 if (marcador.recibo.cuerpos[i].LOP === 'P') { 173 if (marcador.recibo.cuerpos[i].LOP === 'P') {
155 totalCobrado += marcador.recibo.cuerpos[i].IMP; 174 totalCobrado += marcador.recibo.cuerpos[i].IMP;
156 } 175 }
157 } 176 }
158 177
159 if ($scope.parametros.individual) { 178 if ($scope.parametros.individual) {
160 if (marcador.distancia) { 179 if (marcador.distancia) {
161 observacion += 'Distancia a casa central: ' + 180 observacion += 'Distancia a casa central: ' +
162 marcador.distancia + 'km' + '<br/>'; 181 marcador.distancia + 'km' + '<br/>';
163 observacion += 'Total Cobrado: ' + 182 observacion += 'Total Cobrado: ' +
164 $filter('currency')(totalCobrado, '$'); 183 $filter('currency')(totalCobrado, '$');
165 } 184 }
166 } else { 185 } else {
167 observacion += 'Cantidad de cobranzas: ' + 186 observacion += 'Cantidad de cobranzas: ' +
168 marcador.cantidad + '<br/>'; 187 marcador.cantidad + '<br/>';
169 observacion += 'Total Cobrado: ' + 188 observacion += 'Total Cobrado: ' +
170 $filter('currency')(totalCobrado, '$'); 189 $filter('currency')(totalCobrado, '$');
171 } 190 }
172 return observacion; 191 return observacion;
173 } 192 }
174 193
175 function getEntrega(marcador) { 194 function getEntrega(marcador) {
176 var observacion = ''; 195 var observacion = '';
177 var remito = marcador.hojaRutaMovimiento.remito; 196 var remito = marcador.hojaRutaMovimiento.remito;
178 observacion += 'Vehiculo: ' + 197 observacion += 'Vehiculo: ' +
179 remito.hojaRuta.vehiculo.codigo + ' - ' + 198 remito.hojaRuta.vehiculo.codigo + ' - ' +
180 remito.hojaRuta.vehiculo.tractor + '<br/>'; 199 remito.hojaRuta.vehiculo.tractor + '<br/>';
181 observacion += 'Transportista: ' + 200 observacion += 'Transportista: ' +
182 remito.hojaRuta.transportista.NOM + '<br/>'; 201 remito.hojaRuta.transportista.NOM + '<br/>';
183 observacion += 'Chofer: ' + 202 observacion += 'Chofer: ' +
184 remito.hojaRuta.chofer.nombre + '<br/>'; 203 remito.hojaRuta.chofer.nombre + '<br/>';
185 observacion += 'Hoja de ruta: ' + $filter('comprobante')([ 204 observacion += 'Hoja de ruta: ' + $filter('comprobante')([
186 remito.hojaRuta.sucursal, 205 remito.hojaRuta.sucursal,
187 remito.hojaRuta.numeroHojaRuta 206 remito.hojaRuta.numeroHojaRuta
188 ]) + '<br/>'; 207 ]) + '<br/>';
189 208
190 if (!$scope.parametros.individual) { 209 if (!$scope.parametros.individual) {
191 observacion += '<b>Ultimo Remito</b><br/>'; 210 observacion += '<b>Ultimo Remito</b><br/>';
192 } 211 }
193 212
194 observacion += 'Fecha: ' + 213 observacion += 'Fecha: ' +
195 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + 214 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' +
196 marcador.fecha.slice(11,19) + '<br/>'; 215 marcador.fecha.slice(11,19) + '<br/>';
197 216
198 observacion += 'Nº: ' + $filter('comprobante')([ 217 observacion += 'Nº: ' + $filter('comprobante')([
199 remito.sucursal, 218 remito.sucursal,
200 remito.numeroRemito 219 remito.numeroRemito
201 ]) + '<br/>'; 220 ]) + '<br/>';
202 observacion += 'Cliente: ' + 221 observacion += 'Cliente: ' +
203 remito.cliente.NOM + '<br/>'; 222 remito.cliente.NOM + '<br/>';
204 223
205 if ($scope.parametros.individual) { 224 if ($scope.parametros.individual) {
206 // observacion += 'Producto: ' + 225 // observacion += 'Producto: ' +
207 // remito.articulosRemito[0].descripcion + '<br/>'; 226 // remito.articulosRemito[0].descripcion + '<br/>';
208 // observacion += 'Cantidad entregada: ' + 227 // observacion += 'Cantidad entregada: ' +
209 // remito.carga + '<br/>'; 228 // remito.carga + '<br/>';
210 229
211 if (marcador.distancia) { 230 if (marcador.distancia) {
212 observacion += 'Distancia a casa central: ' + marcador.distancia + 231 observacion += 'Distancia a casa central: ' + marcador.distancia +
213 'km <br/>'; 232 'km <br/>';
214 } 233 }
215 234
216 observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion; 235 observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion;
217 } else { 236 } else {
218 observacion += 'Cantidad de entregas: ' + marcador.cantidad; 237 observacion += 'Cantidad de entregas: ' + marcador.cantidad;
219 } 238 }
220 observacion += '<br/>'; 239 observacion += '<br/>';
221 if (remito.rechazado) { 240 if (remito.rechazado) {
222 observacion += '<strong>Motivo del rechazo: ' + remito.motivoRechazo; 241 observacion += '<strong>Motivo del rechazo: ' + remito.motivoRechazo;
223 } 242 }
224 243
225 return observacion; 244 return observacion;
226 } 245 }
227 246
228 function getVisita(marcador) { 247 function getVisita(marcador) {
229 var observacion = []; 248 var observacion = [];
230 var textFecha = $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + 249 var textFecha = $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') +
231 ' ' + marcador.fecha.slice(11,19); 250 ' ' + marcador.fecha.slice(11,19);
232 var prospecto = marcador.visita.cliente.ES_PROS; 251 var prospecto = marcador.visita.cliente.ES_PROS;
233 var tipoVisitante = 252 var tipoVisitante =
234 (marcador.visita.tipoVisitante) === 1 ? 'Vendedor' : 'Cobrador'; 253 (marcador.visita.tipoVisitante) === 1 ? 'Vendedor' : 'Cobrador';
235 var visitante = marcador.visita.visitante.NUM + ' - ' + 254 var visitante = marcador.visita.visitante.NUM + ' - ' +
236 marcador.visita.visitante.NOM; 255 marcador.visita.visitante.NOM;
237 256
238 observacion.push([tipoVisitante, visitante]); 257 observacion.push([tipoVisitante, visitante]);
239 observacion.push(['Fecha', textFecha]); 258 observacion.push(['Fecha', textFecha]);
240 observacion.push(['Cliente', marcador.visita.cliente.NOM]); 259 observacion.push(['Cliente', marcador.visita.cliente.NOM]);
241 observacion.push(['Es prospecto', (prospecto) ? 'Si' : 'No']); 260 observacion.push(['Es prospecto', (prospecto) ? 'Si' : 'No']);
242 261
243 return observacion; 262 return observacion;
244 } 263 }
245 264
246 function generarObservacion(array) { 265 function generarObservacion(array) {
247 var resultado = ''; 266 var resultado = '';
248 267
249 for (var i = 0; i < array.length; i++) { 268 for (var i = 0; i < array.length; i++) {
250 resultado += '<b>' + array[i][0] + ': </b>'; 269 resultado += '<b>' + array[i][0] + ': </b>';
251 resultado += array[i][1]; 270 resultado += array[i][1];
252 271
253 if (i < (array.length - 1)) { 272 if (i < (array.length - 1)) {
254 resultado += '<br/>'; 273 resultado += '<br/>';
255 } 274 }
256 } 275 }
257 276
258 return resultado; 277 return resultado;
259 } 278 }
260 }); 279 });
261 280
262 281
263 $scope.$on('moveMap', function(evt, data) { 282 $scope.$on('moveMap', function(evt, data) {
264 var center = new L.LatLng(data.latitud, data.longitud); 283 var center = new L.LatLng(data.latitud, data.longitud);
265 $scope.map.flyTo(center, 11, {duration: 0.5}); 284 $scope.map.flyTo(center, 11, {duration: 0.5});
266 $scope.markers[data.indice].openPopup(); 285 $scope.markers[data.indice].openPopup();
267 }); 286 });
268 }], 287 }],
269 scope: { 288 scope: {
270 latitud: '=', 289 latitud: '=',
271 longitud: '=', 290 longitud: '=',
272 zoom: '=', 291 zoom: '=',
273 marcadores: '=', 292 marcadores: '=',
274 parametros: '=' 293 parametros: '='
275 } 294 }
276 }; 295 };
277 }); 296 });
278 297