<?php $r="../../";
require_once($r."inc/funciones.php");
validNotSession($r);
$mysqli = connectDB($r);

$idusuario=$_SESSION['userid'];
$fecha = date('Y-m-d');

if(isset($_POST["newclient"])){
    $nombre=strtoupper($_POST['empresa']);
    $direccion=strtolower($_POST['direccion']);
    $correo=strtolower($_POST['correo']);
    $facturacion=$_POST['facturacion'];
    $contacto1=ucwords(strtolower($_POST['contacto']));
    $celular1=$_POST['celular'];
    $tipocliente=$_POST['tipocliente'];
    $facturacion=$_POST['facturacion'];
    $pais='COLOMBIA';
    $departamento=$_POST['iddepa'];
    $municipio=$_POST['idmuni'];
    $mysqli->query("INSERT INTO z_clientes (cedula, nombre, correo, contacto1, celular1, telefono1, direccion, pais, departamento, municipio, tipocliente, facturacion, ruta) VALUES ('','$nombre','$correo','$contacto1','$celular1','$celular1','$direccion','$pais','$departamento','$municipio','$tipocliente','$facturacion','1')");
    $idcliente = $mysqli->insert_id;
}else{
    $idcliente = $_POST['idclient'];
}

$code=$_POST['code'];
$adicional = $_POST['otro'];
$nota = $_POST['nota'];
$idvendedor = $_POST['vendedor'];
$ttotal = $_POST['ttotal'];
$tica = $_POST['tica'];
$trete = $_POST['trete'];
$qry1=$mysqli->query("SELECT * FROM z_codigopedido WHERE estado=0");
$row1 = $qry1->fetch_assoc();
$id=$row1['id'];
$codigo=$row1['codigopedido'];
$tipopedido=$_POST['tipopedido'];
$mysqli->query("UPDATE z_codigopedido SET estado=1 WHERE id=$id");
            
$mysqli->query("INSERT INTO z_pedidos (iduser, idcliente, idvendedor, codigopedido, tipopedido, adicional, nota, ica, fuente, total, fechaentrega) VALUE ('$idusuario','$idcliente','$idvendedor','$codigo','$tipopedido','$adicional','$nota','$tica','$trete','$ttotal','$fecha')");

$resultado = $mysqli->query("SELECT * FROM `z_cotizacion_pedido` WHERE `idcotizacion`=$code"); 

while ($fila = $resultado->fetch_assoc()){
    $idproducto       = (int)$fila['idproducto']; 
    $cantidadproducto = (float)$fila['cantidad']; 
    $precioproducto   = (float)$fila['precio']; 
    $presentproducto  = (int)$fila['idpresentacion']; 
    $ivaproducto      = (float)$fila['iva'];
    $catproducto      = (int)$fila['categoria'];
    
    if ($idproducto >= 2147483647) {
        // Producto temporal, desencriptar y registrar como nuevo
        $nombreproducto = $mysqli->real_escape_string(decryptIt($fila['producto']));
        $precioproducto = (float)$fila['precio']; 
        $presentproducto = (int)$fila['idpresentacion']; 
        $ivaproducto = (float)$fila['iva'];
    
        // Insertar en z_productos
        $mysqli->query("INSERT INTO `z_productos` (`producto`, `precio`, `unidad`, `iva`, `estado`, `tienda`, `encargo`, `visible`, `eliminado`) 
                        VALUES ('$nombreproducto', $precioproducto, $presentproducto, $ivaproducto, 1, 0, 0, 0, 0)");
        $idproducto = $mysqli->insert_id;
    
        // Insertar presentación
        $mysqli->query("INSERT INTO `z_producto_presentacion` (`idproducto`, `idpresentacion`, `precio`, `oferta`, `preferido`) VALUES ($idproducto, $presentproducto, $precioproducto, 0, 1)");
        $mysqli->query("INSERT INTO `z_productos_categorias` ( `idproducto`, `idcategoria`) VALUES ('$idproducto', '$catproducto')");
        if($catproducto){
            $res = $mysqli->query("
                SELECT categoria 
                FROM z_categorias 
                WHERE idcategoria = $catproducto
                LIMIT 1
            ");
            $row = $res->fetch_assoc();
        
            $categoria = strtoupper(substr($row['categoria'],0,3));
        
            $res = $mysqli->query("
                SELECT COUNT(*) total
                FROM z_productos_categorias pc
                INNER JOIN z_productos p ON p.idproducto = pc.idproducto
                WHERE pc.idcategoria = $catproducto
            ");
            $row = $res->fetch_assoc();
        
            $numero = $row['total'] + 1;
        
            $codigo = $categoria.'-'.$numero;
        
            $mysqli->query("
                UPDATE z_productos 
                SET codigo = '$codigo'
                WHERE idproducto = $idproducto
            ");
        }
        $mysqli->query("INSERT INTO `z_inventario` (`idproducto`, `cantidad`, `precio`, `iduser`, `idbodega`) VALUES ('$idproducto', '0.000', '0', '0', '1')");
    }
    
    // Insertar en z_pedido
    $mysqli->query("INSERT INTO `z_pedido` (`idproducto`, `cantidad`, `idpresentacion`, `precio`, `iva`, `codigopedido`) 
                    VALUES ($idproducto, $cantidadproducto, $presentproducto, $precioproducto, $ivaproducto, '$codigo')");
    
    // Obtener factor de conversión de presentación
    $sinfopresent = sinfo('z_presentaciones_productos', $presentproducto);
    $lastcant = $cantidadproducto * (float)$sinfopresent['cantidad'];

    /*$mysqli->query("UPDATE `z_inventario` SET `cantidad`=`cantidad`-$lastcant  WHERE `idproducto`=$idproducto AND idbodega=1");*/
    
    
    // Asegura que las variables estén definidas
    $idproducto = (int)$idproducto;
    $lastcant = (float)$lastcant;
    
    if($tipopedido=="RV"){$mysqli->query("UPDATE z_pedidos SET estado='3', pago='2', total='$ttotal' WHERE codigopedido='$codigo'");}
    // Consulta la cantidad disponible en la bodega 1
    $result2 = $mysqli->query("SELECT cantidad FROM `z_inventario` WHERE `idproducto` = $idproducto AND `idbodega` = 1");
    if ($result2 && $result2->num_rows > 0) {
        $row2 = $result2->fetch_assoc();
        $cantidad_bodega1 = (float)$row2['cantidad'];
    
        if ($cantidad_bodega1 >= $lastcant) {
            // Descontar solo de bodega 1
            $mysqli->query("UPDATE `z_inventario` SET `cantidad` = `cantidad` - $lastcant WHERE `idproducto` = $idproducto AND `idbodega` = 1");
        } else {
            // Dejar bodega 1 en 0
            $mysqli->query("UPDATE `z_inventario` SET `cantidad` = 0 WHERE `idproducto` = $idproducto AND `idbodega` = 1");
    
            // Calcular lo faltante y descontar de bodega 2
            $falta = $lastcant - $cantidad_bodega1;
            $mysqli->query("UPDATE `z_inventario` SET `cantidad` = `cantidad` - $falta WHERE `idproducto` = $idproducto AND `idbodega` = 2");
    
            // Registrar el traslado
            $mysqli->query("INSERT INTO `z_inventario_traslados_log` (`idproducto`, `idbodega_origen`, `idbodega_destino`, `cantidad`) VALUES ($idproducto, 1, 2, $falta)");
        }
    } else {
        // Manejo de error si no se encuentra el inventario en bodega 1
        echo "❌ No hay inventario registrado para este producto en la bodega 1.";
    }

}

$mysqli->query("UPDATE `z_cotizacion` SET `fecha_remision`=NOW() WHERE `id`=$code");
$mysqli->close();
exit(header('location:../listar_cotizaciones.php'));
   

?>