Commit 545228123dbcb4de3dabbd94c3156a5b0f6a22f9

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'master'

Master(efernandez)

See merge request !3
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 );
... ... @@ -6,6 +6,9 @@ angular.module(&#39;focaModalDetalleHojaRuta&#39;)
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>