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
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 | 'focaModalDetalleHojaRutaService', |
9 | $scope.paso = 0; | 9 | function($filter, $scope, $uibModalInstance, remito, focaModalDetalleHojaRutaService) { |
10 | $scope.parametrosDetalleHojaRuta = parametrosDetalleHojaRuta; | 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 | $scope.aceptar = function() { | 21 | $scope.aceptar = function() { |
12 | var parametrosDetalleHojaRuta = { | 22 | var articulos = articulosDescargados(); |
13 | remito: $scope.parametrosDetalleHojaRuta.remito, | 23 | var cisternaMovimientos = []; |
14 | cliente: $scope.parametrosDetalleHojaRuta.cliente, | 24 | var hojaRutaMovimientos = []; |
15 | domicilio: $scope.parametrosDetalleHojaRuta.domicilio, | 25 | for(var i = 0; i < articulos.length; i++) { |
16 | producto: $scope.parametrosDetalleHojaRuta.producto, | 26 | var cisternaMovimiento = { |
17 | litros: $scope.parametrosDetalleHojaRuta.litros, | 27 | idRemito: $scope.remito.id, |
18 | litrosDescargados: $scope.parametrosDetalleHojaRuta.litrosDescargados, | 28 | cantidad: articulos[i].aCargar, |
19 | numeroRecibo: $scope.parametrosDetalleHojaRuta.numeroRecibo, | 29 | metodo: 'descarga' |
20 | observaciones: $scope.parametrosDetalleHojaRuta.observaciones | 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 | $scope.cancel = function() { | 47 | $scope.cancel = function() { |
26 | $uibModalInstance.dismiss('cancel'); | 48 | $uibModalInstance.dismiss('cancel'); |
27 | }; | 49 | }; |
28 | 50 | ||
29 | $scope.validar = function() { | 51 | $scope.validar = function() { |
30 | return $scope.formDetalleHojaRuta.$pristine || | 52 | return !articulosDescargados().length; |
31 | !$scope.parametrosDetalleHojaRuta.litrosDescargados || | ||
32 | $scope.parametrosDetalleHojaRuta.litrosDescargados < 1 || | ||
33 | !$scope.parametrosDetalleHojaRuta.numeroRecibo || | ||
34 | $scope.parametrosDetalleHojaRuta.numeroRecibo < 1; | ||
35 | }; | 53 | }; |
36 | 54 | ||
37 | $scope.irPaso = function(paso) { | 55 | function articulosDescargados() { |
38 | $scope.paso = paso; | 56 | var articulosDescargados = $scope.remito.articulosRemito.filter( |
39 | }; | 57 | function(articulo) { |
58 | if(articulo.aCargar && articulo.numeroRecibo) { | ||
59 | return articulo; | ||
60 | } | ||
61 | }); | ||
62 | return articulosDescargados; | ||
63 | } |
src/js/service.js
1 | angular.module('focaModalDetalleHojaRuta') | 1 | angular.module('focaModalDetalleHojaRuta') |
2 | .service('focaModalDetalleHojaRutaService', [ | 2 | .service('focaModalDetalleHojaRutaService', [ |
3 | '$http', | 3 | '$http', |
4 | 'API_ENDPOINT', | 4 | 'API_ENDPOINT', |
5 | function($http, API_ENDPOINT) { | 5 | function($http, API_ENDPOINT) { |
6 | return { | 6 | return { |
7 | getDetallesHojaRuta: function() { | 7 | getDetallesHojaRuta: function() { |
8 | return $http.get(API_ENDPOINT.URL + '/transportista'); | 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 | } |
12 | ]); | 15 | ]); |
13 | 16 |
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 | <strong>Articulo a descargar</strong> |
33 | <b>Contacto</b> | 27 | <table class="table table-sm"> |
34 | </label> | 28 | <thead> |
35 | <div class="col-12 col-sm-6 px-0"> | 29 | <tr> |
36 | <span ng-bind="parametrosDetalleHojaRuta.contacto"/> | 30 | <th></th> |
37 | </div> | 31 | <th>Articulo</th> |
38 | </div> | 32 | <th>Total</th> |
39 | <div class="col-6 px-2"> | 33 | <th>Descargado</th> |
40 | <label class="col-12 col-sm-6 px-0 mb-0"> | 34 | </tr> |
41 | <b>Teléfono</b> | 35 | </thead> |
42 | </label> | 36 | <tbody> |
43 | <div class="col-12 col-sm-6 px-0"> | 37 | <tr ng-repeat="(key, articulo) in remito.articulosRemito"> |
44 | <span ng-bind="parametrosDetalleHojaRuta.telefonoContacto"/> | 38 | <td class="pt-2"><input |
45 | </div> | 39 | type="radio" |
46 | </div> | 40 | name="articuloRadio" |
47 | <div class="col-6 px-2"> | 41 | id="{{'articulo' + articulo.id}}" |
48 | <label class="col-12 col-sm-6 px-0 mb-0"> | 42 | ng-click="cambio(articulo)" |
49 | <b>Producto</b> | 43 | ng-disabled="articulo.cargado" |
50 | </label> | 44 | ></td> |
51 | <div class="col-12 col-sm-6 px-0"> | 45 | <td ng-bind="articulo.descripcion"></td> |
52 | <span ng-bind="parametrosDetalleHojaRuta.producto"/> | 46 | <td ng-bind="articulo.cantidad"></td> |
53 | </div> | 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 | </div> | 74 | </div> |
55 | <div class="col-6 px-2"> | 75 | <div class="col-12 px-0"> |
56 | <label class="col-12 col-sm-6 px-0 mb-0"> | 76 | <label class="form-control-sm px-0"> |
57 | <b>Litros</b> | 77 | <b>Observaciones</b> |
58 | </label> | 78 | </label> |
59 | <div class="col-12 col-sm-6 px-0"> | ||
60 | <span ng-bind="parametrosDetalleHojaRuta.litros"/> | ||
61 | </div> | ||
62 | </div> | 79 | </div> |
63 | <div class="w-100"></div> | 80 | <div class="col-12"> |
64 | <div class="form-group col-6 px-0"> | 81 | <textarea |
65 | <label | 82 | ng-model="remito.observaciones" |
66 | class="col-12 col-sm-3 col-form-label col-form-label-sm px-2" | 83 | class="form-control form-control-sm" |
67 | >Litros descargados</label> | 84 | rows="1" |
68 | <div class="col-12 col-sm-3 px-2"> | 85 | ></textarea> |
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> | 86 | </div> |
85 | <div class="form-group col-6 px-0"> | 87 | <div class="col-12 row mt-2"> |
86 | <label | 88 | <label class="form-control-sm px-0 col-3"><b>Nº Recibo</b></label> |
87 | class="col-12 col-sm-3 col-form-label col-form-label-sm px-2" | 89 | <input |
88 | >Nº recibo</label> | 90 | class="form-control form-control-sm col-4" |
89 | <div class="col-12 col-sm-33 px-2"> | 91 | type="number" |
90 | <input | 92 | ng-model="numeroRecibo"> |
91 | type="number" | 93 | <button |
92 | min="0" | 94 | class="ml-4 form-control-sm btn btn-success col-4" |
93 | step="0.01" | 95 | ladda="cargando" |
94 | class="form-control form-control-sm" | 96 | data-spinner-color="#FF0000" |
95 | id="numeroRecibo" | 97 | type="button" |
96 | name="numeroRecibo" | 98 | ng-disabled="!distribucionDisponible()" |
97 | placeholder="Nº Recibo" | 99 | ng-click="cargarACisternas(vehiculo)" |
98 | ng-model="parametrosDetalleHojaRuta.numeroRecibo" | 100 | foca-focus="distribucionDisponible()"> |
99 | foca-focus="paso === 1" | 101 | Descargar |
100 | ng-keypress="$event.keyCode == 13 && validar() && aceptar()" | 102 | </button> |
101 | foca-tipo-input | ||
102 | teclado-virtual | ||
103 | /> |