Varela_PuntosVenta/Source/Modulos/VentasTerminadas/Servidor/srvVentasTerminadas_Impl.pas
2008-05-06 17:55:55 +00:00

211 lines
6.2 KiB
ObjectPascal

unit srvVentasTerminadas_Impl;
{----------------------------------------------------------------------------}
{ This unit was automatically generated by the RemObjects SDK after reading }
{ the RODL file associated with this project . }
{ }
{ This is where you are supposed to code the implementation of your objects. }
{----------------------------------------------------------------------------}
interface
uses
{vcl:} Classes, SysUtils,
{RemObjects:} uROClientIntf, uROTypes, uROServer, uROServerIntf, uROSessions,
{Ancestor Implementation:} DARemoteService_Impl,
{Used RODLs:} DataAbstract3_Intf,
{Generated:} VARELA_Intf, uDAClasses,
uDataModuleServer, uDAInterfaces, uDADataTable, uDABINAdapter, uDADataStreamer;
type
{ TsrvVentasTerminadas }
TsrvVentasTerminadas = class(TDARemoteService, IsrvVentasTerminadas)
DABINAdapter: TDABINAdapter;
schVentasTerminadas: TDASchema;
private
protected
{ IsrvVentasTerminadas methods }
function GetData(const DatasetName: String; const MaxRecords: Integer; const Columns: String; const Params: TDADatasetParamArray): Binary;
function GetDataEx(const DatasetName: String; const Columns: String; const Params: String; const MaxRecords: Integer): Binary;
function GetSchema(const DatasetName: String; const Columns: String): Binary;
function GetDataCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary;
function GetSchemaCrossTab(const FechaIni: String; const FechaFin: String; const Coleccion: String): Binary;
end;
implementation
{$R *.dfm}
uses
{Generated:} VARELA_Invk, uSchemaUtilsServer, dialogs;
const
CAMPOS_SUMA = '#TALLA36#TALLA38#TALLA40#TALLA42#TALLA44#TALLA46#TALLA48#VENTAS#DEVOLUCIONES#TOTAL#VALVEN#VALDEV#VALTOT#VTATERMDEV#VTAFINALRESC#VALTERMDEV#VALFINALRESC#';
procedure Create_srvVentasTerminadas(out anInstance : IUnknown);
begin
anInstance := TsrvVentasTerminadas.Create(NIL);
end;
{ srvVentasTerminadas }
function TsrvVentasTerminadas.GetData(const DatasetName: String;
const MaxRecords: Integer; const Columns: String;
const Params: TDADatasetParamArray): TROBinaryMemoryStream;
var
ds : IDADataset;
i : integer;
begin
result := Binary.Create;
try
{ Prepares the parameter arrays}
with TReplicarDataSet.Create do
begin
SourceDataSetName := DatasetName;
Service := Self;
Columnas := Columns;
ColumnasQueSuman := CAMPOS_SUMA;
try
ds := GetNewDataSet;
finally
Free;
end;
end;
for i := 0 to (Params.Count-1) do
ds.ParamByName(Params[i].Name).Value := Params[i].Value;
ds.Open;
ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords);
except
FreeAndNIl(result);
raise;
end;
end;
function TsrvVentasTerminadas.GetDataCrossTab(const FechaIni, FechaFin: String; const Coleccion: String): Binary;
var
ds : IDADataset;
AColeccion : String;
begin
if (Length(Coleccion) = 0) or (UpperCase(Coleccion) = 'TODAS') then
AColeccion := '%'
else
AColeccion := Coleccion;
try
Result := Binary.Create;
ds := schVentasTerminadas.NewDataset(Connection, 'VentasTerminadasCrossTab', ['FECHAINI', 'FECHAFIN', 'COLECCION'], [FechaIni, FechaFin, AColeccion]);//['01/07/2006', '31/07/2006']);
ds.Open;
ServiceAdapter.WriteDataset(Result, ds, [woSchema, woRows], -1);
except
FreeAndNIl(result);
raise;
end;
end;
function TsrvVentasTerminadas.GetDataEx(const DatasetName, Columns,
Params: String; const MaxRecords: Integer): Binary;
var
ds : IDADataset;
i : integer;
pars: TStringList;
parnames: array of string;
parvalues: array of Variant;
begin
pars := TStringList.Create;
result := Binary.Create;
try
try
pars.Text := Params;
SetLength(parnames, pars.Count);
SetLength(parvalues, pars.Count);
for i := 0 to (pars.Count-1) do begin
parnames[i] := pars.Names[i];
parvalues[i] := pars.Values[pars.Names[i]];
end;
with TReplicarDataSet.Create do
begin
SourceDataSetName := DatasetName;
Service := Self;
Columnas := Columns;
ColumnasQueSuman := CAMPOS_SUMA;
try
ds := GetNewDataSet;
finally
Free;
end;
end;
// Fills the parameters (if any are specified)
if (Length(parnames) > 0) then
begin
for i := 0 to (Length(parnames) - 1) do
ds.ParamByName(parnames[i]).Value := parvalues[i];
end;
ds.Open;
ServiceAdapter.WriteDataset(Result, ds, [woRows], MaxRecords);
except
FreeAndNIl(result);
raise;
end;
finally
FreeANDNil(pars);
end;
end;
function TsrvVentasTerminadas.GetSchema(const DatasetName: String; const Columns: String): TROBinaryMemoryStream;
var
ds : IDADataset;
begin
result := Binary.Create;
try
with TReplicarDataSet.Create do
begin
SourceDataSetName := DatasetName;
Service := Self;
Columnas := Columns;
ColumnasQueSuman := CAMPOS_SUMA;
try
ds := GetNewDataSet;
finally
Free;
end;
end;
ServiceAdapter.WriteDataset(result, ds, [woSchema]);
except
FreeAndNIl(result);
raise;
end;
end;
function TsrvVentasTerminadas.GetSchemaCrossTab(const FechaIni, FechaFin: String; const Coleccion: String): Binary;
var
ds : IDADataset;
AColeccion : String;
begin
if (Length(Coleccion) = 0) or (UpperCase(Coleccion) = 'TODAS') then
AColeccion := '%'
else
AColeccion := Coleccion;
try
Result := Binary.Create;
ds := schVentasTerminadas.NewDataset(Connection, 'VentasTerminadasCrossTab', ['FECHAINI', 'FECHAFIN', 'COLECCION'], [FechaIni, FechaFin, AColeccion]);//['01/07/2006', '31/07/2006']);
ds.Open;
ServiceAdapter.WriteDataset(Result, ds, [woSchema]);
except
FreeAndNIl(result);
raise;
end;
end;
initialization
TROClassFactory.Create('srvVentasTerminadas', Create_srvVentasTerminadas, TsrvVentasTerminadas_Invoker);
finalization
end.