Commit c6df5ebaa04346f007465dc160cd607794e60ddd

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

refactor seguimiento de cobranzas

Showing 1 changed file with 12 additions and 6 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 if ($scope.parametros.actividad === 'Nota de pedido') { 21 if ($scope.parametros.actividad === 'Nota de pedido') {
22 observacion = generarObservacion(getNotaPedido(marcador)); 22 observacion = generarObservacion(getNotaPedido(marcador));
23 } 23 }
24 24
25 if ($scope.parametros.actividad === 'Cobranza') { 25 if ($scope.parametros.actividad === 'Cobranza') {
26 observacion = getCobranza(marcador); 26 observacion = getCobranza(marcador);
27 } 27 }
28 28
29 if ($scope.parametros.actividad === 'Entrega de producto') { 29 if ($scope.parametros.actividad === 'Entrega de producto') {
30 observacion = getEntrega(marcador); 30 observacion = getEntrega(marcador);
31 } 31 }
32 32
33 if (observacion) { 33 if (observacion) {
34 $scope.markers.push( 34 $scope.markers.push(
35 L.marker([marcador.latitud, marcador.longitud]).addTo($scope.map) 35 L.marker([marcador.latitud, marcador.longitud]).addTo($scope.map)
36 .bindPopup(observacion) 36 .bindPopup(observacion)
37 ); 37 );
38 38
39 $scope.markers[0].openPopup(); 39 $scope.markers[0].openPopup();
40 } 40 }
41 }); 41 });
42 42
43 function getNotaPedido(marcador) { 43 function getNotaPedido(marcador) {
44 var observacion = []; 44 var observacion = [];
45 45
46 if (!marcador.notaPedido.id) { 46 if (!marcador.notaPedido.id) {
47 return false; 47 return false;
48 } 48 }
49 49
50 var notaPedido = marcador.notaPedido; 50 var notaPedido = marcador.notaPedido;
51 var textVendedor = notaPedido.idVendedor + ' - '; 51 var textVendedor = notaPedido.idVendedor + ' - ';
52 52
53 if (notaPedido.vendedor) { 53 if (notaPedido.vendedor) {
54 textVendedor += notaPedido.vendedor.NomVen; 54 textVendedor += notaPedido.vendedor.NomVen;
55 } 55 }
56 56
57 observacion.push(['Vendedor', textVendedor]); 57 observacion.push(['Vendedor', textVendedor]);
58 58
59 if (!$scope.parametros.individual) { 59 if (!$scope.parametros.individual) {
60 observacion.push(['Ultima Nota de Pedido', '']); 60 observacion.push(['Ultima Nota de Pedido', '']);
61 } 61 }
62 62
63 var textFecha = $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + 63 var textFecha = $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') +
64 ' ' + marcador.fecha.slice(11,19); 64 ' ' + marcador.fecha.slice(11,19);
65 observacion.push(['Fecha', textFecha]); 65 observacion.push(['Fecha', textFecha]);
66 66
67 observacion.push(['Nº', 67 observacion.push(['Nº',
68 $filter('comprobante')([notaPedido.sucursal, notaPedido.numeroNotaPedido ]) 68 $filter('comprobante')([notaPedido.sucursal, notaPedido.numeroNotaPedido ])
69 ]); 69 ]);
70 70
71 if (notaPedido.cliente) { 71 if (notaPedido.cliente) {
72 observacion.push(['Cliente', notaPedido.cliente.NOM]); 72 observacion.push(['Cliente', notaPedido.cliente.NOM]);
73 } 73 }
74 74
75 if ($scope.parametros.individual) { 75 if ($scope.parametros.individual) {
76 observacion.push(['Total', $filter('currency')(notaPedido.total, '$')]); 76 observacion.push(['Total', $filter('currency')(notaPedido.total, '$')]);
77 observacion.unshift(['Orden', marcador.orden]); 77 observacion.unshift(['Orden', marcador.orden]);
78 78
79 if (marcador.distancia) { 79 if (marcador.distancia) {
80 observacion.push(['Distancia a casa central', 80 observacion.push(['Distancia a casa central',
81 marcador.distancia + 'km' 81 marcador.distancia + 'km'
82 ]); 82 ]);
83 } 83 }
84 } else { 84 } else {
85 observacion.push(['Cantidad de nota de pedido', 85 observacion.push(['Cantidad de nota de pedido',
86 marcador.cantidad 86 marcador.cantidad
87 ]); 87 ]);
88 88
89 observacion.push(['Total Vendido', 89 observacion.push(['Total Vendido',
90 $filter('currency')(marcador.total, '$') 90 $filter('currency')(marcador.total, '$')
91 ]); 91 ]);
92 } 92 }
93 93
94 console.info(marcador, observacion); 94 console.info(marcador, observacion);
95 return observacion; 95 return observacion;
96 } 96 }
97 97
98 function getCobranza(marcador) { 98 function getCobranza(marcador) {
99 observacion += 'Cobrador: ' + marcador.recibo.cobrador.id + ' - ' + 99 observacion = '';
100 observacion += 'Cobrador: ' + marcador.recibo.cobrador.CodVen + ' - ' +
100 marcador.recibo.CFE + '<br/>'; 101 marcador.recibo.CFE + '<br/>';
101 102
102 if (!$scope.parametros.individual) { 103 if (!$scope.parametros.individual) {
103 observacion += '<b>Ultima Cobranza</b><br/>'; 104 observacion += '<b>Ultima Cobranza</b><br/>';
104 } 105 }
105 106
106 observacion += 'Fecha: ' + 107 observacion += 'Fecha: ' +
107 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + 108 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' +
108 marcador.fecha.slice(11,19) + '<br/>'; 109 marcador.fecha.slice(11,19) + '<br/>';
109 observacion += 'Nº: ' + $filter('comprobante')([ 110 observacion += 'Nº: ' + $filter('comprobante')([
110 marcador.sucursal, marcador.idUsuario]) + '<br/>'; 111 marcador.recibo.PVE, marcador.recibo.NCO]) + '<br/>';
111 observacion += 'Cliente: ' + marcador.recibo.cliente.NOM + '<br/>'; 112 observacion += 'Cliente: ' + marcador.recibo.cliente.NOM + '<br/>';
113 var totalCobrado = 0;
114 for (var i = 0; i < marcador.recibo.facturas.length; i++) {
115 if (marcador.recibo.facturas[i].LOP === 'P') {
116 totalCobrado += marcador.recibo.facturas[i].IMP;
117 }
118 }
112 119
113 if ($scope.parametros.individual) { 120 if ($scope.parametros.individual) {
114 if (marcador.distancia) { 121 if (marcador.distancia) {
115 observacion += 'Distancia a casa central: ' + 122 observacion += 'Distancia a casa central: ' +
116 marcador.distancia + 'km' + '<br/>'; 123 marcador.distancia + 'km' + '<br/>';
117 observacion += 'Total Cobrado: ' + 124 observacion += 'Total Cobrado: ' +
118 $filter('currency')(marcador.factura.IPA, '$'); 125 $filter('currency')(totalCobrado, '$');
119 } 126 }
120 } else { 127 } else {
121 observacion += 'Cantidad de cobranzas: ' + 128 observacion += 'Cantidad de cobranzas: ' +
122 marcador.cantidad + '<br/>'; 129 marcador.cantidad + '<br/>';
123 observacion += 'Total Cobrado: ' + 130 observacion += 'Total Cobrado: ' +
124 $filter('currency')(marcador.factura.IPA, '$'); 131 $filter('currency')(totalCobrado, '$');
125 } 132 }
126
127 return observacion; 133 return observacion;
128 } 134 }
129 135
130 function getEntrega(marcador) { 136 function getEntrega(marcador) {
131 var observacion = ''; 137 var observacion = '';
132 var remito = marcador.hojaRutaMovimiento.remito; 138 var remito = marcador.hojaRutaMovimiento.remito;
133 observacion += 'Vehiculo: ' + 139 observacion += 'Vehiculo: ' +
134 remito.hojaRuta.idVehiculo + ' - ' + 140 remito.hojaRuta.idVehiculo + ' - ' +
135 remito.hojaRuta.vehiculo.tractor + '<br/>'; 141 remito.hojaRuta.vehiculo.tractor + '<br/>';
136 observacion += 'Transportista: ' + 142 observacion += 'Transportista: ' +
137 remito.hojaRuta.transportista.NOM + '<br/>'; 143 remito.hojaRuta.transportista.NOM + '<br/>';
138 observacion += 'Chofer: ' + 144 observacion += 'Chofer: ' +
139 remito.hojaRuta.chofer.nombre + '<br/>'; 145 remito.hojaRuta.chofer.nombre + '<br/>';
140 observacion += 'Hoja de ruta: ' + $filter('comprobante')([ 146 observacion += 'Hoja de ruta: ' + $filter('comprobante')([
141 remito.hojaRuta.sucursal, 147 remito.hojaRuta.sucursal,
142 remito.hojaRuta.numeroHojaRuta 148 remito.hojaRuta.numeroHojaRuta
143 ]) + '<br/>'; 149 ]) + '<br/>';
144 150
145 if (!$scope.parametros.individual) { 151 if (!$scope.parametros.individual) {
146 observacion += '<b>Ultimo Remito</b><br/>'; 152 observacion += '<b>Ultimo Remito</b><br/>';
147 } 153 }
148 154
149 observacion += 'Fecha: ' + 155 observacion += 'Fecha: ' +
150 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' + 156 $filter('date')(marcador.fecha.slice(0,10), 'dd/MM/yyyy') + ' ' +
151 marcador.fecha.slice(11,19) + '<br/>'; 157 marcador.fecha.slice(11,19) + '<br/>';
152 158
153 observacion += 'Nº: ' + $filter('comprobante')([ 159 observacion += 'Nº: ' + $filter('comprobante')([
154 remito.sucursal, 160 remito.sucursal,
155 remito.numeroRemito 161 remito.numeroRemito
156 ]) + '<br/>'; 162 ]) + '<br/>';
157 observacion += 'Cliente: ' + 163 observacion += 'Cliente: ' +
158 remito.cliente.NOM + '<br/>'; 164 remito.cliente.NOM + '<br/>';
159 165
160 if ($scope.parametros.individual) { 166 if ($scope.parametros.individual) {
161 observacion += 'Producto: ' + 167 observacion += 'Producto: ' +
162 remito.articulosRemito[0].descripcion + '<br/>'; 168 remito.articulosRemito[0].descripcion + '<br/>';
163 observacion += 'Cantidad entregada: ' + 169 observacion += 'Cantidad entregada: ' +
164 remito.carga + '<br/>'; 170 remito.carga + '<br/>';
165 171
166 if (marcador.distancia) { 172 if (marcador.distancia) {
167 observacion += 'Distancia a casa central: ' + marcador.distancia + 173 observacion += 'Distancia a casa central: ' + marcador.distancia +
168 'km <br/>'; 174 'km <br/>';
169 } 175 }
170 176
171 if (marcador.observaciones) { 177 if (marcador.observaciones) {
172 observacion += 'Observaciones: ' + marcador.observaciones; 178 observacion += 'Observaciones: ' + marcador.observaciones;
173 } 179 }
174 observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion; 180 observacion = 'Orden: ' + marcador.orden + '<br/>' + observacion;
175 } else { 181 } else {
176 observacion += 'Cantidad de entregas: ' + marcador.cantidad; 182 observacion += 'Cantidad de entregas: ' + marcador.cantidad;
177 } 183 }
178 184
179 return observacion; 185 return observacion;
180 } 186 }
181 187
182 function generarObservacion(array) { 188 function generarObservacion(array) {
183 var resultado = ''; 189 var resultado = '';
184 190
185 for (var i = 0; i < array.length; i++) { 191 for (var i = 0; i < array.length; i++) {
186 resultado += '<b>' + array[i][0] + ': </b>'; 192 resultado += '<b>' + array[i][0] + ': </b>';
187 resultado += array[i][1]; 193 resultado += array[i][1];
188 194
189 if (i < (array.length - 1)) { 195 if (i < (array.length - 1)) {
190 resultado += '<br/>'; 196 resultado += '<br/>';
191 } 197 }
192 } 198 }
193 199
194 return resultado; 200 return resultado;
195 } 201 }
196 }); 202 });
197 }], 203 }],
198 scope: { 204 scope: {
199 latitud: '=', 205 latitud: '=',
200 longitud: '=', 206 longitud: '=',
201 zoom: '=', 207 zoom: '=',
202 marcadores: '=', 208 marcadores: '=',
203 parametros: '=' 209 parametros: '='
204 } 210 }
205 }; 211 };
206 }); 212 });