179 lines
5.5 KiB
ObjectPascal
179 lines
5.5 KiB
ObjectPascal
unit srvReferenciaGenerica_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, uDAScriptingProvider,
|
|
uDABusinessProcessor, uDADataTable, uDACDSDataTable, frxClass, DB,
|
|
frxDBSet, ADODB, uDAInterfaces, uROClient, uROEventRepository,
|
|
uDABINAdapter, uDADataStreamer;
|
|
|
|
type
|
|
{ TsrvReferenciaGenerica }
|
|
TsrvReferenciaGenerica = class(TDARemoteService, IsrvReferenciaGenerica)
|
|
bpReferenciaGenerica: TDABusinessProcessor;
|
|
frxDBCabecera: TfrxDBDataset;
|
|
dsReferenciasGenericas: TDADataSource;
|
|
tbl_ReferenciasGenericas: TDACDSDataTable;
|
|
ADOConnection1: TADOConnection;
|
|
ADOQuery1: TADOQuery;
|
|
DataSource1: TDataSource;
|
|
frxReport1: TfrxReport;
|
|
DABINAdapter: TDABINAdapter;
|
|
schReferenciaGenerica: TDASchema;
|
|
procedure DARemoteServiceCreate(Sender: TObject);
|
|
private
|
|
protected
|
|
function GetProducto(const Codigo: String; const Talla: String;
|
|
const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean;
|
|
function GenerateReport(const Centro: String; const Vendedor: String;
|
|
const Estado: String; const FiltroUsuario: String): Binary;
|
|
procedure PasarProductosAEspera(const Centro: String; const Vendedor: String);
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
uses
|
|
{Generated:} VARELA_Invk, uDataModuleServer,
|
|
schReferenciaGenericaClient_Intf, uBizReferenciaGenericaServer, Dialogs;
|
|
|
|
procedure Create_srvReferenciaGenerica(out anInstance : IUnknown);
|
|
begin
|
|
anInstance := TsrvReferenciaGenerica.Create(NIL);
|
|
end;
|
|
|
|
{ srvReferenciaGenerica }
|
|
{ TsrvReferenciaGenerica }
|
|
|
|
function TsrvReferenciaGenerica.GenerateReport(const Centro,
|
|
Vendedor: String; const Estado: String; const FiltroUsuario: String): Binary;
|
|
var
|
|
ds: IDADataset;
|
|
AStream: TMemoryStream;
|
|
AWhere : String;
|
|
begin
|
|
AStream := TMemoryStream.Create;
|
|
Result := Binary.Create;
|
|
AWhere := '';
|
|
try
|
|
ds := schReferenciaGenerica.NewDataset(Connection, 'InformeRefGenerica');
|
|
|
|
if Length(Centro) > 0 then
|
|
begin
|
|
AWhere := 'CODCENTRO = ''' + Centro + '''';
|
|
end;
|
|
|
|
if Length(Vendedor) > 0 then
|
|
begin
|
|
if Length(AWhere) > 0 then
|
|
AWhere := AWhere + ' AND ';
|
|
AWhere := AWhere + 'CODVENDEDOR = ''' + Vendedor + '''';
|
|
end;
|
|
|
|
if Length(Estado) > 0 then
|
|
begin
|
|
if Length(AWhere) > 0 then
|
|
AWhere := AWhere + ' AND ';
|
|
AWhere := AWhere + '((ESTADO = ''' + Estado + ''') ';
|
|
if Estado = 'P' then
|
|
AWhere := AWhere + 'OR (ESTADO is null)';
|
|
AWhere := AWhere + ')';
|
|
end;
|
|
|
|
if Length(FiltroUsuario) > 0 then
|
|
begin
|
|
if Length(AWhere) > 0 then
|
|
AWhere := AWhere + ' AND ';
|
|
AWhere := AWhere + '(' + FiltroUsuario + ')';
|
|
end;
|
|
|
|
ds.Where.AddText(AWhere);
|
|
|
|
AStream.Clear;
|
|
ServiceAdapter.WriteDataset(AStream, ds, [woRows, woSchema], -1);
|
|
ServiceAdapter.ReadDataset(AStream, tbl_ReferenciasGenericas, TRUE, '', TRUE, TRUE);
|
|
|
|
frxReport1.LoadFromFile(DarRutaInformes + 'InformeReferenciaGenerica.fr3', True);
|
|
frxReport1.PrepareReport;
|
|
frxReport1.PreviewPages.SaveToStream(Result);
|
|
finally
|
|
AStream.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
function TsrvReferenciaGenerica.GetProducto(const Codigo: String; const Talla: String;
|
|
const Color: String; out CodigoBarras: String; out Descripcion: String): Boolean;
|
|
var
|
|
ds : IDADataset;
|
|
conn : IDAConnection;
|
|
begin
|
|
conn := dmServer.ConnectionManager.NewConnection(ConnectionName);
|
|
ds := schReferenciaGenerica.NewDataset(conn, nme_GetProducto);
|
|
|
|
ds.ParamByName('CODIGO').AsString := Codigo;
|
|
ds.ParamByName('TALLA').AsString := Talla;
|
|
ds.ParamByName('COLOR').AsString := Color;
|
|
try
|
|
ds.Open;
|
|
Result := not ds.IsEmpty;
|
|
if Result then
|
|
begin
|
|
Descripcion := ds.FieldValues[idx_GetProductoDESC_PRODUTO];
|
|
CodigoBarras := ds.FieldValues[idx_GetProductoCODIGO_BARRA];
|
|
end;
|
|
finally
|
|
ds.Close;
|
|
ds := nil;
|
|
conn := nil;
|
|
end;
|
|
end;
|
|
|
|
procedure TsrvReferenciaGenerica.PasarProductosAEspera(const Centro,
|
|
Vendedor: String);
|
|
var
|
|
cmd : IDASQLCommand;
|
|
conn : IDAConnection;
|
|
begin
|
|
conn := dmServer.ConnectionManager.NewConnection(ConnectionName);
|
|
conn.BeginTransaction;
|
|
|
|
cmd := schReferenciaGenerica.NewCommand(conn, 'CambiarEstado');
|
|
try
|
|
if Length(Centro) > 0 then
|
|
begin
|
|
cmd.Where.AddText('V.CODCENTRO = ''' + Centro + '''');
|
|
if Length(Vendedor) > 0 then
|
|
cmd.Where.AddText('AND V.CODVENDEDOR = ''' + Vendedor + '''');
|
|
end;
|
|
cmd.Execute;
|
|
conn.CommitTransaction;
|
|
except
|
|
conn.RollbackTransaction;
|
|
end;
|
|
end;
|
|
|
|
procedure TsrvReferenciaGenerica.DARemoteServiceCreate(Sender: TObject);
|
|
begin
|
|
bpReferenciaGenerica.BusinessRulesID := BIZ_SERVER_REFERENCIA_GENERICA;
|
|
end;
|
|
|
|
initialization
|
|
TROClassFactory.Create('srvReferenciaGenerica', Create_srvReferenciaGenerica, TsrvReferenciaGenerica_Invoker);
|
|
|
|
finalization
|
|
|
|
end.
|