Compare View

switch
from
...
to
 
Commits (3)
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 $scope.markers.push(
64 L.marker( 64 L.marker(
65 [marcador.latitud, marcador.longitud], 65 [marcador.latitud, marcador.longitud],
66 {icon: icon}).addTo($scope.map) 66 {icon: icon}).addTo($scope.map)
67 .bindPopup(observacion) 67 .bindPopup(observacion)
68 ); 68 );
69 69
70 $scope.markers[0].openPopup(); 70 $scope.markers[0].openPopup();
71 } 71 }
72 }); 72 });
73 73
74 function getNotaPedido(marcador) { 74 function getNotaPedido(marcador) {
75 var observacion = []; 75 var observacion = [];
76 76
77 if(marcador.visita) { 77 // if(marcador.visita) {
78 return getVisita(marcador); 78 // return getVisita(marcador);
79 } else if(!marcador.notaPedido.id) { 79 // } else if(!marcador.id) {
80 return false; 80 // return false;
81 } 81 // }
82 82
83 var notaPedido = marcador.notaPedido; 83 var notaPedido = marcador;
84 84
85 if (notaPedido.vendedor) { 85 if (notaPedido.vendedor &&
86 notaPedido.vendedor.NUM &&
87 notaPedido.vendedor.NOM) {
86 observacion.push([ 88 observacion.push([
87 'Vendedor', 89 'Vendedor',
88 notaPedido.vendedor.NUM + ' - ' + notaPedido.vendedor.NOM 90 notaPedido.vendedor.NUM + ' - ' + notaPedido.vendedor.NOM
89 ]); 91 ]);
90 } 92 }
91 93
92 94
93 if (!$scope.parametros.individual) { 95 if (!$scope.parametros.individual) {
94 observacion.push(['Ultima Nota de Pedido', '']); 96 observacion.push(['Ultima Nota de Pedido', '']);
95 } 97 }
96 98
97 var textFecha = $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + 99 var textFecha = $filter('date')(notaPedido.fechaCarga.slice(0,10), 'dd/MM/yyyy') +
98 ' ' + marcador.fecha.slice(11,19); 100 ' ' + notaPedido.fechaCarga.slice(11,19);
99 observacion.push(['Fecha', textFecha]); 101 observacion.push(['Fecha', textFecha]);
100 102
101 observacion.push(['Nº', 103 observacion.push(['Nº',
102 $filter('comprobante')([notaPedido.sucursal, notaPedido.numeroNotaPedido ]) 104 $filter('comprobante')([notaPedido.sucursal, notaPedido.numeroNotaPedido ])
103 ]); 105 ]);
104 106
105 if (notaPedido.cliente) { 107 if (notaPedido.cliente) {
106 observacion.push(['Cliente', notaPedido.cliente.NOM]); 108 observacion.push(['Cliente', notaPedido.cliente.NOM]);
107 } 109 }
108 110
109 if ($scope.parametros.individual) { 111 if ($scope.parametros.individual) {
110 observacion.push(['Total', $filter('currency')(notaPedido.total, '$')]); 112 observacion.push(['Total', $filter('currency')(notaPedido.total, '$')]);
111 observacion.unshift(['Orden', marcador.orden]); 113 // observacion.unshift(['Orden', marcador.orden]);
112 114
113 if (marcador.distancia) { 115 if (marcador.distancia) {
114 observacion.push(['Distancia a casa central', 116 observacion.push(['Distancia a casa central',
115 marcador.distancia + 'km' 117 marcador.distancia + 'km'
116 ]); 118 ]);
117 } 119 }
118 } else { 120 } else {
119 observacion.push(['Cantidad de nota de pedido', 121 observacion.push(['Cantidad de nota de pedido',
120 marcador.cantidad 122 notaPedido.cantidad
121 ]); 123 ]);
122 124
123 observacion.push(['Total Vendido', 125 observacion.push(['Total Vendido',
124 $filter('currency')(marcador.total, '$') 126 $filter('currency')(notaPedido.total, '$')
125 ]); 127 ]);
126 } 128 }
127 129
128 return observacion; 130 return observacion;
129 } 131 }
130 132
131 function getCobranza(marcador) { 133 function getCobranza(marcador) {
132 if(marcador.visita) { 134 if(marcador.visita) {
133 return generarObservacion(getVisita(marcador)); 135 return generarObservacion(getVisita(marcador));
134 } 136 }
135 137
136 observacion = ''; 138 observacion = '';
137 observacion += 'Cobrador: ' + marcador.recibo.cobrador.NUM + ' - ' + 139 observacion += 'Cobrador: ' + marcador.recibo.cobrador.NUM + ' - ' +
138 marcador.recibo.CFE + '<br/>'; 140 marcador.recibo.CFE + '<br/>';
139 141
140 if (!$scope.parametros.individual) { 142 if (!$scope.parametros.individual) {
141 observacion += '<b>Ultima Cobranza</b><br/>'; 143 observacion += '<b>Ultima Cobranza</b><br/>';
142 } 144 }
143 145
144 observacion += 'Fecha: ' + 146 observacion += 'Fecha: ' +
145 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + 147 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' +
146 marcador.fecha.slice(11,19) + '<br/>'; 148 marcador.fecha.slice(11,19) + '<br/>';
147 observacion += 'Nº: ' + $filter('comprobante')([ 149 observacion += 'Nº: ' + $filter('comprobante')([
148 marcador.recibo.PVE, marcador.recibo.NCO]) + '<br/>'; 150 marcador.recibo.PVE, marcador.recibo.NCO]) + '<br/>';
149 observacion += 'Cliente: ' + marcador.recibo.cliente.NOM + '<br/>'; 151 observacion += 'Cliente: ' + marcador.recibo.cliente.NOM + '<br/>';
150 var totalCobrado = 0; 152 var totalCobrado = 0;
151 for (var i = 0; i < marcador.recibo.cuerpos.length; i++) { 153 for (var i = 0; i < marcador.recibo.cuerpos.length; i++) {
152 if (marcador.recibo.cuerpos[i].LOP === 'P') { 154 if (marcador.recibo.cuerpos[i].LOP === 'P') {
153 totalCobrado += marcador.recibo.cuerpos[i].IMP; 155 totalCobrado += marcador.recibo.cuerpos[i].IMP;
154 } 156 }
155 } 157 }
156 158
157 if ($scope.parametros.individual) { 159 if ($scope.parametros.individual) {
158 if (marcador.distancia) { 160 if (marcador.distancia) {
159 observacion += 'Distancia a casa central: ' + 161 observacion += 'Distancia a casa central: ' +
160 marcador.distancia + 'km' + '<br/>'; 162 marcador.distancia + 'km' + '<br/>';
161 observacion += 'Total Cobrado: ' + 163 observacion += 'Total Cobrado: ' +
162 $filter('currency')(totalCobrado, '$'); 164 $filter('currency')(totalCobrado, '$');
163 } 165 }
164 } else { 166 } else {
165 observacion += 'Cantidad de cobranzas: ' + 167 observacion += 'Cantidad de cobranzas: ' +
166 marcador.cantidad + '<br/>'; 168 marcador.cantidad + '<br/>';
167 observacion += 'Total Cobrado: ' + 169 observacion += 'Total Cobrado: ' +
168 $filter('currency')(totalCobrado, '$'); 170 $filter('currency')(totalCobrado, '$');
169 } 171 }
170 return observacion; 172 return observacion;
171 } 173 }
172 174
173 function getEntrega(marcador) { 175 function getEntrega(marcador) {
174 var observacion = ''; 176 var observacion = '';
175 var remito = marcador.hojaRutaMovimiento.remito; 177 var remito = marcador.hojaRutaMovimiento.remito;
176 observacion += 'Vehiculo: ' + 178 observacion += 'Vehiculo: ' +
177 remito.hojaRuta.vehiculo.codigo + ' - ' + 179 remito.hojaRuta.vehiculo.codigo + ' - ' +
178 remito.hojaRuta.vehiculo.tractor + '<br/>'; 180 remito.hojaRuta.vehiculo.tractor + '<br/>';
179 observacion += 'Transportista: ' + 181 observacion += 'Transportista: ' +
180 remito.hojaRuta.transportista.NOM + '<br/>'; 182 remito.hojaRuta.transportista.NOM + '<br/>';
181 observacion += 'Chofer: ' + 183 observacion += 'Chofer: ' +
182 remito.hojaRuta.chofer.nombre + '<br/>'; 184 remito.hojaRuta.chofer.nombre + '<br/>';
183 observacion += 'Hoja de ruta: ' + $filter('comprobante')([ 185 observacion += 'Hoja de ruta: ' + $filter('comprobante')([
184 remito.hojaRuta.sucursal, 186 remito.hojaRuta.sucursal,
185 remito.hojaRuta.numeroHojaRuta 187 remito.hojaRuta.numeroHojaRuta
186 ]) + '<br/>'; 188 ]) + '<br/>';
187 189
188 if (!$scope.parametros.individual) { 190 if (!$scope.parametros.individual) {
189 observacion += '<b>Ultimo Remito</b><br/>'; 191 observacion += '<b>Ultimo Remito</b><br/>';
190 } 192 }
191 193
192 observacion += 'Fecha: ' + 194 observacion += 'Fecha: ' +
193 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + 195 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' +
194 marcador.fecha.slice(11,19) + '<br/>'; 196 marcador.fecha.slice(11,19) + '<br/>';
195 197
196 observacion += 'Nº: ' + $filter('comprobante')([ 198 observacion += 'Nº: ' + $filter('comprobante')([
197 remito.sucursal, 199 remito.sucursal,
198 remito.numeroRemito 200 remito.numeroRemito
199 ]) + '<br/>'; 201 ]) + '<br/>';
200 observacion += 'Cliente: ' + 202 observacion += 'Cliente: ' +
201 remito.cliente.NOM + '<br/>'; 203 remito.cliente.NOM + '<br/>';
202 204
203 if ($scope.parametros.individual) { 205 if ($scope.parametros.individual) {
204 // observacion += 'Producto: ' + 206 // observacion += 'Producto: ' +
205 // remito.articulosRemito[0].descripcion + '<br/>'; 207 // remito.articulosRemito[0].descripcion + '<br/>';
206 // observacion += 'Cantidad entregada: ' + 208 // observacion += 'Cantidad entregada: ' +
207 // remito.carga + '<br/>'; 209 // remito.carga + '<br/>';
208 210
209 if (marcador.distancia) { 211 if (marcador.distancia) {
210 observacion += 'Distancia a casa central: ' + marcador.distancia + 212 observacion += 'Distancia a casa central: ' + marcador.distancia +
211 'km <br/>'; 213 'km <br/>';
212 } 214 }
213 215
214 observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion; 216 observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion;
215 } else { 217 } else {
216 observacion += 'Cantidad de entregas: ' + marcador.cantidad; 218 observacion += 'Cantidad de entregas: ' + marcador.cantidad;
217 } 219 }
218 observacion += '<br/>'; 220 observacion += '<br/>';
219 if (remito.rechazado) { 221 if (remito.rechazado) {
220 observacion += '<strong>Motivo del rechazo: ' + remito.motivoRechazo; 222 observacion += '<strong>Motivo del rechazo: ' + remito.motivoRechazo;
221 } 223 }
222 224
223 return observacion; 225 return observacion;
224 } 226 }
225 227
226 function getVisita(marcador) { 228 function getVisita(marcador) {
227 var observacion = []; 229 var observacion = [];
228 var textFecha = $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + 230 var textFecha = $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') +
229 ' ' + marcador.fecha.slice(11,19); 231 ' ' + marcador.fecha.slice(11,19);
230 var prospecto = marcador.visita.cliente.ES_PROS; 232 var prospecto = marcador.visita.cliente.ES_PROS;
231 var tipoVisitante = 233 var tipoVisitante =
232 (marcador.visita.tipoVisitante) === 1 ? 'Vendedor' : 'Cobrador'; 234 (marcador.visita.tipoVisitante) === 1 ? 'Vendedor' : 'Cobrador';
233 var visitante = marcador.visita.visitante.NUM + ' - ' + 235 var visitante = marcador.visita.visitante.NUM + ' - ' +
234 marcador.visita.visitante.NOM; 236 marcador.visita.visitante.NOM;
235 237
236 observacion.push([tipoVisitante, visitante]); 238 observacion.push([tipoVisitante, visitante]);
237 observacion.push(['Fecha', textFecha]); 239 observacion.push(['Fecha', textFecha]);
238 observacion.push(['Cliente', marcador.visita.cliente.NOM]); 240 observacion.push(['Cliente', marcador.visita.cliente.NOM]);
239 observacion.push(['Es prospecto', (prospecto) ? 'Si' : 'No']); 241 observacion.push(['Es prospecto', (prospecto) ? 'Si' : 'No']);
240 242
241 return observacion; 243 return observacion;
242 } 244 }
243 245
244 function generarObservacion(array) { 246 function generarObservacion(array) {
245 var resultado = ''; 247 var resultado = '';
246 248
247 for (var i = 0; i < array.length; i++) { 249 for (var i = 0; i < array.length; i++) {
248 resultado += '<b>' + array[i][0] + ': </b>'; 250 resultado += '<b>' + array[i][0] + ': </b>';
249 resultado += array[i][1]; 251 resultado += array[i][1];
250 252
251 if (i < (array.length - 1)) { 253 if (i < (array.length - 1)) {
252 resultado += '<br/>'; 254 resultado += '<br/>';
253 } 255 }
254 } 256 }
255 257
256 return resultado; 258 return resultado;
257 } 259 }
258 }); 260 });
259 261
260 262
261 $scope.$on('moveMap', function(evt, data) { 263 $scope.$on('moveMap', function(evt, data) {
262 var center = new L.LatLng(data.latitud, data.longitud); 264 var center = new L.LatLng(data.latitud, data.longitud);
263 $scope.map.flyTo(center, 11, {duration: 0.5}); 265 $scope.map.flyTo(center, 11, {duration: 0.5});
264 $scope.markers[data.indice].openPopup(); 266 $scope.markers[data.indice].openPopup();
265 }); 267 });
266 }], 268 }],
267 scope: { 269 scope: {
268 latitud: '=', 270 latitud: '=',
269 longitud: '=', 271 longitud: '=',
270 zoom: '=', 272 zoom: '=',
271 marcadores: '=', 273 marcadores: '=',
272 parametros: '=' 274 parametros: '='
273 } 275 }
274 }; 276 };
275 }); 277 });
276 278