unit uBizRemesasProveedor;

interface

uses
  uDAInterfaces, uDADataTable, schRemesasProveedorClient_Intf, uDBSelectionListUtils,
  uBizRecibosProveedor;

const
  BIZ_CLIENT_REMESAPROVEEDOR = 'Client.RemesaProveedor';
  CTE_TIPO_REMESA = 'REMESA';
  CTE_TIPO_TALON = 'TALON';
  CTE_TIPO_EFECTIVO = 'EFECTIVO';
  CTE_TIPO_TRANSFERENCIA = 'TRANSFERENCIA';

type
  IBizRemesaProveedor = interface(IRemesasProveedor)
  ['{A150A74E-6A08-4D11-9CA7-39B65ABF78F5}']
    function GetRecibos: IBizRecibosProveedor;
    procedure SetRecibos(const Value: IBizRecibosProveedor);
    property Recibos: IBizRecibosProveedor read GetRecibos write SetRecibos;
  	function EsNuevo : Boolean;
  end;

  TBizRemesaProveedor = class(TRemesasProveedorDataTableRules, IBizRemesaProveedor, ISeleccionable)
  protected
    FRecibos: IBizRecibosProveedor;
    FSeleccionableInterface : ISeleccionable;

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

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

implementation

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

{ TBizRemesaProveedor }

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

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

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

function TBizRemesaProveedor.GetRecibos: IBizRecibosProveedor;
begin
  Result := FRecibos;
end;

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

procedure TBizRemesaProveedor.OnNewRecord(Sender: TDADataTable);
begin
  inherited;
  IniciarValoresRemesaProveedorNuevo;
end;

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

initialization
  RegisterDataTableRules(BIZ_CLIENT_REMESAPROVEEDOR, TBizRemesaProveedor);

finalization

end.

