Commit 176b1cb45353c2370d6634c0a40b77dacf5b1ca2

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

Merge branch 'master' into 'develop'

Master

See merge request !13
src/js/controller.js
1 angular.module('focaModalPuntoDescarga') 1 angular.module('focaModalPuntoDescarga')
2 .controller('focaModalPuntoDescargaController', [ 2 .controller('focaModalPuntoDescargaController', [
3 '$timeout', 3 '$timeout',
4 '$filter', 4 '$filter',
5 '$scope', 5 '$scope',
6 '$uibModalInstance', 6 '$uibModalInstance',
7 'focaModalPuntoDescargaService', 7 'focaModalPuntoDescargaService',
8 'filters', 8 'filters',
9 'focaModalService', 9 'focaModalService',
10 function($timeout, $filter, $scope, $uibModalInstance, 10 function($timeout, $filter, $scope, $uibModalInstance,
11 focaModalPuntoDescargaService, filters, focaModalService) { 11 focaModalPuntoDescargaService, filters, focaModalService) {
12 12
13 $scope.cantidadArticulo = 0; 13 $scope.cantidadArticulo = 0;
14 $scope.articuloSeleccionado = 0; 14 $scope.articuloSeleccionado = 0;
15 $scope.ivas = []; 15 $scope.ivas = [];
16 $scope.puntosSeleccionados = []; 16 $scope.puntosSeleccionados = [];
17 $scope.editando = false; 17 $scope.editando = false;
18 $scope.puntoDescarga = { 18 $scope.puntoDescarga = {
19 id: 0, 19 id: 0,
20 id_cliente: filters.idCliente, 20 id_cliente: filters.idCliente,
21 id_da_config_0: filters.idDomicilio, 21 id_da_config_0: filters.idDomicilio,
22 latitud: -32.89214159952345, 22 latitud: filters.domicilio.Latitud,
23 longitud: -68.84572999101856 23 longitud: filters.domicilio.Longitud
24 }; 24 };
25
25 $scope.articulos = angular.copy(filters.articulos); 26 $scope.articulos = angular.copy(filters.articulos);
26 $scope.articulos.map(function(articulo) { 27 $scope.articulos.map(function(articulo) {
27 articulo.restante = articulo.cantidad; 28 articulo.restante = articulo.cantidad;
28 }); 29 });
29 actualizarTabla(); 30 actualizarTabla();
30 cargarPuntos(filters.puntosDescarga); 31 cargarPuntos(filters.puntosDescarga);
31 32
32 $scope.cancel = function() { 33 $scope.cancel = function() {
33 if($scope.ingreso) { 34 if ($scope.ingreso) {
34 $scope.ingreso = false; 35 $scope.ingreso = false;
35 $scope.puntoDescarga = { 36 $scope.puntoDescarga = {
36 id: 0, 37 id: 0,
37 id_cliente: filters.idCliente, 38 id_cliente: filters.idCliente,
38 id_da_config_0: filters.idDomicilio, 39 id_da_config_0: filters.idDomicilio,
39 latitud: -32.89214159952345, 40 latitud: filters.domicilio.Latitud,
40 longitud: -68.84572999101856 41 longitud: filters.domicilio.Longitud
41 }; 42 };
42 $scope.editando = false; 43 $scope.editando = false;
43 }else { 44 } else {
44 $uibModalInstance.dismiss('cancel'); 45 $uibModalInstance.dismiss('cancel');
45 } 46 }
46 }; 47 };
47 48
48 $scope.aceptar = function() { 49 $scope.aceptar = function() {
49 if($scope.cargaArticulos) { 50 if ($scope.cargaArticulos) {
50 cargarArticulos(); 51 cargarArticulos();
51 }else if(!$scope.puntosSeleccionados.length) { 52 } else if(!$scope.puntosSeleccionados.length) {
52 $uibModalInstance.dismiss('cancel'); 53 $uibModalInstance.dismiss('cancel');
53 }else { 54 } else {
54 enviarPuntos(); 55 enviarPuntos();
55 } 56 }
56 }; 57 };
57 58
58 $scope.guardar = function(key) { 59 $scope.guardar = function(key) {
59 if(key === 13) { 60 if(key === 13) {
60 focaModalPuntoDescargaService 61 focaModalPuntoDescargaService
61 .guardarPuntoDescarga($scope.puntoDescarga) 62 .guardarPuntoDescarga($scope.puntoDescarga)
62 .then(function() { 63 .then(function() {
63 actualizarTabla(); 64 actualizarTabla();
64 $scope.ingreso = false; 65 $scope.ingreso = false;
65 $scope.puntoDescarga = { 66 $scope.puntoDescarga = {
66 id: 0, 67 id: 0,
67 id_cliente: filters.idCliente, 68 id_cliente: filters.idCliente,
68 id_da_config_0: filters.idDomicilio, 69 id_da_config_0: filters.idDomicilio,
69 latitud: -32.89214159952345, 70 latitud: filters.domicilio.Latitud,
70 longitud: -68.84572999101856 71 longitud: filters.domicilio.Longitud
71 }; 72 };
72 $scope.editando = false; 73 $scope.editando = false;
73 }); 74 });
74 } 75 }
75 }; 76 };
76 77
77 $scope.editar = function(id) { 78 $scope.editar = function(id) {
78 focaModalPuntoDescargaService.getPuntoDescargaById(id).then(function(res) { 79 focaModalPuntoDescargaService.getPuntoDescargaById(id).then(function(res) {
79 $scope.puntoDescarga = res.data; 80 $scope.puntoDescarga = res.data;
80 $scope.ingreso = true; 81 $scope.ingreso = true;
81 $scope.editando = true; 82 $scope.editando = true;
82 }); 83 });
83 }; 84 };
84 85
85 $scope.eliminar = function(idx, puntoDescarga) { 86 $scope.eliminar = function(idx, puntoDescarga) {
86 focaModalService.confirm('¿Está seguro que desea borrar el punto de descarga '+ 87 focaModalService.confirm('¿Está seguro que desea borrar el punto de descarga '+
87 puntoDescarga.descripcion + '?').then(function(data) { 88 puntoDescarga.descripcion + '?').then(function(data) {
88 if(data) { 89 if (data) {
89 focaModalPuntoDescargaService 90 focaModalPuntoDescargaService
90 .eliminarPuntoDescarga(puntoDescarga.id) 91 .eliminarPuntoDescarga(puntoDescarga.id)
91 .then(function() { 92 .then(function() {
92 $scope.puntosDescarga.splice(idx, 1); 93 $scope.puntosDescarga.splice(idx, 1);
93 }); 94 });
94 } 95 }
95 }); 96 });
96 }; 97 };
97 98
98 $scope.seleccionarPunto = function(idx, esCheckbox) { 99 $scope.seleccionarPunto = function(idx, esCheckbox) {
99 var indexPunto = $scope.puntosSeleccionados.indexOf(idx); 100 var indexPunto = $scope.puntosSeleccionados.indexOf(idx);
100 if(indexPunto !== -1) { 101 if (indexPunto !== -1) {
101 if(!esCheckbox){ 102 if (!esCheckbox) {
102 $scope.puntosDescarga[idx].seleccionado = false; 103 $scope.puntosDescarga[idx].seleccionado = false;
103 } 104 }
104 $scope.puntosSeleccionados.splice(indexPunto, 1); 105 $scope.puntosSeleccionados.splice(indexPunto, 1);
105 }else { 106 } else {
106 if(!esCheckbox){ 107 if (!esCheckbox) {
107 $scope.puntosDescarga[idx].seleccionado = true; 108 $scope.puntosDescarga[idx].seleccionado = true;
108 } 109 }
109 $scope.puntosSeleccionados.push(idx); 110 $scope.puntosSeleccionados.push(idx);
110 } 111 }
111 }; 112 };
112 113
113 $scope.agregarArticulo = function(punto, key) { 114 $scope.agregarArticulo = function(punto, key) {
114 key = (typeof key === 'undefined') ? 13 : key; 115 key = (typeof key === 'undefined') ? 13 : key;
115 116
116 if(key === 13){ 117 if (key === 13) {
117 var articulo = $scope.articulos[$scope.articuloSeleccionado], 118 var articulo = $scope.articulos[$scope.articuloSeleccionado],
118 cantidadRestante = articulo.restante - punto.cantidadACargar; 119 cantidadRestante = articulo.restante - punto.cantidadACargar;
119 120
120 if(cantidadRestante < 0) { 121 if (cantidadRestante < 0) {
121 focaModalService 122 focaModalService
122 .alert('La cantidad a cargar debe ser menor o igual al restante'); 123 .alert('La cantidad a cargar debe ser menor o igual al restante');
123 }else if(punto.cantidadACargar <= 0) { 124 } else if (punto.cantidadACargar <= 0) {
124 focaModalService 125 focaModalService
125 .alert('La cantidad a cargar debe ser mayor que cero'); 126 .alert('La cantidad a cargar debe ser mayor que cero');
126 }else { 127 } else {
127 punto.cargado += parseInt(punto.cantidadACargar); 128 punto.cargado += parseInt(punto.cantidadACargar);
128 articulo.restante = cantidadRestante; 129 articulo.restante = cantidadRestante;
129 var existeArticulo = punto.articulosAgregados.filter( 130 var existeArticulo = punto.articulosAgregados.filter(
130 function (articuloAAgregar) { 131 function (articuloAAgregar) {
131 return articuloAAgregar.id === articulo.idArticulo; 132 return articuloAAgregar.id === articulo.idArticulo;
132 }); 133 });
133 //Si el articulo ya fue agregado 134 //Si el articulo ya fue agregado
134 if(existeArticulo.length) { 135 if (existeArticulo.length) {
135 //Solo sumo cantidad 136 //Solo sumo cantidad
136 var total = parseInt(existeArticulo[0].cantidad) + 137 var total = parseInt(existeArticulo[0].cantidad) +
137 parseInt(punto.cantidadACargar); 138 parseInt(punto.cantidadACargar);
138 existeArticulo[0].cantidad = total; 139 existeArticulo[0].cantidad = total;
139 }else { 140 } else {
140 //Agrego el articulo con la cantidad 141 //Agrego el articulo con la cantidad
141 punto.articulosAgregados.push({ 142 punto.articulosAgregados.push({
142 id: articulo.idArticulo, 143 id: articulo.idArticulo,
143 descripcion: articulo.descripcion, 144 descripcion: articulo.descripcion,
144 cantidad: punto.cantidadACargar, 145 cantidad: punto.cantidadACargar,
145 index: $scope.articuloSeleccionado 146 index: $scope.articuloSeleccionado
146 }); 147 });
147 } 148 }
148 punto.cantidadACargar = 0; 149 punto.cantidadACargar = 0;
149 } 150 }
150 } 151 }
151 }; 152 };
152 153
153 $scope.quitarArticulo = function(articulo, idx, punto) { 154 $scope.quitarArticulo = function(articulo, idx, punto) {
154 var articuloAEliminar = $scope.articulos.filter(function(art) { 155 var articuloAEliminar = $scope.articulos.filter(function(art) {
155 return art.id === articulo.id; 156 return art.id === articulo.id;
156 }); 157 });
157 var restante = parseInt(articuloAEliminar[0].restante); 158 var restante = parseInt(articuloAEliminar[0].restante);
158 restante += parseInt(articulo.cantidad); 159 restante += parseInt(articulo.cantidad);
159 articuloAEliminar[0].restante = restante; 160 articuloAEliminar[0].restante = restante;
160 161
161 punto.cargado -= parseInt(punto.articulosAgregados[idx].cantidad); 162 punto.cargado -= parseInt(punto.articulosAgregados[idx].cantidad);
162 punto.articulosAgregados.splice(idx, 1); 163 punto.articulosAgregados.splice(idx, 1);
163 }; 164 };
164 165
165 function actualizarTabla() { 166 function actualizarTabla() {
166 focaModalPuntoDescargaService 167 focaModalPuntoDescargaService
167 .getPuntosDescargaByClienDom(filters.idDomicilio, filters.idCliente) 168 .getPuntosDescargaByClienDom(filters.idDomicilio, filters.idCliente)
168 .then(function(res) { 169 .then(function(res) {
169 $scope.puntosDescarga = res.data; 170 $scope.puntosDescarga = res.data;
170 }); 171 });
171 } 172 }
172 function verCargaArticulos() { 173 function verCargaArticulos() {
173 $scope.puntosACargar = []; 174 $scope.puntosACargar = [];
174 $scope.cargaArticulos = true; 175 $scope.cargaArticulos = true;
175 $scope.puntosSeleccionados.forEach(function(idx) { 176 $scope.puntosSeleccionados.forEach(function(idx) {
176 $scope.puntosACargar.push($scope.puntosDescarga[idx]); 177 $scope.puntosACargar.push($scope.puntosDescarga[idx]);
177 }); 178 });
178 179
179 $scope.puntosACargar.map(function(punto) { 180 $scope.puntosACargar.map(function(punto) {
180 punto.articulosAgregados = []; 181 punto.articulosAgregados = [];
181 punto.cantidadACargar = 0; 182 punto.cantidadACargar = 0;
182 punto.cargado = 0; 183 punto.cargado = 0;
183 }); 184 });
184 } 185 }
185 function cargarArticulos() { 186 function cargarArticulos() {
186 $uibModalInstance.close($scope.puntosACargar); 187 $uibModalInstance.close($scope.puntosACargar);
187 } 188 }
188 function cargarPuntos(puntosDescarga) { 189 function cargarPuntos(puntosDescarga) {
189 //Si existen puntos ya cargados 190 //Si existen puntos ya cargados
190 if(puntosDescarga) { 191 if (puntosDescarga) {
191 if(!puntosDescarga[0].cargado) { 192 if (!puntosDescarga[0].cargado) {
192 agregarTotalCargado(puntosDescarga); 193 agregarTotalCargado(puntosDescarga);
193 } 194 }
194 $scope.puntosACargar = puntosDescarga; 195 $scope.puntosACargar = puntosDescarga;
195 $scope.cargaArticulos = true; 196 $scope.cargaArticulos = true;
196 //Recorro los puntos 197 //Recorro los puntos
197 puntosDescarga.forEach(function(punto) { 198 puntosDescarga.forEach(function(punto) {
198 //Recorro los articulos cargados en cada punto 199 //Recorro los articulos cargados en cada punto
199 punto.articulosAgregados.forEach(function(articulo) { 200 punto.articulosAgregados.forEach(function(articulo) {
200 var articuloARestar = $scope.articulos.filter(function(art) { 201 var articuloARestar = $scope.articulos.filter(function(art) {
201 return art.idArticulo === articulo.id; 202 return art.idArticulo === articulo.id;
202 }); 203 });
203 articuloARestar[0].restante -= articulo.cantidad; 204 articuloARestar[0].restante -= articulo.cantidad;
204 }); 205 });
205 }); 206 });
206 } 207 }
207 } 208 }
208 function agregarTotalCargado(puntosDescarga) { 209 function agregarTotalCargado(puntosDescarga) {
209 puntosDescarga.map(function(punto) { 210 puntosDescarga.map(function(punto) {
210 punto.cantidadACargar = 0; 211 punto.cantidadACargar = 0;
211 punto.cargado = 0; 212 punto.cargado = 0;
212 }); 213 });
213 //Agrego cantidad de combustible cargada en los puntos de descarga 214 //Agrego cantidad de combustible cargada en los puntos de descarga
214 puntosDescarga.forEach(function(punto) { 215 puntosDescarga.forEach(function(punto) {
215 punto.articulosAgregados.forEach(function(articulo) { 216 punto.articulosAgregados.forEach(function(articulo) {
216 punto.cargado += articulo.cantidad; 217 punto.cargado += articulo.cantidad;
217 }); 218 });
218 }); 219 });
219 } 220 }
220 function enviarPuntos() { 221 function enviarPuntos() {
221 var result = []; 222 var result = [];
222 $scope.puntosSeleccionados.forEach(function(idx) { 223 $scope.puntosSeleccionados.forEach(function(idx) {
223 result.push($scope.puntosDescarga[idx]); 224 result.push($scope.puntosDescarga[idx]);
224 }); 225 });
225 $uibModalInstance.close(result); 226 $uibModalInstance.close(result);
226 } 227 }
227 }] 228 }]
228 ); 229 );
229 230