121 lines
2.9 KiB
ObjectPascal
121 lines
2.9 KiB
ObjectPascal
unit uAgentesController;
|
|
|
|
interface
|
|
|
|
uses
|
|
uCustomEditor,
|
|
uContactosController, uBizContactos,
|
|
uIEditorAgentes, uIEditorAgente, uIDataModuleContactos, uIDataModuleAgentes;
|
|
|
|
type
|
|
IAgentesController = interface(IContactosController)
|
|
['{23016B7A-1FDA-4092-ACE5-D27D3A50F236}']
|
|
end;
|
|
|
|
TAgentesController = class(TContactosController, IAgentesController)
|
|
protected
|
|
procedure AsignarID(AContacto: IBizContacto; const IDNuevo: Integer);
|
|
override;
|
|
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, uDataModuleAgentes, uEditorRegistryUtils,
|
|
uDataTableUtils, uDADataTable, DB, schContactosClient_Intf;
|
|
|
|
{ TAgentesController }
|
|
|
|
procedure TAgentesController.AsignarID(AContacto: IBizContacto;
|
|
const IDNuevo: Integer);
|
|
begin
|
|
if not Assigned(AContacto) then
|
|
raise Exception.Create ('Contacto no asignado');
|
|
|
|
{ Los datos de comisiones hay que comprobarlos siempre
|
|
tanto en inserción como en modificación. }
|
|
with (AContacto as IBizAgente) do
|
|
if Assigned(Comisiones) then
|
|
AsignarIDDetalles(AContacto, IDNuevo, Comisiones.DataTable);
|
|
|
|
inherited;
|
|
end;
|
|
|
|
function TAgentesController.Buscar(const ID: Integer): IBizContacto;
|
|
begin
|
|
Result := (FDataModule as IDataModuleAgentes).GetItem(ID);
|
|
FiltrarEmpresa(Result);
|
|
end;
|
|
|
|
function TAgentesController.BuscarTodos: IBizContacto;
|
|
begin
|
|
Result := (FDataModule as IDataModuleAgentes).GetItems;
|
|
FiltrarEmpresa(Result);
|
|
end;
|
|
|
|
constructor TAgentesController.Create;
|
|
begin
|
|
inherited;
|
|
FDataModule := TDataModuleAgentes.Create(Nil);
|
|
end;
|
|
|
|
function TAgentesController.Nuevo: IBizContacto;
|
|
var
|
|
AContacto : IBizAgente;
|
|
begin
|
|
AContacto := (FDataModule as IDataModuleAgentes).NewItem;
|
|
FiltrarEmpresa(AContacto);
|
|
AContacto.DataTable.Active := True;
|
|
AContacto.Insert;
|
|
Result := AContacto;
|
|
end;
|
|
|
|
procedure TAgentesController.Ver(AContacto: IBizContacto);
|
|
var
|
|
AEditor : IEditorAgente;
|
|
begin
|
|
AEditor := NIL;
|
|
ShowHourglassCursor;
|
|
try
|
|
CreateEditor('EditorAgente', IEditorAgente, AEditor);
|
|
with AEditor do
|
|
begin
|
|
Contacto := AContacto;
|
|
Controller := Self;
|
|
end;
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
|
|
if Assigned(AEditor) then
|
|
try
|
|
AEditor.ShowModal;
|
|
AEditor.Release;
|
|
finally
|
|
AEditor := NIL;
|
|
end;
|
|
end;
|
|
|
|
procedure TAgentesController.VerTodos(AContactos: IBizContacto);
|
|
var
|
|
AEditor : IEditorAgentes;
|
|
begin
|
|
CreateEditor('EditorAgentes', IEditorAgentes, AEditor);
|
|
with AEditor do
|
|
begin
|
|
Contactos := AContactos;
|
|
Controller := Self;
|
|
ShowEmbedded;
|
|
end;
|
|
end;
|
|
|
|
end.
|