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

            $scope.now = new Date();
            $scope.fecha = new Date();
            $scope.cisternas = [];
            $scope.botonera = focaEstadoCisternasService.getBotonera();

            //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 parametrosModal = {
                    titulo: 'Búsqueda de Transportista',
                    query: '/transportista',
                    columnas: [
                        {
                            nombre: 'Código',
                            propiedad: 'COD'
                        },
                        {
                            nombre: 'Nombre',
                            propiedad: 'NOM'
                        },
                        {
                            nombre: 'CUIT',
                            propiedad: 'CUIT'
                        }
                    ]
                };
                return focaModalService.modal(parametrosModal);
            };

            $scope.seleccionarVehiculo = function() {
                $scope.seleccionarTransportista().then(
                    function(transportista) {
                        elegirTransportista(transportista);

                        var parametrosModal = {
                            columnas: [
                                {
                                    propiedad: 'codigo',
                                    nombre: 'Código'
                                },
                                {
                                    propiedad: 'tractor',
                                    nombre: 'tractor'
                                },
                                {
                                    propiedad: 'semi',
                                    nombre: 'Semi'
                                },
                                {
                                    propiedad: 'capacidadTotalCisternas',
                                    nombre: 'Capacidad'
                                }
                            ],
                            query: '/vehiculo/transportista/' + transportista.COD,
                            titulo: 'Búsqueda de vehiculos',
                            subTitulo: transportista.COD + '-' + transportista.NOM
                        };

                        focaModalService.modal(parametrosModal).then(
                            function(vehiculo) {
                                $scope.$broadcast('addCabecera', {
                                    label: 'Vehículo:',
                                    valor: vehiculo.codigo
                                });
                                $scope.cisternas = vehiculo.cisternas;
                                getEstadosCisternas($scope.cisternas);
                            }, function() {
                                $scope.seleccionarVehiculo();
                            });
                });
            };

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

            $scope.seleccionarGrafico = function() {
                if(!$scope.cisternas.length){
                    focaModalService.alert('Primero seleccione un vehículo con cisternas');
                    return;
                }
                $uibModal.open(
                    {
                        ariaLabelledBy: 'Grafico de cisternas',
                        templateUrl: 'modal-grafico-cisternas.html',
                        controller: 'focaModalGraficoCisternasController',
                        size: 'md',
                        resolve:{
                            filters: {
                                cisternas: $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) {
                    focaEstadoCisternasService
                        .getEstadoCisterna(cisterna.id, $scope.fecha)
                        .then(function(res) {
                            cisterna.estado = res.data;
                        });
                });
            }
        }
    ]);