Ir para conteúdo
  • Cadastre-se

dev botao

Classe para comunicação em C#


  • Este tópico foi criado há 1926 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde!

Fiquei muito feliz de encontrar esse projeto que me ajudou muito na implementação da NFC-e em um sistema então gostaria de colaborar de alguma forma.
Eu trabalho com a linguagem de programação C# e fiz uma classe que faz toda a comunicação com o ACBrMonitor, não vi nada parecido na minha rápida passagem pelo fórum, então espero poder ajudar quem esteja precisando desse suporte nessa linguagem.

Achei mais simples fazer dessa forma pois o monitor já é um projeto bem completo. Então basta integrar a classe no projeto em C# e disparar os comandos preenchendo os argumentos.
Há uma classe que recebe o resultado.

O arquivo não está 100% cobrindo os comandos do monitor, mas acho que já é uma ajuda pra quem está começando. Implementei apenas aqueles comandos que precisei, mas assim que tiver mais tempo pretendo implementar os demais. 

Acho que o código é fácil de entender, mas estou à disposição pra ajudar se alguém precisar.

Monitor.cs

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Obrigado pela contribuição... Enviado para o SVN na pasta:

ACBr\Projetos\ACBrMonitorPLUS\Lazarus\Exemplos

  • Curtir 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • 7 meses depois ...
Em ‎12‎/‎11‎/‎2015 at 12:17, Thiago Raphael Raheem Marinho disse:

Boa tarde!

Fiquei muito feliz de encontrar esse projeto que me ajudou muito na implementação da NFC-e em um sistema então gostaria de colaborar de alguma forma.
Eu trabalho com a linguagem de programação C# e fiz uma classe que faz toda a comunicação com o ACBrMonitor, não vi nada parecido na minha rápida passagem pelo fórum, então espero poder ajudar quem esteja precisando desse suporte nessa linguagem.

Achei mais simples fazer dessa forma pois o monitor já é um projeto bem completo. Então basta integrar a classe no projeto em C# e disparar os comandos preenchendo os argumentos.
Há uma classe que recebe o resultado.

O arquivo não está 100% cobrindo os comandos do monitor, mas acho que já é uma ajuda pra quem está começando. Implementei apenas aqueles comandos que precisei, mas assim que tiver mais tempo pretendo implementar os demais. 

Acho que o código é fácil de entender, mas estou à disposição pra ajudar se alguém precisar.

Monitor.cs

Bom Dia Thiago, sou iniciante com o ACBR Monitor Plus, consegui colocar a classe no meu projeto e chamei o NFE.StatusServico e retornou perfeitamente o status o qual joguei numa textBox como teste, mas eu não sei como utilizar o NFE.CriarNfe eu coloco as informações ele retorna que não coloquei CNPJ, endereço nem nada... Você poderia ter algum de exemplo como utilizar essas classe. E muito obrigado por desenvolvido a classe pois tem pouco conteúdo em C# para ACBr Monitor Plus. Obrigado!

Link para o comentário
Compartilhar em outros sites

cria uma função com um parâmetro que recebe uma string com o conteúdo conforme a documentação:


 
public static RetornoComando CriarNfe(string conteudo)
{
 
var comando = String.Format("NFE.CRIARNFE(\"{0}\")", conteudo);
 
var retorno = ComandoACBR(comando);
 
return new RetornoComando(retorno);
}
 

Exemplo:
NFE.CriarNFe("[Identificacao]
NaturezaOperacao=VENDA PRODUCAO DO ESTAB.
Modelo=55
Serie=1
Codigo=19
Numero=19
Serie=1
Emissao=24/03/2009
Saida=24/03/2009
Tipo=1
FormaPag=0
[Emitente]
CNPJ=XXXXXXXXXXXXXX
IE=XXXXXXXXXXXX
Razao=RAZAO SOCIAL DO DESTINATARIO LTDA EPP
Fantasia=NOME FANTASIA
Fone=1532599600
CEP=18270000
Logradouro=Rua Onze de Agosto
Numero=1000
Complemento=
Bairro=Centro
CidadeCod=3554003
Cidade=Tatui
UF=SP
[Destinatario]
CNPJ=05481336000137
IE=687138770110
ISUF=
NomeRazao=D.J. COM. E LOCACAO DE SOFTWARES LTDA - ME
Fone=1532599600
CEP=18270410
Logradouro=Praca Anita Costa
Numero=0034
Complemento=
Bairro=Centro
CidadeCod=3554003
Cidade=Tatui
UF=SP
[Produto001]
CFOP=5101
Codigo=67
Descricao=ALHO 400 G
Unidade=KG
Quantidade=100
ValorUnitario=10
ValorTotal=100
[ICMS001]
CST=00
ValorBase=1000
Aliquota=18
Valor=180
[Total]
BaseICMS=1000
ValorICMS=180
ValorProduto=1000
ValorNota=1000" );

Exemplo de Resposta:
OK: NFe criada em: C:\ACBrNFeMonitor\logs\35XXXXXXXXXXXXXXXX550010000000190000000193-nfe.xml

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Descobri aqui Thiago... quando você coloca o path você tem que colocar da onde no servidor está e não na máquina local, kra estou maravilhado com o ACBr Monitor Plus... era tudo que eu estava precisando... Vo estudar mais aqui.... Obrigado pela força!

Thiago me ajuda só com uma coisa... qual a diferença dos campos Código e Numero do campo [Identificação] ?

Captura de Tela 2016-06-30 às 16.45.53.png

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
  • Membros Pro

Boa tarde, sobre a classe Monitor.cs estou utilizando ela perfeitamente para emissão de cupom fiscal tanto SAT como ECF, porém em alguns momentos no último comando enviado ela parece se perder. No exemplo abaixo ela está utilizando a emissão do cupom fiscal com ECF, ela executou o último comando enviado que foi " ECF.FechaCupom(TRACTIO PDV) ", fechou o cupom tudo certinho. Porém entrou em um loop infinito no trecho do código abaixo:

                   int i = -1;
                    i = stream.Read(data, 0, 1);
                    var letra = "";
                    responseData = String.Empty;

                    while (letra != ((char)3).ToString())
                    {

                        i = stream.Read(data, 0, 1);
                        letra = System.Text.Encoding.ASCII.GetString(data, 0, i);
                        if (letra != ((char)3).ToString())
                        {
                            responseData += letra;
                        }

                    }
 

Especificamente no "While(letra != ((char)3).ToString())", o conteudo da "data" é:

image.png.e489621f285ea1e6bc707966bc289809.png

Alguém já passou por isso, sabe como resolver??  

O estranho é que para alguns casos não ocorre isso, vai normal.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1926 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...