Imposto monofásico e FCP
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Imposto monofásico e FCP
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/
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/
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Imposto monofásico e FCP
Código: Selecionar todos
cQuery := "CREATE FUNCTION IF NOT EXISTS AliquotaFCP( `cUFde` VARCHAR(2)) "
cQuery += "RETURNS DECIMAL(10,2) "
cQuery += "LANGUAGE SQL "
cQuery += "NOT DETERMINISTIC "
cQuery += "CONTAINS SQL "
cQuery += "SQL SECURITY DEFINER "
cQuery += "COMMENT '' "
cQuery += "BEGIN "
cQuery += " DECLARE nAliquota DECIMAL(10,2) ; "
cQuery += " SET nAliquota = ( "
cQuery += " CASE "
cQuery += " WHEN cUFde IN ( 'AC', 'AP', 'CE', 'PA', 'SC', 'MG' ) THEN 0 "
cQuery += " WHEN cUFde IN ( 'AL' ) THEN 1 "
cQuery += " WHEN cUFde = 'RJ' THEN 4 "
cQuery += " ELSE 2 "
cQuery += "END ) ; "
cQuery += "RETURN nAliquota ; "
cQuery += "END "HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Imposto monofásico e FCP
essas coisas vão complicando conforme os comandos crescem.
Sugestão:
1) criar estilo resource no próprio MySQL
No caso de deixar no MySQL, pode fazer atualização automática pela data/hora num servidor SEU, e atualizar no cliente a partir dele
Faço assim pra maior parte dos casos
2) criar embutido no EXE
Usando #pragma, com o cuidado de recompilar forçado, porque resource não é conferido
Faço assim pra alguns casos, pra funcionar mesmo sem MySQL
Por exemplo, a criação inicial das tabelas de configuração que não podem faltar.
O comando SQL ficaria num arquivo separado, e ficaria bem legível
Meu upload salva esses arquivos exatamente com o mesmo nome, e data/hora no meu servidor.
No cliente, no download, a rotina verifica se tem data mais nova, já atualiza e instala se for o caso.
nos outros:
Sugestão:
1) criar estilo resource no próprio MySQL
No caso de deixar no MySQL, pode fazer atualização automática pela data/hora num servidor SEU, e atualizar no cliente a partir dele
Faço assim pra maior parte dos casos
2) criar embutido no EXE
Usando #pragma, com o cuidado de recompilar forçado, porque resource não é conferido
Faço assim pra alguns casos, pra funcionar mesmo sem MySQL
Por exemplo, a criação inicial das tabelas de configuração que não podem faltar.
O comando SQL ficaria num arquivo separado, e ficaria bem legível
Meu upload salva esses arquivos exatamente com o mesmo nome, e data/hora no meu servidor.
No cliente, no download, a rotina verifica se tem data mais nova, já atualiza e instala se for o caso.
nos outros:
Código: Selecionar todos
FUNCTION ze_LoadResource( cImage, lObrigatorio )
hb_Default( @lObrigatorio, .F. )
cImage := Lower( cImage )
IF ! lObrigatorio
hb_Default( @cImage, AppEmpresaApelido() )
ENDIF
DO CASE
// CASE cImage == "banco341.jpg"; #pragma __binarystreaminclude "sql\jpg\banco341.jpg" | RETURN %s
// CASE cImage == "banco237.jpg"; #pragma __binarystreaminclude "sql\jpg\banco237.jpg" | RETURN %s
// CASE cImage == "natal.jpg"; #pragma __binarystreaminclude "sql\jpg\natal.jpg" | RETURN %s
CASE cImage == "jpsenha.sql"; #pragma __binarystreaminclude "sql\table\jpsenha.sql" | RETURN %s
CASE cImage == "jpbinary.sql"; #pragma __binarystreaminclude "sql\table\jpbinary.sql" | RETURN %s
CASE cImage == "jpconfi.sql"; #pragma __binarystreaminclude "sql\table\jpconfi.sql" | RETURN %s
CASE cImage == "jpreguso.sql"; #pragma __binarystreaminclude "sql\table\jpreguso.sql" | RETURN %s
CASE cImage == "jptabctaadm.sql"; #pragma __binarystreaminclude "sql\table\jptabctaadm.sql" | RETURN %s
CASE cImage == "jptabquaass.sql"; #pragma __binarystreaminclude "sql\table\jptabquaass.sql" | RETURN %s
CASE cImage == "jptabhisto.sql"; #pragma __binarystreaminclude "sql\table\jptabhisto.sql" | RETURN %s
CASE cImage == "jpempresa.sql"; #pragma __binarystreaminclude "sql\table\jpempresa.sql" | RETURN %s
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Imposto monofásico e FCP
No uso, pode ser até direto:
Lembrando:
Pra cadastrar function precisa testar primeiro se já não existe, excluir, e depois incluir.
É bom conferir a lista, e excluir desativadas
E por aí vai.
Código: Selecionar todos
cnSQL:Execute( ze_BinaryFromResource( "jpempresa.sql" ) )
//criar function
cnSQL:Execute( ze_BinaryFromSQL( "ze_ExtensoUnidade.sql" ) )
Pra cadastrar function precisa testar primeiro se já não existe, excluir, e depois incluir.
É bom conferir a lista, e excluir desativadas
E por aí vai.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Imposto monofásico e FCP
Depois que monta o esquema é moleza.
É só usar Directory() pra pegar nomes, data, hora, tamanho
e gravo crc32 por precaução, pra conferir se tudo bate.
Colocou um arquivo novo lá, ele já entra, nenhum trabalho extra.
Faço isso pra arquivos SQL, JSON, JPG, EXE, DLL, etc.
A rotina de atualização apenas compara data/hora e atualiza a tabela.
E no seu EXE, APÓS A ATUALIZAÇÃO, decide o que fazer com a parte nova.
Vai estar tudo disponível na tabela.
É só usar Directory() pra pegar nomes, data, hora, tamanho
e gravo crc32 por precaução, pra conferir se tudo bate.
Colocou um arquivo novo lá, ele já entra, nenhum trabalho extra.
Faço isso pra arquivos SQL, JSON, JPG, EXE, DLL, etc.
A rotina de atualização apenas compara data/hora e atualiza a tabela.
E no seu EXE, APÓS A ATUALIZAÇÃO, decide o que fazer com a parte nova.
Vai estar tudo disponível na tabela.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Imposto monofásico e FCP
Dependendo do formato, gravo em base64 e até cryptografado.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Imposto monofásico e FCP
IMPORTANTÍSSIMO
Coloque codepage nas procedures e functions.
Tive problema com isso na troca de versão de MySQL.
Senão, pode começar a dar erro em tudo, ou deixar tudo lento por causa do MySQL converter.
O maior problema é:
tudo funciona, mas se eles mudam o default... ferrou
Definindo codepage, não importa a configuração do servidor, tudo seu vai estar na sua codepage.
Coloque codepage nas procedures e functions.
Tive problema com isso na troca de versão de MySQL.
Senão, pode começar a dar erro em tudo, ou deixar tudo lento por causa do MySQL converter.
O maior problema é:
tudo funciona, mas se eles mudam o default... ferrou
Definindo codepage, não importa a configuração do servidor, tudo seu vai estar na sua codepage.
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/
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/