Páginas filhas
  • LOG0380_extenso_moeda

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Tipo

Descrição

VARCHAR

Valor monetário por extenso (INPUT 1,39 - OUTPUT Um real e trinta e nove centavos)

Exemplo

Bloco de código
linenumberstrue
incluirDATABASE logix

MAIN
   DEFINE l_moeda LIKE moeda_compl.cod_moeda
   DEFINE l_den_moeda LIKE moeda.den_moeda

IF log0380_existe_moeda_compl() THEN
   DECLARE cq_teste CURSOR FOR
   SELECT moeda.cod_moeda, moeda.den_moeda
     FROM moeda_compl, moeda
    WHERE moeda_compl.cod_moeda = moeda.cod_moeda
    ORDER BY moeda.cod_moeda
ELSE
   DECLARE cq_teste CURSOR FOR
   SELECT moeda.cod_moeda, moeda.den_moeda
     FROM moeda
    ORDER BY moeda.cod_moeda
END IF

   FOREACH cq_teste INTO l_moeda, l_den_moeda
      CALL extenso1_processa(l_moeda, l_den_moeda, 11183.18, 50, 70,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 0.29, 70, 40,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 0.01, 40, 70,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 83.00, 42, 78,60, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 19437.10, 35, 75,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 18.27, 30, 70,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 10000.00, 65, 50,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 1.39, 35, 80,70, 100)
   END FOREACH

##MOEDA VAZIA (NULL) - DEVE ASSUMIR REAL
   LET l_moeda = NULL
   LET l_den_moeda = NULL   
      CALL extenso1_processa(l_moeda, l_den_moeda, 11183.18, 50, 70,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 0.29, 70, 40,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 0.01, 40, 70,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 83.00, 42, 78,60, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 19437.10, 35, 75,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 18.27, 30, 70,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 10000.00, 65, 50,70, 100)
      CALL extenso1_processa(l_moeda, l_den_moeda, 1.39, 35, 80,70, 100)

##MOEDA NÃO CADASTRADA - DEVE ASSUMIR REAL
      CALL extenso1_processa(-1, l_den_moeda, 11183.18, 50, 70,70, 100)
      CALL extenso1_processa(-1, l_den_moeda, 0.29, 70, 40,70, 100)
      CALL extenso1_processa(-1, l_den_moeda, 0.01, 40, 70,70, 100)
      CALL extenso1_processa(-1, l_den_moeda, 83.00, 42, 78,60, 100)
      CALL extenso1_processa(-1, l_den_moeda, 19437.10, 35, 75,70, 100)
      CALL extenso1_processa(-1, l_den_moeda, 18.27, 30, 70,70, 100)
      CALL extenso1_processa(-1, l_den_moeda, 10000.00, 65, 50,70, 100)
      CALL extenso1_processa(-1, l_den_moeda, 1.39, 35, 80,70, 100)

END MAIN

FUNCTION extenso1_processa(l_cod_moeda,l_den_moeda,l_val,l_comp_l1,l_comp_l2,l_comp_l3,l_comp_l4)
  DEFINE l_val               DECIMAL(15,2),
      		 l_cod_moeda         SMALLINT,
      		 l_den_moeda         CHAR(30),
         l_comp_l1           SMALLINT,
         l_comp_l2           SMALLINT,
         l_comp_l3           SMALLINT,
         l_comp_l4           SMALLINT,
         l_lin3           VARCHAR(200),
         l_lin4           VARCHAR(200),
         l_lin1           VARCHAR(200),
         l_lin2           VARCHAR(200)

  CALL conout("MOEDA "||l_cod_moeda||" - "||l_den_moeda||" VALOR = "||l_val)

  CALL log0380_extenso_moeda(l_cod_moeda, l_val, l_comp_l1, l_comp_l2,l_comp_l3, l_comp_l4) RETURNING l_lin1, l_lin2, l_lin3, l_lin4

  CALL conout("EXTENSO ",l_lin1,l_lin2,l_lin3,l_lin4)

  RETURN l_lin1, l_lin2, l_lin3, l_lin4
END FUNCTION

Informações

Fontes: log0380.4gl

...