Função extenso passo a passo

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função extenso passo a passo

Mensagem por JoséQuintas »

O "E" quando for centena redonda

Código: Selecionar todos

         IF Len( cTxt ) != 0
            cTxt += " "
            IF nCentena == Int( nCentena / 100 ) * 100
               cTxt += "E "
            ENDIF
         ENDIF
Trocar HUM MIL, POR MIL, .... ainda precisa confirmar

Código: Selecionar todos

         //IF nGrupo != 4 .OR. nCentena != 1 // grupo milhar valor 1 diferente
            cTxt += ze_ExtensoCentena( nCentena )
         //ENDIF
O mesmo referente a HUM
Uma alternativa seria:

Código: Selecionar todos

cTxt := StrTran( cTxt, "HUM", "UM" )
Pensei parecido para trocar UM MIL, mas não dá, porque VINTE E UM MIL seria trocado também.
Será desbloquear o bloco indicado anteriormente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função extenso passo a passo

Mensagem por JoséQuintas »

Pendências:

Confirmar se os bancos, no preenchimento por computador, exigem:

- HUM no lugar de UM
- UM MIL no lugar de MIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função extenso passo a passo

Mensagem por JoséQuintas »

Na internet só encontrei sobre o HUM mesmo, pra evitar fraudes, porque escrito a mão, como foi postado num link anterior, dá pra facilmente transformar UM em CEM, o HUM é justamente pra evitar isso.

O mil, sem HUM MIL, é mais pra evitar que alguém coloque algum texto antes de mil.

Existe a alternativa de escrever entre parênteses, ou com sinal de igual.
=MIL
(MIL)

Não encontrei nada oficial dos bancos sobre "o que é oficial", nem no caso de escrita a mão, nem no caso de escrita por computador.

Talvez confirmar com clientes sobre isso.

Na rotina de extenso dá pra deixar " UM ", e por strtran() trocar " UM " pra " HUM ", ou vice-versa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função extenso passo a passo

Mensagem por JoséQuintas »

Ficamos no aguardo de informações oficiais.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função extenso passo a passo

Mensagem por JoséQuintas »

extenso.png
Rotina em MySQL, conforme aquele site.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Função extenso passo a passo

Mensagem por JoséQuintas »

Tem gente que ainda se perde com isso.
Como funciona o conjunto?

222

Passa pra rotina de centena 222.
A rotina de centena tem "DUZENTOS E" e chama a de dezena passando 22

A rotina de dezena recebe 22.
A rotina de dezena tem "VINTE E" e chama a de unidade passando 2

A rotina de unidade recebe 2.
A rotina de unidade devolve "DOIS" pra dezena

A dezena junta "VINTE E DOIS" e devolve pra centena

A centena junta "DUZENTOS E VINTE E DOIS" e devolve pra quem chamou

E é assim que tudo vai se formando, cada função recebe um valor e devolve um texto.
Não precisamos chamar cada uma, basta chamar uma principal que ela faz uso das outras, se precisar.

Com certeza, nessas horas é importantíssimo declarar variáveis como LOCAL no Harbour, pra não ter mistura de variáveis.
No MySQL isso já é feito por padrão.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder