Commit f3af9b320d3d2a8fd9ab5300cf50389dc553b630

Authored by Eric Fernandez
1 parent dc667eace5
Exists in master

refactor transportista

src/js/controller.js
1 angular.module('focaModalDescarga') 1 angular.module('focaModalDescarga')
2 .controller('focaModalDescargaCtrl', [ 2 .controller('focaModalDescargaCtrl', [
3 '$scope', 3 '$scope',
4 'focaModalDescargasService', 4 'focaModalDescargasService',
5 '$filter', 5 '$filter',
6 'focaModalService', 6 'focaModalService',
7 '$timeout', 7 '$timeout',
8 '$uibModalInstance', 8 '$uibModalInstance',
9 '$uibModal', 9 '$uibModal',
10 'remito', 10 'remito',
11 'focaModalDetalleHojaRutaService', 11 'focaModalDetalleHojaRutaService',
12 'focaSeguimientoService', 12 'focaSeguimientoService',
13 'crearRemitoService', 13 'crearRemitoService',
14 function ($scope, focaModalDescargasService, $filter, 14 function ($scope, focaModalDescargasService, $filter,
15 focaModalService, $timeout, $uibModalInstance, $uibModal, remito, 15 focaModalService, $timeout, $uibModalInstance, $uibModal, remito,
16 focaModalDetalleHojaRutaService, focaSeguimientoService, crearRemitoService) { 16 focaModalDetalleHojaRutaService, focaSeguimientoService, crearRemitoService) {
17 17
18 //#region variables 18 //#region variables
19 $scope.remito = {}; 19 $scope.remito = {};
20 $scope.remito = remito; 20 $scope.remito = remito;
21 $scope.nroRecibo = 0; 21 $scope.nroRecibo = 0;
22 $scope.cisternas = remito.cisternas; 22 $scope.cisternas = remito.cisternas;
23 $scope.nroSucursal; 23 $scope.nroSucursal;
24 $scope.nroRemito; 24 $scope.nroRemito;
25 $scope.articulos = []; 25 $scope.articulos = [];
26 $scope.hasErrorSucursalRemito = false; 26 $scope.hasErrorSucursalRemito = false;
27 //#endregion 27 //#endregion
28 28
29 function init() { 29 function init() {
30 crearRemitoService.getNumeroRemito().then( 30 crearRemitoService.getNumeroRemito().then(
31 function (res) { 31 function (res) {
32 $scope.nroSucursal = res.data.sucursal; 32 $scope.nroSucursal = res.data.sucursal;
33 $scope.nroRemito = res.data.numeroRemito; 33 $scope.nroRemito = res.data.numeroRemito;
34 $scope.validateSucursalRemito($scope.nroSucursal, $scope.nroRemito); 34 $scope.validateSucursalRemito($scope.nroSucursal, $scope.nroRemito);
35 }, 35 },
36 function (err) { 36 function (err) {
37 focaModalService.alert('La terminal no esta configurada correctamente'); 37 focaModalService.alert('La terminal no esta configurada correctamente');
38 console.info(err); 38 console.info(err);
39 } 39 }
40 ); 40 );
41 }; 41 };
42 42
43 init(); 43 init();
44 44
45 $scope.crearRemito = function () { 45 $scope.crearRemito = function () {
46 if (!$scope.remito.cliente) { 46 if (!$scope.remito.cliente) {
47 focaModalService.alert("No has seleccionado cliente"); 47 focaModalService.alert("No has seleccionado cliente");
48 return; 48 return;
49 } 49 }
50 if (validarDescarga()) { 50 if (validarDescarga()) {
51 return; 51 return;
52 } 52 }
53 //#region OBJETO REMITO 53 //#region OBJETO REMITO
54 var remito = { 54 var save = {
55 id: 0, 55 remito: {
56 fechaRemito: new Date().toISOString().slice(0, 19).replace('T', ' '), 56 id: 0,
57 idCliente: $scope.remito.cliente.cod, 57 fechaRemito: new Date().toISOString().slice(0, 19).replace('T', ' '),
58 nombreCliente: $scope.remito.cliente.nom, 58 idCliente: $scope.remito.cliente.COD,
59 cuitCliente: $scope.remito.cliente.cuit, 59 nombreCliente: $scope.remito.cliente.NOM,
60 total: $scope.getTotal() * $scope.remito.cotizacion.VENDEDOR, 60 cuitCliente: $scope.remito.cliente.CUIT,
61 numeroNotaPedido: $scope.remito.numeroNotaPedido, 61 total: $scope.getTotal() * $scope.remito.cotizacion.VENDEDOR,
62 idVendedor: $scope.remito.cliente.ven, 62 numeroNotaPedido: $scope.remito.numeroNotaPedido,
63 idProveedor: $scope.remito.proveedor.COD, 63 idVendedor: $scope.remito.cliente.VEN,
64 idDomicilio: 0, 64 idProveedor: $scope.remito.proveedor.COD,
65 idCotizacion: $scope.remito.cotizacion.ID, 65 idDomicilio: 0,
66 idListaPrecio: parseInt($scope.remito.cliente.mod) || '', 66 idCotizacion: $scope.remito.cotizacion.ID,
67 flete: $scope.remito.flete, 67 idListaPrecio: parseInt($scope.remito.cliente.MOD) || '',
68 fob: $scope.remito.fob, 68 flete: $scope.remito.flete,
69 bomba: $scope.remito.bomba, 69 fob: $scope.remito.fob,
70 kilometros: $scope.remito.kilometros, 70 bomba: $scope.remito.bomba,
71 domicilioStamp: $scope.remito.cliente.DOM, 71 kilometros: $scope.remito.kilometros,
72 observaciones: $scope.remito.observaciones, 72 domicilioStamp: $scope.remito.cliente.DOM,
73 numeroRemito: parseInt($scope.nroRemito), 73 observaciones: $scope.remito.observaciones,
74 sucursal: parseInt($scope.nroSucursal), 74 numeroRemito: parseInt($scope.nroRemito),
75 responsabilidadIvaCliente: $scope.remito.cliente.iva, 75 sucursal: parseInt($scope.nroSucursal),
76 descuento: 0,//TODO, 76 responsabilidadIvaCliente: $scope.remito.cliente.IVA,
77 importeNeto: getImporte('netoUnitario'), 77 descuento: 0,//TODO,
78 importeExento: getImporte('exentoUnitario'), 78 importeNeto: getImporte('netoUnitario'),
79 importeIva: getImporte('ivaUnitario'), 79 importeExento: getImporte('exentoUnitario'),
80 importeIvaServicios: 0,//TODO 80 importeIva: getImporte('ivaUnitario'),
81 importeImpuestoInterno: getImporte('impuestoInternoUnitario'), 81 importeIvaServicios: 0,//TODO
82 importeImpuestoInterno1: getImporte('impuestoInterno1Unitario'), 82 importeImpuestoInterno: getImporte('impuestoInternoUnitario'),
83 importeImpuestoInterno2: getImporte('impuestoInterno2Unitario'), 83 importeImpuestoInterno1: getImporte('impuestoInterno1Unitario'),
84 percepcion: 0,//TODO 84 importeImpuestoInterno2: getImporte('impuestoInterno2Unitario'),
85 percepcionIva: 0,//TODO 85 percepcion: 0,//TODO
86 redondeo: 0,//TODO 86 percepcionIva: 0,//TODO
87 anulado: false, 87 redondeo: 0,//TODO
88 planilla: $filter('date')($scope.now, 'ddMMyyyy'), 88 anulado: false,
89 lugar: parseInt($scope.puntoVenta), 89 planilla: $filter('date')($scope.now, 'ddMMyyyy'),
90 cuentaMadre: 0,//TODO 90 lugar: parseInt($scope.puntoVenta),
91 cuentaContable: 0,//TODO 91 cuentaMadre: 0,//TODO
92 asiento: 0,//TODO 92 cuentaContable: 0,//TODO
93 e_hd: '',//TODO 93 asiento: 0,//TODO
94 c_hd: '', 94 e_hd: '',//TODO
95 numeroLiquidoProducto: 0,//TODO 95 c_hd: '',
96 estado: 0, 96 numeroLiquidoProducto: 0,//TODO
97 destinoVenta: 0,//TODO 97 estado: 0,
98 operacionTipo: 0, //TODO 98 destinoVenta: 0,//TODO
99 idHojaRuta: $scope.remito.idHojaRuta 99 operacionTipo: 0, //TODO
100 } 100 idHojaRuta: $scope.remito.idHojaRuta
101 },
102 notaPedido: {
103 id: 0
104 },
105 articulos: focaModalDescargasService
106 .addArticulos($scope.remito.articulosRemito, $scope.articulos, 1),
107 puntosDescarga: [],
108 plazos: []
109 };
101 //#endregion 110 //#endregion
102 focaModalDescargasService.crearRemito({ remito: remito, notaPedido: { id: 0 } }) 111 focaModalDescargasService.crearRemito(save)
103 .then(function (res) { 112 .then(function (res) {
104 remitoId = res.data.id 113 remitoId = res.data.id;
105 descargar(remitoId); 114 descargar(remitoId);
106 focaModalDescargasService.
107 addArticulos($scope.remito.articulosRemito, $scope.articulos, remitoId, 1);
108 focaModalService.alert("Descarga realizada") 115 focaModalService.alert("Descarga realizada")
109 .then(function () { 116 .then(function () {
110 $uibModalInstance.dismiss(); 117 $uibModalInstance.dismiss();
111 }) 118 })
112 }) 119 })
113 .catch(function (e) { console.log(e); }) 120 .catch(function (e) { console.log(e); })
114 121
115 }; 122 };
116 $scope.getTotal = function () { 123 $scope.getTotal = function () {
117 var total = 0; 124 var total = 0;
118 $scope.cisternas.forEach(function (cisterna) { 125 $scope.cisternas.forEach(function (cisterna) {
119 126
120 total += cisterna.cisternaCarga.articulo.PreVen * cisterna.cisternaCarga.descargar; 127 total += cisterna.cisternaCarga.articulo.PreVen * cisterna.cisternaCarga.descargar;
121 cisterna.cisternaCarga.articulo.cantidad = cisterna.cisternaCarga.descargar; 128 cisterna.cisternaCarga.articulo.cantidad = cisterna.cisternaCarga.descargar;
122 $scope.articulos.push(cisterna.cisternaCarga.articulo); 129 $scope.articulos.push(cisterna.cisternaCarga.articulo);
123 }); 130 });
124 return parseFloat(total.toFixed(2)); 131 return parseFloat(total.toFixed(2));
125 }; 132 };
126 function descargar(idRemito) { 133 function descargar(idRemito) {
127 134
128 for (var i = 0; i < $scope.cisternas.length; i++) { 135 for (var i = 0; i < $scope.cisternas.length; i++) {
129 var descarga = $scope.cisternas[i].cisternaCarga.descargar; 136 var descarga = $scope.cisternas[i].cisternaCarga.descargar;
130 var hojaRutaMovimientos = []; 137 var hojaRutaMovimientos = [];
131 var cisternaMovimientos = []; 138 var cisternaMovimientos = [];
132 var cisternaCargas = []; 139 var cisternaCargas = [];
133 var cisternaCarga = $scope.cisternas[i].cisternaCarga; 140 var cisternaCarga = $scope.cisternas[i].cisternaCarga;
134 if (!descarga) continue; 141 if (!descarga) continue;
135 cisternaCarga.cantidad -= descarga; 142 cisternaCarga.cantidad -= descarga;
136 143
137 //Guardar 144 //Guardar
138 var now = new Date(); 145 var now = new Date();
139 var cisternaMovimiento = { 146 var cisternaMovimiento = {
140 fecha: now.toISOString().slice(0, 19).replace('T', ' '), 147 fecha: now.toISOString().slice(0, 19).replace('T', ' '),
141 cantidad: descarga, 148 cantidad: descarga,
142 metodo: 'descarga', 149 metodo: 'descarga',
143 idCisternaCarga: cisternaCarga.id, 150 idCisternaCarga: cisternaCarga.id,
144 idRemito: idRemito 151 idRemito: idRemito
145 }; 152 };
146 var hojaRutaMovimiento = { 153 var hojaRutaMovimiento = {
147 reciboDescarga: $scope.nroRecibo, 154 reciboDescarga: $scope.nroRecibo,
148 idRemito: idRemito 155 idRemito: idRemito
149 }; 156 };
150 157
151 cisternaCarga = angular.copy($scope.cisternas[i].cisternaCarga); 158 cisternaCarga = angular.copy($scope.cisternas[i].cisternaCarga);
152 159
153 delete cisternaCarga.articulo; 160 delete cisternaCarga.articulo;
154 delete cisternaCarga.descargar; 161 delete cisternaCarga.descargar;
155 cisternaCargas.push(cisternaCarga); 162 cisternaCargas.push(cisternaCarga);
156 cisternaMovimientos.push(cisternaMovimiento); 163 cisternaMovimientos.push(cisternaMovimiento);
157 hojaRutaMovimientos.push(hojaRutaMovimiento); 164 hojaRutaMovimientos.push(hojaRutaMovimiento);
158 } 165 }
159 var save = { 166 var save = {
160 cisternaCargas: cisternaCargas, 167 cisternaCargas: cisternaCargas,
161 cisternaMovimientos: cisternaMovimientos, 168 cisternaMovimientos: cisternaMovimientos,
162 hojaRutaMovimientos: hojaRutaMovimientos, 169 hojaRutaMovimientos: hojaRutaMovimientos,
163 articulo: $scope.articuloSeleccionado 170 articulo: $scope.articuloSeleccionado
164 }; 171 };
165 focaModalDetalleHojaRutaService 172 focaModalDetalleHojaRutaService
166 .postMovimientoHojaRuta(save) 173 .postMovimientoHojaRuta(save)
167 .then(guardarSeguimiento) 174 .then(guardarSeguimiento)
168 .catch(function () { }); 175 .catch(function () { });
169 function guardarSeguimiento(res) { 176 function guardarSeguimiento(res) {
170 focaSeguimientoService 177 focaSeguimientoService
171 .guardarPosicion( 178 .guardarPosicion(
172 'Entrega de producto', 179 'Entrega de producto',
173 res.data[0].id, 180 res.data[0].id,
174 ''); 181 '');
175 $scope.aDescargar = []; 182 $scope.aDescargar = [];
176 }; 183 };
177 }; 184 };
178 function getImporte(propiedad) { 185 function getImporte(propiedad) {
179 var importe = 0; 186 var importe = 0;
180 $scope.remito.articulosRemito.forEach(function (articulo) { 187 $scope.remito.articulosRemito.forEach(function (articulo) {
181 if (articulo[propiedad]) { 188 if (articulo[propiedad]) {
182 importe += articulo[propiedad] * articulo.cantidad; 189 importe += articulo[propiedad] * articulo.cantidad;
183 } 190 }
184 return; 191 return;
185 }); 192 });
186 return importe; 193 return importe;
187 }; 194 };
188 function validarDescarga() { 195 function validarDescarga() {
189 196
190 if ($scope.nroRemito > 99999999) { 197 if ($scope.nroRemito > 99999999) {
191 focaModalService.alert('Numero remito mayor al permitido máximo 8'); 198 focaModalService.alert('Numero remito mayor al permitido máximo 8');
192 return true; 199 return true;
193 } 200 }
194 201
195 if ($scope.nroSucursal > 9999) { 202 if ($scope.nroSucursal > 9999) {
196 focaModalService.alert('Numero sucursal mayor a la permitida máximo 4'); 203 focaModalService.alert('Numero sucursal mayor a la permitida máximo 4');
197 return true; 204 return true;
198 } 205 }
199 206
200 for (var i = 0; i < $scope.cisternas.length; i++) { 207 for (var i = 0; i < $scope.cisternas.length; i++) {
201 if (parseInt($scope.cisternas[i].cisternaCarga.descargar) > 208 if (parseInt($scope.cisternas[i].cisternaCarga.descargar) >
202 $scope.cisternas[i].cisternaCarga.cantidad || 209 $scope.cisternas[i].cisternaCarga.cantidad ||
203 parseInt($scope.cisternas[i].cisternaCarga.descargar) < 0) { 210 parseInt($scope.cisternas[i].cisternaCarga.descargar) < 0) {
204 focaModalService.alert("Cantidad de descarga ingresada erronea"); 211 focaModalService.alert("Cantidad de descarga ingresada erronea");
205 return true; 212 return true;
206 } 213 }
207 } 214 }
208 return false; 215 return false;
209 }; 216 };
210 $scope.seleccionarCliente = function () { 217 $scope.seleccionarCliente = function () {
211 var modalInstance = $uibModal.open( 218 var modalInstance = $uibModal.open(
212 { 219 {
213 ariaLabelledBy: 'Busqueda de Cliente', 220 ariaLabelledBy: 'Busqueda de Cliente',
214 templateUrl: 'foca-busqueda-cliente-modal.html', 221 templateUrl: 'foca-busqueda-cliente-modal.html',
215 controller: 'focaBusquedaClienteModalController', 222 controller: 'focaBusquedaClienteModalController',
216 resolve: { 223 resolve: {
217 vendedor: function () { return null; }, 224 parametros: function() {
218 cobrador: function () { return null; } 225 return {
226 vendedor: function () { return null; },
227 cobrador: function () { return null; }
228 }
229 }
219 }, 230 },
220 size: 'lg' 231 size: 'lg'
221 } 232 }
222 ); 233 );
223 modalInstance.result.then(function (cliente) { 234 modalInstance.result.then(function (cliente) {
224 $scope.remito.cliente = cliente; 235 $scope.remito.cliente = cliente;
225 }, function () { 236 }, function () {
226 //funcion ejecutada al cancelar modal 237 //funcion ejecutada al cancelar modal
227 }); 238 });
228 }; 239 };
229 $scope.validateSucursalRemito = function (sucursal, remito) { 240 $scope.validateSucursalRemito = function (sucursal, remito) {
230 if (!sucursal || !remito) { 241 if (!sucursal || !remito) {
231 $scope.hasErrorSucursalRemito = false; 242 $scope.hasErrorSucursalRemito = false;
232 return; 243 return;
233 } 244 }
234 245
235 focaModalDescargasService.validarSucursalRemito(sucursal, remito) 246 focaModalDescargasService.validarSucursalRemito(sucursal, remito)
236 .then(function (res) { 247 .then(function (res) {
237 if (res.data.data === 1) { 248 if (res.data.data === 1) {
238 $scope.hasErrorSucursalRemito = true; 249 $scope.hasErrorSucursalRemito = true;
239 } else { 250 } else {
240 $scope.hasErrorSucursalRemito = false; 251 $scope.hasErrorSucursalRemito = false;
241 } 252 }
242 }) 253 })
243 .catch(function (e) { console.error(e); }); 254 .catch(function (e) { console.error(e); });
244 }; 255 };
245 $scope.cancelar = function () { 256 $scope.cancelar = function () {
246 $uibModalInstance.dismiss(); 257 $uibModalInstance.dismiss();
247 }; 258 };
248 function rellenar(relleno, longitud) { 259 function rellenar(relleno, longitud) {
249 relleno = '' + relleno; 260 relleno = '' + relleno;
250 while (relleno.length < longitud) { 261 while (relleno.length < longitud) {
251 relleno = '0' + relleno; 262 relleno = '0' + relleno;
252 } 263 }
253 return relleno; 264 return relleno;
254 }; 265 };
255 } 266 }
1 angular.module('focaModalDescarga') 1 angular.module('focaModalDescarga')
2 .factory('focaModalDescargasService', ['$http', 'API_ENDPOINT', 'crearRemitoService', 2 .factory('focaModalDescargasService', ['$http', 'API_ENDPOINT', 'crearRemitoService',
3 function ($http, API_ENDPOINT, crearRemitoService) { 3 function ($http, API_ENDPOINT, crearRemitoService) {
4 var route = API_ENDPOINT.URL; 4 var route = API_ENDPOINT.URL;
5 return { 5 return {
6 crearRemito: function (remito) { 6 crearRemito: function (remito) {
7 return $http.post(route + '/remito/guardar/mobile', remito); 7 return $http.post(route + '/remito/guardar/mobile', remito);
8 }, 8 },
9 validarSucursalRemito: function (sucursal, remito) { 9 validarSucursalRemito: function (sucursal, remito) {
10 return $http.get(route + '/remito/validar/' + 10 return $http.get(route + '/remito/validar/' +
11 sucursal + '/' + remito); 11 sucursal + '/' + remito);
12 }, 12 },
13 addArticulos: function (articulosRemito, articulosBase, idRemito, cotizacion) { 13 addArticulos: function (articulosRemito, articulosBase, cotizacion) {
14 14
15 for (var i = 0; i < articulosRemito.length; i++) { 15 for (var i = 0; i < articulosRemito.length; i++) {
16 16
17 var articuloReferencia = articulosBase.filter(function (articulo) { 17 var articuloReferencia = articulosBase.filter(function (articulo) {
18 return articulosRemito[i].idArticulo == articulo.id && 18 return articulosRemito[i].idArticulo == articulo.id &&
19 parseInt(articulo.cantidad) > 0 19 parseInt(articulo.cantidad) > 0
20 })[0]; 20 })[0];
21 if (articuloReferencia === undefined) continue; 21 if (articuloReferencia === undefined) continue;
22 22
23 delete articulosRemito[i].id 23 delete articulosRemito[i].id
24 delete articulosRemito[i].editCantidad; 24 delete articulosRemito[i].editCantidad;
25 delete articulosRemito[i].editPrecio; 25 delete articulosRemito[i].editPrecio;
26 26
27 articulosRemito[i].idRemito = articulosRemito[i].idRemito !== -1 ?
28 idRemito : articulosRemito[i].idRemito;
29
30 articulosRemito[i].precio = articuloReferencia.PreVen * cotizacion; 27 articulosRemito[i].precio = articuloReferencia.PreVen * cotizacion;
31 articulosRemito[i].cantidad = articuloReferencia.cantidad; 28 articulosRemito[i].cantidad = articuloReferencia.cantidad;
32 articulosRemito[i].cantidadDescargada = articuloReferencia.cantidad; 29 articulosRemito[i].cantidadDescargada = articuloReferencia.cantidad;
33 30
34 delete articulosRemito[i].idNotaPedido; 31 delete articulosRemito[i].idNotaPedido;
35 crearRemitoService.crearArticulosParaRemito(articulosRemito[i]);
36 } 32 }
33
34 return articulosRemito;
37 } 35 }
38 }; 36 };
src/views/foca-modal-descarga.html
1 <div class="modal-header"> 1 <div class="modal-header">
2 <h5>Detalle de descarga</h5> 2 <h5>Detalle de descarga</h5>
3 </div> 3 </div>
4 <div class="modal-body"> 4 <div class="modal-body">
5 <div class="row px-1"> 5 <div class="row px-1">
6 <div class="col-3 align-self-center mt-1 pl-1"> 6 <div class="col-3 align-self-center mt-1 pl-1">
7 <strong>Cliente</strong> 7 <strong>Cliente</strong>
8 </div> 8 </div>
9 <div class="col-9"> 9 <div class="col-9">
10 <div class="input-group"> 10 <div class="input-group">
11 <input 11 <input
12 type="text" 12 type="text"
13 ladda="searchLoading" 13 ladda="searchLoading"
14 class="form-control form-control-sm foca-input" 14 class="form-control form-control-sm foca-input"
15 placeholder="Busqueda cliente" 15 placeholder="Busqueda cliente"
16 ng-model="remito.cliente.nom" 16 ng-model="remito.cliente.nom"
17 readonly 17 readonly
18 > 18 >
19 <div class="input-group-append"> 19 <div class="input-group-append">
20 <button 20 <button
21 ladda="searchLoading" 21 ladda="searchLoading"
22 data-spinner-color="#FF0000" 22 data-spinner-color="#FF0000"
23 class="btn btn-outline-secondary" 23 class="btn btn-outline-secondary"
24 type="button" 24 type="button"
25 ng-click="seleccionarCliente()" 25 ng-click="seleccionarCliente()"
26 id="esEsteXD"
26 > 27 >
27 <i class="fa fa-search fa-x1" aria-hidden="true"></i> 28 <i class="fa fa-search fa-x1" aria-hidden="true"></i>
28 </button> 29 </button>
29 </div> 30 </div>
30 </div> 31 </div>
31 </div> 32 </div>
32 <div class="col-3 align-self-center pl-1 mt-1"> 33 <div class="col-3 align-self-center pl-1 mt-1">
33 <strong>Domicilio</strong> 34 <strong>Domicilio</strong>
34 </div> 35 </div>
35 <div class="col-9 align-self-center mt-1"> 36 <div class="col-9 align-self-center mt-1">
36 <label ng-bind="remito.cliente.DOM"></label> 37 <label ng-bind="remito.cliente.DOM"></label>
37 </div> 38 </div>
38 <div class="col-3 align-self-center px-1 mt-1"> 39 <div class="col-3 align-self-center px-1 mt-1">
39 <strong>Remito Nº</strong> 40 <strong>Remito Nº</strong>
40 </div> 41 </div>
41 <div class="col-3 pr-0 mt-1"> 42 <div class="col-3 pr-0 mt-1">
42 <input 43 <input
43 type="number" class="text-center form-control form-control-sm" 44 type="number" class="text-center form-control form-control-sm"
44 ng-focus="$event.target.select();" 45 ng-focus="$event.target.select();"
45 ng-model="nroSucursal" 46 ng-model="nroSucursal"
46 ng-change="validateSucursalRemito(nroSucursal, nroRemito)" 47 ng-change="validateSucursalRemito(nroSucursal, nroRemito)"
47 > 48 >
48 </div> 49 </div>
49 <div class="col-6 mt-1"> 50 <div class="col-6 mt-1">
50 <input 51 <input
51 type="number" class="text-center form-control form-control-sm" 52 type="number" class="text-center form-control form-control-sm"
52 ng-focus="$event.target.select();" 53 ng-focus="$event.target.select();"
53 ng-model="nroRemito" 54 ng-model="nroRemito"
54 ng-change="validateSucursalRemito(nroSucursal, nroRemito)" 55 ng-change="validateSucursalRemito(nroSucursal, nroRemito)"
55 > 56 >
56 </div> 57 </div>
57 <div 58 <div
58 class="col-12 mt-1 alert alert-danger text-center" role="alert" 59 class="col-12 mt-1 alert alert-danger text-center" role="alert"
59 ng-show="hasErrorSucursalRemito"> 60 ng-show="hasErrorSucursalRemito">
60 Error numero de remito existente!<br>Ingrese otro número 61 Error numero de remito existente!<br>Ingrese otro número
61 </div> 62 </div>
62 <div class="col-12 mt-3 p-0"> 63 <div class="col-12 mt-3 p-0">
63 <table class="table"> 64 <table class="table">
64 <thead> 65 <thead>
65 <tr> 66 <tr>
66 <th>Cisterna</th> 67 <th>Cisterna</th>
67 <th>Articulo/Disponibles</th> 68 <th>Articulo/Disponibles</th>
68 <th>Descargar</th> 69 <th>Descargar</th>
69 </tr> 70 </tr>
70 </thead> 71 </thead>
71 <tbody> 72 <tbody>
72 <tr ng-repeat="cisterna in cisternas"> 73 <tr ng-repeat="cisterna in cisternas">
73 <td class="text-center" ng-bind="cisterna.codigo"></td> 74 <td class="text-center" ng-bind="cisterna.codigo"></td>
74 <td class="text-center"> 75 <td class="text-center">
75 {{cisterna.cisternaCarga.articulo.DetArt}}<br> 76 {{cisterna.cisternaCarga.articulo.DetArt}}<br>
76 {{cisterna.cisternaCarga.cantidad}} 77 {{cisterna.cisternaCarga.cantidad}}
77 </td> 78 </td>
78 <td> 79 <td>
79 <input 80 <input
80 ng-init="cisterna.cisternaCarga.descargar = 81 ng-init="cisterna.cisternaCarga.descargar =
81 cisterna.cisternaCarga.cantidad" 82 cisterna.cisternaCarga.cantidad"
82 ng-model="cisterna.cisternaCarga.descargar" 83 ng-model="cisterna.cisternaCarga.descargar"
83 ng-focus="$event.target.select();" 84 ng-focus="$event.target.select();"
84 class="text-center form-control col-12" 85 class="text-center form-control col-12"
85 ng-show="cisterna.cisternaCarga.cantidad > 0"> 86 ng-show="cisterna.cisternaCarga.cantidad > 0">
86 <div 87 <div
87 class="text-center alert-danger p-1" 88 class="text-center alert-danger p-1"
88 role="alert" 89 role="alert"
89 ng-hide="cisterna.cisternaCarga.cantidad > 0"> 90 ng-hide="cisterna.cisternaCarga.cantidad > 0">
90 Cisterna vacía. 91 Cisterna vacía.
91 </div> 92 </div>
92 </td> 93 </td>
93 </tr> 94 </tr>
94 </tbody> 95 </tbody>
95 </table> 96 </table>
96 </div> 97 </div>
97 <div class="col-3 align-self-center px-1"> 98 <div class="col-3 align-self-center px-1">
98 <strong>Nº Recibo</strong> 99 <strong>Nº Recibo</strong>
99 </div> 100 </div>
100 <div class="col-9"> 101 <div class="col-9">
101 <input 102 <input
102 ng-model="nroRecibo" class="form-control" 103 ng-model="nroRecibo" class="form-control"
103 ng-focus="$event.target.select();" 104 ng-focus="$event.target.select();"
104 type="number" placeholder="Nº de recibo"> 105 type="number" placeholder="Nº de recibo">
105 </div> 106 </div>
106 </div> 107 </div>
107 </div> 108 </div>
108 <div class="modal-footer"> 109 <div class="modal-footer">
109 <button 110 <button
110 class="btn btn-sm btn-secondary" 111 class="btn btn-sm btn-secondary"
111 ladda="cargando" 112 ladda="cargando"
112 type="button" 113 type="button"
113 ng-click="cancelar()">Cancelar</button> 114 ng-click="cancelar()">Cancelar</button>
114 <button 115 <button
115 class="btn btn-sm btn-primary" 116 class="btn btn-sm btn-primary"
116 ladda="cargando" 117 ladda="cargando"
117 type="button" 118 type="button"
118 ng-click="crearRemito()" 119 ng-click="crearRemito()"
119 ng-disabled="idRemito === -1 || hasErrorSucursalRemito || !nroSucursal || !nroRemito" 120 ng-disabled="idRemito === -1 || hasErrorSucursalRemito || !nroSucursal || !nroRemito"
120 foca-focus="idRemito !== -1"> 121 foca-focus="idRemito !== -1">
121 Descargar 122 Descargar
122 </button> 123 </button>
123 </div> 124 </div>
124 125