angular.module('IDRMAGISOFT').controller('PrioridadesController', InitController);
InitController.$inject = ['$scope', '$state', '$sessionStorage', 'servicios', '$interval', '$http'];
function InitController($scope, $state, $sessionStorage, servicios, $interval, $http) {

    $scope.mostrarPrioridades = false;
    $scope.prioridades = false;
    $scope.TomeSuTurno = false;
    $scope.TomeSuTurno2 = false;
    console.log($sessionStorage.nivel);
    var PrioridadSeleccionada = 0;

    $scope.cancelar = function () {
        let url = "app/model/Servidor.php?accion=CancelarTurno&turno=" + $scope.turno;
        $http.get(url).then(function (response) {
            delete $sessionStorage.Prioridad;
            delete $sessionStorage.idrelacionServicio;
            delete $sessionStorage.NombreCliente;
            delete $sessionStorage.IdPersona;
            delete $sessionStorage.Cedula;
            delete $sessionStorage.PrioridadSeleccionada;
            delete $sessionStorage.turnoImp;
            delete $sessionStorage.servicioImp;
            delete $sessionStorage.nivel;
            $state.go("index"); 
        });
    }
    $scope.ImprimirTurno = function () {
        /*const nombreImpresora = "SAT38TUSE"; // Puede ser obtenida de la lista de impresoras o puedes escribirlo si lo conoces
        const conector = new ConectorPluginV3();
        conector
        .Iniciar()
        conector.DeshabilitarElModoDeCaracteresChinos()
        conector.EstablecerAlineacion(ConectorPluginV3.ALINEACION_CENTRO)
        conector.CargarImagenLocalEImprimir("./logoTiket.png", 0, 216)
        conector.Feed(1)
        conector.EscribirTexto("\n")
        conector.EscribirTexto("\n")
        conector.EstablecerTamañoFuente(2, 1)
        conector.EscribirTexto("TURNO\n")
        conector.EstablecerTamañoFuente(3, 5)
        conector.EscribirTexto($scope.turno+"\n")
        conector.EscribirTexto($scope.nombrePersona+"\n")
        conector.EstablecerTamañoFuente(2, 1)
        conector.EscribirTexto($scope.servicio+"\n")
        conector.EstablecerTamañoFuente(1, 1)
        conector.EscribirTexto($scope.mensaje+"\n")
        conector.EscribirTexto($scope.fecha+"\n")
        conector.EscribirTexto("www.tecnologiaplus.com\n")
        conector.Feed(3)
        conector.Corte(1)
        conector.Pulso(48, 60, 120)
        conector.imprimirEn(nombreImpresora).then(function (response) {
                           
                        }).catch(function (e) {
                           console.log(e)
                        });*/
        var printWindow = window.open('', '', 'width=300,height=300');

        // Dentro del objeto Window, escribir el contenido que deseas imprimir
        printWindow.document.write(`<div style="position: absolute;width: 290px;height: 215px;display: flex;flex-direction: column;justify-content: center;align-items: center;align-content:center;">
         <img style="left: calc(50% - 145px);width: 60%;height: 20%;" src="logoTiket.png" alt="" loop=”2”/>
        <br>
        <h4 style="font-size: 16px;margin: 0;">TURNO</h4>
        <h1 style="font-weight: bold;font-size: 45px;margin: 0;">${$scope.turno}</h1>
        <p style="font-size: 16px;font-weight: bold;margin: 0;">${$scope.nombrePersona}</p>
        <p style="font-size: 12px;font-weight: bold;margin: 0;">${$scope.servicio}</p>
        <p style="font-size: 12px;font-weight: bold;margin: 0;">${$scope.mensaje}</p>
        <p style="font-size: 12px;font-weight: bold;margin: 0;">${$scope.fecha}</p>
        <p style="font-size: 12px;font-weight: bold;margin: 0;">En ${$scope.tiempofaltante}  minutos sera atendido.</p>
        <p style="font-size: 12x;font-weight: bold;margin: 0;">www.tecnologiaplus.com</p>
    </div>`);

        // Llamar al método de impresión de la ventana
        printWindow.print();

        // Cerrar la ventana después de la impresión (opcional)
        printWindow.close();
        var intervalGif = $interval(function () {
            $interval.cancel(intervalGif);
            delete $sessionStorage.Prioridad;
            delete $sessionStorage.idrelacionServicio;
            delete $sessionStorage.NombreCliente;
            delete $sessionStorage.IdPersona;
            delete $sessionStorage.Cedula;
            delete $sessionStorage.PrioridadSeleccionada;
            delete $sessionStorage.turnoImp;
            delete $sessionStorage.servicioImp;
            delete $sessionStorage.nivel;
            $state.go("index");
       }, 2000);
    }
    $scope.ClicPrioridad = function (prioridad) {
        PrioridadSeleccionada = prioridad;
        $scope.mostrarPrioridades = false;
        $scope.prioridades = false;
        $scope.TomeSuTurno = true;
        MostrarTurno();
    }

    function MostrarTurno() {
        $sessionStorage.PrioridadSeleccionada = PrioridadSeleccionada;
        var nombrePersona = '';
        var idPersona = '';
            if($sessionStorage.NombreCliente == undefined){
                nombrePersona = '';
            }else{
                nombrePersona = $sessionStorage.NombreCliente;
            }
            if($sessionStorage.IdPersona == undefined){
                idPersona = '';
            }else{
                idPersona = $sessionStorage.IdPersona;
            }

            let url = "app/model/Servidor.php?accion=SacarTurno&idservicio=" + $sessionStorage.IdServicio + "&prioridad=" + $sessionStorage.PrioridadSeleccionada + "&idrelacionServicio=" + $sessionStorage.idrelacionServicio + "&cedula=" + $sessionStorage.Cedula + "&nombrecliente=" + nombrePersona + "&IdPersona=" + idPersona + "&nivel=" + $sessionStorage.nivel;
            $http.get(url).then(function (response) {
                if (response.data.estado === 'limite') {
                    alert('El servicio ha alcanzado el limite de asistencias!');
                    $state.go("index");
                } else if (response.data.estado == "nocita") {
                    $scope.Cedula2 = $sessionStorage.Cedula;
                    $("#modalnocita ").modal("show");
                    $("#modalnocita").modal({ backdrop: "static", keyboard: false });
                    //PARA DESACTIVAR LA MODAL DESPUES DE X SEGUNDOS
                    var intervalnocita = $interval(function () {
                        $("#modalnocita").modal("hide");
                        $interval.cancel(intervalnocita);
                        RegresarInicio();
                    }, 5000);
                    //
                }else {
                    $scope.mostrarPrioridades = false;
                    $scope.prioridades = false;
                    if(parseInt($sessionStorage.tipoSeleccionada) == 0){
                        $scope.turno = response.data.turno;
                        $scope.servicio = response.data.servicio;
                        $scope.mensaje = response.data.mensaje;
                        $scope.tiempofaltante = response.data.tiempofaltante;
                        $scope.fecha = moment().format('YYYY-MM-DD HH:mm:ss');
                        if ( $sessionStorage.NombreCliente != "" && typeof $sessionStorage.NombreCliente != 'undefined' && $sessionStorage.NombreCliente != 'Sin Registro') {
                            $scope.nombrePersona = $sessionStorage.NombreCliente;
                        } else {
                            $scope.nombrePersona = response.data.turno;
                        }
                        $scope.TomeSuTurno = true;
                    }else{
                        $http.get("app/model/enviarMensaje.php?&turno=" + response.data.turno + "&servicio=" + response.data.servicio + "&idturno=" +response.data.idturno + "&idservicios=" +response.data.idservicio)
                        .then(function (response) {
                           
                        });
                        $scope.TomeSuTurno2 = true;
                        var intervalGif = $interval(function () {
                             $interval.cancel(intervalGif);
                             delete $sessionStorage.Prioridad;
                             delete $sessionStorage.idrelacionServicio;
                             delete $sessionStorage.NombreCliente;
                             delete $sessionStorage.IdPersona;
                             delete $sessionStorage.Cedula;
                             delete $sessionStorage.PrioridadSeleccionada;
                             delete $sessionStorage.turnoImp;
                             delete $sessionStorage.servicioImp;
                             delete $sessionStorage.nivel;
                             $state.go("index");
                        }, 2000);
                    }
                    
                }
            });
    }
if ($sessionStorage.Prioridad == 2) {
        $scope.mostrarPrioridades = true;
        $scope.prioridades = true;
    } else {
        PrioridadSeleccionada = $sessionStorage.Prioridad;
        MostrarTurno();
    }
    function RegresarInicio() {
        delete $sessionStorage.Prioridad;
        delete $sessionStorage.idrelacionServicio;
        delete $sessionStorage.NombreCliente;
        delete $sessionStorage.IdPersona;
        delete $sessionStorage.Cedula;
        delete $sessionStorage.nivel;
        $state.go("index");
    }
    
}