AbetoDesign_FactuGES2/Source/Modulos/Historico de movimientos/Controller/uHistoricoMovimientosController.pas

198 lines
6.9 KiB
ObjectPascal

unit uHistoricoMovimientosController;
interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
uIDataModuleHistoricoMovimientos, uBizHistoricoMovimientos, uAlmacenesController;
type
IHistoricoMovimientosController = interface(IControllerBase)
['{F60D83E3-DDAA-497F-8193-62F9D693B4B0}']
procedure VerTodos(AHistoricoMovimientos: IBizHistoricoMovimientos);
function BuscarTodos: IBizHistoricoMovimientos;
function Buscar(const ID_ALMACEN: Integer): IBizHistoricoMovimientos;
// function ExtraerSeleccionados(AArticulos: IBizHistoricoMovimientos) : IBizHistoricoMovimientos;
// procedure Anadir(AArticulos, AHistoricoMovimientos : IBizHistoricoMovimientos);
// function Ver(AArticulos: IBizHistoricoMovimientos; AHistoricoMovimientos : IBizHistoricoMovimientos): Boolean;
// function Guardar(AArticulos : IBizHistoricoMovimientos; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean;
function GetAlmacenesController: IAlmacenesController;
procedure SetAlmacenesController(const Value: IAlmacenesController);
property AlmacenesController: IAlmacenesController read GetAlmacenesController write SetAlmacenesController;
end;
THistoricoMovimientosController = class(TControllerBase, IHistoricoMovimientosController)
private
FAlmacenesController: IAlmacenesController;
function GetAlmacenesController: IAlmacenesController;
procedure SetAlmacenesController(const Value: IAlmacenesController);
protected
FDataModule : IDataModuleHistoricoMovimientos;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
function _Vacio : IBizHistoricoMovimientos;
procedure FiltrarEmpresa(AHistoricoMovimientos: IBizHistoricoMovimientos);
//Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de
//este controller
procedure AsignarDataModule; virtual;
public
property AlmacenesController: IAlmacenesController read GetAlmacenesController write SetAlmacenesController;
constructor Create; override;
destructor Destroy; override;
function Buscar(const ID_ALMACEN: Integer): IBizHistoricoMovimientos;
function BuscarTodos: IBizHistoricoMovimientos;
// function ExtraerSeleccionados(AArticulos: IBizHistoricoMovimientos) : IBizHistoricoMovimientos;
// function Ver(AArticulos: IBizHistoricoMovimientos; AHistoricoMovimientos : IBizHistoricoMovimientos): Boolean;
procedure VerTodos(AHistoricoMovimientos: IBizHistoricoMovimientos);
end;
implementation
uses
Forms, cxControls, DB, schHistoricoMovimientosClient_Intf, uEditorRegistryUtils,
uIEditorHistoricoMovimientos, uDataModuleHistoricoMovimientos,
uDataModuleUsuarios, uDAInterfaces, uDataTableUtils,
uDateUtils, uROTypes, DateUtils, Controls, Windows, uFactuGES_App,
dialogs, Variants, uBizAlmacenes, uControllerDetallesBase, uDialogUtils,
schArticulosClient_Intf;
{ THistoricoMovimientosController }
procedure THistoricoMovimientosController.AsignarDataModule;
begin
FDataModule := TDataModuleHistoricoMovimientos.Create(Nil);
end;
function THistoricoMovimientosController.Buscar(const ID_ALMACEN: Integer): IBizHistoricoMovimientos;
begin
Result := (FDataModule as IDataModuleHistoricoMovimientos).GetItems(ID_ALMACEN);
FiltrarEmpresa(Result);
end;
function THistoricoMovimientosController.BuscarTodos: IBizHistoricoMovimientos;
begin
Result := FDataModule.GetItems;
FiltrarEmpresa(Result);
end;
constructor THistoricoMovimientosController.Create;
begin
inherited;
AsignarDataModule;
FAlmacenesController := TAlmacenesController.Create;
end;
function THistoricoMovimientosController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
destructor THistoricoMovimientosController.Destroy;
begin
FDataModule := Nil;
FAlmacenesController := Nil;
inherited;
end;
{function THistoricoMovimientosController.ExtraerSeleccionados(AArticulos: IBizHistoricoMovimientos): IBizHistoricoMovimientos;
var
ASeleccionados : IBizHistoricoMovimientos;
begin
ASeleccionados := (Self.Buscar(ID_NULO) as IBizHistoricoMovimientos);
CopyDataTableDA5(AArticulos.DataTable, ASeleccionados.DataTable, True);
Result := ASeleccionados;
end;}
{function THistoricoMovimientosController.Ver(AArticulos: IBizHistoricoMovimientos; AHistoricoMovimientos: IBizHistoricoMovimientos): Boolean;
var
AEditor : IEditorEntradaSalidaArticulos;
begin
Result := False;
AEditor := NIL;
CreateEditor('EditorEntradaSalidaArticulos', IEditorEntradaSalidaArticulos, AEditor);
if Assigned(AEditor) then
try
AEditor.Controller := Self; //OJO ORDEN MUY IMPORTANTE
AEditor.Articulos := AArticulos;
AEditor.HistoricoMovimientos := AHistoricoMovimientos;
AEditor.ShowModal;
Result := AEditor.ResultadoModalOK;
finally
AEditor.Release;
AEditor := NIL;
end;
end;}
procedure THistoricoMovimientosController.VerTodos(AHistoricoMovimientos: IBizHistoricoMovimientos);
var
AEditor : IEditorHistoricoMovimientos;
begin
AEditor := NIL;
CreateEditor('EditorHistoricoMovimientos', IEditorHistoricoMovimientos, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
HistoricoMovimientos := AHistoricoMovimientos;
MultiSelect := False;
ShowEmbedded;
end;
end;
function THistoricoMovimientosController._Vacio: IBizHistoricoMovimientos;
begin
Result := Buscar(ID_NULO);
end;
procedure THistoricoMovimientosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
begin
inherited;
//
end;
procedure THistoricoMovimientosController.SetAlmacenesController(const Value: IAlmacenesController);
begin
FAlmacenesController := Value;
end;
procedure THistoricoMovimientosController.FiltrarEmpresa(AHistoricoMovimientos: IBizHistoricoMovimientos);
var
Condicion: TDAWhereExpression;
begin
if AHistoricoMovimientos.DataTable.Active then
AHistoricoMovimientos.DataTable.Active := False;
// Filtrar los HistoricoMovimientos actuales por empresa
with AHistoricoMovimientos.DataTable.DynamicWhere do
begin
// (ID_EMPRESA >= ID)
Condicion := NewBinaryExpression(NewField('', fld_HistoricoMovimientosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;
function THistoricoMovimientosController.GetAlmacenesController: IAlmacenesController;
begin
Result := FAlmacenesController;
end;
end.