<?php
require('../config.php');
session_start();

$id_usuario=$_SESSION['cveUsuario'];
$aux = 0;

$res_archivo = "";
//hace la conexión real con la BD
$cnn = mysqli_connect(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME);
mysqli_set_charset($cnn, "utf8mb4");

mysqli_select_db($cnn, DB_NAME);
try{
if(isset($_FILES['archivo_compra'])){
    $archivo_compra =$_FILES['archivo_compra'];
    $archivo_compra_list = $archivo_compra["tmp_name"];
    $archivo = fopen($archivo_compra_list, "r");
    if (!$archivo) {
        die("No se pudo abrir el archivo.");
    }
    $encabezados = fgetcsv($archivo); // saltar la primera fila
    $ultima_compra = null;
    $compra_id = null;
    while (($datos = fgetcsv($archivo, 1000, ",")) !== FALSE) {
        list($ClaveCompra, $Proveedor, $TipoCompra, $TotalPagar, $FechaCompra, $MateriaInventario,$Cantidad,$PrecioUnitario, $UnidadMedida,$Total) = $datos;
        $proveedor = $Proveedor;
        $tipo_compra = $TipoCompra;
        $clave = $ClaveCompra;
        $total_pagar = $TotalPagar;
        $unidad_medida=$UnidadMedida;
        $fecha_obj = DateTime::createFromFormat('d/m/Y', $FechaCompra);
        $fecha = $fecha_obj->format('Y-m-d');
        $nombre_materia = $MateriaInventario;
        $cantidad = intval($Cantidad);
        $precio = floatval($PrecioUnitario);
        $total = floatval($Total);
        $proveedor_id = '';
        $tipo_compra_id = '';
        $inventario_id = '';
        $aux = 0;
        
        //Obtener id de proveedor
        $proveedor_query = "SELECT id 'ID' from proveedores where prv_nombre_proveedor like '%$proveedor%' and is_active= 1 limit 1";
        $prov = mysqli_query($cnn, $proveedor_query);

        while($proveedor_res = mysqli_fetch_assoc($prov))
        {
            $proveedor_id = $proveedor_res['ID'];
            $aux=1;
        }
        
        //Obtener id de tipo de compra
        $tipo_compra_query = "SELECT id 'ID' from tipo_compras where tcm_descripcion like '%$tipo_compra%' and is_active= 1 limit 1";
        $tp_compra = mysqli_query($cnn, $tipo_compra_query);
        while($tipo_compra_res = mysqli_fetch_assoc($tp_compra))
        {
            $tipo_compra_id = $tipo_compra_res['ID'];
            $aux=1;
        }
        //Obtener id de unidad de medida
        $unidad_medida_query = "SELECT id 'ID' from unidades_medida where und_descripcion like '%$unidad_medida%' and is_active= 1 limit 1";
        $ud_medida = mysqli_query($cnn, $unidad_medida_query);
        while($unidad_medida_res = mysqli_fetch_assoc($ud_medida))
        {
            $unidad_medida_id = $unidad_medida_res['ID'];
            $aux=1;
        }

        //Obtener id de material en inventario
        $inventario_query = "SELECT id 'ID' from materia_prima where map_nombre like '%$nombre_materia%' and map_estatus= 'ALTA' limit 1";
        $invt = mysqli_query($cnn, $inventario_query);
        while($inventario_res = mysqli_fetch_assoc($invt))
        {
            $inventario_id = $inventario_res['ID'];
            $aux=1;
        }

        if($aux == 1 ){
            if ($clave !== $ultima_compra && $proveedor_id > 0 &&$unidad_medida_id>0) {
                $query_compra = "INSERT INTO compras 
                            VALUES(null, '$proveedor_id', '$tipo_compra_id','$clave', '$total_pagar', '$fecha','$unidad_medida_id','$id_usuario', '0', '1', CURRENT_TIME(), CURRENT_TIME())"; 
                $res1 = mysqli_query($cnn, $query_compra);
                $compra_id = $cnn->insert_id;
                $ultima_compra = $clave;
                $res_archivo = 1;
            }
            if($inventario_id > 0 && $proveedor_id > 0 &&$unidad_medida_id>0){
                $query_cinventario = "INSERT INTO compras_inventarios 
                        VALUES(null, '$inventario_id', '$proveedor_id','$compra_id', '$cantidad', '$precio','$total', '$id_usuario', '1', CURRENT_TIME(), CURRENT_TIME())";
                $res2 = mysqli_query($cnn, $query_cinventario);

                $query_invent = "UPDATE materia_prima SET map_existencia = map_existencia + '$cantidad' WHERE id = $inventario_id";
                $res3 = mysqli_query($cnn, $query_invent);
                $res_archivo = 1;
            }
            
        }
    }
    
    fclose($archivo);
    $cnn->close();
    
}else{
    
    $res_archivo = 0;
}
}catch(Exception $e){
    $res_archivo=$e;
}
echo $res_archivo;
?>