Intento hacer un script muy simple para controlar cuentas a cobrar.
El cliente tiene una especie de crédito... por ejemplo debe $1.000 y tiene que pagarlo en 10 cuotas con vencimiento e interés mensual si no paga hasta el vto.
El problema es que quiero poder aplicar múltiples pagos y hay veces que son pagos adelantados pero estoy hace 1.000 horas y cada vez está peor esto

Código PHP:
$money=$_REQUEST['money'] //esto es el dinero que está ingresando
$sqlt=("SELECT * FROM terms WHERE client_id='$new_cc' AND status='Open' AND unpaid>'0' ");
$resultt = mysql_query($sqlt, $con) or die("Error reading payments table: ".mysql_error());
if($row = mysql_fetch_array($resultt)){
$quota=$row['amount']; // esta es la cuota que tiene que pagar
$num_quota=floor($money/$quota); //eso para saber cuántas cuotas fijas pueden cancelarse con el dinero ingresado
$money2=$money%$quota; // para saber cuánto sobre para cargar a cuenta sobre el prox. registro
$myid=$row['id'];
$paid=$row['paid'];
$unpaid=$row['unpaid'];
if($num_quota>=1){
DO
{
$pago=$quota;
$unpaid=0;
if($j==$num_quota){
$pago=$money2;
$unpaid=$row['unpaid']-$money2;
}
$q=mysql_query("update terms set paid='$pago', unpaid='$unpaid', ar='0', status='Collected', aux2='yes' WHERE id='$myid' AND status='Open' OR status='Due' ");
$r=mysql_query($q);
$j++;
}
while ($row=@mysql_fetch_array($resultt));
}
elseif($num_quota==0){
$new_paid=$row['paid']+$money;
$new_unpaid=$row['unpaid']-$money;
$q2=mysql_query("update terms set paid='$new_paid', unpaid='$new_unpaid' WHERE id='$myid' AND status='Open' OR status='Due' LIMIT 1 ");
$r2=mysql_query($q2);
$q3=mysql_query("update terms set status='Collected' WHERE unpaid='0' ");
$r3=mysql_query($q2);
}
}
else
{
echo "No term to apply payment";
exit();
}
}
Evidentemente el bucle que intento hacer lo hago mal porque o me pone canceladas las cuotas por importe completo y me deja colgado lo que sobre para poner a cuenta... o me pone el total en un solo registro

La verdad que si alguien me entiende y me quiere ayudar ... es un genio

Gracias