unit uBizRemesasCliente;

interface

uses
  uDAInterfaces, uDADataTable, schRemesasClienteClient_Intf, uDBSelectionListUtils,
  uBizRecibosCliente;

const
  BIZ_CLIENT_REMESACLIENTE = 'Client.RemesaCliente';
  CTE_TIPO_REMESA = 'REMESA';
  CTE_TIPO_TALON = 'TALON';
  CTE_TIPO_EFECTIVO = 'EFECTIVO';
  CTE_TIPO_TRANSFERENCIA = 'TRANSFERENCIA';

type
  IBizRemesaCliente = interface(IRemesasCliente)
  ['{62E5474B-627F-41B8-A5FD-5E553DFF3C50}']
    function GetRecibos: IBizRecibosCliente;
    procedure SetRecibos(const Value: IBizRecibosCliente);
    property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos;
  	function EsNuevo : Boolean;
  end;

  TBizRemesaCliente = class(TRemesasClienteDataTableRules, IBizRemesaCliente, ISeleccionable)
  protected
    FRecibos: IBizRecibosCliente;
    FSeleccionableInterface : ISeleccionable;

    function GetRecibos: IBizRecibosCliente;
    procedure SetRecibos(const Value: IBizRecibosCliente);
    procedure OnNewRecord(Sender: TDADataTable); override;
  public
    property SeleccionableInterface : ISeleccionable read FSeleccionableInterface
        write FSeleccionableInterface implements ISeleccionable;
    property Recibos: IBizRecibosCliente read GetRecibos write SetRecibos;

    procedure IniciarValoresRemesaClienteNuevo; virtual;
    function EsNuevo : Boolean;
    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;
  end;

implementation

uses
  uDataTableUtils, uDataModuleUsuarios, SysUtils, uROClasses, Classes,
  uFactuGES_App;

{ TBizRemesaCliente }

constructor TBizRemesaCliente.Create(aDataTable: TDADataTable);
begin
  inherited;
  FRecibos := Nil;
  FSeleccionableInterface := TSeleccionable.Create(aDataTable);
end;

destructor TBizRemesaCliente.Destroy;
begin
  FRecibos := Nil;
  FSeleccionableInterface := NIL;
  inherited;
end;

function TBizRemesaCliente.EsNuevo: Boolean;
begin
  Result := (ID < 0);
end;

function TBizRemesaCliente.GetRecibos: IBizRecibosCliente;
begin
  Result := FRecibos;
end;

procedure TBizRemesaCliente.IniciarValoresRemesaClienteNuevo;
begin
  ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
  FECHA_REMESA := Date;
  USUARIO := AppFactuGES.UsuarioActivo.UserName;
  TIPO := CTE_TIPO_REMESA;
end;

procedure TBizRemesaCliente.OnNewRecord(Sender: TDADataTable);
begin
  inherited;
  IniciarValoresRemesaClienteNuevo;
end;

procedure TBizRemesaCliente.SetRecibos(const Value: IBizRecibosCliente);
begin
  FRecibos := Value;
  if Assigned(FRecibos) then
     if not FRecibos.DataTable.Active then
        FRecibos.DataTable.Active := True;
end;

initialization
  RegisterDataTableRules(BIZ_CLIENT_RemesaCliente, TBizRemesaCliente);

finalization

end.

