leandro
(Leandro)
Fevereiro 4, 2023, 1:14am
1
Boa noite, não consigo listar RPS enviados, erro ‘access violation’ no método ListarNfse
usando o Demo pois não retorna todos os dados, somente o ID.
Estou enviando o RPS em SandBox assim:
PedidoEmissao := TNfseDpsPedidoEmissao.Create;
try
PedidoEmissao.ambiente := cbAmbiente.Text;
PedidoEmissao.infDPS.tpAmb := 2;
PedidoEmissao.infDPS.dhEmi := Now;
PedidoEmissao.infDPS.verAplic := ‘1.0’;
PedidoEmissao.infDPS.dCompet := Date;
PedidoEmissao.infDPS.prest := TInfoPrestador.Create;
PedidoEmissao.infDPS.prest.CNPJ := edPrestadorCpfCnpj.Text;
PedidoEmissao.infDPS.toma := TInfoTomador.create;
PedidoEmissao.infDPS.toma.CPF := edTomadorCpfCnpj.Text;
PedidoEmissao.infDPS.toma.xNome := edTomadorNomeRazaoSocial.Text;
PedidoEmissao.infDPS.toma.&end := TEndereco.Create;
PedidoEmissao.infDPS.toma.&end.xLgr := 'RUA APARECEID';
PedidoEmissao.infDPS.toma.&end.nro := '2232';
PedidoEmissao.infDPS.toma.&end.xBairro := 'JARDIM 1';
PedidoEmissao.infDPS.toma.&end.endNac := TEnderNac.Create;
PedidoEmissao.infDPS.toma.&end.endNac.cMun := '3549805';
PedidoEmissao.infDPS.toma.&end.endNac.CEP := '15043260';
PedidoEmissao.infDPS.serv.locPrest := TLocPrest.Create;
PedidoEmissao.infDPS.serv.locPrest.cLocPrestacao := '3549805';
PedidoEmissao.infDPS.serv.locPrest.cPaisPrestacao := 'BR';
PedidoEmissao.infDPS.serv.cServ := TCServ.Create;
PedidoEmissao.infDPS.serv.cServ.cTribNac := '1402';
PedidoEmissao.infDPS.serv.cServ.cTribMun := '140200';
PedidoEmissao.infDPS.serv.cServ.CNAE := '4530703';
PedidoEmissao.infDPS.serv.cServ.xDescServ := edServicoDiscriminacao.Text;
PedidoEmissao.infDPS.valores := TInfoValores.Create;
PedidoEmissao.infDPS.valores.vServPrest.vServ := StrToFloat(edServicoValorUnitario.Text);
PedidoEmissao.infDPS.valores.trib := TInfoTributacao.Create;
PedidoEmissao.infDPS.valores.trib.tribMun.tribISSQN := 1;
PedidoEmissao.infDPS.valores.trib.tribMun.cLocIncid := '3549805';
PedidoEmissao.infDPS.valores.trib.tribMun.pAliq := 3;
PedidoEmissao.infDPS.valores.trib.tribMun.tpRetISSQN := 2;
try
Nfse := Client.Nfse.EmitirNfseDps(PedidoEmissao);
O pedido fica em processamento e retorna o ID mas depois não sei se foi transmitido.
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 1:21pm
2
Bom dia @leandro . Seja bem-vindo à Nuvem Fiscal!
Você está reportando um erro no método ListarNfse
, porém não postou o código onde ele está sendo utilizado. Poderia colar o código inteiro aqui, por favor?
leandro
(Leandro)
Fevereiro 4, 2023, 1:39pm
3
Segue:
TfmMain.btListaNfsesClick(Sender: TObject);
var
Notas: TNfseListagem;
Nota: TNfse;
Item: TListItem;
begin
Notas := Client.Nfse.ListarNfse(30, 0, False, edNfseCnpj.Text, ‘’, AmbienteNfse, ‘’);
try
lvNfses.Clear;
for Nota in Notas.data do
begin
Item := lvNfses.Items.Add;
Item.Caption := Nota.id;
Item.SubItems.Add(Nota.numero);
Item.SubItems.Add(Nota.declaracao_prestacao_servico.rps.identificacao_rps.numero) ;
Item.SubItems.Add(Nota.status);
if Nota.data_emissaoHasValue then
Item.SubItems.Add(FormatDateTime(‘dd/mm/yyyy HH:nn:ss’, Nota.data_emissao))
else
Item.SubItems.Add(‘’);
Item.SubItems.Add(Nota.declaracao_prestacao_servico.tomador.nome_razao_social);
Item.SubItems.Add(FormatFloat(‘“R$” #,0.00’, TfmDetalhesNfse.GetValorTotal(Nota)));
end;
finally
Notas.Free;
end;
end;
Erro na linha em negrito, só retorna o ID.
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 1:56pm
4
A propriedade declaracao_prestacao_servico
está descontinuada, estando disponível apenas para envios que foram feitos pelo endpoint POST /nfse
, que também foi descontinuado. Assim, o valor da propriedade fica igual a nil
, não sendo possível acessar qualquer subpropriedade dela (por isso o erro de access violation
ocorre).
leandro
(Leandro)
Fevereiro 4, 2023, 3:24pm
5
OK, tirei essa propriedade e retornou os testes, mas todos com erros, porém agora não sei identificar onde estou errando.
Tem alguma dica?
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 3:26pm
6
Olá @leandro ,
Existe a propriedade mensagens
onde você pode pegar a relação de erros ou rejeições:
Segue a documentação de todos os campos: API Nuvem Fiscal | Nuvem Fiscal
leandro
(Leandro)
Fevereiro 4, 2023, 4:51pm
7
OK, a msg. de erro é essa:
X800
Erro de Validação: → 1832 - Element ‘{http://www.ginfes.com.br/tipos_v03.xsd }ItemListaServico’: [facet ‘maxLength’] The value has a length of ‘6’; this exceeds the allowed maximum length of ‘5’.
Acredito a propriedade ItemListaServico seja uma dessas 2 olhando na documentação:
PedidoEmissao.infDPS.serv.cServ.cTribNac := ‘140200’;
PedidoEmissao.infDPS.serv.cServ.cTribMun := ‘1402’;
Eu já inverti os valores mas retorna a mesma msg. de erro.
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 4:56pm
8
A propriedade ItemListaServico
do provedor Ginfes refere-se à propriedade infDPS.serv.cServ.cTribNac
.
Como a mensagem de erro indica que o tamanho máximo é 5, então você pode tentar da seguinte forma:
PedidoEmissao.infDPS.serv.cServ.cTribNac := ‘14.02’;
leandro
(Leandro)
Fevereiro 4, 2023, 6:11pm
9
mais essa, aff
E16
A data da emissão do RPS não poderá ser superior a data de hoje
Informe uma data de emissão de RPS válida
Estou enviando assim agora:
infDPS.dhEmi := TTimeZone.Local.ToUniversalTime(Now)
mas já tentei de várias formas.
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 6:24pm
12
@leandro
Informe as datas em fuso local mesmo, pois a SDK já transforma os campos datetime para UTC:
infDPS.dhEmi := Now;
leandro
(Leandro)
Fevereiro 4, 2023, 6:34pm
13
Mesmo assim retorna o mesmo erro!
Enviei dessa forma:
infDPS.dhEmi := Now;
infDPS.dCompet := Int(Now)
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 6:35pm
14
Tente assim:
infDPS.dhEmi := Now;
infDPS.dCompet := Now;
Caso não dê certo, favor informar o id
da nota para verificarmos o que está ocorrendo.
leandro
(Leandro)
Fevereiro 4, 2023, 6:37pm
15
segue:
nfs_3a09350ac62c4eaea01ee82f4d128ca6
Eu já tinha tentado dessa forma tb.
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 6:45pm
16
@leandro
Teremos que fazer uma alteração específica para o provedor dessa prefeitura. Favor aguardar.
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 7:31pm
17
@leandro
Fizemos a alteração no Sandbox. Favor testar novamente com o último código sugerido.
leandro
(Leandro)
Fevereiro 4, 2023, 8:41pm
18
Por enquanto está com erro:
ServerError
Internal server error: WT-fpWCCGn-hkpKil5AizQ
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 8:41pm
19
Certo, já detectamos aqui.
Vamos analisar e em breve retornamos.
arimateia
(Arimateia Jr)
Fevereiro 4, 2023, 10:27pm
20
Olá @leandro ,
Creio que agora esteja tudo resolvido.
Favor testar novamente.
leandro
(Leandro)
Fevereiro 4, 2023, 10:55pm
21
Mudou a msg. de erro agora:
E15
Data da emissão do RPS inválida
Informe a Data da emissão do RPS no formato Date
ID:
nfs_3a0935f51c7a4992b8b11bb42c72f1bd
leandro
(Leandro)
Fevereiro 5, 2023, 9:10pm
22
Boa tarde, agora a msg. de erro mudou:
E16
A data da emissão do RPS não poderá ser superior a data de hoje
Informe uma data de emissão de RPS válida