Ir para conteúdo
  • Cadastre-se

Italo Giurizzato Junior

Consultores
  • Total de ítens

    42.674
  • Registro em

  • Última visita

  • Days Won

    1.241

Tudo que Italo Giurizzato Junior postou

  1. Boa tarde Neguta, Os provedores de NFSe não implementaram em seus webservices a consulta ao Status de Serviço. Somente a SEFAZ implementou para a NFe e CTe.
  2. Boa tarde stonebit, E os fontes do programas exemplos, você também atualizou?
  3. Bom dia José, Como dito antes são poucos os provedores que implementaram o webservice GerarNFSe, aos poucos estamos implementanto no componente essa opção para os provedores que a possuem. Quanto ao schema sim, é a propriedade PathSchemas.
  4. Bom dia Jocimar, No primeiro momento você pode se manifestar como: Ciência da Operação e depois Operação Realizada para uma mesma NFe. Ou seja primeiro você diz que comprou mesmo a mercadoria do fornecedor que emitiu a NFe e quando a mercadoria chegar você diz que recebeu (operação realizada). Para mais detalhes leia a NT 2012/002.
  5. Bom dia John, O XML: <consNFeDest xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"> <tpAmb>1</tpAmb> <xServ>CONSULTAR NFE DEST</xServ> <CNPJ>XXXXXXXXXXXXX</CNPJ> <indNFe>0</indNFe> <indEmi>0</indEmi> <ultNSU>5915130479</ultNSU> </consNFeDest> Se refere ao pedido de consulta, veja a tag inicial: consNFeDest = Consulta a NFe Destinadas, é esse XML que é enviado para SEFAZ solicitando uma consulta, portanto não se trata de um retorno. Vamos ao outro XML: <retConsNFeDest xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01"> <tpAmb>1</tpAmb> <verAplic>1.0.0</verAplic> <cStat>137</cStat> <xMotivo>Nenhum documento localizado para o destinatario</xMotivo> <dhResp>2012-12-17T15:20:22</dhResp> <indCont>1</indCont> <ultNSU>5914630479</ultNSU> </retConsNFeDest> Este sim é o retorno da SEFAZ, veja a tag inicial: retConsNFeDest = Retorno da Consulta a NFe Destinadas. Vamos interpretar esse XML, para isso abra a NT 2012/002 página 12. cStat = código do status da resposta, que neste caso foi 137 = Nenhum documento localizado, veja bem, este retorno não retornou nenhum documento. indCont = indicador de continuação, que neste caso foi 1 ou seja, SEFAZ possui mais documentos para o CNPJ informado, se retornar 0 (zero), significa que a SEFAZ não possui mais documentos para o CNPJ informado. ultNSU = último NSU (numero sequencial unico) pesquisado na SEFAZ, Se for o caso o solicitante pode continuar a consulta a partir deste numero para obter novos resultados. Muito bem, o que devemos fazer é realizar uma nova consulta e ao faze-la, informar o numero retornado em ultNSU, como você fez. As vezes são necessárias dezenas de consultas para obter os retornos com as NFe, a priori devemos repetir a consulta e a cada consulta informar o ultNSU retornado até que o indCont retorne 0 (zero). Pesquise no fórum você vai encontrar um fragmento de código da minha aplicação que após realizar a consulta, caso ela retorne as NFe é alimentado uma tabela no banco de dados com as chaves das NFe destinadas. Resumindo, Demos primeiramente realizar a consulta, como dito, dezenas de consultas para obter as NFe, para depois manifestarmos sobre cada uma delas. Lembre-se que o Download, é controlado pela SEFAZ e deve ser utilizado em último caso, visto que o emitente tem obrigação legal de armazer o XML assinado e protocolado, pelo periodo imposto pela legislação vigente, ou seja 5 anos, e também a qualquer momento deve disponibilizar o mesmo arquivo ao destinatário, que por sua vez também tem a obrigação de armazena-lo por 5 anos. Logo a finalidade do Download como dito deve ser utilizado em último caso, ou seja tanto o emitente quanto o destinatário perderam o arquivo XML da NFe. Uma aplicação descente deve conter algumas funcionalidades automatizadas, ou seja independente do usuário, neste caso assim que o XML da NFe recebe o protocolo de autorização de uso o DANFE deve ser impresso e o e-mail contendo o XML deve ser enviado para o destinatário. O form da minha aplicação tem 3 botões [Emitir], [imprimir] e [Enviar e-mail], sendo que o Emitir realiza as seguintes funções: Gera o XML, Assina, Valida, Envia para a SEFAZ, caso tenha sindo autorizado: Protocola, Imprimi o DANFE e envia por e-mail o XML e o DANFE em PDF. Já os outros 2 botões são apenas para serem utilizados caso deseja imprimir mais vias do DANFE ou enviar novamente o e-mail caso o destinatário não tenha recebido por algum motivo ou tenha perdido o XML.
  6. Boa noite José, Primeiro você pode se basear no programa exemplo. Segundo, são poucos os provedores que implementaram o webservice para Gerar NFSe, a maioria implementaram o Envio de Lote de RPS. Sendo assim utilize o botão [Gerar e Enviar Lote]. Você deve utilizar a pasta de schema referente a cidade em questão, no caso de Juiz de Fora é a pasta BHISS. Pretendo disponibilizar juntamente com os fontes do programa exemplo uma lista com os nomes das cidades e as respectivas pastas de schemas, ainda esta semana.
  7. Boa noite John, 1. você faz a consulta das NFe destinadas, para saber quais as notas que foram emitidas para você, obtendo assim uma lista das NFe onde você aparece como destinatário. 2. você se manifesta sobre cada uma delas, acusando se realmente realizou aquela compra ou não, ou se a mercadoria foi entregue ou não. 3. havendo a necessidade você realiza o download da NFe que anteriormente possui a sua manifestação como ciência da operação ou operação realizada. Lembre-se que o Download de NFe é controlado pela SEFAZ. Mais um detalhe, o termo correto é Manifestação e não Manifesto, uma vez que existe o Manifesto Eletrônico de Documentos Fiscais - MDF-e, e isso é outra história.
  8. Boa tarde Cleber, Favor atualizar os fontes e testar novamente.
  9. Boa tarde Jocimar, Acredito que você não entendeu aindo o espirito da coisa. Você não manifesta sobre as notas que você emitiu e sim sobre as notas que foram emitidas e você aparece como destinatário e não emitente. Segundo você deve esta informando o CNPJ do fornecedor (emitente da NFe) em algum lugar e sendo que o correto é o CNPJ do destinatário ou seja o seu CNPJ. Por favor leia com atenção a NT 2012/002 e estude o programa exemplo, mais precisamente o botão que se refere a Manifestação do Destinatário.
  10. Boa tarde José, Atualize todos os fontes de todos os componentes e exemplos. Inclui no programa exemplo a cidade de Juiz de Fora. Ao configurar para a cidade de Juiz de Fora e Belo Horizonte favor utilizar a pasta de schemas chamada: BHISS (essa pasta é nova). Realize os testes novamente.
  11. Bom dia ALA, O envio da NFe continua o mesmo o que muda é o cancelamento que passa agora para evento.
  12. Bom dia Jocimar, Como o proprio nome diz: "Manifestação do Destinatário" se refere ao destinatário da mercadoria e não o Emitinte da NFe. Vamos a um exemplo: Você é o fornecedor ou seja o emitente da NFe e eu sou o cliente ou seja o destinatário. Você emite a NFe referente a uma mercadoria que eu comprei. Recebo por e-mail o XML assinado e protocolado e o DANFE em PDF (procedimento este que todos os emitente devem realizar). Na meu controle de estoque, tenho um form que me permite consultar as NFe que foram emitidas (consultar NFe destinadas), ou seja as minhas compras. De posse dessa lista de NFe vou me manifestar sobre cada uma delas, informando a SEFAZ se eu tenho ciência da operação ou não, se recebi o material ou não. Tipos de Manifestação: ----------------------------- Ciência da Operação => é quando eu afirmo que comprei, ou seja existe uma relação comercial entre o emitente (você) e o destinatário (eu). Desconhecimento da Operação => é quando eu nego que comprei. Confirmação da Operação => é quando eu afirmo que comprei e recebi o material. Operação não Realizada => é quando eu afirmo que comprei e não recebi o material. Você como emitente da NFe ou seja fornecedor, tem também os seus fornecedores, ou seja você também compra, logo no seu controle de estoque tem que ter um form para realizar a consulta das NFe destinadas a você e posteriormente se manifestar sobre elas. Lembre-se que a Manifestação do Destinatário tem varias serventias: 1. A SEFAZ fica sabendo que o ciclo fechou ou seja eu comprei o material de você e recebi (por exemplo); 2. O você descobre se alguem está emitindo NFe sem você ter comprado nada dele; 3. A Manifestação do Destinatário é nada mai do que o canhoto eletrônico confirmando que você recebeu o material; 4. Uma NFe que tenha sido manifestada (Operação realizada ou Ciência da Operação) esta liberada para ser baixada através do webservice: Download, caso seja necessário. Atenção não confundir a Manifestação do Destinatário com o Manifesto Eletrônico de Documentos Fiscais - MDF-e, isso já é outro assunto. O MDF-e já esta em funcionamento e algumas empresas vão ser obrigadas a emiti-lo no primeiro semestre de 2013. Espero ter ajudado.
  13. John, Agora retornou um XML contendo a seguinte mensagem de erro: Server was unable to process request ou sejá: Servidor não pôde processar a solicitação. Alguma coisa ainda deve estar fora do lugar. Vamos retomar depois do almoço.
  14. John, Faz um favor, altere no fonte ACBrNFeWebServices as seguintes linhas: if FConfiguracoes.Geral.Salvar then begin FPathArqResp := FormatDateTime('yyyymmddhhnnss',Now)+'-down-nfe.xml'; FConfiguracoes.Geral.Save(FPathArqResp, FRetWS); end; para: if FConfiguracoes.Geral.Salvar then begin FPathArqResp := FormatDateTime('yyyymmddhhnnss',Now)+'-down-nfe.xml'; FConfiguracoes.Geral.Save(FPathArqResp, FRetornoWS); end; realize o teste novamente e poste como anexo o arquivo: <datahora>-down-nfe.xml
  15. Bom dia a todos, Alterei as URLs que apontavam para o sefazvirtual, agora estão apontando para o ambiente nacional. Favor atualizar os fontes e testar por favor.
  16. Bom dia Vinicius, Até onde sei, não, mas vou pesquisar sobre o assunto.
  17. Boa tarde Herik, Ao realizar a consulta de uma NFe, é tornado todos os eventos vinculados a NFe caso ela tenha. Se o evento não for de cancelamento a linha: procEventoNFe.Items.RetEventoNFe.InfEvento.detEvento.xJust; vai retornar vazio.
  18. Bom dia Rodrigo, Se o problema ocorre de vez em quando, conclui-se que o problema esta no provedor e não no componente. Entre em contato com o provedor e expõe o problema.
  19. Bom dia Juliomar, O fonte em questão é o DoACBrNFeUnit ele foi alterado pela última vez pelo André e disponibilizado no dia 23/11/2012, e hoje é 14/12/2012. A alteração feita pelo André foi exatamente para resolver o problema em questão. É aquela velha história, se eu utilizo somente a NFe vou atualizar somente a pasta do componente ACBrNFe, em vez de atualizar tudo, ou seja os fontes dos exemplos, dos componentes, dos pacotes, dos projetos. Ai começa dar esses erros e o pessoal ficam desesperados.
  20. Você não me respondeu em qual unit estava o fragmento de código para que possamos corrigila e identificar outros problemas e disponibilizar para os demais usuários.
  21. Esse fragmento de código é da sua aplicação ou no programa exemplo? if NotaUtil.NaoEstaVazio(Cmd.Params(1)) then ACBrNFe1.DANFE.Impressora := Cmd.Params(1) else ACBrNFe1.DANFE.Impressora := cbxImpressora.Text; Na verdade tanto faz, para corrigir o problema, faça o seguinte: 1. em Uses adicione a unit ACBrDFeUtil; 2. altere o fragmento acima: if DFeUtil.NaoEstaVazio(Cmd.Params(1)) then ACBrNFe1.DANFE.Impressora := Cmd.Params(1) else ACBrNFe1.DANFE.Impressora := cbxImpressora.Text; Isso vai resolver o problema.
  22. Bom dia dcpleal, O que você fez esta errado, as funções que estão comentadas no ACBrNFeUtil agora estão definidas no ACBrDFeUtil. Foi criado a unit ACBrDFeUtil dentro da pasta ACBrComum, pois tinhamos dezenas de funções repetidas nas units ACBrNFeUtil, ACBrCTeUtil, ACBrNFSeUtil e ACBrMDFeUtil. Futuramente as funções que estão comentadas na unit ACBrNFeUtil vão ser excluidas, e ao atualizar os fontes a sua aplicação vai começar a dar erro novamente. A minha sugestão é deixar a unit ACBrNFeUtil como ela se encontra disponivel no SVN e corrigir a sua aplicação para não ter problemas futuros.
  23. Bom dia Michel, Estude esse fragmento de código da minha aplicação, que realiza a consulta de NFe destinadas. procedure TfrmMovManifestacao.btnLocalizarClick(Sender: TObject); var CNPJ, Impresso, sChave, sEmissao, sCNPJ, sNome, sNumero, sSerie, sIEst, sNSU, sTipoNFe: String; Valor: Double; i, j: integer; begin // ======== Dados da Empresa (Destinatario) ============================================= DM_CTA.Empresa.Close; DM_CTA.Empresa.SQL.Clear; DM_CTA.Empresa.SQL.Add('Select * From Sis_Empresa'); DM_CTA.Empresa.SQL.Add('Where Codigo = :xCodigo'); DM_CTA.Empresa.Params[0].AsString:=DM_VEN.ParametrosEmitente.AsString; DM_CTA.Empresa.Active:=True; DM_CTA.Empresa.Open; if copy(DM_CTA.EmpresaCNPJ.AsString,10,4) <> '0000' then CNPJ := Copy(DM_CTA.EmpresaCNPJ.AsString, 2, 14) else CNPJ := Copy(DM_CTA.EmpresaCNPJ.AsString, 1, 9) + Copy(DM_CTA.EmpresaCNPJ.AsString, 14, 2); MemoStatus.Lines.Add('------------------------------------------------------'); MemoStatus.Lines.Add(' => Consultando NFe Destinadas'); MemoStatus.Lines.Add('------------------------------------------------------'); // TpcnIndicadorNFe = (inTodas, inSemManifestacaoComCiencia, inSemManifestacaoSemCiencia); // TpcnIndicadorEmissor = (ieTodos, ieRaizCNPJDiferente); DMNFe.NFe.ConsultaNFeDest( CNPJ, inSemManifestacaoSemCiencia, ieTodos, edtUltNSU.Text ); sStat := IntToStr(DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.cStat); sMotivo := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.xMotivo; case DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.indCont of icNaoPossuiMaisDocumentos: sTemMais := 'N'; icPossuiMaisDocumentos: sTemMais := 'S'; end; sUltimoNSU := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ultNSU; GravaUltimaConsulta; // TpcnIndicadorContinuacao = (icNaoPossuiMaisDocumentos, icPossuiMaisDocumentos); // TpcnSituacaoNFe = (snAutorizado, snDenegado, snCancelada); // TpcnSituacaoManifDest = (smdSemManifestacao, smdConfirmada, smdDesconhecida, smdOperacaoNaoRealizada, smdCiencia); // TpcnTipoNFe = (tnEntrada, tnSaida); if DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.cStat = 138 then begin // Documentos Localizados para o Destinatário if DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.indCont = icPossuiMaisDocumentos then begin edtUltNSU.Text := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ultNSU; MemoStatus.Lines.Add(' Documento Localizado para o Destinatário'); MemoStatus.Lines.Add(' Utilizar o número que esta no campo: Último NSU'); MemoStatus.Lines.Add(' Para uma nova pesquisa.'); MemoStatus.Lines.Add(' '); end else begin edtUltNSU.Text := '0'; MemoStatus.Lines.Add(' Documento Localizado para o Destinatário'); MemoStatus.Lines.Add(' '); end; j := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Count -1; lstChave1.Clear; chkListaNotas.Clear; for i := 0 to j do begin sSerie := ''; sNumero := ''; sCNPJ := ''; sNome := ''; sIEst := ''; sNSU := ''; sEmissao := ''; sTipoNFe := ''; Valor := 0.0; Impresso := ' '; if DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.chNFe <> '' 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. sChave := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.chNFe; sSerie := Copy(sChave, 23, 3); sNumero := Copy(sChave, 26, 9); sCNPJ := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.CNPJCPF; sNome := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.xNome; sIEst := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.IE; case DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.tpNF of tnEntrada: sTipoNFe := 'E'; tnSaida: sTipoNFe := 'S'; end; sNSU := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.NSU; sEmissao := DateToStr(DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.dEmi); Valor := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.vNF; case DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resNFe.cSitNFe of snAutorizado: Impresso := 'A'; snDenegado: Impresso := 'D'; snCancelada: Impresso := 'C'; end; end; if DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.chNFe <> '' then begin // Conjunto de informações resumo da NF-e localizadas. // Este conjunto de informação será gerado quando o Cancelamento da NF-e for homologado. sChave := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.chNFe; sSerie := Copy(sChave, 23, 3); sNumero := Copy(sChave, 26, 9); sCNPJ := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.CNPJCPF; sNome := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.xNome; sIEst := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.IE; case DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.tpNF of tnEntrada: sTipoNFe := 'E'; tnSaida: sTipoNFe := 'S'; end; sNSU := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.NSU; sEmissao := DateToStr(DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.dEmi); Valor := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.vNF; case DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ret.Items.resCanc.cSitNFe of snAutorizado: Impresso := 'A'; snDenegado: Impresso := 'D'; snCancelada: Impresso := 'C'; end; end; // Registra no Banco de Dados as Notas Retornadas pela Consulta DM_VEN.Manifestacao.Close; DM_VEN.Manifestacao.SQL.Clear; DM_VEN.Manifestacao.SQL.Add('Select * From Eve_Manifestacao'); DM_VEN.Manifestacao.SQL.Add('Where Empresa = :xEmpresa'); DM_VEN.Manifestacao.SQL.Add('and Chave = :xChave'); DM_VEN.Manifestacao.Params[0].AsString:=DM_CTA.xCodEmpresa; DM_VEN.Manifestacao.Params[1].AsString:=sChave; DM_VEN.Manifestacao.Active:=True; DM_VEN.Manifestacao.Open; if not ((DM_VEN.ManifestacaoEmpresa.AsString = DM_CTA.xCodEmpresa) and (DM_VEN.ManifestacaoChave.AsString = sChave)) then begin DM_VEN.IncAltDel.SQL.Clear; DM_VEN.IncAltDel.SQL.Add('Insert into Eve_Manifestacao'); DM_VEN.IncAltDel.SQL.Add('(Empresa, Chave, CNPJ, Nome, IE, Emissao, Tipo, Valor,'); DM_VEN.IncAltDel.SQL.Add('Situacao, Confirmacao, NSU, DataEvento, Protocolo)'); DM_VEN.IncAltDel.SQL.Add('Values (:xEmpresa, :xChave, :xCNPJ, :xNome, :xIE, :xEmissao, :xTipo,'); DM_VEN.IncAltDel.SQL.Add(':xValor, :xSituacao, :xConfirmacao, :xNSU, :xDataEve, :xProtocolo)'); DM_VEN.IncAltDel.Params[0].AsString:=DM_CTA.xCodEmpresa; DM_VEN.IncAltDel.Params[1].AsString:=sChave; DM_VEN.IncAltDel.Params[2].AsString:=sCNPJ; DM_VEN.IncAltDel.Params[3].AsString:=sNome; DM_VEN.IncAltDel.Params[4].AsString:=sIEst; DM_VEN.IncAltDel.Params[5].AsDateTime:=StrToDate(sEmissao); DM_VEN.IncAltDel.Params[6].AsString:=sTipoNFe; DM_VEN.IncAltDel.Params[7].AsFloat:=Valor; DM_VEN.IncAltDel.Params[8].AsString:=Impresso; DM_VEN.IncAltDel.Params[9].AsInteger:=-1; DM_VEN.IncAltDel.Params[10].AsString:=sNSU; DM_VEN.IncAltDel.Params[11].AsDateTime:=0; DM_VEN.IncAltDel.Params[12].AsString:=''; DM_VEN.IncAltDel.ExecSQL; end; end; // Fim do For end else begin // Nenhum Documento Localizado para o Destinatário if DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.cStat = 137 then begin if DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.indCont = icPossuiMaisDocumentos then begin edtUltNSU.Text := DMNFe.NFe.WebServices.ConsNFeDest.retConsNFeDest.ultNSU; MemoStatus.Lines.Add(' Nenhum Documento Localizado para o Destinatário'); MemoStatus.Lines.Add(' Utilizar o número que esta no campo: Último NSU'); MemoStatus.Lines.Add(' Para uma nova pesquisa.'); MemoStatus.Lines.Add(' '); end else begin edtUltNSU.Text := '0'; MemoStatus.Lines.Add(' Nenhum Documento Localizado para o Destinatário'); MemoStatus.Lines.Add(' '); end; end else begin MemoStatus.Lines.Add(' Falha ao realizar a consulta.'); MemoStatus.Lines.Add(' ' + sStat + ' - ' + sMotivo); MemoStatus.Lines.Add(' '); end; end; MontaChkLista; AtivaBotao; end;
  24. Boa tarde Juliana, Atualize os fontes e teste, fazendo o favor.
×
×
  • 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...