Commit 6768e62d481bb3062752ac60f2a82b2ec92e1de7
1 parent
0e77d80eee
Exists in
master
refactor
Showing
2 changed files
with
85 additions
and
125 deletions
Show diff stats
src/js/controller.js
1 | angular.module('focaModalDetalleHojaRuta') | 1 | angular.module('focaModalDetalleHojaRuta') |
2 | .controller('focaModalDetalleHojaRutaController', | 2 | .controller('focaModalDetalleHojaRutaController', |
3 | [ | 3 | [ |
4 | '$filter', | 4 | '$filter', |
5 | '$scope', | 5 | '$scope', |
6 | '$uibModalInstance', | 6 | '$uibModalInstance', |
7 | 'parametrosDetalleHojaRuta', | 7 | 'remito', |
8 | function($filter, $scope, $uibModalInstance, parametrosDetalleHojaRuta) { | 8 | function($filter, $scope, $uibModalInstance, remito) { |
9 | $scope.paso = 0; | 9 | $scope.remito = remito; |
10 | $scope.parametrosDetalleHojaRuta = parametrosDetalleHojaRuta; | ||
11 | $scope.aceptar = function() { | 10 | $scope.aceptar = function() { |
12 | var parametrosDetalleHojaRuta = { | 11 | var articulos = articulosDescargados(); |
13 | remito: $scope.parametrosDetalleHojaRuta.remito, | 12 | var cisternaMovimientos = []; |
14 | cliente: $scope.parametrosDetalleHojaRuta.cliente, | 13 | var hojaRutaMovimientos = []; |
15 | domicilio: $scope.parametrosDetalleHojaRuta.domicilio, | 14 | for(var i = 0; i < articulos.length; i++) { |
16 | producto: $scope.parametrosDetalleHojaRuta.producto, | 15 | var cisternaMovimiento = { |
17 | litros: $scope.parametrosDetalleHojaRuta.litros, | 16 | idRemito: $scope.remito.id, |
18 | litrosDescargados: $scope.parametrosDetalleHojaRuta.litrosDescargados, | 17 | cantidad: articulos[i].aCargar, |
19 | numeroRecibo: $scope.parametrosDetalleHojaRuta.numeroRecibo, | 18 | metodo: 'descarga' |
20 | observaciones: $scope.parametrosDetalleHojaRuta.observaciones | 19 | } |
21 | }; | 20 | var hojaRutaMovimiento = { |
22 | $uibModalInstance.close(parametrosDetalleHojaRuta); | 21 | idRemito: $scope.remito.id, |
22 | reciboDescarga: articulos[i].numeroRecibo | ||
23 | } | ||
24 | cisternaMovimientos.push(cisternaMovimiento); | ||
25 | hojaRutaMovimientos.push(hojaRutaMovimiento); | ||
26 | } | ||
27 | var result = { | ||
28 | cisternaMovimientos: cisternaMovimientos, | ||
29 | hojaRutaMovimientos: hojaRutaMovimientos, | ||
30 | idHojaRuta: $scope.remito.idHojaRuta | ||
31 | } | ||
32 | $uibModalInstance.close(result); | ||
23 | }; | 33 | }; |
24 | 34 | ||
25 | $scope.cancel = function() { | 35 | $scope.cancel = function() { |
26 | $uibModalInstance.dismiss('cancel'); | 36 | $uibModalInstance.dismiss('cancel'); |
27 | }; | 37 | }; |
28 | 38 | ||
29 | $scope.validar = function() { | 39 | $scope.validar = function() { |
30 | return $scope.formDetalleHojaRuta.$pristine || | 40 | if(!articulosDescargados().length) { |
31 | !$scope.parametrosDetalleHojaRuta.litrosDescargados || | 41 | return true; |
32 | $scope.parametrosDetalleHojaRuta.litrosDescargados < 1 || | 42 | } |
33 | !$scope.parametrosDetalleHojaRuta.numeroRecibo || | 43 | return false; |
1 |
|
||
34 | $scope.parametrosDetalleHojaRuta.numeroRecibo < 1; | ||
35 | }; | 44 | }; |
36 | 45 | ||
37 | $scope.irPaso = function(paso) { | 46 | function articulosDescargados() { |
38 | $scope.paso = paso; | 47 | var articulosDescargados = $scope.remito.articulosRemito.filter( |
39 | }; | 48 | function(articulo) { |
49 | if(articulo.aCargar && articulo.numeroRecibo) { | ||
50 | return articulo; | ||
51 | } | ||
52 | }); | ||
53 | return articulosDescargados; | ||
54 | } | ||
40 | } | 55 | } |
41 | ] | 56 | ] |
src/views/modal-detalle-hoja-ruta.html
1 | <div class="modal-header py-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 | </div> | 3 | </div> |
4 | <div class="modal-body" id="modal-body"> | 4 | <div class="modal-body" id="modal-body"> |
5 | <form name="formDetalleHojaRuta"> | 5 | <form name="formDetalleHojaRuta"> |
6 | <div class="form-group row"> | 6 | <div class="form-group row"> |
7 | <div class="col-6 px-2"> | 7 | <div class="col-12 px-0"> |
8 | <label class="col-12 col-sm-6 px-0 mb-0"> | 8 | <label class="form-control-sm"> |
9 | <b>Remito</b> | 9 | <b>Remito Nº</b> |
10 | <span ng-bind="[remito.numeroRemito, remito.sucursal] | comprobante"/> | ||
10 | </label> | 11 | </label> |
11 | <div class="col-12 col-sm-6 px-0"> | ||
12 | <span ng-bind="parametrosDetalleHojaRuta.remito"/> | ||
13 | </div> | ||
14 | </div> | 12 | </div> |
15 | <div class="col-6 px-2"> | 13 | <div class="col-12 px-0"> |
16 | <label class="col-12 col-sm-6 px-0 mb-0"> | 14 | <label class="form-control-sm"> |
17 | <b>Cliente</b> | 15 | <b>Cliente</b> |
18 | </label> | 16 | </label> |
19 | <div class="col-12 col-sm-6 px-0"> | 17 | <span ng-bind="remito.nombreCliente"/> |
20 | <span ng-bind="parametrosDetalleHojaRuta.cliente"/> | ||
21 | </div> | ||
22 | </div> | 18 | </div> |
23 | <div class="col-6 px-2"> | 19 | <div class="col-12 px-0"> |
24 | <label class="col-12 col-sm-6 px-0 mb-0"> | 20 | <label class="form-control-sm"> |
25 | <b>Domicilio</b> | 21 | <b>Domicilio</b> |
22 | <span ng-bind="remito.domicilioStamp"/> | ||
26 | </label> | 23 | </label> |
27 | <div class="col-12 col-sm-6 px-0"> | ||
28 | <span ng-bind="parametrosDetalleHojaRuta.domicilio"/> | ||
29 | </div> | ||
30 | </div> | 24 | </div> |
31 | <div class="col-6 px-2"> | 25 | <div class="col-12 px-0"> |
32 | <label class="col-12 col-sm-6 px-0 mb-0"> | 26 | <table class="table table-sm"> |
33 | <b>Contacto</b> | 27 | <thead> |
34 | </label> | 28 | <tr> |
35 | <div class="col-12 col-sm-6 px-0"> | 29 | <th>Articulo</th> |
36 | <span ng-bind="parametrosDetalleHojaRuta.contacto"/> | 30 | <th>Total</th> |
37 | </div> | 31 | <th>A descargar</th> |
38 | </div> | 32 | <th>Nº Recibo</th> |
39 | <div class="col-6 px-2"> | 33 | </tr> |
40 | <label class="col-12 col-sm-6 px-0 mb-0"> | 34 | </thead> |
41 | <b>Teléfono</b> | 35 | <tbody> |
42 | </label> | 36 | <tr ng-repeat="(key, articulo) in remito.articulosRemito"> |
43 | <div class="col-12 col-sm-6 px-0"> | 37 | <td ng-bind="articulo.descripcion"></td> |
44 | <span ng-bind="parametrosDetalleHojaRuta.telefonoContacto"/> | 38 | <td ng-bind="articulo.cantidad"></td> |
45 | </div> | 39 | <td><input |
40 | class="form-control form-control-sm" | ||
41 | type="number" | ||
42 | ng-model="articulo.aCargar" | ||
43 | foca-focus="key === 0"/></td> | ||
44 | <td><input | ||
45 | class="form-control form-control-sm" | ||
46 | type="number" | ||
47 | ng-model="articulo.numeroRecibo"/></td> | ||
48 | </tr> | ||
49 | </tbody> | ||
50 | </table> | ||
46 | </div> | 51 | </div> |
47 | <div class="col-6 px-2"> | 52 | <div class="col-12 px-0 py-0"> |
48 | <label class="col-12 col-sm-6 px-0 mb-0"> | 53 | <label class="form-control-sm"> |
49 | <b>Producto</b> | 54 | <b>Observaciones</b> |
50 | </label> | 55 | </label> |
51 | <div class="col-12 col-sm-6 px-0"> | ||
52 | <span ng-bind="parametrosDetalleHojaRuta.producto"/> | ||
53 | </div> | ||
54 | </div> | ||
55 | <div class="col-6 px-2"> | ||
56 | <label class="col-12 col-sm-6 px-0 mb-0"> | ||
57 | <b>Litros</b> | ||
58 | </label> | ||
59 | <div class="col-12 col-sm-6 px-0"> | ||
60 | <span ng-bind="parametrosDetalleHojaRuta.litros"/> | ||
61 | </div> | ||
62 | </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> | ||
84 | </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> | 56 | </div> |
106 | <div class="row"> | 57 | <div class="col-12 pl-0"> |
107 | <div class="form-group col-12 pr-0"> | 58 | <textarea |
108 | <label | 59 | ng-model="remito.observaciones" |
109 | class="col-12 col-sm-3 col-form-label col-form-label-sm px-2" | 60 | class="form-control mx-2" |
110 | >Observaciones</label> | 61 | rows="5" |
111 | <textarea | 62 | ></textarea> |
112 | ng-model="parametrosDetalleHojaRuta.observaciones" | ||
113 | class="form-control mx-2" | ||
114 | rows="5" | ||
115 | teclado-virtual | ||
116 | ></textarea> | ||
117 | </div> | ||
118 | </div> | 63 | </div> |