From 1a2ea3924af74be93f641fdba3e3c4961f214e6c Mon Sep 17 00:00:00 2001 From: roberto Date: Fri, 23 Mar 2018 11:50:40 +0000 Subject: [PATCH] git-svn-id: https://192.168.0.254/svn/Proyectos.AbetoDesign_FactuGES/trunk@129 93f398dd-4eb6-7a46-baf6-13f46f578da2 --- .../Model/uBizPresupuestosClienteServer.pas | 108 ++++++++++++++++++ .../Model/uBizReferenciasServer.pas | 72 ++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 Source/Modulos/Referencias/Model/uBizPresupuestosClienteServer.pas create mode 100644 Source/Modulos/Referencias/Model/uBizReferenciasServer.pas diff --git a/Source/Modulos/Referencias/Model/uBizPresupuestosClienteServer.pas b/Source/Modulos/Referencias/Model/uBizPresupuestosClienteServer.pas new file mode 100644 index 0000000..256ca25 --- /dev/null +++ b/Source/Modulos/Referencias/Model/uBizPresupuestosClienteServer.pas @@ -0,0 +1,108 @@ +unit uBizPresupuestosClienteServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schPresupuestosClienteServer_Intf; + +const + BIZ_SERVER_PRESUPUESTOS_CLIENTE = 'Server.PresupuestosCliente'; + +type + TBizPresupuestosClienteServer = class(TPresupuestosClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schPresupuestosClienteClient_Intf, FactuGES_Intf, uROServer, SysUtils; + +const + REF_PRESUPUESTOS_CLIENTE = 'REF_PRESUPUESTOS_CLIENTE'; + +{ TBizPresupuestosClienteServer } + +procedure TBizPresupuestosClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + end; + end; + end; +end; + +procedure TBizPresupuestosClienteServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + inherited; + + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +end; + +function TBizPresupuestosClienteServer.DarReferencia: String; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; + ACodigoReferencia : String; +begin + ACodigoReferencia := REF_PRESUPUESTOS_CLIENTE; + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.DarNuevaReferencia(ACodigoReferencia, ID_EMPRESA, ID_TIENDA) +end; + +function TBizPresupuestosClienteServer.IncrementarReferencia: Boolean; +var + AReferenciasService : IsrvReferencias; + Intf : IInterface; + AClientID : TGUID; + ACodigoReferencia : String; +begin + ACodigoReferencia := REF_PRESUPUESTOS_CLIENTE; + CreateGUID(AClientID); + + GetClassFactory('srvReferencias').CreateInstance(AClientID, Intf); + AReferenciasService := Intf as IsrvReferencias; + Result := AReferenciasService.IncrementarValorReferencia(ACodigoReferencia, Self.REFERENCIA, ID_EMPRESA, ID_TIENDA) +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_PRESUPUESTOS_CLIENTE, TBizPresupuestosClienteServer); + +end. diff --git a/Source/Modulos/Referencias/Model/uBizReferenciasServer.pas b/Source/Modulos/Referencias/Model/uBizReferenciasServer.pas new file mode 100644 index 0000000..2852bfd --- /dev/null +++ b/Source/Modulos/Referencias/Model/uBizReferenciasServer.pas @@ -0,0 +1,72 @@ +unit uBizReferenciasServer; + +interface + +uses + uDAInterfaces, uDADelta, uDABusinessProcessor, + schReferenciasServer_Intf; + +const + BIZ_SERVER_REFERENCIAS = 'Server.Referencias'; + +type + TBizReferenciasServer = class(TReferenciasBusinessProcessorRules) + protected + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; + end; + +implementation + +uses + Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, + schReferenciasClient_Intf, FactuGES_Intf, uROServer, SysUtils; + + +{ TBizPresupuestosClienteServer } + +procedure TBizReferenciasServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } + CanRemoveFromDelta := False; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin +dmServer.EscribirLog('aaaaa'); + +// aChange.OldValueByName[fld_ClientesID]; +// aChange.NewValueByName[fld_ClientesID]; + end; + end; +end; + +procedure TBizReferenciasServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + inherited; +{ + FReferenciaAutomatica := False; + + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + //Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; + end; + end; + end; +} +end; + +initialization + RegisterBusinessProcessorRules(BIZ_SERVER_REFERENCIAS, TBizReferenciasServer); + +end.