FactuGES2/Source/ApplicationBase/Ejercicios/Model/uBizEjerciciosServer.pas

58 lines
1.6 KiB
ObjectPascal

unit uBizEjerciciosServer;
interface
uses
uDAInterfaces, uDADelta, uDABusinessProcessor,
schEjerciciosServer_Intf;
const
BIZ_SERVER_EJERCICIOS = 'Server.Ejercicios';
type
TBizEjerciciosServer = class(TEjerciciosBusinessProcessorRules)
protected
procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override;
end;
implementation
uses
Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer,
schEjerciciosClient_Intf;
{ TBizEjerciciosServer }
procedure TBizEjerciciosServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta);
var
ASchema : TDASchema;
ACurrentConn : IDAConnection;
Empresa : Variant;
begin
inherited;
case Sender.CurrentChange.ChangeType of
ctInsert, ctUpdate: begin
//Si el ejercicio es activo debemos poner los demas ejercicios de la empresa a no activos
if (Sender.CurrentChange.NewValueByName[fld_EjerciciosACTIVO] = 1) then
begin
ASchema := BusinessProcessor.Schema;
ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor);
try
//Siempre va a estar rellena
Empresa := Sender.CurrentChange.NewValueByName[fld_EjerciciosID_EMPRESA];
ASchema.NewCommand(ACurrentConn, 'SetEjerciciosNoActivos', ['ID_EMPRESA'], [Empresa])
except
RaiseError('Error al desactivar los ejercicios de la empresa');
end;
end;
end;
end;
end;
initialization
RegisterBusinessProcessorRules(BIZ_SERVER_EJERCICIOS, TBizEjerciciosServer);
end.