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)
[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");
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")
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');
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.
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!");
}
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ê.
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");
}
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");
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”);