controllerCerrarVehiculo.js 3.47 KB
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;
                });
        }
    }]);