-
Total de ítens
47 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que lfrfernando.rodrigues postou
-
Envio da CCe em XML
lfrfernando.rodrigues replied to lfrfernando.rodrigues's tópico in ACBrMonitor PLUS
Maravilha. Obrigado. Abraços. Fernando -
Após as mudanças você fechou e abriu novamente o ACBrMonitor? Atte, Fernando.
-
Envio da CCe em XML
lfrfernando.rodrigues replied to lfrfernando.rodrigues's tópico in ACBrMonitor PLUS
Boa tarde. Não sei qual seria o esforço para isso, mas seria bastante interessante se fosse possível enviar o arquivo XML diretamente tal como é possível com o método de envio da NFe. Neste caso não seria necessário montar um arquivo INI mas sim o arquivo XML diretamente. No meu caso eu já tenho um método que monta esse XML pois também utilizo uma outra ferramenta para transações com a receita e poderia utilizar o arquivo já pronto. Mas como disse, não sei qual o esforço necessário para isso e também se seria útil para outros programadores. Abraços. Fernando. -
Envio da CCe em XML
lfrfernando.rodrigues replied to lfrfernando.rodrigues's tópico in ACBrMonitor PLUS
Valeu Juliomar. Obrigado. Me economizou um tempão tendo que implementar só para testar. Abraços. Fernando -
Boa tarde. Tive alguns problemas onde eu salvava, mas as configurações não eram salvas. Não sei se era algum problema da versão mas acabei alterando diretamente no arquivo .ini que armazena essas informações. De qualquer modo, obtive melhores impressões usando a impressão em EscPOS. Procure pelo bloco abaixo dentro do arquivo C:\ACBrMonitorPLUS\ACBrMonitor.ini [SATFortes] UsarFortes=0 Largura=302 MargemTopo=2 MargemFundo=4 MargemEsquerda=2 MargemDireita=2 Preview=0 Atte, Fernando.
-
Boa tarde. Fiz algumas pesquisas aqui no fórum, mas não encontrei informações a respeito da minha dúvida. Estou implementando o envio da carta de correção para notas fiscais eletrônicas em meu sistema e observei que na assinatura do método NFe.EnviarEvento(cIniEvento) é enviado um arquivo .ini. Jà tenho implementado em meu sistema a montagem do arquivo no formato XML da CCe. Posso enviar esse arquivo neste formato ou apenas no formato .ini mesmo? Grato. Fernando.
-
Boa tarde. Estou com uma dificuldade na emissão de etiquetas através da impressora Argox OS-214plus. Na realidade estou conseguindo emitir as etiquetas normalmente, no entanto no final da impressão das etiquetas, o comando avanço não está funcionando. Com isso, preciso pressionar o botão "FEED" da impressora para que eu consiga destacar as etiquetas. O problema é que com isso, eu acabo perdendo algumas etiquetas ou tenho que ficar abrindo a impressora e reposicionando o formulário na impressora. Se eu entendi direito, o comando avanço, ejeta o papel, isto é, uma ou mais linhas de etiquetas conforme o parâmetro informado. Já passei alguns parâmetros diferentes no comando e nada muda. Também já acionando o comando avanço tanto pelo método ETQ.SetAvanco(1) como diretamente pelo método ETQ.Imprimir(1,1). O papel continua posicionado sobre a últimas etiquetas impressas. Como não tenho muita experiência nesse tipo de equipamento, não sei se estou fazendo alguma coisa errada ou se este é o comportamento normal do equipamento. Estou utilizando o ACBrMonitor e minha aplicação é em PHP. Aciono o comando do ACBrMonitor via socket. Segue abaixo um trecho do meu código: /* CHAMANDO RESPOSTA DA CONEXÃO DO SOCKET */ $socket["socket"]->recv(); /* SETANDO A TEMPERATURA DE IMPRESSÃO */ $socket["socket"]->send("ETQ.SetTemperatura(15)"."\r\n.\r\n"); /* MONTANDO O LAYOUT DA ETIQUETA */ /* PERCORRENDO O LAÇO COM A QUANTIDADE DE ETIQUETAS */ for ($i=1; $i<=$quantidadeEtiquetas; $i++) { $posicaoColuna = $xColuna[$contadorEtiquetas]; /* ETQ.ImprimirTexto(nOrientacao,nFonte,nMultiplicadorH,nMultiplicadorV,nVertical,nHorizontal,cTexto,[nSubFonte]) - EXEMPLO DO COMANDO */ $socket["socket"]->send("ETQ.ImprimirTexto(0,2,0,0,0175,$posicaoColuna,\"$linha1DescricaoProduto\",000)"."\r\n.\r\n"); $socket["socket"]->send("ETQ.ImprimirTexto(0,2,0,0,0145,$posicaoColuna,\"$linha2DescricaoProduto\",000)"."\r\n.\r\n"); $socket["socket"]->send("ETQ.ImprimirTexto(0,2,0,0,0115,$posicaoColuna,\"REF:$partnumberReferenciaProduto\",000)"."\r\n.\r\n"); $socket["socket"]->send("ETQ.ImprimirBarras(0,D,5,2,0015,$posicaoColuna,\"$idProduto\",070)"."\r\n.\r\n"); /* INCREMENTANDO O CONTADOR DE ETIQUETAS */ $contadorEtiquetas++; /* ANALISANDO SE O CONTADOR DE ETIQUETAS É IGUAL A 3 PARA ENTÃO IMPRIMIR */ if ($contadorEtiquetas > 3) { $socket["socket"]->send("ETQ.SetAvanco(1)"."\r\n.\r\n"); /* ENVIANDO COMANDO PARA IMPRESSÃO */ $socket["socket"]->send("ETQ.Imprimir(1,1)"."\r\n.\r\n"); $respostaFuncao = $socket["socket"]->recv(); $contadorEtiquetas = 1; } } Desde já, agradeço caso alguém possa ajudar. Abraços. Luiz Fernando
-
Exemplo de captura de resposta PHP + socket
lfrfernando.rodrigues replied to lfrfernando.rodrigues's tópico in ACBrMonitor PLUS
Bom dia Daniel. Segue em anexo o arquivo com o método. Pode distribuir sim. É uma satisfação muito grande poder colaborar. Abraços. Luiz Fernando Rodrigues Infomaster Sistemas Penápolis/SP nfeBO.php -
Exemplo de captura de resposta PHP + socket
um tópico no fórum postou lfrfernando.rodrigues ACBrMonitor PLUS
Bom dia pessoal. Estou postando um pequeno exemplo de captura de resposta em PHP utilizando o ACBrMonitorPlus com socket. Vi alguns exemplos onde o pessoal tem dado um explode na resposta, mas há um método de leitura de arquivos INI que facilita bastante o tratamento da resposta. Espero ajudar. Abraços. Luiz Fernando Rodrigues Infomaster Sistemas Penápolis/SP /* FUNÇÃO PARA CONSULTAR O STATUS DO SERVIÇO DA NFE */ function statusServicoNfeBO($hostAcbrMonitor, $portaAcbrMonitor) { try { /* ANALISANDO CAMPOS OBRIGATÓRIOS */ if (empty($hostAcbrMonitor)) { throw new Exception("Falha ao identificar o host do ACBr Monitor."); } else if (empty($portaAcbrMonitor)) { throw new Exception("Falha ao identificar a porta do ACBr Monitor."); } /* ESTABELECENDO UM NOVO SOCKET */ $socket = socketBO($hostAcbrMonitor, $portaAcbrMonitor); /* ANALISANDO O RETORNO DA CONEXÃO AO SOCKET */ if ($socket["statusRetorno"] == "ERRO") { throw new Exception("Não é possível estabelecer um socket com o ACBrMonitorPlus.<br />Reinicie o computador e tente novamente. Se o problema persistir, contate o suporte técnico."); } else { /* CHAMANDO RESPOSTA DA CONEXÃO DO SOCKET */ $socket["socket"]->recv(); $socket["socket"]->send("NFE.StatusServico()"."\r\n.\r\n"); $respostaFuncao = $socket["socket"]->recv(); /* O MÉTODO PARSE_INI_STRING CONSEGUE CONVERTER A RESPOSTA DO ACBr PARA UM ARRAY. * DESSA FORMA FICA MUITO FÁCIL LER A RESPOSTA. */ $respostaFuncaoArray = parse_ini_string($respostaFuncao,true); if (!isset($respostaFuncaoArray["STATUS"]["CStat"])) { throw new Exception(nl2br($respostaFuncao)); } else { /* LIMPANDO OS DADOS DE CONEXÃO COM O SOCKET */ $retorno["statusRetorno"] = "SUCESSO"; $retorno["msgRetorno"] = $respostaFuncaoArray["STATUS"]["CStat"]." - ".$respostaFuncaoArray["STATUS"]["XMotivo"]; return $retorno; } } } catch (Exception $e) { $retorno["statusRetorno"] = "ERRO"; $retorno["msgRetorno"] = "Falha ao consultar o status do serviço da NFe."; $retorno["msgErro"] = $e->getMessage(); return $retorno; } } -
Bom dia Maurício. Desculpe a demora em responder. Formatei meu computador e não conectei no site. Vi sua mensagem somente hoje. Segue abaixo um método em PHP do meu sistema responsável por ativar o SAT. Veja se serve de exemplo. Abraços. /* FUNÇÃO PARA ATIVAR O SAT */ function ativarSATBO($hostAcbrMonitor, $portaAcbrMonitor, $cnpjEmitente, $codigoIbgeEstadoEmitente) { try { /* ANALISANDO CAMPOS OBRIGATÓRIOS */ if (empty($hostAcbrMonitor)) { throw new Exception("Falha ao identificar o host do ACBr Monitor."); } else if (empty($portaAcbrMonitor)) { throw new Exception("Falha ao identificar a porta do ACBr Monitor."); } else if (empty($cnpjEmitente)) { throw new Exception("Falha ao identificar o CNPJ do emitente."); } else if (empty($codigoIbgeEstadoEmitente)) { throw new Exception("Falha ao identificar o código do IBGE do Estado do emitente."); } /* ESTABELECENDO UM NOVO SOCKET */ $socket = socketBO($hostAcbrMonitor, $portaAcbrMonitor); /* ANALISANDO O STATUS DA CONEXÃO DO SOCKET */ if ($socket["statusRetorno"] == "ERRO") { throw new Exception($socket["msgRetorno"]); } else { /* CHAMANDO RESPOSTA DA CONEXÃO DO SOCKET */ $socket["socket"]->recv(); $socket["socket"]->send("SAT.Ativar($cnpjEmitente,$codigoIbgeEstadoEmitente)"."\r\n.\r\n"); $respostaFuncao = $socket["socket"]->recv(); /* RETORNO DA FUNÇÃO */ $retorno["statusRetorno"] = "SUCESSO"; $retorno["msgRetorno"] = nl2br($respostaFuncao); } } catch (Exception $e) { $retorno["statusRetorno"] = "ERRO"; $retorno["msgRetorno"] = "Falha ao ativar o SAT."; $retorno["msgErro"] = $e->getMessage(); } return $retorno; }
-
Preview do CFe-SAT
lfrfernando.rodrigues replied to lfrfernando.rodrigues's tópico in ACBrMonitor PLUS
Bom dia Daniel. Obrigado por responder. Minha aplicação é web (php) e acessa um servidor web local através de ajax. A aplicação local estabelece um socket com o ACBrMonitorPlus e envia os comandos a ele. Essa aplicação local foi criada apenas para conseguir manipular arquivos em ambiente local do usuário, como ler xml's de retorno da receita, do próprio SAT, etc. O método responsável por criar e enviar a venda ao SAT submete o comando abaixo para o ACBrMonitorPlus: $socket["socket"]->send("SAT.CriarEnviarCFe(".dirname(dirname(__FILE__))."/_temp/venda.ini)"."\r\n.\r\n"); Todo o processo de envio, validação e retorno ocorre normalmente. Até mesmo o preview do cupom é feito, porém em segundo plano. Como o ACBrMonitorPlus não cria ícone na barra de tarefas não é possível notar que o preview foi aberto, mas se você pressionar alt+tab ele é visualizado. Sei que o cupom foi "aberto" pois minha aplicação retorna a mensagem de cupom gerado com sucesso e isso só ocorre em caso de sucesso da chamada de impressão do cupom $socket["socket"]->send("SAT.ImprimirExtratoVenda($caminhoArquivoXML)"."\r\n.\r\n"); Meus usuários normalmente utilizam o navegador Firefox. Estive analisando isso para tentar descobrir se por ventura o navegador não assumiria o modal em relação a outras aplicações abertas. Não descobri muita coisa a respeito, porém, esse problema só está ocorrendo em alguns clientes, não em todos. De qualquer modo eu contornei o problema desabilitando o preview do cupom. Agora o cupom é impresso diretamente sem a necessidade do usuário clicar e implementamos um botão de impressão na própria aplicação caso ele necessite imprimir o CFe novamente. Penso que isso também possa ser algum problema de configuração do S.O. do usuário pois como disse nem todos os usuário tem tido esse problema. Agora preciso resolver um outro problema que é imprimir o cupom em escpos onde mesmo configurando o ACBrMonitorPlus e continua imprimindo em Fortes, mas vou gerar um outro ticket no fórum para não mudar de assunto. Não sei se da forma que expliquei ficou claro. Caso não tenha, por favor, me informe Abraços. Fernando. -
Preview do CFe-SAT
lfrfernando.rodrigues replied to lfrfernando.rodrigues's tópico in ACBrMonitor PLUS
Infelizmente o problema voltou. A tela de preview do CFe-SAT não é visualizada. O cliente tem que ficar dando alt+tab para ela aparecer. O problema é o usuário fazer isso. Fernando. -
Atualização ACBr Monitor Plus
lfrfernando.rodrigues replied to lfrfernando.rodrigues's tópico in ACBrMonitor PLUS
Ok. Juliomar. Me desculpe tê-lo feito explicar novamente. Muito obrigado. Abraços. Fernando. -
Bom dia. Me desculpem se estou postando algo já discutido, porém eu fiz uma pesquisa e não encontrei este assunto no fórum. Estou utilizando a versão 0.1.11.1 do ACBrMonitorPlus e vi que no site tem a versão 0.2.01.3, porém quando clico para baixar essa versão diz que não tenho permissão para fazer o download. No caso essa versão 0.2.01.3 é apenas para usuários com contrato? Se não, como faço para atualizar as aplicações dos clientes? Tenho que baixar o instalador e executar em cada computador ou há alguma forma de atualização via comando, botão, etc? Grato. Fernando.
-
Preview do CFe-SAT
lfrfernando.rodrigues replied to lfrfernando.rodrigues's tópico in ACBrMonitor PLUS
Bom dia. Com relação ao problema do preview, constatei o seguinte. O sistema esta gerando o INI da venda na devida pasta e o cupom está sendo gerado normalmente pois os arquivos XML também estão sendo gerados nas devidas pastas. Após o sistema retornar a mensagem de CFe emitido com sucesso, dei um alt+tab e o cupom foi visualizado. Após esse alt+tab os próximos cupons foram visualizados normalmente, ou seja, a tela do preview passou a ter o foco quando da sua abertura. É como se o sistema operacional tivesse armazenado que essa tela deve ter foco sobre a tela do sistema. Não sei se é alguma configuração do S.O. (Windows 7) ou até mesmo do ACBr Monitor Plus que não estou fazendo corretamente, mas de qualquer modo o problema foi resolvido. Abraços. Fernando. -
Boa tarde. Estou tendo problemas com o preview do CFe-SAT. Mesmo após a autorização do cupom, o o preview não aparece na tela do usuário. Ai quando tento abrir o ACBr Monitor para analisar o problema, o cupom é visualizado para impressão. É como se o foco da tela não estivesse no ACBr Monitor mesmo com o cupom em modo preview. Algum já passou por isso? Grato. Fernando.
-
Bom dia. Estou utilizando o ACBrMonitorPlus via socket para gerar os cupons fiscais SAT da minha aplicação web. Ocorre que os retornos vem no formato string, justamente por ser via socket. Ai tenho que explodir as respostas para capturar as mensagens, erros, etc. Há alguma forma de capturar as respostas já divididas, ou apenas os códigos de erro, mensagens, etc? Abraços.
-
Boa tarde. Já descobri o problema. Não me atentei sobre a string para terminar o comando CR+LF+CR+LF'.'CR+LF+CR+LF. Com o PHP direto deu certo. Agora estou tentando descobrir com fazer pelo javascript. Fernando.
-
Boa tarde. Estou tentando enviar comandos para o ACBRMonitor Plus através de um socket estabelecido através de WebSocket Jquery. Estou conseguindo estabelecer a conexão mas não estou conseguindo enviar comandos. Segue código abaixo: $(document).ready(function() { var socket = new WebSocket('ws://127.0.0.1:3434'); socket.send('ACBr.data'); socket.onmessage = function(retorno) { alert(retorno) } socket.onerror = function(retorno){ alert("erro"); }; socket.onclose = function(retorno){ alert("conexão fechada"); }; }); Pelo ACBR Monitor, vejo que a conexão foi estabelecida pois nele é exibida a mensagem abaixo. Depois de alguns segundos a conexão é fechada automaticamente. ACBrMonitor/ACBrNFeMonitor PLUS Ver. 0.1.8.11 Conectado em: 02/12/15 14:50:05 Máquina: 127.0.0.1 Esperando por comandos. ALERTA: Fim da Conexão com: 127.0.0.1 em: 02/12/15 14:50:15 Pesquisei aqui no fórum, porém não encontrei nada neste sentido. Alguém já conseguiu fazer essa comunicação com sucesso. Grato. Fernando.
-
Boa tarde Hermilio. Você obteve sucesso na conexao do webSocket com o Monitor ACBR? Grato. Fernando
-
Sim... http://www.projetoacbr.com.br/forum/files/file/372-acbrmonitorplus/ Faça o download e leia o manual fornecido com o aplicativo. Boa tarde Sérgio. Obrigado por responder. Já baixei e estou analisando. Abraços. Fernando. Olá Mateus. Entendi. No meu caso, eu não teria essa aplicação local em Java. De qualquer modo vou iniciar meus testes. Muito obrigado. Abraços. Fernando.
-
Boa tarde Mateus. Vi em seu post que está integrando aplicação web com o sat. Você obteve sucesso? Também trabalho com aplicações em cloud, no entanto nossa aplicação é em php. Pelo que andei lendo, eu poderia gerar um arquivo txt da milha aplicação e colocar esse arquivo em uma pasta do monitor acbr. O resto ele faria. Sabe me dizer se é isso mesmo? Além disso, vi também que para isso é necessário utilizar o monitor plus que tem as funcionalidade para o sat. O que você me diz a respeito. Desde já agradeço. Fernando