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.