<?php

header("Access-Control-Allow-Origin: *");
header('Content-type: application/json; charset=utf-8');

$accion2 = $_REQUEST["accion"];
require __DIR__ . '\autoload.php';
use Mike42\Escpos\Printer;
use Mike42\Escpos\EscposImage;
use Mike42\Escpos\PrintConnectors\WindowsPrintConnector;


$usuario = "master";
$contrasena = "tecplus93";
$servidor = "localhost";
$basededatos = "turnomaster";
$conexion = mysqli_connect($servidor, $usuario, $contrasena) or die("No se ha podido conectar al servidor de Base de datos");

$db = mysqli_select_db($conexion, $basededatos)or die("Upps! Pues va a ser que no se ha podido conectar a la base de datos");
$conn = new mysqli($servidor, $usuario, $contrasena, $basededatos);
mysqli_set_charset($conexion, 'utf8');
global $NumeroModulo;
$NumeroModulo = 11;

$fecha = DevolverUnDato("SELECT now()");
$IdSede = DevolverUnDato("SELECT IdSede FROM sedes");
$IdEmpresa = DevolverUnDato("SELECT emp_id FROM empresa");

function DevolverUnDato($query) {
    global $conexion;
    $resultado = mysqli_query($conexion, $query)or die("Algo ha ido mal en la consulta a la base de datos");
    $arreglo = mysqli_fetch_array($resultado);
    return $arreglo[0];
}


if ($accion2 = "ImprimirTiket") {
    try {
        $turno2 = $_REQUEST["turno"];
        $servicio2 = $_REQUEST["servicio"];
        $NombrePaciente = $_REQUEST["nombre"];
        $data = $_REQUEST["data"];
        $Mensaje = $_REQUEST["mensaje"];
        $llamar = "";

        for($i=0;$i<strlen($servicio2);$i++){
            if($servicio2[$i] == " "){  
                $llamar = $llamar."%20";

            }else{
                $llamar = $llamar.$servicio2[$i];
            }

        }
        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
            $nombre_Impresora = "SAT38TUSE";

            $connector = new WindowsPrintConnector($nombre_Impresora);

            $printer = new Printer($connector);
        } else {
            $connector = new FilePrintConnector("/dev/usb/lp0");

            $printer = new Printer($connector);
        }


        $printer->setFont(Printer::FONT_C);
        $printer->setJustification(Printer::JUSTIFY_CENTER);
        $img = EscposImage::load("logoTiket.png");
        $printer->bitImage($img);
        //
        $printer->setTextSize(2, 1);
        $printer->text(" \n");
        $printer->text(" \n");
        $printer->text(" TURNO\n");
        $printer->setJustification(Printer:: JUSTIFY_CENTER);
        $printer->setTextSize(3, 5);
        $printer->setEmphasis(true);
        if ($NombrePaciente == "" || $NombrePaciente == 'undefined' || $NombrePaciente == 'Sin Registro') {
            $printer->text("" . $turno2 . "\n");
        } else {
            $printer->text("" . $NombrePaciente . "\n");
        }
        
        foreach ($data as $key => $value) {
            $printer->text("" .  $value . "\n");
        }
        
        $printer->setJustification(Printer::JUSTIFY_CENTER);
        ///tamaño de letra - servicio
        $printer->setTextSize(2, 1);
        $printer->text($servicio2 . "\n");
        $printer->setTextSize(1, 1);
        $printer->text($Mensaje . "\n");
        ///Qr..
        
        $PermisoQr = DevolverUnDato("SELECT permisoQr FROM reiniciar");
        
        if($PermisoQr == '1'){
            $testStr = "http://165.227.78.165/QrPortal/index.php?P=ME&EMP=$IdEmpresa&SED=$IdSede&S=$llamar&T=$turno2";
            $printer->qrCode($testStr, 3);
            $printer->setJustification(Printer::JUSTIFY_CENTER);
        }
        $printer->setTextSize(1, 1);
        $printer->text(" " . $fecha . "\n");
        $printer->text("www.tecnologiaplus.com");
        $printer->feed();
        $printer->setJustification(Printer::JUSTIFY_CENTER);
        $printer->cut();
        $printer->pulse();
        $printer->close();
        $validar = array("estadoImpresion" => "Listo");
    } catch (Exception $e) {
        $validar = array("estadoImpresion" => "ERROR");
        echo json_encode($validar, JSON_UNESCAPED_UNICODE);
        echo "Couldn't print to this printer: " . $e->getMessage() . "\n";
    }
}
?>
