controller.js 4.53 KB
angular.module('focaEstadoCisternas')
    .controller('focaEstadoCisternasController', [
        '$scope', 'focaEstadoCisternasService', '$location', 'focaModalService',
        '$uibModal', 'focaBotoneraLateralService', '$timeout',
        function($scope, focaEstadoCisternasService, $location, focaModalService,
            $uibModal, focaBotoneraLateralService, $timeout) {

            $scope.now = new Date();
            $scope.fecha = new Date();
            $scope.cisternas = [];
            $scope.botonera = [{
                label: 'Transportista',
                image: 'transportista.png'
            },
            {
                label: 'Vehiculo',
                image: 'vehiculos.png'
            },
            {
                label: 'Fecha',
                image: 'fechaDeReparto.png'
            }];

            //SETEO BOTONERA LATERAL
            focaBotoneraLateralService.showSalir(true);
            focaBotoneraLateralService.showPausar(false);
            focaBotoneraLateralService.showCancelar(false);
            focaBotoneraLateralService.showGuardar(false);

            $timeout(function() {
                $scope.$broadcast('addCabecera',{
                    label: 'Fecha:',
                    valor: $scope.fecha.toLocaleDateString()
                });
            });

            $scope.seleccionarTransportista = function() {
                var modalInstance = $uibModal.open(
                    {
                        ariaLabelledBy: 'Busqueda de Transportista',
                        templateUrl: 'modal-proveedor.html',
                        controller: 'focaModalProveedorCtrl',
                        size: 'lg',
                        resolve: {
                            transportista: function() {
                                return true;
                            }
                        }
                    }
                );
                modalInstance.result.then(
                    function(transportista) {
                        elegirTransportista(transportista);
                    }, function() {

                    }
                );
            };

            $scope.seleccionarVehiculo = function() {
                if(!$scope.idTransportista){
                    focaModalService.alert('Primero seleccione un transportista');
                    return;
                }
                var query = '/vehiculo/transportista/' + $scope.idTransportista;
                var columnas = {
                    nombre: ['Código', 'tractor', 'Semi', 'Capacidad'],
                    propiedad: ['codigo', 'tractor', 'semi', 'capacidadTotalCisternas']
                };
                var titulo = 'Búsqueda de vehículos';

                focaModalService.modal(columnas, query, titulo).then(
                    function(vehiculo) {
                        $scope.$broadcast('addCabecera', {
                            label: 'Vehículo:',
                            valor: vehiculo.codigo
                        });
                        $scope.cisternas = vehiculo.cisternas;
                        getEstadosCisternas($scope.cisternas);
                    }, function() {
                        // funcion ejecutada cuando se cancela el modal
                    });
            };

            $scope.seleccionarFecha = function() {
                focaModalService.modalFecha('Fecha').then(function(fecha) {
                    $scope.$broadcast('addCabecera',{
                        label: 'Fecha:',
                        valor: fecha.toLocaleDateString()
                    });
                    $scope.fecha = fecha;
                    if($scope.cisternas)
                        getEstadosCisternas($scope.cisternas);
                });
            };

            function elegirTransportista(transportista) {
                var codigo = ('00000' + transportista.COD).slice(-5);
                $scope.idTransportista = transportista.COD;
                $scope.filtros = transportista.NOM.trim();
                $scope.$broadcast('addCabecera', {
                    label: 'Transportista:',
                    valor: codigo + ' - ' + transportista.NOM
                });
            }

            function getEstadosCisternas(cisternas) {
                cisternas.forEach(function(cisterna) {
                    focaEstadoCisternaService
                        .getEstadoCisterna(cisterna.id, $scope.fecha)
                        .then(function(res) {
                            cisterna.estado = res.data;
                        });
                });
            }
        }
    ]);