Commit 7888b4110a7204287717eca6d9acd27fd9bcc20d
1 parent
b7ba244196
Exists in
master
validaciones, rechazo remito
Showing
3 changed files
with
67 additions
and
20 deletions
Show diff stats
src/js/controller.js
... | ... | @@ -17,7 +17,7 @@ angular.module('focaModalDetalleHojaRuta') |
17 | 17 | $scope.articuloSeleccionado = {}; |
18 | 18 | $scope.aDescargar = []; |
19 | 19 | $scope.cargando = true; |
20 | - | |
20 | + | |
21 | 21 | //Datos |
22 | 22 | var promesaRemito = focaModalDetalleHojaRutaService |
23 | 23 | .getRemitoById(idRemito); |
... | ... | @@ -28,35 +28,54 @@ angular.module('focaModalDetalleHojaRuta') |
28 | 28 | $scope.cargando = false; |
29 | 29 | $scope.remito = res[0].data; |
30 | 30 | $scope.cisternas = res[1].data; |
31 | - $scope.cambio($scope.remito.articulosRemito[0]); | |
31 | + var articuloAChequear = $scope.remito.articulosRemito.filter( | |
32 | + function(articulo) { | |
33 | + return !articulo.descargado; | |
34 | + }); | |
35 | + if(!articuloAChequear.length || $scope.remito.rechazado) { | |
36 | + $scope.readonly = true; | |
37 | + $scope.cambio($scope.remito.articulosRemito[0]); | |
38 | + }else { | |
39 | + $scope.cambio(articuloAChequear[0]); | |
40 | + } | |
32 | 41 | $scope.$digest(); |
33 | 42 | }, function() { |
34 | 43 | focaModalService.alert('El servicio no responde intente más tarde'); |
35 | 44 | $uibModalInstance.dismiss(); |
36 | 45 | }); |
37 | 46 | $scope.cambio = function(articulo) { |
47 | + if(!$scope.articuloSeleccionado.descargado) { | |
48 | + $scope.articuloSeleccionado.cantidadDescargada = 0; | |
49 | + } | |
38 | 50 | $scope.aDescargar = []; |
39 | 51 | $scope.articuloSeleccionado = articulo; |
40 | 52 | }; |
41 | 53 | $scope.descargar = function(key) { |
42 | - var hojaRutaMovimientos = []; | |
43 | - var cisternaMovimientos = []; | |
44 | - var cisternaCargas = []; | |
45 | - var totalADescargar = 0; | |
46 | - for (var i = 0; i < $scope.aDescargar.length; i++) { | |
47 | - totalADescargar += $scope.aDescargar[i] || 0; | |
48 | - } | |
49 | 54 | if(key === 13) { |
55 | + $scope.cargando = true; | |
56 | + var hojaRutaMovimientos = []; | |
57 | + var cisternaMovimientos = []; | |
58 | + var cisternaCargas = []; | |
59 | + var totalADescargar = 0; | |
60 | + for(var i = 0; i < $scope.aDescargar.length; i++) { | |
61 | + totalADescargar += $scope.aDescargar[i] || 0; | |
62 | + } | |
50 | 63 | focaModalService |
51 | 64 | .confirm('¿Desea descargar ' + totalADescargar + ' litros de ' + |
52 | 65 | $scope.articuloSeleccionado.descripcion + '?') |
53 | 66 | .then(descargar); |
54 | 67 | } |
55 | 68 | function descargar() { |
56 | - for (var i = 0; i < $scope.cisternas.length; i++) { | |
69 | + for(var i = 0; i < $scope.cisternas.length; i++) { | |
57 | 70 | var descarga = $scope.aDescargar[i]; |
58 | - if(!descarga) continue; | |
59 | 71 | var cisternaCarga = $scope.cisternas[i].cisternaCarga; |
72 | + if(!descarga) continue; | |
73 | + if(descarga > cisternaCarga.cantidad) { | |
74 | + focaModalService.alert('La cantidad a descargar no debe ser ' + | |
75 | + 'mayor a la cantidad de la cisterna'); | |
76 | + $scope.cargando = false; | |
77 | + return; | |
78 | + } | |
60 | 79 | cisternaCarga.cantidad -= descarga; |
61 | 80 | |
62 | 81 | //Guardar |
... | ... | @@ -80,7 +99,8 @@ angular.module('focaModalDetalleHojaRuta') |
80 | 99 | var save = { |
81 | 100 | cisternaCargas: cisternaCargas, |
82 | 101 | cisternaMovimientos: cisternaMovimientos, |
83 | - hojaRutaMovimientos: hojaRutaMovimientos | |
102 | + hojaRutaMovimientos: hojaRutaMovimientos, | |
103 | + articulo: $scope.articuloSeleccionado | |
84 | 104 | }; |
85 | 105 | focaModalDetalleHojaRutaService |
86 | 106 | .postMovimientoHojaRuta(save) |
... | ... | @@ -94,6 +114,15 @@ angular.module('focaModalDetalleHojaRuta') |
94 | 114 | $scope.remito.observaciones); |
95 | 115 | $scope.aDescargar = []; |
96 | 116 | $scope.remito.observaciones = ''; |
117 | + $scope.articuloSeleccionado.descargado = true; | |
118 | + var siguienteArticulo = $scope.remito.articulosRemito.filter( | |
119 | + function(articulo) { | |
120 | + return articulo.id != $scope.articuloSeleccionado.id; | |
121 | + } | |
122 | + ); | |
123 | + if(siguienteArticulo.length) { | |
124 | + $scope.cambio(siguienteArticulo[0]); | |
125 | + } | |
97 | 126 | success(); |
98 | 127 | } |
99 | 128 | } |
... | ... | @@ -119,18 +148,30 @@ angular.module('focaModalDetalleHojaRuta') |
119 | 148 | $scope.rechazar = function() { |
120 | 149 | focaModalService |
121 | 150 | .prompt('Aclare el motivo de rechazo') |
122 | - .then(function() { | |
123 | - focaModalService.alert('desarrollo'); | |
124 | - $uibModalInstance.dismiss(); | |
151 | + .then(function(motivo) { | |
152 | + $scope.cargando = true; | |
153 | + var remitoRechazado = $.extend(true, {}, $scope.remito); | |
154 | + delete remitoRechazado.articulosRemito; | |
155 | + delete remitoRechazado.notaPedido; | |
156 | + remitoRechazado.rechazado = true; | |
157 | + remitoRechazado.motivoRechazo = motivo; | |
158 | + remitoRechazado.fechaRemito = | |
159 | + remitoRechazado.fechaRemito.slice(0, 19).replace('T', ' '); | |
160 | + focaModalDetalleHojaRutaService | |
161 | + .rechazarRemito(remitoRechazado) | |
162 | + .then(success) | |
163 | + .catch(error) | |
164 | + $scope.readonly = true; | |
125 | 165 | }); |
126 | 166 | }; |
127 | - | |
167 | + | |
128 | 168 | //funciones |
129 | 169 | function error(error) { |
130 | 170 | focaModalService.alert('Hubo un error ' + error); |
131 | 171 | } |
132 | 172 | function success() { |
133 | 173 | focaModalService.alert('Operación realizada con éxito'); |
174 | + $scope.cargando = false; | |
134 | 175 | } |
135 | 176 | } |
136 | 177 | ] |
src/js/service.js
... | ... | @@ -15,6 +15,9 @@ angular.module('focaModalDetalleHojaRuta') |
15 | 15 | }, |
16 | 16 | postMovimientoHojaRuta: function(datos) { |
17 | 17 | return $http.post(API_ENDPOINT.URL + '/hoja-ruta/movimiento', datos); |
18 | + }, | |
19 | + rechazarRemito: function(remito) { | |
20 | + return $http.post(API_ENDPOINT.URL + '/remito/update', {remito: remito}); | |
18 | 21 | } |
19 | 22 | }; |
20 | 23 | } |
src/views/modal-detalle-hoja-ruta.html
... | ... | @@ -76,12 +76,12 @@ |
76 | 76 | name="articuloRadio" |
77 | 77 | id="{{'articulo' + articulo.id}}" |
78 | 78 | ng-click="cambio(articulo)" |
79 | - ng-disabled="articulo.cargado" | |
79 | + ng-disabled="articulo.descargado || readonly" | |
80 | 80 | ng-checked="articuloSeleccionado.id === articulo.id" |
81 | 81 | ></td> |
82 | 82 | <td ng-bind="articulo.descripcion"></td> |
83 | 83 | <td ng-bind="articulo.cantidad"></td> |
84 | - <td ng-bind="articulo.cantidad - articulo.cantidadDescargada"></td> | |
84 | + <td ng-bind="articulo.cantidadDescargada || 0"></td> | |
85 | 85 | </tbody> |
86 | 86 | </table> |
87 | 87 | <strong>Cisterna</strong> |
... | ... | @@ -105,7 +105,8 @@ |
105 | 105 | ng-model="aDescargar[key]" |
106 | 106 | ng-change="actualizarArticulo()" |
107 | 107 | foca-focus="articuloSeleccionado.idArticulo == cisterna.cisternaCarga.idProducto" |
108 | - ng-disabled="articuloSeleccionado.idArticulo != cisterna.cisternaCarga.idProducto"/></td> | |
108 | + ng-disabled="articuloSeleccionado.idArticulo != cisterna.cisternaCarga.idProducto | |
109 | + || readonly"/></td> | |
109 | 110 | </tr> |
110 | 111 | </tbody> |
111 | 112 | </table> |
... | ... | @@ -117,6 +118,7 @@ |
117 | 118 | <div class="col-12"> |
118 | 119 | <textarea |
119 | 120 | ng-model="remito.observaciones" |
121 | + ng-disabled="readonly" | |
120 | 122 | class="form-control form-control-sm" |
121 | 123 | rows="1" |
122 | 124 | ></textarea> |
... | ... | @@ -126,6 +128,7 @@ |
126 | 128 | <input |
127 | 129 | class="form-control form-control-sm col-4" |
128 | 130 | type="number" |
131 | + ng-disabled="readonly" | |
129 | 132 | ng-model="numeroRecibo" |
130 | 133 | ng-keypress="descargar($event.keyCode)" |
131 | 134 | foca-focus="distribucionDisponible()"> |
... | ... | @@ -146,7 +149,7 @@ |
146 | 149 | class="btn btn-danger btn-sm" |
147 | 150 | type="button" |
148 | 151 | ng-click="rechazar()" |
149 | - ng-disabled="" | |
152 | + ng-disabled="readonly" | |
150 | 153 | >Rechazar</button> |
151 | 154 | <button |
152 | 155 | class="btn btn-secondary btn-sm" |