git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@101 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
194 lines
6.1 KiB
ObjectPascal
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.
|