Exemplo Classe Delphi

⌘K
  1. Home
  2. Docs
  3. Protegido: X4Rastreio
  4. Integração
  5. Exemplo Classe Delphi

Exemplo Classe Delphi

unit RootUnit;
interface
uses Generics.Collections, Rest.Json;

type

TContentClass = class
private
  FClienteDocumento: String;
  FClienteId: Longint;
  FClienteNome: String;
  FCondicaoPagamentoDescricao: String;
  FCondicaoPagamentoId: Longint;
  FContatoFone: String;
  FDavDatahoraEmissao: String;
  FDavEmpresaId: Longint;
  FDavId: Longint;
  FDavNumero: Longint;
  FDavSituacao: String;
  FDavUrl: String;
  FDavValorAcrescimo: Extended;
  FDavValorFrete: Extended;
  FDavValorTotal: Extended;
  FEnderecoBairro: String;
  FEnderecoCep: String;
  FEnderecoCidade: String;
  FEnderecoEntrega: String;
  FEnderecoNome: String;
  FEnderecoNumero: String;
  FEnderecoUf: String;
  FFormaPagamentoDescricao: String;
  FFormaPagamentoId: Longint;
  FModalidadeDescricao: String;
  FModalidadeId: Longint;
public
  property clienteDocumento: string read FClienteDocumento write FClienteDocumento; {CPF/CNPJ do cliente}
  property clienteId: Longint read FClienteId write FClienteId; {PK do Cliente }
  property clienteNome: string read FClienteNome write FClienteNome; {Nome do cliente}
  property condicaoPagamentoDescricao: string read FCondicaoPagamentoDescricao write FCondicaoPagamentoDescricao;
  property condicaoPagamentoId: Longint read FCondicaoPagamentoId write FCondicaoPagamentoId;
  property contatoFone: string read FContatoFone write FContatoFone; {Telefone/celular de contato}
  property davDatahoraEmissao: string read FDavDatahoraEmissao write FDavDatahoraEmissao;
  property davEmpresaId: Longint read FDavEmpresaId write FDavEmpresaId; {Id da empresa}
  property davId: Longint read FDavId write FDavId; {Id/PK da DAV}
  property davNumero: Longint read FDavNumero write FDavNumero; {Número da DAV}
  property davSituacao: string read FDavSituacao write FDavSituacao; {Situacao da DAV, APROVADA}
  property davUrl: string read FDavUrl write FDavUrl; 
  property davValorAcrescimo: Extended read FDavValorAcrescimo write FDavValorAcrescimo; {Valor do Acréscimo do pedido}
  property davValorFrete: Extended read FDavValorFrete write FDavValorFrete; {Valor do frete do pedido}
  property davValorTotal: Extended read FDavValorTotal write FDavValorTotal; {Valor total do pedido}
  property enderecoBairro: string read FEnderecoBairro write FEnderecoBairro; {Bairro do endereco de entrega}
  property enderecoCep: string read FEnderecoCep write FEnderecoCep; {Cep do endereco de entrega}
  property enderecoCidade: string read FEnderecoCidade write FEnderecoCidade; {Cidade do endereco de entrega}
  property enderecoEntrega: string read FEnderecoEntrega write FEnderecoEntrega; {Logradouro do endereco de entrega}
  property enderecoNome: string read FEnderecoNome write FEnderecoNome; {Nome do endereco de entrega}
  property enderecoNumero: String read FEnderecoNumero write FEnderecoNumero; {Númerodo endereco de entrega}
  property enderecoUf: string read FEnderecoUf write FEnderecoUf; {UF do endereco de entrega}
  property formaPagamentoDescricao: string read FFormaPagamentoDescricao write FFormaPagamentoDescricao; {Descrição Forma de pagamento}
  property formaPagamentoId: Longint read FFormaPagamentoId write FFormaPagamentoId; {Id da Forma de pagamento}
  property modalidadeDescricao: string read FModalidadeDescricao write FModalidadeDescricao; {Modalidade de venda}
  property modalidadeId: Longint read FModalidadeId write FModalidadeId; {ID da Modalidade de venda}
  function ToJsonString: String;
  class function FromJsonString(AJsonString: String): TContentClass;
end;

TRootClass = class
private
  FContent: TArray;
  FFirst: Boolean; 
  FLast: Boolean; 
  FNumber: Extended;
  FNumberOfElements: Extended;
  FSize: Extended;
public
  property content: TArray read FContent write FContent;  {Array de Pedidos}
  property first: Boolean read FFirst write FFirst;  {Define se é a primeira página de resultados}
  property last: Boolean read FLast write FLast; {Define se é a ultima pagina de resultados}
  property number: Extended read FNumber write FNumber; {Numero da pagina de resultados}
  property numberOfElements: Extended read FNumberOfElements write FNumberOfElements; {Numero de elementos retornados}
  property size: Extended read FSize write FSize; {Tamanho máxima da lista }
  destructor Destroy; override;
  function ToJsonString: string;
  class function FromJsonString(AJsonString: string): TRootClass;
end;

implementation

{TContentClass}

function TContentClass.ToJsonString: String;
begin
  result := TJson.ObjectToJsonString(self);
end;

class function TContentClass.FromJsonString(AJsonString: String): TContentClass;
begin
  result := TJson.JsonToObject(AJsonString)
end;

{TRootClass}

destructor TRootClass.Destroy;
var
  LcontentItem: TContentClass;
begin

 for LcontentItem in FContent do
   LcontentItem.Free;

  inherited;
end;

function TRootClass.ToJsonString: string;
begin
  result := TJson.ObjectToJsonString(self);
end;

class function TRootClass.FromJsonString(AJsonString: string): TRootClass;
begin
  result := TJson.JsonToObject(AJsonString)
end;

end.
Was this article helpful to you? No Yes