Caso não consiga ver as imagens deste e-mail, clique aqui.

Prezados Escovadores de Bits, a promessa foi realizada no Technology Day, o feedback foi implementado e a entrega foi realizada!!! Já está disponível em nosso site, a versão 08.02.27 da DarumaFrameWork Windows e Linux que resolve os problemas de cálculo e necessidade de codificação e controle para a lei do imposto, a lei 12.741. Recebemos vários feedbacks, mostramos uma previa disso no Daruma Technology Day, prometemos a entrega e agora já está disponível.

Clique na imagem abaixo e assista o vídeo explicando como realizar o cálculo no seu sistema, mas isso traz uma série de dores que recebemos como feedback dos desenvolvedores, sendo elas:

  • Média de Impostos – a cada item vendido você deverá calcular o valor de imposto a ser pago e a média de imposto(porcentagem) de acordo com a tabela de NCM. Isso seria simples se não houvesse cancelamento parcial de itens no cupom fiscal e que estes itens tiveram desconto de 7,52%. O cálculo de imposto vai se complicando e cada item vendido é uma nova situação a ser tratada, calculada e armazenada para uso futuro. Deve ser considerado também as ações de desconto e acréscimo dadas no subtotal do cupom. Sendo assim, toda vez que você fizer um cancelamento total, parcial, desconto no item, desconto no subtotal, acréscimo de item ou subtotal, cancelamento de desconto e cancelamento de acréscimo o calculo do imposto deverá ser refeito. Após todos os cálculos, no final do cupom, você deverá mostrar a mensagem “Valor Aprox. Tributos R$33,28 e 27,43%”, por exemplo.
  • Valor de imposto armazenado – como se os motivos acima já não bastassem para caracterizar o trabalho a ser feito, pense em como você faria para retornar o valor do primeiro item apenas. Pensou? Trabalhoso né?! Neste caso o imposto de cada item deverá ser armazenado separadamente, para que haja uma consulta futura.
  • Pensando nessas dores, nós criamos dois métodos fantásticos que resolvem todos os problemas listados acima.
    Vamos conhecê-los já!
  • confCFNCM_ECF_Daruma – este método é responsável por receber o Código NCM do item para que a DarumaFramework busque na tabela auxiliar de NCM qual é o percentual aproximado do imposto para o item que será vendido.
  • rCFVrImposto_ECF_Daruma – este método retorna o valor aproximado e percentual de impostos. Permite também que você defina se o valor de imposto retornado será total ou de um determinado item do cupom fiscal. Este método pode ser executado após a primeira venda de item do cupom fiscal.

...Curti os métodos! Porém, não sei em que lugar do meu sistema devo colocá-los. Me explica como fazer?

  • Claro!! Vamos aprender agora, qual é o esquema funcional destes métodos, ou seja, em que momento
    devemos usá-los. Acompanhem o diagrama abaixo:
  • Acima estão dois diagramas representando como é um cupom com e sem a Lei 12.741. Observem que o método confCFNCM_ECF_Daruma deve ser usado antes da venda de itens e a consulta do valor de imposto pode ser feita após a primeira venda de item. A consulta é feita com o método rCFVrImposto_ECF_Daruma.

…Como a Daruma vai me ajudar com a Lei de Olho no Imposto?

  • O primeiro passo para conhecer nossa solução é clicar aqui fazer download do executável em Delphi 7.
  • Após o download, extraia o pacote para criar a pasta “DarumaFramework_Delphi7exe”.
  • Agora cadastre-se no site do IBPT para receber a tabela de NCM e manual de integração.
    http://deolhonoimposto.ibpt.com.br/
  • Depois do cadastro, você receberá um email com o link para download da tabela NCM no formato IBPT, nós vamos usar esta tabela.
  • Após o download da tabela NCM, coloque-a dentro da pasta do exemplo em Delphi.
    Veja o exemplo:
  • Por padrão a DarumaFramework “procura” pelo arquivo IBPTTAX.csv.
  • Execute o “DarumaFramework_Delphi.exe”.
  • Será exibida uma janela com vários botões, clique em “Impressoras Fiscal”.
    Veja o exemplo:
  • Na janela que se abriu, clique no menu “Registry” -> submenu “ECF” -> “Método regAlterarValor_Daruma”.
    Veja o exemplo:
  • Após clicar no método, preencha a caixa de texto com a chave do arquivo DarumaFramework.xml, como
    está na imagem de exemplo.
    Veja o exemplo:
  • Clique em “OK”. Uma nova janela será aberta. Digite o valor “1” e clique em “OK”.
    Veja o exemplo:
  • O método será executado e você receberá um retorno.
    Veja o exemplo:
  • O que nós fizemos agora foi configurar a DarumaFramework para imprimir a mensagem “Valor Aprox Tributos R$0,03( 30,00% ) Fonte: IBPT” no inicio da mensagem promocional do cupom fiscal.
  • Vá para o menu “Cupom Fiscal” -> submenu “Abertura do Cupom Fiscal” -> “Método iCFAbrirPadrão_ECF_Daruma”.
    Veja o exemplo
  • Seu cupom fiscal foi aberto e uma mensagem apareceu na tela.
    Veja o exemplo:
  • Agora clique no menu “Lei DE OLHO no Imposto” -> “Método confCFNCM_ECF_Daruma”.
    Veja o exemplo:
  • Uma nova janela será aberta, preencha o campo “Código NCM:” com o NCM do produto que você vai vender.
    Veja o exemplo:
  • Agora preencha o campo “Tipo:” com 0 para Produto Nacional ou 1 para Produto Importado.
    Veja o exemplo:
  • Observação: Note que o produto ainda não foi vendido, o “Código NCM” e “Tipo do NCM” devem ser informados ANTES da venda do item que você vai fazer.
  • Após preencher “Código NCM” e “Tipo NCM” clique no botão “Enviar” para executar o comando.
  • Você receberá uma resposta da execução do comando.
    Veja o exemplo:
  • O próximo passo é seguir a sequencia do cupom fiscal, que é vender o item.
  • Clique no menu “Cupom Fiscal” -> submenu “Registro Item” ->
    “Método iCFVenderResumido_ECF_Daruma”.
    Veja o exemplo:
  • Na próxima janela preencha os campos “Alíquota”, “Valor Unitário”, “Código de Item” e “Descrição”.
    Veja o exemplo:
  • Após preencher os campos, clique no botão “Enviar” para efetuar a venda do item.
  • Você receberá uma mensagem de retorno na tela.
    Veja o exemplo:
  • Clique no menu “Cupom Fiscal” -> submenu “Totalização do Cupom Fiscal” -> “Método iCFTotalizarCupomPadrão_ECF_Daruma”.
    Veja o exemplo:
  • A totalização do cupom fiscal foi realizada, você receberá uma mensagem de retorno.
    Veja o exemplo:
  • O passo seguinte é clicar no menu “Cupom Fiscal” -> submenu “Encerramento de Cupom Fiscal” -> “Método iCFEncerrarResumido_ECF_Daruma”
    Veja o exemplo:
  • Seu Cupom Fiscal foi finalizado! Você receberá uma mensagem de retorno
    Veja o exemplo:
  • Importante: O método iCFEncerrarResumido_ECF_Daruma faz com que o cupom fiscal seja pago e encerrado da maneira “Padrão”, ou seja, pago de forma total com dinheiro e encerrado sem mensagens promocionais.
  • Abaixo está o Cupom fiscal impresso com a mensagem exigida pela Lei 12.741.
  • Escovador de Bits, note que o ÚNICO comando que você deverá inserir em sua aplicação é o confCFNCM_ECF_Daruma, para que o NCM e Tipo do NCM seja informado. O restante do cupom fiscal que sua aplicação faz continua como é hoje. Fique tranquilo quanto a isso!
  • Gostaram da solução que nós estamos aprendendo? Aposto que sim!

... Daruma Social Developer, é possível eu obter o valor do imposto que será pago e mostrado no cupom fiscal?”

  • É possível sim e é muito fácil. Basta usar o comando rCFVrImposto_ECF_Daruma em qualquer momento que você desejar após a emissão do primeiro item do cupom fiscal. Isso quer dizer que você poderá executar este método em qualquer etapa do cupom fiscal, após a venda do primeiro item, seja uma nova venda de item, a totalização, pagamento ou encerramento do cupom fiscal.
  • Emita um cupom fiscal usando o código NCM, como fizemos nos passos anteriores. Você pode definir a quantidade de itens no cupom fiscal.
  • Após a emissão do cupom fiscal, clique no menu “Lei DE OLHO no Imposto” -> “Método iCFVrImposto_ECF_Daruma”.
    Veja o exemplo:
  • Na próxima janela preencha o campo “Número do Item” com o item que você deseja consultar o valor do imposto. Se for digitado 0, será mostrado o valor de imposto total a ser pago no cupom fiscal corrente, ou seja, o cupom fiscal que está aberto
    Veja o exemplo:
  • Clique no botão “OK” para executar o método rCFVrImposto_ECF_Daruma.
  • Após a execução, você receberá uma mensagem com o valor dos impostos que consultou.
    Veja o exemplo:
  • O retorno foi 0,06;30,00. Isso significa que foi pago R$ 0,06 de imposto e a porcentagem de imposto é 30,00%.
    Neste exemplo foram vendidos dois itens de R$ 0,10 cada.
  • Após a mensagem que informa o valor pago e alíquota de imposto, aparecerá uma mensagem de retorno, clique em “OK” e siga em frente.
    Veja o exemplo:
  • Faça bom proveito deste comando, será bastante útil.
  • Lembre-se: Você poderá executar este método em qualquer etapa do cupom fiscal, após a venda do primeiro item, seja uma nova venda de item, a totalização, pagamento ou encerramento do cupom fiscal.

... Como preparar minha aplicação para atender a Lei 12.741?

  • Simples! A emissão de cupom fiscal seu sistema já faz, correto?! Então basta executar o comando confCFNCM_ECF_Daruma antes de cada venda de item, só isso! Caso você deseje consultar o valor de imposto pago use o método rCFVrImposto_ECF_Daruma após a venda do primeiro item.
  • Vamos codificar!

Delphi

//Declarações

function iCFAbrirPadrao_ECF_Daruma: Integer; StdCall; External 'DarumaFramework.dll';

function confCFNCM_ECF_Daruma(pszCodigoNCM: string; pszTipo:string): Integer; StdCall; External 'DarumaFramework.dll';

function iCFVenderResumido_ECF_Daruma(pszCargaTributaria:String; pszPrecoUnitario:String; pszCodigoItem:String; pszDescricaoItem:String): Integer; StdCall; External 'DarumaFramework.dll';

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

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

function rCFVrImposto_ECF_Daruma(pszNumItem: string; pszValorImposto:string): Integer; StdCall; External 'DarumaFramework.dll';

//Chamada de Métodos

iRetorno := iCFAbrirPadrao_ECF_Daruma();

iRetorno := confCFNCM_ECF_Daruma(‘1012100’, ‘0’);

iRetorno := iCFVenderResumido_ECF_Daruma(‘II’, ‘0,10’, ‘7896230301146’, ‘Bolacha’); iRetorno := iCFTotalizarCupomPadrao_ECF_Daruma(); iRetorno := iCFEncerrarResumido_ECF_Daruma();

//Chamada de Método Retornar Valor Imposto

Str_ValorImposto := StringOfChar(#0,300); iRetorno := rCFVrImposto_ECF_Daruma(‘0’, Str_ValorImposto);

C#

//Declarações

[DllImport("DarumaFrameWork.dll")]

public static extern int iCFAbrirPadrao_ECF_Daruma();

[DllImport("DarumaFrameWork.dll")]

public static extern int confCFNCM_ECF_Daruma(string pszCodigoNCM, string pszTipo);

[DllImport("DarumaFrameWork.dll")]

public static extern int iCFVenderResumido_ECF_Daruma(string pszCargaTributaria, string pszPrecoUnitario, string pszCodigoItem, string pszDescricaoItem);

[DllImport("DarumaFrameWork.dll")]

public static extern int iCFTotalizarCupomPadrao_ECF_Daruma();

[DllImport("DarumaFrameWork.dll")]

public static extern int iCFEncerrarResumido_ECF_Daruma();

[DllImport("DarumaFrameWork.dll")]

public static extern int rCFVrImposto_ECF_Daruma(string pszNumItem, StringBuilder pszValorImposto);

//Chamada de Métodos

iRetorno = iCFAbrirPadrao_ECF_Daruma();

iRetorno = confCFNCM_ECF_Daruma(“1012100”, “0”);

iRetorno = iCFVenderResumido_ECF_Daruma(“II”, “0,10”, “7896230301146”, “Bolacha”);

iRetorno = iCFTotalizarCupomPadrao_ECF_Daruma();

iRetorno = iCFEncerrarResumido_ECF_Daruma();

//Chamada de Método Retornar Valor Imposto

StringBuilder Str_ValorImposto = new StringBuilder();

iRetorno = rCFVrImposto_ECF_Daruma(“0”, Str_ValorImposto);

Visual Basic 6

//Declarações

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

Public Declare Function confCFNCM_ECF_Daruma Lib "DarumaFrameWork.dll" (ByVal pszCodigoNCM As String, ByVal pszTipo As String) As Integer

Public Declare Function iCFVenderResumido_ECF_Daruma Lib "DarumaFrameWork.dll" (ByVal Aliq As String, ByVal PrecoUn As String, ByVal CodItem As String,
ByVal DescricaoItem As String) As Integer

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

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

Public Declare Function rCFVrImposto_ECF_Daruma Lib "DarumaFrameWork.dll" (ByVal pszNumItem As String, ByVal pszValorImposto As String) As Integer

//Chamada de Métodos iRetorno = iCFAbrirPadrao_ECF_Daruma()

iRetorno = confCFNCM_ECF_Daruma(“1012100”, “0”)

iRetorno = iCFVenderResumido_ECF_Daruma(“II”, “0,10”, “7896230301146”, “Bolacha”)

iRetorno = iCFTotalizarCupomPadrao_ECF_Daruma()

iRetorno = iCFEncerrarResumido_ECF_Daruma()

//Chamada de Método Retornar Valor Imposto Str_ValorImposto = Space(300)

iRetorno = rCFVrImposto_ECF_Daruma(“0”, Str_ValorImposto)

VB.Net

//Declarações

<DllImport("DarumaFrameWork.dll")> _

Public Shared Function iCFAbrirPadrao_ECF_Daruma() As Integer

End Function

<DllImport("DarumaFrameWork.dll")> _

Public Shared Function confCFNCM_ECF_Daruma(ByVal pszCodigoNCM As String, ByVal pszTipo As String) As Integer End Function

<DllImport("DarumaFrameWork.dll")> _

Public Shared Function iCFVenderResumido_ECF_Daruma(ByVal pszCargaTributaria As String, ByVal pszPrecoUnitario As String, ByVal pszCodigoItem As String, ByVal pszDescricaoItem As String) As Integer

End Function

<DllImport("DarumaFrameWork.dll")> _

Public Shared Function iCFTotalizarCupomPadrao_ECF_Daruma() As Integer End Function

<DllImport("DarumaFrameWork.dll")> _

Public Shared Function iCFEncerrarResumido_ECF_Daruma() As Integer End Function

<DllImport("DarumaFrameWork.dll")> _

Public Shared Function rCFVrImposto_ECF_Daruma(ByVal pszNumItem As String, ByVal pszValorImposto As StringBuilder) As Integer End Function

//Chamada de Métodos

iRetorno = iCFAbrirPadrao_ECF_Daruma()

iRetorno = confCFNCM_ECF_Daruma(“1012100”, “0”)

iRetorno = iCFVenderResumido_ECF_Daruma(“II”, “0,10”, “7896230301146”, “Bolacha”)

iRetorno = iCFTotalizarCupomPadrao_ECF_Daruma()

iRetorno = iCFEncerrarResumido_ECF_Daruma()

//Chamada de Método Retornar Valor Imposto  

Dim Str_ValorImposto As New StringBuilder(300)

iRetorno = rCFVrImposto_ECF_Daruma(“0”, Str_ValorImposto)

Java

//Importações

import br.com.daruma.jna.ECF;

//Chamada de Métodos

iRetorno = ECF.iCFAbrirPadrao_ECF_Daruma(); iRetorno = ECF.confCFNCM_ECF_Daruma(“1012100”, “0”);

iRetorno = ECF.iCFVenderResumido_ECF_Daruma(“II”, “0,10”, “7896230301146”, “Bolacha”);

iRetorno = ECF.iCFTotalizarCupomPadrao_ECF_Daruma();

iRetorno = ECF.iCFEncerrarResumido_ECF_Daruma();

//Chamada de Método Retornar Valor Imposto  

char[] Str_ValorImposto = new char[300];

iRetorno = ECF.rCFVrImposto_ECF_Daruma(“0”, Str_ValorImposto);

Escovadores de Bits, a novidade que queríamos mostrar a vocês era essa. Curtiram esta facilidade?

Assistam nosso vídeo, mostrando passo a passo como é feito o uso das funções da DarumaFramework para a Lei 12.741.

Channel 9

Se tiver alguma dúvida e/ou dificuldade, entre em contato com a nossa equipe de suporte ao desenvolvedor.

E-mails:
daruma.desenvolvedores@daruma.com.br
ddc.suporte@daruma.com.br

suporte.ddc@daruma.com.br
desenvolvedores.suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.daruma@daruma.com.br
suporte@daruma.com.br
suporte.alexandre@daruma.com.br
claudenir@daruma.com.br
Skypes:
daruma.desenvolvedores
ddc_suporte_daruma
suporte_ddc_daruma
desenvolvedores_suporte_daruma
suporte_desenvolvedores_daruma
desenvolvedores_daruma
suporte_daruma
suporte_alexandre_daruma
claudenir_andrade
Desenvolvedores Daruma Twitter facebook Linkedln Youtube Google+