This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Source/Modulos/Informe ventas por articulo/Controller/uInfVentasArticuloController.pas

233 lines
6.8 KiB
ObjectPascal

unit uInfVentasArticuloController;
interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
uBizInfVentasArticulo, uIDataModuleInfVentasArticulo, uInformeBaseController,
uBizInformes;
type
IInfVentasArticuloController = interface(IInformeBaseController)
['{29069391-E477-41E2-9843-DE09DAE5B2EE}']
// procedure VerTodos(AInfVentasArticulo: IBizInfVentasArticulo);
// function BuscarTodos: IBizInfVentasArticulo;
// function Buscar(const ID_ALMACEN: Integer): IBizInfVentasArticulo;
// function ExtraerSeleccionados(AArticulos: IBizInfVentasArticulo) : IBizInfVentasArticulo;
// procedure Anadir(AArticulos, AInfVentasArticulo : IBizInfVentasArticulo);
// procedure Ver; //(AInfVentasArticulo : IBizInfVentasArticulo);
// function Guardar(AArticulos : IBizInfVentasArticulo; const FechaMovimiento: TDateTime; const CausaMovimiento: String): Boolean;
end;
TInfVentasArticuloController = class(TObservador, IInfVentasArticuloController, IInformeBaseController)
private
function BuscarTodos: IBizInfVentasArticulo;
protected
FDataModule : IDataModuleInfVentasArticulo;
procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
function _Vacio : IBizInfVentasArticulo;
procedure FiltrarEmpresa(AInfVentasArticulo: IBizInfVentasArticulo);
//Estos son los tres métodos a sobre escribir si se desea heredar toda la logica de
//este controller
procedure AsignarDataModule; virtual;
public
constructor Create; virtual;
destructor Destroy; override;
// function Buscar(const ID_ALMACEN: Integer): IBizInfVentasArticulo;
// function ExtraerSeleccionados(AArticulos: IBizInfVentasArticulo) : IBizInfVentasArticulo;
// function Ver(AArticulos: IBizInfVentasArticulo; AInfVentasArticulo : IBizInfVentasArticulo): Boolean;
procedure Nuevo(AInforme : IBizInforme);
procedure Ver(AInforme : IBizInforme);
// procedure VerTodos(AInfVentasArticulo: IBizInfVentasArticulo);
end;
implementation
uses
Forms, cxControls, DB, uEditorRegistryUtils,
uIEditorInfVentasArticulo, uDataModuleUsuarios,
uDataModuleInfVentasArticulo,
uDAInterfaces, uDataTableUtils,
uDateUtils, uROTypes, DateUtils, Controls, Windows,
dialogs, Variants, uControllerDetallesBase, uDialogUtils,
schInfVentasArticuloClient_Intf;
{ TInfVentasArticuloController }
procedure TInfVentasArticuloController.AsignarDataModule;
begin
FDataModule := TdmInfVentasArticulo.Create(Nil);
end;
{
function TInfVentasArticuloController.Buscar(const ID_ALMACEN: Integer): IBizInfVentasArticulo;
begin
Result := (FDataModule as IDataModuleInfVentasArticulo).GetItems(ID_ALMACEN);
FiltrarEmpresa(Result);
end;
}
function TInfVentasArticuloController.BuscarTodos: IBizInfVentasArticulo;
begin
Result := FDataModule.GetItems;
FiltrarEmpresa(Result);
end;
constructor TInfVentasArticuloController.Create;
begin
AsignarDataModule;
end;
function TInfVentasArticuloController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
destructor TInfVentasArticuloController.Destroy;
begin
FDataModule := Nil;
inherited;
end;
{function TInfVentasArticuloController.ExtraerSeleccionados(AArticulos: IBizInfVentasArticulo): IBizInfVentasArticulo;
var
ASeleccionados : IBizInfVentasArticulo;
begin
ASeleccionados := (Self.Buscar(ID_NULO) as IBizInfVentasArticulo);
CopyDataTable(AArticulos.DataTable, ASeleccionados.DataTable, True);
Result := ASeleccionados;
end;}
{function TInfVentasArticuloController.Ver(AArticulos: IBizInfVentasArticulo; AInfVentasArticulo: IBizInfVentasArticulo): Boolean;
var
AEditor : IEditorEntradaSalidaArticulos;
begin
Result := False;
AEditor := NIL;
ShowHourglassCursor;
try
CreateEditor('EditorEntradaSalidaArticulos', IEditorEntradaSalidaArticulos, AEditor);
with AEditor do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
Articulos := AArticulos;
InfVentasArticulo := AInfVentasArticulo;
end;
finally
HideHourglassCursor;
end;
if Assigned(AEditor) then
try
AEditor.ShowModal;
Result := AEditor.ResultadoModalOK;
AEditor.Release;
finally
AEditor := NIL;
end;
end;}
procedure TInfVentasArticuloController.Ver(AInforme: IBizInforme);
var
AEditor : IEditorInfVentasArticulo;
begin
AEditor := NIL;
ShowHourglassCursor;
try
CreateEditor('EditorInfVentasArticulo', IEditorInfVentasArticulo, AEditor);
with (AEditor as IEditorInfVentasArticulo) do
begin
if not Assigned(FDataModule) then
AsignarDataModule;
Controller := Self; //OJO ORDEN MUY IMPORTANTE
Datos := BuscarTodos;
Informe := AInforme;
// Datos.VisibleColumns := FDataModule.GetNameColumns;
end;
finally
HideHourglassCursor;
end;
if Assigned(AEditor) then
try
AEditor.ShowModal;
AEditor.Release;
finally
AEditor := NIL;
end;
end;
{procedure TInfVentasArticuloController.VerTodos(AInfVentasArticulo: IBizInfVentasArticulo);
//var
// AEditor : IEditorInfVentasArticulo;
begin
{ AEditor := NIL;
ShowHourglassCursor;
try
CreateEditor('EditorInfVentasArticulo', IEditorInfVentasArticulo, AEditor);
with AEditor do
begin
Controller := Self; //OJO ORDEN MUY IMPORTANTE
InfVentasArticulo := AInfVentasArticulo;
MultiSelect := False;
end;
finally
HideHourglassCursor;
end;
if Assigned(AEditor) then
AEditor.ShowEmbedded;
end;}
function TInfVentasArticuloController._Vacio: IBizInfVentasArticulo;
begin
// Result := Buscar(ID_NULO);
end;
procedure TInfVentasArticuloController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
begin
inherited;
//
end;
procedure TInfVentasArticuloController.FiltrarEmpresa(AInfVentasArticulo: IBizInfVentasArticulo);
begin
if AInfVentasArticulo.DataTable.Active then
AInfVentasArticulo.DataTable.Active := False;
// Filtrar los InfVentasArticulo actuales por empresa
with AInfVentasArticulo.DataTable.Where do
begin
if NotEmpty then
AddOperator(opAND);
OpenBraket;
AddText(fld_InfVentasArticuloID_EMPRESA + ' = ' + IntToStr(dmUsuarios.IDEmpresaActual));
CloseBraket;
end;
end;
procedure TInfVentasArticuloController.Nuevo(AInforme: IBizInforme);
begin
AInforme.Insert;
AInforme.CATEGORIA := 'VENTAS ARTICULOS';
AInforme.CONTROLLER := 'InfVentasArticuloController';
AInforme.ID_EMPRESA := dmUsuarios.EmpresaActual.ID;
end;
end.