Home

Linha Microsiga Protheus

Páginas filhas
  • Função genérica - Extenso -- 11155

Função genérica - Extenso

Sintaxe: Extenso(nValor,lQuantid,nMoeda,cPrefixo,cIdioma,lCent,lFrac)

Objetivo:

Retornar valores em extenso.

Pontos da mudanca:
- Retornar o extenso numerico (quantidade ou valor) em português, espanhol ou inglês, mesmo sem utilizar o repositorio do idioma correspondente.
- Retornar o extenso de valor em qualquer uma das cinco moedas presentes no sistema.
- Permitir ou nao exibir os centavos (no caso de cheques que ja contenham o texto fixo "e centavos acima")
- Permitir o formato americano para exibicao dos centavos (notacao fracionaria e sem a utilizacao da palavra "cents")


Para a mudanca:
- Nao usaremos as strings traduzidas no CH, pois as mesmas limitam o uso do idioma atraves da compilacao da diretiva IFDEF SPANISH ou ENGLISH. Ou seja, todo o texto ficara na propria funcao visto que poderemos querer um texto em inglês mesmo usando o repositorio em português.
- Passaremos a utilizar o parâmetro nMoeda (que ate entao nao tinha finalidade) para saber em qual moeda se deseja o extenso.
- Para o texto (em singular) que representa a moeda serao usados os ja existentes MV_MOEDAx (onde x de 1 a 5) e deverao ser criados mais cinco parâmetros MV_MOEDAPx (onde x de 1 a 5) para os respectivos plurais.
- Serao necessarios três novos parâmetros na funcao:
1) cIdioma: define em que idioma sera retornado o extenso. Sendo possiveis: 0-RPO;1-português;2-espanhol;3-inglês. O default 0 (zero), para manter compatibilidade com o uso anterior.
2) lCent: considera ou nao os centavos/decimais. O default true, para manter compatibilidade com o uso anterior.
3) lFrac: informa se o formato dos centavos ser em notacao fracionaria. O default false, para manter compatibilidade com o uso anterior.


Parametros:

1 - nValor = Valor numerico no qual a funcao retornara o seu valor numerico
2 - lQuantid = Valor logico que especifica se o retorno da Extenso sera para quantidade ou para valores. O default e ".f.".
3 - nMoeda = Identifica em que moeda se dara o retorno.
4 - cPrefixo = Prefixo alternativo. Caso especificado, prefixa o retorno do extenso. Fazendo com que a unidade monetaria nao seja impressa.

----------------------------
Parametros novos
----------------------------
5 - cIdioma = Especifica em qual idioma devera ser retornado o valor do extenso.(1=Port.2=Espa.3=Ingl)
6 - lCent = Especifica se a funcao devera retornar os centavos. O default e .t.
7 - lFrac = Especifica se os centavos deverao ser retornados em modo fracionado(Somente funcionara com o idioma Ingles)


 

Extenso(500.00)= "QUINHENTOS REAIS"Extenso(500.00,.f.,2,,1)= "QUINHENTOS DOLARES" Extenso(1999.78 ,.T.,2) = "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE"Extenso(1999.78 ,.F.,1) = "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE DOLLARS AND SEVENTY-EIGHT CENTS"Extenso(1999.78 ,.F.,1,,,.f.) = "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE DOLLARS"Extenso(1999.78 ,.F.,1,,"3",.t.,.t.) = "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE AND 78/100 DOLLARS"Extenso(1999.78 ,.F.,1,,"2",.t.,.f.)= "UM MIL, NOVECIENTOS NOVENTA Y NUEVE DOLARES Y SETENTA Y OCHO CENTAVOS"Extenso(1999.78 ,.F.,1,,"1",.t.,.f.)= "UM MIL, NOVECENTOS E NOVENTA E NOVE DOLARES E SETENTA E OITO CENTAVOS"Extenso(0.85,.f.,1,,"3",.t.,.t.)= "85/100 DOLLARS"Extenso(0.85,.f.,1,,"3",.t.,.f.)= "EIGHTY-FIVE CENTS"Extenso(2001,.f.,1,,"2",.t.,.f.)= "DOS MIL Y UM DOLARES"Extenso(500.05,.f.,1,,"3",.t.,.f.)= "FIVE HUNDRED DOLLARS AND FIVE CENTS"Extenso(500.05,.f.,1,,"3",.t.,.t.)= "FIVE HUNDRED AND 5/100 DOLLARS"Extenso(500.05,.f.,2,,"1",.t.,.t.)= "QUINHENTOS REAIS E CINCO CENTAVOS"
Nível 1 (Acesso Clientes)
Espanhol , Inglês
Advanced Protheus 5.08 , Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10
Brasil
Todos