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> |