<?php 
$descontar_can = $ajud_cantidad; 

// Consulta los registros de kardex con cantidades disponibles
$kce=mysqli_query($con,"
    SELECT * FROM kardex_compra WHERE kar_art_id='$ajud_art_id' AND art_id_bod='$art_id_bod' AND kar_cantidad_v > 0 AND sucursal='$sucursal' AND empresa='$empresa' order by kar_id asc") or die(mysqli_error($con));  
$datos = array();
while ($kc = mysqli_fetch_array($kce)) {
    $datos[] = array(
        "kar_id"    => $kc['kar_id'],
        "kar_lote"  => $kc['lote'],
        "precio"    => $kc['kar_precio'],
        "cantidad"  => $kc['kar_cantidad_v']
    );
}

$cantidad_total_descontada = 0;
$valor_total_descontado = 0;
$descuentos = []; // ← Aquí se almacenan los descuentos por kar_id

foreach ($datos as &$item) 
{
    if ($descontar_can <= 0) break;
    $cantidad_actual = (float)$item['cantidad'];
    $precio_unitario = (float)$item['precio'];
    $kar_lote = $item['kar_lote'];
    $kar_id = $item['kar_id'];

    if ($cantidad_actual >= $descontar_can) 
    {
        // Descontar parcialmente
        $item['cantidad'] = $cantidad_actual - $descontar_can;
        $cantidad_total_descontada += $descontar_can;
        $valor_total_descontado += $descontar_can * $precio_unitario;

        $descuentos[] = [
            'kar_id' => $kar_id,
            'kar_lote' => $kar_lote,
            'descontado' => $descontar_can,
            'precio' => $precio_unitario
        ];
        $descontar_can = 0;
    } else 
    {
        // Descontar todo este ítem
        $item['cantidad'] = 0;
        $cantidad_total_descontada += $cantidad_actual;
        $valor_total_descontado += $cantidad_actual * $precio_unitario;

        $descuentos[] = [
            'kar_id' => $kar_id,
            'kar_lote' => $kar_lote,
            'descontado' => $cantidad_actual,
            'precio' => $precio_unitario
        ];
        $descontar_can -= $cantidad_actual;
    }
}
unset($item); // Romper referencia



foreach ($descuentos as $desc) 
{
    $kar_id = (int)$desc['kar_id'];
    $kar_lote = $desc['kar_lote'];
    $descontado = (float)$desc['descontado'];
    // Actualizar kar_cantidad_v sumando el valor descontado
    $sql = "UPDATE kardex_compra 
            SET kar_cantidad_v = kar_cantidad_v - $descontado 
            WHERE kar_id = $kar_id";
    if (mysqli_query($con, $sql)) {
        //echo "✔️ kar_id $kar_id actualizado correctamente<br>";
    } else {
       // echo "❌ Error al actualizar kar_id $kar_id: " . mysqli_error($con) . "<br>";
    }
}


/*echo "<strong>Detalle de descuentos:</strong><br>";
echo "<pre>";
print_r($descuentos);
echo "</pre>";

echo "<strong>Datos actualizados:</strong><br>";
echo "<pre>";
print_r($datos);
echo "</pre>";*/
?>