Para realizar o envio de uma NF-e basta utilizar o método EnviarNFe informando o conteúdo do arquivo TX2 de envio. Segue abaixo os detalhes do método e de seu retorno.
Detalhes EnviarNFe
Função: Realiza a emissão de uma NF-e.
Classe: TspdNFeClientX
Método: EnviarNFe
Tipo Retorno: spdRetEnvioListX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aNota | Texto | Sim | Conteúdo do arquivo TX2 de envio. |
Delphi
function TFormPedidosNF.EnviarNFe() : string;
var
_Retorno: spdRetEnvioListX;
_Nota: TStringList;
I: Integer;
begin
_Nota := TStringList.Create;
try
_Nota.LoadFromFile('C:\temp\NFe.tx2');
//Esse método envia as notas através do Componente Manager Client
_Retorno := NFe.EnviarNFe(_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);
end
else
ShowMessage('Nome Exceção:' + _Retorno.NomeExcecao + '. Mensagem: ' + _Retorno.Mensagem);
finally
FreeAndNil(_Nota);
end;
end;
Atenção!
- O envio de NF-e pode ser em lote, 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á "Autorizado o uso da NF-e" e no caso de falha, ele terá a mensagem do motivo da falha.
C#
private void buttonEnviarNFe_Click(object sender, EventArgs e)
{
int i;
String _Nota;
spdRetEnvioListX 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 = NFe.EnviarNFe(_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 + " - Chave: " + Retorno.Item(i).Chave;
}
else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem;
}
}
Visual Basic 6
Private Sub btnEnviarNFe_Click()
Dim Handle As Integer
Dim Nota As String
Dim Retorno As spdRetEnvioListX
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 = NFe.EnviarNFe(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 + " - Chave: " + Retorno.Item(I).Chave + vbCrLf
Next I
Else
memoRetorno.Text = "Erro: " + Retorno.NomeExcecao + ", " + Retorno.Mensagem
End If
cdNota.FileName = ""
End If
End Sub
Retorno
O tipo spdRetEnvioListX 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 spdRetEnvioX | Lista com os retornos. |
O tipo spdRetEnvioX possui os seguintes campos:
Campo | Tipo | Descrição |
CodigoDoc | Texto | Código da NF-e. |
Chave | Texto | Chave da NF-e. |
CodigoStatus | Texto | Código cStat da SEFAZ. |
SituacaoEvento | Texto |
Situação do evento. Exemplo: AUTORIZADA, REJEITADA. |
Situacao | Texto |
Situação da NF-e. Exemplo: AUTORIZADA, REJEITADA, REGISTRADA. |
Mensagem | Texto | Retorna a resposta do servidor. |
Comentários
0 comentário
Por favor, entre para comentar.