Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Julio 27, 2008, 02:56:32
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Otros Lenguajes  |  Tema: Quien me explica este codigo en visual fox 6.0- TERMINADO 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Quien me explica este codigo en visual fox 6.0- TERMINADO  (Leído 208 veces)
Entrerriano
Recien Llegado
*
Desconectado Desconectado

Mensajes: 9


La unica manera de vivir......... es viviendo

hombreer@hotmail.com
Ver Perfil
« en: Enero 08, 2008, 06:14:05 »

Por favor si me pueden explicar en manera facil como es el calculo. saca interes a un monto.
Muchas Gracias

PARAMETERS importe, indice, fechaini, fechafin
PRIVATE coefic, anio, mes, dia, dia_o, mes_o, anio_o, dias_m, anio_ant, mes_ant

IF !USED ('INDICES')
   =USET ('RECUR\INDICES')
ENDIF

coefic = 0

anio_o = YEAR  (m.fechaini)
mes_o  = MONTH (m.fechaini)
dia_o  = DAY   (m.fechaini)
IF SEEK (m.indice + STR (m.anio_o,4,0) + STR(m.mes_o,2,0), 'indices')
   anio   = YEAR  (m.fechafin)
   mes    = MONTH (m.fechafin)
   dia    = DAY   (m.fechafin)
   IF m.anio_o = m.anio AND m.mes_o = m.mes
      * m.coefic = indices.porc_ind * (m.dia - m.dia_o)   ### VFP
      m.coefic = indices.porc_ind * (m.dia - m.dia_o) / 3000
   ELSE
      coefic = - indices.val_ind
      IF indices.porc_ind <> 0
         m.dias_m =   DAY (GOMONTH (CTOD ('01/' + STR (m.mes_o, 2) + '/' + ;
                            STR (m.anio_o, 4)), 1) - 1)
         m.coefic = m.coefic + indices.porc_ind * (m.dias_m - m.dia_o) / 3000
      ENDIF

      IF m.mes > 1
         anio_ant = m.anio
         mes_ant  = m.mes - 1
      ELSE
         anio_ant = m.anio - 1
         mes_ant  = 12
      ENDIF

      IF SEEK (m.indice + STR (m.anio_ant,4,0) + STR(m.mes_ant,2,0),'indices')
         m.coefic = indices.val_ind + m.coefic

         IF SEEK (m.indice + STR (m.anio,4,0) + STR(m.mes,2,0), 'indices')
            IF indices.porc_ind <> 0
               m.coefic = m.coefic + indices.porc_ind * m.dia / 3000
            ENDIF
         ELSE
            mensaje = 'No están cargados los valores para el índice de interés ' +;
               m.indice + ' para el mes ' + ALLT(STR(m.mes,2,0)) + ' del año ' +;
               STR(m.anio,4,0) + '. Verifique!'
            =FINAL(15, mensaje)
         ENDIF
      ELSE
         mensaje = 'No están cargados los valores para el índice de interés ' +;
            m.indice + ' para el mes ' + ALLT(STR(m.mes_ant,2,0)) + ' del año ' +;
            STR(m.anio_ant,4,0) + '. Verifique!'
         =FINAL(15, mensaje)
      ENDIF
   ENDIF
ELSE
   mensaje = 'No están cargados los valores para el índice de interés ' +;
      m.indice + ' para el mes ' + ALLT(STR(m.mes_o,2,0)) + ' del año ' +;
      STR(m.anio_o,4,0) + '. Verifique!'
   =FINAL(15, mensaje)
ENDIF

IF m.coefic < 0
   m.coefic = 0
ENDIF

RETURN ROUND (m.importe * m.coefic, 2)
« Última modificación: Enero 14, 2008, 06:00:31 por Entrerriano » En línea
Netxing
Recien Llegado
*
Desconectado Desconectado

Mensajes: 2


Ver Perfil
« Respuesta #1 en: Enero 11, 2008, 10:04:13 »

/* En cada exprecion escribi unos pocos comentarios para que te ayuden un poco... saludos..

PARAMETERS importe, indice, fechaini, fechafin
* Me imagino que este codigo se encuentra en un metodo o  proceso que recibira los 4 parametros.
PRIVATE coefic, anio, mes, dia, dia_o, mes_o, anio_o, dias_m, anio_ant, mes_ant
*Se declaran las variable para que sean privadas, para que solo se utilicen en este proceso.

IF !USED ('INDICES') && Especifica si el alias de la table indices no esta abierta.
   =USET ('RECUR\INDICES') &&  = el signo de igual ejecuta la exprecion.
ENDIF

coefic = 0
anio_o = YEAR  (m.fechaini)

* Se debe de relacionar a un alias(tabla) que se relaciona con el nombre de “m” con una
* columna llamada “fechaini” y se toma el ano retornando un valor numerico.

mes_o  = MONTH (m.fechaini) && Se toma el mes.
dia_o  = DAY   (m.fechaini) && El dia.

IF SEEK (m.indice + STR (m.anio_o,4,0) + STR(m.mes_o,2,0), 'indices') 

* se realiza la búsqueda utilizando la función str() para convertir el dato numero  en  carácter,
* los parámetros que tiene el str son str(exprecion,longitud,lugardecimales) con esto se busca un registro
* especifico en el alias indice.

* Si se encuentra el registro seguirá aquí…


   anio   = YEAR  (m.fechafin)  && Se toman los valores como se explico antes…
   mes    = MONTH (m.fechafin)
   dia    = DAY   (m.fechafin)

   IF m.anio_o = m.anio AND m.mes_o = m.mes 
      * Se comparan los valores de la primer tabla con la segunda…
      * m.coefic = indices.porc_ind * (m.dia - m.dia_o)   ### VFP
      m.coefic = indices.porc_ind * (m.dia - m.dia_o) / 3000 && se realiza la operación y se guarda en variable
   ELSE
      coefic = - indices.val_ind
      IF indices.porc_ind <> 0
*Esto de aquí le suelo llamar una sección de sopa de expeciones: str() ya lo vimos, sirve para convertir
* un numero a carácter, ctod() sirve para convertir una expecion de carácter en exprecion de fecha,
* gomonth() sirve para a ir a un mes especificado dependiendo de la exprecion: Ejemplo:
* GOMONTH({^2008-12-31}, 2) && Esto me dara  02/28/2009, la duncion day() ya la conocemos,
* nos dara el dia que nos mande.

* Todo de aquí en adelante es algo simple, solo necesitas entender la lógica de la operaciones. Saludos.

         m.dias_m =   DAY (GOMONTH (CTOD ('01/' + STR (m.mes_o, 2) + '/' + STR (m.anio_o, 4)), 1) – 1)

………… código………………   */
En línea
Entrerriano
Recien Llegado
*
Desconectado Desconectado

Mensajes: 9


La unica manera de vivir......... es viviendo

hombreer@hotmail.com
Ver Perfil
« Respuesta #2 en: Enero 14, 2008, 05:59:41 »

Gracias Netxing por darme una mano, me ayudaste mucho, Es mas o menos lo que buscaba, lo demas de a poco lo voy sacando,

Un abrazo
En línea
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Otros Lenguajes  |  Tema: Quien me explica este codigo en visual fox 6.0- TERMINADO « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC