Por que eu devo ler este artigo:Veja neste artigo onde vamos abordar a geração de arquivos do PAF-ECF, como arredondar e truncar itens, inclusão de logotipo e identificação de dados do consumidor.

Geração de Arquivos do PAF-ECF

Com a DarumFramework.dll você consegue gerar os arquivos do PAF-ECF de maneira rápida e fácil. Para isto desenvolvemos funções para a geração dos relatórios, contendo estes dados do ECF.

Lista de funções separadas

  • rGerarMF_ECF_Daruma - Registros: E01, E02, E03, E04, E05, E06, E07, E08, E09, E10, E11, E12 e E13.
  • rGerarMFD_ECF_Daruma - Registros: E01, E02, E14, E15, E16, E17, E18, E19, E20 e E21.
  • rGerarTDM_ECF_Daruma - Registros: E01, E02, E03, E04, E05, E06, E07, E08, E09, E10, E11, E12,E13, E14, E15, E16, E17, E18, E19, 20 E21.
  • rGerarSPED_ECF_Daruma - Registros: Algumas informações somente do Bloco C, que serão os registros 0220, C400, C405, C420, C425, C460, C470, C490 E C495(apenas para Bahia).
  • rGerarSINTEGRA_ECF_Daruma - Registros: 10, 11, 60A, 60D, 60M, 60I, 60R, 75 E 90
  • rGerarNFP_ECF_Daruma - Registros: E01, E02, E14, E15, E16, E17, E18, E19, E20 e E21.

Porém você pode optar também por gerar vários relatórios de uma só vez, como o método: rGerarRelatorio_ECF_Daruma. Onde os parâmetros são:

  • Tipo do relatório a ser gerado
  • Tipo de Intervalo (DATA, DATAM, COO ou CRZ)
  • Intervalo(Inicial)
  • Intervalo(Final)
Vejamos na pratica:
[DllImport("DarumaFrameWork.dll")] 
      public static extern int rGerarRelatorio_ECF_Daruma(string pszRelatorio, string pszTipo, 
string pszInicial, string pszFinal); 

DarumaFramework_DLL.DarumaFramework_DeclaracFramework_Declaracoes_CSharp.rGerarRelatorio_
ECF_Daruma ("NFP", "DATAM", "010911", "150911");
C#
Public Declare Function rGerarRelatorio_ECF_Daruma Lib "DarumaFramework.dll" 
(ByVal pszRelatorio As String, ByVal pszTipo As String, ByVal pszInicial As String, 
ByVal pszFinal As String) As Integer

iRetorno = rGerarRelatorio_ECF_Daruma("NFP", "DATAM", "070911", "150911")
VB6
function rGerarRelatorio_ECF_Daruma(szRelatorio:string; szTipo:string; szInicial:string;
szFinal:string): Integer; StdCall; External 'DarumaFramework.dll'; 

Int_Retorno:= rGerarRelatorio_ECF_Daruma('NFP', 'DATAM', '070911', '150911');
DELPHI

Bacana né? Agora só faltava um programa para gerar estes relatórios com interface gráfica simples, de fácil manipulação e que consiga gerar com a rapidez e eficácia da DarumaFramework.dll... Não falta mais! O GAD (Gerador de Arquivos Daruma), pessoal.

Nota:
  • Faça download do GAD(Executável):
  • Faça download do GAD(Com Fontes):

Recurso: Arredondamento e Truncamento de Itens

Já imaginou trabalhar com arredondamento e truncamento no mesmo Cupom Fiscal? Com a DarumaFramework.dll esta tarefa é possível! E de maneira muito simples de ser feita. No DarumaFramework.XML, existe uma chave chamada.

Arredondar

Para Arredondarmos o valor do item devemos manter a chave com a seguinte configuração: A. A letra “A” presente na chave, indica que o item deve ser arredondado.

Truncar

Para Truncarmos o valor do item devemos manter a chave com a seguinte configuração: T A letra “T” presente na chave, indica que o item deve ser truncado.

Esta alteração na chave pode ser feita pela função: regAlterarValor_Daruma.

Fonte em C (Sharp)

private void button1_Click(object sender, EventArgs e)
    {
        DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFAbrir_ECF_Daruma
        ("123.456.789-00", "João da Silva", "");
        DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regAlterarValor_Daruma
        ("ECF\\ArredondarTruncar", "T");
        DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFVender_ECF_Daruma
        ("F1", "3", "1,50", "D%", "0,00", "98765432109876", "UN", "REFRI COCA 600ML");
        DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regAlterarValor_Daruma
        ("ECF\\ArredondarTruncar", "A");
        DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFVender_ECF_Daruma
        ("I1", "0,676", "5,99", "D%", "0,00", "12345678901098", "KG", "CARNE MOIDA");
        DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.
        iCFTotalizarCupomPadrao_ECF_Daruma();
        DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.
        iCFEfetuarPagamento_ECF_Daruma("Dinheiro", "10,00", "");
        DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.
        iCFEncerrar_ECF_Daruma("0", "<bmp>1</bmp> Obrigada e Volte Sempre!");
        
    }
Veja o Cupom Fiscal:
img

Arredondamento e Truncamento, são mais alguns exemplos de procedimentos fáceis de serem manipulados na DarumaFramework.dll.

Recurso: Logotipo na mensagem promocional

No exemplo acima você deve ter notado o logo de nossa equipe na mensagem promocional. O logotipo na mensagem promocional é mais um recurso que só a DarumaFramework.dll disponibiliza para você.

img

Para carregar o logotipo na impressora, não é necessário ser apenas na inicialização do ECF, e nem tampouco por intervenção técnica.

O logotipo é carregado via comando, por comunicação direta ou via DarumaFramework.dll pela função: eCarregarBitmapPromocional_ECF_Daruma.

Este método nos permite a carga de bitmap promocional na impressora fiscal.

Parâmetros

pszPathLogotipo - Path com o caminho onde se encontra a imagem monocromática no formato .bmp que será carregada na Impressora.

pszNumBitmap - Índice que será inserido a imagem (pode ser de 1 até 5)

pszOrientacao - Orientação da imagem, o valor padrão deve ser colocado como "000"

Na prática:
[DllImport("DarumaFrameWork.dll")]
public static extern int eCarregarBitmapPromocional_ECF_Daruma(string pszPathLogotipo, 
string pszNumBitmap, string pszOrientacao);

private void bt_CarregarBitmap_Click(object sender, EventArgs e)
{

    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.eCarregarBitmapPromocional_ECF_Daruma
    ("C:\\logo.bmp", "1", "000");

}
C(Sharp)

No comando de finalização do Cupom Fiscal, no parâmetro da mensagem promocional indique a tag: índice da imagem e insira a imagem carregada!

Recurso: Identificação do consumidor no Começo ou no Final do Cupom Fiscal

Na DarumaFramework.dll, você tem duas maneiras para identificar o consumidor, na abertura e em qualquer parte do Cupom Fiscal! Por quê?

Porque, caso seu cliente mude de ideia, e queira o CPF no Cupom Fiscal mesmo depois de aberto, você ainda pode inserir sem ter que cancelar o cupom fiscal e iniciar novamente.

Na Abertura

Para identificarmos o consumidor na abertura do Cupom Fiscal utilizaremos o método:iCFAbrir_ECF_Daruma

Este método possui 3 parâmetros: CPF, NOME, ENDEREÇO.

Na prática

[DllImport("DarumaFrameWork.dll")]
    public static extern int iCFAbrir_ECF_Daruma(string pszCPF, 
    string pszNome, string pszEndereco);

DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = 
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFAbrir_ECF_Daruma("064.032.048-00", 
"Daruma Developer Community", "Av. Shishima Hifumi - Urbanova");
img

No cupom acima podemos observar que a passagem do CPF foi feita na abertura do Cupom Fiscal, porém com a DarumaFramework.dll você pode passar em qualquer momento, entre a abertura e a finalização do Cupom Fiscal, com a função: iCFIdentificarConsumidor_ECF_Daruma

Estes método possui 3 parâmetros como no iCFAbrir_ECF_Daruma, só que ordenados da seguinte maneira: CPF, NOME, ENDEREÇO.

Na prática:
[DllImport("DarumaFrameWork.dll")]
        public static extern int iCFIdentificarConsumidor_ECF_Daruma
        (string pszNome, string pszEndereco, string pszDoc);

DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = 
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFIdentificarConsumidor_ECF_Daruma
(“Daruma Developers Community”, “São José dos Campos”, ”45170289000125”);