| Últimas 20 atualizações de Daruma Developer |
|
|
Olá pessoal, vamos a mais um artigo sobre automação comercial.
Na geração da maioria dos relatórios no Menu Fiscal é necessário que o arquivo seja assinado digitalmente, inserindo ao final do mesmo uma linha com o registro tipo EAD conforme especificado no
layout abaixo.
Figura 1. Registro tipo EAD.
Já imaginou o trabalho que dá para editar um arquivo, localizar a última linha e inserir logo após a assinatura do arquivo.
A única coisa que você necessita é ter o arquivo com a extensão (.key) para assinar os arquivos gerados através da DarumaFramework.dll.
Veja como gerar o arquivo.key caso você ainda não possua: http://bit.ly/wn0TZW.
A DarumaFramework.DLL pode assinar os arquivos gerados automaticamente, após sua geração ou pode assinar qualquer arquivo independente da origem.
Assinando na Geração
A própria função de geração de múltiplos arquivos possibilita a assinatura dos mesmos através de um parâmetro opcional no qual se pode passar o diretório do “arquivo.key” que carrega a chave da
assinatura.
Figura 2. Layout da Assinatura.
Como podemos observar na tabela, é só passar no parâmetro dos relatóri
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá Pessoal neste artigo vamos ver as impressoras térmicas Daruma existe a opção de programar o operador que está utilizando o ECF para que saia no cupom fiscal.
Sim! É aquele nome que sai ao final dos cupons fiscais emitidos.
Figura 1: Layout do Cupom
Hoje conheceremos as funções na DarumaFramework.DLL, para configuração e verificação do operador de caixa atual.
Configuração
Para configurar o nome do operador no cupom fiscal utilizaremos a função: confProgramarOperador_ECF_Daruma.
Parâmetros
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Já pensou em um dia seu aplicativo fiscal atender a todas as legislações estaduais de geração de arquivos sem ter que alterar nenhuma linha de código em
seu projeto?
Hoje iremos conhecer melhor as novas implementações na DarumaFramework.dll responsáveis por tal geração, que são as chaves do grupo
localizadas nas propriedades do produto ECF.
Listagem 1. Todas estas chaves estão relacionadas ao comando da emissão de Redução Z.
<REDUCAOZ>
<Relatorios></Relatorios>
<ChavePrivada></ChavePrivada>
<RetornarInformacao></RetornarInformacao>
<AvisarOperacoesReducaoZ>0</AvisarOperacoesReducaoZ>
<MensagemAviso></MensagemAviso>
<ExecutarAntesOuDepois>1</ExecutarAntesOuDepois>
<AvisarReducaoZ>0</AvisarReducaoZ>
</REDUCAOZ>
Confira abaixo a utilização de cada uma chaves.
Chave “Relatorios”
Esta é a chave que indica os relatórios que serão gerados antes ou depois da Redução Z ser realizada. A chave pode ser programada para a geração de
apenas um relatório ou de múltiplos relatórios. Quando a geração for acima de um relatório a indicação dos relatórios pode ser feita colocando um sinal “+”
para separar um relatório do outro conforme abaixo:
<Relatorios>NFP+MFD+NFPTDM</Relatorios>
Tabela com cada um dos relatórios que o método possibilita a geração:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Veja neste artigo o que é e como usar a informação estentida.
A Informação Estendida nada mais é do que uma informação extra referente ao último comando enviado, sem a necessidade de executar outros métodos, fazer cálculos ou criar rotinas para obter estas informações.
rInfoEstentida_ECF_Daruma
Parâmetros:
- Índice da Informação Desejada.
- Variável por referência para receber a resposta estendida
Vejamos na prática:
- Foi aberto o Cupom Fiscal
- Vendido o Item
- Totalizado o Cupom
- Solicitada a Resposta Estendida índice 1 (Subtotal)
Código da chamada da função de Totalização e da Informação Estendida
private void Totalizar_Click(object sender, EventArgs e)
{
string Str_ValorDescAcresc, Str_TipoDescAcresc;
Str_ValorDescAcresc = TB_ValorDescAcresc.Text.Trim();
Str_TipoDescAcresc = TB_Tipo_Desc_Acresc.Text.Trim();
StringBuilder Str_Informacao = new StringBuilder(100);
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFTotalizarCupom_ECF_Daruma
(Str_TipoDescAcresc, Str_ValorDescAcresc);
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.rInfoEstentida_ECF_Daruma
(1, Str_Informacao);
MessageBox.Show(Str_Informacao.ToString());
}
}
O que foi Impresso no Cupom Fiscal:
Figura 1: Retorno na Aplicação.
O que foi Retornado na Aplicação
Figura 2: Retorno na Aplicação.
Ai vai mais uma dica para facilitar seu desenvolvimento!
Um abraço e até a próxima!
-->">
|
|
|
|
Veja neste artigo mais um recurso que a DarumaFramework.dll disponibiliza, o recurso para atender ao padrão das unidades de medida do Inmetro.
No DarumaFramework.xml existe uma chave chamada <LegendaInmetro>, caso o valor na chave esteja igual a 0 (zero) o recurso estará desabilitado e caso esteja igual a 1 (um) habilitado.
Veja a ilustração de como funciona:
Na prática
C(Sharp)
[DllImport("DarumaFrameWork.dll")]
public static extern int regAlterarValor_Daruma(string pszChave, string
pszValor);
private void métodoRegAlterarValorECFDaruma_Click(object sender, EventArgs e)
{
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regAlterarValor_Daruma
(“ECF\LegendaInmetro", "1");
}
DELPHI:
function regAlterarValor_Daruma(pszPathChave:string,pszValor:string):Integer;
StdCall; External 'DarumaFramework.dll';
Int_Retorno:=regAlterarValor_Daruma(‘ECF\LegendaInmetro','1');
VB6:
Public Declare Function regAlterarValor_Daruma Lib "DarumaFramework.dll"
(ByVal sProduto_Chave As String, ByVal sValor As String) As Integer
Private Sub regAlterarValor_ECF_Daruma_Click(Index As Integer)
iRetorno = regAlterarValor_Daruma("ECF\LegendaInmetro", "1")
End Sub
Com este recurso fica muito mais fácil atender aos padrões do Inmetro .
Um abraço e até o próximo artigo.
-->">
|
|
|
|
Em algum cupom fiscal de uma impressora Daruma você já deve ter observado um logotipo ao lado da mensagem promocional né?
O logotipo na mensagem promocional é mais um recurso que só a DarumaFramework.dll disponibiliza.
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:
C (Sharp):
[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 <bmp> mais o índice da imagem e insira a imagem carregada!
Ex: <bmp>1</bmp>
Com isso finalizamos este artigo.
Obrigado e até o próximo.
-->">
|
|
|
|
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");
Figura 1. Layout do Cupom Fiscal.
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”);
Viu como é fácil, um abraço!
-->">
|
|
|
|
Veja neste artigo como colocar a impressão do código de barras no final do Cupom Fiscal.
A impressão de código de barras na DarumaFramework.dll, pode ser feita no encerramento do Cupom Fiscal através de tags sem que você tenha que ficar chamando vários métodos.
Por exemplo:
<ean13>valor_do_código_de_barras</ean13>
Largura do código de barra:
- TAG: <wX>
- Valores para a largura do código de barras (X): 2 a 5
- Padrão: 2
- Exemplo: <ean13><cbv><w3>123456789123</w3></cbv></ean13>
Altura do código de barra:
Valores para a altura do código de barras (X): 50 a 90
- Padrão: 50
- Exemplo: <ean13><cbv><h70>123456789123</h70></cbv></ean13>
- Formatação na Vertical:
- TAG: <cbv> Para que a DarumaFramework.dll entenda que o código de barras a ser impresso deverá estar na vertical.
Existem 13 tipos de códigos de barras diferentes para serem utilizados na mensagem promocional.
Listagem 1: Lista de códigos de barras.
<ean13>
<ean8>
<upc-a>
<code39>:
<code93><
<codabar>
<code11>
<code128>
<msi>
<i2of5>:
<i2of5>
<s2of5>
<s2of5>
Na prática:
C (Sharp):
[DllImport("DarumaFrameWork.dll")]
public static extern int iCFEncerrarConfigMsg_ECF_Daruma(stringpszMensagem);
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFEncerrar_ECF_Daruma("<ean13><cbv><h70>123456789123</h70></cbv></ean13> Volte sempre!");
No comando de finalização do Cupom Fiscal, no parâmetro da mensagem promocional indique a tag com o código de barras desejado.
Um abraço e até o próximo artigo
-->">
|
|
|
|
Já imaginou trabalhar com arredondamento e truncamento no mesmo Cupom Fiscal?
Usando a DarumaFramework.dll conseguimos fazer este trabalho sem problemas. No DarumaFramework.XML, existe uma chave chamada <ArredondarTruncar>.
Arredondar
Para Arredondarmos o valor do item devemos manter a chave com a seguinte configuração:<ArredondarTruncar>A</ArredondarTruncar>
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:<ArredondarTruncar>T</ArredondarTruncar>
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, explicada na edição anterior do Escovando Bits.
Vamos fazer o teste pratico agora!
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:
O Arredondamento e Truncamento, são mais alguns exemplos de procedimentos fáceis de serem manipulados na DarumaFramework.dll.
-->">
|
|
|
|
Olá pessoal, hoje vamos ver o que é o QT.
O QT é uma Framework multiplataforma para desenvolvimento em C++.
Com ele é possível desenvolver aplicativos e bibliotecas uma única vez e compilá-los para diversas plataformas, sem que seja necessário alterar o código fonte do projeto.
Bom, isto se a DLL utilizada também for multiplataforma, caso contrário não adianta de nada desenvolver em uma linguagem multiplataforma e sua aplicação ficar presa em um sistema operacional apenas, pois utiliza bibliotecas incompatíveis com outros sistemas operacionais.
Quando desenvolvemos a camada DarumaFramework foi exatamente nisto que pensamos, ter uma camada que rode em diversos tipos de plataformas sem que seja necessário nenhum tipo de alteração no código.
O mesmo comando que você chama na camada PHP, no JNI, na DLL do Windows, e na SO no Linux será exatamente o mesmo! Isto faz com que sua aplicação seja completamente multiplataforma.
Nossa equipe de Integração e Desenvolvimento Daruma atendeu mais um de seus feedbacks e entrega hoje o exemplo em QT, veremos um pouco abaixo porque a DarumaFramework é referencia quando o assunto é multiplataforma, como o QT.
Na hora em que a aplicação compilada em QT é executada ela necessita fazer apenas uma única verificação, se é ambiente Windows ou Linux, para que assim possa apontar o diretório da DLL ou SO.
/**
No trecho abaixo é feita a verificação se a aplicação está rodando em Linux ou Windows, para que se carregue a DarumaFramework na memória.
**/
void carregarDarumaFramework(QWidget *Janela) {
string erro = NULL;
QString ExtBiblioteca;
if(!b
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal, vamos a mais um artigo.
O Cupom Adicional é um recurso no qual conseguimos a impressão de algumas informações extras após emitir um Cupom Fiscal ou Bilhete de Passagem.
As Impressoras Fiscais tem a capacidade de armazenar informações sobre o último Cupom Fiscal em sua memória.
Existem dois tipos de Cupons Adicionais que a impressora é capaz de gerar, o simplificado e o detalhado.
Cupom Adicional Simplificado
Informações Impressas:
Número do Cupom Fiscal (CCF).
COO do Cupom Fiscal.
Cupom Adicional Detalhado
Informações Impressas:
Número do Cupom Fiscal (CCF).
COO do Cupom Fiscal.
Valor Total da Operação.
Totalizador das alíquotas utilizadas no Cupom.
Para muitos, estes comprovantes são úteis e resolvem plenamente sua necessidade de armazenas estas informações, porém, colhemos o feedback que seria interessante resgatar algumas informações extras, tanto no Cupom Fiscal quanto no bilhete de passagem. Nossa equipe atendeu o feedback e implementou na DarumaFramework.dll o Cupom Adicional que quem determina o que será impresso é você, parceiro desenvolvedor!
As informações que deverão sair ou não no Cupom Adicional ficam armazenadas em uma chave no DarumaFramework.xml, e para configurá-lo utilizaremos a função: regCFCupomAdicionalDllConfig_ECF_Daruma.
Este método permite configurar a chave no DarumaFramework.xml indicando os dados que serão impressos no cupom adicional após a emissão de cada Cupom Fiscal ou Bilhete de Passagem.
Chave no XML:
Parâmetro
String com os 21 valores com a configuração dos dados que serão impressos no Cupom Adicional.
Estes dados dos parâmetros são 21 dígitos seguindo a opção desejada conforme a tabela.
Veja abaixo a tabela:
Para a emissão do Cupom Adicional podemos utilizar duas funções na DarumaFramework.dll uma delas é o próprio método para o encerramento do Cupom Fiscal, a iCFEncerrar_ECF_Daruma.
Definição:
Este método finaliza o Cupom Fiscal, com a opção de emitir Cupom Adicional ou não e mensagem promocional.
Parâmetros:
pszCupomAdicional - Indicação através de índice se o Cupom adicional será impresso ou não.
Índices
0 - Não Imprime Cupom Adicional
1 - Imprime Cupom Adicional Simplificado (CCF e COO).
2 - Imprime Cupom Adicional Detalhado(CCF, COO, Valor do CF e Totalizadores de Alíquotas no CF).
3 - Imprime Cupom Adicional DLL(Imprime os campos conforme a configuração do DarumaFramew
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Já imaginou não ter que calcular o valor das vendas de todos os itens com descontos e acréscimos por itens, ratear descontos no Cupom Fiscal entre os itens e ficar calculando alíquotas, seria bacana não é?
Bom, existe uma função na DarumaFramework.dll que é capaz de nos devolver exatamente o valor final do cupom fiscal já com todos os cálculos necessários.
Esta função é a rCFSubTotal_ECF_Daruma.
Esta função nos devolve em uma variável por referência o Subtotal do Cupom Fiscal atual.
Utilização no C (Sharp)
//Declaração
[DllImport("DarumaFrameWork.dll")]
public static extern int rCFSubTotal_ECF_Daruma(StringBuilder pszValor);
private void BT_Tef_Click(object sender, EventArgs e)
{
StringBuilder Str_SubTotal = new StringBuilder(12);
Declaracoes.iRetorno = Declaracoes.iCFAbrirPadrao_ECF_Daruma();
Declaracoes.iRetorno = Declaracoes.iCFVenderResumido_ECF_Daruma("II", "10,00", "Bolacha", "789567893456");
Declaracoes.iRetorno = Declaracoes.iCFTotalizarCupomPadrao_ECF_Daruma();
//Após a totatalização já é possivel executar a função para obter o Subtotal.
Declaracoes.iRetorno = Declaracoes.rCFSubTotal_ECF_Daruma(Str_SubTotal);
//Acima capturamos o valor do subtotal retornado na variavel Str_SubTotal.
Declaracoes.iRetorno = Declaracoes.iCFEfetuarPagamento_ECF_Daruma("Dinheiro", Str_SubTotal.ToString(), "");
//Na função iCFEfetuarPagamento_ECF_Daruma definimos o pagamento dinheiro e o valor do cupom fiscal armezenado na variavel Str_SubTotal.
Declaracoes.iRetorno = Declaracoes.iCFEncerrarPadrao_ECF_Daruma();
}
Modo debug
Utilização no VisualBasic 6
Public Declare Function rCFSubTotal_ECF_Daruma Lib "DarumaFramework.dll" (ByVal pszValor As String) As Integer
Private Sub BT_Enviar_Click()
iRetorno = iCFAbrirPadrao_ECF_Daruma()
iRetorno = iCFVenderResumido_ECF_Daruma("F1", "10,00", "Bolacha", "789567893456")
iRetorno = iCFTotalizarCupomPadrao_ECF_Daruma()
iRetorno = rCFSubTotal_ECF_Daruma(Str_SubTotal)
iRetorno = iCFEfetuarPagamento_ECF_Daruma("Dinheiro", Str_SubTotal, "")
iRetorno = iCFEncerrarPadrao_ECF_Daruma()
End Sub
Duvidas estou à disposição.
Um abraço!
-->">
|
|
|
|
Hoje abordaremos uma função da DarumaFramework.dll bastante utilizada no desenvolvimento para o PAF-ECF na impressão de relatórios, como DAVS EMITIDOS e IDENTIFICAÇÃO DO PAF-ECF. Para emissão destes relatórios podemos
utilizar títulos específicos na impressão, que são configurados de uma maneira rápida e fácil!
Verificando os Relatórios Gerenciais cadastrados na ECF
Método para verificação: rLerRG_ECF_Daruma.
Este método retorna os Relatórios Gerenciais cadastrados na Impressora Fiscal.
pszRelatorios: Variável por referência com tamanho de 360 posições que retorna os relatórios gerenciais cadastradas na impressora.
private void métodoRLerRGECFDarumaToolStripMenuItem_Click(object sender, EventArgs e)
{
StringBuilder Str_RG = new StringBuilder(360);
Declaracoes.iRetorno = Declaracoes.rLerRG_ECF_Daruma(Str_RG);
}
Retorno
Descobrimos então os Relatórios Gerenciais existentes na impressora.
Cadastrando Relatórios Gerenciais na ECF
Para realizar estas impressões é necessário primeiramente cadastrar o nome do Relatório Gerencial desejado.
Para esta tarefa utilizaremos a função: confCadastrar_ECF_Daruma.
Parâmetros:
pszCadastrar Tipo:
- ALIQUOTA,
- TNF,
- RG,
- FPGTO,
pszValor : Descrição a ser cadastrada
pszSeparador: Separador utilizado para separar a descrição
C(Sharp)
[DllImport("DarumaFrameWork.dll")]
public static extern int confCadastrar_ECF_Daruma(string pszCadastrar, string pszValor, string pszSeparador);
private void BT_Enviar_Click(object sender, EventArgs e)
{
DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_Declaracoes_CSharp.confCadastrar_ECF_Daruma("RG", "Id. do PAF-ECF", "|");
}
Delphi
function confCadastrar_ECF_Daruma(pszCadastrar:string;
pszValor:string;pszSeparador:string): Integer; StdCall; External 'DarumaFramework.dll';
Int_Retorno:= confCadastrar_ECF_Daruma(‘RG’, ‘Ind. do PAF-ECF’, ‘|’);
VB6
Public Declare Function confCadastrar_ECF_Daruma Lib "DarumaFramework.dll" (
ByVal pszCadastrar As String, ByVal pszValor As String, ByVal pszSeparador As String) As Integer
Private Sub TB_Numero_Item_Click()
iRetorno = confCadastrar_ECF_Daruma("RG", "Id. do PAF-ECF", "|")
End Sub
Pronto! Nomea
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal,
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. Vamos lá.
Recurso: 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.
Confira a 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:
C#:
[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");
VB6:
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")
DELPHI:
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.
Faça download do GAD(Executável): http://bit.ly/tPXRS1
Faça download do GAD(Com Fontes): http://bit.ly/rANgS2
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 “
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal, Neste artigo veja 3 destaques nos recursos da DarumaFramework.dll. A DarumaFramework.dll é uma DLL de alto nível, que foi desenvolvida com o propósito de trazer facilidades em um desenvolvimento rápido e fácil, com nossos produtos. Vamosconhecer estes recursos:
1º Recurso: O XML
Este XML substitui a funcionalidade de armazenar informações ou “bits” nos registros do sistema operacional. Disponibilizando desta forma a facilidade do acesso a estas mesmas informações e na alteração da mesma, em tempo real de execução. O DarumaFramework.XML pode ser manipulado e lido sem que seja necessário a criação de rotinas na aplicação para isto, e este procedimento é feito com apenas duas funções a
regRetornaValorChave_DarumaFramework e aregAlterarValor_Daruma.
Leitura: Para obtermos valores do XML utilizaremos a função: regRetornaValorChave_DarumaFramework.
Este método retorna o valor de uma chave do registry/XML.
Parâmetros
Produto : Nome do produto. Chave : Nome da Chave Valor : Variável String por referência com 100 espaços alocados para que possa retornar na variável o valor da Chave que você deseja. C#:
[DllImport("DarumaFrameWork.dll")]
public static extern int regRetornaValorChave_DarumaFramework(string sProduto,
string sChave, [MarshalAs(UnmanagedType.VBByRefStr)] ref string szRetorno);
private void métodoRegRetornaValorECFDarumaToolStripMenuItem_Click(object sender, EventArgs
e)
{
string Str_Valor = new string(' ', 30);
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regRetornaValorChave_DarumaFramework(
"ECF", "ModoPreVenda", ref Str_Valor);
}
DELPHI:
function
regRetornaValorChave_Daruma(pszProduto:string;pszChave:string;pszValor:string):Integer;
StdCall; External 'DarumaFramework.dll';
Str_Valor := StringOFChar(#0,100);
Int_Retorno := regRetornaValorChave_DarumaFramework(‘ECF’, ‘ModoPreVenda’, Str_Valor);
VB6:
Declare Function regRetornaValorChave_DarumaFramework Lib "DarumaFramework.dll" (ByVal
sProduto As String, sChave As String, ByVal sValor As String) As Integer
Private Sub regRetornaValorChave_DarumaFramework_Click()
Dim Str_Valor As String
Str_Valor = Space(100)
iRetorno = regRetornaValorChave_DarumaFramework("ECF", "ModoPreVenda", Str_Valor)
MsgBox ("Valor da Chave = " + Str_Valor)
End Sub
//Nos exemplos acima capturamos o valor da chave “ModoPreVenda”.
Alteração:
Veremos agora como fazer a alteração de uma chave no XML com a função regAlterarValor_Daruma:
Parâmetros:
Chave: Produto e Chave a serem modificados (Ex.: ECF\ModoPreVenda). Valor: Novo valor para a Chave
C#
[DllImport("DarumaFrameWork.dll")]
public static extern int regAlterarValor_Daruma(string pszChave, string pszValor);
private void métodoRegAlterarValorECFDaruma_Click(object sender, EventArgs e)
{
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno =
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regAlterarValor_Daruma(“ECF\ModoPreVenda", "1");
}
DELPHI:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal, Todos conhecem e já devem ter ouvido falar nesta linguagem orientada a objetos,ou até mesmo teve contato prático ainda que tenha sido apenas para compilar o famoso “Hello World”.
public static void main(String[] args) {
System.out.println("Hello, world!");
}
O JAVA é muito procurado, pois ele é gratuito e uma linguagem multiplataforma,capaz de rodar em qualquer sistema
Operacional. O mesmo utiliza uma máquina virtual que pode ser emulada em qualquer sistema que suporte a linguagem C. Mas do que adianta ter uma linguagem multiplataforma que roda sem mexer em uma única linha de código nas plataformas Windows e Linux, sendo que o fabricante do seu equipamento oferece apenas uma camada para Windows? Não adianta nada, não é?
A Daruma criou a camada multiplataforma para que possa trabalhar em igualdade com seu sistema.
Aí sim vale apena utilizar uma linguagem multiplataforma,não acha? Nós também pensamos assim! E desenvolvemos estas API's para que você possa desenvolver, sem ter que se preocupar se esta em plataforma Linux ou Windows. Diagrama JNI / JNA

Hoje, vamos ver o quando é fácil fazer um Cupom Fiscal no Java utilizando a camada JNA.
Primeiramente crie um novo projeto. 
Agora baixe o driver JNA em nosso site: http://www.desenvolvedoresdaruma.com.br 
O conteúdo da pasta vem zipado, extraia estes arquivos. 
Retorne ao Projeto Java, clique com o botão direito em Bibliotecas e em seguida clique em Adicionar JAR/pasta... ![]()
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Perda de Comunicação? Você já deve ter recebido umadaquelas ligações onde seu cliente diz que seu aplicativo não esta comunicandocom a sua impressora, certo? A primeira coisa que vocêpensa é: -Poxa, o sistema estáfuncional em todos os clientes! Vai ter que continuar funcionando lá também, amenos que seja um problema na impressora. Às vezes o problema é tãosimples e não enxergamos, procurando nos lugares mais complexos e fazendo avarredura em pontos que consideramos críticos. É quando vem à decepção, dedescobrir que o problema era algo muito simples. Abaixo seguem alguns problemassimples de resolver e que podem ocasionar na perda de comunicação com oaplicativo. Porta do Fisco Um erro muito comum deacontecer, é na limpeza da bancada ou a mesa do caixa, serem retirados os cabosda Impressora e na hora de montar novamente, ligar o cabo serial na Porta doFisco ocasionando na perda de comunicação com a aplicação. 
Configurando a Velocidade doEquipamento Outro ponto importante, éequalizar a velocidade do equipamento, com a velocidade da configuração daporta no computador, pois isto pode acarretar na perda de comunicação entre aaplicação e o equipamento. Para configurar a velocidadena impressora, não é necessário intervenção técnica, e nenhum programaespecífico. Esta configuração pode ser feita pelo próprio painel da impressora. Siga atentamente os seguintespassos: · Desligar o ECF · Ligar o ECF pressionando a tecla "AVANÇO" localizada nopainel do ECF 
· 5 toques na tecla “SELEÇÃO” localizada no painel do ECF · 1 Toque na Tecla "CONFIRMA" localizada no painel do ECF E será impresso o seguintemenu:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal,
Neste escovando Bits
conheceremos um pouco melhor sobre a linha de Impressoras Não-Fiscais Térmicas.
DR700(L, M, H e SN).
As impressoras Não-Fiscais são utilizadas para vários propósitos, para emissão
de senhas relatórios, comandas, para estados que não é exigido o PAF-ECF como
impressora de comprovante, ou para alguns estados que é permitido, utilizada
para impressão de DAV’s.
Bom, a Impressora Não Fiscal
tem vários propósitos e utilizações.
Por exemplo:
Ficar em uma cozinha, onde
quando o garçom lance o pedido em um terminal móvel imediatamente seja impresso
na cozinha pela DR700.
E por ai vai...
A DR700 existe em 3 versões:
.L - Low
.M - Medium
.H - High
.SN – Senha
Veja todas as Certificações / Compatibilidades da
DR700:
http://www.daruma.com.br/ddcmkt/ddcmkt_008_09.html
As impressoras versões M e H
são equipadas com o Recurso “Modo
Gráfico”.
Este modo nos permite trabalhar com impressões gráficas e mais detalhadas, como
dito o próprio nome.
Diferenças técnicas entre os Modelos:
DR 700 L ou LP:
Velocidade de Impressão: 150 mm/s
Impressão:
72 mm (576 pontos)
Número de
Colunas: Normal - 48, Elite - 40, Condensado – 57
DR 700 M:
Velocidade de Impressão: 200 mm/s
Impressão:
72 mm (576 pontos) ou 78 mm (624 pontos), selecionável por comando
Número de
Colunas: Normal - 52 ou 48, Elite - 44 ou 40, Condensado - 62 ou 57
DR 700 H:
Velocidade de Impressão: 300 mm/s
Impressão:
72 mm (576 pontos) ou 78 mm (624 pontos), selecionável por comando
Número de
Colunas: Normal - 52 ou 48, Elite - 44 ou 40, Condensado - 62 ou 57
DR 700 SN:
Velocidade de Impressão: 150 mm/s
Impressão:
72 mm (576 pontos) ou 78 mm (624 pontos), selecionável por comando
Número de
Colunas: Normal - 52 ou 48, Elite - 44 ou 40, Condensado - 62 ou 57
Obs. Layout do cupom de senha configurável: Imprime Data e Hora, Texto Livre,
Logotipo e Configura a fonte dos caracteres e atributos de impressão.
Todas as versões são equipadas com a tecnologia de cabeça térmica e sensores de
fim de papel.
As impressoras Não-Fiscais podem ser utilizadas via (Serial ou USB), e sua
comunicação com o computador ou Tablet pode ser feita através da Comunicação
direta, via driver Spooler que configura a mesma como uma impressora sistema do
operacional ou via darumaframework.dll.
Todas as versões são compatíveis com Windows e Linux.
Trabalhando com as Impressora DR700 na
prática
Comunicação
direta:
Vamos testar a DR700 através da comunicação direta com a porta de
comunicação.
-Abra o MS-DOS
-Vamos configurar a velocidade na qual nossa impressora se encontra no MS-DOS,
para isto digite o seguinte comando:
mode
:,n,8,1 [Pressione Enter para enviar o Comando]
Ex:
mode com1:115200,n,8,1 [Tecla Enter]
-Em seguida será exibido um menu com o Status atual das configurações da porta:

Como exemplo de envio de dados a serem impressos
pela impressora, utilizarei o comando dir>com1.
Este comando envia para impressora a listagem do diretório atual no qual
estamos trabalhando no MS-DOS.
No caso da Janela abaixo: “C:\Users\SUPORTE”

Pronto, impressão enviada diretamente para porta, realizada com sucesso!
Genérico Somente Texto: Para instalação do Driver Genérico Somente Texto acesse já nosso manual explicativo e veja como é fácil:
Windows XP: www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/STKs/Daruma_GenericoTexto.pdf
Windows Seven/Vista www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/STKs/Daruma_GenericoTextoWin7.pdf Driver Spooler (versões H / M)
Veja um exemplo da impressão utilizando o recurso de Modo Gráfico pelo Driver Spooler:

Para utilização do driver
Spooler que nos possibilita a utilização do modo Gráfico faça já o download do
driver:
http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/Drivers/Daruma_Spooler_XP.zip
Utilização com a Dll
darumaframework.dll:
A Daruma foi a primeira marca a implementar o recurso de formatação D-HTML,
como no HTML a dll reconhece as tags para formatações e recursos na impressão,
como: Centralização, Impressão de Código de Barras, Salto de Linha, Negrito e
Itálico.
Veja todos os comando D-HTML:
Formatação e Impressão de Textos:
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal,
Quando o assunto é
Homologação de TEF, passam varias preocupações na cabeça do desenvolvedor, uma
delas é a impressão da resposta da
operadora do cartão (bandeira).
Abrir o arquivo, buscar o campo a
ser impresso, controlar a impressão por linhas em um relatório gerencial,
tratar os erros nos testes de desligamento etc... São varias coisas que você
desenvolvedor não necessita mais se preocupar!
É isto ai!
Hoje conheceremos
melhor o recurso, ou a função iTEF_ImprimirResposta_ECF_Daruma.
Com esta função você passa apenas o
PATH onde este arquivo de resposta “IntPos.001” se encontra, e a função
iTEF_ImprimirResposta_ECF_Daruma imprime pra você o arquivo! Esta função também
lhe permite travar o teclado e devolve se a impressão foi realizada com sucesso
ou não.
Caso não tenha tido sucesso no envio você deverá proceder os
passos do TEF, continuar impressão sim, ou não... E pode verificar os erros com
nosso tratamento de retornos.
Parâmetros:
szArquivo = Caminho
completo + nome do arquivo que você deseja imprimir:
"C:\TEF_DIAL\RESP\INTPOS.001
bTravarTeclado = Função
do tipo: Int/Boolean
1 - True - Trava Teclado
0 - False - Não Trava Teclado
Forma de Pagamento= Forma de Pagamento referente ao ultimo Cupom
Fiscal (No caso de transação com múltiplos cartões chamar a função na ordem)
Valor do Pagamento= Valor do pagamento TEF.
Vejamos na prática:
C#:
Declaração:
[DllImport("DarumaFrameWork.dll")]
public static extern int iTEF_ImprimirResposta_ECF_Daruma(String szArquivo, Boolean bTravarTeclado);
Emissão do Cupom Fiscal:
private void BT_CupomFiscal_Click(object sender, EventArgs e)
{
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFAbrirPadrao_ECF_Daruma();
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFVenderResumido_ECF_Daruma("II", "0,10", "Produto Teste", "789567893456");
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFTotalizarCupomPadrao_ECF_Daruma();
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFEfetuarPagamentoFormatado_ECF_Daruma("MasterCard", "00000100");
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iCFEncerrarPadrao_ECF_Daruma();
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.DarumaFramework_Mostrar_Retorno(DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno);
}
// No código acima foi
emitido um cupom fiscal, onde utilizei a forma de pagamento MasterCard para o
pagamento de 1,00R$.
private void BT_Tef_Click(object sender, EventArgs e)
{
String diretorio= "C:/Tef_Dial/Resp/Intpos.001";
DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iTEF_ImprimirRespostaCartao_ECF_Daruma(diretorio, true, "MasterCard", "00000100"
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Introdução
O GAD é um software que tem a funcionalidade de gerar arquivos referentes ao PAF-ECF. Este aplicativo foi desenvolvido pela equipe de integração e desenvolvimento Daruma com o propósito de ser utilizado como um exemplo de apoio para o desenvolvedores,e uma ferramenta de geração rápida e de interface gráfica mais simples para os clientes dos desenvolvedores. É possível também baixar todos os fontes deste aplicativo gratuitamente em nosso site para uma possível implementação em seu sistema.
Premissa: Oaplicativo GAD é compatível somente para o modelo de impressora térmicas(FS600,FS700, MACH e FS2100T.
Paraobter o executável do GAD acesse o link: http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/Utilitarios/GAD_Delphi7exe.zip Oupara baixar a versão com fontes acesse:
http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/Utilitarios/GAD_Delphi7.zip Instalandoe utilizando o GAD
1) Descompacte o arquivo “GAD_Delphi7exe.zip”;
2) Localize o arquivo executável GAD.exe e dê um duplo clique sobre ele, 
irá aparecer uma tela pedindo as informações para configuração como na telaabaixo:

Com oGAD você consegue obter em seu menu extra que se encontra na parte inferior,diversas informações uteis sobre seu ECF, como: Se ele está Online, (COO, CCF eCRZ atuais), Data/Hora do ECF, Data do Movimento, Data/Hora do computador,Modelo da ECF, Numero de serie, Porta e Velocidade do ECF e até mesmo se existeou não Redução Z pendente! 
3) Naparte “Relatórios” você irá escolher o relatório que será gerado. EX: NotaFiscal Paulista.
EspelhoMemoria Fita Detalhe Registros:Espelho de todos os documento emitidos pela impressora no intervalo solicitado. Nomedo Arquivo: ESPELHO_MFD.TXT
Espelhoda Memoria Fiscal Completa
Registros: Geraum arquivo com a leitura da memória fiscal completa, e seus totalizadores diários.
Nomedo Arquivo: retorno.TXT Espelhoda Memoria Fiscal Simplificada Registros: Geraum arquivo com a leitura da memória fiscal simplificada, e os totalizadores finais do movimento solicitado. Nome do Arquivo: retorno.TXT ArquivoMF Registros: E01,E02, E03, E04, E05, E06, E07, E08, E09, E10, E11, E12 e E13. Nomedo Arquivo: ATO_MF_DATA.TXT ArquivoMFD Registros: E01,E02, E14, E15, E16, E17, E18, E19, E20 e E21. Nomedo Arquivo: ATO_MFD_DATA.TXT ArquivoTDM Registros: E01,E02, E03, E04, E05, E06, E07, E08, E09, E10, E11, E12,E13, E14, E15, E16, E17,E18, E19, 20 E21. Nomedo Arquivo: ATO_TDM_DATA.TXT ArquivoNFP Registros: E01,E02, E14, E15, E16, E17, E18, E19, E20 e E21. Nome do Arquivo: formato FFM12345.DMA, onde FF é a identificação do fabricante (DR no caso da Daruma), M é a identificação do modelo do ECF, 12345 são os 5 últimos caracteres do número de fabricação do ECFe DMA é a identificação do dia, mês e ano do movimento codificados com números de 1 a 9 e letras de A a Z.
ArquivoNFPTDM Registros: E01,E02, E03, E04, E05, E06, E07, E08, E09, E10, E11, E12,E13, E14, E15, E16, E17,E18, E19, 20 E21. Nome do Arquivo: formato FFM12345.DMA, onde FF é a identificação do fabricante (DR no caso da Daruma), M é a identificação do modelo do ECF, 12345 são os 5 últimos caracteres do número de fabricação do ECFe DMA é a identificação do dia, mês e ano do movimento codificados com números de 1 a 9 e letras de A a Z.
ArquivoSINTEGRA Registros: 10,11, 60A, 60D, 60M, 60I, 60R, 75 E 90 Nome do Arquivo: SINTEGRA.TXT
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
| |
|