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

A Daruma possui um driver que se comunica com diversos produtos, chamado DarumaFramework. Este driver se comunica com ECF, Impressora não fiscal, modem, display, Micro Terminal e agora vai se comunicar com o S@T também. Para quem trabalha com apenas um produto, é bem simples, porém existem parceiros que usam vários produtos e o controle de uso dos produtos ficava mais trabalhoso. Um escovador de bits nos deu o feedback de fazer com que a DarumaFramework trabalhe com diversos produtos simultaneamente, de forma que a aplicação não precise ficar se preocupando em definir o produto que será usado no momento. Nós implementamos e somos gratos a Comunidade de Desenvolvedores Daruma por nos dar feedbacks.

Esta implementação só foi possível graças a forma com que a DarumaFramework foi construída, contendo o produto usado na nomenclatura do método. Foi por este motivo que nós conseguimos entregar a vocês, escovadores de bits, este recurso, esta comodidade para seu desenvolvimento.

Então escovadores de bits, o motivo deste escovando é mostrar uma forma alternativa de usar múltiplos produtos com a DarumaFramework.

Maneira convencional de se usar múltiplos produtos:

Nesta etapa vamos apenas lembrar como é o uso de múltiplos produtos com a DarumaFramework, na forma mais comum e mais usada pelos desenvolvedores. Acompanhem:

  • Usaremos uma impressora fiscal, uma impressora não fiscal e um modem conectados no computador.
  • No sistema de testes, mostrado abaixo, vamos imprimir um cupom fiscal, em seguida um pequeno texto na impressora não fiscal e depois enviar um sms para o cliente.

Vejam como ficaria isso em Delphi, C# e VB6:

Delphi

//Declaração Geral

function eDefinirProduto_Daruma(szProduto: String): Integer; StdCall; External 'DarumaFrameWork.dll'

//Declarações Fiscais

function iCFAbrirPadrao_ECF_Daruma: 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 iCFEfetuarPagamentoPadrao_ECF_Daruma(): Integer; StdCall; External 'DarumaFramework.dll';

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

//Declaração Não Fiscal

function iImprimirTexto_DUAL_DarumaFramework(stTexto: String; iTam: Integer ): Integer; StdCall; External 'DarumaFramework.dll'

//Declaração Modem

[DllImport("DarumaFrameWork.dll")]

public static extern int tEnviarSms_MODEM_DarumaFramework(System.String sNumeroTelefone, System.String sMensagem);

//Chamada de Métodos

iRetorno := eDefinirProduto_Daruma('ECF');

iRetorno := iCFAbrirPadrao_ECF_Daruma();

iRetorno := iCFVenderResumido_ECF_Daruma(‘FF’, ’10,00’, ‘00099991’, ‘Tomate’);

iRetorno := iCFTotalizarCupomPadrao_ECF_Daruma();

iRetorno := iCFEfetuarPagamentoPadrao_ECF_Daruma();

iRetorno := iCFEncerrarPadrao_ECF_Daruma();

iRetorno := eDefinirProduto_Daruma('DUAL');

iRetorno := iImprimirTexto_DUAL_Daruma('Obrigado e volte sempre!', 0);

iRetorno := eDefinirProduto_Daruma(‘MODEM’);

iRetorno := tEnviarSms_MODEM_Daruma(‘01297424797’, ‘Obrigado e volte sempre!’);

C#

//Declaração Geral

[DllImport("DarumaFrameWork.dll")]

public static extern int eDefinirProduto_Daruma(string sProduto);

//Declarações Fiscais

[DllImport("DarumaFrameWork.dll")]

public static extern int iCFAbrirPadrao_ECF_Daruma();

[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 iCFEfetuarPagamentoPadrao_ECF_Daruma();

[DllImport("DarumaFrameWork.dll")]

public static extern int iCFEncerrarPadrao_ECF_Daruma();

//Declaração Não Fiscal

[DllImport("DarumaFrameWork.dll")]

public static extern int iImprimirTexto_DUAL_DarumaFramework(string stTexto, int iTam);

//Declaração Modem

function tEnviarSms_MODEM_DarumaFramework(Str_Numero:string; Str_Msg:string): Integer; StdCall; External 'DarumaFrameWork.dll'

//Chamada de Métodos

iRetorno = eDefinirProduto_Daruma(“ECF”);

iRetorno = iCFAbrirPadrao_ECF_Daruma();

iRetorno = iCFVenderResumido_ECF_Daruma(“FF”, “10,00”, “00099991”, “Tomate”);

iRetorno = iCFTotalizarCupomPadrao_ECF_Daruma();

iRetorno = iCFEfetuarPagamentoPadrao_ECF_Daruma();

iRetorno = iCFEncerrarPadrao_ECF_Daruma();

iRetorno = eDefinirProduto_Daruma(“DUAL”);

iRetorno = iImprimirTexto_DUAL_Daruma(“Obrigado e volte sempre!”, 0);

iRetorno = eDefinirProduto_Daruma(“MODEM”);

iRetorno = tEnviarSms_MODEM_Daruma(“01297424797”, “Obrigado e volte sempre!”);

Visual Basic 6

//Declaração Geral

Public Declare Function eDefinirProduto_Daruma Lib "DarumaFrameWork.dll" (ByVal sProduto As String) As Integer

//Declarações Fiscais

Public Declare Function iCFAbrirPadrao_ECF_Daruma Lib "DarumaFrameWork.dll" () 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 iCFEfetuarPagamentoPadrao_ECF_Daruma Lib "DarumaFrameWork.dll" () As Integer

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

//Declaração Não Fiscal

Public Declare Function iImprimirTexto_DUAL_DarumaFramework Lib "DarumaFrameWork.dll" (ByVal stTexto As String, ByVal iTam As Integer) As Integer

//Declaração Modem

Public Declare Function tEnviarSms_MODEM_DarumaFramework Lib "DarumaFrameWork.dll" (ByVal sNumeroTelefone As String, ByVal sMensagem As String) As Integer

//Chamada de Métodos

iRetorno = eDefinirProduto_Daruma(“ECF”)

iRetorno = iCFAbrirPadrao_ECF_Daruma()

iRetorno = iCFVenderResumido_ECF_Daruma(“FF”, “10,00”, “00099991”, “Tomate”)

iRetorno = iCFTotalizarCupomPadrao_ECF_Daruma()

iRetorno = iCFEfetuarPagamentoPadrao_ECF_Daruma()

iRetorno = iCFEncerrarPadrao_ECF_Daruma()

iRetorno = eDefinirProduto_Daruma(“DUAL”)

iRetorno = iImprimirTexto_DUAL_Daruma(“Obrigado e volte sempre!”, 0)

iRetorno = eDefinirProduto_Daruma(“MODEM”)

iRetorno = tEnviarSms_MODEM_Daruma(“01297424797”, “Obrigado e volte sempre!”)

Acima, foi mostrada a maneira mais utilizada, mais comum, de se trabalhar com vários produtos na DarumaFramework.

Maneira alternativa de usar múltiplos produtos:

Agora vamos ver uma maneira alternativa de usar múltiplos produtos com a DarumaFramework.

O cenário não mudou. Vamos usar uma impressora fiscal, uma impressora não fiscal e um modem conectados no computador.

No sistema de testes mostrado abaixo, vamos imprimir um cupom fiscal, em seguida um pequeno texto na impressora não fiscal e depois enviar um sms para o cliente.

Vejam como ficaria isso em Delphi, C# e VB6:

Delphi

//Declarações Fiscais

function iCFAbrirPadrao_ECF_Daruma: 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 iCFEfetuarPagamentoPadrao_ECF_Daruma(): Integer; StdCall; External 'DarumaFramework.dll';

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

//Declaração Não Fiscal

function iImprimirTexto_DUAL_DarumaFramework(stTexto: String; iTam: Integer ): Integer; StdCall; External 'DarumaFramework.dll'

//Declaração Modem

[DllImport("DarumaFrameWork.dll")]

public static extern int tEnviarSms_MODEM_DarumaFramework(System.String sNumeroTelefone, System.String sMensagem);

//Chamada de Métodos

iRetorno := iCFAbrirPadrao_ECF_Daruma();

iRetorno := iCFVenderResumido_ECF_Daruma(‘FF’, ’10,00’, ‘00099991’, ‘Tomate’);

iRetorno := iCFTotalizarCupomPadrao_ECF_Daruma();

iRetorno := iCFEfetuarPagamentoPadrao_ECF_Daruma();

iRetorno := iCFEncerrarPadrao_ECF_Daruma();

iRetorno := iImprimirTexto_DUAL_Daruma('Obrigado e volte sempre!', 0);

iRetorno := tEnviarSms_MODEM_Daruma(‘01297424797’, ‘Obrigado e volte sempre!’);

C#

//Declarações Fiscais

[DllImport("DarumaFrameWork.dll")]

public static extern int iCFAbrirPadrao_ECF_Daruma();

[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 iCFEfetuarPagamentoPadrao_ECF_Daruma();

[DllImport("DarumaFrameWork.dll")]

public static extern int iCFEncerrarPadrao_ECF_Daruma();

//Declaração Não Fiscal

[DllImport("DarumaFrameWork.dll")]

public static extern int iImprimirTexto_DUAL_DarumaFramework(string stTexto, int iTam);

//Declaração Modem

function tEnviarSms_MODEM_DarumaFramework(Str_Numero:string; Str_Msg:string): Integer; StdCall; External 'DarumaFrameWork.dll'

//Chamada de Métodos

iRetorno = iCFAbrirPadrao_ECF_Daruma();

iRetorno = iCFVenderResumido_ECF_Daruma(“FF”, “10,00”, “00099991”, “Tomate”);

iRetorno = iCFTotalizarCupomPadrao_ECF_Daruma();

iRetorno = iCFEfetuarPagamentoPadrao_ECF_Daruma();

iRetorno = iCFEncerrarPadrao_ECF_Daruma();

iRetorno = iImprimirTexto_DUAL_Daruma(“Obrigado e volte sempre!”, 0);

iRetorno = tEnviarSms_MODEM_Daruma(“01297424797”, “Obrigado e volte sempre!”);

Visual Basic 6

//Declarações Fiscais

Public Declare Function iCFAbrirPadrao_ECF_Daruma Lib "DarumaFrameWork.dll" () 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 iCFEfetuarPagamentoPadrao_ECF_Daruma Lib "DarumaFrameWork.dll" () As Integer

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

//Declaração Não Fiscal

Public Declare Function iImprimirTexto_DUAL_DarumaFramework Lib "DarumaFrameWork.dll" (ByVal stTexto As String, ByVal iTam As Integer) As Integer

//Declaração Modem

Public Declare Function tEnviarSms_MODEM_DarumaFramework Lib "DarumaFrameWork.dll" (ByVal sNumeroTelefone As String, ByVal sMensagem As String) As Integer

//Chamada de Métodos

iRetorno = iCFAbrirPadrao_ECF_Daruma()

iRetorno = iCFVenderResumido_ECF_Daruma(“FF”, “10,00”, “00099991”, “Tomate”)

iRetorno = iCFTotalizarCupomPadrao_ECF_Daruma()

iRetorno = iCFEfetuarPagamentoPadrao_ECF_Daruma()

iRetorno = iCFEncerrarPadrao_ECF_Daruma()

iRetorno = iImprimirTexto_DUAL_Daruma(“Obrigado e volte sempre!”, 0)

iRetorno = tEnviarSms_MODEM_Daruma(“01297424797”, “Obrigado e volte sempre!”)

Ai está a maneira alternativa de usar múltiplos produtos com a DarumaFramework. É importante lembrar que sua aplicação vai rodar com ambos códigos e que este feature foi passado por um parceiro da comunidade de desenvolvedores Daruma.

Não deixe de assistir o vídeo mostrando na prática como usar múltiplos produtos, veja:

Channel9

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+