Ir para conteúdo
  • Cadastre-se

magnosystem

Membros Pro
  • Total de ítens

    162
  • Registro em

  • Última visita

Tudo que magnosystem postou

  1. Boa tarde pessoal. Meu certificado digital está vencendo no dia 18/06. Renovei meu certificado e gostaria de adicioná-lo no cadastro da minha empresa (software house) no portal fiscal eletrônico do SAT. Consigo entrar no site do SGRSAT mas quando acesso a opção SOFTWARE HOUSE >>> CADASTRO DA EMPRESA >>> ALTERAR o site fica processando até cair. O caminho para eu cadastrar este novo certificado é este mesmo ? Alguém já passou por este problema ?
  2. Normalizou. Pode pedir para seus clientes reenviar em o arquivo XML.
  3. Caros parceiros programadores. Quem trabalhar com SNGPC e puder entrar em contato in-private eu agradeceria. Parece que a ANVISA não está validando ENTRADAS quando estas tem SAÍDAS no mesmo arquivo xml. Grato Marcelo G. Nogueira.
  4. Acho que eu usei a expressão errada. Eu pensava que modo assíncrono e offline fossem a mesma coisa e não é. Quando eu falei que para driblar isto é só se trabalhar totalmente online, o que é inviável, visto que pode o cliente estar sem internet, ou totalmente offline o que eu não sei se pode. Então Regys quando eu disse inviável trabalhar somente no modo síncrono, entenda, trabalhar somente no modo online.
  5. Neste caso eu acho que não tem jeito. Pois se a nota chegou e você não teve retorno e emitiu a nota em contigencia e o cliente saiu com a chave de contigencia, não há o que fazer. Isso só tem como evitar se você trabalhar somente de modo síncrono o que é totalmente o inviável no ponto de venda ou totalmente de modo assincrono o que eu não sei se é permitido. Acho que como a nfce ainda esta engatinhando talvez surja uma maneira de resolver. Hoje não vejo como.
  6. NFCE.NotasFiscais.Items[0].NFe.Ide.tpEmis := teNormal; NFCE.NotasFiscais.Items[0].NFe.Ide.xJust := ''; NFCE.NotasFiscais.Items[0].NFe.Ide.dhCont := 0; Try NFCE.NotasFiscais.GerarNFe; NFCE.NotasFiscais.Assinar; NFCE.NotasFiscais.Validar; NFCE.Enviar(NFCE.NotasFiscais.Items[0].NFe.Ide.nNF, False, true); Except //exceção muda para pegar o cstat em seguida. End; //cstat = 204 nota já existe com mesmo número e mesma chave. if NFCE.WebServices.Enviar.cStat = 204 then //marca a flag da nota como enviada. Acabei passando o código errado. Se for 204 ela já foi enviada com mesmo número e chave. Portanto, só marcar no seu banco de dados como enviada. Se for 539, isso que dizer que a nota com esse número já foi enviada com uma chave diferente. Aí você altera a chave, como mostra as primeiras linhas e tenta enviar de novo. Se retornar 204, é porque realmente ela já tinha sido enviada. Aí você marca a flag de enviada no seu banco de dados.
  7. Eu acabei de desenvolver o acbrdief. Está funcionando corretamente na geração dos arquivos. Todavia ao validar o arquivo aparece: Registro PAF-ECF Nº Serie DR0812BR000000326375 - 01/07/2015 - Sem registro de Leitura Z na DIEF Já tentei com todos os registros R1 a R7 e também só com o R1, R4 e R5. Enfim, já fiz várias alternâncias. Se alguém tiver um arquivo do DIEF validado e sem erro para anexar eu agradeceria ou qualquer outra dica. ARQUIVO_DIEF_072015.TXT
  8. Bom pessoal, tenho visto muitos comentários aqui no fórum a respeito de como tratar a emissão online / offline da nfc-e. Eu tenho feito assim, e por enquanto tem dado certo. Se alguém tiver alguma experiência e quiser postar aqui seria de muita utilidade. Eu divido em duas etapas: a primeira etapa é o envio da nota offline e a segunda etapa seria o descarregamento (envio) das notas que ficaram offline. Na primeira etapa eu faço o envio usando a rotina normal NFCE.ENVIAR colocando o comando de envio dentro de um bloco try except end. Ficaria mais ou menos assim: Try Rotina de envio de nota Except On E: Exception do if (pos('requisição não enviada', LowerCase(E.Message)) <> 0) or (pos('tempo limite', LowerCase(E.Message)) <> 0) then // Gerar a nota de forma offline end; O erro "requisição não enviada" ocorre quando o cliente está sem internet, já o erro "tempo limite" ocorre quando tem internet mas houve problema de conexão durante o envio. Portanto se ocorrer estes dois erros você emite o nfce offline e grava para posterior envio. Uma nota importante: Ao enviar o componente acbr já vai estar carregado com os dados da nota. Portanto antes de fazer o envio offline altere as seguintes propriedades do componente: NFCE.NotasFiscais.Items[0].NFe.Ide.tpEmis := teoffline; NFCE.NotasFiscais.Items[0].NFe.Ide.xJust := 'Problemas técnicos no envio do cupom eletrônico'; NFCE.NotasFiscais.Items[0].NFe.Ide.dhCont := now; NFCE.NotasFiscais.GerarNFe; NFCE.NotasFiscais.Assinar; NFCE.NotasFiscais.Validar; Feito isto faça o envio offline. Vamos agora a segunda etapa. Enviar os cupons que foram emitidos offline. Da mesma forma você vai fazer o envio em um bloco protegido do try except end como no exemplo acima. Try Rotina de envio de nota Except On E: Exception do if (pos('requisição não enviada', LowerCase(E.Message)) <> 0) or (pos('tempo limite', LowerCase(E.Message)) <> 0) then // Não vai fazer nada, pois o cupom já foi emitido if pos('duplicidade', LowerCase(E.Message)) <> 0 then // tratar duplicidade. end; Para tratar a duplicidade eu fiz da seguinte maneira: Pesquisei o código retornado pelo componente (NFCE.WebServices.Enviar.cStat). Se retornar o código 204 é porque por algum motivo (sabe-se lá qual) a sua nota já foi enviada e está no sefaz com o mesmo número e chave que você está enviando. Neste caso basta colocar uma flag de enviada nesta nota e pronto. Se retornar o código 539 é porque tem uma nota com o mesmo número e chave diferente. Aí que está o pulo do gato. Isso provavelmente ocorreu porque você guardou esta nota para enviar posteriormente quando teve um erro de "Tempo Limite Atingido". A sua nota foi enviada mas você não recebeu o retorno devido a problemas na conexão. E porque a diferença da chave ? Justamente porque você fez alteração (conforme exemplo acima) na propriedade tpemis. Tem um campo da chave nfce que vai com o valor 1 quando emitida online e 9 quando emitida offline, portanto quando você alterou o tipo de emissão automaticamente alterou a chave. Então você faz o seguinte procedimento: NFCE.NotasFiscais.Items[0].NFe.Ide.tpEmis := teNormal; NFCE.NotasFiscais.Items[0].NFe.Ide.xJust := ''; NFCE.NotasFiscais.Items[0].NFe.Ide.dhCont := 0; Try NFCE.NotasFiscais.GerarNFe; NFCE.NotasFiscais.Assinar; NFCE.NotasFiscais.Validar; NFCE.Enviar(NFCE.NotasFiscais.Items[0].NFe.Ide.nNF, False, true); Except //exceção muda para pegar o cstat em seguida. End; if NFCE.WebServices.Enviar.cStat = 100 then //cstat = 100 nota foi enviada e aceita //marca a flag da nota como enviada. Bom, fica aí a minha dica e se puder postem sugestões sobre como otimizar esse tratamento online / offline.
  9. Também estou com o mesmo problema em um cliente. Será que teremos que fazer ajustes no arquivo fr3?
  10. Estou com o mesmo problema amigo. Ainda não sei como vou fazer.
  11. Realmente era isto. Eu estava copiando manualmente as dll's para a pasta do syswow64 do Windows. Limpei a instalação e marquei no instalador a opção para copiar as dll's. Aí deu certo. Obrigado.
  12. Estou com o mesmo problema. Entretanto copie as dll's citadas e ainda não resolveu. Tá difícil. Uso Delphi XE5 + Windows 10 64 bits + Acbr do Trunk 2 Detalhe importante: Estou instalando em um computador recém adquirido portanto nunca foi instalado o acbr e por este motivo não tem vestígios do trunk 1.
  13. Obrigado pela resposta. Pois é. Eu não consegui achar um exemplo do acbr com o componente acbrecfvirtualnfce. Tem algum que já vem com o componente. Se sim, onde fica ???
  14. Pessoal bom dia. Eu tinha começado a desenvolver nfce e já estava até imprimindo cupom usando o ecfvirtual. Parei uns tempos e voltei agora e para tal atualizei os fontes do acbr. Desde então está aparecendo a mensagem "Acess Violation at Address 004099B6 in module MagnoPDV" O interessante é que seu eu não colocar nenhum código no evento QuandoVenderItem do AcbrVirtualNFCe o erro desaparece, todavia, fica faltando os parâmetros de ncm e alguns outros e o envio é recusado pelo webservice. Mas basicamente é isto. Basta eu colocar um comando no evento (teste colocando apenas Det.Prod.ncm) que já dá erro. O fonte que está dentro do evento é o abaixo: procedure TPDV.ECFVirtualNFCeQuandoVenderItem(Det: TDetCollectionItem); begin Det.nItem := Datacliente.TBAuxVendas.FieldByName('ITEM').AsInteger; With Det.Prod do Begin cProd := Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString; if Datacliente.ValidaEAN(Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString) then cEAN := Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString else cEAN := ''; xProd := Datacliente.TBAuxVendas.FieldByName('PRODUTO').AsString; With Datacliente.QEXEC do Begin sql.Clear; sql.Add('SELECT NCM FROM PRODUTOS WHERE CODIGO = ' + QuotedStr(Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString)); open; End; if Datacliente.QEXEC.FieldByName('NCM').AsTrimString = '' then NCM := '99999999' else NCM := Datacliente.QEXEC.FieldByName('NCM').AsTrimString; if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then CFOP := '5403' else CFOP := '5102'; qCom := Datacliente.TBAuxVendas.fieldbyname('QUANTIDADE').AsCurrency; if Trim(Datacliente.TBAuxVendas.fieldbyname('UNIDADE').AsString) = '' then uCom := 'UN' else uCom := Datacliente.TBAuxVendas.fieldbyname('UNIDADE').AsString; vUnCom := Datacliente.TBAuxVendas.fieldbyname('VALORUNITARIO').AsCurrency; vDesc := Datacliente.TBAuxVendas.fieldbyname('DESCONTO').AsCurrency; vProd := Datacliente.TBAuxVendas.fieldbyname('SUBTOTAL').AsCurrency; vOutro := 0; indRegra := irTruncamento; end; With Det.Imposto.ICMS do Begin if Datacliente.TBPadrao.FieldByName('SPEDREGIMETRIBUTARIO').AsString = 'SN' then Begin if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then CSOSN := csosn500 else if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Isenta' then CSOSN := csosn300 else if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Não Tributada' then CSOSN := csosn400 else Begin CSOSN := csosn102; orig := oeNacional; pICMS := Datacliente.TBAuxVendas.FieldByName('ALIQUOTA').AsCurrency; vICMS := Datacliente.TBAuxVendas.FieldByName('VALORICMS').AsCurrency; End; End else Begin if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then CST := cst60 else if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Isenta' then CST := cst40 else if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Não Tributada' then CST := cst41 else Begin CST := cst00; pICMS := Datacliente.TBAuxVendas.FieldByName('ALIQUOTA').AsCurrency; vICMS := Datacliente.TBAuxVendas.FieldByName('VALORICMS').AsCurrency; End; End; End; end;
  15. Sim, eu já passei e isto é fato. Resolvi direcionando o ECF para uma porta existente como LPT1.
  16. Estranho. Eu tive o mesmo problema com o cliente. A impressora trava e tem que reiniciar o programa. O log é exatamente igual este. Impressora ELGIN. O estranho é que eu atualizei o acbr algum tempo atrás e fiz as modificações para homologação do PAF. Segundo o cliente, o erro começou quando eu atualizei a versão para o meu PAF atual. Resolvi então voltar a versão anterior do programa (antes de atualizar o acbr) e até agora o erro parou. Será que foi coincidência ou houve alguma mudança recente no acbr que possa estar causando este erro com a impressora elgin ???
  17. O remobjects tem conflito com o ACBR devido aos dois usarem o pacote SYNAPSE. Depois de quebrar um pouco a cabeça no final de semana, descobri uma maneira de contornar isto. Deixei este post aqui pois pode ser útil para outras pessoas. Para correta instalação tem que primeiro instalar o ACBR. Depois de instalar o ACBR instalar os 3 módulos do REMOBJECTS (no meu caso tenho o REMOBJECTS, HYDRA e DATA ABSTRACT). Abrir o pacote SYNAPSE do REMOBJECTS no DELPHI e excluir os arquivos .PAS da pasta SYNAPSE que ficam na parte CONTAINS do pacote. Adicionar o pacote SYNAPSE do ACBR na pasta REQUIRES do pacote do REMOBJECTS. Feito isto, os dois componentes funcionarão normalmente.
  18. Fiz a atualização, mas o erro persiste. O ACBR gera a seguinte mensagem: "Erro ao apagar o arquivo C:\TEF_DIAL\REQ\INTPOS.001". Eu debuguei e vi que foi no ACBRTEFD.Inicializar quando ele apaga os arquivos das pastas. O estranho é que o arquivo fica preso ao Gerenciador TEF e não ao meu PDV. Ou seja, se eu fechar o TEF eu consigo apagar o arquivo. Sem fechar o TEF, mesmo entrando na pasta REQ o windows não deixa. Aí fiz o seguinte: fechei o TEF, apaguei o arquivo da pasta REQ e comentei a função WRITETOTXT e descomentei a antiga. Pronto funcionou. Estranho, mas parece que esta função está gerando o arquivo INTPOS de uma forma que o Gerenciador ao ler deixa ele preso e impossibilita de excluir.
  19. Oi Patrícia. No meu sistema, independente do cliente ter TEF ou não, sempre quando perde a conexão com a impressora, aparece esta pergunta: IMPRESSORA NÃO RESPONDE. TENTAR NOVAMENTE SIM OU NÃO. Quando o usuário responde NÃO, o sistema fecha. Pois veja, se é um sistema fiscal que só funciona com a impressora fiscal e o usuário opta por não tentar mais a conexão com a impressora não há porque o sistema continuar aberto. Sabendo disto vamos à lógica: Quando a conexão com a impressora cai, o sistema vai perguntar se quer tentar novamente. Enquanto o usuário responder SIM e a impressora não responder o sistema vai exibir a pergunta. Quando o usuário responder que não quer tentar novamente, o sistema enviará um NCN para a última transação não confirmada e como eu disse anteriormente, o sistema irá ser fechado. Após fechar o sistema, o usuário só vai conseguir reabri-lo após restabelecer a conexão com a impressora. E ao reestabelecer a conexão o sistema efetua o cancelamento pendente e imprime o comprovante. Espero ter sabido explicar. Qualquer dúvida posta aí.
  20. magnosystem

    TEF HOMOLOGADO

    Em primeiro lugar, gostaria de agradecer ao projeto ACBR. Recentemente fiz minha homologação para TEF DISCADO usando o componente. A homologação foi sem problemas. Teve só dois fatos que gostaria de deixar registrado. 1 - No meu computador o foco funcionou sem problemas, já no computador do homologador não funcionou. O que fiz para resolver foi colocar um componente TTIMER no form que exibe as mensagens do TEF com intervalo 200 e no evento ONTIMER coloquei o seguinte comando: Self.bringtofront; Self.setfocus; 2 - O travamento de teclado do ACBRTEFD só funcionou perfeitamente com a propriedade TRAVARMOUSETECLADO do ACBRECF setado para false. No mais tudo OK. Muito obrigado aos desenvolvedores do ACBR.
  21. Bem após inúmeras pesquisas, formatações, reinstalações de windows sem conseguir resolver o erro, enfim, consegui achar o caminho das pedras. No meu caso, toda vez que eu fechava o delphi dava o erro da ntdll. Bastava eu abrir o delphi e já fechar que dava o erro. Eu nunca esquentei a cabeça até que comecei fazer testes com TEF usando o ACBRTEFD + o pin pad e o programa travava direto com erro da ntdll. Fica a dica aí para quem estiver passando por isso. Basta copiar as dll's da pasta OPENSSL que fica na pasta DLLS do projeto ACBR para a pasta WINDOWS\SYSTEM32. Valeu a todos pelas dicas.
  22. Sim, atualizei pelo SVN e instalei o ACBR do zero.
  23. Já reinstalei o windows 7 32 e não sei mais o que fazer. Está dando este erro. Alguém já tem a solução ???
  24. Windows Xp. Testei no meu notebook e com windows xp também e funcionou. No computador desktop não funciona.
  25. Estou passando por um problema no mínimo estranho. Quando executo o demo do ACBR ou meu programa pela IDE do DELPHI consigo fazer qualquer operação com NFE. Agora se compilo o programa e abro diretamente o executável qualquer operação com NFE me retorna o seguinte erro: An error ocurred in the secure channel support. Já testei no WEBSERVICE de MG e SP e o erro ocorre em ambos. O erro ocorre tanto com meu programa como com o DEMO DO ACBR. O certificado que estou utilizando é um token da SERPRO.
×
×
  • 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.