Commit 545228123dbcb4de3dabbd94c3156a5b0f6a22f9

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'master'

Master(efernandez)

See merge request !3
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 }
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 />