Commit 6a7d373bab7564fe4b6e6a09cf56dac1ff2aff93

Authored by Jose Pinto
Exists in master

Merge remote-tracking branch 'upstream/master'

src/js/controller.js
... ... @@ -40,17 +40,14 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo
40 40 $scope.idVendedor = 0;
41 41 getSeguimiento();
42 42 $scope.$broadcast('removeCabecera', cabecera);
43   - $scope.$broadcast('addCabecera',{
  43 + $scope.$broadcast('addCabecera', {
44 44 label: 'General',
45 45 valor: ''
46 46 });
47 47 };
48 48  
49 49 $scope.cargar = function(idVehiculo, punto) {
50   - if(!$scope.fechaReparto) {
51   - focaModalService.alert('Primero seleccione fecha de reparto');
52   - return;
53   - }
  50 + if(!eligioFecha()) return;
54 51 var idRemito;
55 52 if(punto === -1) {
56 53 idRemito = -1;
... ... @@ -76,21 +73,7 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo
76 73 };
77 74  
78 75 $scope.quitarVehiculo = function(vehiculo) {
79   - //TODO: Pasar validación a función
80   - $scope.fechaReparto.setHours(0, 0, 0, 0);
81   - var idUsuario = focaLogisticaPedidoRutaService.idUsuario;
82   - for(var i = 0; i < vehiculo.cisternas.length; i++) {
83   - for(var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) {
84   - var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j];
85   - if(cisternaCarga.fechaReparto.substring(0, 10) === $scope.fechaReparto
86   - .toISOString().substring(0, 10) && cisternaCarga.idUsuarioProceso !==
87   - idUsuario)
88   - {
89   - focaModalService.alert('El vehículo está siendo usado por otro usuario');
90   - return;
91   - }
92   - }
93   - }
  76 + if(!eligioFecha() || vehiculoEnUso(vehiculo)) return;
94 77 focaModalService.confirm('Esta seguro que desea eliminar el vehículo ' +
95 78 vehiculo.codigo + '?').then(function() {
96 79 eliminarVehiculo(vehiculo);
... ... @@ -98,25 +81,7 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;) .controller(&#39;focaLogisticaPedidoRutaCo
98 81 };
99 82  
100 83 $scope.hacerHojaRuta = function(vehiculo) {
101   - if(!$scope.fechaReparto) {
102   - focaModalService.alert('Primero seleccione fecha de reparto');
103   - return;
104   - }
105   - //TODO: Pasar validación a función
106   - $scope.fechaReparto.setHours(0, 0, 0, 0);
107   - var idUsuario = focaLogisticaPedidoRutaService.idUsuario;
108   - for(var i = 0; i < vehiculo.cisternas.length; i++) {
109   - for(var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) {
110   - var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j];
111   - if(cisternaCarga.fechaReparto.substring(0, 10) === $scope.fechaReparto
112   - .toISOString().substring(0, 10) && cisternaCarga.idUsuarioProceso !==
113   - idUsuario)
114   - {
115   - focaModalService.alert('El vehículo está siendo usado por otro usuario');
116   - return;
117   - }
118   - }
119   - }
  84 + if(!eligioFecha() || vehiculoEnUso(vehiculo)) return;
120 85 var modalInstance = $uibModal.open(
121 86 {
122 87 ariaLabelledBy: 'Creación hoja ruta',
... ... @@ -124,7 +89,8 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;) .controller(&#39;focaLogisticaPedidoRutaCo
124 89 controller: 'focaModalCerrarVehiculo',
125 90 size: 'lg',
126 91 resolve: {
127   - idVehiculo: function() {return vehiculo.id;}
  92 + idVehiculo: function() {return vehiculo.id;},
  93 + fechaReparto: function() {return $scope.fechaReparto;}
128 94 }
129 95 }
130 96 );
... ... @@ -269,8 +235,34 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;) .controller(&#39;focaLogisticaPedidoRutaCo
269 235 }
270 236 });
271 237 }
272   - $interval(function() {
273   - getSeguimiento();
274   - }, 5000);
  238 +
  239 + function eligioFecha() {
  240 + if(!$scope.fechaReparto) {
  241 + focaModalService.alert('Primero seleccione fecha de reparto');
  242 + return false;
  243 + }
  244 + return true;
  245 + }
  246 +
  247 + function vehiculoEnUso(vehiculo) {
  248 + var idUsuario = focaLogisticaPedidoRutaService.idUsuario;
  249 + for(var i = 0; i < vehiculo.cisternas.length; i++) {
  250 + for(var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) {
  251 + var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j];
  252 + if(cisternaCarga.fechaReparto.substring(0, 10) === $scope.fechaReparto
  253 + .toISOString().substring(0, 10) && cisternaCarga.idUsuarioProceso &&
  254 + cisternaCarga.idUsuarioProceso !== idUsuario)
  255 + {
  256 + focaModalService.alert('El vehículo está siendo usado por otro usuario');
  257 + return true;
  258 + }
  259 + }
  260 + }
  261 + return false;
  262 + }
  263 + // TODO: descomentar en produccion
  264 + // $interval(function() {
  265 + // getSeguimiento();
  266 + // }, 5000);
275 267 }
276 268 ]);
src/js/controllerCerrarVehiculo.js
... ... @@ -7,11 +7,12 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;)
7 7 'idVehiculo',
8 8 'focaModalService',
9 9 '$filter',
  10 + 'fechaReparto',
10 11 function($scope, $uibModalInstance, $uibModal, focaLogisticaPedidoRutaService,
11   - idVehiculo, focaModalService, $filter) {
  12 + idVehiculo, focaModalService, $filter, fechaReparto) {
12 13 $scope.vehiculo = {};
13 14 $scope.remitos = [];
14   - $scope.now = new Date();
  15 + $scope.now = fechaReparto;
15 16 focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then(function(res) {
16 17 $scope.vehiculo = res.data;
17 18 });
src/js/controllerDetalleVehiculo.js
... ... @@ -1,219 +0,0 @@
1   -angular.module('focaLogisticaPedidoRuta')
2   - .controller('focaDetalleVehiculo',
3   - ['$scope',
4   - '$uibModalInstance',
5   - 'idVehiculo',
6   - 'idRemito',
7   - 'focaModalService',
8   - '$filter',
9   - 'focaLogisticaPedidoRutaService',
10   - function($scope, $uibModalInstance, idVehiculo, idRemito, focaModalService, $filter,
11   - focaLogisticaPedidoRutaService
12   - ) {
13   - //seteo variables
14   - $scope.cargandoDatos = true;
15   - $scope.idRemito = idRemito;
16   - $scope.articulos = [];
17   - $scope.vehiculo = {};
18   - $scope.cisternas = [];
19   - $scope.cisternasCarga = [];
20   - $scope.remito = {};
21   - $scope.aCargar = [];
22   - var cisternaMovimientos = [];
23   - var promesaRemito;
24   - var promesaVehiculo = focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo);
25   - var promesaCisternas = focaLogisticaPedidoRutaService
26   - .obtenerCisternasPorFecha(idVehiculo);
27   - if(idRemito !== -1) {
28   - promesaRemito = focaLogisticaPedidoRutaService.obtenerRemitoById(idRemito);
29   - }
30   - Promise.all([promesaVehiculo, promesaCisternas, promesaRemito]).then(function(res) {
31   - $scope.cargandoDatos = false;
32   - $scope.vehiculo = res[0].data;
33   - $scope.cisternas = res[1].data;
34   - if(!res[2]) return;
35   - $scope.remito = res[2].data;
36   - if($scope.remito.idUsuarioProceso) {
37   - focaModalService.alert('Remito ya asignado');
38   - $uibModalInstance.close();
39   - }
40   - $scope.articulos = $scope.remito.articulosRemito;
41   - $scope.seleccionarArticulo($scope.articulos[0]);
42   - var tieneUsuario = $scope.cisternas.filter(function(cisterna) {
43   - if(cisterna.cisternaCarga) {
44   - return cisterna.cisternaCarga.idUsuarioProceso !==
45   - focaLogisticaPedidoRutaService.idUsuario;
46   - }
47   - });
48   - if(tieneUsuario.length) {
49   - focaModalService.alert('Otro usario esta usando este vehículo');
50   - $uibModalInstance.close();
51   - return;
52   - }
53   - });
54   - $scope.aceptar = function() {
55   - $scope.cargando = true;
56   - for(var i = 0; i < $scope.cisternasCarga.length; i++) {
57   - $scope.cisternasCarga[i].idUsuarioProceso =
58   - focaLogisticaPedidoRutaService.idUsuario;
59   - delete $scope.cisternasCarga[i].articulo;
60   - }
61   - var cisterna = {
62   - cisternaMovimientos: cisternaMovimientos,
63   - cisternaCargas: $scope.cisternasCarga,
64   - idVehiculo: $scope.vehiculo.id,
65   - fechaReparto: focaLogisticaPedidoRutaService.fecha
66   - };
67   - focaLogisticaPedidoRutaService.guardarCisternas(cisterna, $scope.remito.id)
68   - .then(function() {
69   - focaModalService.alert('Cisternas cargadas con éxito').then(function() {
70   - $scope.cargando = false;
71   - $uibModalInstance.close();
72   - });
73   - }).catch(function(error) {
74   - $scope.cargando = false;
75   - $uibModalInstance.close();
76   - if (error.status === 403) {
77   - focaModalService.alert('ERROR: ' + error.data);
78   - return;
79   - }
80   - focaModalService.alert('Hubo un error al cargar las cisternas');
81   - });
82   - };
83   - $scope.cancelar = function() {
84   - $uibModalInstance.close();
85   - };
86   - $scope.cargarACisternas = function() {
87   - for(var i = 0; i < $scope.cisternas.length; i++) {
88   - var cisterna = $scope.cisternas[i];
89   - var aCargar = parseFloat($scope.aCargar[i]);
90   - var fechaReparto = focaLogisticaPedidoRutaService.fecha;
91   - //validaciones
92   - if(!aCargar) {
93   - continue;
94   - }
95   - //cargar
96   - if(cisterna.cisternaCarga.cantidad) {
97   - cisterna.cisternaCarga.cantidad += aCargar;
98   - }else {
99   - cisterna.cisternaCarga.cantidad = aCargar;
100   - cisterna.cisternaCarga.idProducto = $scope.articuloSeleccionado.idArticulo;
101   - }
102   - cisterna.disponible = cisterna.capacidad - cisterna.cisternaCarga.cantidad;
103   -
104   - cisterna.cisternaCarga.articulo = {
105   - DetArt: $scope.articuloSeleccionado.descripcion
106   - };
107   - $filter('filter')($scope.articulos, {id: $scope.articuloSeleccionado.id})[0]
108   - .cargado = true;
109   -
110   - $scope.calcularPorcentaje(cisterna);
111   - //Guardar
112   - var now = new Date();
113   - var cisternaMovimiento = {
114   - fecha: now.toISOString().slice(0, 19).replace('T', ' '),
115   - cantidad: aCargar,
116   - metodo: 'carga',
117   - idCisternaCarga: cisterna.cisternaCarga.id,
118   - idRemito: $scope.remito.id
119   - };
120   - cisterna.cisternaCarga.fechaReparto = fechaReparto;
121   - cisterna.cisternaCarga.idCisterna = cisterna.id;
122   - $scope.cisternasCarga.push(cisterna.cisternaCarga);
123   - cisternaMovimientos.push(cisternaMovimiento);
124   - }
125   - var articuloSiguiente = $scope.articulos.filter(
126   - function(filter) {
127   - return filter.cargado !== true;
128   - }
129   - );
130   - if(articuloSiguiente.length > 0) {
131   - $scope.seleccionarArticulo(articuloSiguiente[0]);
132   - }
133   - };
134   - $scope.calcularPorcentaje = function(cisterna) {
135   - if(!cisterna.cisternaCarga) {
136   - cisterna.cisternaCarga = {
137   - cantidad: 0
138   - };
139   - }
140   - var porcentaje = (cisterna.cisternaCarga.cantidad * 100 /
141   - cisterna.capacidad) + '%';
142   - var elementHtml = document.getElementById(cisterna.id);
143   - if(elementHtml) {
144   - elementHtml.style.width = porcentaje;
145   - }
146   - };
147   - $scope.seleccionarArticulo = function(articulo) {
148   - $scope.articuloSeleccionado = articulo;
149   - $scope.cisternaDisponible();
150   - $scope.autoCompletar();
151   - $scope.actualizarArticulo();
152   - };
153   - $scope.actualizarArticulo = function () {
154   - $scope.articuloSeleccionado.cantidadCargada = 0;
155   - for (var i = 0; i < $scope.aCargar.length; i++) {
156   - $scope.articuloSeleccionado.cantidadCargada +=
157   - parseFloat($scope.aCargar[i]) || 0;
158   - }
159   - };
160   - $scope.autoCompletar = function() {
161   - $scope.aCargar = [];
162   - var disponible = $filter('filter')($scope.cisternas, {disabled: false});
163   - var index = $scope.cisternas.indexOf(disponible[0]);
164   - $scope.aCargar[index] = $scope.articuloSeleccionado.cantidad;
165   - };
166   - $scope.cisternaDisponible = function() {
167   - for(var i = 0; i < $scope.cisternas.length; i++) {
168   - if($scope.articuloSeleccionado.cantidad > $scope.cisternas[i].disponible) {
169   - $scope.cisternas[i].disabled = true;
170   - continue;
171   - }
172   - if($scope.cisternas[i].cisternaCarga &&
173   - $scope.cisternas[i].cisternaCarga.idProducto &&
174   - $scope.articuloSeleccionado.idArticulo !==
175   - $scope.cisternas[i].cisternaCarga.idProducto)
176   - {
177   - $scope.cisternas[i].disabled = true;
178   - continue;
179   - }
180   - $scope.cisternas[i].disabled = false;
181   - }
182   - };
183   - $scope.rellenarInput = function(input) {
184   - if(!$scope.articuloSeleccionado) return;
185   - if($scope.articuloSeleccionado.cantidad -
186   - $scope.articuloSeleccionado.cantidadCargada === 0) {
187   - return input;
188   - }
189   - if(!input) input = 0;
190   - input = parseFloat(input);
191   - input += parseFloat($scope.articuloSeleccionado.cantidad -
192   - $scope.articuloSeleccionado.cantidadCargada);
193   - return input;
194   - };
195   - $scope.distribucionDisponible = function() {
196   - if(!$scope.articuloSeleccionado || $scope.articuloSeleccionado.cantidad -
197   - $scope.articuloSeleccionado.cantidadCargada !== 0 ||
198   - !$scope.tieneArticulosPendientes()) {
199   - return false;
200   - }
201   - return true;
202   - };
203   - $scope.tieneArticulosPendientes = function() {
204   - var algunValorNegativo = $scope.aCargar.filter(function(p) {
205   - return p < 0;
206   - });
207   - if(algunValorNegativo.length) {
208   - return false;
209   - }
210   - var articulosDescargados = $scope.articulos.filter(function(filter) {
211   - return filter.cargado === true;
212   - });
213   - if(articulosDescargados.length === $scope.articulos.length) {
214   - $scope.aCargar = [];
215   - return false;
216   - }
217   - return true;
218   - };
219   - }]);
src/js/osm-directive.js
... ... @@ -70,7 +70,9 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;).directive(&#39;focaLogistica&#39;, function()
70 70 });
71 71 }
72 72 $scope.markers.push(
73   - L.marker([marcador.latitud, marcador.longitud], {icon: icon})
  73 + L.marker(
  74 + [marcador.latitud, marcador.longitud],
  75 + {icon: icon, draggable: true})
74 76 .addTo($scope.map)
75 77 .bindPopup(observacion)
76 78 );
... ... @@ -8,25 +8,15 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;)
8 8 function($http, $cookies, API_ENDPOINT, $filter) {
9 9 var url = API_ENDPOINT.URL;
10 10 return {
11   - idUsuario: $cookies.get('idUsuario'),
  11 + idUsuario: $cookies.get('vendedorCobrador'),
12 12 obtenerActividad: function(parametros) {
13 13 return $http.post(url + '/seguimiento/filtros', parametros);
14 14 },
15   - obtenerVehiculoById: function(idVehiculo) {
16   - return $http.get(url + '/vehiculo/' + idVehiculo);
17   - },
18   - obtenerRemitoById: function(idRemito) {
19   - return $http.get(url + '/remito/obtener/' + idRemito);
20   - },
21   - guardarCisternas: function(cisterna, idRemito) {
22   - return $http.post(url + '/cisterna/guardar/cargar/' +
23   - this.idUsuario + '/' + idRemito,cisterna);
24   - },
25 15 numeroHojaRuta: function() {
26 16 return $http.get(url + '/hoja-ruta/numero-siguiente');
27 17 },
28 18 getRemitos: function(idVehiculo) {
29   - return $http.get(url + '/remito/sin-hoja-ruta/' +idVehiculo);
  19 + return $http.get(url + '/remito/sin-hoja-ruta/' + idVehiculo);
30 20 },
31 21 cerrarDistribuicion: function(remitos) {
32 22 return $http.post(url + '/vehiculo/cierre-distribuicion', remitos);
... ... @@ -54,8 +44,7 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;)
54 44 .length; k++)
55 45 {
56 46 if(cisterna.cisternasCarga[j].fechaReparto.substring(0, 10) ===
57   - fecha.substring(0, 10) && !cisterna.cisternasCarga[j]
58   - .confirmado)
  47 + fecha.substring(0, 10))
59 48 {
60 49 procesoMovimiento(cisterna.cisternasCarga[j]
61 50 .cisternaMovimientos[k]);
... ... @@ -78,10 +67,6 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;)
78 67 getVehiculosByIdUsuario: function() {
79 68 return $http.get(url + '/vehiculo/usuario/' + this.idUsuario);
80 69 },
81   - obtenerCisternasPorFecha: function(idVehiculo) {
82   - return $http.post(url + '/cisterna/listar/fecha',
83   - {idVehiculo: idVehiculo, fechaReparto: this.fecha});
84   - },
85 70 getUnidadesByFecha: function() {
86 71 return $http.post(url + '/vehiculo/listar/fecha',
87 72 {fecha: this.fecha});
... ... @@ -89,5 +74,8 @@ angular.module(&#39;focaLogisticaPedidoRuta&#39;)
89 74 setFechaReparto: function(fechaReparto) {
90 75 this.fecha = fechaReparto;
91 76 },
  77 + obtenerVehiculoById: function(idVehiculo) {
  78 + return $http.get(url + '/vehiculo/' + idVehiculo);
  79 + }
92 80 };
93 81 }]);
src/views/foca-detalle-vehiculo.html
... ... @@ -1,129 +0,0 @@
1   -<div class="modal-header">
2   - <h4>Detalle de carga</h4>
3   - Transportista
4   - <strong ng-bind="vehiculo.transportista.COD"></strong>
5   - <strong ng-bind="vehiculo.transportista.NOM"></strong>
6   - Unidad <strong ng-bind="vehiculo.codigo"></strong>
7   - Tractor <strong ng-bind="vehiculo.tractor"></strong>
8   - <br>
9   - <div ng-show="idRemito !== -1">
10   - <span>Remito Nº</span>
11   - <strong ng-bind="[remito.sucursal, remito.numeroRemito] | comprobante"></strong>
12   - <span>, Fecha</span>
13   - <strong ng-bind="remito.fechaRemito | date: 'dd/MM/yyyy HH:mm'"></strong>
14   - <span>, Cliente</span>
15   - <strong ng-bind="remito.nombreCliente"></strong>
16   - <span>, Domicilio entrega</span>
17   - <strong ng-bind="remito.domicilioStamp"></strong>
18   - </div>
19   -</div>
20   -<div class="modal-body">
21   - <div>
22   - <table class="table table-sm" ng-show="idRemito !== -1">
23   - <thead>
24   - <tr>
25   - <th></th>
26   - <th>Articulo</th>
27   - <th>Cantidad</th>
28   - <th>Cargado</th>
29   - <th>Resta asignar</th>
30   - </tr>
31   - </thead>
32   - <tbody>
33   - <tr ng-repeat="(key, articulo) in articulos">
34   - <td><input
35   - type="radio"
36   - name="articuloRadio"
37   - id="{{'articulo' + articulo.id}}"
38   - ng-checked="articuloSeleccionado.id === articulo.id"
39   - ng-disabled="articulo.cargado"
40   - ng-click="seleccionarArticulo(articulo)"
41   - ></td>
42   - <td ng-bind="articulo.descripcion"></td>
43   - <td ng-bind="articulo.cantidad"></td>
44   - <td ng-bind="articulo.cantidadCargada || 0"></td>
45   - <td ng-bind="articulo.cantidad - articulo.cantidadCargada"></td>
46   - </tr>
47   - </tbody>
48   - </table>
49   - <table class="table table-sm" ladda="cargandoDatos" data-spinner-color="#FF0000">
50   - <thead>
51   - <tr>
52   - <th width="10%">Cisterna</th>
53   - <th>Capacidad</th>
54   - <th>Articulo cargado</th>
55   - <th width="20%">Asignado</th>
56   - <th>Cargado / Capacidad Disponible</th>
57   - </tr>
58   - </thead>
59   - <tbody>
60   - <tr ng-repeat="(key, cisterna) in cisternas">
61   - <td class="py-3" ng-bind="cisterna.codigo"></td>
62   - <td class="py-3" ng-bind="cisterna.capacidad"></td>
63   - <td class="py-3" ng-bind="cisterna.cisternaCarga.articulo.DetArt || 'Sin asignar'"></td>
64   - <td ng-if="idRemito != -1">
65   - <input
66   - class="form-control"
67   - foca-tipo-input
68   - foca-teclado
69   - placeholder="A cargar..."
70   - ng-model="aCargar[key]"
71   - ng-disabled="cisterna.disabled || !tieneArticulosPendientes()"
72   - ng-focus="aCargar[key] = rellenarInput(aCargar[key]); actualizarArticulo()"
73   - ng-change="actualizarArticulo()"
74   - >
75   - </td>
76   - <td ng-if="idRemito == -1">
77   - <input
78   - class="form-control"
79   - placeholder="A cargar..."
80   - readonly>
81   - </td>
82   - <td><div class="progress foca-alto-progress pl-0 pr-0 mt-1">
83   - <strong
84   - class="mt-2 col-4 text-center position-absolute"
85   - ng-bind="(cisterna.cisternaCarga.cantidad || 0) + '/' +
86   - (cisterna.capacidad - cisterna.cisternaCarga.cantidad)">
87   - </strong>
88   - <div
89   - id="{{cisterna.id}}"
90   - class="progress-bar"
91   - role="progressbar"
92   - aria-valuemin="0"
93   - aria-valuemax="{{cisterna.capacidad}}"
94   - ng-style="{'width':'{{calcularPorcentaje(cisterna)}}'}">
95   - </div>
96   - </div>
97   - </td>
98   - </tr>
99   - </tbody>
100   - </table>
101   - <div class="col-12">
102   - <button
103   - class="form-control btn btn-success"
104   - ladda="cargando"
105   - data-spinner-color="#FF0000"
106   - type="button"
107   - ng-disabled="!distribucionDisponible()"
108   - ng-class="{'btn-light': !distribucionDisponible()}"
109   - ng-click="cargarACisternas(vehiculo)"
110   - foca-focus="distribucionDisponible()">
111   - Aplicar distribución de cargas
112   - </button>
113   - </div>
114   - </div>
115   -</div>
116   -<div class="modal-footer py-1">
117   - <button
118   - class="btn btn-sm btn-secondary"
119   - ladda="cargando"
120   - type="button"
121   - ng-click="cancelar()">Cancelar</button>
122   - <button
123   - class="btn btn-sm btn-primary"
124   - ladda="cargando"
125   - type="button"
126   - ng-click="aceptar()"
127   - ng-disabled="tieneArticulosPendientes() || idRemito === -1"
128   - foca-focus="!tieneArticulosPendientes() && idRemito !== -1">Cargar</button>
129   -</div>
src/views/foca-modal-cerrar-vehiculo.html
1 1 <div class="modal-header">
2   - <h5>En desarrollo</h5>
3 2 <h4>Cerrar distribución vehículo</h4>
4 3 <div class="row">
5 4 <div class="col-6 row">
... ... @@ -12,7 +11,6 @@
12 11 show-button-bar="false"
13 12 is-open="datepickerOpen"
14 13 on-open-focus="false"
15   - ng-focus="datepickerOpen = true"
16 14 class="form-control col-8"/>
17 15 </div>
18 16 </div>