diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.bdsproj b/Source/Modulos/Referencias/Controller/Referencias_controller.bdsproj
new file mode 100644
index 00000000..f03aebbd
--- /dev/null
+++ b/Source/Modulos/Referencias/Controller/Referencias_controller.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Referencias_controller.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.dpk b/Source/Modulos/Referencias/Controller/Referencias_controller.dpk
new file mode 100644
index 00000000..993db815
--- /dev/null
+++ b/Source/Modulos/Referencias/Controller/Referencias_controller.dpk
@@ -0,0 +1,52 @@
+package Referencias_controller;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ cxLibraryD10,
+ dxThemeD10,
+ dsnap,
+ vcldb,
+ adortl,
+ ControllerBase,
+ dxBarExtItemsD10,
+ dxComnD10,
+ dxBarD10,
+ dxLayoutControlD10,
+ dxPSCoreD10,
+ dxPScxCommonD10,
+ dxPScxGridLnkD10,
+ dxPsPrVwAdvD10,
+ Referencias_model,
+ Referencias_data;
+
+contains
+ uReferenciasController in 'uReferenciasController.pas',
+ uIEditorReferencias in 'View\uIEditorReferencias.pas';
+
+end.
diff --git a/Source/Modulos/Referencias/Controller/Referencias_controller.res b/Source/Modulos/Referencias/Controller/Referencias_controller.res
new file mode 100644
index 00000000..86c94e6a
Binary files /dev/null and b/Source/Modulos/Referencias/Controller/Referencias_controller.res differ
diff --git a/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.pas b/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.pas
new file mode 100644
index 00000000..93291997
--- /dev/null
+++ b/Source/Modulos/Referencias/Controller/View/uIEditorReferencias.pas
@@ -0,0 +1,21 @@
+unit uIEditorReferencias;
+
+interface
+
+uses
+ uBizReferencias;
+
+type
+ IEditorReferencias = interface
+ ['{751F46E7-6125-4931-9FD2-B91987083FC1}']
+ function GetReferencias: IBizReferencia;
+ procedure SetReferencias(const Value: IBizReferencia);
+ property Referencias: IBizReferencia read GetReferencias write SetReferencias;
+ function ShowModal : Integer;
+ procedure Release;
+ end;
+
+
+implementation
+
+end.
diff --git a/Source/Modulos/Referencias/Controller/uReferenciasController.pas b/Source/Modulos/Referencias/Controller/uReferenciasController.pas
new file mode 100644
index 00000000..c8fbd824
--- /dev/null
+++ b/Source/Modulos/Referencias/Controller/uReferenciasController.pas
@@ -0,0 +1,188 @@
+unit uReferenciasController;
+
+interface
+
+
+uses
+ Classes, SysUtils, uDADataTable, uControllerBase,
+ uIDataModuleReferencias, uBizReferencias;
+
+type
+ IReferenciasController = interface(IObservador)
+ ['{832E33B0-3228-4519-A740-F551DF3004DD}']
+ function BuscarTodos: IBizReferencia;
+ procedure VerTodos(AReferencias: IBizReferencia);
+ function Guardar(AReferencia : IBizReferencia): Boolean;
+ procedure DescartarCambios(AReferencia : IBizReferencia);
+// function Localizar(AReferencias: IBizReferencia; ADescripcion:String): Boolean;
+ end;
+
+ TReferenciasController = class(TObservador, IReferenciasController)
+ protected
+ FDataModule : IDataModuleReferencias;
+
+ procedure RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable); override;
+ function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean;
+
+ function ValidarReferencia(AReferencia: IBizReferencia): Boolean;
+ procedure AsignarDataModule;
+ procedure AsignarID(AReferencia: IBizReferencia; const IDNuevo: Integer);
+
+ public
+ constructor Create;
+ destructor Destroy; override;
+
+ function Guardar(AReferencia : IBizReferencia): Boolean; virtual;
+ procedure DescartarCambios(AReferencia : IBizReferencia); virtual;
+ function BuscarTodos: IBizReferencia;
+ procedure VerTodos(AReferencias: IBizReferencia);
+// function Localizar(AReferencias: IBizReferencia; ADescripcion:String): Boolean;
+ end;
+
+implementation
+
+uses
+ cxControls, DB, uEditorRegistryUtils, schReferenciasClient_Intf,
+ uIEditorReferencias, uDataModuleReferencias,
+ uDAInterfaces, uDataTableUtils, uDialogUtils,
+ uDateUtils, uROTypes, DateUtils, Controls, Windows;
+
+{ TReferenciasController }
+
+procedure TReferenciasController.AsignarDataModule;
+begin
+ FDataModule := TDataModuleReferencias.Create(Nil);
+end;
+
+procedure TReferenciasController.AsignarID(AReferencia: IBizReferencia;
+ const IDNuevo: Integer);
+begin
+//
+end;
+
+function TReferenciasController.BuscarTodos: IBizReferencia;
+begin
+ Result := FDataModule.GetItems;
+end;
+
+constructor TReferenciasController.Create;
+begin
+ AsignarDataModule;
+end;
+
+function TReferenciasController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
+begin
+ Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
+end;
+
+procedure TReferenciasController.DescartarCambios(AReferencia: IBizReferencia);
+begin
+ if not Assigned(AReferencia) then
+ raise Exception.Create ('Forma de pago no asignada');
+
+ ShowHourglassCursor;
+ try
+ if (AReferencia.State in dsEditModes) then
+ AReferencia.Cancel;
+
+ AReferencia.DataTable.CancelUpdates;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+destructor TReferenciasController.Destroy;
+begin
+ FDataModule := NIL;
+ inherited;
+end;
+
+function TReferenciasController.ValidarReferencia(AReferencia: IBizReferencia): Boolean;
+begin
+ Result := False;
+
+ if not Assigned(AReferencia) then
+ raise Exception.Create ('Referencia no asignada');
+
+ if (AReferencia.DataTable.State in dsEditModes) then
+ AReferencia.DataTable.Post;
+
+// if Length(AReferencia.VALOR) = 0 then
+// raise Exception.Create('Debe indicar un código para esta referencia.');
+
+ Result := True;
+end;
+
+procedure TReferenciasController.VerTodos(AReferencias: IBizReferencia);
+var
+ AEditor : IEditorReferencias;
+begin
+ AEditor := NIL;
+ ShowHourglassCursor;
+ try
+ CreateEditor('EditorReferencias', IEditorReferencias, AEditor);
+ with AEditor do
+ Referencias := AReferencias;
+ finally
+ HideHourglassCursor;
+ end;
+
+ if Assigned(AEditor) then
+ try
+ AEditor.ShowModal;
+ AEditor.Release;
+ finally
+ AEditor := NIL;
+ end;
+end;
+
+procedure TReferenciasController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
+begin
+ inherited;
+//
+end;
+
+function TReferenciasController.Guardar(AReferencia: IBizReferencia): Boolean;
+var
+ NuevoID : Integer;
+begin
+ Result := False;
+
+ if ValidarReferencia(AReferencia) then
+ begin
+ ShowHourglassCursor;
+ try
+// if AReferencia.EsNuevo then
+// NuevoID := FDataModule.GetNextID(AReferencia.DataTable.LogicalName)
+// else
+// NuevoID := AReferencia.ID;
+
+// AsignarID(AReferencia, NuevoID);
+ AReferencia.DataTable.ApplyUpdates;
+
+ Result := True;
+ finally
+ HideHourglassCursor;
+ end;
+ end;
+end;
+{
+function TReferenciasController.Localizar(AReferencias: IBizReferencia; ADescripcion: String): Boolean;
+begin
+ Result := True;
+ ShowHourglassCursor;
+ try
+ with AReferencias.DataTable do
+ begin
+ DisableControls;
+ First;
+ if not Locate(fld_ReferenciasDESCRIPCION, ADescripcion, []) then
+ Result := False;
+ EnableControls;
+ end;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+}
+end.
diff --git a/Source/Modulos/Referencias/Data/Referencias_data.bdsproj b/Source/Modulos/Referencias/Data/Referencias_data.bdsproj
new file mode 100644
index 00000000..f70807c4
--- /dev/null
+++ b/Source/Modulos/Referencias/Data/Referencias_data.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Referencias_data.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Source/Modulos/Referencias/Data/Referencias_data.dpk b/Source/Modulos/Referencias/Data/Referencias_data.dpk
new file mode 100644
index 00000000..6754bd7c
--- /dev/null
+++ b/Source/Modulos/Referencias/Data/Referencias_data.dpk
@@ -0,0 +1,42 @@
+package Referencias_data;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ dbrtl,
+ cxLibraryD10,
+ dxThemeD10,
+ vcl,
+ dsnap,
+ vcldb,
+ adortl,
+ Base,
+ Referencias_model;
+
+contains
+ uDataModuleReferencias in 'uDataModuleReferencias.pas' {DataModuleReferencias};
+
+end.
diff --git a/Source/Modulos/Referencias/Data/Referencias_data.res b/Source/Modulos/Referencias/Data/Referencias_data.res
new file mode 100644
index 00000000..86c94e6a
Binary files /dev/null and b/Source/Modulos/Referencias/Data/Referencias_data.res differ
diff --git a/Source/Modulos/Referencias/Data/uDataModuleReferencias.dfm b/Source/Modulos/Referencias/Data/uDataModuleReferencias.dfm
new file mode 100644
index 00000000..2bfd60ab
--- /dev/null
+++ b/Source/Modulos/Referencias/Data/uDataModuleReferencias.dfm
@@ -0,0 +1,227 @@
+object DataModuleReferencias: TDataModuleReferencias
+ OldCreateOrder = True
+ OnCreate = DAClientDataModuleCreate
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ SchemaCall.MethodName = 'GetSchemaAsXML'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ end>
+ Height = 414
+ Width = 518
+ object RORemoteService: TRORemoteService
+ ServiceName = 'srvReferencias'
+ Message = ROBinMessage1
+ Channel = ROWinInetHTTPChannel1
+ Left = 48
+ Top = 24
+ end
+ object DABinAdapter: TDABINAdapter
+ Left = 48
+ Top = 80
+ end
+ object DADesigntimeCall1: TDADesigntimeCall
+ RemoteRequest.MethodName = 'Login'
+ RemoteRequest.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBoolean
+ end
+ item
+ Name = 'User'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Administrador'
+ end
+ item
+ Name = 'Password'
+ ParamType = fIn
+ DataType = rtString
+ Value = '1'
+ end
+ item
+ Name = 'LoginInfo'
+ ParamType = fOut
+ DataType = rtUserDefined
+ UserClassName = 'TRdxLoginInfo'
+ end>
+ RemoteService = LoginRemoteService
+ Left = 48
+ Top = 160
+ end
+ object LoginRemoteService: TRORemoteService
+ ServiceName = 'srvLogin'
+ Message = ROBinMessage1
+ Channel = ROWinInetHTTPChannel1
+ Left = 48
+ Top = 216
+ end
+ object ROWinInetHTTPChannel1: TROWinInetHTTPChannel
+ ServerLocators = <>
+ DispatchOptions = []
+ ProbeServers = False
+ ProbeFrequency = 60000
+ UserAgent = 'RemObjects SDK'
+ TargetURL = 'http://localhost:8099/bin'
+ Left = 48
+ Top = 272
+ end
+ object ROBinMessage1: TROBinMessage
+ Left = 48
+ Top = 324
+ end
+ object tbl_Referencias: TDACDSDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'Referencias_CODIGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencias'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'Referencias_DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VALOR'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ DictionaryEntry = 'Referencias_VALOR'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ID_EMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ Alignment = taLeftJustify
+ DictionaryEntry = 'Referencias_ID_EMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ Params = <>
+ MasterMappingMode = mmDataRequest
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ SchemaCall.MethodName = 'GetDatasetSchema'
+ SchemaCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'aDatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Referencias'
+ end>
+ DataRequestCall.MethodName = 'GetDatasetDataEx'
+ DataRequestCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'DatasetName'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Referencias'
+ end
+ item
+ Name = 'Params'
+ ParamType = fIn
+ DataType = rtUserDefined
+ UserClassName = 'TDADatasetParamArray'
+ end
+ item
+ Name = 'UserFilter'
+ ParamType = fIn
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'IncludeSchema'
+ ParamType = fIn
+ DataType = rtBoolean
+ Value = False
+ end
+ item
+ Name = 'MaxRecords'
+ ParamType = fIn
+ DataType = rtInteger
+ Value = -1
+ end>
+ DataUpdateCall.MethodName = 'UpdateData'
+ DataUpdateCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtBinary
+ end
+ item
+ Name = 'Delta'
+ ParamType = fIn
+ DataType = rtBinary
+ end>
+ ScriptCall.MethodName = 'GetDatasetScripts'
+ ScriptCall.Params = <
+ item
+ Name = 'Result'
+ ParamType = fResult
+ DataType = rtString
+ Value = ''
+ end
+ item
+ Name = 'DatasetNames'
+ ParamType = fIn
+ DataType = rtString
+ Value = 'Referencias'
+ end>
+ ReadOnly = False
+ RemoteService = RORemoteService
+ Adapter = DABinAdapter
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Referencias'
+ IndexDefs = <>
+ Left = 256
+ Top = 160
+ end
+ object ds_Referencias: TDADataSource
+ DataTable = tbl_Referencias
+ Left = 256
+ Top = 88
+ end
+end
diff --git a/Source/Modulos/Referencias/Data/uDataModuleReferencias.pas b/Source/Modulos/Referencias/Data/uDataModuleReferencias.pas
new file mode 100644
index 00000000..080f515e
--- /dev/null
+++ b/Source/Modulos/Referencias/Data/uDataModuleReferencias.pas
@@ -0,0 +1,71 @@
+unit uDataModuleReferencias;
+
+interface
+
+uses
+ SysUtils, Classes, DB, uDAClientDataModule, uDADataTable, uDABINAdapter,
+ uDAScriptingProvider, uDACDSDataTable, uROWinInetHttpChannel, uROTypes,
+ uROServiceComponent, uRORemoteService, uROClient, uROBinMessage,
+ uDADesigntimeCall, uIDataModuleReferencias, uBizReferencias;
+
+type
+ TDataModuleReferencias = class(TDAClientDataModule, IDataModuleReferencias)
+ RORemoteService: TRORemoteService;
+ DABinAdapter: TDABINAdapter;
+ DADesigntimeCall1: TDADesigntimeCall;
+ LoginRemoteService: TRORemoteService;
+ ROWinInetHTTPChannel1: TROWinInetHTTPChannel;
+ ROBinMessage1: TROBinMessage;
+ tbl_Referencias: TDACDSDataTable;
+ ds_Referencias: TDADataSource;
+ procedure DAClientDataModuleCreate(Sender: TObject);
+ protected
+ function _CloneDataTable (const ADataTable : TDACDSDataTable): TDACDSDataTable; overload;
+ public
+ function GetItems: IBizReferencia;
+ end;
+
+implementation
+
+{$R *.DFM}
+
+uses
+ FactuGES_Intf, cxControls, uDataModuleConexion, uDataTableUtils,
+ schReferenciasClient_Intf;
+
+{ TdmAlmacens }
+
+procedure TDataModuleReferencias.DAClientDataModuleCreate(Sender: TObject);
+begin
+ RORemoteService.Channel := dmConexion.Channel;
+ RORemoteService.Message := dmConexion.Message;
+end;
+
+function TDataModuleReferencias._CloneDataTable(const ADataTable : TDACDSDataTable): TDACDSDataTable;
+begin
+ Result := NIL;
+
+ if not Assigned(ADataTable) then
+ raise Exception.Create ('No se ha asignado la tabla de origen (CloneDataTable)');
+
+ Result := TDACDSDataTable.Create(NIL);
+ CloneDataTable(ADataTable, Result);
+end;
+
+function TDataModuleReferencias.GetItems: IBizReferencia;
+var
+ AReferencia : TDACDSDataTable;
+begin
+ ShowHourglassCursor;
+ try
+ AReferencia := _CloneDataTable(tbl_Referencias);
+ AReferencia.BusinessRulesID := BIZ_CLIENT_REFERENCIA;
+
+ Result := (AReferencia as IBizReferencia);
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
+
+end.
diff --git a/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.pas b/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.pas
new file mode 100644
index 00000000..09bfa881
--- /dev/null
+++ b/Source/Modulos/Referencias/Model/Data/uIDataModuleReferencias.pas
@@ -0,0 +1,16 @@
+unit uIDataModuleReferencias;
+
+interface
+
+uses
+ uBizReferencias;
+
+type
+ IDataModuleReferencias = interface
+ ['{45F916F9-9F41-499C-83FA-AC41E5BE63E3}']
+ function GetItems: IBizReferencia;
+ end;
+
+implementation
+
+end.
diff --git a/Source/Modulos/Referencias/Model/Referencias_model.bdsproj b/Source/Modulos/Referencias/Model/Referencias_model.bdsproj
new file mode 100644
index 00000000..f4a9eb79
--- /dev/null
+++ b/Source/Modulos/Referencias/Model/Referencias_model.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Referencias_model.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Source/Modulos/Referencias/Model/Referencias_model.dpk b/Source/Modulos/Referencias/Model/Referencias_model.dpk
new file mode 100644
index 00000000..c0e33425
--- /dev/null
+++ b/Source/Modulos/Referencias/Model/Referencias_model.dpk
@@ -0,0 +1,43 @@
+package Referencias_model;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ dsnap,
+ dbrtl,
+ vcldb,
+ vcl,
+ adortl,
+ Base,
+ DataAbstract_D10;
+
+contains
+ uIDataModuleReferencias in 'Data\uIDataModuleReferencias.pas',
+ uBizReferencias in 'uBizReferencias.pas',
+ schReferenciasClient_Intf in 'schReferenciasClient_Intf.pas',
+ schReferenciasServer_Intf in 'schReferenciasServer_Intf.pas';
+
+end.
diff --git a/Source/Modulos/Referencias/Model/Referencias_model.res b/Source/Modulos/Referencias/Model/Referencias_model.res
new file mode 100644
index 00000000..86c94e6a
Binary files /dev/null and b/Source/Modulos/Referencias/Model/Referencias_model.res differ
diff --git a/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.pas b/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.pas
new file mode 100644
index 00000000..a972ca1e
--- /dev/null
+++ b/Source/Modulos/Referencias/Model/schReferenciasClient_Intf.pas
@@ -0,0 +1,136 @@
+unit schReferenciasClient_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable;
+
+const
+ { Data table rules ids
+ Feel free to change them to something more human readable
+ but make sure they are unique in the context of your application }
+ RID_Referencias = '{F79D045C-CF5A-4960-B700-8AA603E85E40}';
+
+ { Data table names }
+ nme_Referencias = 'Referencias';
+
+ { Referencias fields }
+ fld_ReferenciasCODIGO = 'CODIGO';
+ fld_ReferenciasDESCRIPCION = 'DESCRIPCION';
+ fld_ReferenciasVALOR = 'VALOR';
+ fld_ReferenciasID_EMPRESA = 'ID_EMPRESA';
+
+ { Referencias field indexes }
+ idx_ReferenciasCODIGO = 0;
+ idx_ReferenciasDESCRIPCION = 1;
+ idx_ReferenciasVALOR = 2;
+ idx_ReferenciasID_EMPRESA = 3;
+
+type
+ { IReferencias }
+ IReferencias = interface(IDAStronglyTypedDataTable)
+ ['{E55E8869-DE03-4568-91DF-BD2A7E7EAF84}']
+ { Property getters and setters }
+ function GetCODIGOValue: String;
+ procedure SetCODIGOValue(const aValue: String);
+ function GetDESCRIPCIONValue: String;
+ procedure SetDESCRIPCIONValue(const aValue: String);
+ function GetVALORValue: String;
+ procedure SetVALORValue(const aValue: String);
+ function GetID_EMPRESAValue: Integer;
+ procedure SetID_EMPRESAValue(const aValue: Integer);
+
+
+ { Properties }
+ property CODIGO: String read GetCODIGOValue write SetCODIGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property VALOR: String read GetVALORValue write SetVALORValue;
+ property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
+ end;
+
+ { TReferenciasDataTableRules }
+ TReferenciasDataTableRules = class(TDADataTableRules, IReferencias)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: String; virtual;
+ procedure SetCODIGOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetVALORValue: String; virtual;
+ procedure SetVALORValue(const aValue: String); virtual;
+ function GetID_EMPRESAValue: Integer; virtual;
+ procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGO: String read GetCODIGOValue write SetCODIGOValue;
+ property DESCRIPCION: String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property VALOR: String read GetVALORValue write SetVALORValue;
+ property ID_EMPRESA: Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses Variants;
+
+{ TReferenciasDataTableRules }
+constructor TReferenciasDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TReferenciasDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TReferenciasDataTableRules.GetCODIGOValue: String;
+begin
+ result := DataTable.Fields[idx_ReferenciasCODIGO].AsString;
+end;
+
+procedure TReferenciasDataTableRules.SetCODIGOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ReferenciasCODIGO].AsString := aValue;
+end;
+
+function TReferenciasDataTableRules.GetDESCRIPCIONValue: String;
+begin
+ result := DataTable.Fields[idx_ReferenciasDESCRIPCION].AsString;
+end;
+
+procedure TReferenciasDataTableRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ReferenciasDESCRIPCION].AsString := aValue;
+end;
+
+function TReferenciasDataTableRules.GetVALORValue: String;
+begin
+ result := DataTable.Fields[idx_ReferenciasVALOR].AsString;
+end;
+
+procedure TReferenciasDataTableRules.SetVALORValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ReferenciasVALOR].AsString := aValue;
+end;
+
+function TReferenciasDataTableRules.GetID_EMPRESAValue: Integer;
+begin
+ result := DataTable.Fields[idx_ReferenciasID_EMPRESA].AsInteger;
+end;
+
+procedure TReferenciasDataTableRules.SetID_EMPRESAValue(const aValue: Integer);
+begin
+ DataTable.Fields[idx_ReferenciasID_EMPRESA].AsInteger := aValue;
+end;
+
+
+initialization
+ RegisterDataTableRules(RID_Referencias, TReferenciasDataTableRules);
+
+end.
diff --git a/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.pas b/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.pas
new file mode 100644
index 00000000..7065acc9
--- /dev/null
+++ b/Source/Modulos/Referencias/Model/schReferenciasServer_Intf.pas
@@ -0,0 +1,145 @@
+unit schReferenciasServer_Intf;
+
+interface
+
+uses
+ Classes, DB, SysUtils, uROClasses, uDADataTable, uDABusinessProcessor, schReferenciasClient_Intf;
+
+const
+ { Delta rules ids
+ Feel free to change them to something more human readable
+ but make sure they are unique in the context of your application }
+ RID_ReferenciasDelta = '{6821A7E8-268E-4BD1-977E-0225B4DBA778}';
+
+type
+ { IReferenciasDelta }
+ IReferenciasDelta = interface(IReferencias)
+ ['{6821A7E8-268E-4BD1-977E-0225B4DBA778}']
+ { Property getters and setters }
+ function GetOldCODIGOValue : String;
+ function GetOldDESCRIPCIONValue : String;
+ function GetOldVALORValue : String;
+ function GetOldID_EMPRESAValue : Integer;
+
+ { Properties }
+ property OldCODIGO : String read GetOldCODIGOValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property OldVALOR : String read GetOldVALORValue;
+ property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue;
+ end;
+
+ { TReferenciasBusinessProcessorRules }
+ TReferenciasBusinessProcessorRules = class(TDABusinessProcessorRules, IReferencias, IReferenciasDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetCODIGOValue: String; virtual;
+ function GetOldCODIGOValue: String; virtual;
+ procedure SetCODIGOValue(const aValue: String); virtual;
+ function GetDESCRIPCIONValue: String; virtual;
+ function GetOldDESCRIPCIONValue: String; virtual;
+ procedure SetDESCRIPCIONValue(const aValue: String); virtual;
+ function GetVALORValue: String; virtual;
+ function GetOldVALORValue: String; virtual;
+ procedure SetVALORValue(const aValue: String); virtual;
+ function GetID_EMPRESAValue: Integer; virtual;
+ function GetOldID_EMPRESAValue: Integer; virtual;
+ procedure SetID_EMPRESAValue(const aValue: Integer); virtual;
+
+ { Properties }
+ property CODIGO : String read GetCODIGOValue write SetCODIGOValue;
+ property OldCODIGO : String read GetOldCODIGOValue;
+ property DESCRIPCION : String read GetDESCRIPCIONValue write SetDESCRIPCIONValue;
+ property OldDESCRIPCION : String read GetOldDESCRIPCIONValue;
+ property VALOR : String read GetVALORValue write SetVALORValue;
+ property OldVALOR : String read GetOldVALORValue;
+ property ID_EMPRESA : Integer read GetID_EMPRESAValue write SetID_EMPRESAValue;
+ property OldID_EMPRESA : Integer read GetOldID_EMPRESAValue;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
+implementation
+
+uses
+ Variants, uROBinaryHelpers;
+
+{ TReferenciasBusinessProcessorRules }
+constructor TReferenciasBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TReferenciasBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TReferenciasBusinessProcessorRules.GetCODIGOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasCODIGO];
+end;
+
+function TReferenciasBusinessProcessorRules.GetOldCODIGOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasCODIGO];
+end;
+
+procedure TReferenciasBusinessProcessorRules.SetCODIGOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasCODIGO] := aValue;
+end;
+
+function TReferenciasBusinessProcessorRules.GetDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasDESCRIPCION];
+end;
+
+function TReferenciasBusinessProcessorRules.GetOldDESCRIPCIONValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasDESCRIPCION];
+end;
+
+procedure TReferenciasBusinessProcessorRules.SetDESCRIPCIONValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasDESCRIPCION] := aValue;
+end;
+
+function TReferenciasBusinessProcessorRules.GetVALORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasVALOR];
+end;
+
+function TReferenciasBusinessProcessorRules.GetOldVALORValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasVALOR];
+end;
+
+procedure TReferenciasBusinessProcessorRules.SetVALORValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasVALOR] := aValue;
+end;
+
+function TReferenciasBusinessProcessorRules.GetID_EMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID_EMPRESA];
+end;
+
+function TReferenciasBusinessProcessorRules.GetOldID_EMPRESAValue: Integer;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ReferenciasID_EMPRESA];
+end;
+
+procedure TReferenciasBusinessProcessorRules.SetID_EMPRESAValue(const aValue: Integer);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ReferenciasID_EMPRESA] := aValue;
+end;
+
+
+initialization
+ RegisterBusinessProcessorRules(RID_ReferenciasDelta, TReferenciasBusinessProcessorRules);
+
+end.
diff --git a/Source/Modulos/Referencias/Model/uBizReferencias.pas b/Source/Modulos/Referencias/Model/uBizReferencias.pas
new file mode 100644
index 00000000..3cc5efc8
--- /dev/null
+++ b/Source/Modulos/Referencias/Model/uBizReferencias.pas
@@ -0,0 +1,29 @@
+unit uBizReferencias;
+
+interface
+
+uses
+ uDAInterfaces, uDADataTable, schReferenciasClient_Intf;
+
+const
+ BIZ_CLIENT_Referencia = 'Client.Referencia';
+
+type
+ IBizReferencia = interface(IReferencias)
+ ['{0DA71F0A-D64B-41A7-8453-B3FA0C41C697}']
+ end;
+
+ TBizReferencia = class(TReferenciasDataTableRules, IBizReferencia)
+ end;
+
+implementation
+
+{ TBizReferencia }
+
+initialization
+ RegisterDataTableRules(BIZ_CLIENT_REFERENCIA, TBizReferencia);
+
+finalization
+
+end.
+
diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.bdsproj b/Source/Modulos/Referencias/Plugin/Referencias_plugin.bdsproj
new file mode 100644
index 00000000..46e11ed3
--- /dev/null
+++ b/Source/Modulos/Referencias/Plugin/Referencias_plugin.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Referencias_plugin.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.dpk b/Source/Modulos/Referencias/Plugin/Referencias_plugin.dpk
new file mode 100644
index 00000000..d81d6c87
--- /dev/null
+++ b/Source/Modulos/Referencias/Plugin/Referencias_plugin.dpk
@@ -0,0 +1,42 @@
+package Referencias_plugin;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ PngComponentsD10,
+ PNG_D10,
+ vclactnband,
+ vclx,
+ PluginSDK_D10R,
+ Referencias_controller,
+ Referencias_model,
+ Referencias_view;
+
+contains
+ uPluginReferencias in 'uPluginReferencias.pas' {PluginReferencias};
+
+end.
diff --git a/Source/Modulos/Referencias/Plugin/Referencias_plugin.res b/Source/Modulos/Referencias/Plugin/Referencias_plugin.res
new file mode 100644
index 00000000..86c94e6a
Binary files /dev/null and b/Source/Modulos/Referencias/Plugin/Referencias_plugin.res differ
diff --git a/Source/Modulos/Referencias/Plugin/uPluginReferencias.dfm b/Source/Modulos/Referencias/Plugin/uPluginReferencias.dfm
new file mode 100644
index 00000000..efdf241a
--- /dev/null
+++ b/Source/Modulos/Referencias/Plugin/uPluginReferencias.dfm
@@ -0,0 +1,83 @@
+object PluginReferencias: TPluginReferencias
+ OldCreateOrder = True
+ DefaultAction = actReferencias
+ Description = 'Referencias'
+ ModuleMenu = MainMenu
+ ModuleName = 'Referencias'
+ SmallImages = SmallImages
+ LargeImages = SmallImages
+ Author = 'Rodax Software'
+ Version = '1.0.0'
+ Height = 252
+ Width = 401
+ object LargeImages: TPngImageList
+ Height = 24
+ Width = 24
+ PngImages = <>
+ Left = 232
+ Top = 16
+ end
+ object ModuleActionList: TActionList
+ Images = SmallImages
+ Left = 40
+ Top = 72
+ object actReferencias: TAction
+ Category = 'Referencias'
+ Caption = 'Referencias'
+ ImageIndex = 0
+ OnExecute = actReferenciasExecute
+ end
+ end
+ object MainMenu: TMainMenu
+ Images = SmallImages
+ Left = 40
+ Top = 16
+ object Referencias: TMenuItem
+ Caption = 'Empresa'
+ SubMenuImages = SmallImages
+ object N1: TMenuItem
+ Tag = 18990
+ Caption = '-'
+ end
+ object Referencias1: TMenuItem
+ Tag = 19001
+ Action = actReferencias
+ SubMenuImages = SmallImages
+ end
+ end
+ end
+ object SmallImages: TPngImageList
+ PngImages = <
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000001A34944415478DA9D922177E3300CC7655636C3B20596CD702C86C7E6
+ B141C342EF1BE42318167AECD81916BA6CD0638582852A0BCBA46CCDDAF46E77
+ EFF4E2A7D8F2FF2759B6724FD9354BF30B09810EF5B16C43866FACAC7DA67DD5
+ E364655A15020ECEDD42AD47C839EE4AE9EC5CE492EBB2CF9DFC676BCA83772D
+ 6C133CEFE14D395F066B0C032AA4346AD5B9905D20C49BD255350196D4BEF40D
+ C48A47657F44073D05CEDC9AFBF0585F63B61D1379AF7BF2B702C67D8509B0F6
+ 4329E52D1DE8CE2CF557B6B93144CAF13C04767702CCED62B12433587FB99141
+ 4E1C03C2B70011B72EC02E479843CEAD6E60D04BEED9C1825B47A54E6273CF15
+ F73CE9095226D00B891000FB66C1733E2F71CCACCC08EA36043165755141D334
+ 2CE6EEAFE429F0552F3468CD5E370CE05842F04E4FE2DFF6A05979CE04633524
+ 15F08707024484E0F9EA36C880ACAE7A70DE87931D7B0190BCD0B1326F11E256
+ 20FF0098C454D92324167A5320163B95FF47C0518EC02219F4E9D3AB01C780F4
+ 3780910A46D167763E3FF508B95A59BA105F037E76038EC28FE6C9B58DCDEC3F
+ E273F115E07FEC1D6B02010E884AA1F00000000049454E44AE426082}
+ Name = 'PngImage0'
+ Background = clWindow
+ end>
+ PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
+ Left = 308
+ Top = 16
+ Bitmap = {}
+ end
+ object ExtraImages: TPngImageList
+ Height = 28
+ Width = 28
+ PngImages = <>
+ Left = 232
+ Top = 80
+ end
+end
diff --git a/Source/Modulos/Referencias/Plugin/uPluginReferencias.pas b/Source/Modulos/Referencias/Plugin/uPluginReferencias.pas
new file mode 100644
index 00000000..7def510b
--- /dev/null
+++ b/Source/Modulos/Referencias/Plugin/uPluginReferencias.pas
@@ -0,0 +1,74 @@
+unit uPluginReferencias;
+
+interface
+
+uses
+ uModuleController, uInterfaces, uHostManager, Menus, Classes, ActnList,
+ ImgList, Controls, PngImageList;
+
+type
+ IMCReferencias = interface(IInterface)
+ ['{FCFD32A3-68B9-4A15-B458-EB8B27324D22}']
+ end;
+
+ TPluginReferencias = class(TModuleController, IMCReferencias)
+ actReferencias: TAction;
+ ExtraImages: TPngImageList;
+ LargeImages: TPngImageList;
+ MainMenu: TMainMenu;
+ ModuleActionList: TActionList;
+ SmallImages: TPngImageList;
+ Referencias: TMenuItem;
+ Referencias1: TMenuItem;
+ N1: TMenuItem;
+ procedure actReferenciasExecute(Sender: TObject);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ end;
+
+implementation
+
+{$R *.dfm}
+
+uses
+ Forms, Dialogs, SysUtils,
+ uReferenciasController, uBizReferencias, uReferenciasViewRegister;
+
+function GetModule : TModuleController;
+begin
+ Result := TPluginReferencias.Create(NIL);
+end;
+
+exports
+ GetModule name GET_MODULE_FUNC;
+
+procedure TPluginReferencias.actReferenciasExecute(Sender: TObject);
+var
+ AReferenciasController : IReferenciasController;
+ AReferencias : IBizReferencia;
+begin
+ AReferenciasController := TReferenciasController.Create;
+ AReferencias := (AReferenciasController.BuscarTodos as IBizReferencia);
+ AReferenciasController.VerTodos(AReferencias);
+end;
+
+constructor TPluginReferencias.Create(AOwner: TComponent);
+begin
+ inherited;
+ uReferenciasViewRegister.RegisterViews;
+end;
+
+destructor TPluginReferencias.Destroy;
+begin
+ uReferenciasViewRegister.UnregisterViews;
+ inherited;
+end;
+
+initialization
+ RegisterModuleClass(TPluginReferencias);
+
+finalization
+ UnRegisterModuleClass(TPluginReferencias);
+
+end.
diff --git a/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dfm b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dfm
new file mode 100644
index 00000000..b724bf38
--- /dev/null
+++ b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.dfm
@@ -0,0 +1,194 @@
+object srvReferencias: TsrvReferencias
+ OldCreateOrder = True
+ OnCreate = DARemoteServiceCreate
+ RequiresSession = True
+ SessionManager = dmServer.SessionManager
+ AcquireConnection = True
+ ServiceSchema = schReferencias
+ ServiceAdapter = DABINAdapter
+ OnBeforeAcquireConnection = DARemoteServiceBeforeAcquireConnection
+ Height = 202
+ Width = 392
+ object Diagrams: TDADiagrams
+ Left = 150
+ Top = 90
+ DiagramData = ''#13#10''#13#10
+ end
+ object DataDictionary: TDADataDictionary
+ Fields = <
+ item
+ Name = 'Referencias_CODIGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'CODIGO'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'Referencias_DESCRIPCION'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'Referencias'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'Referencias_VALOR'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'C'#243'digo'
+ Alignment = taLeftJustify
+ end
+ item
+ Name = 'Referencias_ID_EMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DisplayWidth = 0
+ DisplayLabel = 'ID_EMPRESA'
+ Alignment = taLeftJustify
+ end>
+ Left = 150
+ Top = 24
+ end
+ object schReferencias: TDASchema
+ ConnectionManager = dmServer.ConnectionManager
+ DataDictionary = DataDictionary
+ Diagrams = Diagrams
+ Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'REFERENCIAS'
+ SQL =
+ 'SELECT '#10' CODIGO, DESCRIPCION, VALOR, ID_EMPRESA'#10' FROM'#10' RE' +
+ 'FERENCIAS'
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'DESCRIPCION'
+ TableField = 'DESCRIPCION'
+ end
+ item
+ DatasetField = 'CODIGO'
+ TableField = 'CODIGO'
+ end
+ item
+ DatasetField = 'VALOR'
+ TableField = 'VALOR'
+ end
+ item
+ DatasetField = 'ID_EMPRESA'
+ TableField = 'ID_EMPRESA'
+ end>
+ end>
+ Name = 'Referencias'
+ Fields = <
+ item
+ Name = 'CODIGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ DictionaryEntry = 'Referencias_CODIGO'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'DESCRIPCION'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DictionaryEntry = 'Referencias_DESCRIPCION'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'VALOR'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ DictionaryEntry = 'Referencias_VALOR'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end
+ item
+ Name = 'ID_EMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ DictionaryEntry = 'Referencias_ID_EMPRESA'
+ InPrimaryKey = False
+ Calculated = False
+ Lookup = False
+ LookupCache = False
+ end>
+ BusinessRulesClient.ScriptLanguage = rslPascalScript
+ BusinessRulesServer.ScriptLanguage = rslPascalScript
+ end>
+ Commands = <
+ item
+ Params = <
+ item
+ Name = 'VALOR'
+ DataType = datString
+ Size = 255
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_CODIGO'
+ DataType = datString
+ Size = 50
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end
+ item
+ Name = 'OLD_ID_EMPRESA'
+ DataType = datInteger
+ BlobType = dabtUnknown
+ Value = ''
+ ParamType = daptInput
+ end>
+ Statements = <
+ item
+ Connection = 'IBX'
+ TargetTable = 'REFERENCIAS'
+ SQL =
+ 'UPDATE REFERENCIAS'#10' SET '#10' VALOR = :VALOR'#10' WHERE'#10' (CODIGO' +
+ ' = :OLD_CODIGO)'#10' AND (ID_EMPRESA = :OLD_ID_EMPRESA)'
+ StatementType = stSQL
+ ColumnMappings = <>
+ end>
+ Name = 'Update_Referencias'
+ end>
+ RelationShips = <>
+ UpdateRules = <>
+ Left = 48
+ Top = 24
+ end
+ object DABINAdapter: TDABINAdapter
+ Left = 48
+ Top = 90
+ end
+ object bpReferencias: TDABusinessProcessor
+ Schema = schReferencias
+ UpdateCommandName = 'Update_Referencias'
+ ReferencedDataset = 'Referencias'
+ ProcessorOptions = [poAutoGenerateRefreshDataset, poPrepareCommands]
+ UpdateMode = updWhereKeyOnly
+ Left = 248
+ Top = 24
+ end
+end
diff --git a/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.pas b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.pas
new file mode 100644
index 00000000..c176959b
--- /dev/null
+++ b/Source/Modulos/Referencias/Servidor/srvReferencias_Impl.pas
@@ -0,0 +1,69 @@
+unit srvReferencias_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:} DataAbstract_Intf,
+ {Generated:} FactuGES_Intf, uDADataTable, uDABINAdapter, uDAClasses,
+ uDAScriptingProvider, uDABusinessProcessor;
+
+type
+ { TsrvReferencias }
+ TsrvReferencias = class(TDARemoteService, IsrvReferencias)
+ Diagrams: TDADiagrams;
+ DABINAdapter: TDABINAdapter;
+ bpReferencias: TDABusinessProcessor;
+ schReferencias: TDASchema;
+ DataDictionary: TDADataDictionary;
+ procedure DARemoteServiceCreate(Sender: TObject);
+ procedure DARemoteServiceBeforeAcquireConnection(Sender: TDARemoteService;
+ var ConnectionName: string);
+ protected
+ { IsrvReferencias methods }
+ function GetNextAutoInc(const GeneratorName: String): Integer;
+ end;
+
+implementation
+
+{$R *.dfm}
+uses
+ {Generated:} FactuGES_Invk, uDataModuleServer, uDatabaseUtils;
+
+procedure Create_srvReferencias(out anInstance : IUnknown);
+begin
+ anInstance := TsrvReferencias.Create(NIL);
+end;
+
+{ srvReferencias }
+procedure TsrvReferencias.DARemoteServiceBeforeAcquireConnection(
+ Sender: TDARemoteService; var ConnectionName: string);
+begin
+ ConnectionName := dmServer.ConnectionName;
+end;
+
+procedure TsrvReferencias.DARemoteServiceCreate(Sender: TObject);
+begin
+ SessionManager := dmServer.SessionManager;
+end;
+
+function TsrvReferencias.GetNextAutoInc(const GeneratorName: String): Integer;
+begin
+ Result := uDatabaseUtils.GetNextAutoInc(GeneratorName)
+end;
+
+initialization
+ TROClassFactory.Create('srvReferencias', Create_srvReferencias, TsrvReferencias_Invoker);
+
+finalization
+
+end.
diff --git a/Source/Modulos/Referencias/Views/Referencias_view.bdsproj b/Source/Modulos/Referencias/Views/Referencias_view.bdsproj
new file mode 100644
index 00000000..eb36e71c
--- /dev/null
+++ b/Source/Modulos/Referencias/Views/Referencias_view.bdsproj
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
+
+
+
+
+ Referencias_view.dpk
+
+
+ 7.0
+
+
+ 8
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ True
+ True
+ WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+
+ False
+
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ False
+ False
+ False
+ True
+ True
+ True
+ True
+ True
+ True
+
+
+
+ 0
+ 0
+ False
+ 1
+ False
+ False
+ False
+ 16384
+ 1048576
+ 4194304
+
+
+
+
+ .\
+ ..\..\..\..\Output\Debug\Cliente
+ ..\..\Lib
+ ..\..\..\Lib;..\..\Lib
+
+
+
+ False
+
+
+
+
+
+ False
+
+
+ True
+ False
+
+
+
+ $00000000
+
+
+
+ True
+ False
+ 1
+ 0
+ 0
+ 0
+ False
+ False
+ False
+ False
+ False
+ 3082
+ 1252
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
+ 1.0.0.0
+
+
+
+
+
diff --git a/Source/Modulos/Referencias/Views/Referencias_view.dpk b/Source/Modulos/Referencias/Views/Referencias_view.dpk
new file mode 100644
index 00000000..113bb2cb
--- /dev/null
+++ b/Source/Modulos/Referencias/Views/Referencias_view.dpk
@@ -0,0 +1,42 @@
+package Referencias_view;
+
+{$R *.res}
+{$ALIGN 8}
+{$ASSERTIONS ON}
+{$BOOLEVAL OFF}
+{$DEBUGINFO ON}
+{$EXTENDEDSYNTAX ON}
+{$IMPORTEDDATA ON}
+{$IOCHECKS ON}
+{$LOCALSYMBOLS ON}
+{$LONGSTRINGS ON}
+{$OPENSTRINGS ON}
+{$OPTIMIZATION ON}
+{$OVERFLOWCHECKS OFF}
+{$RANGECHECKS OFF}
+{$REFERENCEINFO ON}
+{$SAFEDIVIDE OFF}
+{$STACKFRAMES OFF}
+{$TYPEDADDRESS OFF}
+{$VARSTRINGCHECKS ON}
+{$WRITEABLECONST OFF}
+{$MINENUMSIZE 1}
+{$IMAGEBASE $400000}
+{$IMPLICITBUILD OFF}
+
+requires
+ rtl,
+ vcl,
+ dbrtl,
+ vcldb,
+ dsnap,
+ adortl,
+ DataAbstract_D10,
+ JvCmpD10R,
+ Referencias_controller;
+
+contains
+ uEditorReferencias in 'uEditorReferencias.pas' {fEditorReferencias: TfEditorFormasPago},
+ uReferenciasViewRegister in 'uReferenciasViewRegister.pas';
+
+end.
diff --git a/Source/Modulos/Referencias/Views/Referencias_view.res b/Source/Modulos/Referencias/Views/Referencias_view.res
new file mode 100644
index 00000000..86c94e6a
Binary files /dev/null and b/Source/Modulos/Referencias/Views/Referencias_view.res differ
diff --git a/Source/Modulos/Referencias/Views/uEditorReferencias.dfm b/Source/Modulos/Referencias/Views/uEditorReferencias.dfm
new file mode 100644
index 00000000..57070f97
--- /dev/null
+++ b/Source/Modulos/Referencias/Views/uEditorReferencias.dfm
@@ -0,0 +1,145 @@
+object fEditorReferencias: TfEditorReferencias
+ Left = 453
+ Top = 234
+ BorderIcons = [biSystemMenu]
+ BorderStyle = bsSingle
+ Caption = 'Lista de referencias'
+ ClientHeight = 406
+ ClientWidth = 466
+ Color = clBtnFace
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -11
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ OldCreateOrder = False
+ Position = poScreenCenter
+ OnCloseQuery = FormCloseQuery
+ OnShow = FormShow
+ PixelsPerInch = 96
+ TextHeight = 13
+ object bAceptar: TButton
+ Left = 297
+ Top = 373
+ Width = 75
+ Height = 23
+ Action = actAceptar
+ Default = True
+ TabOrder = 1
+ end
+ object bCancelar: TButton
+ Left = 382
+ Top = 373
+ Width = 75
+ Height = 23
+ Action = actCancelar
+ Cancel = True
+ TabOrder = 2
+ end
+ object PageControl1: TPageControl
+ Left = 8
+ Top = 8
+ Width = 450
+ Height = 356
+ ActivePage = TabSheet1
+ TabOrder = 0
+ object TabSheet1: TTabSheet
+ Caption = 'Referencias'
+ ExplicitWidth = 382
+ object Label1: TLabel
+ Left = 6
+ Top = 12
+ Width = 147
+ Height = 13
+ Caption = 'Lista de referencias disponibles'
+ end
+ object ListaReferencias: TcxGrid
+ Left = 0
+ Top = 0
+ Width = 442
+ Height = 328
+ Align = alClient
+ TabOrder = 0
+ LookAndFeel.Kind = lfOffice11
+ LookAndFeel.NativeStyle = True
+ ExplicitTop = 25
+ ExplicitWidth = 583
+ ExplicitHeight = 439
+ object ListaReferenciasView: TcxGridDBTableView
+ NavigatorButtons.ConfirmDelete = False
+ FilterBox.Visible = fvNever
+ DataController.DataSource = dsReferencias
+ DataController.Filter.Options = [fcoCaseInsensitive]
+ DataController.KeyFieldNames = 'CODIGO'
+ DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoFocusTopRowAfterSorting, dcoImmediatePost]
+ DataController.Summary.DefaultGroupSummaryItems = <>
+ DataController.Summary.FooterSummaryItems = <>
+ DataController.Summary.SummaryGroups = <>
+ OptionsBehavior.AlwaysShowEditor = True
+ OptionsBehavior.CellHints = True
+ OptionsBehavior.FocusCellOnTab = True
+ OptionsBehavior.GoToNextCellOnEnter = True
+ OptionsBehavior.BestFitMaxRecordCount = 20
+ OptionsBehavior.FocusCellOnCycle = True
+ OptionsCustomize.ColumnFiltering = False
+ OptionsCustomize.ColumnGrouping = False
+ OptionsCustomize.ColumnMoving = False
+ OptionsCustomize.ColumnSorting = False
+ OptionsCustomize.DataRowSizing = True
+ OptionsData.CancelOnExit = False
+ OptionsData.Deleting = False
+ OptionsData.DeletingConfirmation = False
+ OptionsData.Inserting = False
+ OptionsSelection.MultiSelect = True
+ OptionsSelection.UnselectFocusedRecordOnExit = False
+ OptionsView.CellEndEllipsis = True
+ OptionsView.CellAutoHeight = True
+ OptionsView.ColumnAutoWidth = True
+ OptionsView.GridLineColor = cl3DLight
+ OptionsView.GroupByBox = False
+ OptionsView.HeaderEndEllipsis = True
+ OptionsView.Indicator = True
+ object ListaReferenciasViewCODIGO: TcxGridDBColumn
+ DataBinding.FieldName = 'CODIGO'
+ Visible = False
+ end
+ object ListaReferenciasViewDESCRIPCION: TcxGridDBColumn
+ DataBinding.FieldName = 'DESCRIPCION'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.ReadOnly = True
+ Width = 191
+ end
+ object ListaReferenciasViewVALOR: TcxGridDBColumn
+ DataBinding.FieldName = 'VALOR'
+ PropertiesClassName = 'TcxTextEditProperties'
+ Properties.OnValidate = ListaReferenciasViewVALORPropertiesValidate
+ Width = 48
+ end
+ end
+ object ListaReferenciasLevel: TcxGridLevel
+ GridView = ListaReferenciasView
+ end
+ end
+ end
+ end
+ object ActionList1: TActionList
+ Left = 144
+ Top = 16
+ object actAceptar: TAction
+ Caption = 'A&ceptar'
+ OnExecute = actAceptarExecute
+ end
+ object actCancelar: TAction
+ Caption = '&Cancelar'
+ OnExecute = actCancelarExecute
+ end
+ object actCerrar: TAction
+ Caption = 'actCerrar'
+ OnExecute = actCerrarExecute
+ end
+ end
+ object dsReferencias: TDADataSource
+ Left = 168
+ Top = 16
+ end
+end
diff --git a/Source/Modulos/Referencias/Views/uEditorReferencias.pas b/Source/Modulos/Referencias/Views/uEditorReferencias.pas
new file mode 100644
index 00000000..6dfd9c1b
--- /dev/null
+++ b/Source/Modulos/Referencias/Views/uEditorReferencias.pas
@@ -0,0 +1,173 @@
+{
+===============================================================================
+ Copyright (©) 2006. Rodax Software.
+===============================================================================
+ Los contenidos de este fichero son propiedad de Rodax Software titular del
+ copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
+ en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
+ acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
+ bajo el que se suministra.
+ -----------------------------------------------------------------------------
+ Web: www.rodax-software.com
+===============================================================================
+ Fecha primera versión: 22-05-2006
+ Versión actual: 1.0.0
+ Fecha versión actual: 22-05-2006
+===============================================================================
+ Modificaciones:
+
+ Fecha Comentarios
+ ---------------------------------------------------------------------------
+===============================================================================
+}
+
+unit uEditorReferencias;
+
+interface
+
+uses
+ Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
+ uIEditorReferencias, uBizReferencias, uReferenciasController, DB, uDADataTable,
+ ActnList, Grids, DBGrids, StdCtrls, ComCtrls, cxStyles, cxCustomData,
+ cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, cxGridLevel,
+ cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
+ cxControls, cxGridCustomView, cxGrid, cxTextEdit;
+
+type
+ TfEditorReferencias = class(TForm, IEditorReferencias)
+ ActionList1: TActionList;
+ dsReferencias: TDADataSource;
+ actAceptar: TAction;
+ actCancelar: TAction;
+ bAceptar: TButton;
+ bCancelar: TButton;
+ actCerrar: TAction;
+ PageControl1: TPageControl;
+ TabSheet1: TTabSheet;
+ Label1: TLabel;
+ ListaReferencias: TcxGrid;
+ ListaReferenciasView: TcxGridDBTableView;
+ ListaReferenciasViewCODIGO: TcxGridDBColumn;
+ ListaReferenciasViewDESCRIPCION: TcxGridDBColumn;
+ ListaReferenciasViewVALOR: TcxGridDBColumn;
+ ListaReferenciasLevel: TcxGridLevel;
+ procedure FormShow(Sender: TObject);
+
+ procedure actAceptarExecute(Sender: TObject);
+ procedure actCancelarExecute(Sender: TObject);
+ procedure actCerrarExecute(Sender: TObject);
+ procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
+ procedure ListaReferenciasViewVALORPropertiesValidate(Sender: TObject;
+ var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
+
+ protected
+ FReferencias: IBizReferencia;
+ FController: IReferenciasController;
+ function GetReferencias: IBizReferencia;
+ procedure SetReferencias(const Value: IBizReferencia);
+ public
+ constructor Create(AOwner: TComponent); override;
+ destructor Destroy; override;
+ property Referencias: IBizReferencia read GetReferencias write SetReferencias;
+ end;
+
+
+implementation
+{$R *.dfm}
+
+{ TfEditorReferencias }
+
+uses
+ uDialogUtils, Dialogs, uDataTableUtils;
+
+function TfEditorReferencias.GetReferencias: IBizReferencia;
+begin
+ Result := FReferencias;
+end;
+
+procedure TfEditorReferencias.ListaReferenciasViewVALORPropertiesValidate(
+ Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
+ var Error: Boolean);
+begin
+// Showmessage('Validar'); No es necesario porque si no pone número lo pone el servidor
+end;
+
+procedure TfEditorReferencias.SetReferencias(const Value: IBizReferencia);
+begin
+ FReferencias := Value;
+ dsReferencias.DataTable := FReferencias.DataTable;
+ dsReferencias.DataTable.Open;
+end;
+
+constructor TfEditorReferencias.Create(AOwner: TComponent);
+begin
+ inherited;
+ FController := TReferenciasController.Create;
+end;
+
+destructor TfEditorReferencias.Destroy;
+begin
+ FReferencias := NIL;
+ FController := NIL;
+ inherited;
+end;
+
+procedure TfEditorReferencias.actAceptarExecute(Sender: TObject);
+begin
+ try
+ if (Referencias.DataTable.State in dsEditModes) then
+ Referencias.DataTable.post;
+ Referencias.DataTable.ApplyUpdates;
+ except
+ on E : Exception do begin
+ Referencias.DataTable.CancelUpdates;
+ ShowErrorMessage('Error al guardar cambios', 'Se ha producido un error grave', E);
+ Exit;
+ end;
+ end;
+ actCerrar.Execute;
+end;
+
+procedure TfEditorReferencias.actCancelarExecute(Sender: TObject);
+begin
+ Referencias.DataTable.CancelUpdates;
+ actCerrar.Execute;
+end;
+
+procedure TfEditorReferencias.actCerrarExecute(Sender: TObject);
+begin
+ Close;
+end;
+
+procedure TfEditorReferencias.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
+var
+ Respuesta: Integer;
+begin
+ Respuesta := IDNO;
+
+ if (DataTableModified(dsReferencias.DataTable)) then
+ Respuesta := ShowConfirmMessage('Atención', 'Se han producido cambios',
+ '¿Desea guardar los cambios que se han producido antes de cerrar?',
+ [TDlgButton_SI, TDlgButton_NO, TDlgButton_CANCELAR]);
+
+ case Respuesta of
+ IDYES : actAceptar.Execute;
+ IDNO : actCancelar.Execute;
+ else CanClose := False;
+ end;
+end;
+
+procedure TfEditorReferencias.FormShow(Sender: TObject);
+begin
+ if not FReferencias.DataTable.Active then
+ FReferencias.DataTable.Active := true;
+
+ ListaReferencias.SetFocus;
+{
+ EnableScrollBar(ListaReferencias.Handle,SB_HORZ,ESB_DISABLE_BOTH);
+ ShowScrollBar(ListaReferencias.Handle,SB_HORZ,false);
+ EnableScrollBar(ListaReferencias.Handle,SB_VERT,ESB_DISABLE_BOTH);
+}
+end;
+
+end.
diff --git a/Source/Modulos/Referencias/Views/uReferenciasViewRegister.pas b/Source/Modulos/Referencias/Views/uReferenciasViewRegister.pas
new file mode 100644
index 00000000..841a21a2
--- /dev/null
+++ b/Source/Modulos/Referencias/Views/uReferenciasViewRegister.pas
@@ -0,0 +1,23 @@
+unit uReferenciasViewRegister;
+
+interface
+
+procedure RegisterViews;
+procedure UnregisterViews;
+
+implementation
+
+uses
+ uEditorRegistryUtils, uEditorReferencias;
+
+procedure RegisterViews;
+begin
+ EditorRegistry.RegisterClass(TfEditorReferencias, 'EditorReferencias');
+end;
+
+procedure UnregisterViews;
+begin
+ EditorRegistry.UnRegisterClass(TfEditorReferencias);
+end;
+
+end.