Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 15-04-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 22
Ivanzinho Va por buen camino
No entiendo muy bien lo que hace tu código, pero te voy a explicar como lo hago yo.

El procedimiento que muestro arriba está preparado para el calculo de cuotas de amortización leasing, por lo que voy a realizar unos pequeños cambios en las formulas para acoplarlo a tus necesidades, que se tratan de la amortización de un prestamo. Para el calculo de de la cuota voy a utilizar el metodo francés, que es el más utilizado para estos casos. En caso de querer utilizar otro sólo tendrías que cambiar la formula.

Las paremetros de entrada utilizados son los siguientes :

Código Delphi [-]
  in_codben : integer, //no lo necesitas
  in_anoben : integer, //no lo necesitas
  in_importe : Double, //Importe a amortizar
  in_vresidual : numeric(15,2), //no lo necesitas
  in_interes : Double; //Interes anual del préstamo
  in_periodicidade : integer; //Periodicidad de los pagos en nº de meses : mensual(1), trimestral(3), semestral(6), anual(12), ....
  in_cuotas : integer; //nº de cuotas a amortizar
  in_fecini : date; //Fecha de primera cuota
  in_mult : integer, //no lo necesitas
  in_iso : Double//no lo necesitas

Los campos que no necesitas son utilizados para la gestión de inmovilizado y el cálculo de las cuotas fiscales.

El siguiente paso es calcular la cuota de amortización, aquí realicé unos pequeños cambios para ajustarlo a tus necesitades. El método utilizado es el método francés.

Código Delphi [-]
  //Calculamos el tipo de interés en tanto por 1 que le corresponde a
  //la periodicidad escogida
  v_int = (in_interes * in_periodicidade)/ 1200;

  //Calculamos la cuota utilizando el método francés
  ou_cuota = Redondeo(in_importe * v_int, 2);

  ou_cuota = Redondeo(ou_cuota / (1 - Exp((1 + v_int), - in_cuotas)), 2);

Una vez calculada la cuota a pagar pasamos a calcular qué parte de esa cuota corresponde a la amortización del préstamo y cuál al pago de los intereses en cada período.

Código Delphi [-]
  v_ncuota = 0;//nº de cuota
  v_acumulado = 0;//Carga finaciera acumulada
  ou_pendente = in_importe;//Importe pendiente de amortizar
  v_fecha = in_fecha //Fecha pago de la cuota 

  while (v_ncuota < in_cuotas - 1) do
    begin
      v_ncuota = v_ncuota +1;

      //Carga financiera para el período n. 
      //Aquí tendrás que distinguir si el pago es al principio del período o al final.

      //En el primero de los casos los intereses se calcularían así
      if pago = finalperiodo then
        Ou_cfin = Redondeo((ou_pendente) * v_int, 2)
      else//Y en el segundo de la siguiente manera
      Ou_cfin = Redondeo((ou_pendente - Ou_cuota) * v_int, 2);//Aquí estás pagando los interses de la cuota n+1 por anticipado,
                                                              //Puesto que al pagarse al principio del periodo la primera cuota
                                                              //no tiene intereses.

      //Intereses acumulados
      v_acumulado = Redondeo(v_acumulado + Ou_cfin, 2);

      //Importe pendiente de amortizar
      ou_pendente = Redondeo(ou_pendente - Ou_cuota + Ou_cfin, 2);

      v_fecha = SiguienteFecha(v_fecha, in_periodicidade)

      //La función redondeo redondea un número real pasado como parámetro al número de 
      //decimales también pasados com parámetro

      //La función SiguienteFecha cálcula la fecha de siguiente amortización en base 
      //a la fecha de amortización actual y la periodicidad de las amortizaciones
    end

  //Calculo de la última cuota
  v_ncuota = v_ncuota + 1;

  //Ajustamos los intereses para que la cuota quede correcta, ya que por culpa de los 
  //redondeos se pudo haber cobrado de más o de menos. También se podería dejar los intereses
  //que tocasen y ajustar en el importe de amortización, puedes encontrarte de todo, esto ya 
  //depende de como lo desee realizar a la empresa que realiza el préstamo.
  Ou_cfin = Redondeo(Ou_cuota * (v_ncuota) + in_vresidual - in_importe - v_acumulado, 2);

  //Importe pendiente de amortizar, si todo ha ido bien debería quedar cero
  Ou_pendente = Redondeo(ou_pendente - ou_cuota + Ou_cfin, 2);

Espero que te sirva

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Modulo de prestamos personales chino150 Varios 0 02-01-2008 18:34:05
programa de prestamos en delphi ingmichel Internet 3 24-08-2007 05:10:36
programa para ver en que direccion del registro de windows escribe un programa? JuanErasmo Varios 1 09-11-2006 20:42:05
programa para instalar alfil123 Varios 1 20-10-2006 10:56:31
¿ayuda para un programa para el msn kaiser_robert Internet 1 15-06-2005 20:52:07


La franja horaria es GMT +2. Ahora son las 21:53:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi