**---------------------- ** Function APesos ** ** Devuelve la cadena textual correspondiente a una cantidad en pesos. **---------------------- Function APesos PARAMETERS numero resto = RIGHT( STR( numero, 9, 2 ), 2 ) numero = INT( numero ) n = '' n1 = 'UN' n2 = 'DOS' n3 = 'TRES' n4 = 'CUATRO' n5 = 'CINCO' n6 = 'SEIS' n7 = 'SIETE' n8 = 'OCHO' n9 = 'NUEVE' n10 = 'DIEZ' n11 = 'ONCE' n12 = 'DOCE' n13 = 'TRECE' n14 = 'CATORCE' n15 = 'QUINCE' n16 = 'DIECISEIS' n17 = 'DIECISIETE' n18 = 'DIECIOCHO' n19 = 'DIECINUEVE' n20 = 'VEINTE' n30 = 'TREINTA' n40 = 'CUARENTA' n50 = 'CINCUENTA' n60 = 'SESENTA' n70 = 'SETENTA' n80 = 'OCHENTA' n90 = 'NOVENTA' n100 = 'CIENTO' n200 = 'DOSCIENTOS' n300 = 'TRESCIENTOS' n400 = 'CUATROCIENTOS' n500 = 'QUINIENTOS' n600 = 'SEISCIENTOS' n700 = 'SETECIENTOS' n800 = 'OCHOCIENTOS' n900 = 'NOVECIENTOS' contador = 1 inicio = 1 cadena = STR( numero, 9 ) nump = ' ' DO WHILE contador < 4 IF numero <= 0 nump = '( *** CERO PESOS 00/100 M.N. *** )' RETURN nump ENDIF subcadena = SUBSTR( cadena, inicio, 3 ) centena = SUBSTR( subcadena, 1, 1 ) + '00' decena = SUBSTR( subcadena, 2, 2 ) unidad = SUBSTR( subcadena, 3, 1 ) IF VAL( subcadena ) > 99 IF VAL( subcadena ) = 100 nump = nump + 'CIEN ' ELSE nump = nump + n¢ena + ' ' ENDIF ENDIF t = VAL( decena ) IF t > 0 DO CASE CASE ( INT( t / 10.0 ) = t / 10.0 ) .OR. ( t > 9 .AND. t < 20 ) nump = nump + n&decena + ' ' CASE t > 9 .AND. (INT ( t / 10.0 ) # t / 10.0 ) decena = SUBSTR( decena, 1, 1 ) + '0' IF decena # '20' nump = nump + n&decena + ' Y ' + n&unidad + ' ' ELSE nump = nump + 'VEINTI' + n&unidad + ' ' ENDIF CASE t < 10 nump = nump + n&unidad + ' ' ENDCASE ENDIF IF numero > 999999 .AND. contador = 1 nump = nump + 'MILLONES ' ENDIF IF nump = ' UN MILLONES ' nump = ' UN MILLON ' ENDIF IF numero > 999 .AND. contador = 2 .AND. VAL( subcadena ) > 0 nump = nump + 'MIL ' ENDIF IF nump = ' UN MIL ' nump = ' MIL ' ENDIF inicio = contador * 3 + 1 contador = contador + 1 ENDDO nump = '( * ' + nump + 'PESOS ' + resto + '/100 M.N. * )' RETURN nump