ConstruccionesCNJ_FactuGES/Modulos/Contactos/Controller/uClientesController.pas
2007-06-21 15:50:59 +00:00

115 lines
2.8 KiB
ObjectPascal

unit uClientesController;
interface
uses
uCustomEditor,
uContactosController, uBizContactos,
uIEditorClientes, uIEditorCliente, uIDataModuleContactos, uIDataModuleClientes;
type
IClientesController = interface(IContactosController)
end;
TClientesController = class(TContactosController, IClientesController)
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;
function ElegirContacto(AContactos : IBizContacto;
AMensaje: String; AMultiSelect: Boolean): IBizContacto; override;
end;
implementation
uses
SysUtils, Controls, cxControls, Dialogs, uDataModuleClientes, uEditorRegistryUtils,
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf,
uIEditorElegirClientes;
{ TClientesController }
function TClientesController.Buscar(const ID: Integer): IBizContacto;
begin
Result := (FDataModule as IDataModuleClientes).GetItem(ID);
FiltrarEmpresa(Result);
end;
function TClientesController.BuscarTodos: IBizContacto;
begin
Result := (FDataModule as IDataModuleClientes).GetItems;
FiltrarEmpresa(Result);
end;
constructor TClientesController.Create;
begin
inherited;
FDataModule := TDataModuleClientes.Create(Nil);
end;
function TClientesController.ElegirContacto(AContactos : IBizContacto;
AMensaje: String; AMultiSelect: Boolean): IBizContacto;
var
AEditor : IEditorElegirClientes;
begin
Result := NIL;
CreateEditor('EditorElegirClientes', IEditorElegirClientes, AEditor);
try
with AEditor do
begin
Contactos := AContactos;
Controller := Self;
MultiSelect := AMultiSelect;
Mensaje := AMensaje;
if IsPositiveResult(ShowModal) then
Result := ContactosSeleccionados;
end;
finally
AEditor := NIL;
end;
end;
function TClientesController.Nuevo: IBizContacto;
var
AContacto : IBizCliente;
begin
AContacto := (FDataModule as IDataModuleClientes).NewItem;
FiltrarEmpresa(AContacto);
AContacto.DataTable.Active := True;
AContacto.Insert;
Result := AContacto;
end;
procedure TClientesController.Ver(AContacto: IBizContacto);
var
AEditor : IEditorCliente;
begin
CreateEditor('EditorCliente', IEditorCliente, AEditor);
with AEditor do
begin
Contacto := AContacto;
Controller := Self;
ShowModal;
end;
end;
procedure TClientesController.VerTodos(AContactos: IBizContacto);
var
AEditor : IEditorClientes;
begin
CreateEditor('EditorClientes', IEditorClientes, AEditor);
with AEditor do
begin
Contactos := AContactos;
Controller := Self;
ShowEmbedded;
end;
end;
end.