lo que pasa es que si le quito el break al final la resta sigue; le hice algunos cambios de codigo y posicion de codigo; ahora el problema es capturar el monto para que cambie de estado a pagado; siempre me pasa a pendiente.
Código PHP:
$miconexion->consulta2("select * from orden_compra p where p.prov_id_FK='$proveedor' and ord_pas<>1 and ord_mon='D' and ord_deuda<>0 and (ord_estado1='pendiente' or ord_estado1='con deuda') order by ord_fec asc");
while($row1 = mysql_fetch_array($miconexion->Consulta_ID2))
{
$idpago=$row1['ord_id'];
$miconexion->consulta3("select sum(pago_monto) as pagos00 from pago_orden_compra p where p.ord_id_FK='$idpago' and pago_pas=0 and pago_tipo='1' and pago_tc<>'0.00'");
$row18 = mysql_fetch_array($miconexion->Consulta_ID3);
$pagosantes=$row18['pagos00'];
$restardeuda=round($row1['ord_deuda']-$pagosantes,2);
$restardeuda=round($row1['ord_deuda'],2);
$num_voucher=$row1['ord_num'];
if ($pago>0)
{
if ($restardeuda>$pago)
{
$saldo=$restardeuda-$pago;
$monto0=$pago;
$pago=round($pago-$restardeuda,2);
if ($saldo==0 or $saldo<0) { $a='pagado'; } else { $a='con deuda'; }
}
else
{
$saldo=0;
$pago=round($pago-$restardeuda,2);
$monto0=$restardeuda;
if ($saldo==0) { $a='pagado'; } else { $a='con deuda'; }
}
$miconexion->consulta("insert into pago_orden_compra (num_voucher,pago_descripcion, pago_fecha, pago_tipo, pago_tc, pago_monto,pago_fec_reg,ord_id_FK,prov_id_FK,emp_id_FK,banco) values ('$voucher', '$descripcion', '$fecha' ,'1','$tc','$monto0','$hoy','$idpago','$proveedor','$empleado','$banco')");
$miconexion->consulta1("update orden_compra set ord_estado1='$a' where ord_id='$idpago'");
echo "El pago Adelantado afecto a la siguiente Orden de Compra <b>$num_voucher++$pagosantes</b><br />";
if ($pago<0) break;