Para realizar a resolução de uma NFS-e/RPS a fim de regularizar ou sincronizar sua situação junto a Prefeitura podemos utilizar dois métodos disponíveis na interface do Manager Client, são eles:
- ResolverNFSePorHandle
- ResolverNFSePorRPS
Todos utilizam a mesma interface de retorno. Seguem abaixo os detalhes dos métodos e de seus retornos.
Detalhes ResolverNFSePorHandle
Função: Realiza a resolução de uma NFS-e/RPS junto a prefeitura utilizando o identificador do registro no banco de dados do Manager SaaS/EDoc.
Classe: TspdNFSeClientX
Método: ResolverNFSePorHandle
Tipo Retorno: spdRetResolveNFSeListX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aHandle | Texto | Sim |
Número do identificador único da NFS-e no banco de dados do Manager SaaS/EDoc.
Observação: o handle é informado no retorno do envio do RPS. |
Detalhes ResolverNFSePorRPS
Função: Realiza a resolução de um RPS junto a prefeitura através dos dados do RPS.
Classe: TspdNFSeClientX
Método: ResolverNFSePorRPS
Tipo Retorno: spdRetResolveNFSeListX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNumRPS | Texto | Sim |
Número do RPS enviado ao WebService da prefeitura. |
aSerie | Texto | Sim |
Série do RPS. |
aTipoRPS | Texto | Sim |
Tipo do RPS enviado. Exemplos: 1 - RPS (Padrão) 2 - Nota Fiscal Conjugada (Mista) 3 - Cupom |
Atenção!
Para uma nota ser resolvida ela deve estar com a situação REGISTRADA, ENVIADA ou RECEBIDA, ou o Manager SaaS/eDoc irá retornar uma mensagem dizendo que a nota precisa estar em alguma dessas situações para poder ser resolvida.
Delphi
procedure TfrmExemplo.btnResolverNFSePorHandleClick(Sender: TObject);
var
_Retorno: spdRetResolveNFSeListX;
_Handle: string;
begin
if not InputQuery('Handle', 'Handle da Nota:', _Handle) then exit;
//Esse método resolve a nota através do Componente Manager Client
_Retorno := NFSe.ResolverNFSePorHandle(_Handle);
//Após capturar o retorno, fazemos um loop para exibir todos os itens do lote
frmExemplo.memoRetorno.Clear;
if _Retorno.Status = Sucesso then
begin
for I := 0 to _Retorno.Count - 1 do
begin
frmExemplo.memoRetorno.Lines.Add('Mensagem: ' + _Retorno.Item(I).Mensagem + ' - NumeroNFSe: ' + _Retorno.Item(I).NumeroNFSe)
end;
end
else
begin
frmExemplo.memoRetorno.Lines.Add('Erro: ' + _Retorno.NomeExcecao + ', ' + _Retorno.Mensagem);
end;
end;
No exemplo acima utilizamos o método ResolverNFSePorHandle, mas o processo e o tipo de retorno é exatamente o mesmo para os demais métodos, bastando trocar a linha do exemplo onde o _Retorno recebe seu valor.
Para o método ResolverNFSePorRPS:
//Esse método resolve a nota através do Componente Manager Client
_Retorno := NFSe.ResolverNFSePorRPS(_NumRPS,_SerieRPS,_TipoRPS);
C#
private void ResolverNFSe_Click(object sender, EventArgs e)
{
spdRetResolveNFSeListX Retorno = null;
string Handle= InputBox("Handle da Nota", "Handle da Nota:", "");
if (Handle != "")
{
//Esse método resolve a NFSe através do Componente Manager Client
Retorno = NFSe.ResolverNFSePorHandle(Handle);
//Exibe o retorno do memo
//Após capturar o retorno, fazemos um loop para exibir todos os itens do lote
if (Retorno.Status == spdManagerClientX.TStatus.Sucesso)
for (i = 0; i < Retorno.Count(); i++)
memoRetorno.Text = memoRetorno.Text + "Mensagem: " + Retorno.Item(i).Mensagem + " - Numero: " + Retorno.Item(i).NumeroNFSe + "\n";
else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem;
}
}
Para o método ResolverNFSePorRPS:
//Esse método resolve a NFSe através do Componente Manager Client
Retorno = NFSe.ResolverNFSePorRPS(_NumRPS,_SerieRPS,_TipoRPS);
Visual Basic 6
Private Sub btnResolverNFSe_Click()
Dim Retorno As spdRetResolveNFSeListX
Dim Handle As String
Chave = InputBox("Handle da Nota:", "Handle da Nota", "")
'Esse método resolve a NFSe através do Componente Manager Client
Set Retorno = NFSe.ResolverNFSePorHandle(Handle)
'Exibe o retorno do memo
If Retorno.Status = Sucesso Then
For I = 0 To Retorno.Count - 1
memoRetorno.Text = memoRetorno.Text + "Mensagem: " + Retorno.Item(I).Mensagem + " - Numero: " + Retorno.Item(I).NumeroNFSe + vbCrLf
Next I
Else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem
End If
End Sub
Para o método ResolverNFSePorRPS:
'Esse método resolve a NFSe através do Componente Manager Client
Set Retorno = NFSe.ResolverNFSePorRPS(NumRPS,SerieRPS,TipoRPS)
Retorno
O tipo spdRetResolveNFSeListX possui os seguintes campos:
Campo | Tipo | Descrição |
Status | Constante | Retorna o status da operação: Sucesso ou Erro. |
NomeExcecao | Texto | Em caso de erro retorna a classe da Exception. |
Mensagem | Texto | Retorna a descrição da resposta do servidor. |
Item | Array do tipo spdRetResolveNFSeX | Retorna a URL do arquivo .PDF |
O tipo spdRetResolveNFSeX possui os seguintes campos:
Campo | Tipo | Descrição |
handle | Texto | Número identificador único do registro da NFS-e na base de dados do Manager SaaS/EDoc. |
NumeroLote | Texto | Número do lote da NFS-e. |
NumeroNFSe | Texto | Número da NFS-e. |
mensagem | Texto | Retorna a resposta do servidor. |
Comentários
0 comentário
Por favor, entre para comentar.