• Viernes 8 de Noviembre de 2024, 19:46

Autor Tema:  fox pro convierte numeros a letras  (Leído 1902 veces)

ingandres

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
fox pro convierte numeros a letras
« en: Jueves 9 de Octubre de 2003, 17:22 »
0
M.DEC = M.NUMERO - INT(M.NUMERO)
M.DEC = M.DEC * 100

M.NUE = INT(M.NUMERO)

SELECT NUMEROS
GO TOP

SET ORDER TO TAG NUMERO OF c:chequesnumeros.cdx

m.varnum = (ALLTRIM(str(M.NUE)))
M.NUMT = LEN(M.VARNUM)

************* UNIDADES ******************
M.UNIDADES = SUBSTR(M.VARNUM, M.NUMT,1)
*M.UNIDADES = M.UNIDADES
M.UNIDADES = VAL(UNIDADES)
M.COMPARA  = M.UNIDADES
IF SEEK (M.UNIDADES)
   M.UNIDADES = (ALLTRIM(NUMEROS.CANTIDAD))
*   M.UNIDADES = M.UNIDADES
   SHOW GETS
ENDIF

*********** DECENAS *********************
M.DECENAS = SUBSTR(M.VARNUM, M.NUMT-1,1)

     ****** SI LA DECENA ES 0 ********
IF M.DECENAS = "0"
   M.DECENAS = M.UNIDADES
   M.COMPARA2 = M.DECENAS
ELSE
   M.DECENAS = M.DECENAS + "0"
   M.DECENAS = VAL(DECENAS)
   IF SEEK (M.DECENAS)
      M.DECENAS = (ALLTRIM(NUMEROS.CANTIDAD))
      M.COMPARA2 = M.DECENAS
      M.DECENAS = M.DECENAS + " Y " + M.UNIDADES  
*      SHOW GETS
   ENDIF
ENDIF

   **** SI NO HAY DECENAS *****
IF M.NUMT = 1
   M.DECENAS = M.UNIDADES
ENDIF

   *** SI LAS UNIDADES SON 0 *****
IF M.COMPARA = 0
   M.DECENAS = M.COMPARA2
ENDIF

M.NUMR = SUBSTR(M.VARNUM, M.NUMT-1,1)
DO CASE
        ******* DEL 11 AL 19 ********
   CASE M.NUMR = '1'
      M.DECENAS = SUBSTR(M.VARNUM, M.NUMT-1,2)       
      M.DECENAS = VAL(DECENAS)
      IF SEEK (M.DECENAS)
         M.DECENAS = (ALLTRIM(NUMEROS.CANTIDAD))
         M.UNIDADES = ""
*         M.DECENAS = M.DECENAS
*         SHOW GETS
      ENDIF

      ***** DEL 21 AL 29 *********
   CASE M.NUMR = '2'
      M.DECENAS = SUBSTR(M.VARNUM, M.NUMT-1,2)       
      M.DECENAS = VAL(DECENAS)
      IF SEEK (M.DECENAS)
         M.DECENAS = (ALLTRIM(NUMEROS.CANTIDAD))
         M.UNIDADES = ""
*         M.DECENAS = M.DECENAS
*         SHOW GETS
      ENDIF
ENDCASE

***************** CENTENAS **********************
M.CIENTOS = SUBSTR(M.VARNUM, M.NUMT-2,1)
M.CIENTOS = VAL(CIENTOS)
M.COMPARA3 = M.CIENTOS

M.COMPARA2 = SUBSTR(M.VARNUM, M.NUMT-1,1)
M.COMPARA2 = VAL(M.COMPARA2)

IF SEEK (M.CIENTOS)
      ****** SI LA CENTENA ES 1 *******
   IF M.CIENTOS = 1
      M.CIENTOS = "ciento" + " " + M.DECENAS + " PESOS"
*      M.CANTIDAD = "ciento" + " " + M.DECENAS + " PESOS"
      IF M.COMPARA2 = 0
         IF M.COMPARA = 0
            M.CIENTOS ="CIEN PESOS"
*            M.CANTIDAD = "CIEN PESOS"
         ENDIF
      ENDIF
      SHOW GETS
   ELSE
      M.CIENTOS = (ALLTRIM(NUMEROS.CANTIDAD)) + "cientos"
*      M.CANTIDAD = M.CIENTOS + " " + M.DECENAS + " PESOS"
      M.CIENTOS = M.CIENTOS + " " + M.DECENAS + " PESOS"
      SHOW GETS
   ENDIF
      
      *** SE AGREGAN LAS LINEAS DE CIENTOS HASTA COMPARA3= 9 **
   IF M.COMPARA3 = 5
      M.CIENTOS = "QUINIENTOS" + " " + M.DECENAS + " PESOS"
*      M.CANTIDAD = "QUINIENTOS" + " " + M.DECENAS + " PESOS"
      SHOW GETS
   ENDIF

   IF M.COMPARA3 = 7
      M.CIENTOS =  "SETECIENTOS" + " " + M.DECENAS + " PESOS"
*      M.CANTIDAD = "SETECIENTOS" + " " + M.DECENAS + " PESOS"
      SHOW GETS
   ENDIF

   IF M.COMPARA3 = 9
      M.CIENTOS =  "NOVECIENTOS" + " " + M.DECENAS + " PESOS"
*      M.CANTIDAD = "NOVECIENTOS" + " " + M.DECENAS + " PESOS"
      SHOW GETS
   ENDIF

      ** EN CASO DE NO HABER CENTENA O QUE SEA IGUAL A CERO **
   IF M.COMPARA3 = 0
      M.CIENTOS = M.DECENAS + " PESOS"
*      M.CANTIDAD = M.DECENAS + " PESOS"
      SHOW GETS
   ENDIF
ENDIF

********************************* UNIDADES DE MILLAR ***************************************
M.UM = SUBSTR(M.VARNUM, M.NUMT-3,1)
M.UM = VAL(UM)
M.COMPARA4 = M.UM
M.COMPARA8 = M.COMPARA4

   ** BUSCA LA UNIDAD DE MILLAR EN LA TABLA **
IF SEEK (M.UM)
      ****** SI LA UNIDAD DE MILLAR ES 1 *******
   IF M.UM = 1
      M.UM = (ALLTRIM(NUMEROS.CANTIDAD)) + " mil" + " " + m.cientos
*      M.CANTIDAD = (ALLTRIM(NUMEROS.CANTIDAD)) + " mil" + " " + m.cientos
      IF M.COMPARA3 = 0
         IF M.COMPARA2 = 0
            IF M.COMPARA = 0
*               M.CANTIDAD = "MIL PESOS"
               M.UM = "MIL PESOS"
            ENDIF
         ENDIF
      ENDIF
      SHOW GETS
   ELSE
      M.UM = (ALLTRIM(NUMEROS.CANTIDAD)) + " MIL"
      M.UM = M.UM + " " + M.CIENTOS
*      M.CANTIDAD = M.UM + " " + M.CIENTOS
      SHOW GETS
   ENDIF
      
   IF M.COMPARA4 = 0
      M.UM = M.CIENTOS
*      M.CANTIDAD = M.CIENTOS
      SHOW GETS
   ENDIF
ENDIF

************************************ DECENAS DE MILLAR *************************************
M.DM = SUBSTR(M.VARNUM, M.NUMT-4,1)
M.DM = VAL(DM)
M.COMPARA9=M.DM
M.COMPARA6 = (ALLTRIM (STR(M.DM)))


   **** LOCALIZA LAS UNIDADES DE MILLAR ****
IF SEEK (M.COMPARA4)
   M.UM1 = (ALLTRIM(NUMEROS.CANTIDAD))
*   M.UM1 = M.UM1
   SHOW GETS
ENDIF

   ****** SI LA DECENA DE MILLAR ES 0 *******
IF M.DM = 0
   M.DM = M.UM
ELSE
   ********PARA FORMAR LAS CANTIDADES DE 30000 EN ADELANTE*********
   M.COMPARA6 = M.COMPARA6 + "0"
   M.DM = VAL(COMPARA6)
   IF SEEK (M.DM)
      M.DM = (ALLTRIM(NUMEROS.CANTIDAD))
      M.DM = M.DM + " Y " + M.UM1 + " MIL " + M.CIENTOS
*      SHOW GETS
   ENDIF
ENDIF

   *** SI LAS UNIDADES DE MILLAR SON 0 *****
M.COMPARA4 = SUBSTR(M.VARNUM, M.NUMT-3,1)
IF M.COMPARA4 = '0'
*   M.COMPARA6 = M.COMPARA6
   M.DM = VAL(COMPARA6)
   IF SEEK (M.DM)
      M.DM = (ALLTRIM(NUMEROS.CANTIDAD))
      M.DM = M.DM + " MIL " + M.CIENTOS
      SHOW GETS
   ENDIF
ENDIF

M.NUMR = SUBSTR(M.VARNUM, M.NUMT-4,1)
DO CASE
       ******* DEL 11 AL 19 ********
   CASE M.NUMR = '1'
      M.DM = SUBSTR(M.VARNUM, M.NUMT-4,2)       
      M.DM = VAL(DM)
      IF SEEK (M.DM)
         M.DM = (ALLTRIM(NUMEROS.CANTIDAD)) + " MIL " + M.CIENTOS
         M.UNIDADES = ""
*         M.DM = M.DM
         SHOW GETS
      ENDIF

      ***** DEL 21 AL 29 *********
   CASE M.NUMR = '2'
      M.DM = SUBSTR(M.VARNUM, M.NUMT-4,2)       
      M.DM = VAL(DM)
      IF SEEK (M.DM)
         M.DM = (ALLTRIM(NUMEROS.CANTIDAD)) + " MIL " + M.CIENTOS
         M.UNIDADES = ""
*         M.DM = M.DM
         SHOW GETS
      ENDIF
ENDCASE

******************************* CENTENAS DE MILLAR***************************************
M.CM = SUBSTR(M.VARNUM, M.NUMT-5,1)
M.CM = VAL(CM)
M.COMPARA7 = M.CM

*M.COMPARA2 = SUBSTR(M.VARNUM, M.NUMT-1,1)
*M.COMPARA2 = VAL(M.COMPARA2)

IF SEEK (M.CM)
      ****** SI LA CENTENA ES 1 *******
   IF M.CM = 1
      M.CM = "ciento " + M.DM
      
      IF M.COMPARA8 = 0
         IF M.COMPARA9 = 0
            IF M.COMPARA3 = 0
               IF M.COMPARA2 = 0
                  IF M.COMPARA = 0
                     M.CM ="CIEN MIL PESOS"
*                     M.CANTIDAD = "CIEN PESOS"
                  ENDIF
               ENDIF
            ENDIF
         ENDIF
      ENDIF
*      SHOW GETS
   ELSE
      M.CM = (ALLTRIM(NUMEROS.CANTIDAD)) + "cientos "
      M.CM = M.CM + M.DM
*      M.CIENTOS = M.CIENTOS + " " + M.DECENAS + " PESOS"
      SHOW GETS
   ENDIF
      
      *** SE AGREGAN LAS LINEAS DE CIENTOS HASTA COMPARA3= 9 **
   IF M.COMPARA7 = 5
      M.CM = "QUINIENTOS " + M.DM
   ENDIF

   IF M.COMPARA7 = 7
      M.CM =  "SETECIENTOS " + M.DM
   ENDIF

   IF M.COMPARA7 = 9
      M.CM =  "NOVECIENTOS " + M.DM
   ENDIF

      ** EN CASO DE NO HABER CENTENA O QUE SEA IGUAL A CERO **
   IF M.COMPARA7 = 0
      M.CM = M.DM
      M.CANTIDAD = M.DM
      SHOW GETS
   ENDIF
ENDIF

M.DEC2 = (ALLTRIM(STR(M.DEC)))

IF M.DEC > 0
   M.CANTIDAD = M.CM + " " + M.DEC2 + "/100 M.N."
   SHOW GETS
ELSE
   M.CANTIDAD = M.CM + " 00/100 M.N."
   SHOW GETS
ENDIF