Ir para conteúdo
  • Cadastre-se

Italo Giurizzato Junior

Consultores
  • Total de ítens

    37.545
  • Registro em

  • Última visita

  • Days Won

    1.058

Tudo que Italo Giurizzato Junior postou

  1. Boa tarde Rodrigo, Na versão 1.20 da NT 2020/005 temos o seguinte: O prazo previsto para a implementação das mudanças é: * Ambiente de Homologação (ambiente de teste das empresas): 02/08/2021 * Ambiente de Produção: 04/10/2021 A NT 2020.005 passou a ter o prazo de implementação conforme datas acima. Apesar das demais datas que constam nessa NT o que tudo indica que devemos considerar a da versão 1.20, pelo menos é o que sinaliza a ultima linha. Mas temos relatos que algumas UF já se anteciparam e já esta valendo desde a data de hoje (01/09/2021).
  2. Bom dia a todos, Realmente a regra esta estranha, pois não deveria exigir a bandeira uma vez que não é integrado. É preciso saber se todas as SEFAZ tomaram a mesma atitude Goiás e Pará.
  3. Olá Pessoal, Os novos Schemas não tem mais os códigos possíveis para o campo <tBand> - Código da Bandeira da Operadora, sendo assim se você informar um valor qualquer com 2 dígitos não vai ocorrer erro de validação, mas a SEFAZ vai comparar esse código com a tabela de códigos de Códigos das Bandeiras das Operadoras que se encontra no Portal Nacional da NF-e. Se o código informado não consta nessa tabela vai ser gerado a rejeição 443. Os códigos aceitos são: tBand Operadora 01 Visa 02 Mastercard 03 American Express 04 Sorocred 05 Diners Club 06 Elo 07 Hipercard 08 Aura 09 Cabal 10 Alelo 11 Banes Card 12 CalCard 13 Credz 14 Discover 15 GoodCard 16 GreenCard 17 Hiper 18 JcB 19 Mais 20 MaxVan 21 Policard 22 RedeCompras 23 Sodexo 24 ValeCard 25 Verocheque 26 VR 27 Ticket 99 Outros Observação: Os campos CNPJ, tBand e cAut só devem ser informados quando o valor de tpIntegra (Tipo de Integração para pagamento) for 1 = Pagamento integrado com o sistema de automação da empresa (Ex.: equipamento TEF, Comércio Eletrônico). Os campos acima pertencem ao grupo <card> Grupo de Cartões, esse grupo deverá constar no XML se o tPag (Meio de pagamento) for 03 (Cartão de Crédito) ou 04 (Cartão de Débito).
  4. Olá Pessoal, Os novos Schemas não tem mais os códigos possíveis para o campo <tPag> - Meio de Pagamento, sendo assim se você informar um valor qualquer com 2 dígitos não vai ocorrer erro de validação, mas a SEFAZ vai comparar esse código com a tabela de códigos dos meios de pagamentos que se encontra no Portal Nacional da NF-e. Se o código informado não consta nessa tabela vai ser gerado a rejeição 436. Os códigos aceitos são: tPag Descrição 01 Dinheiro 02 Cheque 03 Cartão de Crédito 04 Cartão de Débito 05 Crédito de Loja 10 Vale Alimentação 11 Vale Refeição 12 Vale Presente 13 Vale Combustível 14 Duplicata Mercanti 15 Boleto Bancário 16 Depósito Bancário 17 Pagamento Instantâneo (PIX) 18 Transferência bancária, Carteira Digital 19 Programa de fidelidade, Cashback, Crédito Virtual 90 Sem Pagamento 99 Outros Observação: Os campos CNPJ, tBand e cAut só devem ser informados quando o valor de tpIntegra (Tipo de Integração para pagamento) for 1 = Pagamento integrado com o sistema de automação da empresa (Ex.: equipamento TEF, Comércio Eletrônico). Os campos acima pertencem ao grupo <card> Grupo de Cartões, esse grupo deverá constar no XML se o tPag (Meio de pagamento) for 03 (Cartão de Crédito) ou 04 (Cartão de Débito).
  5. Então você programa em outra linguagem que não é Pascal, correto? Neste caso, sugiro você usar sempre a versão mais atual do Monitor. Agora se a linguagem que você trabalha permite consumir DLL, te aconselho a passar a usar as nossas DLLs. Temos a ACBrLibNFe para emissão de NF-e e NFC-e, a ACBrLibCTe para emissão de CT-e, a ACBrLibMDFe para emissão de MDF-e, entre outras DLLs.
  6. Juliana, Qual foi o erro? Existem provedores que não implementam o serviço de cancelamento, neste caso devemos fazer o cancelamento pelo site ou até mesmo protocolar um pedido de cancelamento na prefeitura.
  7. Estou usando o programa exemplo, configurado para salvar os XML em disco inclusive os Soap. Você tem o XML soap de envio do lote? Se sim anexa para que eu possa verificar.
  8. 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.
  9. Boa tarde Felipe, Basta na aba WebService do programa exemplo você selecionar o ambiente de homologação. Qual é a cidade?
  10. Sandro, Obrigado, já fiz a correção, ainda hoje vou enviar para o SVN.
  11. 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: ---------
  12. 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?
  13. Boa tarde Juliana, O correto não seria enviar a nota "normal" e depois solicitar o seu cancelamento?
  14. 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.
  15. Boa tarde, Você utiliza o componente ACBrMDFe ou o ACBrMonitor Plus?
  16. 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.
  17. 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.
  18. Boa tarde Felipe, Faça um teste com a unit em anexo. Giap.Provider.pas
  19. 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.
  20. 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
  21. 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.
×
×
  • 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...