Ir para conteúdo
  • Cadastre-se

Nelson A Sousa

Membros
  • Total de ítens

    351
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Nelson A Sousa postou

  1. Pessoal, Usando o AcbrMonitor Plus 3.05, juntamente com C# no VS2015. Desculpe insistir, mas não estou conseguindo ver onde estou errando. De alguma forma, ao passar o comando CriaNFe() ou o comando CriarEnviarNFe(), meu AcbrMonitor Plus 3.05 tem a janela restaurada na área de trabalho. Estou colocando abaixo um arquivo TXT com o conteúdo da string que envio ao Monitor, a resposta do monitor, e também uma imagem da janela restaurada. Ao final do processo de criação do XML a janela volta ao Tray sem qualquer intervenção minha, ou seja, ela simplesmente aparece, e, depois de um tempo desaparece. O engraçado é que só acontece nos dois comandos que citei acima. O que me leva a crer que o problema está no conteúdo da string no formato INi que passo ao monitor. Alguém pode me dar uma ajuda? INI.txt
  2. Olá, Bom dia! Na versão 3.05, na opção de salvamento do arquivo PDF, este está sendo salvo na pasta informada, corretamente. No meu caso, gostaria de arquivar XML e PDF na mesma pasta, separando por CNPJ e por YYYY/MM. O XML respeita as regras das checkbox, porém o PDF está ficando numa pasta diferente por não respeitar as checkbox. Há possibilidade de o salvamento do PDF respeitar também as regras marcadas nas checkbox?
  3. Então, Pra você salvar o INI, ou montá-lo, já deve fazer com a senha criptografada. E mesmo assim, usar o mesmo tipo de criptografia(Algoritmo) usado pelo Acbr. Quando o Acbr faz a leitura de sua senha 12345678, ele deve estar considerando que ela já esteja criptografada. Eu sou meio novo por aqui, mas imagino que seja isso.
  4. Opa, Boa tarde. Desculpa a demora na resposta, estava em campo atendendo. Eu estou com problemas no tratamento do retorno. Estou com dificuldades para selecionar dados específicos no arquivo de retorno. Até disse em outro tópico, que meu retorno veio com uma TAG faltando, mesmo com a NFe sendo autorizada, logo após ter mudando para a versão 3.05 do monitor Plus
  5. É muito estranho, porque a nota que enviei foi até autorizada. Vou continuar com os testes. Obrigado pela resposta.
  6. Olá Juliomar, Obrigado pela resposta. Encontrei um exemplo para monitoramento via TCP/IP chamado Monitor_C#, seria esse? Será que tem algum para monitoramento de arquivo TXT? Uma segunda pergunta, houve mudança mesmo no layout de retorno (SAI.TXT) do comando CriarEnviarNFe() da versão 2.02.5 para a versão 3.05?
  7. Boa tarde, Tenho um sistema em C# no qual estou implementando a NFe com o AcbrMonitorPlus. Tenho tido problemas com a captura dos retornos dos diversos comandos do Acbr. A melhor opção, no caso da NFe, é a leitura do arquivo SAI.TXT, ou devo ler o retorno do lote em XML? Qual seria a forma mais segura de capturar os dados de retorno, nessa modalidade de monitoramento de arquivo? Digo isso porque fiz todo o procedimento para captura do retorno no SAI.TXT com a versão 2.02.5, e funcionou perfeitamente. Porém ao atualizar para a versão 3.05 o layout do SAI.TXT não trouxe algumas TAGs.
  8. Olá pessoal, Bom dia! Tive problemas recentemente em capturar a chave no arquivo de retorno da versão 2.02.5. usando o comando EnviarNFe(). Mudei para o comando CriarEnviarNFe() e o arquivo de retorno me forneceu todos os dados que eu necessitada(chave, nProt, DtProt,etc). Funcionou que é uma belaza!! Porém atualizei para a versão 3.05.0 e o arquivo de retorno do comando CriarEnviarNFe() não trouxe mais a TAG [NFEXXXXXX] que era a que eu utilizava para capturar os dados que me interessavam. Vejam: OK: Autorizado o uso da NF-e [ENVIO] Versao=14.0.8 TpAmb=2 VerAplic=14.0.8 CStat=100 XMotivo=Autorizado o uso da NF-e CUF=31 NRec= DhRecbto=30/12/1899 TMed=0 Msg=Autorizado o uso da NF-e Rejeicao: Falha no schema XML [RETORNO] Versao=14.0.8 TpAmb=2 VerAplic=14.0.8 NRec=000000000000000 CStat=215 XMotivo=Rejeicao: Falha no schema XML CUF=31 Houve essa mudança mesmo nas versões? Devo continuar usando o arquivo de retorno, ou devo utilizar os XMLs?
  9. Já comparou as linhas da senha antes e depois de fazer a leitura do INI?
  10. Olá, O monitor já criptografa a senha pra colocar no INI, você está criptografando novamente? Por que não manda o próprio monitor assinar a Nfe?
  11. Pessoal coloquei o valor de minha string e o conteúdo do TXT no arquivo abaixo. Não consigo identificar o que está fazendo a janela do Monitor Plus restaurar. Alguém pode dar uma força? Acbr_Plus_Restaurando.txt
  12. Na verdade eu venho usando o comando EnviarNFe(), porém já estou mudando pro CriarEnviarNFe(). Obrigado pelas respostas.
  13. Não sei se estou fazendo o correto mas, deixei pra pegar os dados de protocolo, chave, dt. protocolo , etc tudo no último retorno. Inclusive, protocolo e dt. protocolo também não é retornado mais. O correto seria eu trabalhar o xml de retorno do lote processado?
  14. Boa tarde. O retorno do comando EnivarNFe() não trás a chave mais? NFe.EnviarNFe("C:\Methodus\Gerente\NFe\Enviados\31160800969157000120550010000027981326889720-nfe.xml",6161,1,1,1,1) OK: Autorizado o uso da NF-e [ENVIO] Versao=14.0.8 TpAmb=2 VerAplic=14.0.8 CStat=100 XMotivo=Autorizado o uso da NF-e CUF=31 NRec= DhRecbto=30/12/1899 TMed=0
  15. Olá pessoal, Boa noite. Estou utilizando o AcbrMonitorPlus 0.2.02.5 juntamente com meu sistema em c#. Ao enviar o comando "NFe.EnviarNFe("...."), o XML é enviado e processado na Receita normalmente, porém a janela do Acbr é restaurada durante todo o procedimento, e ao final, quando chega o retorno, é minimizada. Tudo isso é feito sem intervenção do meu sistema. Na janela do Acbr, quando restaurada, todos os objetos ficam em branco, não mostram nada. Será alguma configuração que me esqueci de fazer?
  16. Engraçado é que parece que é a combinação de alguns caracteres. A combinação, dentro das aspas, dos caracteres (%) também fez abortar, só mudei para [%] e imprimiu.
  17. Eu estou passando da seguinte forma. assim carrego a string: sComando = "</zera></linha_simples>"; sComando += "</zera></ce>CUPOM NÃO FISCAL</lf>"; sComando += "</zera></ae></fn></linha_simples>"; sComando += "Emissão:" + txt_Data_Emissao.Value.ToString() + "Orçamento:" + ntxt_ID_Mov_Estoque.Text + "</lf>"; sComando += "</linha_simples>"; sComando += "Cliente : " + parceiro.Parceiro + "</lf>"; sComando += "Endereço: " + parceiro.Endereco + "</lf>"; sComando += "Condição: " + cbo_Condicao.Text + "</lf>"; sComando += "Vendedor: " + cbo_Vendedor.Text + "</lf>"; sComando += "</linha_dupla>"; sComando += "<n><i>Produto</lf>"; sComando += "Qtde R$Unit. R$Total</n></i></lf>"; sComando += "</linha_dupla>"; for (int i = 0; i < (dg_Produtos.RowCount); i++) { sComando += dg_Produtos.Rows.Cells["Nome_Produto"].Value + "</lf>"; sComando += String.Format("{0:#,##0.00}", dg_Produtos.Rows.Cells["Quantidade"].Value).Replace(",","."); sComando += " R$" + String.Format("{0:#,##0.00}", dg_Produtos.Rows.Cells["Preco_Unitario"].Value).Replace(",", "."); sComando += " R$" + String.Format("{0:#,##0.00}", dg_Produtos.Rows.Cells["TTProduto"].Value).Replace(",", "."); sComando += "</lf>"; sComando += "</linha_simples>"; } sComando += "</zera></ad><n>Total Produtos R$:" + ctxt_Sub_Total.Text.Replace(",", ".") + "</lf>"; sComando += "Desconto (%):" + ntxt_DescontoP.Text.Replace(",", ".") + " R$" + ctxt_DescontoV.Text.Replace(",", ".") + "</lf>"; sComando += "TOTAL CUPOM R$:" + ctxt_Total_Geral.Text.Replace(",", ".") + "</n></lf></lf></lf></lf>"; sComando += "</zera></ae></fn>Ass.:________________________________________</lf></lf></lf>"; sComando += "</linha_simples>"; sComando += "</fn><c><i>" + empresa.Mensagem + "</lf></lf></lf>"; sComando += "</linha_simples>"; sComando += "</fn>Methodus Tecnologia e Sistemas 32-98847-3655</i></c></lf>"; sComando += "</linha_simples>"; sComando += "</corte_parcial>"; o comando para o componente eu passo assim: sRet = NG_Globais.Envia_Comando_Acbr("ESCPOS.imprimir(" + sComando + ")"); Como teste eu usei o Replace()para substituir a virgula por ponto, e funcionou, mas para números na casa dos milhares vai ficar estranho.
  18. Olá, Boa tarde. Estou utilizando uma impressora DARUMA DR700 (porta serial) no componente ESCPOS para imprimir um cupom não fiscal. A impressão é abortada quando se encontra uma virgula dentro da string. Segue o valor da string: </zera></linha_simples> </zera></ce>CUPOM NÃO FISCAL</lf> </zera></ae></fn></linha_simples> Cliente:EUSTAQUIO MAURICIO GONTIJO</lf> Endereço:RUA JOSINA MARCIANO</lf> Condição:60 dias</lf> Vendedor:ACCACIO FERREIRA DA SILVA</lf> </linha_dupla> Produto</lf> Qtde R$Unit. R$Total</lf> </linha_dupla> </lf>COLCHA CASAL CETIM ALEGRA 1 BABADO</lf> 15,00000 R$43,00000 R$645,00000</lf> COLCHA CASAL CETIM FLORENCE 1 BABADO</lf> 15,00000 R$43,00000 R$645,00000</lf> COLCHA CASAL OXFORD CORACAO INGLES 1B</lf> 15,00000 R$43,00000 R$645,00000</lf> COLCHA CASAL CETIM EXUBERANTE</lf> 15,00000 R$43,00000 R$645,00000</lf> </zera></ad>Total Produtos R$:2.580,00</lf> Desconto (%):0,000 R$0,00</lf> TOTAL CUPOM R%:2.580,00</lf> </lf> </lf> </zera></ae></fn>Ass.:________________________________________</lf> </lf> </lf> </fn>O SENHOR E MEU PASTOR, NADA ME FALTARA...SL 23</lf> </lf> </lf> </fn>Methodus Tecnologia e Sistemas </lf> </lf> </lf> </corte_parcial> A impressão é abortada logo após o número 15 da linha em negrito acima.
  19. Ah, ok! Obrigado, estava fazendo confusão com a pasta de instalação do Monitor Plus.
  20. Olá Daniel, Obrigado pela resposta. Eu instalei o AcbrMonitorPlus. Tem certeza que há exemplos c# lá?
  21. Essa TAG não vem no retorno da NFe.Consulta.Cadastro()?
  22. Essa TAG <indIEDest> não faz parte do retorno ao se executar a NFe.ConsultaCadastro()?
  23. Olá amigos, Bom dia! Sou novo por aqui e gostaria de saber se estou no caminho certo. Trabalho com o MS visual Studio, C#. Ao utilizar a NFe.ConsultaCadastro() estou criando o TXT com o camando na pasta monitorada e lendo o TXT de retorno, utilizando o código abaixo: No código leio todas as linhas do TXT de retorno e pego separadamente as informações de antes e depois do sinal de "=" public static string[,] Envia_Comando_Acbr(string sComando) { string[,] sRet = new string[2,35]; string sNomeArquivo = @"C:\Methodus\Cupom\Monitor\Envio\ENT.TXT"; string sNomeArquivoRet = @"C:\Methodus\Cupom\Monitor\Retorno\ENT-resp.TXT"; string sAux; bool sLocalizado = false; #region Envia Comando try { using (StreamWriter writer = new StreamWriter(sNomeArquivo)) { writer.Write(sComando);//Cria TXT com a string de comando recebida em sComando } } catch (Exception ex)//Se acontece erro na criação do TXT { sRet[0,0] = "ERRO:"; sRet[1,0] = ex.Message; return sRet; } #endregion #region Retorno //Faz loop enquanto não encontra arquivo de retorno do { //Se não encontra retorno aguarda um instante para sua criação e liberação System.Threading.Thread.Sleep(1000); if (File.Exists(sNomeArquivoRet))//Arquivo encontrado { try { StreamReader sr = new StreamReader(sNomeArquivoRet); using (sr) { int Y = 0; while ((sAux = sr.ReadLine()) != null)//Lê todas as linhas até o final do arquivo { int i = sAux.IndexOf(':');//Pega posição do caractere ":" int itam = sAux.Length - (i + 1); if (i > 0)//Se encontra caractere ":" { sRet[0,Y] = sAux.Substring(0, i);//Carrega lado esquerdo do caractere ":" sRet[1,Y] = sAux.Substring(i + 1, itam);//Carrega Lado dirito do caractere ";" } int z = sAux.IndexOf('=');//Pega posição do caractere "=" int ztam = sAux.Length - (z + 1); if (z > 0)//Se encontra caractere "=" { sRet[0,Y] = sAux.Substring(0, z);//Carrega lado esquerdo do caractere ":" sRet[1,Y] = sAux.Substring(z + 1, ztam);//Carrega Lado dirito do caractere ";" } Y += 1; } } sLocalizado = true;//Marca como verdadeiro que arquivo retorno foi localizado sr.Close(); File.Delete(sNomeArquivoRet);//Deleta arquikvo de retorno } catch (Exception ex)//Em caso de erro na leitura do retorno { sRet[0,0] = "ERRO:"; sRet[1,0] = ex.Message; } } } while (sLocalizado == false); #endregion return sRet;//retorna string com todas as linhas } É pra funcionar assim mesmo, ou tem um jeito mais fácil de fazer? Deixei passar alguma coisa no tratamento dos retornos? Obrigado pela ajuda.
×
×
  • 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...