marcelo_cwb
Membros-
Total de ítens
15 -
Registro em
-
Última visita
Contact Methods
-
Website URL
http://harbourdeveloper.blogspot.com.br
Últimos Visitantes
819 visualizações
marcelo_cwb's Achievements
-
Bom dia Mario, Na época em que desenvolvi, fiz em Delphi para um cliente, mas como vi que vc também programa em Harbour (eu tbem...rsss), creio que já deva ter DLL para NFS-e, visto que vc é usuário do SAC. Eu já fiz um sistema usando Harbour e MiniGUI + MySQL usando DLL do ACBr para NFC-e, creio que o caminho seja o mesmo, só observando as considerações que fiz na minha postagem original, que cada provedor faz da forma que mais lhe convém, portanto, o segredo mesmo para gerar e enviar uma NFS-e é entender a forma como o provedor faz uso das regras e normas estabelecidas pelo governo federal, entender a parte técnica seria mais simples. Abraço Marcelo Neves (41)98898-2866 - Whats http://harbourdeveloper.blogspot.com/
-
Boa tarde Italo, Muito obrigado pelo seu retorno, agora estou seguro dos passos a seguir. Realmente, não é fácil entender a dinâmica de uma NFS-e, ainda bem que tem o ACBr, se com ele já não é simples, imagina sem...rsss. Abração
-
Boa noite, Compilei o exemplo da pasta C:\trunk2\Exemplos\ACBrDFe\ACBrNFSe\Delphi para entender o funcionamento de uma NFS-e no ACBr, além de ver os fontes tbem. Consegui gerar XML contendo 1 e mais de 1 RPS, enviar para o ambiente de homologação ( Betha v2.02 ) e imprimir a nota, mas ainda não estou seguro que entendi perfeitamente todo o processo, pelo que li aqui no Fórum, ao contrário de uma NF-e ou NFC-e onde cria-se um XML que seria a nota primeiro e depois envia-se para obter retorno da Sefaz, na NFS-e cria-se um XML com o RPS e se o mesmo for validado, depois vem automaticamente a nota, seria isso mesmo ? Eu fiz os testes usando essa sequência : 1 - botão " Gerar Lote RPS " , botão " Enviar Lote RPS ( Enviar ) " e depois botão " Imprimir DANFSe " 2 -Marquei todas essas opções de salvar, pelo que li se não marcar, quando for enviada a NFS-e dará erro e não salvará 3 - A nota apareceu no preview do Fortes Report, mas sem nenhuma informação !!! 4 - Os arquivos gerados em disco para o exemplo que fiz foram esses : Procurei sanar essas informações buscando no Fórum, mas não consegui chegar em uma conclusão segura de que fiz tudo corretamente, pois quando estiver em produção não pode haver falhas, tenho bastante experiência com NF-e e NFC-e, mas com a NFS-e, como nunca fiz antes, preciso de ajuda. Obrigado
-
Necessário Homologação de Software para emitir NFC-e ?
um tópico no fórum postou marcelo_cwb NFC-e - Nota Fiscal do Consumidor Eletrônica
Nos tempos da ECF, era necessário homologar o software na Receita, agora com a NFC-e, ainda é necessário ? -
Estou com problemas quando tento fazer o seguinte : Tenho uma rotina para realizar a Manifestação de NF-e e obter os resumos de XML, para depois dar ciência (manifestar) e depois baixar o XML completo. Quando configuro o componente em : Certificados / ArquivoPFX / DadosPFX / NumeroSerie / Senha diretamente para somente 1 certificado de 1 empresa, dá certo, porém, quando tento fazer um loop para percorrer a tabela empresas que contém 11 CNPJ diferentes, e faço no código fonte isso : v_cnpj_ant := qrEmpresas.FieldByName('cnpj').Value; vUltimoNSU := qrEmpresas.FieldByName('nsu').Value; v_razao_social := qrEmpresas.FieldByName('razao').Value; v_nome_empresa := qrEmpresas.FieldByName('nome').Value; v_arquivopfx := qrEmpresas.FieldByName('cer_endereco').Value; v_numserie := qrEmpresas.FieldByName('cer_chave').Value; v_senhacert := qrEmpresas.FieldByName('cer_senha').Value; ACBrNFe1.Configuracoes.Certificados.ArquivoPFX := Trim(v_arquivopfx); ACBrNFe1.Configuracoes.Certificados.NumeroSerie := Trim(v_numserie); ACBrNFe1.Configuracoes.Certificados.Senha := Trim(v_senhacert); ocorre o erro Access Violation. Já li bastante sobre esse tipo de erro (não sou programador Delphi, utilizo outra linguagem, mas esse projeto só podia ser em Delphi, por isso algumas coisas fico perdido), e foi dito que parte de um erro de lógica feito pelo programador, porém, por não ter a vivência em Delphi, não consigo entender o que estou errando. Grato por qualquer ajuda.
-
Obrigado pela dica Italo, só não estou conseguindo saber o que alterar no código para que não haja esse intervalo em branco. A rotina é essa : procedure TfrmMain.Button1Click(Sender: TObject); var CNPJ, Impresso, sChave, sEmissao, sCNPJ, sNome, sNumero, sSerie, sIEst, sNSU, sTipoNFe, sStat, sMotivo, sUltimoNSU: String; Valor: Double; i, j, k: integer; bTemMais: Boolean; UF_Autor: Integer; Ult_NSU: String; tnEntrada: String; tnSaida: String; snAutorizado: String; snDenegado: String; snCancelado: String; Qtd_Cons: Integer; fiChave: string; fiCNPJ: string; fiNome: string; fiIE: string; fiDataEmi: string; fiTpNF: string; fiValor: currency; fiNumProt: string; fiNSUantes: string; ArquivoINI: TIniFile; Mensagem: string; vUfAutor: string; vUltimoNSU: string; begin { recuperar do arquivo INI informações } ArquivoINI := TIniFile.Create('c:\certificados\config.ini'); vUfAutor := ArquivoINI.ReadString('manifesto', 'uf_autor', 'Erro ao ler o valor'); vUltimoNSU := ArquivoINI.ReadString('manifesto', 'ultimo_nsu', 'Erro ao ler o valor'); ArquivoINI.Free; CNPJ := Trim(labelCnpj.Caption); UF_Autor := StrToInt(vUfAutor); Ult_NSU := Trim(vUltimoNSU); Qtd_Cons := 9999; lblMensagem.Caption := 'Consultando Notas na SEFAZ, aguarde...'; k := 0; repeat inc(k); ACBrNFe1.DistribuicaoDFePorUltNSU(UF_Autor, CNPJ, Ult_NSU); sStat := IntToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat); sMotivo := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then bTemMais := False else bTemMais := True; sUltimoNSU := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU; Ult_NSU := sUltimoNSU; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 then begin lblRetorno.Caption := 'Foram encontradas notas na SEFAZ para baixar...'; j := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count - 1; for i := 0 to j do begin fiChave := ''; fiCNPJ := ''; fiNome := ''; fiIE := ''; fiDataEmi := ''; fiTpNF := ''; fiValor := 0.0; fiNumProt := ''; fiNSUantes := ''; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe <> '' then begin { Conjunto de informações resumo da NF-e localizadas. Este conjunto de informação será gerado quando a NF-e for autorizada ou denegada } fiChave := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe; fiCNPJ := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.CNPJCPF; fiNome := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.xNome; fiIE := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.IE; fiDataEmi := DateToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.dhEmi); fiValor := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.vNF; fiNSUantes := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].NSU; end; // gravar na tabela : resumo_xml //------------------------------ Conexao.BeginTrans; qrNotasProcessadas.Append; qrNotasProcessadas.FieldByName('chave').AsString := fiChave; qrNotasProcessadas.FieldByName('cnpj').AsString := fiCNPJ; qrNotasProcessadas.FieldByName('nome').AsString := fiNome; qrNotasProcessadas.FieldByName('ie').AsString := fiIE; qrNotasProcessadas.FieldByName('data_emi').AsString := fiDataEmi; qrNotasProcessadas.FieldByName('tp_nf').AsString := '-'; qrNotasProcessadas.FieldByName('valor').AsCurrency := fiValor; qrNotasProcessadas.FieldByName('num_protocolo').AsString := '-'; qrNotasProcessadas.FieldByName('nsu_antes').AsString := fiNSUantes; qrNotasProcessadas.Post; Conexao.CommitTrans; DBGrid_notas.Refresh; end; // Fim do For end else begin // Nenhum Documento Localizado para o Destinatário if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then begin lblRetorno.Caption := 'Não existem mais documentos para baixar da SEFAZ...'; end else begin lblRetorno.Caption := 'Falha ao realizar a consulta : '+sStat + ' ' +sMotivo ; end; end; Application.ProcessMessages; until not bTemMais; ACBrNFe1.Free; end; Agradeço qualquer ajuda, obrigado.
-
Prezados, boa noite, Com a ajuda obtida aqui no Fórum e os exemplos do ACBr, consegui montar uma rotina para solicitar as notas emitidas contra um CNPJ e fazer o manifesto, porém, enquanto as notas estão vindo para o grid, eu percebo que as vezes não vem nenhuma informação de nota, fica a linha em branco, porém a contagem do NSU segue na sequência correta, como na imagem anexada, por exemplo, veio 5 notas, o NSU da quinta nota era 150, e logo abaixo ficaram 10 linhas em branco e depois voltou a aparecer dados de notas, e o NSU é 160, o que pode estar ocorrendo ? Deixo uma imagem e o fonte para solicitar um auxílio, obrigado. lblMensagem.Caption := 'Consultando Notas na SEFAZ, aguarde...'; k := 0; repeat inc(k); ACBrNFe1.DistribuicaoDFePorUltNSU(UF_Autor, CNPJ, Ult_NSU); sStat := IntToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat); sMotivo := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then bTemMais := False else bTemMais := True; sUltimoNSU := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU; Ult_NSU := sUltimoNSU; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 then begin lblRetorno.Caption := 'Foram encontradas notas na SEFAZ para baixar...'; j := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count - 1; for i := 0 to j do begin fiChave := ''; fiCNPJ := ''; fiNome := ''; fiIE := ''; fiDataEmi := ''; fiTpNF := ''; fiValor := 0.0; fiNumProt := ''; fiNSUantes := ''; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe <> '' then begin { Conjunto de informações resumo da NF-e localizadas. Este conjunto de informação será gerado quando a NF-e for autorizada ou denegada } fiChave := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe; fiCNPJ := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.CNPJCPF; fiNome := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.xNome; fiIE := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.IE; fiDataEmi := DateToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.dhEmi); fiValor := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.vNF; fiNSUantes := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].NSU; end; // gravar na tabela : resumo_xml //------------------------------ Conexao.BeginTrans; qrNotasProcessadas.Append; qrNotasProcessadas.FieldByName('chave').AsString := fiChave; qrNotasProcessadas.FieldByName('cnpj').AsString := fiCNPJ; qrNotasProcessadas.FieldByName('nome').AsString := fiNome; qrNotasProcessadas.FieldByName('ie').AsString := fiIE; qrNotasProcessadas.FieldByName('data_emi').AsString := fiDataEmi; qrNotasProcessadas.FieldByName('tp_nf').AsString := '-'; qrNotasProcessadas.FieldByName('valor').AsCurrency := fiValor; qrNotasProcessadas.FieldByName('num_protocolo').AsString := '-'; qrNotasProcessadas.FieldByName('nsu_antes').AsString := fiNSUantes; qrNotasProcessadas.Post; Conexao.CommitTrans; DBGrid_notas.Refresh; end; // Fim do For end else begin // Nenhum Documento Localizado para o Destinatário if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then begin lblRetorno.Caption := 'Não existem mais documentos para baixar da SEFAZ...'; end else begin lblRetorno.Caption := 'Falha ao realizar a consulta : '+sStat + ' ' +sMotivo ; end; end; Application.ProcessMessages; until not bTemMais; ACBrNFe1.Free;
-
Resolvido, muito obrigado por toda a ajuda e tempo dispensados para resolver meu problema, utilizando outra máquina também com Windows 10 64bits funcionou, portanto o problema é com a máquina que uso para trabalhar, algo está bloqueando o acesso ao Ambiente Nacional ou pior, tem algo na minha máquina que o Ambiente Virtual detectou e negou meu acesso. Como faz muito tempo que uso essa máquina, e não somente eu utilizo, vou fazer backup de tudo e formatar. Mais uma vez, obrigado a todos !
-
Felipe, obrigado pela ajuda, mas ainda não foi, atualizei as cadeias de acordo com o que vc enviou e nada, agora estou arrumando outra máquina para fazer o mesmo teste do E-CAC, já reporto o resultado.
-
Felipe, pela imagem abaixo creio que entendi o que está acontecendo, mas com certeza preciso de sua experiência para me orientar. Obrigado
-
Bom dia Osmar, Bom dia Felipe Obrigado pelas ajudas, mas ainda persiste a mesma mensagem de erro que postei, ERRO HTTP 403, mudei para 91 e setei as configurações SSL como informado. Estou usando o Delphi Rio Community Edition, o ACBr baixei pelo SVN e atualizei ontem, gerei todos os componentes com a própria ferramenta de instalação tomando o cuidado de marcar a opção "excluir arquivos antigos". O Windows que utilizo é a versão 10 64bits atualizada. O interessante é que baixei o programa da Receita que faz o Manifesto, aquele feito em Java, e lá tbem não vai, porém, dentre o amontoado de erro que o LOG mostra, ele diz que pode estar faltando a cadeia certificadora, dai pergunto, qual o lugar correto para baixar essa cadeia certificadora ? Logo abaixo estou enviando algumas informações referente ao certificado digital do meu cliente, para quem tem mais conhecimento poder ter base. Abaixo imagem de como estão minhas configurações de internet em relação a TLS, extraídas via IE 11. Obrigado por qualquer ajuda, será muito bem vinda, eu já tenho bastante experiência em criar o XML de NF-e e NFC-e, e nunca tive esse tipo de problema, mas com o manifesto, que na minha inocência achei ser a coisa mais simples do mundo, estou levando um baile.
-
Estou desde ontem pesquisando o Fórum e vendo/testando tudo relacionado a esse erro ( ERRO HTTP 403 ) que encontrei aqui no fórum, porém sem sucesso até o momento, não sei se pq testei sábado e domingo se o ambiente está fora do ar, de qualquer maneira envio algumas imagens mostrando o código fonte ( retirado aqui do fórum ), o erro e como configurei o componente. Já desinstalei o certificado e instalei novamente, ele está no prazo e tbem instalei uma cadeia certificadora que um dos moderadores aqui do fórum disponibilizou. Obrigado
-
Estou montando rotina para emissão do REINF, porém um detalhe muito importante está faltando, um modelo de XML para o registro R-1000 e R-2099, apesar de ler diversas vezes o manual, não ficou claro quais informações devem fazer parte do XML. Obrigado
-
Muito obrigado Marchetti, vou fazer uma implementação em um sistema programado com Harbour, utilizando a versão FREE, e com certeza depois passarei para a versão com manutenção. Só mais uma dúvida, para C#, a única forma de utilizar o ACBr é através do monitor ? Através de componentes na IDE somente Delphi e Lazarus, é isso ? Abraços Marcelo Neves harbourdeveloper.blogspot.com.br
-
Boa noite, Usando ACBrMonitorPlus, através do comando : NFE.CriarNFe(), é possível enviar um XML ou só é aceito um TXT seguindo as regras já especificadas ? Se aceitar XML, continua utilizando o método de monitoramento ou pode usar TCP ? Obrigado Marcelo Neves