osm-directive.js
5.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
angular.module('focaAdminSeguimiento').directive('osm', function() {
return {
restrict: 'E',
link: function(scope, el, attrs) {
var contenedor = document.createElement('div');
el.append(contenedor);
scope.map = L.map(contenedor).setView([attrs.latitud, attrs.longitud], attrs.zoom);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(scope.map);
},
controller: ['$scope', '$filter', function($scope, $filter) {
$scope.markers = [];
$scope.$watch('marcadores', function() {
for(var i in $scope.markers) {
$scope.map.removeLayer($scope.markers[i]);
}
$scope.markers = [];
angular.forEach($scope.marcadores, function(marcador) {
var observacion = '';
if ($scope.parametros.actividad === 'Nota de pedido') {
observacion +=
'Vendedor: ' + marcador.notaPedido.idVendedor + ' - ' +
(
marcador.notaPedido.vendedor ?
marcador.notaPedido.vendedor.NomVen :
''
) + '<br/>';
observacion += 'Fecha: ' +
$filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' +
marcador.fecha.slice(11,19) + '<br/>';
observacion += 'Nº: ' + $filter('comprobante')([
marcador.notaPedido.sucursal,
marcador.notaPedido.numeroNotaPedido
]) + '<br/>';
observacion += 'Cliente: ' +
marcador.notaPedido.cliente.NOM + '<br/>';
if ($scope.parametros.individual) {
observacion +=
'Total: ' + $filter('currency')(marcador.notaPedido.total, '$');
observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion;
if (marcador.distancia) {
observacion += '<br/>Distancia a casa central: ' +
marcador.distancia + 'km';
}
} else {
observacion += 'Cantidad de nota de pedido: ' +
marcador.cantidad + '<br/>';
observacion += 'Total Vendido: ' +
$filter('currency')(marcador.total, '$');
}
} else {
observacion += 'Vehiculo: ' +
marcador.remito.hojaRuta.idVehiculo + ' - ' +
marcador.remito.hojaRuta.vehiculo.tractor + '<br/>';
observacion += 'Transportista: ' +
marcador.remito.hojaRuta.transportista.NOM + '<br/>';
observacion += 'Chofer: ' +
marcador.remito.hojaRuta.chofer.nombre + '<br/>';
observacion += 'Fecha: ' +
$filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' +
marcador.fecha.slice(11,19) + '<br/>';
observacion += 'Hoja de ruta: ' + $filter('comprobante')([
marcador.remito.hojaRuta.sucursal,
marcador.remito.hojaRuta.numeroHojaRuta
]) + '<br/>';
observacion += 'Remito: ' + $filter('comprobante')([
marcador.remito.sucursal,
marcador.remito.numeroRemito
]) + '<br/>';
observacion += 'Cliente: ' +
marcador.remito.cliente.NOM + '<br/>';
if ($scope.parametros.individual) {
observacion += 'Producto: ' +
marcador.remito.articulosRemito[0].descripcion + '<br/>';
observacion += 'Cantidad entregada: ' +
marcador.remito.carga + '<br/>';
if (marcador.distancia) {
observacion += 'Distancia a casa central: ' + marcador.distancia +
'km <br/>';
}
if (marcador.observaciones) {
observacion += 'Observaciones: ' + marcador.observaciones;
}
observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion;
} else {
observacion += 'Cantidad de entregas: ' + marcador.cantidad;
}
}
$scope.markers.push(
L.marker([marcador.latitud, marcador.longitud]).addTo($scope.map)
.bindPopup(observacion)
);
$scope.markers[0].openPopup();
});
});
}],
scope: {
latitud: '=',
longitud: '=',
zoom: '=',
marcadores: '=',
parametros: '='
}
};
});