unit uBizEmpresas;

interface

uses
  uDAInterfaces, uDADataTable, schEmpresasClient_Intf,
  uBizEmpresasDatosBancarios;

const
  BIZ_CLIENT_EMPRESA = 'Client.Empresa';

type
  IBizEmpresa = interface (IEmpresas)
    ['{1DB69F36-969C-4078-B862-6D697670BCFD}']
    procedure SetDatosBancarios(AValue : IBizEmpresasDatosBancarios);
    function GetDatosBancarios : IBizEmpresasDatosBancarios;
    property DatosBancarios : IBizEmpresasDatosBancarios read GetDatosBancarios
      write SetDatosBancarios;

    function EsNuevo : Boolean;
  end;

  TBizEmpresa = class(TEmpresasDataTableRules, IBizEmpresa)
  protected
    FDatosBancarios : IBizEmpresasDatosBancarios;
    FDatosBancariosLink : TDADataSource;

    procedure OnNewRecord(Sender: TDADataTable); override;

    procedure SetDatosBancarios(AValue : IBizEmpresasDatosBancarios);
    function GetDatosBancarios : IBizEmpresasDatosBancarios;
  public
    function EsNuevo : Boolean;
    procedure IniciarValoresEmpresaNueva;

    constructor Create(aDataTable: TDADataTable); override;
    destructor Destroy; override;

    property DatosBancarios : IBizEmpresasDatosBancarios read GetDatosBancarios
      write SetDatosBancarios;
  end;


implementation

uses
  uDataTableUtils, Classes, DateUtils, SysUtils, Dialogs,
  uFactuGES_App;

{ TBizEmpresa }


constructor TBizEmpresa.Create(aDataTable: TDADataTable);
begin
  inherited;
  FDatosBancariosLink := TDADataSource.Create(NIL);
  FDatosBancariosLink.DataTable := aDataTable;
end;

destructor TBizEmpresa.Destroy;
begin
  FDatosBancarios := NIL;
  FDatosBancariosLink.Free;
  inherited;
end;

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

function TBizEmpresa.GetDatosBancarios: IBizEmpresasDatosBancarios;
begin
  Result := FDatosBancarios;
end;

procedure TBizEmpresa.IniciarValoresEmpresaNueva;
begin
  USUARIO := AppFactuGES.UsuarioActivo.UserName;
end;

procedure TBizEmpresa.OnNewRecord(Sender: TDADataTable);
begin
  inherited;
  IniciarValoresEmpresaNueva;
end;

procedure TBizEmpresa.SetDatosBancarios(AValue: IBizEmpresasDatosBancarios);
begin
  FDatosBancarios := AValue;
  EnlazarMaestroDetalle(FDatosBancariosLink, FDatosBancarios);
end;

initialization
  RegisterDataTableRules(BIZ_CLIENT_EMPRESA, TBizEmpresa);

finalization

end.

