Commit 7888b4110a7204287717eca6d9acd27fd9bcc20d

Authored by Eric Fernandez
1 parent b7ba244196
Exists in master

validaciones, rechazo remito

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(&#39;focaModalDetalleHojaRuta&#39;)
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(&#39;focaModalDetalleHojaRuta&#39;)
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(&#39;focaModalDetalleHojaRuta&#39;)
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 ]
... ... @@ -15,6 +15,9 @@ angular.module(&#39;focaModalDetalleHojaRuta&#39;)
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"