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

img

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:

img

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: 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 DarumaFramework.xml).
  • pszMensagem - Mensagem Promocional em até 8 linhas.

O texto informado pode ser formatado, para isso você pode utilizar as tags de formatação D-HTML.

Nota: O método deve ser executado caso o Cupom esteja realmente em fase de finalização, assim o Cupom será finalizado para que o Cupom Adicional possa ser impresso ou não.

C (Sharp)


private void encerramentoToolStripMenuItem_Click(object sender, EventArgs e)
{
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFAbrirPadrao_ECF_Daruma();
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFVenderResumido_ECF_Daruma("F1", "4,00", "928203193", "Café");
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFVenderResumido_ECF_Daruma("F1", "2,50", "000232315", "Leite");
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFTotalizarCupomPadrao_ECF_Daruma();
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFEfetuarPagamentoPadrao_ECF_Daruma();
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFEncerrar_ECF_Daruma("1", 
    "Obrigado\nVolte Sempre!");           
}

No exemplo acima é emitido o Cupom Fiscal e finalizado com a função iCFEncerrar_ECF_Daruma com a Impressão do Cupom Adicional Simplificado.

Delphi


function iCFEncerrar_ECF_Daruma(pszCupomAdicional:string;pszMensagem:string):Integer; 
StdCall; External 'DarumaFramework.dll';
 Int_Retorno := iCFEncerrar_ECF_Daruma('1','Obrigado e volte sempre!!');

VB6


Public Declare Function iCFEncerrar_ECF_Daruma Lib "DarumaFrameWork.dll" 
(ByVal pszCupomAdicional As String, ByVal pszMensagem As String) As Integer

Private Sub TB_Numero_Item_Click()
    
    iRetorno = iCFEncerrar_ECF_Daruma(“1”, ” Obrigado e volte sempre!!”)
End Sub

A segunda maneira é após a finalização do Cupom Fiscal chamarmos o método: iCFEmitirCupomAdicional_ECF_Daruma Definição: Emite o Cupom Adicional referente ao último Cupom Fiscal emitido conforme as configurações do DarumaFramework.xml.

C (Sharp)


private void confCupomAdToolStripMenuItem_Click(object sender, EventArgs e)
{

    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFAbrirPadrao_ECF_Daruma();
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFVenderResumido_ECF_Daruma("F1", "4,00", 
    "928203193", "Café");
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFVenderResumido_ECF_Daruma("F1", "2,50", 
    "000232315", "Leite");
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFTotalizarCupomPadrao_ECF_Daruma();
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFEfetuarPagamentoPadrao_ECF_Daruma();
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFEncerrarPadrao_ECF_Daruma();

    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.regCFCupomAdicionalDllConfig_ECF_Daruma("111110111000000002000");
    DarumaFramework_Declaracoes_CSharp.iRetorno = 
    DarumaFramework_Declaracoes_CSharp.iCFEmitirCupomAdicional_ECF_Daruma();
}

Veja como foi Impresso

img img
#PraCegoVer - Transcrição dos Slides Cupom fiscal com a seguinte estrutura: RAZÃO SOCIAL no topo, Meu endereço, minha cidade e meu telefone na primeira linha. CNPJ e IE na segunda linha, IM na terceira linha, data e hora na quarta linha, CUPOM FISCAL na quinta linha. A partir daí são listados os itens e os valores
Cupom fiscal com a mesma estrutura inicial, contudo, no lugar de CUPOM FISCAL temos RELATÓRIO GERENCIAL

Delphi


function iCFEmitirCupomAdicional_ECF_Daruma(): Integer; StdCall; External 'DarumaFramework.dll';

Int_Retorno:= iCFEmitirCupomAdicional_ECF_Daruma();

VB6


Public Declare Function iCFEmitirCupomAdicional_ECF_Daruma Lib "DarumaFrameWork.dll" () As Integer

Private Sub mnuiCFEmitirCupomAdicional_ECF_Daruma_Click()
iRetorno = iCFEmitirCupomAdicional_ECF_Daruma()
End Sub