Totali CheckOut, Fiscal, Funcionalidades
Referenciado por: Análise Projeto PAF-ECF 2011 | Análise para Layout de DAV Impresso em CF | DLL's utilizadas nos Sistemas | Guia para Criação e Manutenção de DLLs | Tabela de Perfil por UF |
Apresentação
Dll criada para gerar relatórios impostos pelo PAFECF.
Cada função gera um relatório.
- Dav Emitidos. (Requisito VI Item 6)
- Registros do PAF-ECF. (Requisito VI Item 17)
Funções Externas da DDL PAF-ECF
GeraTXT_DAV_Emitidos
Objetivo
Gerar o relatório gerencial de Dav Emitidos com base no requisito VI item 6 ou Gerar o relatório gerencial de Dav-Os Emitidos com base no requisito XLI Item 1.
Assinatura
GeraTXT_DAV_Emitidos(pServidor, pDataBase, pServerType, pUserName, pPassword, pPath, pNomeArquivo, pDATINC, pDATFIM, pTIPORC : PAnsiChar; pNroColunas : Integer; pFilial: PAnsiChar):PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233.
pPath - Caminho onde o arquivo será gerado.
Ex.: T:\ArquivosDAV\.
pNomeArquivo - Nome do arquivo sem a extensão.
Ex.: DAV_Emitidos.
pDATINC e pDATFIM - Data Inicial e Data Final (DD/MM/AAAA) para filtrar os DAV_Emitidos em um determinado período.
Ex. pDATINC: '01/05/2009'
Ex. pDATFIM: '31/05/2009'.
pTIPORC: 'O' ou 'S'
pNroColunas : nº inteiro(total de colunas no cupom fiscal). Padrão: 40 ou 48 colunas.
pFilial - Número da Filial de emissão de DAV (TT_ORC.CDFIL) (3 caracteres)
Ex.: '001'
Retorno
A Função retorna uma String " "(Nulo), caso ocorra algum erro retorna a mensagem de erro.
Exemplo
Result := GeraTXT_DAV_Emitidos('TTDB', 'totali', 'PG', 'TOTALI122', '112233','T:\','DAV_Emitidos',
'01/05/2009', '30/05/2009', 'O', 40, '001');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar exceto o ultimo que é do tipo inteiro
GeraTXT_RegistrosPAFECF
Objetivo
Gera arquivo eletrônico para contemplar requisito VII item 17 conforme leiaute estabelecido no Anexo IV.
- O arquivo é gerado imediatamente após emissão da redução Z.
- O arquivo pode ser gerado pelo menu fiscal na opção "Registros do PAF-ECF".
Assinatura
GeraTXT_RegistrosPAFECF(pServidor, pDataBase, pServerType, pUserName, pUserPassword, pPath, pPathChvPrv, pFilial, pDatIni, pDatFim, pListChvPro, pNumEcf, pDesenvCnpj, pDesenvIE, pDesenvIM, pDesenvNome, pPAFECFNome, pPAFECFVersao, pPAFECFMD5, pGeraBlocoP, pGeraBlocoE: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pUserPassword - Senha do usuário logado.
Ex.: 112233.
pPath - Caminho onde o arquivo será gerado.
Ex.: T:\ArquivosDAV\.
pPathChvPrv - Caminho da chave privada da DLL SEGUR.
Ex.: S:\enterprise\chvasn1.prv.
pFilial - Filial logada.
Ex.: 001.
pDatIni - Data inicial da movimentação (DD/MM/AAAA). A data inicial do período que será avaliado. O sistema contará a partir da hora zero.
Ex.: 01/01/2009.
pDatFim - Data final da movimentação (DD/MM/AAAA). A data final do período que será avaliado. O sistema contará até a meia-noite. Em caso de redução Z deverá ser enviado simplesmente Z como parâmetro.
Ex.: 01/01/2009.
pListChvPro - Caminho da Lista de produtos.
OBS: No arquivo é necessário apenas uma chave do produto (CHAVEPRO) por linha.
Ex.: Verificar Lista de Produtos
pNumEcf - Número do ECF utilizada.
Ex.: 001.
pDesenvCnpj - CNPJ da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvIE - Inscrição Estadual da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvIM - Inscrição Municipal da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvNome - Denominação da empresa desenvolvedora do PAF-ECF (até 40 caracteres).
Ex.: Nome da Empresa
pPAFECFNome - Nome Comercial do PAF-ECF (até 40 caracteres).
Ex.: Nome do Sistema
pPAFECFVersao - Versão atual do PAF-ECF (até 10 caracteres).
Ex.: 1.0
pPAFECFMD5 - MD5 do executável (32 caracteres).
Ex.: 01234567890123456789012345678901
pGeraBlocoP - Indicação se terá a geração do Bloco P - Produtos.
Ex.: T - Sim - F - Não
pGeraBlocoE - Indicação se terá a geração do Bloco E - Estoque.
Ex.: T - Sim - F - Não
Lista de Produtos
Mandar FILMAT, CODMAT, CODCOR e CODTAM conforme exemplo abaixo.
Padrão utilizado foi o mesmo da carga de produtos.
001 149-0-0
001 174-0-0
001 112-0-0
001 326-0-0
001 42-0-0
001 43-0-0
001 44-0-0
001 45-0-0
Retorno
Em caso de sucesso a Função retorna uma String com o nome do arquivo gerado com o seguinte formato:
CCCCCCCCCCCCCCDDMMAAAA.txt
CCCCCCCCCCCCCC: CNPJ da Filial
DDMMAAAA: Data de operação. No caso de emissão após o relatório Z será a data referente ao relatório. No caso de emissão por período será a data atual do sistema.
Em caso de erro a Função retorna a String "ERRO [Arquivo Registos PAF-ECF]:" concatenada a uma mensagem mais específica de erro. Para verificar se a Função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := GeraTXT_RegistrosPAFECF('TTDB', 'totali', 'ORA', 'TOTALI122', '112233', 'T:\Migração\', 'S:\chvasn1.prv', '001', '01/01/2009', '31/01/2009', 'S:\TabProduto.txt', '001', '012345678901234', '012345678901234', '012345678901234', 'Nome da Empresa', 'Nome do Sistema', '1.0', '012345678901234567890123456789012','F','F');
Result := GeraTXT_RegistrosPAFECF('TTDB', 'totali', 'ORA', 'TOTALI122', '112233', 'T:\Migração\', 'S:\chvasn1.prv', '001', '01/01/2009', 'Z', 'S:\TabProduto.txt', '001', '012345678901234', '012345678901234', '012345678901234', 'Nome da Empresa', 'Nome do Sistema', '1.0', '012345678901234567890123456789012', 'T', 'T');
GeraTXT_TabIndiceTecnicoProducao
Objetivo
Gera arquivo com a tabela de índices técnicos de produção (Requisito VII, alínea 20)
Assinatura
Function GeraTXT_TabIndiceTecnicoProducao(pServidor, pDataBase, pServerType, pUserName, pPassword, pPath, pNomeArquivo, pPathChvPrv: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe 'PG'.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233.
pPath - Caminho onde o arquivo será gerado.
Ex.: c:\temp\
pNomeArquivo - Nome do arquivo que será gerado.
Ex.: TabIndiceTecnicoProducao.txt
pPathChvPrv - Caminho da chave privada da DLLSEGUR.
Ex.: S:\enterprise\chvasn1.prv.
Retorno
Em caso de sucesso a função retorna uma String vazia. Em caso de erro a função retorna "ERRO [Arquivo TabIndiceTecnicoProducao]:" + <mensagem específica de erro>.
Exemplo
Result := GeraTXT_TabIndiceTecnicoProducao('TTDB', 'totali', 'ORA', 'TOTALI122', '112233',
'C:\TEMP\', 'TabIndiceTecnicoProducao.txt', 'S:\enterprise\chvasn1.prv');
GeraTXT_IDENT_PAFECF
Objetivo
Gerar impressão, pelo ECF, de Relatório Gerencial, denominado IDENTIFICAÇÃO DO PAF-ECF.
Assinatura
function GeraTXT_IDENT_PAFECF(pServidor, pDataBase, pServerType, pUserName, pPassword, pPath, pNomeArquivo, pFilial, pPathcripto: PAnsiChar; pNroColunas: Integer; pNumLaudo, pNomeComercial, pVersaoAplPAF, pNomeEXE, pAutentica_MD5, pListaArq, pSerECF, pListaOut, pNomArqMD5, pPrincExeMD5, pPathListECF, pDataLaudo: PAnsiChar): PAnsiChar; stdcall;
Parâmetro
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe 'PG'.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233.
pPath: Caminho do arquivo.
Ex.: c:\.
pNomeArquivo: Nome do arquivo.
Ex.: IdentPAF.
pFilial: Filial.
Ex.: '001'.
pPathcripto: Caminho completo de onde está o (.aes).
Ex.: c:\IdentPaf.aes.
pNroColunas: Nº de colunas do cupom.
Ex.: 40 ou 48.
pNumLaudo: Nº do Laudo, que deverá ser extraído do Laudo de Análise do PAF-ECF.
pNomeComercial: Nome comercial, que deverá ser extraído do Laudo de Análise do PAF-ECF.
pVersaoAplPAF: Versão, que deverá ser a que está instalada no contribuinte e emitiu este Relatório Gerencial.
pNomeEXE: Principal arquivo executável, que deverá ser o instalado no PAF-ECF que emitiu este Relatório Gerencial.
pAutentica_MD5: Código de autenticação (MD-5) a que se refere o requisito IX.
pListaArq: A relação dos arquivos a que se refere o requisito IX, com os respectivos códigos MD-5.
pSerECF: Numero de fabricação (ECF).
pListaOut: Relação de outros arquivos, com os respectivos códigos MD-5.
pNomArqMD5: Nome do arquivo de autenticação MD-5.
pPrincExeMD5: Código de autenticação (MD-5) do Principal arquivo executável
pPathListECF: Path do arquivo com relação de Numero de fabricação (ECF).
pDataLaudo: Data do Laudo, que deverá ser extraído do Laudo de Análise do PAF-ECF.
Retorno
A Função retorna uma String " "(Nulo), caso ocorra algum erro retorna a mensagem de erro.
Exemplo
Como exemplo de como ficara o relatório segue arquivo: \\ttadm\Anexos_PRJ\totali\paf-ecf\DLL PAFECF\IdentPAFECF.txt
Result := GeraTXT_IDENT_PAFECF('TTORACLE', 'totali', 'ORA', 'TOTALI163', '112233', 'C:\','IdentPAFECF', '001', 'c:\IdentPaf.aes', 'c:\IdentPaf.txt', 40, '123', 'Nome Comercial', '5.0', 'Checkout.exe', 'Autentica', 'TotaliECFDLL.DLL#13#10TTSEGUR.DLL ', '123346841', 'TTBackof.exe#13#10TTOrder.exe', 'MD5PAF.TXT', 'Autentica', 'C:\RelacaoSerECF.TXT', '22/11/2016');
MesclarOrc
Objetivo
Gerar nova DAV/Pré-Venda a partir de uma lista de itens de diversas DAV/Pré-Vendas.
A mesclagem só pode ocorrer entre documentos do mesmo tipo (DAV ou Pré-Venda) e com as mesmas características: Plano, Cliente, etc.
Seguindo as regras já utilizadas pelo Checkout para resgatar múltiplas DAVs.
Retornar o novo número.
Assinatura
MesclarOrc(pServidor, pDataBase, pServerType, pUserName, pPassword, pArqItens: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233.
pArqItens - Caminho completo do arquivo que contém a lista de chaves primárias de itens de DAV/Pré-Venda.
Ex.: T:\arquivo_itens_orc.txt.
Dentro do arquivo os itens deverão vir encadeados da seguinte forma: 001,P,00000001,1; 001,P,00000001,2; 001,P,00000002,1;
Retorno
A função retorna o número da nova DAV/Pré-Venda no formato DAV<número com 10 posições> quando for DAV e PV<número com 10 posições> quando for Pré-Venda. Caso ocorra algum erro retorna a mensagem de erro.
Exemplo
Result := MesclarOrc('TTDB', 'totali', 'PG', 'TOTALI122', '112233','T:\arquivo_itens_orc.txt');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar
ImprimeDAV
Objetivo
Gerar impressão de DAV em um arquivo texto para que o Checkout e o Order possam imprimí-lo em um ECF.
Quem utiliza esse método fica responsável por gravar o COO da impressão no campo TT_ORC.COOORC.
Assinatura
ImprimeDAV(pServidor, pDataBase, pServerType, pUserName, pPassword, pPath, pNomeArquivo, pCodfil, pTipped, pNumped: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233..
pPath - Caminho onde o arquivo será gerado.
Ex.: T:\.
pNomeArquivo - Nome do arquivo com a extensão.
Ex.: DAV00000001.imp.
pCodfil - Filial do DAV.
Ex.: 001.
pTipped: 'O' ou 'S'.
pNumped - Número do DAV.
Ex.: 00000001.
Retorno
A Função retorna uma String " "(Nulo), caso ocorra algum erro retorna a mensagem de erro.
Exemplo
Result := ImprimeDAV('TTDB', 'totali', 'PG', 'TOTALI122', '112233', 'T:\', 'DAV00000001.imp', '001', 'O', '00000001');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar
GeraTXT_VendasPeriodoSintegraBD
Objetivo
Gerar arquivo texto de Vendas por Período do Sintegra
Assinatura
GeraTXT_VendasPeriodoSintegraBD(pServidor, pDataBase, pServerType, pUserName, pPassword, pFilial, pDataIni, pDataFim, pPath, pPathChvPrv, pNumLaudo: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que está conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType- Tipo do Banco.
Ex.: PG..
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233..
pFilial - Filial Cliente.
Ex.: 001.
pDataIni - Data inicial.
Ex.: 10/08/2010.
pDataFim - Data final.
Ex.: 11/08/2010.
pPath - Caminho onde o arquivo será gerado.
Ex.: T:\.
pPathChvPrv - Caminho da chave privada da DLLSEGUR.
Ex.: S:\enterprise\chvasn1.prv.
pNumlaudo - Nº do Laudo, que deverá ser extraído do Laudo de Análise do PAF-ECF.
Ex.: F8AA6388EC5F6E38403D.
Retorno
Em caso de sucesso a Função retorna uma String com o nome do arquivo gerado com o seguinte formato:
XXXnnnAAAADDMMAAAAhhmmss.txt onde: I - XXXnnnAAAA representa a numeração do laudo de que trata o § 3º da cláusula nona do Convênio ICMS 15/08; II - DDMMAAAA representa o dia, mês e ano da geração do arquivo; e III - hhmmss representa a hora, minuto e segundo da geração do arquivo.
Exemplo
Result := GeraTXT_VendasPeriodoSintegraBD('TTDB', 'totali', PG, 'TOTALI122', '112233', '001',
01/08/2010', '31/08/2010, 'T:\', 'S:\chvasn1.prv', 'F8AA6388EC5F6E38403D');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar
GeraTXT_VendasPeriodoSpedFiscalBD
Objetivo
Gera arquivo texto de Vendas por Período no layout do Ato COTEPE/ICMS 09/08 (SPED Fiscal) baseando-se em conexão com banco de dados.
Assinatura
GeraTXT_VendasPeriodoSpedFiscalBD(pServidor, pDataBase, pServerType, pUserName, pPassword, pFilial, pDataIni, pDataFim, pPath, pPathChvPrv, pNumLaudo: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que está conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Tipo do Banco.
Ex.: PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233..
pFilial - Filial Cliente.
Ex.: 001.
pDataIni - Data inicial.
Ex.: 10/08/2010.
pDataFim - Data final.
Ex.: 11/08/2010.
pPath - caminho do arquivo que será gerado.
Ex.: T:\.
pPathChvPrv - Caminho da chave privada da DLLSEGUR.
Ex.: S:\enterprise\chvasn1.prv.
pNumlaudo - Nº do Laudo, que deverá ser extraído do Laudo de Análise do PAF-ECF.
Ex.: 001.
Retorno
Em caso de sucesso a Função retorna uma String com o nome do arquivo gerado com o seguinte formato:
XXXnnnAAAADDMMAAAAhhmmss.txt onde: I - XXXnnnAAAA representa a numeração do laudo de que trata o § 3º da cláusula nona do Convênio ICMS 15/08; II - DDMMAAAA representa o dia, mês e ano da geração do arquivo; e III - hhmmss representa a hora, minuto e segundo da geração do arquivo.
Exemplo
Result := GeraTXT_VendasPeriodoSpedFiscalBD('TTDB', 'totali', 'PG', 'TOTALI122', '112233', '001', '01/08/2010', '31/08/2010', 'T:/', 'S:\chvasn1.prv', '001');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar
GeraTXT_VendasPeriodoSpedFiscalXML
Objetivo
Gera arquivo texto de Vendas por Período no layout do Ato COTEPE/ICMS 09/08 (SPED Fiscal) baseando-se em arquivos XML's.
Assinatura
GeraTXT_VendasPeriodoSpedFiscalXML(pFilial, pDataIni, pDataFim, pPath, pPathChvPrv, pNumLaudo: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pFilial - Filial Cliente.
Ex.: 001.
pDataIni - Data inicial.
Ex.: 10/08/2010.
pDataFim - Data final.
Ex.: 11/08/2010.
pPath - Caminho do arquivo que será gerado. Também é o caminho onde se encontram os arquivos XML's.
Ex.: T:\.
pPathChvPrv - Caminho da chave privada da DLLSEGUR.
Ex.: S:\enterprise\chvasn1.prv.
pNumLaudo - Nº do Laudo, que deverá ser extraído do Laudo de Análise do PAF-ECF.
Ex.: 001.
Retorno
Em caso de sucesso a Função retorna uma String com o nome do arquivo gerado com o seguinte formato:
XXXnnnAAAADDMMAAAAhhmmss.txt onde: I - XXXnnnAAAA representa a numeração do laudo de que trata o § 3º da cláusula nona do Convênio ICMS 15/08; II - DDMMAAAA representa o dia, mês e ano da geração do arquivo; e III - hhmmss representa a hora, minuto e segundo da geração do arquivo.
Exemplo
Result := GeraTXT_VendasPeriodoSpedFiscalXML('001', '10/08/2010', '11/08/2010', 'T:/', 'S:\chvasn1.prv', '001');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar
ConsultarNoBanco
Objetivo
Executar consultas no banco de dados através de uma Dll, possibilitando que o checkOut faça buscas nas bases de dados.
Assinatura
Function ConsultarNoBanco(pServidor, pDataBase, pServerType, pUserName, pPassword, pArqConsulta, pArqRetorno: PAnsiChar, pbRegistraBanco): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233.
pPath - Caminho onde o arquivo será gerado.
Ex.: T:\ArquivosDAV\.
pArqConsulta - Caminho para o arquivo que contém a consulta.
Ex.: s:\Consulta.sql
pArqRetorno - Caminho para gravar o xml de retorno.
Ex.: s:\Retorno.txt.
pbRegistraBanco - Boolean indica se registra ou não a conexão no banco de dados. Criado para permitir a utilização em bancos que não sejam do commerce.
Ex.: T
Parâmetro - pArqConsulta
O arquivo de consulta pode conter mais de um comando, para que a DLL execute cada comando separadamente, deve-se separar cada comando com um ponto e vírgula no final de cada instrução, abaixo lista de comandos que são interpretados pela DLL :
SELECT - Comandos utilizados para busca de dados, Exemplo: SELECT 'TESTE' AS COLUNAS 1 FROM DUAL;
EXECUTE - Executa funções de banco, Exemplo: EXECUTE funcaoexemplo('parâmetro1', 'parâmetro2');
ROLLBACK - Efetua um RollBack de alterações realizadas por um EXECUTE, Exemplo: ROLLBACK;
Retorno
Em caso de sucesso a Função retorna uma String com o número de registros retornados, senão retorna ERRO: mensagem.
Exemplo
Result := ConsultarNoBanco('TTDB', 'totali', 'PG', 'TOTALI122', '112233', 's:\Consulta.sql', 's:\Retorno.txt', 'T');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
ExecutarNoBanco
Objetivo
Executar funções, procedures, inserts, updates ou deletes no banco de dados através de uma Dll, possibilitando que o checkOut execute estas operações nas bases de dados.
Assinatura
Function ExecutarNoBanco(pServidor, pDataBase, pServerType, pUserName, pPassword, pTipoExecucao, pArqExecucao, pbRegistraBanco: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233.
pPath - Caminho onde o arquivo será gerado.
Ex.: T:\ArquivosDAV\.
pTipoExecucao - Tipo de execução: 'E' para Execute (funções/procedimentos), qualquer outra para DML (insert, update, delete).
Ex.: E.
pArqExecucao - Caminho arquivo com o texto da query a ser executada.
Ex.: s:\Executar.txt.
pbRegistraBanco - Boolean indica se registra ou não a conexão no banco de dados. Criado para permitir a utilização em bancos que não sejam do commerce.
Ex.: T
Retorno
Em caso de erro retorna 'ERRO: mensagem'. Se for do tipo 'E' retorna 'Função/Procedimento executado com sucesso', para outras retorna o número de linhas afetadas.
Exemplo
Result := ExecutarNoBanco('TTDB', 'totali', 'PG', 'TOTALI122', '112233', 'E', 's:\Executar.txt', 'F');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
CarregaMPBem
Objetivo
Formar conjuntos de equipamentos de informática, conforme definido nos insisos.
Assinatura
function CarregaMPBem(pCaminhoArquivoMPBem, pCaminhoRetorno, pServidor, pDataBase, pServerType, pUserName, pPassword : PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pCaminhoArquivoMPBem - Arquivo de envio que contém as vendas conforme layout abaixo.
Ex.: C:\MPBem.txt
pCaminhoRetorno - Arquivo de retorno que contém os conjuntos e os itens aproveitados conforme layout abaixo.
Ex.: C:\
pServidor - Servidor para Conexão com o Banco.
Ex.: 'TTORACLE'
pDataBase - Database para Conexão com o Banco.
Ex.: 'TTORACLE'
pServerType - Tipo do Servidor para Conexão com o Banco.
Ex.: 'ORA'
pUserName - Usuário para Conexão com o Banco.
Ex.: 'PCIA'
pPassword - Senha para Conexão com o Banco.
Ex.: '112233'
Arquivo de Envio
| Campo | Descrição | Posições | Tamanho |
|---|---|---|---|
| PRO.CODNCM | Código NCM | 0 - 8 | 8 |
| IVE.VLRMOV | Valor do Item | 9 - 24 | 16 |
| IVE.QTDMOV | Quantidade | 25 - 38 | 14 |
| IVE.NUMITE | Chave do item | 39 - 43 | 5 |
| PRO.DESMAT+PRO.ESPMAT | Descrição do produto + Especificação | 44 - 243 | 200 |
| IVE.VEN_DATHOR | Data da Venda (DD/MM/YYYY) | 244 - 253 | 10 |
| PRO.TIPMPB | Tipo do MP do Bem | 254 - 255 | 1 |
Arquivo de Retorno
| Inciso | Monitor | CPU | Teclado | Mouse | Notebook | Modem | Tablet | Smartphone | Roteador | Quantidade de Conjuntos | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Posições | 0 | 1 - 5 | 6 - 10 | 11 - 15 | 16 - 20 | 21 - 25 | 26 - 30 | 31 - 35 | 36 - 40 | 41 - 45 | 46 - 50 |
| Inciso I | 1 | ---------- | Chave do item (IVE.NUMITE) | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | 5 Posições |
| Inciso II | 2 | ---------- | ---------- | ---------- | ---------- | Chave do item (IVE.NUMITE) | ---------- | ---------- | ---------- | ---------- | 5 Posições |
| Inciso III | 3 | Chave do item (IVE.NUMITE) | Chave do item (IVE.NUMITE) | Chave do item (IVE.NUMITE) | Chave do item (IVE.NUMITE) | ---------- | ---------- | ---------- | ---------- | ---------- | 5 Posições |
| Inciso IV | 4 | ---------- | Chave do item (IVE.NUMITE) | Chave do item (IVE.NUMITE) | Chave do item (IVE.NUMITE) | ---------- | ---------- | ---------- | ---------- | ---------- | 5 Posições |
| Inciso V | 5 | ---------- | ---------- | ---------- | ---------- | ---------- | Chave do item (IVE.NUMITE) | ---------- | ---------- | ---------- | 5 Posições |
| Inciso VI | 6 | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | Chave do item (IVE.NUMITE) | ---------- | ---------- | 5 Posições |
| Inciso VII | 7 | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | Chave do item (IVE.NUMITE) | ---------- | 5 Posições |
| Inciso VIII | 8 | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | Chave do item (IVE.NUMITE) | 5 Posições |
| Aproveitados | 9 | Chave do item (IVE.NUMITE) | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | 5 Posições |
Legenda: ---------- = Não tem.
Retorno
Se o processo for concluído com sucesso o arquivo RetornoMPBem.txt será criado no caminho definido por parâmetro, em caso de erro retorna 'ERRO: mensagem'.
Exemplo Versão 5.0I ou posterior.
Result := CarregaMPBem("C:\EnviosMPBem\EnvioMPBem.txt", "C:\RetornosMPBem\",}} "TTORACLE","TTORACLE","ORA","PCIA2","112233");
Versão anterior à 5.0I.
Result := CarregaMPBem("C:\EnviosMPBem\EnvioMPBem.txt", "C:\RetornosMPBem\", "","","","","");
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
GeraArquivoCancelamentoNfe
Objetivo
Gera arquivo de cancelamento ou inutilização de NF-e de acordo com a situação da nota no banco de dados da DFE.
Disponível a partir da versão 2.6.
Assinatura
Function GeraArquivoCancelamentoNfe(pServidor, pDataBase, pServerType, pUserName, pPassword, pCodfilEmitente, pSerext, pNumnot, pDataEmissao, pJust: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233.
pCodfilEmitente - Filial do emitente da NF-e.
Ex.: "001".
pSerext - Série externa da NF-e.
Ex.: "001".
pNumnot - Número da NF-e.
Ex.: "1" ou " 1"
pDataEmissao - Data da Emissão da NF-e (DD/MM/AAAA).
Ex.: "01/01/2011".
pJust - Justificativa do cancelamento (limitar tamanho em 255 caracteres).
Ex.: "Cliente devolveu produto.".
Retorno
Em caso de erro retorna "ERRO: mensagem".
Exemplo
Result := GeraArquivoCancelamentoNfe('TTDB', 'totali', 'PG', 'TOTALI122', '112233', '001', '001', ' 1', '01/01/2011', 'Cliente devolveu produto.');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
ConsultarNoBancoAssinc
Objetivo
Executar consultas assíncronas no banco de dados através de uma Dll, possibilitando que o CheckOut faça buscas nas bases de dados.
Ao ser chamado, o método imediatamente devolve o resultado positivo ou negativo da requisição da consulta, liberando o aplicativo que chamou a consulta para realizar outras tarefas.
Em paralelo, o método cria uma thread para executar a consulta solicitada.
Disponível a partir da versão 2.5.
Assinatura
Function ConsultarNoBancoAssinc(pServidor, pDataBase, pServerType, pUserName, pPassword, pArqConsulta, pArqRetorno: PAnsiChar, pbRegistraBanco): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pPassword - Senha do usuário logado.
Ex.: 112233.
pPath - Caminho onde o arquivo será gerado.
Ex.: T:\ArquivosDAV\.
pArqConsulta - Caminho para o arquivo que contém a consulta.
Ex.: s:\Consulta.sql
pArqRetorno - Caminho para gravar o xml de retorno.
Ex.: s:\Retorno.txt.
pbRegistraBanco - Mantido por questão de compatibilidade com a função original (ConsultarNoBanco). Utilizar apenas "T". O parâmetro "F" causará um retorno com erros.
Ex.: T
Retorno
Em caso de sucesso a Função retorna uma String vazia, senão retorna ERRO: mensagem.
No XML de retorno, caso ocorra algum erro na consulta, o sistema retorna um arquivo com a seguinte estrutura:
oTable.AddField('ErroXmlDll', ftMemo); oTable.AddField('TipoXmlDll', ftString, 255);
| Coluna | Tipo |
|---|---|
| ErroXmlDll | Memo |
| TipoXmlDll | String(255) |
Exemplo
Result := ConsultarNoBancoAssinc('TTDB', 'totali', 'PG', 'TOTALI122', '112233', 's:\Consulta.sql', 's:\Retorno.txt', 'F');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
GeraTXT_Parametros_Configuracao
Objetivo
Gerar o relatório de parâmetros de Configuração conforme requisito VII, item 21.
Assinatura
GeraTXT_Parametros_Configuracao(pServidor, pDataBase, pServerType, pUserName, pPassword, pPath, pNomeArquivo, pCodfil : PAnsiChar):PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTPG
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe 'PG'.
pUserName - Usuário logado.
Ex.: TOTALI137.
pPassword - Senha do usuário logado.
Ex.: 112233.
pPath - Caminho onde o arquivo será gerado.
Ex.: T:\ArquivosDAV\
pNomeArquivo - Nome do arquivo sem a extensão.
Ex.: ParamConfig
pFilial - Filial.
Ex.: '001'
Retorno
A Função retorna uma String " "(Nulo), caso ocorra algum erro retorna a mensagem de erro.
Exemplo
Result := GeraTXT_Parametros_Configuracao('TTPG', 'totali', 'PG', 'TOTALI137', '112233','T:\','ParamConfig', '001');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar
GeraProximoNumeroSequencial
Objetivo
Gerar próximo número sequencial na tabela TT_COD, para determinada tabela.
Assinatura
GeraProximoNumeroSequencial( pServidor, pDataBase, pServerType, pUserName, pPassword, pFilcod, pCodtab, pCodser, pCodchv :PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: 'TTPG'
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: 'totali'
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe 'PG'.
pUserName - Usuário logado.
Ex.: 'TOTALI137'
pPassword - Senha do usuário logado.
Ex.: '112233'
pFilcod- Filial que deve ser gerado o próximo código.
Ex.: '001'
pCodtab - Alias da tabela que deve ser gerado o próximo código.
Ex.: 'PRO'
pCodser - Código de série.
Ex.: 'CF'
pCodchv - Chave composta do código.
Ex.: '1'
Retorno
A Função retorna uma string com o número gerado, caso ocorra algum erro retorna a mensagem de erro.
Exemplo
Result := GeraProximoNumeroSequencial('TTPG', 'totali', 'PG', 'TOTALI138', '112233','001','PRO', 'CF','1');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
ConsultarPerfilEstado
Objetivo
Verificar aplicação para funcionalidade no perfil do Estado no PAF-ECF.
A documentação da tabela completa dos perfis tratados pode ser consultada em Tabela de Perfil por UF.
Assinatura
ConsultarPerfilEstado(pFuncionalidade, pEstado: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pFuncionalidade - Funcionalidade ou Requisito que deseja verificar.
Ex.: 'EMITIRDAVNAOFISCAL'
pEstado - Estado da Filial Logada.
Ex.: 'SC'
Retorno
Em caso de sucesso a Função retorna uma string com 'T' para o estado que se aplica e 'F' para o estado que não se aplica, senão retorna ERRO [ConsultarPerfilEstado]: mensagem.
Exemplo
Result := ConsultarPerfilEstado('EMITIRDAVNAOFISCAL', 'SC');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
GeraTXT_LFD
Objetivo
Gera arquivo texto dos registros necessários para atender o Requisito X do ATO COTEPE_ICMS 9 (Item 1 ao 3), no layout do ATO COTEPE 35/05
Assinatura
GeraTXT_LFD(pServidor, pDataBase, pServerType, pUserName, pPassword, pFilial, pDataIni, pDataFim, pPath, pPathChvPrv: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor do banco de dados
Ex.: 'TTPGDESENV' .
pDataBase - Database do banco de dados
Ex.: 'totali'
pServerType - Tipo do Banco
'PG' para Postgres ou 'ORA' para Oracle
pUserName - Usuário do banco de dados
Ex.: 'TOTALI154'
pPassword - Senha do usuário
Ex.: '112233'
pFilial - Filial do cliente
Ex.: '001'
pDataIni - Data inicial
Ex.: '01/07/2014'
pDataFim - Data final
Ex.: '31/07/2014'
pPath - Caminho onde será gerado o arquivo.
Ex.: 'C:\'
pPathChvPrv - Caminho da chave privada da DLL TTSEGUR.
Ex.: 'C:\chvasn1.prv'
Retorno
Em caso de sucesso a função retorna uma String com o nome do arquivo gerado com o seguinte formato:
RelatorioFiscalDF_DDMMAAAAhhmmss.txt, onde:
I - RelatorioFiscalDF_ - texto fixo
II - DDMMAAAA - representa o dia, mês e ano da geração do arquivo
III - hhmmss representa a hora, minuto e segundo da geração do arquivo
Exemplo
Result := GeraTXT_LFD('TTPGDESENV', 'totali', 'PG', 'TOTALI154', '112233', '001', '01/07/2014', '31/07/2014', 'C:\', 'C:\chvasn1.prv');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar
ConsultarStatusNFe
Objetivo
Permitir que seja consultado o status de uma NF-e.
Assinatura
ConsultarStatusNFe(pPatNFe,pCNPJ,pSerieExt,pNumero: PAnsiChar; var pFlgNFe: Integer; var pMotivo: PAnsiChar) : PAnsiChar; stdcall;
Parâmetros
pPatNFe - Path dos arquivos da NF-e
Ex.: 'C:\ERP\' .
pCNPJ - CNPJ do emissor da nota
Ex.: '04303719000152'
pSerieExt - Série da nota
Ex.: '1'
pNumero - Número da nota
Ex.: '12345'
pFlgNFe - Indicador de status da NF-e (parâmetro de retorno passado por referência)
-1 – Retorno do status não encontrado;
0 – NF-e Não Processada;
1 – NF-e Autorizada;
2 - NF-e Rejeitada;
5 – Solicitação não enviada para SEFAZ devido a erro de conexão com o portal;
6 – NF-e Denegada;
7 – NF-e em processamento na SEFAZ;
8 – Erro de importação;
9 – Nota Fiscal aguardando verificação de status;
11 – Nota Fiscal enviada para SEFAZ, mas não foi possível obter o retorno devido à conexão com o portal.
pMotivo - Motivo do status da NF-e (parâmetro de retorno passado por referência)
Ex.: '100: Autorizado o uso da NF-e'
Retorno
Em caso de sucesso a função retorna uma String com a palavra OK, além das variáveis pFlgNFe e pMotivo, que são passados por referência por quem chama o método.
Exemplo
Result := ConsultarStatusNFe('C:\ERP\','04303719000152','1',12345,iFlgNFe,cMotivo);
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar, com exceção de pFlgNFe que é inteiro. Os dois últimos parâmetros são variáveis que guardarão o retorno do método após a execução
GeraXML_BlocoX_ReducaoZ
Objetivo
Gera arquivo eletrônico para contemplar requisito LVIII conforme leiaute estabelecido.
- O arquivo é gerado imediatamente após emissão da redução Z.
Assinatura
GeraXML_BlocoX_ReducaoZ(pServidor, pDataBase, pServerType, pUserName, pUserPassword, pFileName, pDesenvCnpj, pDesenvIE, pDesenvIM, pDesenvNome, pPAFECFNome, pPAFECFVersao, pPAFECFCredenciamento, pFilial, pNumEcf: PAnsiChar; pCNT_RZ, pCNT_RO: Integer): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI173.
pUserPassword - Senha do usuário logado.
Ex.: 112233.
pFileName - Caminho completo onde o arquivo será gerado.
Ex.: T:\BlocoX\ReducaoZ\ECF_001_RZ_1587_RO_6.xml.
pDesenvCnpj - CNPJ da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvIE - Inscrição Estadual da empresa desenvolvedora do PAF-ECF.
Ex.: 012345678901234
pDesenvIM - Inscrição Municipal da empresa desenvolvedora do PAF-ECF.
Ex.: 012345678901234
pDesenvNome - Denominação da empresa desenvolvedora do PAF-ECF.
Ex.: Nome da Empresa
pPAFECFNome - Nome Comercial do PAF-ECF.
Ex.: Nome do Sistema
pPAFECFVersao - Versão atual do PAF-ECF.
Ex.: 1.0
pPAFECFCredenciamento - Número do credenciamento do PAF-ECF na unidade federativa que autorizou seu uso.
Ex.: 1106900003000
pFilial - Filial logada.
Ex.: 001.
pNumEcf - Número do ECF utilizada.
Ex.: 001.
pCNT_RZ - Contador de redução Z a ser gerada.
Ex.: 1587.
pCNT_RO - Contador de reinicio de operação a ser gerada.
Ex.: 6.
Retorno
Em caso de sucesso a Função retorna uma String em branco.
Em caso de erro a Função retorna a String "ERRO [Arquivo Redução Z Bloco X]:" concatenada a uma mensagem mais específica de erro. Para verificar se a Função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := GeraXML_BlocoX_ReducaoZ('TTDB', 'totali', 'ORA', 'TOTALI122', '112233', 'T:\BlocoX\ReducaoZ\ECF_001_RZ_1587_RO_6.xml', '012345678901234', '012345678901234', '012345678901234', 'Nome da Empresa', 'Nome do Sistema', '1.0', '1106900003000',
'001', '001', 1587, 6);
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar, com exceção de pCNT_RZ e pCNT_RO que é inteiro.
GeraXML_BlocoX_Estoque
Objetivo
Gera arquivo eletrônico para contemplar requisito LIX conforme leiaute estabelecido.
- O arquivo é gerado imediatamente após emissão da redução Z do primeiro ECF na virada do mês, podendo ser gerado até o 5 dia útil após a virada do mês.
Assinatura
GeraXML_BlocoX_Estoque(pServidor, pDataBase, pServerType, pUserName, pUserPassword, pFileName, pDesenvCnpj, pDesenvIE, pDesenvIM, pDesenvNome, pPAFECFNome, pPAFECFVersao, pPAFECFCredenciamento, pFilial, pData: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI173.
pUserPassword - Senha do usuário logado.
Ex.: 112233.
pFileName - Caminho completo onde o arquivo será gerado.
Ex.: T:\BlocoX\Estoque\Filial_001_31082016.xml.
pDesenvCnpj - CNPJ da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvIE - Inscrição Estadual da empresa desenvolvedora do PAF-ECF.
Ex.: 012345678901234
pDesenvIM - Inscrição Municipal da empresa desenvolvedora do PAF-ECF.
Ex.: 012345678901234
pDesenvNome - Denominação da empresa desenvolvedora do PAF-ECF.
Ex.: Nome da Empresa
pPAFECFNome - Nome Comercial do PAF-ECF.
Ex.: Nome do Sistema
pPAFECFVersao - Versão atual do PAF-ECF.
Ex.: 1.0
pPAFECFCredenciamento - Número do credenciamento do PAF-ECF na unidade federativa que autorizou seu uso.
Ex.: 1106900003000
pFilial - Filial logada.
Ex.: 001.
pData - Data do Estoque.
Ex.: 31/08/2016.
Retorno
Em caso de sucesso a Função retorna uma String em branco.
Em caso de erro a Função retorna a String "ERRO [Arquivo Estoque Bloco X]:" concatenada a uma mensagem mais específica de erro. Para verificar se a Função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := GeraXML_BlocoX_Estoque('TTDB', 'totali', 'ORA', 'TOTALI122', '112233', 'T:\BlocoX\Estoque\Filial_001_31082016.xml', '012345678901234', '012345678901234', '012345678901234', 'Nome da Empresa', 'Nome do Sistema', '1.0', '1106900003000',
'001', '31/08/2016');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
GeraTXT_VendasIdentificadas
Objetivo
Gera arquivo eletrônico para contemplar o requisito VII, item 22 conforme leiaute estabelecido no anexo VI.
Assinatura
function GeraTXT_VendasIdentificadas(pServidor, pDataBase, pServerType, pUserName, pUserPassword, pFileName, pPathChvPrv, pFilial, pMes, pAno, pCNPJ_CPF, pDesenvCnpj, pDesenvIE, pDesenvIM, pDesenvNome, pDesenvUF, pPAFECFNome, pPAFECFVersao, pPAFECFLaudo: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI122.
pUserPassword - Senha do usuário logado.
Ex.: 112233.
pFileName - Caminho onde o arquivo será gerado.
Ex.: VendasIdentificadas.txt.
pPathChvPrv - Caminho da chave privada da assinatura com EAD.
Ex.: chvasn1.prv.
pFilial - Filial logada.
Ex.: 001.
pMes - Mês do movimentação (MM). O mês que será avaliado.
Ex.: 10.
pAno - Ano do movimentação (AAAA). O ano que será avaliado.
Ex.: 2016.
pCNPJ_CPF - CNPJ/CPF para filtro na geração do relatório.
Ex.: .
pDesenvCnpj - CNPJ da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvIE - Inscrição Estadual da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvIM - Inscrição Municipal da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvNome - Denominação da empresa desenvolvedora do PAF-ECF (até 40 caracteres).
Ex.: Nome da Empresa
pDesenvUF - Estado da empresa desenvolvedora do PAF-ECF.
Ex.: SC
pPAFECFNome - Nome Comercial do PAF-ECF (até 40 caracteres).
Ex.: Nome do Sistema
pPAFECFVersao - Versão atual do PAF-ECF (até 10 caracteres).
Ex.: 1.0
pPAFECFLaudo - Laudo do PAF-ECF.
Ex.: 01234567890123456789012345678901
Retorno
Em caso de sucesso a Função retorna uma String em branco.
Em caso de erro a Função retorna a String "ERRO [Arquivo Vendas Identificadas PAF-ECF]:" concatenada a uma mensagem mais específica de erro. Para verificar se a Função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := GeraTXT_VendasIdentificadas('TTDB', 'totali', 'ORA', 'TOTALI122', '112233', 'VendasIdentificadas.txt', 'chvasn1.prv', '001', '10', '2016', , '012345678901234', '012345678901234', '012345678901234', 'Nome da Empresa', 'UF', 'Nome do Sistema', '1.0', '012345678901234567890123456789012');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
AberturaCaixaOnline
Objetivo
Gera registro na tabela TT_CCX indicando abertura do caixa.
Assinatura
function AberturaCaixaOnline(pServidor, pDataBase, pServerType, pUserName, pUserPassword, pbRegistraBanco, pFilial, pNumECF, pFilUsu, pCodUsu: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI173.
pUserPassword - Senha do usuário logado.
Ex.: 112233.
pbRegistraBanco - Boolean indica se registra ou não a conexão no banco de dados.
Ex.: T
pFilial - Filial logada.
Ex.: 001.
pNumEcf - Número do ECF utilizada.
Ex.: 001.
pFilUsu - Filial do Usuário.
Ex.: 001.
pCodUsu - Código do Usuário.
Ex.: 1.
Retorno
Em caso de sucesso a Função retorna uma String em branco.
Em caso de erro a Função retorna a String "ERRO [Abertura Caixa Online]:" concatenada a uma mensagem mais específica de erro. Para verificar se a Função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := AberturaCaixaOnline('TTDB', 'totali', 'PG', 'TOTALI173', '112233', 'T', '001', '001', '001', ' 1');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
FechamentoCaixaOnline
Objetivo
Atualiza registro na tabela TT_CCX indicando fechamento do caixa e retorna se é o primeiro fechamento do dia.
Assinatura
function FechamentoCaixaOnline(pServidor, pDataBase, pServerType, pUserName, pUserPassword, pbRegistraBanco, pFilial, pNumECF, pFilUsu, pCodUsu, pDatAbe: PAnsiChar; var pPrimeiroFechamentoDia: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI173.
pUserPassword - Senha do usuário logado.
Ex.: 112233.
pbRegistraBanco - Boolean indica se registra ou não a conexão no banco de dados.
Ex.: T
pFilial - Filial logada.
Ex.: 001.
pNumEcf - Número do ECF utilizada.
Ex.: 001.
pFilUsu - Filial do Usuário.
Ex.: 001.
pCodUsu - Código do Usuário.
Ex.: 1.
pDatAbe - Data Abertura do Caixa (DD/MM/AAAA).
Ex.: 06/10/2016.
pPrimeiroFechamentoDia - Indicador de primeiro fechamento do dia (parâmetro de retorno passado por referência).
Retorno.: T ou F.
Retorno
Em caso de sucesso a Função retorna uma String em branco.
Em caso de erro a Função retorna a String "ERRO [Fechamento Caixa Online]:" concatenada a uma mensagem mais específica de erro. Para verificar se a Função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := FechamentoCaixaOnline('TTDB', 'totali', 'PG', 'TOTALI173', '112233', 'T', '001', '001', '001', ' 1', '06/10/2016', cPrimeiroFechamentoDia);
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar. O último parâmetro é variável que guarda o retorno do método após a execução.
EncodeFileBase64
Objetivo
Gerar codificação em Base64 para arquivo informado.
Assinatura
function EncodeFileBase64(pFileName: PAnsiChar; pCompactFile: PAnsiChar; pFileNameBase64: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pFileName - Caminho para o arquivo.
Ex.: File.xml.
pCompactFile - Boolean que indica se ira compactar arquivo para geração da Base64.
Ex.: T ou F.
pFileNameBase64 - Caminho para arquivo Retorno com a Base64 gerada.
Retorno.: Será criado o arquivo informado com o valor da base64 gerada.
Retorno
Em caso de sucesso a Função retorna uma String em branco.
Em caso de erro a Função retorna a String "ERRO [Encode File Base64]" concatenada a uma mensagem mais específica de erro. Para verificar se a Função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := EncodeFileBase64('File.xml', 'T', 'FileBase64.txt');
DecodeFileBase64
Objetivo
Gerar arquivo decodificação a Base64 informada.
Assinatura
function DecodeFileBase64(pDataEncode: PAnsiChar; pCompactFile: PAnsiChar; pFileName: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pDataEncode - Valor em Base64 a ser decodificado.
Ex.: ValorBase64.
pCompactFile - Boolean que indica que a Base64 foi gerada sobre arquvo compactado.
Ex.: T ou F.
pFileName - Caminho onde o arquivo será gerado.
Ex.: FileRetorno.xml.
Retorno
Em caso de sucesso a Função retorna uma String em branco.
Em caso de erro a Função retorna a String "ERRO [Decode File Base64]" concatenada a uma mensagem mais específica de erro. Para verificar se a Função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := DecodeFileBase64('ValorBase64', 'T', 'FileRetorno.xml');
GeraArquivoRequisicaoExterna
Objetivo
Gera arquivo eletrônico para contemplar o requisito VII, item 23, conforme leiaute estabelecido no Anexo VII.
Assinatura
function GeraArquivoRequisicaoExterna(pServidor, pDataBase, pServerType, pUserName, pUserPassword, pPath, pPathChvPrv, pFilial, pDia, pMes, pAno, pDesenvCnpj, pDesenvIE, pDesenvIM, pDesenvNome, pDesenvUF, pPAFECFNome, pPAFECFVersao, pPAFECFLaudo: PAnsiChar): PAnsiChar; stdcall;
Parâmetros
pServidor - Servidor que esta conectado.
Ex.: TTDB.
pDataBase - DataBase que esta conectado. Este parâmetro é informado caso o banco seja Oracle então insira o SID caso PostgreSQL insira totali.
Ex.: totali.
pServerType - Este campo indica qual Banco que esta sendo usando, portando se for Oracle informe para este campo 'ORA', se for PostgreSQL informe PG.
pUserName - Usuário logado.
Ex.: TOTALI2019.
pUserPassword - Senha do usuário logado.
Ex.: 112233.
Path - Caminho onde o arquivo será gerado.
Ex.: C:\temp\.
pPathChvPrv - Caminho da chave privada da assinatura com EAD.
Ex.: chvasn1.prv.
pFilial - Filial logada.
Ex.: 001.
pDia- Dia da requisição (DD). O dia que será avaliado (opcional).
Ex.: 01.
pMes - Mês da movimentação (MM). O mês que será avaliado (opcional, se dia não informado).
Ex.: 02.
pAno - Ano do movimentação (AAAA). O ano que será avaliado.
Ex.: 2019.
pDesenvCnpj - CNPJ da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvIE - Inscrição Estadual da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvIM - Inscrição Municipal da empresa desenvolvedora do PAF-ECF (14 caracteres com zeros à esquerda).
Ex.: 012345678901234
pDesenvNome - Denominação da empresa desenvolvedora do PAF-ECF (até 50 caracteres).
Ex.: Nome da Empresa
pDesenvUF - Estado da empresa desenvolvedora do PAF-ECF.
Ex.: SC
pPAFECFNome - Nome Comercial do PAF-ECF (até 50 caracteres).
Ex.: Nome do Sistema
pPAFECFVersao - Versão atual do PAF-ECF (até 10 caracteres).
Ex.: 1.0
pPAFECFLaudo - Laudo do PAF-ECF.
Ex.: 01234567890123456789012345678901
Retorno
Em caso de sucesso a Função retorna uma String com o nome do arquivo gerado com o seguinte formato:
ARQRE_ddmmyyyyhhnnss.txt onde:
"ARQRE_" - fixo
dd - Dia
mm - Mês
yyyy - Ano
hh - Hora
nn - Minuto
ss - Segundo
Em caso de erro a Função retorna a String "ERRO [Arquivo Requisições Externas PAF-ECF]:" concatenada a uma mensagem mais específica de erro. Para verificar se a função está com erros sugiro sempre verificar se os primeiros 4 caracteres apresentam: "ERRO".
Exemplo
Result := GeraArquivoRequisicaoExterna('TTDB', 'totali', 'ORA', 'TOTALI122', '112233', 'C:\temp', 'chvasn1.prv', '001', '01', '02', '2019', '012345678901234', '012345678901234', '012345678901234', 'Nome da Empresa', 'UF', 'Nome do Sistema', '1.0', '012345678901234567890123456789012');
Obs.: Todos os parâmetros devem ser do tipo PAnsiChar.
Alterações
Nessa seção estão relacionadas as alterações que a DLL sofreu a cada versão. Desta forma, pode-se por aqui verificar quais tratamentos passam a ser necessários em sistemas que utilizam a DLL e vão passar a utilizar uma versão mais nova.
Versão 6.10
- Inclusão do método GeraArquivoRequisicaoExterna.
Versão 6.04
- Alterações dos Métodos GeraTXT_RegistrosPAFECF, GeraTXT_RegistrosPAFECF, GeraXML_BlocoX_Estoque, GeraTXT_VendasIdentificadas, ConsultarPerfilEstado, GeraTXT_DAV_Emitidos, ImprimeDAV, GeraTXT_TabIndiceTecnicoProducao, GeraTXT_IDENT_PAFECF e GeraTXT_Parametros_Configuracao centralizando a geração em classes de serviços sendo compartilhada entre a DLL e Middleware.
- Alterações dos Métodos GeraTXT_LFD, GeraTXT_VendasPeriodoSpedFiscalBD e GeraTXT_VendasPeriodoSpedFiscalXML deixando apenas referencia dos métodos, processo foi necessário para compatibilizar DLL com serviços do Middleware, além das funções não serem mais utilizadas pelo PAFECF.
Versão 6.03
- Alteração do métodos EncodeFileBase64, retirando a variável de referente e solicitando nome do arquivo para salvar o valor da base64 gerada.
Versão 6.01
- Inclusão dos métodos EncodeFileBase64 e DecodeFileBase64.
- Ajustes na geração do BlocoX atendendo alterações internas.
Versão 6.00
- Migração da DLL para Delphi XE 7.
- Melhorias no controle de versão da DLL seguindo novo padrão Versionamento da DLL
- Inclusão dos métodos GeraXML_BlocoX_ReducaoZ, GeraXML_BlocoX_Estoque, GeraTXT_VendasIdentificadas, AberturaCaixaOnline e FechamentoCaixaOnline.
- Inclusão dos parâmetros pGeraBlocoP e pGeraBlocoE no método GeraTXT_RegistrosPAFECF.
- Alteração na Tabela de Perfil do PAF conforme ER 02.04.
- Inclusão das funcionalidade (GERAR_ESPELHO_MFD, GERAR_VENDAS_IDENTIFICADAS, GERAR_ARQ_1704, BLOQUEAR_NF_ECF_FORA, GERAR_LEITURA_MFD, GERAR_FISCO_REDUCAO_Z, BLOQUEAR_FISCO_REDUCAO_Z, GERAR_FISCO_ESTOQUE, GERAR_AUTO_REGISTROS_PAFECF, PERMITIR_TROCO_TEF) no método ConsultarPerfilEstado.
- Inclusão de verificação/validação da assinatura para dados do registro D4 do arquivos de registros do PAF gerado pela função GeraTXT_RegistrosPAFECF.
- Inclusão do parâmetro "pDataLaudo" no método GeraTXT_IDENT_PAFECF.
- Verificação/Validação da assinatura para dados do registro D2 do arquivos de registros do PAF gerado pela função GeraTXT_RegistrosPAFECF.
- Inclusão da geração do registro H2 no método GeraTXT_RegistrosPAFECF.
Versão 5.18
- Ajuste função CarregaMPBem para carregar lista de produtos disponíveis apenas quando data inferior a 01/01/2016 conforme legislação em vigor.
Versão 5.17
- Corrigido erro no processo de autenticação da conexão ao banco de dados.
Versão 5.15
- Ajuste da função GeraProximoNumeroSequencial para quando existir a funcionalidade "SAV_SEQUNI" gerar código sequencial desconsiderando Filial(pFilCod) e Chave(pCodchv) quando Tabela(pCodtab) = "SAV".
Versão 5.11
- Ajustes do retorno quando passado ao parametro "pPathListECF" no método GeraTXT_IDENT_PAFECF um arquivo inválido.
Versão 5.10
- Inclusão do parametro "pPathListECF" no método GeraTXT_IDENT_PAFECF.
Versão 5.08
- Inclusão do método ConsultarStatusNFe.
Versão 5.07
- Ajuste de erro no método CarregaMPBem ao efetuar venda com produto configurado incorretamente.
Versão 5.06
- Transformado unit TTUPerfil em uma Classe para realização da consulta do requisito.
- Corrigido controles de requisitos.
- Adicionado Tratamentos para retornar ERRO quando (parâmetros inválidos, Estado Inválido, Requisito/Funcionalidade não definido).
Versão 5.02
- Inclusão do método GeraTXT_RegistrosPAFECF.
- Exclusão do método GeraTXT_Estoque.
- Exclusão do método GeraTXT_TabProduto.
- Exclusão do método GeraTXT_Relacao_DAV_Emitidos.
- Exclusão do método GeraTXT_MovimentoECF.
- Exclusão do método GeraTXT_MeiosPagamento.
- Exclusão do método GeraTXT_Manutencao_Bombas.
- Exclusão do método GeraTXT_Controle_Encerrantes.
Versão 5.01
- Inclusão do método GeraTXT_LFD.
Versão 5.00
- Inclusão do método ConsultarPerfilEstado.
Versão 4.20
- Correção do Metodo ConsultarNoBancoAssinc quando comando passado é "EXECUTE".
Versão 4.10
- Alteração dos parâmetros da função CarregaMPBem.