unit uInstaladoresController;

interface

uses
  uCustomEditor,
  uContactosController, uBizContactos,
  uIEditorInstaladores, uIEditorInstalador, uIDataModuleContactos, uIDataModuleInstaladores;

type
  IInstaladoresController = interface(IContactosController)
  end;

  TInstaladoresController = class(TContactosController, IInstaladoresController)
  public
    constructor Create; override;

    function Buscar(const ID: Integer): IBizContacto; override;
    function BuscarTodos: IBizContacto; override;
    function Nuevo : IBizContacto; override;
    procedure Ver(AContacto : IBizContacto); override;
    procedure VerTodos(AContactos: IBizContacto); override;
  end;

implementation

uses
  SysUtils, cxControls, Dialogs, uDataModuleInstaladores, uEditorRegistryUtils,
  uDataTableUtils, uDADataTable, DB, schContactosClient_Intf;

{ TInstaladoresController }

function TInstaladoresController.Buscar(const ID: Integer): IBizContacto;
begin
  Result := (FDataModule as IDataModuleInstaladores).GetItem(ID);
  FiltrarEmpresa(Result);
end;

function TInstaladoresController.BuscarTodos: IBizContacto;
begin
  Result := (FDataModule as IDataModuleInstaladores).GetItems;
  FiltrarEmpresa(Result);
end;

constructor TInstaladoresController.Create;
begin
  inherited;
  FDataModule := TDataModuleInstaladores.Create(Nil);
end;

function TInstaladoresController.Nuevo: IBizContacto;
var
  AContacto : IBizInstalador;
begin
  AContacto := (FDataModule as IDataModuleInstaladores).NewItem;
  FiltrarEmpresa(AContacto);
  AContacto.DataTable.Active := True;
  AContacto.Insert;
  Result := AContacto;
end;

procedure TInstaladoresController.Ver(AContacto: IBizContacto);
var
  AEditor : IEditorInstalador;
begin
  CreateEditor('EditorInstalador', IEditorInstalador, AEditor);
  with AEditor do
  begin
    Contacto := AContacto;
    Controller := Self;
    ShowModal;
  end;
end;

procedure TInstaladoresController.VerTodos(AContactos: IBizContacto);
var
  AEditor : IEditorInstaladores;
begin
  CreateEditor('EditorInstaladores', IEditorInstaladores, AEditor);
  with AEditor do
  begin
    Contactos := AContactos;
    Controller := Self;
    ShowEmbedded;
  end;
end;

end.
