Bueno yo haría lo sgte:
Código php:
Ver original<?php
//suponiendo que tenes los datos en una bd mysql
$cant_fact='100';//la cantidad a facturar
$result=mysql_query("select * from `tutabla` order by `fecha` asc",$link);// consulta ordenada por fecha de menor a mayor while($cant_fact > 0 and
$row=mysql_fetch_array($result)){//agarro el registro mas antiguo segun el orden de fecha(que sera el perimer registro) if($cant_fact <= $row['cant']){//si la cantidad a facturar es menor o = a la cantidad de tu registro pasa a restar
$resta = $row['cant'] - $cant_fact;
$cant_fact = 0;
}else{//caso contrario se resta todo de la cantidad y se guarda en $cant_fact el resto
$resta = 0;
$cant_fact = $cant_fact - $row['cant'];
}
mysql_query("update `tutabla` set `cant`=$resta where `idtutabla`={$row['idtutabla']}",$link); }
//el while va a dar vueltas hasta que se descuente la cantidad a facturar o hasta qe se acaben los registros si al finalizar el while $cant_fact sigue teniendo registros significa que la cantidad a facturar era mayor que la suma de las cantidades en tus registros
if($cant_fact > 0){
echo"la cantidad a facturar es mas grande que las cantidades";
}else{
echo"se desconto bien";
}
?>
cualquier pregunta aqui estoy