Commit 545228123dbcb4de3dabbd94c3156a5b0f6a22f9
Exists in
master
Merge branch 'master' into 'master'
Master(efernandez) See merge request !3
Showing
3 changed files
Show diff stats
src/js/controller.js
| ... | ... | @@ -4,39 +4,63 @@ angular.module('focaModalDetalleHojaRuta') |
| 4 | 4 | '$filter', |
| 5 | 5 | '$scope', |
| 6 | 6 | '$uibModalInstance', |
| 7 | - 'parametrosDetalleHojaRuta', | |
| 8 | - function($filter, $scope, $uibModalInstance, parametrosDetalleHojaRuta) { | |
| 9 | - $scope.paso = 0; | |
| 10 | - $scope.parametrosDetalleHojaRuta = parametrosDetalleHojaRuta; | |
| 7 | + 'remito', | |
| 8 | + 'focaModalDetalleHojaRutaService', | |
| 9 | + function($filter, $scope, $uibModalInstance, remito, focaModalDetalleHojaRutaService) { | |
| 10 | + $scope.remito = remito; | |
| 11 | + $scope.cisternas = []; | |
| 12 | + $scope.articuloSeleccionado = {}; | |
| 13 | + $scope.cambio = function(articulo) { | |
| 14 | + $scope.articuloSeleccionado = articulo; | |
| 15 | + }; | |
| 16 | + focaModalDetalleHojaRutaService.getCisternasByIdRemito($scope.remito.id) | |
| 17 | + .then(function(res) { | |
| 18 | + $scope.cisternas = res.data; | |
| 19 | + }); | |
| 20 | + | |
| 11 | 21 | $scope.aceptar = function() { |
| 12 | - var parametrosDetalleHojaRuta = { | |
| 13 | - remito: $scope.parametrosDetalleHojaRuta.remito, | |
| 14 | - cliente: $scope.parametrosDetalleHojaRuta.cliente, | |
| 15 | - domicilio: $scope.parametrosDetalleHojaRuta.domicilio, | |
| 16 | - producto: $scope.parametrosDetalleHojaRuta.producto, | |
| 17 | - litros: $scope.parametrosDetalleHojaRuta.litros, | |
| 18 | - litrosDescargados: $scope.parametrosDetalleHojaRuta.litrosDescargados, | |
| 19 | - numeroRecibo: $scope.parametrosDetalleHojaRuta.numeroRecibo, | |
| 20 | - observaciones: $scope.parametrosDetalleHojaRuta.observaciones | |
| 22 | + var articulos = articulosDescargados(); | |
| 23 | + var cisternaMovimientos = []; | |
| 24 | + var hojaRutaMovimientos = []; | |
| 25 | + for(var i = 0; i < articulos.length; i++) { | |
| 26 | + var cisternaMovimiento = { | |
| 27 | + idRemito: $scope.remito.id, | |
| 28 | + cantidad: articulos[i].aCargar, | |
| 29 | + metodo: 'descarga' | |
| 30 | + }; | |
| 31 | + var hojaRutaMovimiento = { | |
| 32 | + idRemito: $scope.remito.id, | |
| 33 | + reciboDescarga: articulos[i].numeroRecibo | |
| 34 | + }; | |
| 35 | + cisternaMovimientos.push(cisternaMovimiento); | |
| 36 | + hojaRutaMovimientos.push(hojaRutaMovimiento); | |
| 37 | + } | |
| 38 | + var result = { | |
| 39 | + cisternaMovimientos: cisternaMovimientos, | |
| 40 | + hojaRutaMovimientos: hojaRutaMovimientos, | |
| 41 | + idRemito: $scope.remito.id, | |
| 42 | + observaciones: $scope.remito.observaciones | |
| 21 | 43 | }; |
| 22 | - $uibModalInstance.close(parametrosDetalleHojaRuta); | |
| 44 | + $uibModalInstance.close(result); | |
| 23 | 45 | }; |
| 24 | 46 | |
| 25 | 47 | $scope.cancel = function() { |
| 26 | 48 | $uibModalInstance.dismiss('cancel'); |
| 27 | 49 | }; |
| 28 | - | |
| 50 | + | |
| 29 | 51 | $scope.validar = function() { |
| 30 | - return $scope.formDetalleHojaRuta.$pristine || | |
| 31 | - !$scope.parametrosDetalleHojaRuta.litrosDescargados || | |
| 32 | - $scope.parametrosDetalleHojaRuta.litrosDescargados < 1 || | |
| 33 | - !$scope.parametrosDetalleHojaRuta.numeroRecibo || | |
| 34 | - $scope.parametrosDetalleHojaRuta.numeroRecibo < 1; | |
| 52 | + return !articulosDescargados().length; | |
| 35 | 53 | }; |
| 36 | 54 | |
| 37 | - $scope.irPaso = function(paso) { | |
| 38 | - $scope.paso = paso; | |
| 39 | - }; | |
| 55 | + function articulosDescargados() { | |
| 56 | + var articulosDescargados = $scope.remito.articulosRemito.filter( | |
| 57 | + function(articulo) { | |
| 58 | + if(articulo.aCargar && articulo.numeroRecibo) { | |
| 59 | + return articulo; | |
| 60 | + } | |
| 61 | + }); | |
| 62 | + return articulosDescargados; | |
| 63 | + } | |
| 40 | 64 | } |
| 41 | 65 | ] |
| 42 | 66 | ); |
src/js/service.js
| ... | ... | @@ -6,6 +6,9 @@ angular.module('focaModalDetalleHojaRuta') |
| 6 | 6 | return { |
| 7 | 7 | getDetallesHojaRuta: function() { |
| 8 | 8 | return $http.get(API_ENDPOINT.URL + '/transportista'); |
| 9 | + }, | |
| 10 | + getCisternasByIdRemito: function(idRemito) { | |
| 11 | + return $http.get(API_ENDPOINT.URL + '/cisternas/obtener/remito/' + idRemito); | |
| 9 | 12 | } |
| 10 | 13 | }; |
| 11 | 14 | } |
src/views/modal-detalle-hoja-ruta.html
| 1 | 1 | <div class="modal-header py-1"> |
| 2 | - <h5 class="modal-title">Detalle de hoja de ruta</h5> | |
| 2 | + <h5 class="modal-title">Detalle de descarga</h5> | |
| 3 | 3 | </div> |
| 4 | 4 | <div class="modal-body" id="modal-body"> |
| 5 | 5 | <form name="formDetalleHojaRuta"> |
| 6 | 6 | <div class="form-group row"> |
| 7 | - <div class="col-6 px-2"> | |
| 8 | - <label class="col-12 col-sm-6 px-0 mb-0"> | |
| 9 | - <b>Remito</b> | |
| 7 | + <div class="col-12 px-0"> | |
| 8 | + <label class="form-control-sm"> | |
| 9 | + <b>Remito Nº</b> | |
| 10 | + <span ng-bind="[remito.numeroRemito, remito.sucursal] | comprobante"/> | |
| 10 | 11 | </label> |
| 11 | - <div class="col-12 col-sm-6 px-0"> | |
| 12 | - <span ng-bind="parametrosDetalleHojaRuta.remito"/> | |
| 13 | - </div> | |
| 14 | 12 | </div> |
| 15 | - <div class="col-6 px-2"> | |
| 16 | - <label class="col-12 col-sm-6 px-0 mb-0"> | |
| 13 | + <div class="col-12 px-0"> | |
| 14 | + <label class="form-control-sm"> | |
| 17 | 15 | <b>Cliente</b> |
| 18 | 16 | </label> |
| 19 | - <div class="col-12 col-sm-6 px-0"> | |
| 20 | - <span ng-bind="parametrosDetalleHojaRuta.cliente"/> | |
| 21 | - </div> | |
| 17 | + <span ng-bind="remito.nombreCliente"/> | |
| 22 | 18 | </div> |
| 23 | - <div class="col-6 px-2"> | |
| 24 | - <label class="col-12 col-sm-6 px-0 mb-0"> | |
| 19 | + <div class="col-12 px-0"> | |
| 20 | + <label class="form-control-sm"> | |
| 25 | 21 | <b>Domicilio</b> |
| 22 | + <span ng-bind="remito.domicilioStamp"/> | |
| 26 | 23 | </label> |
| 27 | - <div class="col-12 col-sm-6 px-0"> | |
| 28 | - <span ng-bind="parametrosDetalleHojaRuta.domicilio"/> | |
| 29 | - </div> | |
| 30 | 24 | </div> |
| 31 | - <div class="col-6 px-2"> | |
| 32 | - <label class="col-12 col-sm-6 px-0 mb-0"> | |
| 33 | - <b>Contacto</b> | |
| 34 | - </label> | |
| 35 | - <div class="col-12 col-sm-6 px-0"> | |
| 36 | - <span ng-bind="parametrosDetalleHojaRuta.contacto"/> | |
| 37 | - </div> | |
| 38 | - </div> | |
| 39 | - <div class="col-6 px-2"> | |
| 40 | - <label class="col-12 col-sm-6 px-0 mb-0"> | |
| 41 | - <b>Teléfono</b> | |
| 42 | - </label> | |
| 43 | - <div class="col-12 col-sm-6 px-0"> | |
| 44 | - <span ng-bind="parametrosDetalleHojaRuta.telefonoContacto"/> | |
| 45 | - </div> | |
| 46 | - </div> | |
| 47 | - <div class="col-6 px-2"> | |
| 48 | - <label class="col-12 col-sm-6 px-0 mb-0"> | |
| 49 | - <b>Producto</b> | |
| 50 | - </label> | |
| 51 | - <div class="col-12 col-sm-6 px-0"> | |
| 52 | - <span ng-bind="parametrosDetalleHojaRuta.producto"/> | |
| 53 | - </div> | |
| 25 | + <div class="col-12 px-0"> | |
| 26 | + <strong>Articulo a descargar</strong> | |
| 27 | + <table class="table table-sm"> | |
| 28 | + <thead> | |
| 29 | + <tr> | |
| 30 | + <th></th> | |
| 31 | + <th>Articulo</th> | |
| 32 | + <th>Total</th> | |
| 33 | + <th>Descargado</th> | |
| 34 | + </tr> | |
| 35 | + </thead> | |
| 36 | + <tbody> | |
| 37 | + <tr ng-repeat="(key, articulo) in remito.articulosRemito"> | |
| 38 | + <td class="pt-2"><input | |
| 39 | + type="radio" | |
| 40 | + name="articuloRadio" | |
| 41 | + id="{{'articulo' + articulo.id}}" | |
| 42 | + ng-click="cambio(articulo)" | |
| 43 | + ng-disabled="articulo.cargado" | |
| 44 | + ></td> | |
| 45 | + <td ng-bind="articulo.descripcion"></td> | |
| 46 | + <td ng-bind="articulo.cantidad"></td> | |
| 47 | + <td ng-bind="articulo.descargado || articulo.cantidad"></td> | |
| 48 | + </tbody> | |
| 49 | + </table> | |
| 50 | + <strong>Cisterna</strong> | |
| 51 | + <table class="table table-sm"> | |
| 52 | + <thead> | |
| 53 | + <tr> | |
| 54 | + <th>Código</th> | |
| 55 | + <th>Articulo</th> | |
| 56 | + <th>Total</th> | |
| 57 | + <th>A descargar</th> | |
| 58 | + </tr> | |
| 59 | + </thead> | |
| 60 | + <tbody> | |
| 61 | + <tr ng-repeat="(key, cisterna) in cisternas"> | |
| 62 | + <td ng-bind="cisterna.codigo"></td> | |
| 63 | + <td ng-bind="cisterna.cisternaCarga.articulo.DetArt"></td> | |
| 64 | + <td ng-bind="cisterna.cisternaCarga.cantidad"></td> | |
| 65 | + <td><input | |
| 66 | + class="form-control form-control-sm" | |
| 67 | + type="number" | |
| 68 | + ng-model="cisterna.aDescargar" | |
| 69 | + foca-focus="" | |
| 70 | + ng-disabled="articuloSeleccionado.idArticulo != cisterna.cisternaCarga.idProducto"/></td> | |
| 71 | + </tr> | |
| 72 | + </tbody> | |
| 73 | + </table> | |
| 54 | 74 | </div> |
| 55 | - <div class="col-6 px-2"> | |
| 56 | - <label class="col-12 col-sm-6 px-0 mb-0"> | |
| 57 | - <b>Litros</b> | |
| 75 | + <div class="col-12 px-0"> | |
| 76 | + <label class="form-control-sm px-0"> | |
| 77 | + <b>Observaciones</b> | |
| 58 | 78 | </label> |
| 59 | - <div class="col-12 col-sm-6 px-0"> | |
| 60 | - <span ng-bind="parametrosDetalleHojaRuta.litros"/> | |
| 61 | - </div> | |
| 62 | 79 | </div> |
| 63 | - <div class="w-100"></div> | |
| 64 | - <div class="form-group col-6 px-0"> | |
| 65 | - <label | |
| 66 | - class="col-12 col-sm-3 col-form-label col-form-label-sm px-2" | |
| 67 | - >Litros descargados</label> | |
| 68 | - <div class="col-12 col-sm-3 px-2"> | |
| 69 | - <input | |
| 70 | - type="number" | |
| 71 | - min="0" | |
| 72 | - step="1" | |
| 73 | - class="form-control form-control-sm" | |
| 74 | - id="litrosDescargados" | |
| 75 | - name="litrosDescargados" | |
| 76 | - placeholder="Litros descargados" | |
| 77 | - ng-model="parametrosDetalleHojaRuta.litrosDescargados" | |
| 78 | - foca-focus="paso === 0" | |
| 79 | - ng-keypress="$event.keyCode === 13 && irPaso(1)" | |
| 80 | - foca-tipo-input | |
| 81 | - teclado-virtual | |
| 82 | - /> | |
| 83 | - </div> | |
| 80 | + <div class="col-12"> | |
| 81 | + <textarea | |
| 82 | + ng-model="remito.observaciones" | |
| 83 | + class="form-control form-control-sm" | |
| 84 | + rows="1" | |
| 85 | + ></textarea> | |
| 84 | 86 | </div> |
| 85 | - <div class="form-group col-6 px-0"> | |
| 86 | - <label | |
| 87 | - class="col-12 col-sm-3 col-form-label col-form-label-sm px-2" | |
| 88 | - >Nº recibo</label> | |
| 89 | - <div class="col-12 col-sm-33 px-2"> | |
| 90 | - <input | |
| 91 | - type="number" | |
| 92 | - min="0" | |
| 93 | - step="0.01" | |
| 94 | - class="form-control form-control-sm" | |
| 95 | - id="numeroRecibo" | |
| 96 | - name="numeroRecibo" | |
| 97 | - placeholder="Nº Recibo" | |
| 98 | - ng-model="parametrosDetalleHojaRuta.numeroRecibo" | |
| 99 | - foca-focus="paso === 1" | |
| 100 | - ng-keypress="$event.keyCode == 13 && validar() && aceptar()" | |
| 101 | - foca-tipo-input | |
| 102 | - teclado-virtual | |
| 103 | - /> | |
| 104 | - </div> | |
| 105 | - </div> | |
| 106 | - <div class="row"> | |
| 107 | - <div class="form-group col-12 pr-0"> | |
| 108 | - <label | |
| 109 | - class="col-12 col-sm-3 col-form-label col-form-label-sm px-2" | |
| 110 | - >Observaciones</label> | |
| 111 | - <textarea | |
| 112 | - ng-model="parametrosDetalleHojaRuta.observaciones" | |
| 113 | - class="form-control mx-2" | |
| 114 | - rows="5" | |
| 115 | - teclado-virtual | |
| 116 | - ></textarea> | |
| 117 | - </div> | |
| 87 | + <div class="col-12 row mt-2"> | |
| 88 | + <label class="form-control-sm px-0 col-3"><b>Nº Recibo</b></label> | |
| 89 | + <input | |
| 90 | + class="form-control form-control-sm col-4" | |
| 91 | + type="number" | |
| 92 | + ng-model="numeroRecibo"> | |
| 93 | + <button | |
| 94 | + class="ml-4 form-control-sm btn btn-success col-4" | |
| 95 | + ladda="cargando" | |
| 96 | + data-spinner-color="#FF0000" | |
| 97 | + type="button" | |
| 98 | + ng-disabled="!distribucionDisponible()" | |
| 99 | + ng-click="cargarACisternas(vehiculo)" | |
| 100 | + foca-focus="distribucionDisponible()"> | |
| 101 | + Descargar | |
| 102 | + </button> | |
| 118 | 103 | </div> |
| 119 | 104 | </div> |
| 120 | 105 | </form> |
| 121 | 106 | </div> |
| 122 | 107 | <div class="modal-footer py-2"> |
| 123 | 108 | <button |
| 109 | + class="btn btn-danger btn-sm" | |
| 110 | + type="button" | |
| 111 | + ng-click="" | |
| 112 | + ng-disabled="" | |
| 113 | + >Anular</button> | |
| 114 | + <button | |
| 124 | 115 | class="btn btn-secondary btn-sm" |
| 125 | 116 | type="button" |
| 117 | + ng-click="cancel()" | |
| 118 | + >Cancelar</button> | |
| 119 | + <button | |
| 120 | + class="btn btn-primary btn-sm" | |
| 121 | + type="button" | |
| 126 | 122 | ng-click="aceptar()" |
| 127 | 123 | ng-disabled="validar()" |
| 128 | 124 | >Aceptar</button> |
| 129 | - <button class="btn btn-secondary btn-sm" type="button" ng-click="cancel()">Cancelar</button> | |
| 130 | 125 | </div> |