146 lines
4.2 KiB
ObjectPascal
146 lines
4.2 KiB
ObjectPascal
{*******************************************************}
|
|
{ }
|
|
{ Administración de puntos de venta }
|
|
{ }
|
|
{ Copyright (C) 2006 Rodax Software S.L. }
|
|
{ }
|
|
{*******************************************************}
|
|
|
|
unit uBizReferenciaGenericaServer;
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils,
|
|
uDADataTable,
|
|
uDAInterfaces, schReferenciaGenericaServer_Intf,
|
|
uDABusinessProcessor, uDADelta;
|
|
|
|
const
|
|
BIZ_SERVER_REFERENCIA_GENERICA = 'Server.ReferenciaGenerica';
|
|
|
|
type
|
|
{ TBizReferenciaGenericaServerRules }
|
|
TBizReferenciaGenericaServerRules = class(TReferenciaGenericaBusinessProcessorRules)
|
|
private
|
|
function GetConnection: IDAConnection;
|
|
function GetSchema: IDASchema;
|
|
function GetDataSet(const AName : String) : IDADataset;
|
|
function GetCommand(const AName : String) : IDASQLCommand;
|
|
protected
|
|
function ExisteFila: Boolean;
|
|
function InsertarFila: Boolean;
|
|
procedure BeforeProcessChange(Sender: TDABusinessProcessor;
|
|
aChangeType: TDAChangeType; aChange: TDADeltaChange;
|
|
var ProcessChange: Boolean); override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Dialogs, Variants, uDAClasses;
|
|
|
|
|
|
{ TBizReferenciaGenericaServerRules }
|
|
|
|
procedure TBizReferenciaGenericaServerRules.BeforeProcessChange(
|
|
Sender: TDABusinessProcessor; aChangeType: TDAChangeType;
|
|
aChange: TDADeltaChange; var ProcessChange: Boolean);
|
|
begin
|
|
inherited;
|
|
if aChangeType = ctUpdate then
|
|
begin
|
|
if not ExisteFila then
|
|
InsertarFila;
|
|
end;
|
|
end;
|
|
|
|
function TBizReferenciaGenericaServerRules.ExisteFila: Boolean;
|
|
var
|
|
Connection : IDAConnection;
|
|
ADataSet: IDADataSet;
|
|
begin
|
|
Result := True;
|
|
Connection := GetConnection;
|
|
ADataSet := GetDataSet('_ExisteFilaReferenciaGenerica');
|
|
with ADataSet do
|
|
begin
|
|
ParamByName('NUMINF').AsString := NUMINF;
|
|
ParamByName('CLAVE1').AsFloat := CLAVE1;
|
|
ParamByName('CLAVE2').AsInteger := CLAVE2;
|
|
ParamByName('CLAVE3').AsInteger := CLAVE3;
|
|
ParamByName('NUMCON').AsInteger := NUMCON;
|
|
end;
|
|
Connection.BeginTransaction;
|
|
try
|
|
ADataSet.Open;
|
|
Result := not ADataSet.IsEmpty;
|
|
ADataSet.Close;
|
|
finally
|
|
Connection.RollbackTransaction;
|
|
ADataSet := nil;
|
|
Connection := nil;
|
|
end;
|
|
end;
|
|
|
|
function TBizReferenciaGenericaServerRules.GetCommand(
|
|
const AName: String): IDASQLCommand;
|
|
begin
|
|
Result := GetSchema.NewCommand(GetConnection, AName);
|
|
end;
|
|
|
|
function TBizReferenciaGenericaServerRules.GetConnection: IDAConnection;
|
|
begin
|
|
Result := BusinessProcessor.Schema.ConnectionManager.NewConnection(BusinessProcessor.Schema.ConnectionManager.GetDefaultConnectionName);
|
|
end;
|
|
|
|
function TBizReferenciaGenericaServerRules.GetDataSet(
|
|
const AName: String): IDADataset;
|
|
begin
|
|
Result := GetSchema.NewDataset(GetConnection, AName);
|
|
end;
|
|
|
|
function TBizReferenciaGenericaServerRules.GetSchema: IDASchema;
|
|
begin
|
|
Result := BusinessProcessor.Schema;
|
|
end;
|
|
|
|
function TBizReferenciaGenericaServerRules.InsertarFila: Boolean;
|
|
var
|
|
Connection : IDAConnection;
|
|
ACommand: IDASQLCommand;
|
|
begin
|
|
Result := False;
|
|
Connection := GetConnection;
|
|
ACommand := GetCommand(BusinessProcessor.InsertCommandName);
|
|
with ACommand do
|
|
begin
|
|
ParamByName('NUMINF').AsString := NUMINF;
|
|
ParamByName('CLAVE1').AsFloat := CLAVE1;
|
|
ParamByName('CLAVE2').AsInteger := CLAVE2;
|
|
ParamByName('CLAVE3').AsInteger := CLAVE3;
|
|
ParamByName('FECHACAMBIO').AsDateTime := Now;
|
|
ParamByName('ESTADO').AsString := 'P'; // Pendiente por defecto
|
|
ParamByName('VTATERM').AsVariant := Null;
|
|
ParamByName('VTAPROCESO').AsVariant := Null;
|
|
ParamByName('VTAFINAL').AsVariant := Null;
|
|
ParamByName('VALTOT').AsVariant := Null;
|
|
ParamByName('CODIGO_BARRA').AsVariant := Null;
|
|
end;
|
|
|
|
Connection.BeginTransaction;
|
|
try
|
|
ACommand.Execute;
|
|
Connection.CommitTransaction;
|
|
Result := True;
|
|
except
|
|
Connection.RollbackTransaction;
|
|
end;
|
|
end;
|
|
|
|
initialization
|
|
RegisterBusinessProcessorRules(BIZ_SERVER_REFERENCIA_GENERICA, TBizReferenciaGenericaServerRules);
|
|
|
|
end.
|
|
|