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

207 lines
7.0 KiB
ObjectPascal
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit uHistoricoMovimientosController;
interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
uIDataModuleHistoricoMovimientos, uBizHistoricoMovimientos, uAlmacenesController;
type
IHistoricoMovimientosController = interface(IObservador)
['{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(TObservador, 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;
ShowHourglassCursor;
try
CreateEditor('EditorEntradaSalidaArticulos', IEditorEntradaSalidaArticulos, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
Articulos := AArticulos;
HistoricoMovimientos := AHistoricoMovimientos;
ShowModal;
Result := ResultadoModalOK;
Release;
end;
finally
AEditor := NIL;
HideHourglassCursor;
end;
end;}
procedure THistoricoMovimientosController.VerTodos(AHistoricoMovimientos: IBizHistoricoMovimientos);
var
AEditor : IEditorHistoricoMovimientos;
begin
AEditor := NIL;
ShowHourglassCursor;
try
CreateEditor('EditorHistoricoMovimientos', IEditorHistoricoMovimientos, AEditor);
if Assigned(AEditor) then
with AEditor do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
HistoricoMovimientos := AHistoricoMovimientos;
MultiSelect := False;
ShowEmbedded;
end;
finally
AEditor := Nil;
HideHourglassCursor;
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.