-
Total de ítens
38.783 -
Registro em
-
Última visita
-
Days Won
1.107
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Italo Giurizzato Junior postou
-
Sandro, Isso não esta certo, pois o campo ValorIR se refere ao valor do Imposto de Renda e não o valor do ISS retido na fonte. Outra coisa, A tag <Valor_issrf> que é opcional fica dentro de uma lista chamada <lista> e o seu valor deve ser atribuído ao campo: NFSe.Servico.ItemServico[I].ValorISS Já a tag <valor_ir> que é obrigatória fica dentro do grupo <nf> e seu valor deve ser atribuído ao campo: NFSe.Servico.Valores.ValorIr Reveja a sua rotina que alimenta o componente.
-
Boa tarde Felipe, Basta na aba WebService do programa exemplo você selecionar o ambiente de homologação. Qual é a cidade?
-
Acabei de fazer um teste e tive o seguinte resultado: Modo de Envio : Enviar Lote Numero do Lote: 303 Data de Envio : 30/12/1899 Numero do Prot: Sucesso : False Erro(s): Código : 00139 Mensagem: Cadastro informado sem autorizaA A o para emissA o de NFSe.. Correção: ---------
-
ALA, Me diz uma coisa, você acha que anexando o XML do Rps vai ser util para mim? A imagem que você anexou deixa claro que você não informou o numero do protocolo ao consultar a situação do lote. Outra coisa, você configurou o componente para usar o Capicom?
-
Pouso Alegre MG Provedor SigCorp
Italo Giurizzato Junior replied to julianamver's tópico in ACBrNFSe
Boa tarde Juliana, O correto não seria enviar a nota "normal" e depois solicitar o seu cancelamento? -
ACBrNFSeX - TAG <DataEmissao>
Italo Giurizzato Junior replied to Ramon Valentim's tópico in ACBrNFSe
Ramon, Mas que bagunça, no XML do Rps a data de emissão do mesmo deve ser gerado somente a data, já o XML da NFS-e a data de emissão da mesma é gerada pelo provedor contendo data e hora. Vou incluir na minha lista para analisar essa situação. -
ERRO: Falha na validação do Modal do Manifesto
Italo Giurizzato Junior replied to hcn's tópico in ACBrMDFe
Boa tarde, Você utiliza o componente ACBrMDFe ou o ACBrMonitor Plus? -
Mudanças no retorno dos métodos do novo componente de NFS-e: ACBrNFSeX
um tópico no fórum postou Italo Giurizzato Junior Notícias do ACBr
Olá pessoal, Fizemos uma alteração no retorno dos métodos e com isso vai ocorrer uma quebra de código. A motivação dessa alteração foi simplificar a codificação do lado do desenvolvedor e evitar o vazamento de memória, como foi detectado por alguns. Desculpa pelo transtorno mas estamos trabalhando para tornar o novo componente cada vez melhor. Para exemplificar essas mudanças vou apresentar aqui o antes e o depois referente ao método ConsultarSituacao. Antes da alteração: Era necessário definir uma variável (Response por exemplo) para receber o retorno dos métodos, uma vez que eles eram uma função. procedure TfrmACBrNFSe.btnConsultarSitLoteClick(Sender: TObject); var Protocolo, Lote: String; Response: TNFSeConsultaSituacaoResponse; begin Protocolo := ''; if not (InputQuery('Consultar Lote', 'Número do Protocolo (Obrigatório):', Protocolo)) then exit; Lote := ''; if ACBrNFSeX1.Configuracoes.Geral.Provedor in [proAssessorPublico, proEquiplano, proSP] then begin if not (InputQuery('Consultar Lote', 'Número do Lote:', Lote)) then exit; end; Response := ACBrNFSeX1.ConsultarSituacao(Protocolo, Lote); // <== antes era uma função ChecarResposta(Response); end; Depois da alteração: Como os métodos agora são procedure não é mais necessário definir uma variável para ler os retornos. procedure TfrmACBrNFSe.btnConsultarSitLoteClick(Sender: TObject); var Protocolo, Lote: String; begin Protocolo := ''; if not (InputQuery('Consultar Lote', 'Número do Protocolo (Obrigatório):', Protocolo)) then exit; Lote := ''; if ACBrNFSeX1.Configuracoes.Geral.Provedor in [proAssessorPublico, proEquiplano, proSP] then begin if not (InputQuery('Consultar Lote', 'Número do Lote:', Lote)) then exit; end; ACBrNFSeX1.ConsultarSituacao(Protocolo, Lote); // <== agora é uma procedure ChecarResposta(tmConsultarSituacao); end; Outra coisa que mudou foi a procedure ChecarResposta que antes recebia a variável (Response por exemplo) e agora recebe como parâmetro um enumerador que é o tipo do método que foi executado, que no exemplo acima temos o tmConsultarSituacao. Abaixo temos um fragmento do código da procedure ChecarResposta. Antes da alteração: procedure TfrmACBrNFSe.ChecarResposta(const Response: TNFSeWebserviceResponse); var i: Integer; begin memoLog.Clear; (...) if Response is TNFSeConsultaSituacaoResponse then begin memoLog.Lines.Add('Modo de Envio : ' + MetodoToStr(tmConsultarSituacao)); memoLog.Lines.Add('Numero do Lote: ' + TNFSeConsultaSituacaoResponse(Response).Lote); memoLog.Lines.Add('Numero do Prot: ' + TNFSeConsultaSituacaoResponse(Response).Protocolo); memoLog.Lines.Add('Situação Lote : ' + TNFSeConsultaSituacaoResponse(Response).Situacao); memoLog.Lines.Add('Sucesso : ' + BoolToStr(Response.Sucesso, True)); end; (...) if Response.Erros.Count > 0 then begin memoLog.Lines.Add(' '); memoLog.Lines.Add('Erro(s):'); for i := 0 to Response.Erros.Count -1 do begin memoLog.Lines.Add('Código : ' + Response.Erros[i].Codigo); memoLog.Lines.Add('Mensagem: ' + Response.Erros[i].Descricao); memoLog.Lines.Add('Correção: ' + Response.Erros[i].Correcao); memoLog.Lines.Add('---------'); end; end; if Response.Alertas.Count > 0 then begin memoLog.Lines.Add(' '); memoLog.Lines.Add('Alerta(s):'); for i := 0 to Response.Alertas.Count -1 do begin memoLog.Lines.Add('Código : ' + Response.Alertas[i].Codigo); memoLog.Lines.Add('Mensagem: ' + Response.Alertas[i].Descricao); memoLog.Lines.Add('Correção: ' + Response.Alertas[i].Correcao); memoLog.Lines.Add('---------'); end; end; (...) pgRespostas.ActivePageIndex := 2; end; Depois da alteração: procedure TfrmACBrNFSe.ChecarResposta(aMetodo: TMetodo); var i: Integer; begin memoLog.Clear; memoLog.Lines.Clear; with ACBrNFSeX1.WebService do begin case aMetodo of (...) tmConsultarSituacao: begin with ConsultaSituacao do begin memoLog.Lines.Add('Modo de Envio : ' + MetodoToStr(tmConsultarSituacao)); memoLog.Lines.Add('Numero do Lote: ' + Lote); memoLog.Lines.Add('Numero do Prot: ' + Protocolo); memoLog.Lines.Add('Situação Lote : ' + Situacao); memoLog.Lines.Add('Sucesso : ' + BoolToStr(Sucesso, True)); memoLog.Lines.Add(' '); MemoResp.Lines.Text := XmlEnvio; memoRespWS.Lines.Text := XmlRetorno; LoadXML(XmlEnvio, WBResposta); if Erros.Count > 0 then begin memoLog.Lines.Add(' '); memoLog.Lines.Add('Erro(s):'); for i := 0 to Erros.Count -1 do begin memoLog.Lines.Add('Código : ' + Erros[i].Codigo); memoLog.Lines.Add('Mensagem: ' + Erros[i].Descricao); memoLog.Lines.Add('Correção: ' + Erros[i].Correcao); memoLog.Lines.Add('---------'); end; end; if Alertas.Count > 0 then begin memoLog.Lines.Add(' '); memoLog.Lines.Add('Alerta(s):'); for i := 0 to Alertas.Count -1 do begin memoLog.Lines.Add('Código : ' + Alertas[i].Codigo); memoLog.Lines.Add('Mensagem: ' + Alertas[i].Descricao); memoLog.Lines.Add('Correção: ' + Alertas[i].Correcao); memoLog.Lines.Add('---------'); end; end; end; end; end; end; (...) pgRespostas.ActivePageIndex := 2; end; Resumindo: Os métodos: Emitir, Consultar (em geral), Cancelar e Substituir agora são procedures. O componente tem agora uma classe chamada WebService e dentro dela uma classe para cada método e é nessas classes dos métodos que temos os campos que contem os retornos como por exemplo o numero do protocolo, a situação do lote, etc. No programa exemplo temos a procedure ChecarResposta com a leitura de todos os parâmetros de todos os métodos.-
- 3
-
-
-
Felipe, Eu acredito que você não esteja com todos os fontes de todas as pastas atualizados. Se esta não reinstalou o ACBr. Se reinstalou deve ter alguma unit referente ao componente que esteja com uma bolinha vermelha em seu ícone, logo deve estar alterada e consequentemente o tortoise não atualizou ela. Neste caso exclua essa unit a atualize novamente (com exceção dessa que andei na minha postagem acima). Essa mensagem de erro "WebService retornou um XML vazio" pode indicar que o componente não conseguiu ler corretamente o retorno, eu preciso do XML soap para poder analisar.
-
Boa tarde Felipe, Faça um teste com a unit em anexo. Giap.Provider.pas
-
Boa tarde ALA, Por favor configure o programa exemplo para salvar os XML em disco e anexe eles. O que você anexou não tenho como analisar.
-
ACBrNFSeX - TAG <DataEmissao>
Italo Giurizzato Junior replied to Ramon Valentim's tópico in ACBrNFSe
Boa tarde Ramon, Você se refere ao XML do Rps ou da NFS-e? Segundo o Schema do provedor SimplISSv2 temos: <xsd:complexType name="tcInfRps"> <xsd:sequence> <xsd:element name="IdentificacaoRps" type="tcIdentificacaoRps" minOccurs="1" maxOccurs="1" /> <xsd:element name="DataEmissao" type="xsd:date" minOccurs="1" maxOccurs="1" /> <xsd:element name="Status" type="tsStatusRps" minOccurs="1" maxOccurs="1" /> <xsd:element name="RpsSubstituido" type="tcIdentificacaoRps" minOccurs="0" maxOccurs="1" /> </xsd:sequence> <xsd:attribute name="Id" type="tsIdTag" /> </xsd:complexType> Veja que o tipo do elemento DataEmissao é Date e não DataTime -
NFSeX Retornando True e sem Protocolo
Italo Giurizzato Junior replied to marcelo.hgv's tópico in ACBrNFSe
Boa tarde Marcelo, Você tem um XML (soap) de retorno da consulta para que eu possa analisar? Outra coisa, lembre-se que o numero do protocolo na NFS-e não tem o mesmo grau de importância do numero do protocolo da NF-e. Na NF-e o numero do protocolo indica que a nota foi autorizada? Já NFS-e o numero do protocolo quando gerado pelo provedor indica que o webservice recebeu o Rps para ser processado, mas isso não significa que ele foi processado com sucesso. Na NFS-e o que vale mesmo é código de verificação que consta no XML da NFS-e e podemos usar para verificar se a nota realmente foi emitida realizando uma consulta via site informando o código de verificação. -
Boa tarde, Você esta com todos os fontes de todas as pastas atualizados? Se sim, reinstalou o ACBr? Quanto a salvar os XML em disco, você marcou a opção para salvar os XMLs?
-
NFS-e de Vila Velha, Envio falha sem msg de erro
Italo Giurizzato Junior replied to Sérgio Caldeira Silva's tópico in ACBrNFSe
Boa noite Sérgio, O erro diz que esse campo não pode ser vazio. -
Implementação dos provedores RLZ e Megasoft
Italo Giurizzato Junior replied to Haroldo R.'s tópico in ACBrNFSe
Boa tarde Bill, Já esta no SVN. -
Boa tarde, Já devo ter escrito, mas vamos lá: Até onde sei o Ginfes se utiliza da versão 1 do layout da ABRASF, já o Giss se utiliza da versão 2 ou mais precisamente da versão 2.04 do layout da ABRASF. Eu participei da reunião ocorrida semana passada. E ficou claro para mim que no caso da cidade de Maceió eles trocaram seis por meia-dúzia, ou seja, não alterou nada. Os contribuintes devem continuar gerando e enviando como se nada estivesse acontecido. Não foi dado nenhum prazo, mas pode ser que no futuro tenha uma mudança sim e neste caso vai ser alterado as URLs de envio e o layout do XML do Rps deverá seguir a versão 2.04 Vamos aguardar as cenas dos próximos capítulos.
-
NFSeX Retornando True e sem Protocolo
Italo Giurizzato Junior replied to marcelo.hgv's tópico in ACBrNFSe
Boa tarde Marcelo, Por favor não misture assuntos diferentes em um mesmo tópico A sua primeira postagem se refere a emissão e esta segunda a consulta. Assuntos diferentes tópicos diferentes. Desde já agradeço a sua compreensão. -
Boa tarde Fernando, Segundo o Manual da NF-e (MOC versão 7.02 Visão Geral) páginas 71 e 72 temos a estrutura de envio da NF-e para o webservice da SEFAZ, mais precisamente no inicio da página 72 temos a definição do grupo NFe cujo conteúdo é na verdade o XML da NF-e, note que esse grupo tem como ocorrência 1-50, isso significa que esse grupo poderá ocorrer no mínimo 1 vez nessa estrutura e no máximo 50. Resumindo, podemos enviar um lote de NF-e com no mínimo 1 e máximo de 50 notas. Para você enviar 1000 notas vai ter que enviar 20 lotes com 50 notas cada. Respondendo a sua pergunta: Sim, faz anos que o componente aceita o envio de lote de notas respeitando os limites estipulados pelo manual. O programa exemplo do componente mostra como ADD uma nota ao componente, para enviar um lote contendo 2 ou mais notas é preciso ADD a quantidade desejada, lembrando sempre o limite de 50 notas por lote.