Ir para conteúdo
  • Cadastre-se

Paulo Tenório

Membros
  • Total de ítens

    274
  • Registro em

  • Última visita

Tudo que Paulo Tenório postou

  1. Mauro, não sei de qual Estado você é, talvez seja algum problema localizado no servidor de sua UF. Aqui no ES utilizamos servidores virtuais, que rodam no ambiente nacional. Em alguns momentos pode até acontecer de saírem do ar. Como são servidores distintos para cada tarefa, às vezes cai só o de recepção de NFe, às vezes só o de manifestação, às vezes só o de download... Mas nunca ocorreu comigo o que você relatou. Boa sorte, espero que estabilize tamb´m por aí.
  2. O componente sempre destacou no XML os impostos. O que precisará ser modificado é somente o DANFE, para que exiba os valores do PIS e da COFINS de cada item. Ainda não é obrigatório, por isso acho que ninguém colocou a mão na massa para realizar tal mudança.
  3. Um exemplo de como estou utilizando: hLog.Add(DateTimeToStr(now) + ' - ENVIAR MANIFESTAÇÃO'); IF NOT Solicitamonitor('NFE.ENVIAREVENTO("[EVENTO]' + ' idLote=1' + chr(13) + ' [EVENTO001]' + chr(13) + ' chNFe=' + Trim(Modulo.AdNFE_DestinadaschNFe.Value) + chr(13) + ' CNPJ=' + Trim(Modulo.ADOEmitente.FieldByName('CNPJCPF').AsString) + chr(13) + ' dhEvento=' + DateTimeToStr(IncMinute(NOW, -30)) + chr(13) // <<== garantir 30 minutos de defasagem e não conflitar com servidor da SEFAZ + ' tpEvento=' + '210200' + chr(13) + ' nSeqEvento=1' + chr(13) + ' versaoEvento=1.00' + '")' ) THEN BEGIN hLog.Add(DateTimeToStr(now) + ' - ' + Modulo.User + ', ocorreu uma falha no Webservice da SEFAZ. Analise a mensagem de retorno.'); hLog.Add('BtConfirma'); BtAguarde.Visible := False; BtAguarde.SendToBack; IF FileExists(ArqComando) THEN DeleteFile(PChar(ArqComando)); IF FileExists(ArqResp) THEN DeleteFile(PChar(ArqResp)); RAISE Exception.Create(Modulo.User + ', ocorreu uma falha no Webservice da SEFAZ. Analise a mensagem de retorno.'); END ELSE BEGIN // ************************************************************************************************************************************************************ hLog.Add(DateTimeToStr(now) + ' - ARMAZENA EVENTO NO BANCO DE DADOS'); // ARMAZENA EVENTO NO BANCO DE DADOS WITH Tadocommand.Create(Self) DO BEGIN Connection := Modulo.Adoconnection; Commandtype := Cmdtext; Commandtext := 'Insert Into AdNotaEntEventos ( ' + 'Cod_Empresa, ' + 'Cod_Filial, ' + 'Cod_Fornec, ' + 'Cod_Modelo, ' + 'Cod_Serie, ' + 'Cod_Nota, ' + 'ChNFe, ' + 'DhRecbto, ' + 'NProt, ' + 'tpEvento, ' + 'nSeqEvento, ' + 'xJust, ' + 'xCorrecao, ' + 'xCondUso' + ') Values (' + ':Cod_Empresa, ' + ':Cod_Filial, ' + ':Cod_Fornec, ' + ':Cod_Modelo, ' + ':Cod_Serie, ' + ':Cod_Nota, ' + ':ChNFe, ' + ':DhRecbto, ' + ':NProt, ' + ':tpEvento, ' + ':nSeqEvento, ' + ':xJust, ' + ':xCorrecao, ' + ':xCondUso' + ')'; Parameters.Paramvalues['Cod_Empresa'] := Empresa; Parameters.Paramvalues['Cod_Filial'] := Filial; Parameters.Paramvalues['Cod_Fornec'] := Cod_Fornec; Parameters.Paramvalues['Cod_Modelo'] := Modelo; Parameters.Paramvalues['Cod_Serie'] := Serie; Parameters.Paramvalues['Cod_Nota'] := Cod_Nota; Parameters.Paramvalues['ChNFe'] := Trim(Copy(chNFe, 1, 44)); Parameters.Paramvalues['DhRecbto'] := DhRecbto; Parameters.Paramvalues['NProt'] := NProt; Parameters.Paramvalues['tpEvento'] := tpEvento; Parameters.Paramvalues['nSeqEvento'] := nSeqEvento; Parameters.Paramvalues['xJust'] := xJust; Parameters.Paramvalues['xCorrecao'] := xCorrecao; Parameters.Paramvalues['xCondUso'] := xCondUso; Connection.BeginTrans; TRY Execute; EXCEPT ON E: Exception DO BEGIN Connection.RollbackTrans; hLog.Add(DateTimeToStr(now) + ' - ' + Modulo.User + ', ocorreu uma falha: ' + #13 + 'Erro: ' + E.Message); hLog.Add('BtConfirma'); hLog.Add(Commandtext); BtAguarde.Visible := False; BtAguarde.SendToBack; IF FileExists(ArqComando) THEN DeleteFile(PChar(ArqComando)); IF FileExists(ArqResp) THEN DeleteFile(PChar(ArqResp)); RAISE Exception.Create(Modulo.User + ', ocorreu uma falha: ' + #13 + 'Erro: ' + E.Message); END; END; Connection.CommitTrans; Free; END;
  4. Ok Isaque, pode ter certeza que enviarei algumas sugestões sim. Até agora precisei só tomar cuidado com o dhEvento que nunca pode ser superior ao horário da SEFAZ, o resto está perfeito. Amanhã devo concluir minha adaptação à nova versão e darei meu feedback. Utilizo bastante o ACBRNFEMONITOR a qui na empresa pois optamos por ter um único cartão A3 para assinar todas das notas da matriz e de todas as filiais, com o componente NFE precisaríamos de um cartão para cada máquina.
  5. Isaque, em outubro do ano passado o componente NFE foi preparado para realizar as manifestações e consultas de notas destinadas. O que eu fiz foi editar os fontes antigos do monitor, masi especificamente o arquivo DoACBrNFeUnit e criei os comandos de manifestação e consulta. Baseado nos demais comandos e no exemplo da NFE. Montei as respostas do webservice e criei o arquivo de saída. Como ontem apareceu uma versão nova (essa que você subiu) com esses comandos, preferi descartar minha customização e adequar minhas aplicações aos comandos adicionados ao componente.
  6. Eu realizo a Manifestação pelo ACBRMONITOR desde Outubro/2012. Anteriormente eu utilizava uma versão customizada, onde criei a rotina de interpretação do comando recebendo os parâmetros necessários e deveolvendo as respostas do webservice para poder gravar com segurança em meu banco de dados. Na última versão disponibilizada, identificada como 0.7.9.2, já incluíram rotinas para isso e estou modificando minhas aplicações para usá-las pois, infelizmente, não seguiram a nomenclatura e parâmetros nativos do componente ACBRNFE, e eu prefiro manter compatibilidade total com a aplicação.
  7. Mauro, Utilizo esse recurso do ACBRNFEMONITOR diariamente, várias vezes por dia. Aqui funciona perfeitamente. Crio um loop até que indcont retorne 0. Muitas vezes demora pois cada consulta tem o escopo de 50000 registros independente de serem para o seu CNPJ. Dependendo no número de notas fiscais armazenadas na sua UF, pode demorar mesmo. O ideal é sincronizar de 8 em 8 horas ou menos, evitando um acúmulo grande de páginas para serem percorridas. O único cuidado é com o excesso de consumo. Evite sincronizações com intervalos inferiores a uma hora, por segurança. A SEFAZ pode bloqueá-lo por excesso de consumo.
  8. Problema resolvido. Removi internamente todos os componentes ACBR, apaguei a pasta, reiniciei a máquina, criei a pasta, apontei o SVN, instalei os pacotes dos componentes e deu certo.
  9. Boa tarde Ítalo. Mantenho os fontes sempre sincronizados, inclusive o faço várias vezes ao dia. Cheguei ao ponto de apagar toda a pasta ACBR e baixar todos os arquivos do projeto novamente. Apaguei todas as DCU's, instalei, dei rebuild no BuildWithNFE2.BPG, rebuild no ACBRNFEMONITOR e nada, o problema persiste, a classe TArquivosConf não contém a propriedade SalvarCCeCanEvento, vasculhei todo o código-fonte. Comentando a atribuição já citada acima, a compilação passa sem erros mas não gosto desse tipo de coisa. Se fuincionou para alguém tem que funcionar aqui também. É a primeira vez que acontece isso, eu uso os componentes há quase 3 anos e nunca vi isso acontecer.
  10. André, está tudo reinstalado, recompilado e mesmo assim essa propriedade continua não existindo. O jeito foi comentar a atribuição.
  11. Bom dia senhores, Utilizo o Delphi7 e hoje sincronizei os fontes do ACBRNFEMONITOR. Vinha utilizando uma versão customizada para atender às exigências fiscais até que a versão mais atual fosse liberada para os não assinantes do SAC. Ao tentar compilar os fontes atuais, deparei-me com o erro: Undeclared Identifier 'SalvarCCeCanEvento' o erro ocorre na linha: ACBrNFe1.Configuracoes.Arquivos.SalvarCCeCanEvento := cbxSalvaCCeCancelamentoPathEvento.Checked; está na unit: ACBrNFeMonitor1, linha 945. Antecipadamente agradeço a atenção de todos.
  12. Amigos, tudo indica que, na SEFAZ, a montagem das respostas é feita por partes. Cada vez que você envia o comando ela enxerga apenas trechos do banco de dados. Quando envia NSU 0 ela considera o menor NSU disponível e te retorna até onde ela pesquisou. Na próxima consulta, se você enviar o número retornado a consulta dá mais um passo e te retorna até onde ela foi. Enquanto o Indicador de Continuação for 1, significa que podem haver mais notas e, quando retornar 0 é porque no momento não existem mais notas disponíveis para o CNPJ informado. Se após receber o indicador 0 você continuar consultando, pode receber uma advertência de consumo indevido do webservice, cuidado. Depois de um 0, aguarde alguns minutos ou horas. Estou usando o recurso em produção e está perfeito. Indisponibilizo o botão consultar da minha aplicação assim que recebo o indicativo 0. Só o habilito novamente uma hora depois.
  13. Basta não informar o código do orgao no evento de confirmação que dá certo.
  14. Italo, o terceiro parâmetro é para o caso de não realização da operação, onde eu posso fornecer uma justificativa. Acrescentei mais um parâmetro que deu um passo adiante no problema. Antes eu informava o CNPJ do emitente da nota e agora iinformo o CNPJ do destinatário (minha empresa). O erro agora se refere ao código do orgão: NFe.enviarmanifestacao("32120932047581000456550010000038521490609540","210200","","27550193000100 ") OK: Lote de evento processado [MANIFESTACAO] Versao=AN_1.0.0 tpAmb=1 VerAplic=AN_1.0.0 CStat=657 XMotivo=Rejeicao: Codigo do Orgao diverge do orgao autorizador CUF=91 ChNFe=32120932047581000456550010000038521490609540 DhRecbto=24/10/2012 11:34:10 NProt= tpEvento=210200 xEvento= nSeqEvento=1 CNPJDest= emailDest=
  15. Italo, Entendi o funcionamento do processo. Eu primeiro consulto as notas destinadas e tenho o retorno: 24/10/2012 10:40:05 - Nfe.ConsultarDestinadas("27550193000100","1","0") OK: [DESTINADAS] ultNSU=5552542572 ChNFe=33120968571041000171550010008907701008366391 CNPJCPF=68571041000171 xNome=OPTOTAL HOYA S/A dEmi=14/09/2012 vNF=754,32 IE=84659460 tpNF=1 DhRecbto=14/09/2012 16:09:39 cSitNFe=1 cSitConf=0 ChNFe=33120968571041000171550010008907721006618711 CNPJCPF=68571041000171 xNome=OPTOTAL HOYA S/A dEmi=14/09/2012 vNF=139,2 IE=84659460 tpNF=1 DhRecbto=14/09/2012 16:09:39 cSitNFe=1 cSitConf=0 ChNFe=32120927550193000534550010000000281000000287 CNPJCPF=27550193000534 xNome=OTICAS PARIS LTDA dEmi=14/09/2012 vNF=136,7 IE=081251165 tpNF=1 DhRecbto=14/09/2012 16:16:39 cSitNFe=1 cSitConf=0 Jogo a lista em um dataset e apresento ao operador. Ofereço as opções de dar ciência, confirmar, não confirmar e desconhecer a existência da transação fiscal. Baseado no registro selecionado, eu envio ao acbrnfemonitor a chave e a opção selecionada. Está retornando esta falha: 24/10/2012 10:40:10 - NFe.enviarmanifestacao("33120968571041000171550010008907701008366391","210200","") OK: Lote de evento processado [MANIFESTACAO] Versao=AN_1.0.0 tpAmb=1 VerAplic=AN_1.0.0 CStat=213 XMotivo=Rejeicao: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado Digital CUF=91 ChNFe=33120968571041000171550010008907701008366391 DhRecbto=24/10/2012 10:40:11 NProt= tpEvento=210200 xEvento= nSeqEvento=1 CNPJDest= emailDest= Como ainda não existe a confirmação no acbrnfemonitor, criei um comando, baseado no demo do acbrnfe: ELSE IF Cmd.Metodo = 'enviarmanifestacao' THEN BEGIN // Parâmetros: 0=Chave, 1=Tipo do Evento, 2=Justificativa ACBrNFe1.EventoNFe.Evento.Clear; WITH ACBrNFe1.EventoNFe.Evento.Add DO BEGIN infEvento.chNFe := Cmd.Params(0); infEvento.CNPJ := Copy(Cmd.Params(0), 7, 14); infEvento.dhEvento := IncMinute(now, -70); infEvento.tpEvento := StrToTpEvento(oK, Cmd.Params(1)); infEvento.cOrgao := StrToInt(Copy(Trim(Cmd.Params(0)),1,2)); infEvento.detEvento.xJust := Cmd.Params(2); END; ACBrNFe1.EnviarEventoNFe(StrToInt(Copy(Cmd.Params(0), 26, 9))); WITH ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento DO BEGIN Cmd.Resposta := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.xMotivo + sLineBreak + '[MANIFESTACAO]' + sLineBreak + 'Versao=' + verAplic + sLineBreak + 'tpAmb=' + TpAmbToStr(tpAmb) + sLineBreak + 'VerAplic=' + VerAplic + sLineBreak + 'CStat=' + IntToStr(cStat) + sLineBreak + 'XMotivo=' + xMotivo + sLineBreak + 'CUF=' + IntToStr(cOrgao) + sLineBreak + 'ChNFe=' + chNFe + sLineBreak + 'DhRecbto=' + DateTimeToStr(ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento) + sLineBreak + 'NProt=' + nProt + sLineBreak + 'tpEvento=' + TpEventoToStr(tpEvento) + sLineBreak + 'xEvento=' + xEvento + sLineBreak + 'nSeqEvento=' + IntToStr(nSeqEvento) + sLineBreak + 'CNPJDest=' + CNPJDest + sLineBreak + 'emailDest=' + emailDest + sLineBreak + 'XML=' + ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.XML + sLineBreak + 'cOrgao=' + IntToStr(cOrgao) + sLineBreak + 'dhRegEvento=' + DateTimeToStr(dhRegEvento) + sLineBreak + 'Id=' + Id + sLineBreak; END; END;
  16. Bom, analisando melhor o procedimento que eu uso, faço uma consulta à Nota antes de confirmar. Acho que o Italo pode ter razão, o retorno é referente à minha consulta.
  17. Negativo Italo, esse XML é a negação do meu pedido de confirmação de uma NF emitida em outro Estado.
  18. O XML de retorno está em anexo. 33120931341225000135550010002967071002967073-sit.xml
  19. Amigos, No processo de manifestação de Notas Destinadas eu não estou conseguindo confirmar notas fiscais emitidas por fornecedores de outra UF, apenas os da minha própria UF (ES). Para confirmar notas de outro Estado eu preciso configurar em algum lugaro o WS que recebeu a nota?
  20. A versão 0.8.1a do Acbrnfemonitor já consegue consultar e enviar a manifestação do destinatário de notas? Aqui na Empresa utilizamos apenas um certificado Digital A3, por isso todas as operações são centralizadas num servidor com o monitor. O contador está me cobrando a disponibilização dessa manifestação. Obrigado.
  21. Obrigado Igor, Já consegui enviar uma correção de teste pelo ACBRNFeMonitor. Agora vou iniciar a etapa de Notas Destinadas.
  22. Boa tarde, Estou pesquisando e tentenado entender o trabalho com eventos para criar o procedimento de Carta de Correção no meu sistema. Utilizo o AcbrMonitorNFe em um servidor centralizado da Empresa que transmite manipula e processa todas as notas fiscais da matriz e das filiais. Não encontrei nos arquivos de ajuda ou no fórum a sintaxe do comando e uma forma de imprimir o retorno diretamente no Monitor. Alguém tem essa receita de bolo? Obrigado.
  23. Durante meus testes com as 3 versões postadas, recebia o mesmo erro de access violation. Analisando o XML de retorno, percebi que a SEFAZ sempre se referia ao cOrgao com valor 90. Acabei editando os fontes do projeto de exemplro AcbrMonitorNFe2 e editei o trecho de código abaixo: infEvento.dhEvento := now; infEvento.tpEvento := teCancelamento; infEvento.chNFe := ACBrNFe1.WebServices.Consulta.NFeChave; infEvento.detEvento.nProt := ACBrNFe1.WebServices.Consulta.Protocolo; infEvento.detEvento.xJust := Cmd.Params(1); // ACRESCENTEI infEvento.cOrgao := ACBrNFe1.WebServices.Consulta.cUF; // ACRESCENTEI
×
×
  • 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.