Commit 14a894e0b14bdc15aa3b1f74375e622c1c720f1e

Authored by Jose Pinto
1 parent 5494a5ba01
Exists in master

espacio

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