Commit 4f2d0ff9b92fc6dd2b8a5fa02a49b16e4ef08e51

Authored by Jose Pinto
1 parent 0a1b3d1b60
Exists in master

fuera carga articulos, solo seleccionar puntos

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