Business - Automação Comercial
Obtendo informações do ECF: Darumaframework.dll
Veja neste artigo como obter informações exclusivas do ECF utilizando apenas uma função na DarumaFramework.dll.
por Daruma DeveloperOlá pessoal,
Em nosso driver darumaframework.dll, existe uma função chamada: rRetornarInformacao_ECF_Daruma, onde este método possibilita retornar do ECF mais de 170 informações diferentes. A ideia deste método é que ao invés de termos 170 métodos, teremos apenas um único método. Onde passamos o índice da informação desejada e obtemos a informação.
Esta função
possui apenas 2 parâmetros, que são:
Índice : Código
da informação desejada obter da impressora.
Retorno: Variável por referência com o tamanho de espaços
alocados para o retorno da informação.
Vejamos abaixo alguns retornos muito uteis:
Contadores:
.COO Atual
.COO Inicial(*)
.GNF
.GNF Inicial(*)
.CCF
.CCF Inicial(*)
.CVC
.GRG
.GRG Inicial(*)
.CFD
.CBP
Todas estas
informações você obtém chamando apenas um método, o
rRetornarInformacao_ECF_Daruma:
Sim, passando o Indice: 21 e uma variável por referencia com Tamanho de:
11 X 6
Exemplos:
C#
public static extern int rRetornarInformacao_ECF_Daruma(string pszIndice,
[MarshalAs(UnmanagedType.VBByRefStr)] ref string pszRetornar);
[DllImport("DarumaFrameWork.dll")]
private void button1_Click(object sender, EventArgs e)
{
string Str_indice;
string Str_Informacao = new string(' ', 66);
Str_indice = “21”;
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.rRetornarInformacao_ECF_Daruma(21,
ref Str_Informacao);
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.DarumaFramework_Mostrar_Retorno(
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno);
TB_Retorno.Text = Str_Informacao.Trim();
}
}
}
Como
mostrado acima a impressora retornou os contadores para a variável por
referencia que indicamos.
Vejamos a Leitura X:
Delphi:
function rRetornarInformacao_ECF_Daruma(pszIndice:string;pszRetornar:string):Integer; StdCall; External 'DarumaFramework.dll';
Int_Retorno := rRetornarInformacao_ECF_Daruma('21',Str_Informacao);
VB6:
Public Declare Function rRetornarInformacao_ECF_Daruma Lib "DarumaFramework.dll" (ByVal pszIndice As String,
ByVal pszRetornar As String) As Integer
Private Sub BT_Enviar_Click()
Dim Str_Indice, Str_Tamanho, Str_Informacao As String
Str_Indice = “21”
Str_Tamanho = “66”
Str_Informacao = Space(Str_Tamanho)
iRetorno = rRetornarInformacao_ECF_Daruma(Str_Indice, Str_Informacao)
DarumaFramework_Mostrar_Retorno_ECF
TB_Retorno.Text = Str_Informacao
End Sub
Viram que
bacana e simples de fazer...
Mais não para por ai! Temos também um índice interessante que é o Estado do CF / CNF.
A darumaframework.dll não retorna apenas se o cupom está aberto ou fechado não, ela possui o diferencial de
retorna em qual fase está este cupom:
Este Índice é o: 57
Tamanho: 1
Onde os Retornos são:
Estado do CF / CNF
0 = fechado
1 = CF em registro de item
2 = CF em totalização
3 = CF em pagamento
4 = CF em finalização
5 = CNF em registro de item
6 = CNF em totalização
7 = CNF em pagamento
8 = CNF em finalização
Ou também podemos utilizar o rRetornarInfomação para obter o “Tipo do Documento Atual”
Índice: 56
Tamanho: 1
Onde os Retornos
são:
0 = Nenhum documento
1= CF
2= CNF
3= CCD
4= RG
Ou todos os totalizadores:
Índice |
Tam. |
<Informação>
|
4 |
3 x 13 |
Totalizadores de Descontos + Acréscimos + Cancelamentos ICMS |
5 |
3 x 13 |
Totalizadores de Descontos + Acréscimos + Cancelamentos ISS |
6 |
20 x 13 |
Totalizador de Meios de Pagamento 01 a 20 |
7 |
13 |
Totalizador de Troco |
8 |
13 |
Totalizador Não-Fiscal de Sangria |
9 |
19 x 13 |
Totalizadores Não-Fiscais 02 a 20 |
10 |
3 x 13 |
Totalizadores de Descontos + Acréscimos + Cancelamentos Não Fiscais |
11 |
13 |
Totalizador de Descontos ICMS |
12 |
13 |
Totalizador de Acréscimos ICMS |
13 |
13 |
Totalizador de Cancelamentos ICMS |
14 |
13 |
Totalizador de Descontos ISS |
15 |
13 |
Totalizador de Acréscimos ISS |
16 |
13 |
Totalizador de Cancelamentos ISS |
17 |
13 |
Totalizador de Descontos NF |
18 |
13 |
Totalizador de Acréscimos NF |
19 |
13 |
Totalizador de Cancelamentos NF |
Conseguimos obter também dados do equipamento e dados de Usuário pelo rRetornarInformação.
Índice: |
Tamanho: |
<Informação> |
76 |
14 |
Data da primeira execução do SB |
77 |
20 |
Número de série da MFDE |
78 |
20 + 1 |
Número de fabricação do ECF |
79 |
7 |
Tipo do ECF |
80 |
20 |
Marca do ECF |
81 |
20 |
Modelo do ECF |
82 |
6 |
Código de modelo Daruma 010053 = FS600 010054 = FS2100T 010058 = FS600 USB 010059 = FS700 L 010060 = FS700 H 010061 = FS700 M 010062 = MACH 3 010063 = MACH 1 010064 = MACH 2 |
83 |
6 |
Versão do SB instalado |
84 |
6 |
Versão do SB gravado na MF |
85 |
14 |
Data da atualização da versão do SB |
87 |
48 |
Razão Social |
88 |
96 |
Nome Fantasia do Usuário |
89 |
122 |
Endereço do Usuário |
90 |
20 |
CNPJ do usuário atual |
91 |
20 |
IE do usuário atual |
92 |
20 |
IM do usuário atual |
93 |
14 + 4 + 3 |
Data + CRZ + CRO de cadastro do usuário |
94 |
2 |
Número de ordem sequencial do usuário |
95 |
2 |
Símbolo da moeda atual |
Estas e muitas outras informações do ECF, você só consegue obter através da função rRetornarInformacao_ECF_Daruma,
consulte já em nosso help a Tabela Completa) dos Retornos pela Função.
Um Abraço!
- Códigos de Barras no ECF Automação Comercial
- Gerando o SPED Automação Comercial
- Gerando o Arquivo MFD (PAF-ECF) Automação Comercial
- Desprogramando o Horário de VerãoAutomação Comercial
- Programando o Horário de VerãoAutomação Comercial