ConstruccionesCNJ_FactuGES/Modulos/Cobros con montaje/Controller/uCobrosMontajeController.pas
2007-06-21 15:50:59 +00:00

135 lines
4.2 KiB
ObjectPascal

unit uCobrosMontajeController;
interface
uses
// Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleCobrosCliente,
// uClientesController, uBizCobrosCliente;
uEditorDBItem,
uCobrosClienteController, uMontajesDetallesController, uBizCobrosCliente,
uBizCobrosMontaje;
type
ICobrosMontajeController = interface(ICobrosClienteController)
['{573BEBB7-C4ED-4041-8373-0FEF3B201E83}']
function GetMontajeController: IMontajesDetallesController;
procedure SetMontajeController(const Value: IMontajesDetallesController);
property MontajeController: IMontajesDetallesController read GetMontajeController write SetMontajeController;
function BuscarCobrosMontaje(const ID: Integer): IBizCobroMontaje;
end;
TCobrosMontajeController = class(TCobrosClienteController, ICobrosMontajeController)
protected
FMontajeController : IMontajesDetallesController;
function GetMontajeController: IMontajesDetallesController;
procedure SetMontajeController(const Value: IMontajesDetallesController);
procedure RecuperarMontaje(ACobro : IBizCobroMontaje);
//Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de
//este controller
procedure AsignarDataModule; override;
procedure RecuperarObjetos(ACobro: IBizCobroCliente); override;
procedure AsignarEditor(out AEditor: IEditorDBItem); override;
public
property MontajeController: IMontajesDetallesController read GetMontajeController write SetMontajeController;
function BuscarCobrosMontaje(const ID: Integer): IBizCobroMontaje;
constructor Create;
destructor Destroy; override;
procedure Preview(ACobro : IBizCobroCliente); override;
procedure Print(ACobro : IBizCobroCliente); override;
end;
implementation
uses
uIEditorCobroMontaje, uDataModuleCobrosMontaje, uBizMontajesDetalles,
uIDataModuleCobrosMontaje, uCobrosMontajeReportController;
{ TCobrosMontajeController }
procedure TCobrosMontajeController.AsignarDataModule;
begin
inherited;
FDataModule := TDataModuleCobrosMontaje.Create(Nil);
end;
procedure TCobrosMontajeController.AsignarEditor(out AEditor: IEditorDBItem);
begin
// inherited; No descomentar así crea solo el editor hijo
CreateEditor('EditorCobroMontaje', IEditorCobroMontaje, AEditor);
end;
function TCobrosMontajeController.BuscarCobrosMontaje(const ID: Integer): IBizCobroMontaje;
begin
Result := (FDataModule as IDataModuleCobrosMontaje).GetItemsMontaje(ID);
FiltrarEmpresa(Result);
end;
constructor TCobrosMontajeController.Create;
begin
inherited;
FMontajeController := TMontajesDetallesController.Create;
end;
destructor TCobrosMontajeController.Destroy;
begin
FMontajeController := Nil;
inherited;
end;
function TCobrosMontajeController.GetMontajeController: IMontajesDetallesController;
begin
Result := FMontajeController;
end;
procedure TCobrosMontajeController.Preview(ACobro: IBizCobroCliente);
var
AReportController : ICobrosMontajeReportController;
begin
inherited;
AReportController := TCobrosMontajeReportController.Create;
try
AReportController.Preview(ACobro.ID);
finally
AReportController := NIL;
end;
end;
procedure TCobrosMontajeController.Print(ACobro: IBizCobroCliente);
var
AReportController : ICobrosMontajeReportController;
begin
inherited;
AReportController := TCobrosMontajeReportController.Create;
try
AReportController.Print(ACobro.ID);
finally
AReportController := NIL;
end;
end;
procedure TCobrosMontajeController.RecuperarMontaje(ACobro: IBizCobroMontaje);
begin
ACobro.Montaje := (FMontajeController.Buscar(ACobro.ID_MONTAJE) as IBizMontajeDetalles);
end;
procedure TCobrosMontajeController.RecuperarObjetos(ACobro: IBizCobroCliente);
begin
inherited;
if not Assigned((ACobro as IBizCobroMontaje).Montaje)
or ((ACobro as IBizCobroMontaje).ID_MONTAJE <> (ACobro as IBizCobroMontaje).Montaje.ID) then
RecuperarMontaje((ACobro as IBizCobroMontaje));
end;
procedure TCobrosMontajeController.SetMontajeController(const Value: IMontajesDetallesController);
begin
FMontajeController := Value;
end;
end.