Commit a0042a4f2efecf6ef0103967d85d9888de6b1e8f
1 parent
6a06288d8c
Exists in
master
cargar remitos
confeccionar hoja ruta
Showing
8 changed files
with
303 additions
and
74 deletions
Show diff stats
.jshintrc
... | ... | @@ -50,7 +50,7 @@ |
50 | 50 | "undef": true, |
51 | 51 | |
52 | 52 | // Warn when variables are defined but never used. |
53 | - "unused": true, | |
53 | + "unused": false, | |
54 | 54 | |
55 | 55 | // Para que funcione en angular |
56 | 56 | "predef": ["angular", "alert", "spyOn", "expect", "it", "inject", "beforeEach", "describe", "L"], |
src/js/controller.js
... | ... | @@ -15,6 +15,7 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo |
15 | 15 | $scope.idUsuario = 0; |
16 | 16 | $scope.marcadores = []; |
17 | 17 | $scope.vehiculos = []; |
18 | + var idsRemitos = []; | |
18 | 19 | getSeguimiento(); |
19 | 20 | $scope.arrastrando = false; |
20 | 21 | $scope.general = function() { |
... | ... | @@ -37,7 +38,7 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo |
37 | 38 | }); |
38 | 39 | }; |
39 | 40 | |
40 | - $scope.cargar = function(id, punto) { | |
41 | + $scope.cargar = function(idVehiculo, punto) { | |
41 | 42 | var idRemito = JSON.parse(punto).notaPedido.remito.id; |
42 | 43 | var modalInstance = $uibModal.open( |
43 | 44 | { |
... | ... | @@ -46,12 +47,13 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo |
46 | 47 | controller: 'focaDetalleVehiculo', |
47 | 48 | size: 'lg', |
48 | 49 | resolve: { |
49 | - idVehiculo: function() {return id;}, | |
50 | + idVehiculo: function() {return idVehiculo;}, | |
50 | 51 | idRemito: function() {return idRemito;} |
51 | 52 | } |
52 | 53 | } |
53 | 54 | ); |
54 | - modalInstance.result.then(function() { | |
55 | + modalInstance.result.then(function(idRemito) { | |
56 | + idsRemitos.push(idRemito); | |
55 | 57 | }, function() { |
56 | 58 | }); |
57 | 59 | }; |
... | ... | @@ -63,9 +65,24 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo |
63 | 65 | }); |
64 | 66 | }; |
65 | 67 | |
66 | - $scope.informacionVehiculo = function(vehiculo) { | |
67 | - focaModalService.alert('EN DESARROLLO : \n información del vehículo ' + | |
68 | - JSON.stringify(vehiculo)); | |
68 | + $scope.hacerHojaRuta = function(vehiculo) { | |
69 | + var modalInstance = $uibModal.open( | |
70 | + { | |
71 | + ariaLabelledBy: 'Creación hoja ruta', | |
72 | + templateUrl: 'foca-modal-crear-hoja-ruta.html', | |
73 | + controller: 'focaModalCrearHojaRuta', | |
74 | + size: 'lg', | |
75 | + resolve: { | |
76 | + idVehiculo: function() {return vehiculo.id;}, | |
77 | + idsRemitos: function() {return idsRemitos;} | |
78 | + } | |
79 | + } | |
80 | + ); | |
81 | + modalInstance.result.then(function() { | |
82 | + | |
83 | + }, function() { | |
84 | + //usar cuando se cancela el modal | |
85 | + }); | |
69 | 86 | }; |
70 | 87 | |
71 | 88 | $scope.arrastra = function() { |
... | ... | @@ -123,6 +140,10 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo |
123 | 140 | focaModalService.alert('El vehiculo que intenta cargar ya ha sido cargado'); |
124 | 141 | return; |
125 | 142 | } |
143 | + if(!vehiculo.cisternas.length) { | |
144 | + focaModalService.alert('El vehiculo no tiene cisternas'); | |
145 | + return; | |
146 | + } | |
126 | 147 | $scope.vehiculos.push(vehiculo); |
127 | 148 | }, function() { |
128 | 149 | // funcion ejecutada cuando se cancela el modal |
src/js/controllerDetalleVehiculo.js
... | ... | @@ -10,9 +10,12 @@ angular.module('focaLogisticaPedidoRuta') |
10 | 10 | function($scope, $uibModalInstance, idVehiculo, idRemito, focaModalService, $filter, |
11 | 11 | focaLogisticaPedidoRutaService |
12 | 12 | ) { |
13 | + //seteo variables | |
13 | 14 | $scope.articulos = []; |
14 | 15 | $scope.vehiculo = {}; |
15 | 16 | $scope.remito = {}; |
17 | + $scope.aCargar = []; | |
18 | + var cisternaMovimientos = []; | |
16 | 19 | focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then( |
17 | 20 | function(res) { |
18 | 21 | $scope.vehiculo = res.data; |
... | ... | @@ -24,9 +27,23 @@ angular.module('focaLogisticaPedidoRuta') |
24 | 27 | $scope.articulos = res.data.articulosRemito; |
25 | 28 | } |
26 | 29 | ); |
27 | - $scope.aCargar = []; | |
28 | 30 | $scope.aceptar = function() { |
29 | - $uibModalInstance.close(); | |
31 | + $scope.cargando = true; | |
32 | + var cisternaCargas = []; | |
33 | + for (var i = 0; i < $scope.vehiculo.cisternas.length; i++) { | |
34 | + delete $scope.vehiculo.cisternas[i].cisternaCarga.articulo; | |
35 | + cisternaCargas.push($scope.vehiculo.cisternas[i].cisternaCarga); | |
36 | + } | |
37 | + var cisterna = { | |
38 | + cisternaMovimientos: cisternaMovimientos, | |
39 | + cisternaCargas: cisternaCargas | |
40 | + }; | |
41 | + focaLogisticaPedidoRutaService.guardarCisternas(cisterna).then(function() { | |
42 | + focaModalService.alert('Cisternas cargadas con éxito').then(function() { | |
43 | + $scope.cargando = false; | |
44 | + $uibModalInstance.close(idRemito); | |
45 | + }); | |
46 | + }); | |
30 | 47 | }; |
31 | 48 | |
32 | 49 | $scope.cancelar = function() { |
... | ... | @@ -37,6 +54,7 @@ angular.module('focaLogisticaPedidoRuta') |
37 | 54 | for(var i = 0; i < vehiculo.cisternas.length; i++) { |
38 | 55 | var cisterna = vehiculo.cisternas[i]; |
39 | 56 | var aCargar = parseFloat($scope.aCargar[i]); |
57 | + //validaciones | |
40 | 58 | if(!aCargar) { |
41 | 59 | continue; |
42 | 60 | } |
... | ... | @@ -45,6 +63,7 @@ angular.module('focaLogisticaPedidoRuta') |
45 | 63 | 'cisterna ' + cisterna.codigo); |
46 | 64 | return; |
47 | 65 | } |
66 | + //cargar | |
48 | 67 | if(cisterna.cisternaCarga.cantidad) { |
49 | 68 | cisterna.cisternaCarga.cantidad += aCargar; |
50 | 69 | }else { |
... | ... | @@ -60,6 +79,15 @@ angular.module('focaLogisticaPedidoRuta') |
60 | 79 | .cargado = true; |
61 | 80 | |
62 | 81 | $scope.calcularPorcentaje(cisterna); |
82 | + //Guardar | |
83 | + var now = new Date(); | |
84 | + var cisternaMovimiento = { | |
85 | + fecha: now.toISOString().slice(0, 19).replace('T', ' '), | |
86 | + cantidad: aCargar, | |
87 | + metodo: 'carga', | |
88 | + idCisternaCarga: cisterna.cisternaCarga.id | |
89 | + }; | |
90 | + cisternaMovimientos.push(cisternaMovimiento); | |
63 | 91 | } |
64 | 92 | var articuloSiguiente = $scope.articulos.filter( |
65 | 93 | function(filter) { |
src/js/controllerHojaRuta.js
... | ... | @@ -0,0 +1,51 @@ |
1 | +angular.module('focaLogisticaPedidoRuta') | |
2 | + .controller('focaModalCrearHojaRuta', [ | |
3 | + '$scope', | |
4 | + '$uibModalInstance', | |
5 | + '$uibModal', | |
6 | + 'focaLogisticaPedidoRutaService', | |
7 | + 'idVehiculo', | |
8 | + 'idsRemitos', | |
9 | + function($scope, $uibModalInstance, $uibModal, focaLogisticaPedidoRutaService, | |
10 | + idVehiculo, idsRemitos) { | |
11 | + $scope.vehiculo = {}; | |
12 | + $scope.remitos = []; | |
13 | + focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then(function(res) { | |
14 | + $scope.vehiculo = res.data; | |
15 | + }); | |
16 | + for (var i = 0; i < idsRemitos.length; i++) { | |
17 | + focaLogisticaPedidoRutaService.obtenerRemitoById(idsRemitos[i]) | |
18 | + .then(cargarRemito); | |
19 | + } | |
20 | + function cargarRemito(res) { | |
21 | + $scope.remitos.push(res.data); | |
22 | + } | |
23 | + focaLogisticaPedidoRutaService.numeroHojaRuta().then(function(res) { | |
24 | + $scope.sucursal = res.data.sucursal; | |
25 | + $scope.numero = res.data.numeroHojaRuta; | |
26 | + }); | |
27 | + $scope.cancelar = function() { | |
28 | + $uibModalInstance.close(); | |
29 | + }; | |
30 | + $scope.aceptar = function() { | |
31 | + $uibModalInstance.close(); | |
32 | + }; | |
33 | + $scope.seleccionarChofer = function() { | |
34 | + var modalInstance = $uibModal.open( | |
35 | + { | |
36 | + ariaLabelledBy: 'Busqueda de Chofer', | |
37 | + templateUrl: 'modal-chofer.html', | |
38 | + controller: 'focaModalChoferController', | |
39 | + size: 'lg' | |
40 | + } | |
41 | + ); | |
42 | + | |
43 | + modalInstance.result.then( | |
44 | + function(chofer) { | |
45 | + $scope.chofer = chofer; | |
46 | + }, function() { | |
47 | + // funcion ejecutada cuando se cancela el modal | |
48 | + } | |
49 | + ); | |
50 | + }; | |
51 | + }]); | |
0 | 52 | \ No newline at end of file |
src/js/service.js
... | ... | @@ -11,6 +11,12 @@ angular.module('focaLogisticaPedidoRuta') |
11 | 11 | }, |
12 | 12 | obtenerRemitoById: function(idRemito) { |
13 | 13 | return $http.get(API_ENDPOINT.URL + '/remito/obtener/' + idRemito); |
14 | + }, | |
15 | + guardarCisternas: function(cisterna) { | |
16 | + return $http.post(API_ENDPOINT.URL + '/cisterna/guardar/cargar', cisterna); | |
17 | + }, | |
18 | + numeroHojaRuta: function() { | |
19 | + return $http.get(API_ENDPOINT.URL + '/hoja-ruta/numero-siguiente'); | |
14 | 20 | } |
15 | 21 | }; |
16 | 22 | }]); |
src/views/foca-detalle-vehiculo.html
1 | 1 | <div class="modal-header"> |
2 | 2 | <h4>Detalle de carga</h4> |
3 | - <!-- TODO: quitar llaves {{}} y usar ng-bind --> | |
4 | - <h4>-EN DESARROLLO</h4> | |
3 | + Vehículo <strong ng-bind="vehiculo.tractor"></strong> | |
4 | + Transportista <strong ng-bind="vehiculo.transportista.NOM"></strong> | |
5 | + <br> | |
5 | 6 | Remito Nº |
6 | - <strong ng-bind="remito.numeroRemito"></strong> | |
7 | + <strong ng-bind="[remito.sucursal, remito.numeroRemito] | comprobante"></strong> | |
7 | 8 | , Cliente |
8 | 9 | <strong ng-bind="remito.nombreCliente"></strong> |
9 | 10 | , Domicilio |
... | ... | @@ -11,64 +12,87 @@ |
11 | 12 | </div> |
12 | 13 | <div class="modal-body"> |
13 | 14 | <div> |
14 | - <div class="col-12" ng-repeat="(key, articulo) in articulos"> | |
15 | - <input | |
16 | - type="radio" | |
17 | - name="articuloRadio" | |
18 | - id="{{articulo.id}}" | |
19 | - ng-checked="articulo.checked" | |
20 | - ng-disabled="articulo.cargado" | |
21 | - ng-click="cambioArticulo(articulo)" | |
22 | - > | |
23 | - <span>Articulo: {{articulo.descripcion}},</span> | |
24 | - <span>Total: {{articulo.cantidad}},</span> | |
25 | - <span>Cantidad Cargada: {{articulo.cantidadCargada || 0}},</span> | |
26 | - <span>Pendiente: {{articulo.cantidad - articulo.cantidadCargada}} </span> | |
27 | - </div> | |
28 | - <strong class="col-12" ng-bind="vehiculo.tractor"></strong> | |
29 | - <strong class="col-12">Cisternas:</strong> | |
30 | - <div class="form-group row input-group" ng-repeat="(key, cisterna) in vehiculo.cisternas"> | |
31 | - <div class="col-1 mt-2"> | |
32 | - <strong>{{cisterna.codigo}}</strong> | |
33 | - </div> | |
34 | - <input | |
35 | - class="form-control col-2 mr-3" | |
36 | - foca-tipo-input | |
37 | - foca-teclado | |
38 | - placeholder="A cargar..." | |
39 | - ng-model="aCargar[key]" | |
40 | - ng-disabled="(articuloSeleccionado.idArticulo !== cisterna.cisternaCarga.idProducto && | |
41 | - cisterna.cisternaCarga.idProducto) || !tieneArticulosPendientes()" | |
42 | - ng-change="actualizarArticulo()" | |
43 | - > | |
44 | - <div class="progress foca-alto-progress col-4 pl-0 pr-0 mt-1"> | |
45 | - <strong class="col-12 mt-1 text-center position-absolute" | |
46 | - >{{cisterna.cisternaCarga.cantidad || 0}} / {{cisterna.capacidad}}</strong> | |
47 | - <div | |
48 | - id="{{cisterna.id}}" | |
49 | - class="progress-bar" | |
50 | - role="progressbar" | |
51 | - aria-valuemin="0" | |
52 | - aria-valuemax="{{cisterna.capacidad}}" | |
53 | - ng-style="{'width':'{{calcularPorcentaje(cisterna)}}'}"> | |
54 | - </div> | |
55 | - </div> | |
56 | - <div class="col-4 mt-2"> | |
57 | - <strong>{{cisterna.cisternaCarga.articulo.DetArt || 'Sin articulo'}}</strong> | |
58 | - </div> | |
59 | - <!--TODO: descomentar cuando se use--> | |
60 | - <!-- <div class="col-1 mt-1"> | |
61 | - <i class="fa fa-info" uib-tooltip="Información cisterna"></i> | |
62 | - </div> --> | |
63 | - </div> | |
15 | + <table class="table table-sm"> | |
16 | + <thead> | |
17 | + <tr> | |
18 | + <th></th> | |
19 | + <th>Articulo</th> | |
20 | + <th>Total</th> | |
21 | + <th>Cargado</th> | |
22 | + <th>Pendiente</th> | |
23 | + </tr> | |
24 | + </thead> | |
25 | + <tbody> | |
26 | + <tr ng-repeat="(key, articulo) in articulos"> | |
27 | + <td><input | |
28 | + type="radio" | |
29 | + name="articuloRadio" | |
30 | + id="{{articulo.id}}" | |
31 | + ng-checked="articulo.checked" | |
32 | + ng-disabled="articulo.cargado" | |
33 | + ng-click="cambioArticulo(articulo)" | |
34 | + ></td> | |
35 | + <td ng-bind="articulo.descripcion"></td> | |
36 | + <td ng-bind="articulo.cantidad"></td> | |
37 | + <td ng-bind="articulo.cantidadCargada || 0"></td> | |
38 | + <td ng-bind="articulo.cantidad - articulo.cantidadCargada"></td> | |
39 | + </tr> | |
40 | + </tbody> | |
41 | + </table> | |
42 | + <table class="table table-sm"> | |
43 | + <thead> | |
44 | + <tr> | |
45 | + <th>Cisterna</th> | |
46 | + <th>Cantidad asignada</th> | |
47 | + <th>Estado</th> | |
48 | + <th>Articulo cargado</th> | |
49 | + </tr> | |
50 | + </thead> | |
51 | + <tbody> | |
52 | + <tr ng-repeat="(key, cisterna) in vehiculo.cisternas"> | |
53 | + <td ng-bind="cisterna.codigo"></td> | |
54 | + <td><input | |
55 | + class="form-control" | |
56 | + foca-tipo-input | |
57 | + foca-teclado | |
58 | + placeholder="A cargar..." | |
59 | + ng-model="aCargar[key]" | |
60 | + ng-disabled="(articuloSeleccionado.idArticulo !== cisterna.cisternaCarga.idProducto && | |
61 | + cisterna.cisternaCarga.idProducto) || !tieneArticulosPendientes()" | |
62 | + ng-change="actualizarArticulo()" | |
63 | + > | |
64 | + </td> | |
65 | + <td colspan="2"><div class="progress foca-alto-progress pl-0 pr-0 mt-1"> | |
66 | + <strong | |
67 | + class="mt-2 col-3 text-center position-absolute" | |
68 | + ng-bind="(cisterna.cisternaCarga.cantidad || 0) + '/' + (cisterna.capacidad)"> | |
69 | + </strong> | |
70 | + <div | |
71 | + id="{{cisterna.id}}" | |
72 | + class="progress-bar" | |
73 | + role="progressbar" | |
74 | + aria-valuemin="0" | |
75 | + aria-valuemax="{{cisterna.capacidad}}" | |
76 | + ng-style="{'width':'{{calcularPorcentaje(cisterna)}}'}"> | |
77 | + </div> | |
78 | + </div> | |
79 | + </td> | |
80 | + <td ng-bind="cisterna.cisternaCarga.articulo.DetArt || 'Sin articulo'"></td> | |
81 | + </tr> | |
82 | + </tbody> | |
83 | + </table> | |
64 | 84 | <div class="col-12 aling-end"> |
65 | 85 | <button |
66 | - class="form-control" | |
86 | + class="form-control btn btn-success" | |
87 | + ladda="cargando" | |
88 | + data-spinner-color="#FF0000" | |
67 | 89 | type="button" |
68 | 90 | ng-disabled="!articuloSeleccionado || articuloSeleccionado.cantidad - |
69 | 91 | articuloSeleccionado.cantidadCargada !== 0 || !tieneArticulosPendientes()" |
92 | + ng-class="{'btn-light': !articuloSeleccionado || articuloSeleccionado.cantidad - | |
93 | + articuloSeleccionado.cantidadCargada !== 0 || !tieneArticulosPendientes()}" | |
70 | 94 | ng-click="cargarACisternas(vehiculo)"> |
71 | - Cargar cisternas | |
95 | + Aplicar distribución de cargas | |
72 | 96 | </button> |
73 | 97 | </div> |
74 | 98 | </div> |
... | ... | @@ -76,10 +100,12 @@ |
76 | 100 | <div class="modal-footer py-1"> |
77 | 101 | <button |
78 | 102 | class="btn btn-sm btn-secondary" |
103 | + ladda="cargando" | |
79 | 104 | type="button" |
80 | 105 | ng-click="cancelar()">Cancelar</button> |
81 | 106 | <button |
82 | 107 | class="btn btn-sm btn-primary" |
108 | + ladda="cargando" | |
83 | 109 | type="button" |
84 | 110 | ng-click="aceptar()" |
85 | 111 | ng-disabled="tieneArticulosPendientes()">Cargar</button> |
src/views/foca-logistica-pedido-ruta.html
... | ... | @@ -61,7 +61,7 @@ |
61 | 61 | > |
62 | 62 | <div> |
63 | 63 | <div class="col-md-3 col-sm-6"> |
64 | - <div class="progress-circle blue" ng-class="{'arrastrando': arrastrando}"> | |
64 | + <div class="progress-circle" ng-class="{'arrastrando': arrastrando}"> | |
65 | 65 | <span class="progress-left"> |
66 | 66 | <span class="progress-bar"></span> |
67 | 67 | </span> |
... | ... | @@ -69,16 +69,17 @@ |
69 | 69 | <span class="progress-bar"></span> |
70 | 70 | </span> |
71 | 71 | <div class="progress-value">{{vehiculo.codigo}}</div> |
72 | - </div> | |
72 | + </div> | |
73 | 73 | </div> |
74 | - <div class="row"> | |
75 | - <div class="text-left col-6"> | |
76 | - <i | |
77 | - class="fa fa-info fa-2x" | |
78 | - uib-tooltip="Ver información del vehículo" | |
79 | - ng-click="informacionVehiculo(vehiculo)"></i> | |
74 | + <div class="row px-4"> | |
75 | + <div class="text-left col-6 ml-1 position-absolute"> | |
76 | + <img | |
77 | + src="img/hojaRutaVolante.png" | |
78 | + width="34%" | |
79 | + uib-tooltip="Confeccionar hoja de ruta" | |
80 | + ng-click="hacerHojaRuta(vehiculo)"> | |
80 | 81 | </div> |
81 | - <div class="text-right col-6"> | |
82 | + <div class="text-right ml-5 col-6 position-absolute"> | |
82 | 83 | <i |
83 | 84 | class="fa fa-trash fa-2x" |
84 | 85 | uib-tooltip="Eliminar vehiculo" |
... | ... | @@ -86,7 +87,7 @@ |
86 | 87 | </div> |
87 | 88 | </div> |
88 | 89 | <div |
89 | - class="col-12 border border-dark text-center" | |
90 | + class="col-12 mt-5 border border-dark text-center" | |
90 | 91 | ng-show="arrastrando" |
91 | 92 | id="{{vehiculo.id}}" |
92 | 93 | ondrop="drop(event)" |
src/views/foca-modal-crear-hoja-ruta.html
... | ... | @@ -0,0 +1,96 @@ |
1 | +<div class="modal-header"> | |
2 | + <h4>-en desarrollo</h4> | |
3 | + <h4>Confeccionar hoja de ruta</h4> | |
4 | + Hoja de ruta Nº <strong ng-bind="[numero, sucursal] | comprobante"></strong> | |
5 | + <br> | |
6 | +</div> | |
7 | +<div class="modal-body"> | |
8 | + <form class="row" name="formHojaRuta"> | |
9 | + | |
10 | + | |
11 | + <div class="col-2 form-group"> | |
12 | + <label>Vehículo</label> | |
13 | + </div> | |
14 | + <div class="col-4"> | |
15 | + <input | |
16 | + class="form-control" | |
17 | + readonly | |
18 | + ng-model="vehiculo.tractor" | |
19 | + > | |
20 | + </div> | |
21 | + <div class="col-2"> | |
22 | + <label>Transportista</label> | |
23 | + </div> | |
24 | + <div class="col-4"> | |
25 | + <input | |
26 | + class="form-control" | |
27 | + readonly | |
28 | + ng-model="vehiculo.transportista.NOM" | |
29 | + > | |
30 | + </div> | |
31 | + <div class="col-2 form-group"> | |
32 | + <label>Chofer</label> | |
33 | + </div> | |
34 | + <div class="col-4 input-group"> | |
35 | + <input | |
36 | + class="form-control" | |
37 | + ng-model="chofer.nombre" | |
38 | + ng-click="seleccionarChofer()" | |
39 | + ng-required="true" | |
40 | + > | |
41 | + <div class="input-group-append"> | |
42 | + <button | |
43 | + class="brn btn-outline-secondary form-control" | |
44 | + ng-click="seleccionarChofer()" | |
45 | + ><i class="fa fa-search"></i> | |
46 | + </button> | |
47 | + </div> | |
48 | + </div> | |
49 | + <div class="col-2"> | |
50 | + <label>Tarifa</label> | |
51 | + </div> | |
52 | + <div class="col-4"> | |
53 | + <input | |
54 | + class="form-control" | |
55 | + ng-model="tarifaFlete" | |
56 | + ng-required="true" | |
57 | + foca-teclado | |
58 | + foca-tipo-input | |
59 | + > | |
60 | + </div> | |
61 | + </form> | |
62 | + <strong>Remitos:</strong> | |
63 | + <table class="table"> | |
64 | + <thead> | |
65 | + <tr> | |
66 | + <th>Remito Nº</th> | |
67 | + <th>Cliente</th> | |
68 | + <th>Domicilio</th> | |
69 | + </tr> | |
70 | + </thead> | |
71 | + <tbody> | |
72 | + <tr ng-repeat="remito in remitos"> | |
73 | + <td ng-bind="[remito.numeroRemito, remito.sucursal] | comprobante"></td> | |
74 | + <td ng-bind="remito.nombreCliente"></td> | |
75 | + <td ng-bind="remito.domicilioStamp"></td> | |
76 | + </tr> | |
77 | + <!-- <tr> | |
78 | + <td>Remito ejemplo</td> | |
79 | + <td>Domicilio ejemplo</td> | |
80 | + </tr> --> | |
81 | + </tbody> | |
82 | + </table> | |
83 | +</div> | |
84 | +<div class="modal-footer py-1"> | |
85 | + <button | |
86 | + class="btn btn-sm btn-secondary" | |
87 | + ladda="cargando" | |
88 | + type="button" | |
89 | + ng-click="cancelar()">Cancelar</button> | |
90 | + <button | |
91 | + class="btn btn-sm btn-primary" | |
92 | + ladda="cargando" | |
93 | + type="button" | |
94 | + ng-disabled="!formHojaRuta.$valid" | |
95 | + ng-click="aceptar()">Crear hoja ruta</button> | |
96 | +</div> |