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 margen por articulo/Model/uBizInfMargenArticulo.pas

100 lines
3.1 KiB
ObjectPascal

unit uBizInfMargenArticulo;
interface
uses
Classes, DB, SysUtils, uROClasses, uDADataTable, uDAInterfaces,
DataAbstract_Intf, uROTypes, schInfMargenArticuloClient_Intf;
const
BIZ_InfMargenArticulo = 'Client.InfMargenArticulo';
type
IBizInfMargenArticulo = interface(IInfMargenPorCliente)
['{8E265668-0B6D-4475-9965-15B3EE251B24}']
function GetVisibleColumns: String;
procedure SetVisibleColumns(const Value: String);
property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns;
end;
TBizInfMargenArticulo = class(TInfMargenPorClienteDataTableRules, IBizInfMargenArticulo)
private
FVisibleColumns : String;
FDateParams : TDADatasetParamArray;
protected
function GetVisibleColumns: String;
procedure SetVisibleColumns(const Value: String);
procedure OnBeforeDataRequestCall(DataTable: TDADataTable; Request: TDARemoteRequest);
procedure OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest);
public
constructor Create(aDataTable: TDADataTable); override;
property VisibleColumns : String read GetVisibleColumns write SetVisibleColumns;
destructor Destroy; override;
end;
implementation
{ TBizInfMargenArticulo }
uses
Dialogs;
constructor TBizInfMargenArticulo.Create(aDataTable: TDADataTable);
begin
inherited;
FDateParams := TDADatasetParamArray.Create;
if Assigned(DataTable) then
begin
DataTable.OnBeforeDataRequestCall := OnBeforeDataRequestCall;
DataTable.OnBeforeSchemaCall := OnBeforeSchemaCall;
end;
end;
destructor TBizInfMargenArticulo.Destroy;
begin
FreeAndNIL(FDateParams);
inherited;
end;
function TBizInfMargenArticulo.GetVisibleColumns: String;
begin
// if Length(FVisibleColumns) = 0 then
// FVisibleColumns := dmInfMargenArticulo.GetNameColumns;
Result := FVisibleColumns
end;
procedure TBizInfMargenArticulo.OnBeforeDataRequestCall(
DataTable: TDADataTable; Request: TDARemoteRequest);
begin
Request.ParamByName('Columns').AsString := VisibleColumns;
FDateParams.Clear;
NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime);
NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime);
//El intervalo de fechas para el calculo de compras promedio debe ser desde el principio de los tiempos hasta hoy
// NewDatasetParam(FDateParams, 'FECHAINI2', DataTable.ParamByName('FECHAINI2').AsDateTime);
// NewDatasetParam(FDateParams, 'FECHAFIN2', DataTable.ParamByName('FECHAFIN2').AsDateTime);
Request.ParamByName('Params').AsComplexType := FDateParams;
end;
procedure TBizInfMargenArticulo.OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest);
begin
Request.ParamByName('Columns').AsString := VisibleColumns;
end;
procedure TBizInfMargenArticulo.SetVisibleColumns(const Value: String);
begin
// if Length(Value) > 0 then
FVisibleColumns := Value
// else
// FVisibleColumns := dmInfMargenArticulo.GetNameColumns;
end;
initialization
RegisterDataTableRules(BIZ_InfMargenArticulo, TBizInfMargenArticulo);
finalization
end.