<?php
    session_start();
    require '../../../vendor/autoload.php';
    require('functions_ticket.php');
    use Mike42\Escpos\PrintConnectors\WindowsPrintConnector;
    use Mike42\Escpos\CapabilityProfile;
    // use Mike42\Escpos\PrintConnectors\NetworkPrintConnector;
    use Mike42\Escpos\Printer;

    use Mike42\Escpos\EscposImage;
    #========================================================= #
    #=================== Recibiendo datos ==================== #
    $id_nota = $_POST['id'];
    $nota = get_nota($id_nota);
    
    $clasificaciones1 = clasificaciones($id_nota);
    $campo1 = get_productos_nota1($id_nota);
    $productos_filt = filtrar_por_clasificaciones($campo1, $clasificaciones1[0]);
    $comensal1 = $productos_filt[0]['COMENSAL'];

    $clasificaciones = clasificaciones2($id_nota);

    // Obtener las ultimas clasificaciones de los tickets 
    $clasificaciones3 = clasificaciones4($id_nota);

    $campos = get_ultimos_productos_nota2($id_nota);
    $camp = get_ultimos_productos_nota($id_nota);
    $no_nota = $nota[0]['CLAVE'];
    $tipo_venta = $nota[2]['ZONA'];
    $mesero = $nota[1]['NOMBRE'];
    $m=$nota[3]['MESA']; // Numero de mesa
    date_default_timezone_set('America/Mexico_City');
    $hoy=new DateTime();
    
#========================================================= #

#=================== Datos de la impresora =============== #

$name = $_POST['opcionImprComanda'];
$profile = CapabilityProfile::load("simple");
$connector = new WindowsPrintConnector($name);
$printer = new Printer($connector, $profile);


/* $connector = new NetworkPrintConnector("10.x.x.x", 9100);
$printer = new Printer($connector); */

#========================================================= #
/* 
foreach ($clasificaciones as $clasificacion) {
    // Configurar estilos de texto

    $printer->setJustification(Printer::JUSTIFY_CENTER);
 
    $printer->setEmphasis(true);
    $printer->setTextSize(2, 2);
    $printer->text($clasificacion. "\n");
    $printer->setEmphasis(false);
    $printer->setTextSize(1, 1);

    $printer->text("------------------------------------------");

    $printer->text("\n");
    $printer->text(date("Y-m-d") ."  ". "NOTA:". $no_nota . "\n");
    $printer->setEmphasis(false);
    $printer->setTextSize(2, 1);
    $printer->text(date("H:i:s") . "\n");
    $printer->setEmphasis(false);
    $printer->setTextSize(1, 1);
    $printer->text("Tipo Venta: " . $tipo_venta  . "\n");
    
    $printer->setEmphasis(false);
    $printer->setTextSize(1, 1);
    $printer->text("MESERO: " . $mesero . "\n");
    $printer->text("1er Comensal: " . $comensal1 . "\n");
    $printer->setEmphasis(false);
    $printer->setTextSize(2,2);
    $printer->text( "M:". $m . "\n");
    
    $printer->setTextSize(1, 1);
    $printer->text("------------------------------------------");

    $printer->text("\n");
    
    
    $productos_filtrados = filtrar_por_clasificaciones($camp, $clasificacion);
    foreach ($productos_filtrados as $producto) {
        $printer->setEmphasis(true);
        $printer->setTextSize(2, 1);
        $tiempo = $producto['TIEMPO'];
        $comentario = $producto['COMENTARIO'];
        $comensal = $producto['COMENSAL'];
        // id del producto
        $id_pro_nota = $producto['ID'];
        $printer->setJustification(Printer::JUSTIFY_RIGHT);
        $printer->text($tiempo . "\n");
       
        $printer->setJustification(Printer::JUSTIFY_CENTER);
        $printer->text($producto['CANTIDAD'] . "   " . $producto['PRO_NOMBRE'] . "   " . "\n");
        
        $printer->text($comentario .  "\n " );

        // modificacion en la bd del producto, agregando 1 a la impresion.
        $query2 = query("UPDATE productos_nota SET impreso='C', pdn_guardado=pdn_guardado+1 WHERE id='$id_pro_nota'");
        $printer->text("\n");


    }


    // Cortar el papel
    $printer->cut();

    // Enviar un pulso de apertura del cajón de efectivo
    $printer->pulse();

    // Esperar un segundo para que la impresora procese la orden
    sleep(1);

} */
// GENERAR NOTA DEL CHEF

if ($clasificaciones3[0]!= 0) {
    $printer->setJustification(Printer::JUSTIFY_CENTER);
    $printer->setEmphasis(true);
    $printer->setTextSize(3, 3);
    $printer->text("CHEF");

    $printer->text("\n"); 
    $printer->setEmphasis(false);
    $printer->setTextSize(1, 1);
    $printer->text(date("Y-m-d") ."  ". "NOTA:". $no_nota . "\n");
    $printer->setEmphasis(false);
    $printer->setTextSize(2, 1);
    $printer->text(date("H:i:s") . "\n");
    $printer->setEmphasis(false);
    $printer->setTextSize(1, 1);
    $printer->text("Tipo Venta: " . $tipo_venta . "\n");

    $printer->setEmphasis(false);
    $printer->setTextSize(1, 1);
    $printer->text("MESERO: " . $mesero . "\n");
    $printer->text("1er Comensal: " . $comensal1 . "\n");

    $printer->setEmphasis(true);
    $printer->setTextSize(2,2);
    $printer->text( "M:". $m . "\n");
    $printer->text("\n");   
    $printer->setEmphasis(false);
    $printer->setTextSize(1, 1);
     


    #========================================================= #
    
        // foreach ($clasificaciones3 as $clasificacion) {
        // Configurar estilos de texto
        $printer->setJustification(Printer::JUSTIFY_CENTER);
     /*
        $printer->setEmphasis(true);
        $printer->setTextSize(2, 2);
        $printer->text($clasificacion. "\n");*/
        $printer->setEmphasis(false);
        $printer->setTextSize(1, 1);
       
        $printer->text("------------------------------------------"); // podria quitarse
        $printer->text("\n");
        
        /*----------  Detalles de la tabla  ----------*/
        foreach ($campos as $campo) {
        // $productos_filtrados = filtrar_por_clasificaciones($campo, $clasificacion);
        // foreach ($productos_filtrados as $producto) {
            $printer->setEmphasis(true);
            $printer->setTextSize(2, 1);
            $tiempo = $campo['TIEMPO'];
            $comentario = $campo['COMENTARIO'];
            $comensal = $campo['COMENSAL'];

            $printer->setJustification(Printer::JUSTIFY_RIGHT); //
            $printer->text($tiempo . "\n");
            $printer->setJustification(Printer::JUSTIFY_CENTER);
            $printer->text($campo['CANTIDAD'] . "   " . $campo['PRO_NOMBRE'] . "   ");
            $printer->text("\n");

            $printer->text($comentario .  "\n " );
            
            $printer->text("\n");
            $id_pro_nota = $campo['ID'];
            $query2 = query("UPDATE productos_nota SET impreso_chef = 1, pdn_guardado=pdn_guardado+1 WHERE id='$id_pro_nota'");
        // }

        /*----------  Fin Detalles de la tabla  ----------*/

        

    }
    // Cortar el papel
    $printer->cut();

    // Enviar un pulso de apertura del cajón de efectivo
    $printer->pulse();

    // Esperar un segundo para que la impresora procese la orden
    sleep(1);

// }

    }

    $printer->close();
?>

