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_FactuGES2/Source/Modulos/Informe ventas por articulo/Controller/uInfVentasArticuloController.pas

194 lines
6.1 KiB
ObjectPascal

unit uInfVentasArticuloController;
interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem,
uBizInfVentasArticulo, uIDataModuleInfVentasArticulo, uInformeBaseController,
uBizInformes;
type
IInfVentasArticuloController = interface (IInformeBaseController)
['{BB7D923C-1873-45BA-BAFB-7BA57C8AFE50}']
// procedure VerTodos(AInfVentasArticulo: IBizInfVentasArticulo);
function BuscarTodos(const AColumns: String; const AWhere: String): 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(TInterfacedObject, IInfVentasArticuloController, IInformeBaseController)
protected
FDataModule : IDataModuleInfVentasArticulo;
function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
function BuscarTodos(const AColumns: String; const AWhere: String): 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, uFactuGES_App,
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(const AColumns: String; const AWhere: String): IBizInfVentasArticulo;
begin
Result := FDataModule.GetItems(AColumns, AWhere);
// 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
Informe := AInforme;
end;
finally
HideHourglassCursor;
end;
if Assigned(AEditor) then
try
AEditor.ShowModal;
AEditor.Release;
finally
AEditor := NIL;
end;
end;
{procedure TInfVentasArticuloController.FiltrarEmpresa(AInfVentasArticulo: IBizInfVentasArticulo);
var
Condicion: TDAWhereExpression;
begin
if AInfVentasArticulo.DataTable.Active then
AInfVentasArticulo.DataTable.Active := False;
// Filtrar las facturas actuales por empresa
with AInfVentasArticulo.DataTable.DynamicWhere do
begin
// (ID_EMPRESA >= ID)
Condicion := NewBinaryExpression(NewField('', fld_InfVentasArticuloID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;
end;}
procedure TInfVentasArticuloController.Nuevo(AInforme: IBizInforme);
begin
AInforme.Insert;
AInforme.CATEGORIA := 'VENTAS ARTICULOS';
AInforme.CONTROLLER := 'InfVentasArticuloController';
AInforme.ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
end;
end.