Foros del Web » Programando para Internet » PHP »

Sugerencia de implementacion

Estas en el tema de Sugerencia de implementacion en el foro de PHP en Foros del Web. Hola buenos dias. Les escribo para que me den una mano. Tengo que implementar un sistema de calculo financiero de intereses. Yo tengo las tasas ...
  #1 (permalink)  
Antiguo 08/11/2011, 04:46
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Sugerencia de implementacion

Hola buenos dias.
Les escribo para que me den una mano.
Tengo que implementar un sistema de calculo financiero de intereses.
Yo tengo las tasas en un bd mysql, son cerca de 4 mil registros, un poco mas. Cada registro, tiene un valor que es una fecha y un valor decimal que se corresponde a la tasa correspondiente a ese dia.
Por ejemplo: el registro 1 sería:
2001/01/01, 0.00064

y otro más al azaar sería:
2010/05/08, 1.12111

En total, debo tener en los mas de 4 mil registros 5 tasas diferentes, pero cada una tiene una cantidad de dias diferentes como segmento que abarca.

En fin, lo que yo quiero, para no dar tantas vueltas, es que dada dos fechas, una de vencimiento y una de pago, yo pueda calcular el interes. Para eso debo saber la cantidad de dias, pero a ese asunto ya lo solucione. Ahora quiero saber cómo puedo llegar a implementar el conteo de registros y multiplicar la cantidad de registros entre dos fechas dadas, por una variable que yo llamo capital, y por la tasa. Ahora bien, hasta ahi no seria muy dificil, lo que me complica a mi la existencia es el hecho de como se daria el caso cuando cambien las tasas entre esas dos fechas. Y cuando son dos o mas tasas? como haria?

Para ejemplificar lo que quiero.

En el formulario el usuario ingresa:
  • Capital: 100
  • Fecha de vencimiento: 01/01/2005
  • Fecha de pago: 25/07/2010


Me tendria que devolver:
  • Cantidad de dias
  • Interes
  • Cantidad de tasas utilizadas entre fecha de vencimiento y fecha de pago


O sea, si el usuario ingreso lo de arriba, el resultado seria:

02/01/2005 30/06/2006 100,00 Res 0,05000 539 dias 26,95
01/07/2006 25/07/2010 100,00 Res 0,06667 1465 dias 97,67

Este es el sistema que utlizan en la AFIP que es un organismo de contralor financiero e impositivo de Argentina.

Pueden ver su funcionamiento aqui: http://www.afip.gov.ar/genericos/cal...orios_main.asp


Si alguien puede darme una mano lo agradecer mucho.

Saludos.
  #2 (permalink)  
Antiguo 08/11/2011, 06:29
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Sugerencia de implementacion

en tu caso tendrias que preguntar o revisar el link que pusiste ya que
tu problema es mas de ENTENDER EL NEGOCIO que de programar.

si tenes claras cuales son las formulas hacenos un pseudo codigo
  #3 (permalink)  
Antiguo 08/11/2011, 06:36
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: Sugerencia de implementacion

Me tendria que devolver:

Cantidad de dias
Necesitas un contador de días, revisa estos enlaces
http://www.forosdelweb.com/f18/funci...r-dias-780347/
http://www.forosdelweb.com/f18/conta...fechas-690693/

Interes

Para los intereses, creo que necesitas las formulas para el tipo de interés asociado...

Cantidad de tasas utilizadas entre fecha de vencimiento y fecha de pago
Igual que el item anterior, ahi necesitarías hacer un análisis más exhaustivo, me imagino que esas tasas varían cada año...

Esto es todo lo que te podría ayudar...
  #4 (permalink)  
Antiguo 08/11/2011, 07:19
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Sugerencia de implementacion

Gracias por responder y por los enlaces.
Yo tengo el calculo entre los dias, y la formula del calculo de los intereses. Lo que no se implementar, o no tengo muy en claro es cuando cambian las tasas como deberia implementarlo ahi. Voy a dar un ejemplo con otros datos asi se entiende mas y mejor.

Por ejemplo tengo una tabla mysql que tiene los datos, fecha y animales, y las tuplas serian.

01/01/2011 Perro
02/01/2011 perro
03/01/2011 perro
04/01/2011 perro
05/01/2011 gato
06/01/2011 gato
07/01/2011 gato
08/01/2011 leon
09/01/2011 leon
10/01/2011 leon
11/01/2011 leon
12/01/2011 delfin
13/01/2011 delfin
14/01/2011 loro
15/01/2011 loro
16/01/2011 loro
17/01/2011 loro
18/01/2011 loro
19/01/2011 loro
20/01/2011 mosca
21/01/2011 mosca
22/01/2011 mosca
23/01/2011 delfin
24/01/2011 delfin
25/01/2011 delfin
26/01/2011 delfin
27/01/2011 delfin
28/01/2011 delfin
29/01/2011 delfin
30/01/2011 delfin


Y de los datos ingresados por el usuario tengo:
fecha1: 02/01/2001
fecha2: 24/01/2001

Calculo ahora lo que necesito saber:
Cantidad de dias: fecha2-fecha1 =22

Ahora lo que no se como calcularlo o como encararlo:
Cantidad de animales diferentes = 7
cantidad de dias de perro: 3
cantidad de dias de gato: 3
cantidad de dias de leon: 4
cantidad de dias de delfin: 2
cantidad de dias de loro: 6
cantidad de dias de mosca: 3
cantidad de dias de delfin: cantidad de dias de delfin - 1 = 1

Importante: fijarse que delfin se repite, porque yo tengo que respetar la fecha en la que son consecutivos.

Bueno, ahora esto, llevandolo mi caso sería:

01/01/2011 0,1
02/01/2011 0,1
03/01/2011 0,1
04/01/2011 0,1
05/01/2011 0,035
06/01/2011 0,035
07/01/2011 0,035
08/01/2011 0,23
09/01/2011 0,23
10/01/2011 0,23
11/01/2011 0,23
12/01/2011 0,001
13/01/2011 0,001
14/01/2011 0,006
15/01/2011 0,006
16/01/2011 0,006
17/01/2011 0,006
18/01/2011 0,006
19/01/2011 0,006
20/01/2011 1,2
21/01/2011 1,2
22/01/2011 1,2
23/01/2011 0,001
24/01/2011 0,001
25/01/2011 0,001
26/01/2011 0,001
27/01/2011 0,001
28/01/2011 0,001
29/01/2011 0,001
30/01/2011 0,001


Espero que se haya entendido mejor asi me dan una ayuda!

Gracias por todo.
  #5 (permalink)  
Antiguo 08/11/2011, 07:23
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: Sugerencia de implementacion

lo que se me ocurre es crear otra tabla en la base de datos para almacenar el tipo de interés.... Y realizar la operaciones que mencionas a través de esta tabla...
  #6 (permalink)  
Antiguo 08/11/2011, 07:28
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Sugerencia de implementacion

Cita:
Iniciado por Sirrohan Ver Mensaje
lo que se me ocurre es crear otra tabla en la base de datos para almacenar el tipo de interés.... Y realizar la operaciones que mencionas a través de esta tabla...
Yo uso solo una tabla Sirrohan, porque otra tabla me decis? Los campos de mi tabla son: ID, Fecha, Tasainteres, Observaciones. Por las dudas, la tabla de animales, era para ejemplificar nomas.

Gracias por tu respuesta.
  #7 (permalink)  
Antiguo 08/11/2011, 07:34
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Sugerencia de implementacion

Hola goyitoparana, y no puedes almacenar todas las tasas de los dias que te devuelven en un array(o ir sumandola a medidas que te encuentra), luego sumarlas y dividirlas por el total de dias de esta manera obtendrías el promedio de la tasa.


Saludos.


Pd: en realidad no entendi lo que quieres pero tal vez te pueda ayudar lo que te comenté.
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #8 (permalink)  
Antiguo 08/11/2011, 07:50
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Sugerencia de implementacion

Cita:
Iniciado por bUllan9ebrio Ver Mensaje
Hola goyitoparana, y no puedes almacenar todas las tasas de los dias que te devuelven en un array(o ir sumandola a medidas que te encuentra), luego sumarlas y dividirlas por el total de dias de esta manera obtendrías el promedio de la tasa.


Saludos.


Pd: en realidad no entendi lo que quieres pero tal vez te pueda ayudar lo que te comenté.
Gracias por responder.

Yo lo que quiero saber es la cantidad de dias que, dado un segmento de fechas, tienen la misma tasa; y si estas son mas de una, la cantidad de dias que aplico a cada tasa.
Al calculo del interes ya lo se hacer, pero para calcular el interes la variable cantidad de dias es la que me esta faltando. Y la cantidad de dias, va variando en la cantidad de tasas.

Para calcular interes
Interes = Tasainteres * capital * cantdias
capital me lo da el usuario.
Tasainteres me lo da el campo de la bd "Tasainteres"
cantdias ???????????????? (esto es lo que quiero saber)

Espero que me puedan entender ahora.

Gracias
  #9 (permalink)  
Antiguo 08/11/2011, 07:59
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Sugerencia de implementacion

Realizando un select count (campo) from tabla where campo=$tasa, eso te podría servir , dado que te arrojaría la cantidad de dias por tas y obteniendo esos datos podrías realizar tus cálculos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #10 (permalink)  
Antiguo 08/11/2011, 08:18
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Sugerencia de implementacion

Cita:
Iniciado por bUllan9ebrio Ver Mensaje
Realizando un select count (campo) from tabla where campo=$tasa, eso te podría servir , dado que te arrojaría la cantidad de dias por tas y obteniendo esos datos podrías realizar tus cálculos
Esta buena esa de select count, el problema es que por ejemplo en este caso:


01/01/2011 0,1
02/01/2011 0,1
03/01/2011 0,1
04/01/2011 0,1
05/01/2011 0,035
06/01/2011 0,035
07/01/2011 0,035
08/01/2011 0,1
09/01/2011 0,1
10/01/2011 0,3
11/01/2011 0,3

y con la instruccion...

Select Tasainteres, count (*) from indices GROUP BY Tasainteres;

+---------+----------+
| Tasainteres | COUNT(*) |
+---------+----------+
| 0,1 | 6 |
| 0,035 | 3 |
| 0,3 | 2 |
+---------+----------+

Y yo lo que preciso es que me muestre
0,1 ---> 4
0,035 ---> 3
0,1 ---> 2
0,3 ---> 2

O sea, a medida que vaya cambiando me sume la cantidad, a pesar que se repita mas adelante el valor (en ese caso tendra que volver a contar ese grupo)...

Se entiende ahora amigo?
  #11 (permalink)  
Antiguo 08/11/2011, 08:21
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: Sugerencia de implementacion

es un caso complejo porque solamente tienes una tabla, pero lo que se me ocurre es hacer una sentencia COUNT en la base de datos de acuerdo a un rango de fechas...

algo así...

Código SQL:
Ver original
  1. SELECT COUNT( * )
  2. FROM `tutabla`
  3. WHERE (
  4. fecha
  5. BETWEEN '2011-01-01'
  6. AND '2011-03-31')

Pero primero deberías tener el rango de fechas, supongo que con otra sentencia a la base de datos.

Última edición por Sirrohan; 08/11/2011 a las 08:38 Razón: cambio en la sentencia SQL
  #12 (permalink)  
Antiguo 08/11/2011, 09:37
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Sugerencia de implementacion

Gracias, es buena idea, tendria que aclararme bien yo en como proceder.

Vere como procedo, pero ya me diste una pista, a ver si aparece alguna otra pista por ahi,

Saludos,

Etiquetas: afip, calculo, intereses, mysql+fechas, tasas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:13.