You are on page 1of 2

FUNCTION z_spell_amount.

*"--------------------------------------------------------------------
--
*"*"Interface local:
*" IMPORTING
*" VALUE(P_VALOR)
*" EXPORTING
*" VALUE(P_EXTENSO)
*"--------------------------------------------------------------------
--
CONSTANTS:
cc_real(05) TYPE c VALUE 'REAL',
cc_reais(05) TYPE c VALUE 'REAIS',
cc_centavos(08) TYPE c VALUE 'CENTAVOS',
cc_centavo(08) TYPE c VALUE 'CENTAVO'.

DATA: BEGIN OF ec_words OCCURS 0.


INCLUDE STRUCTURE spell.
DATA: END OF ec_words.

CALL FUNCTION 'SPELL_AMOUNT'


EXPORTING
amount = p_valor
currency = 'BRL'
filler = ' '
language = 'P'
IMPORTING
in_words = ec_words
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
*** Resoluo de erro na funo SPELL_AMOUNT
* if ec_words-number >= 2000.
* replace 'UM MIL' with 'MIL' into ec_words-word.
* endif.

p_extenso = ec_words-word.

IF ec_words-number = 0 AND ec_words-decimal = 0.


p_extenso = 'ZERO'. EXIT.
ENDIF.

IF ec_words-number = 1.
CONCATENATE p_extenso cc_real INTO p_extenso SEPARATED BY space.
ELSEIF ec_words-number = 0.
clear p_extenso.
ELSE.
CONCATENATE p_extenso cc_reais INTO p_extenso SEPARATED BY space.
ENDIF.

IF ec_words-decimal > 0.
if not p_extenso is initial.
CONCATENATE p_extenso 'E' ec_words-decword INTO p_extenso
SEPARATED BY space.
else.
move ec_words-decword TO p_extenso.
endif.
IF ec_words-decimal = 010.
CONCATENATE p_extenso cc_centavo INTO p_extenso
SEPARATED BY space.
ELSE.
CONCATENATE p_extenso cc_centavos INTO p_extenso
SEPARATED BY space.
ENDIF.
ENDIF.

ENDFUNCTION.

You might also like