angular.module('focaLogisticaPedidoRuta') .controller('focaModalCerrarVehiculo', [ '$scope', '$uibModalInstance', '$uibModal', 'focaLogisticaPedidoRutaService', 'idVehiculo', 'focaModalService', '$filter', function($scope, $uibModalInstance, $uibModal, focaLogisticaPedidoRutaService, idVehiculo, focaModalService, $filter) { $scope.vehiculo = {}; $scope.remitos = []; $scope.now = new Date(); focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then(function(res) { $scope.vehiculo = res.data; }); //TODO: refactor código esta rre feo focaLogisticaPedidoRutaService.getRemitos(idVehiculo).then(function(res) { $scope.remitos = focaLogisticaPedidoRutaService.obtenerRemitosDeCarga(res.data); }); focaLogisticaPedidoRutaService.numeroHojaRuta().then(function(res) { $scope.sucursal = res.data.sucursal; $scope.numero = res.data.numeroHojaRuta; }); $scope.cancelar = function() { $uibModalInstance.close(); }; $scope.aceptar = function() { var save = { hojaRuta: { id: 0, fechaCreacion: $scope.now.toISOString().slice(0, 19).replace('T', ' '), idTransportista: $scope.vehiculo.idTransportista, idChofer: $scope.chofer.id, idVehiculo: $scope.vehiculo.id, tarifaFlete: $scope.tarifaFlete }, remitos: $scope.remitos, idVehiculo: $scope.vehiculo.id }; focaLogisticaPedidoRutaService.crearHojaRuta(save).then(function() { $uibModalInstance.close(); focaModalService.alert('Hoja de ruta guardada con éxito'); }); }; $scope.seleccionarChofer = function() { var modalInstance = $uibModal.open( { ariaLabelledBy: 'Busqueda de Chofer', templateUrl: 'modal-chofer.html', controller: 'focaModalChoferController', size: 'lg' } ); modalInstance.result.then( function(chofer) { $scope.chofer = chofer; }, function() { // funcion ejecutada cuando se cancela el modal } ); }; $scope.eliminarRemitos = function() { var remitosDel = $filter('filter')($scope.remitos, {checked: true}); focaModalService.alert('¿Seguro que desea desasociar estos remitos del vehículo?') .then(function() { eliminarRemitos(remitosDel); } ); }; $scope.minimoUnoChecked = function() { var remitosChequeados = $filter('filter')($scope.remitos, {checked: true}); return !remitosChequeados.length; }; function eliminarRemitos(remitosDel) { var nuevosRemitos = $filter('filter')($scope.remitos, {checked: !true}); focaLogisticaPedidoRutaService.desasociarRemitos(remitosDel, $scope.vehiculo.id, nuevosRemitos ? true : false).then(function() { focaModalService.alert('Remitos desasociados con éxito'); $scope.remitos = nuevosRemitos; }); } }]);