<?php
date_default_timezone_set("America/Bogota");

//  die();

include("../conexion/conexion.php");
$conne=new conexion();
$conn=$conne->conectar();

$fechaHoraActual = new DateTime();
$fechaHoraActual->sub(new DateInterval('PT10M')); // Restar 10 minutos
$fechaHoraActual = $fechaHoraActual->format('Y-m-d\TH:i:s.u\Z');
$fechaHoraActual = substr($fechaHoraActual, 0, 23) . 'Z'; // Convertir microsegundos a milisegundos


$nitBuscado = $_SESSION["nitEm"];


//si bodega es=0 todas
$clientesReporte=[
   ["codeDrog"=>35251,"nombreCliente"=>"pasto","nit"=>"1085247133","bodega"=>"1"],
   ["codeDrog"=>12554,"nombreCliente"=>"prueba","nit"=>"2352342233","bodega"=>"0"],

];

$encontrado = array_filter($clientesReporte, function($cliente) use ($nitBuscado) {
    if( $cliente["nit"] === $nitBuscado){
        
        $GLOBALS['codeDrogueria']=$cliente["codeDrog"];
        
        $GLOBALS['todasBodega']=$cliente["bodega"];
        
       
        return true;
    }
});
if($encontrado){

}else{
    echo("No Autorizado");
    die();
}


$codeDrogueria=$GLOBALS['codeDrogueria'];
$bodegaRe=$GLOBALS['todasBodega'];

 //$token=login($codeDrogueria);

if($GLOBALS['todasBodega']==0 || $GLOBALS['todasBodega']=="0"){
   
    $sql = "
    SELECT CONCAT(
        '[',
        GROUP_CONCAT(
            JSON_OBJECT(
                'CodigoDrogueria', $codeDrogueria,
                'FechaHora', '$fechaHoraActual',
                'NitProveedor', 860026123,
                'NombreProveedor', 'copidrogas',
                'Cantidad', CAST(TotalInventario AS UNSIGNED),
                'Costo', CASE 
                    WHEN CostoCajaP = 0 THEN 1
                    ELSE CAST(CostoCajaP AS UNSIGNED)
                END,
                'PrecioVenta',CASE 
                    WHEN VentaCajaP = 0 THEN 1
                    ELSE CAST(VentaCajaP AS UNSIGNED)
                END, 
                'PorcentajeIVA', CASE 
                    WHEN impuesto = 19 THEN 4
                    WHEN impuesto = 5 THEN 5
                    WHEN impuesto = 0 THEN 1
                    ELSE 2
                END,
                'CodigoProducto', codigo,
                'Ean13',CASE 
                    WHEN barras = 0 THEN 1
                    ELSE CAST(barras AS UNSIGNED)
                END,  
                'NombreProducto', nombre,
                'Unidad', 1,
                'ContenidoUnidad',CASE 
                    WHEN factor = 0 THEN 1
                    ELSE CAST(factor AS UNSIGNED)
                END  
            )
            SEPARATOR ','
        ),
        ']'
    ) AS json_result
    FROM (
        SELECT *
        FROM productos 
        WHERE TotalInventario >= 1
        LIMIT 1000
    ) AS limited_productos;
";

}else{



    $sql = "
    SELECT CONCAT(
        '[',
        GROUP_CONCAT(
            JSON_OBJECT(
                'CodigoDrogueria', $codeDrogueria,
                'FechaHora', '$fechaHoraActual',
                'NitProveedor', 860026123,
                'NombreProveedor', 'copidrogas',
                'Cantidad', CAST(inventario AS UNSIGNED),
                'Costo', CASE 
                    WHEN CostoCajaP = 0 THEN 1
                    ELSE CAST(CostoCajaP AS UNSIGNED)
                END,
                'PrecioVenta',CASE 
                    WHEN VentaCajaP = 0 THEN 1
                    ELSE CAST(VentaCajaP AS UNSIGNED)
                END, 
                'PorcentajeIVA', CASE 
                    WHEN impuesto = 19 THEN 4
                    WHEN impuesto = 5 THEN 5
                    WHEN impuesto = 0 THEN 1
                    ELSE 2
                END,
                'CodigoProducto', codigo,
                'Ean13',CASE 
                    WHEN barras = 0 THEN 1
                    ELSE CAST(barras AS UNSIGNED)
                END,  
                'NombreProducto', nombre,
                'Unidad', 1,
                'ContenidoUnidad',CASE 
                    WHEN factor = 0 THEN 1
                    ELSE CAST(factor AS UNSIGNED)
                END  
            )
            SEPARATOR ','
        ),
        ']'
    ) AS json_result
    FROM (
        SELECT *
        FROM productos INNER JOIN inventarios on productos.codigo=inventarios.codigoProd
        WHERE TotalInventario >= 1
        and idbodega=$bodegaRe
        LIMIT 5000
    ) AS limited_productos;
";
}

$result = $conn->query($sql);


if ($result === false) {
    // Si hay un error en la consulta, imprime el mensaje de error
    echo "Error en la consulta SQL: " . $conn->error;
} else {
    // Si la consulta fue exitosa, obtener y mostrar el JSON
    $row = $result->fetch_assoc();
    $data= $row['json_result'];
 
    echo($data);
    die();

    $urlIn="http://qextractorqlik.coopidrogas.com.co:8080/api/inventarios";

    $token1 = trim($token, '"');

//     echo $token1;
// die();


// $json_data = json_encode($row);

$options = array(
    'http' => array(
        'header' => "Content-type: application/json\r\n" .
                    "Authorization: Bearer $token1",
        'method' => 'POST',
        'content' => $data
    )
);

$context = stream_context_create($options);

$response = file_get_contents($urlIn, false, $context);

if ($response === FALSE) {
    // Manejo del error
    echo "Error al realizar la solicitud.";
} else {

    if($response->codigo !=0){
   

        $errorMessage = date('Y-m-d H:i:s') . " ". $response->Mensaje . "\n";
        file_put_contents('mensajeErrorQet.txt', $errorMessage, FILE_APPEND);
    
    }else{
       echo "Response: " . $response;
    }
}





}

$conn->close();















function login($codeDrogueria){
$url="http://qextractorqlik.coopidrogas.com.co:8080/api/login/authenticate";

// Datos de usuario y contraseña
$user="API@".$codeDrogueria;

$clave=$codeDrogueria;
$fecha_hora_actual = date('Ymd');
$claveReal=$clave.$fecha_hora_actual;
$userBase64=$user;
$calveBase64=base64_encode($claveReal);


$data = array(
    'Username' => $userBase64,
    'Password' => $calveBase64
);


// echo(var_dump($data));
// die();

// Inicializar cURL
$ch = curl_init();

// Establecer la URL de la solicitud y otros parámetros
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Ejecutar la solicitud y obtener la respuesta
$response = curl_exec($ch);

// echo(var_dump($response));

// Verificar si hay errores
if ($response === false) {
    echo "Error en la solicitud cURL: " . curl_error($ch);
} else {
    // Mostrar la respuesta
    // Agrega las comillas al token


// Devuelve el token con comillas
return $response;
  
    //echo "Respuesta: " . $response;
}

// Cerrar cURL
curl_close($ch);

}
?>


