<?php
include('is_logged.php');
require_once ("../config/db.php");
require_once ("../config/conexion.php");
$session_id= session_id();

$sql_count=mysqli_query($con,"select * from tmp3 where session_id='".$session_id."'") or die(mysqli_error($con));
$count=mysqli_num_rows($sql_count);
if ($count==0)
{
    echo "<script>alert('No hay productos agregados a la Compra')</script>";
    echo "<script>window.location='../nueva_compra.php';</script>";
    exit;
}

// Variables recibidas por GET
$id_proveedor=intval($_GET['id_pro']);
$id_encargado=intval($_GET['id_encargado']);
$numero_compra=$_GET['num_fac'];

$sumador_total=0;

// 1. Insertar en detalle_compra
$sql2=mysqli_query($con, "select * from products, tmp3 where products.id_producto=tmp3.id_producto and tmp3.session_id='".$session_id."'") or die(mysqli_error($con));

while ($row=mysqli_fetch_array($sql2))
{
    $id_producto=$row["id_producto"];
    $cantidad=$row["cantidad_tmp3"];
    $precio_compra=$row['precio_tmp3']; 
    $exento = isset($row['exento_tmp3']) ? intval($row['exento_tmp3']) : 0;
    
    $precio_compra_r=number_format($precio_compra,3,'.','');
    $precio_total=$precio_compra_r*$cantidad;
    $sumador_total+=$precio_total;
    
    // Asegurar que la columna 'exento' existe en detalle_compra
    $check_det = mysqli_query($con, "SHOW COLUMNS FROM detalle_compra LIKE 'exento'");
    if (!$check_det || mysqli_num_rows($check_det) == 0) {
        mysqli_query($con, "ALTER TABLE detalle_compra ADD COLUMN exento TINYINT(1) NOT NULL DEFAULT 0");
    }

    // Insertar con exento
    $insert_detail = mysqli_query($con, "INSERT INTO detalle_compra (id_detalle, numero_compra, id_producto, cantidad, precio_compra, id_proveedor, exento) VALUES (NULL, '$numero_compra', '$id_producto', '$cantidad', '$precio_compra_r', '$id_proveedor', '$exento')") or die("Error en detalle_compra: " . mysqli_error($con));
}

$total_compra=number_format($sumador_total,3,'.','');
$date=date("Y-m-d");

// 2. INSERTAR EN TABLA COMPRAS (Ajustado a tus campos reales)
// Campos: id_compra (AI), numero_fact, proveedor, fecha, total, abono, por_pagar
// Como es una compra nueva, el abono es 0 y por_pagar es igual al total
$sql_insert_compra = "INSERT INTO compras (id_compra, numero_fact, proveedor, fecha, total, abono, por_pagar) 
                      VALUES (NULL, '$numero_compra', '$id_proveedor', '$date', '$total_compra', '0', '$total_compra')";

$insert=mysqli_query($con, $sql_insert_compra) or die(mysqli_error($con));

// 3. Actualizar existencias en productos
$query_detalle=mysqli_query($con,"SELECT id_producto, precio_compra, SUM(cantidad) AS total FROM detalle_compra where numero_compra='$numero_compra' AND id_proveedor=$id_proveedor GROUP by id_producto");

while($res=mysqli_fetch_array($query_detalle))
{
    $id_prod=$res['id_producto'];
    $precio_compr=$res['precio_compra'];
    $cantidad2=$res['total'];
    
    $sql3=mysqli_query($con, "select existencia from products where id_producto=$id_prod AND almacen='1';");
    $res3=mysqli_fetch_array($sql3);
    $nueva_existencia=$res3['existencia'] + $cantidad2;
    $hoy=date("Y-m-d");

    mysqli_query($con,"UPDATE `products` SET `almacen`='1', `date_added`='$hoy', `existencia` = '$nueva_existencia', `precio_producto` = '$precio_compr' WHERE `id_producto` = '$id_prod'");
}

$delete=mysqli_query($con,"DELETE FROM tmp3 WHERE session_id='".$session_id."'");

echo "<script>alert('Compra Procesada'); window.location='../adquisiciones.php';</script>";
?>