<?php 
session_start();

$server=$_SERVER["HTTP_HOST"]."/qa.du"; 
$home="http://".$server."/index.php";
$close="http://".$server."/includes/close.php";
$admin="http://".$server."/includes/admin.php";
$loginRed="http://".$server."/includes/session.php";
$loginVew="http://".$server."/includes/adminView.php";

if ($_SESSION['usuario']==null || $_SESSION['usuario'] == "") {
  header("Location:".$loginRed);

  die();
}

$session=isset($_SESSION['usuario']) ? $_SESSION['usuario'] : '';
$role=isset($_SESSION['role']) ? $_SESSION['role'] : '';
$selectedPrinter = isset($_SESSION['selectedPrinter']) ? $_SESSION['selectedPrinter'] : '';
        $printers = [];


if ($role=="VIEW" ){
    header("Location:".$loginVew);
    
    die();
}

    if (!isset($_SESSION['selectedPrinter']) || empty($_SESSION['selectedPrinter'])) {
    try {
        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
            $output = shell_exec('wmic printer get Name');
            $lines = explode("\n", trim($output));
            foreach ($lines as $index => $line) {
                $printer = trim($line);
                if ($index > 0 && !empty($printer) && $printer !== 'Name') {
                    $printers[] = $printer;
                }
            }
        } elseif (strtoupper(PHP_OS) === 'LINUX') {
            // En caso de que sea Linux
            $output = shell_exec('lpstat -a');
            $lines = explode("\n", trim($output));
            foreach ($lines as $line) {
                $printer = explode(" ", $line)[0];
                $printers[] = $printer;
            }
        } elseif (strtoupper(PHP_OS) === 'DARWIN') {
            // En caso de que sea macOS
            exec('lpstat -p', $output);
            // Analizar la salida del comando para obtener los nombres de las impresoras
            foreach ($output as $line) {
                if (strpos($line, 'printer ') !== false) {
                    $printer = trim(substr($line, strpos($line, 'printer ') + 8));
                    $printers[] = $printer;
                }
            }
        } else {
            // En caso de que el sistema operativo no sea compatible
            echo 'Sistema operativo no compatible';
            exit;
        }
    
        if (empty($selectedPrinter) && !empty($printers)) {
            $selectedPrinter = explode(" ", $printers[0])[0]; // Extraer solo el nombre de la impresora
            $_SESSION['selectedPrinter'] = $selectedPrinter;
        }
        
    } catch (Throwable $e) {
    $selectedPrinter = "";
}
    }

