Relatório gerencial na impressora fiscal - AX 2012 R2 Retail Brasil ***ATUALIZADO***
*** Este artigo foi atualizado para refletir as mudanças para suporte de impressoras fiscais da Rússia e do Brasil
Olá,
No Brasil é obrigatório o uso de impressoras fiscais (ECF) no POS do Microsoft Dynamics AX 2012 R2 Retail. Por conta de requerimentos legais que a legislação brasileira impõe aos desenvolvedores de software para PDV, algumas limitações acabaram afetando a extensibilidade do POS no Brasil. O documento de escopo da localização brasileira (veja este link) trás mais detalhes sobre isso.
Uma necessidade comum às empresas que utilizam o POS é a criação de relatórios gerenciais customizados. Para facilitar o desenvolvimento desse tipo de customização foi criada uma interface na localização brasileira do POS para que os requisitos legais sejam atendidos mesmo para relatórios gerenciais customizados.
O exemplo de código em enexo mostra como criar um relatório gerencial usando uma impressora fiscal. Lembre-se:
SAMPLE CODE NOTICE
THIS SAMPLE CODE IS MADE AVAILABLE AS IS. MICROSOFT MAKES NO WARRANTIES, WHETHER EXPRESS OR IMPLIED, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OR CONDITIONS OF MERCHANTABILITY. THE ENTIRE RISK OF THE USE OR THE RESULTS FROM THE USE OF THIS SAMPLE CODE REMAINS WITH THE USER. NO TECHNICAL SUPPORT IS PROVIDED. YOU MAY NOT DISTRIBUTE THIS CODE UNLESS YOU HAVE A LICENSE AGREEMENT WITH MICROSOFT THAT ALLOWS YOU TO DO SO.
Vamos utilizar uma Blank operation para imprimir o relatório gerencial. Se você não está habituado a lidar com Blank operations no POS, aconselho a leitura deste artigo.
O primeiro passo é adicionar um botão ao layout de tela do POS:
Depois, usando a extensibilidade do POS disponível no Retail SDK, vamos adicionar um projeto de Blank operation customizada no Visual Studio. Não é obrigatório criar um novo projeto, podendo ser utilizado o que já está disponível no Retail SDK.
Para acessar as classes de impressora fiscal é preciso adicionar as referências abaixo ao projeto, que se encontram na pasta C:\Program Files (x86)\Microsoft Dynamics AX\60\Retail POS\Services:
Microsoft.Dynamics.Retail.FiscalPrinter.FiscalPrinterDriver.dll
Microsoft.Dynamics.Retail.FiscalPrinter.FiscalPrinterDriverFactory.dll
Microsoft.Dynamics.Retail.FiscalPrinter.FiscalPrinterUtilities.dll
E por fim, o trecho de código a seguir irá imprimir o relatório gerencial quando a Blank operation for acionada:
O importante para a impressão de um relatório gerencial na impressora fiscal é o método Application.Services.Peripherals.FiscalPrinter.PrintReceipt(string textToPrint) . Este método abstrai a impressora fiscal conectada ao POS (seja Daruma ou Bematech), além de gravar as informações necessárias para os arquivos fiscais gerados pelo POS.