Para realizar o envio de uma NFS-e basta utilizar o método EnviarNFSe informando o conteúdo do arquivo TX2 de envio. Segue abaixo os detalhes do método e de seu retorno.
Detalhes EnviarNFSe
Função: Realiza a emissão de uma NFS-e.
Classe: TspdNFSeClientX
Método: EnviarNFSe
Tipo Retorno: spdRetEnvioNFSeListX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNFSe | Texto | Sim | Conteúdo do arquivo TX2 de envio. |
Delphi
function TFormPedidosNFS.EnviarNFSe() : string;
var
_Retorno: spdRetEnvioNFSeListX;
_Nota: TStringList;
I: Integer;
begin
_Nota := TStringList.Create;
try
_Nota.LoadFromFile('C:\temp\NFSe.tx2');
//Esse método envia as notas através do Componente Manager Client
_Retorno := NFSe.EnviarNFSe(_Nota.Text);
//Após capturar o retorno, faremos um loop no lote de notas enviadas
if (_Retorno.Status = Sucesso) then
begin
for I := 0 to _Retorno.Count - 1 do
ShowMessage('Mensagem: '+ _Retorno.Item(I).Mensagem + ' - Numero Nota: ' + _Retorno.Item(I).NumeroNFSe);
end
else
ShowMessage('Nome Exceção:' + _Retorno.NomeExcecao + '. Mensagem: ' + _Retorno.Mensagem);
finally
FreeAndNil(_Nota);
end;
end;
Atenção!
- O envio de NFS-e pode ser unitário, mas também pode ser em lote, por este motivo o retorno do envio é uma lista e deve ser tratado como um array.
- A mensagem traz o resultado da comunicação, em caso de sucesso, a mensagem será "RPS Autorizada com Sucesso" e no caso de falha, ele terá a mensagem do motivo da falha.
C#
private void buttonEnviarNFSe_Click(object sender, EventArgs e)
{
int i;
String _Nota;
spdRetEnvioNFSeListX Retorno = null;
DialogResult result = cdNota.ShowDialog();
if (result == DialogResult.OK)
{
string file = cdNota.FileName;
//Esse método envia as notas através do Componente Manager Client
_Nota = File.ReadAllText(file);
Retorno = NFSe.EnviarNFSe(_Nota);
//Exibe o retorno no memo
memoRetorno.Text = "";
if (Retorno.Status == spdManagerClientX.TStatus.Sucesso)
{
for (i = 0; i < Retorno.Count(); i++)
memoRetorno.Text = memoRetorno.Text + "Mensagem: " + Retorno.Item(i).Mensagem + " - Numero nota: " + Retorno.Item(i).NumeroNFSe;
}
else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem;
}
}
Visual Basic 6
Private Sub btnEnviarNFSe_Click()
Dim Handle As Integer
Dim Nota As String
Dim Retorno As spdRetEnvioNFSeListX
Dim I As Integer
cdNota.ShowOpen
If cdNota.FileName <> "" Then
Handle = FreeFile
Open cdNota.FileName For Input As #Handle
Nota = Input$(LOF(Handle), Handle)
Close #Handle
'Esse método envia as notas através do Componente Manager Client
Set Retorno = NFSe.EnviarNFSe(Nota)
'Exibe o retorno no memo
memoRetorno.Text = ""
If Retorno.Status = Sucesso Then
For I = 0 To Retorno.Count - 1
memoRetorno.Text = memoRetorno.Text + "Mensagem: " + Retorno.Item(I).Mensagem + " - Numero Nota: " + Retorno.Item(I).NumeroNFSe + vbCrLf
Next I
Else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem
End If
cdNota.FileName = ""
End If
End Sub
Retorno
O tipo spdRetEnvioNFSeListX 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 spdRetEnvioNFSeX | Lista com os retornos. |
O tipo spdRetEnvioNFSeX possui os seguintes campos:
Campo | Tipo | Descrição |
handle | Texto | Identificador único do registro da NFS-e no banco de dados do Manager SaaS/EDoc. |
NumeroLote | Texto | Número do lote no qual a NFS-e foi enviada. |
NumeroNFSe | Texto | Número da NFS-e. |
Situacao | Texto |
Situação da NFS-e. Exemplo: AUTORIZADA, REJEITADA, REGISTRADA. |
Mensagem | Texto | Retorna a resposta do servidor. |
Comentários
0 comentário
Por favor, entre para comentar.