Para realizar o envio de um CT-eOS basta utilizar o método EnviarCTeOS informando o conteúdo do arquivo TX2 de envio. Segue abaixo os detalhes do método e de seu retorno.
Detalhes EnviarCTeOS
Função: Realiza a emissão de um CT-eOS.
Classe: TspdCTeOSClientX
Método: EnviarCTeOS
Tipo Retorno: spdRetEnvioListX
Parâmetros aceitos:
Nome | Tipo | Obrigatório | Valor |
aCTeOS | Texto | Sim | Conteúdo do arquivo TX2 de envio. |
Delphi
procedure TfrmExemplo.btnEnviarCTeOSClick(Sender: TObject);
var
_Retorno: spdRetEnvioListX;
_Conhecimento: TStringList;
I: Integer;
begin
_Manifesto := TStringList.Create;
try
_Conhecimento.LoadFromFile('C:\CTeOS.tx2');
_Retorno := CTeOS.EnviarCTeOS(_Conhecimento.Text);
// Após capturar o retorno, faremos um loop no lote de cteOS´s enviados
for I := 0 to _Retorno.Count - 1 do
begin
if _Retorno.Status = Sucesso then
Result := Result + 'Mensagem: ' + _Retorno.Item(I).Mensagem +', 'Chave: '+ _Retorno.Item(I).Chave;
else
Result := Result + 'Erro: ' + _Retorno.Item(I).NomeExcecao
end;
finally
FreeAndNil(_Conhecimento);
end;
end;
- O envio de CT-eOS deve ser unitário, porém, para seguir um padrão de interface com os outros documentos e estarmos previamente preparados para um possível envio de 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 CT-e" e no caso de falha, ele terá a mensagem do motivo da falha.
C#
private void buttonEnviarCTeOS_Click(object sender, EventArgs e)
{
int i;
String _Conhecimento;
spdRetEnvioListX Retorno = null;
DialogResult result = cdConhecimento.ShowDialog();
if (result == DialogResult.OK)
{
string file = cdConhecimento.FileName;
//Esse método envia o conhecimento através do Componente Manager Client
_Conhecimento = File.ReadAllText(file);
Retorno = CTeOS.EnviarCTeOS(_Conhecimento);
//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 btnEnviarCTeOS_Click()
Dim Handle As Integer
Dim Conhecimento As String
Dim Retorno As spdRetEnvioListX
Dim I As Integer
cdConhecimento.ShowOpen
If cdConhecimento.FileName <> "" Then
Handle = FreeFile
Open cdConhecimento.FileName For Input As #Handle
Conhecimento = Input$(LOF(Handle), Handle)
Close #Handle
'Esse método envia o Conhecimento através do Componente Manager Client
Set Retorno = CTeOS.EnviarCTeOS(Conhecimento)
'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
cdConhecimento.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 do CT-eOS. |
Chave | Texto | Chave do CT-eOS. |
CodigoStatus | Texto | Código cStat da SEFAZ. |
SituacaoEvento | Texto |
Situação do evento. Exemplo: AUTORIZADA, REJEITADA. |
Situacao | Texto |
Situação do CT-eOS. Exemplo: AUTORIZADA, REJEITADA, REGISTRADA. |
Mensagem | Texto | Retorna a resposta do servidor. |
Comentários
0 comentário
Por favor, entre para comentar.