diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 index 3040ec1..10d86ef 100644 Binary files a/Build/Build.fbl6 and b/Build/Build.fbl6 differ diff --git a/Resources/Iconos/Generales/16x16/Aumentar_letra.png b/Resources/Iconos/Generales/16x16/Aumentar_letra.png new file mode 100644 index 0000000..141ebc4 Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Aumentar_letra.png differ diff --git a/Resources/Iconos/Generales/16x16/Disminuir_letra.png b/Resources/Iconos/Generales/16x16/Disminuir_letra.png new file mode 100644 index 0000000..2febedb Binary files /dev/null and b/Resources/Iconos/Generales/16x16/Disminuir_letra.png differ diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index a059afb..1d93673 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -65,56 +65,56 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fConfigurarConexion
TForm diff --git a/Source/Base/Utiles/uStringsUtils.pas b/Source/Base/Utiles/uStringsUtils.pas index 5b8c59b..6cb3354 100644 --- a/Source/Base/Utiles/uStringsUtils.pas +++ b/Source/Base/Utiles/uStringsUtils.pas @@ -132,7 +132,7 @@ function CadLimpiaCar(NIF: String): String; delete(NIF,pos('-',NIF),1); while (pos('/',NIF)>0) do delete(NIF,pos('/',NIF),1); - Result:=NIF; + Result:=UpperCase(NIF); end; end. diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index 181d8fd..181cf4e 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -52,7 +52,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2260FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.2.6.0FactuGES v2FactuGES v22.2.6.0 +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2300FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.0.0FactuGES v2FactuGES v22.3.0.0 File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index 2e52eae..5fcd81d 100644 Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index 0edfe47..84e7139 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,34 +58,34 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/Informes/1/InfContratoCliente.fr3 b/Source/Informes/1/InfContratoCliente.fr3 index 0274323..4159fd0 100644 --- a/Source/Informes/1/InfContratoCliente.fr3 +++ b/Source/Informes/1/InfContratoCliente.fr3 @@ -1,34 +1,34 @@ - + - - - - - - - + + + + + + + - + - - - - - - + + + + + + - + - + @@ -38,7 +38,7 @@ - + @@ -58,14 +58,14 @@ - - + + - - + + @@ -76,7 +76,7 @@ - + diff --git a/Source/Informes/1/InfFacturaCliente.fr3 b/Source/Informes/1/InfFacturaCliente.fr3 index fa87018..9000840 100644 --- a/Source/Informes/1/InfFacturaCliente.fr3 +++ b/Source/Informes/1/InfFacturaCliente.fr3 @@ -1,5 +1,5 @@ - + @@ -38,14 +38,14 @@ - + - + - + diff --git a/Source/Lib/ApplicationBase.dcp b/Source/Lib/ApplicationBase.dcp index 682d342..9e37f8c 100644 Binary files a/Source/Lib/ApplicationBase.dcp and b/Source/Lib/ApplicationBase.dcp differ diff --git a/Source/Lib/Base.dcp b/Source/Lib/Base.dcp index eda01be..31bffcb 100644 Binary files a/Source/Lib/Base.dcp and b/Source/Lib/Base.dcp differ diff --git a/Source/Lib/GUIBase.dcp b/Source/Lib/GUIBase.dcp index 268bbfa..d1907fd 100644 Binary files a/Source/Lib/GUIBase.dcp and b/Source/Lib/GUIBase.dcp differ diff --git a/Source/Modulos/Contratos de cliente/Controller/View/uIEditorContratosClientePreview.pas b/Source/Modulos/Contratos de cliente/Controller/View/uIEditorContratosClientePreview.pas index 0f08fda..d690c03 100644 --- a/Source/Modulos/Contratos de cliente/Controller/View/uIEditorContratosClientePreview.pas +++ b/Source/Modulos/Contratos de cliente/Controller/View/uIEditorContratosClientePreview.pas @@ -8,6 +8,12 @@ uses type IEditorContratosClientePreview = interface(IEditorPreview) ['{475D47DE-2A04-4D85-9D3C-6201B7EF2F29}'] + function getTamLetra: Integer; + function getVerCondiciones: Boolean; + procedure setTamLetra(const Value: Integer); + procedure setVerCodiciones(const Value: Boolean); + property Vercondiciones: Boolean read getVerCondiciones write setVerCodiciones; + property TamLetra: Integer read getTamLetra write setTamLetra; end; diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas index 34a1ef4..ac06b98 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas @@ -8,7 +8,7 @@ uses uControllerBase, uIDataModuleContratosCliente, uClientesController, uDetallesContratoClienteController, uGestorDocumentosController, uBizContratosCliente, uBizDireccionesContacto, uBizDetallesContratoCliente, - uIntegerListUtils; + uIntegerListUtils, uDataModuleContratosCliente; type TEnumTiposContrato = (teCocina, teArmario, teBano, teElectrodomestico, teObra, teVarios); @@ -55,8 +55,8 @@ type function EsModificable(AContrato : IBizContratoCliente): Boolean; function EsEliminable(AContrato : IBizContratoCliente): Boolean; - procedure Preview(AContrato : IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false); - procedure Print(AContrato : IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false); + procedure Preview(AContrato : IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); + procedure Print(AContrato : IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); procedure EnviarContratoPorEMail(AContrato : IBizContratoCliente); function CambiarSituacion(AContrato : IBizContratoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; function AsignarLOPD(AContratos: IBizContratoCliente): Boolean; @@ -68,6 +68,7 @@ type procedure VerFacturasProveedor(AContrato : IBizContratoCliente); procedure CopiarDireccion (const ADireccion: IBizDireccionesContacto; AContrato: IBizContratoCliente); + procedure FechaUltimaActualizacionToday (AContrato: IBizContratoCliente); end; TContratosClienteController = class(TControllerBase, IContratosClienteController) @@ -133,8 +134,8 @@ type function EsModificable(AContrato : IBizContratoCliente): Boolean; function EsEliminable(AContrato : IBizContratoCliente): Boolean; - procedure Preview(AContrato : IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false); - procedure Print(AContrato : IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false); + procedure Preview(AContrato : IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); + procedure Print(AContrato : IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); procedure EnviarContratoPorEMail(AContrato : IBizContratoCliente); function CambiarSituacion(AContrato : IBizContratoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; function AsignarLOPD(AContratos: IBizContratoCliente): Boolean; @@ -146,13 +147,14 @@ type procedure VerFacturasProveedor(AContrato : IBizContratoCliente); procedure CopiarDireccion (const ADireccion: IBizDireccionesContacto; AContrato: IBizContratoCliente); + procedure FechaUltimaActualizacionToday (AContrato: IBizContratoCliente); end; implementation uses Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils, - uIEditorContratosCliente, uDataModuleContratosCliente, Variants, + uIEditorContratosCliente, Variants, uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, schContratosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorContratoCliente, uIEditorElegirContratosCliente, uIEditorDireccionEntregaContratoCliente, @@ -987,6 +989,32 @@ begin Result := ASeleccionados; end; +procedure TContratosClienteController.FechaUltimaActualizacionToday(AContrato: IBizContratoCliente); +var + bEnEdicion : Boolean; +begin + if not Assigned(AContrato) then + raise Exception.Create ('Contrato no asignado (CopiarDireccion)'); + + if AContrato.DataTable.Active then + AContrato.DataTable.Active := True; + + bEnEdicion := (AContrato.DataTable.State in dsEditModes); + if not bEnEdicion then + AContrato.Edit; + + ShowHourglassCursor; + AContrato.Edit; + try + AContrato.FECHA_ULT_PRESENTACION_CLIENTE := DateOf(Date); + + if not bEnEdicion then + AContrato.Post; + finally + HideHourglassCursor; + end; +end; + procedure TContratosClienteController.FiltrarAno(AContrato: IBizContratoCliente; ADynWhereDataTable: WideString;const Ano: String); var Condicion: TDAWhereExpression; @@ -1115,7 +1143,7 @@ begin Result := AContrato; end; -procedure TContratosClienteController.Preview(AContrato: IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false); +procedure TContratosClienteController.Preview(AContrato: IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); var AReportController : IContratosClienteReportController; ID_Contratos: TIntegerList; @@ -1141,14 +1169,14 @@ begin else ID_Contratos.Add(AContrato.ID); - AReportController.Preview(ID_Contratos, AVerCondiciones); + AReportController.Preview(ID_Contratos, AVerCondiciones, TamLetra); finally AReportController := NIL; FreeAndNil(ID_Contratos); end; end; -procedure TContratosClienteController.Print(AContrato: IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false); +procedure TContratosClienteController.Print(AContrato: IBizContratoCliente; AllItems: Boolean = false; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); var AReportController : IContratosClienteReportController; ID_Contratos: TIntegerList; @@ -1173,7 +1201,7 @@ begin else ID_Contratos.Add(AContrato.ID); - AReportController.Print(ID_Contratos, AVerCondiciones); + AReportController.Print(ID_Contratos, AVerCondiciones, TamLetra); finally AReportController := NIL; diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas index 80ac488..10d470b 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteReportController.pas @@ -5,26 +5,31 @@ interface uses Classes, SysUtils, uDADataTable, uControllerBase, uIDataModuleContratosClienteReport, uClientesController, uContratosClienteController, uDetallesContratoClienteController, - uBizContratosCliente, uIntegerListUtils; + uBizContratosCliente, uIntegerListUtils, uDataModuleContratosCliente; type IContratosClienteReportController = interface(IControllerBase) ['{FEF47B69-26A3-462A-AF6D-4B2073D4F9DC}'] - procedure Preview(const AListaID : TIntegerList; AVerCondiciones: Boolean = false); - procedure Print(const AListaID : TIntegerList; AVerCondiciones: Boolean = false); + procedure Preview(const AListaID : TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); + procedure Print(const AListaID : TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean; + function getDataModule: IDataModuleContratosClienteReport; + property DataModule: IDataModuleContratosClienteReport read getDataModule; end; TContratosClienteReportController = class(TControllerBase, IContratosClienteReportController) private FDataModule : IDataModuleContratosClienteReport; function CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean; + function getDataModule: IDataModuleContratosClienteReport; public + property DataModule: IDataModuleContratosClienteReport read getDataModule; + constructor Create; override; destructor Destroy; override; - procedure Preview(const AListaID : TIntegerList; AVerCondiciones: Boolean = false); - procedure Print(const AListaID : TIntegerList; AVerCondiciones: Boolean = false); + procedure Preview(const AListaID : TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); + procedure Print(const AListaID : TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); function ExportToPDF(const AID: Integer; const AFileName : String = ''): Boolean; end; @@ -33,7 +38,7 @@ implementation uses uROTypes, uEditorRegistryUtils, uIEditorContratosClientePreview, - uEditorPreview, uDataModuleContratosCliente, uEditorBase, + uEditorPreview, uEditorBase, cxControls, uFactuGES_App, uStringsUtils, uSistemaFunc; { TContratosClienteReportController } @@ -80,7 +85,12 @@ begin end; end; -procedure TContratosClienteReportController.Preview(const AListaID : TIntegerList; AVerCondiciones: Boolean = false); +function TContratosClienteReportController.getDataModule: IDataModuleContratosClienteReport; +begin + Result := FDataModule; +end; + +procedure TContratosClienteReportController.Preview(const AListaID : TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); var AStream: Binary; AEditor : IEditorContratosClientePreview; @@ -89,7 +99,7 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetRptContratos(AListaID, AVerCondiciones); + AStream := FDataModule.GetRptContratos(AListaID, AVerCondiciones, TamLetra); try CreateEditor('EditorContratosClientePreview', IEditorContratosClientePreview, AEditor); if Assigned(AEditor) then @@ -97,6 +107,8 @@ begin try AEditor.Controller := Self; AEditor.ListaID := AListaID; + AEditor.Vercondiciones := AVerCondiciones; + AEditor.TamLetra := TamLetra; AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE; AEditor.LoadFromStream(AStream); AEditor.Preview; @@ -113,7 +125,7 @@ begin end; end; -procedure TContratosClienteReportController.Print(const AListaID : TIntegerList; AVerCondiciones: Boolean = false); +procedure TContratosClienteReportController.Print(const AListaID : TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = CTE_TamLetraIni); var AStream: Binary; AEditor : IEditorContratosClientePreview; @@ -122,7 +134,7 @@ begin ShowHourglassCursor; try - AStream := FDataModule.GetRptContratos(AListaID, AVerCondiciones); + AStream := FDataModule.GetRptContratos(AListaID, AVerCondiciones, TamLetra); try CreateEditor('EditorContratosClientePreview', IEditorContratosClientePreview, AEditor); if Assigned(AEditor) then @@ -130,6 +142,8 @@ begin try AEditor.Controller := Self; AEditor.ListaID := AListaID; + AEditor.Vercondiciones := AVerCondiciones; + AEditor.TamLetra := TamLetra; AEditor.Title := 'Presupuesto - ' + AppFactuGES.EmpresaActiva.NOMBRE; AEditor.LoadFromStream(AStream); AEditor.Print; diff --git a/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.dfm b/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.dfm index db76633..43679e5 100644 --- a/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.dfm @@ -373,6 +373,15 @@ inherited DataModuleContratosCliente: TDataModuleContratosCliente Name = 'PROCEDENCIA_CLIENTE' DataType = datString Size = 255 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ULT_PRESENTACION_CLIENTE' + DataType = datDateTime end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] diff --git a/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.pas b/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.pas index 7d1dad0..4504df5 100644 --- a/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.pas @@ -13,6 +13,7 @@ uses uRODynamicRequest, uDADataStreamer, uDARemoteDataAdapter, uDABin2DataStreamer, uDAMemDataTable, uIntegerListUtils; + type TDataModuleContratosCliente = class(TDataModuleBase, IDataModuleContratosCliente, IDataModuleContratosClienteReport) RORemoteService: TRORemoteService; @@ -45,7 +46,7 @@ type function NewItem : IBizContratoCliente; // Report - function GetRptContratos(const AListaID: TIntegerList; AVerCondiciones: Boolean = false): Binary; + function GetRptContratos(const AListaID: TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = 9): Binary; function GetRptPDFContrato(const AID: Integer; AVerCondiciones: Boolean = false): Binary; function GetAnosItems : TStringList; @@ -86,13 +87,13 @@ begin end; end; -function TDataModuleContratosCliente.GetRptContratos(const AListaID: TIntegerList; AVerCondiciones: Boolean = false): Binary; +function TDataModuleContratosCliente.GetRptContratos(const AListaID: TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = 9): Binary; var AParam : TIntegerArray; begin AParam := AListaID.ToIntegerArray; try - Result := (RORemoteService as IsrvContratosCliente).GenerarInforme(AParam, AVerCondiciones) + Result := (RORemoteService as IsrvContratosCliente).GenerarInforme(AParam, AVerCondiciones, TamLetra) finally FreeANDNIL(AParam) end; diff --git a/Source/Modulos/Contratos de cliente/Model/Data/uIDataModuleContratosClienteReport.pas b/Source/Modulos/Contratos de cliente/Model/Data/uIDataModuleContratosClienteReport.pas index 21af9f1..31375eb 100644 --- a/Source/Modulos/Contratos de cliente/Model/Data/uIDataModuleContratosClienteReport.pas +++ b/Source/Modulos/Contratos de cliente/Model/Data/uIDataModuleContratosClienteReport.pas @@ -8,7 +8,7 @@ uses type IDataModuleContratosClienteReport = interface ['{6AB7469B-842A-413E-AF33-9506477A9666}'] - function GetRptContratos(const AListaID: TIntegerList; AVerCondiciones: Boolean = false): Binary; + function GetRptContratos(const AListaID: TIntegerList; AVerCondiciones: Boolean = false; const TamLetra: Integer = 9): Binary; function GetRptPDFContrato(const AID: Integer; AVerCondiciones: Boolean = false): Binary; end; diff --git a/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas b/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas index 5aeb510..531c1df 100644 --- a/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas +++ b/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas @@ -9,13 +9,13 @@ 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_Valores = '{AEE43CFA-1BB9-4CAC-8556-BFFC8FCEC733}'; - RID_Propiedades = '{B0855CF2-8ED5-4024-AEF7-D177FF322892}'; - RID_ListaAnosContratos = '{7E058AD2-196F-4A8A-AC1D-8DE9CBA5C393}'; - RID_ContratosClienteBeneficios = '{0EFEC438-3D7F-4359-BCCA-04AB52950321}'; - RID_ContratosCliente = '{00CCC87B-31E8-4640-BD5A-80EA152531B1}'; - RID_TiposCapitulos = '{FDAC7B98-87A1-41D6-A1C8-1FF22B060EBD}'; - RID_ContratosCliente_Detalles = '{68294EF3-4491-4A62-BCB2-E2FCE40EC48F}'; + RID_Valores = '{8E9C5E5F-B1C4-40D2-844C-6818E0A71C41}'; + RID_Propiedades = '{10423127-9855-44C6-84D5-C2F5F30ABADC}'; + RID_ListaAnosContratos = '{EBCE4D2B-EED3-4477-AFB1-B628241320DE}'; + RID_ContratosClienteBeneficios = '{EDA1E900-8EED-454E-BDF5-4D354D61EBB5}'; + RID_ContratosCliente = '{C60CEDC1-9427-4DCE-821A-627672FAD176}'; + RID_TiposCapitulos = '{84075DE8-633F-4B18-A39B-B453DE08D5FD}'; + RID_ContratosCliente_Detalles = '{47A199B6-78E6-42EC-A6EF-C3A4A8939855}'; { Data table names } nme_Valores = 'Valores'; @@ -142,6 +142,8 @@ const fld_ContratosClienteFECHA_PREVISTA_MONTAJE = 'FECHA_PREVISTA_MONTAJE'; fld_ContratosClienteCAMPO_LIBRE = 'CAMPO_LIBRE'; fld_ContratosClientePROCEDENCIA_CLIENTE = 'PROCEDENCIA_CLIENTE'; + fld_ContratosClienteEMAIL_1 = 'EMAIL_1'; + fld_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE = 'FECHA_ULT_PRESENTACION_CLIENTE'; { ContratosCliente field indexes } idx_ContratosClienteID = 0; @@ -199,6 +201,8 @@ const idx_ContratosClienteFECHA_PREVISTA_MONTAJE = 52; idx_ContratosClienteCAMPO_LIBRE = 53; idx_ContratosClientePROCEDENCIA_CLIENTE = 54; + idx_ContratosClienteEMAIL_1 = 55; + idx_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE = 56; { TiposCapitulos fields } fld_TiposCapitulosID = 'ID'; @@ -257,7 +261,7 @@ const type { IValores } IValores = interface(IDAStronglyTypedDataTable) - ['{B7DEBA9E-BCE7-44A0-A0D2-208F8F26EC42}'] + ['{DE9A011D-6704-41A5-8170-8E1023E028A9}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -316,7 +320,7 @@ type { IPropiedades } IPropiedades = interface(IDAStronglyTypedDataTable) - ['{6063DDB1-1BC1-4242-A704-513F0F3137A7}'] + ['{75D8A850-AAAA-4A89-80D7-C3E1A0628CD2}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -375,7 +379,7 @@ type { IListaAnosContratos } IListaAnosContratos = interface(IDAStronglyTypedDataTable) - ['{7AE79F64-046B-478B-A184-60A42E6CEC14}'] + ['{82CA0D96-396B-4640-A127-3A92D6D876E0}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -410,7 +414,7 @@ type { IContratosClienteBeneficios } IContratosClienteBeneficios = interface(IDAStronglyTypedDataTable) - ['{CA71E23E-0E59-4812-BD81-DD1B8C7F72F9}'] + ['{1ADAB916-C891-4BAE-9322-2FD39A6EAE85}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -613,7 +617,7 @@ type { IContratosCliente } IContratosCliente = interface(IDAStronglyTypedDataTable) - ['{57FF1442-BB37-430E-B945-F2BD12A522F4}'] + ['{A40F5D4D-74B4-40B9-8AC3-36562B7A0880}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -829,6 +833,14 @@ type procedure SetPROCEDENCIA_CLIENTEValue(const aValue: String); function GetPROCEDENCIA_CLIENTEIsNull: Boolean; procedure SetPROCEDENCIA_CLIENTEIsNull(const aValue: Boolean); + function GetEMAIL_1Value: String; + procedure SetEMAIL_1Value(const aValue: String); + function GetEMAIL_1IsNull: Boolean; + procedure SetEMAIL_1IsNull(const aValue: Boolean); + function GetFECHA_ULT_PRESENTACION_CLIENTEValue: DateTime; + procedure SetFECHA_ULT_PRESENTACION_CLIENTEValue(const aValue: DateTime); + function GetFECHA_ULT_PRESENTACION_CLIENTEIsNull: Boolean; + procedure SetFECHA_ULT_PRESENTACION_CLIENTEIsNull(const aValue: Boolean); { Properties } @@ -942,6 +954,10 @@ type property CAMPO_LIBREIsNull: Boolean read GetCAMPO_LIBREIsNull write SetCAMPO_LIBREIsNull; property PROCEDENCIA_CLIENTE: String read GetPROCEDENCIA_CLIENTEValue write SetPROCEDENCIA_CLIENTEValue; property PROCEDENCIA_CLIENTEIsNull: Boolean read GetPROCEDENCIA_CLIENTEIsNull write SetPROCEDENCIA_CLIENTEIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property FECHA_ULT_PRESENTACION_CLIENTE: DateTime read GetFECHA_ULT_PRESENTACION_CLIENTEValue write SetFECHA_ULT_PRESENTACION_CLIENTEValue; + property FECHA_ULT_PRESENTACION_CLIENTEIsNull: Boolean read GetFECHA_ULT_PRESENTACION_CLIENTEIsNull write SetFECHA_ULT_PRESENTACION_CLIENTEIsNull; end; { TContratosClienteDataTableRules } @@ -1175,6 +1191,14 @@ type procedure SetPROCEDENCIA_CLIENTEValue(const aValue: String); virtual; function GetPROCEDENCIA_CLIENTEIsNull: Boolean; virtual; procedure SetPROCEDENCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetFECHA_ULT_PRESENTACION_CLIENTEValue: DateTime; virtual; + procedure SetFECHA_ULT_PRESENTACION_CLIENTEValue(const aValue: DateTime); virtual; + function GetFECHA_ULT_PRESENTACION_CLIENTEIsNull: Boolean; virtual; + procedure SetFECHA_ULT_PRESENTACION_CLIENTEIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -1287,6 +1311,10 @@ type property CAMPO_LIBREIsNull: Boolean read GetCAMPO_LIBREIsNull write SetCAMPO_LIBREIsNull; property PROCEDENCIA_CLIENTE: String read GetPROCEDENCIA_CLIENTEValue write SetPROCEDENCIA_CLIENTEValue; property PROCEDENCIA_CLIENTEIsNull: Boolean read GetPROCEDENCIA_CLIENTEIsNull write SetPROCEDENCIA_CLIENTEIsNull; + property EMAIL_1: String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull: Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property FECHA_ULT_PRESENTACION_CLIENTE: DateTime read GetFECHA_ULT_PRESENTACION_CLIENTEValue write SetFECHA_ULT_PRESENTACION_CLIENTEValue; + property FECHA_ULT_PRESENTACION_CLIENTEIsNull: Boolean read GetFECHA_ULT_PRESENTACION_CLIENTEIsNull write SetFECHA_ULT_PRESENTACION_CLIENTEIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -1299,7 +1327,7 @@ type } { ITiposCapitulos } ITiposCapitulos = interface(IDAStronglyTypedDataTable) - ['{A289CB54-D71E-428B-9B81-18A5A7D546DE}'] + ['{E54DDB32-6949-47BA-95C2-5AB4013DFA97}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1394,7 +1422,7 @@ type { IContratosCliente_Detalles } IContratosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{DABADFCD-EEA9-4ACB-919D-9F2239F1912B}'] + ['{D020E94C-7500-49D4-8605-8A0CD2F05A3F}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3331,6 +3359,48 @@ begin DataTable.Fields[idx_ContratosClientePROCEDENCIA_CLIENTE].AsVariant := Null; end; +function TContratosClienteDataTableRules.GetEMAIL_1Value: String; +begin + result := DataTable.Fields[idx_ContratosClienteEMAIL_1].AsString; +end; + +procedure TContratosClienteDataTableRules.SetEMAIL_1Value(const aValue: String); +begin + DataTable.Fields[idx_ContratosClienteEMAIL_1].AsString := aValue; +end; + +function TContratosClienteDataTableRules.GetEMAIL_1IsNull: boolean; +begin + result := DataTable.Fields[idx_ContratosClienteEMAIL_1].IsNull; +end; + +procedure TContratosClienteDataTableRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContratosClienteEMAIL_1].AsVariant := Null; +end; + +function TContratosClienteDataTableRules.GetFECHA_ULT_PRESENTACION_CLIENTEValue: DateTime; +begin + result := DataTable.Fields[idx_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE].AsDateTime; +end; + +procedure TContratosClienteDataTableRules.SetFECHA_ULT_PRESENTACION_CLIENTEValue(const aValue: DateTime); +begin + DataTable.Fields[idx_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE].AsDateTime := aValue; +end; + +function TContratosClienteDataTableRules.GetFECHA_ULT_PRESENTACION_CLIENTEIsNull: boolean; +begin + result := DataTable.Fields[idx_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE].IsNull; +end; + +procedure TContratosClienteDataTableRules.SetFECHA_ULT_PRESENTACION_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE].AsVariant := Null; +end; + { TTiposCapitulosDataTableRules } constructor TTiposCapitulosDataTableRules.Create(aDataTable: TDADataTable); diff --git a/Source/Modulos/Contratos de cliente/Model/schContratosClienteServer_Intf.pas b/Source/Modulos/Contratos de cliente/Model/schContratosClienteServer_Intf.pas index 68ed916..5301d8c 100644 --- a/Source/Modulos/Contratos de cliente/Model/schContratosClienteServer_Intf.pas +++ b/Source/Modulos/Contratos de cliente/Model/schContratosClienteServer_Intf.pas @@ -9,18 +9,18 @@ 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_ValoresDelta = '{7C597F28-9CAB-4563-AB03-5109CCD1E4FD}'; - RID_PropiedadesDelta = '{AEAD2B1C-5693-4333-B72F-D7FCB996C77C}'; - RID_ListaAnosContratosDelta = '{5420790C-645C-4AAD-84FB-8194E39EC4DC}'; - RID_ContratosClienteBeneficiosDelta = '{C92FEDD1-D568-4200-A088-37BAFD5C3BBE}'; - RID_ContratosClienteDelta = '{026E716F-C412-4A7B-BA3A-1D689117FC73}'; - RID_TiposCapitulosDelta = '{3515E5DD-2CF2-4ED9-A717-1FE908B2D252}'; - RID_ContratosCliente_DetallesDelta = '{04D0B422-F0D9-4FF9-8BFA-67148A8EA383}'; + RID_ValoresDelta = '{B18B1C54-C567-4E9D-9F1C-EBF356EB9306}'; + RID_PropiedadesDelta = '{C1C489D2-F6B5-4233-8739-4BF728F9D0C8}'; + RID_ListaAnosContratosDelta = '{19C544EC-0104-4464-8453-55603B3A5316}'; + RID_ContratosClienteBeneficiosDelta = '{27648BA2-1AB1-47C4-93E4-148BE96C60FB}'; + RID_ContratosClienteDelta = '{B08191A8-1651-495D-82EB-4A90C31C4D2B}'; + RID_TiposCapitulosDelta = '{A3BF1E30-4BE1-4DBC-94A1-0EA20C2BD85E}'; + RID_ContratosCliente_DetallesDelta = '{FF4E0A9B-4339-4B2F-B1FF-D09CE86D6D01}'; type { IValoresDelta } IValoresDelta = interface(IValores) - ['{7C597F28-9CAB-4563-AB03-5109CCD1E4FD}'] + ['{B18B1C54-C567-4E9D-9F1C-EBF356EB9306}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PROPIEDADValue : Integer; @@ -78,7 +78,7 @@ type { IPropiedadesDelta } IPropiedadesDelta = interface(IPropiedades) - ['{AEAD2B1C-5693-4333-B72F-D7FCB996C77C}'] + ['{C1C489D2-F6B5-4233-8739-4BF728F9D0C8}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -136,7 +136,7 @@ type { IListaAnosContratosDelta } IListaAnosContratosDelta = interface(IListaAnosContratos) - ['{5420790C-645C-4AAD-84FB-8194E39EC4DC}'] + ['{19C544EC-0104-4464-8453-55603B3A5316}'] { Property getters and setters } function GetOldANOValue : String; @@ -170,7 +170,7 @@ type { IContratosClienteBeneficiosDelta } IContratosClienteBeneficiosDelta = interface(IContratosClienteBeneficios) - ['{C92FEDD1-D568-4200-A088-37BAFD5C3BBE}'] + ['{27648BA2-1AB1-47C4-93E4-148BE96C60FB}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldREFERENCIAValue : String; @@ -372,7 +372,7 @@ type { IContratosClienteDelta } IContratosClienteDelta = interface(IContratosCliente) - ['{026E716F-C412-4A7B-BA3A-1D689117FC73}'] + ['{B08191A8-1651-495D-82EB-4A90C31C4D2B}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -429,6 +429,8 @@ type function GetOldFECHA_PREVISTA_MONTAJEValue : DateTime; function GetOldCAMPO_LIBREValue : String; function GetOldPROCEDENCIA_CLIENTEValue : String; + function GetOldEMAIL_1Value : String; + function GetOldFECHA_ULT_PRESENTACION_CLIENTEValue : DateTime; { Properties } property OldID : Integer read GetOldIDValue; @@ -486,6 +488,8 @@ type property OldFECHA_PREVISTA_MONTAJE : DateTime read GetOldFECHA_PREVISTA_MONTAJEValue; property OldCAMPO_LIBRE : String read GetOldCAMPO_LIBREValue; property OldPROCEDENCIA_CLIENTE : String read GetOldPROCEDENCIA_CLIENTEValue; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldFECHA_ULT_PRESENTACION_CLIENTE : DateTime read GetOldFECHA_ULT_PRESENTACION_CLIENTEValue; end; { TContratosClienteBusinessProcessorRules } @@ -829,6 +833,18 @@ type function GetOldPROCEDENCIA_CLIENTEIsNull: Boolean; virtual; procedure SetPROCEDENCIA_CLIENTEValue(const aValue: String); virtual; procedure SetPROCEDENCIA_CLIENTEIsNull(const aValue: Boolean); virtual; + function GetEMAIL_1Value: String; virtual; + function GetEMAIL_1IsNull: Boolean; virtual; + function GetOldEMAIL_1Value: String; virtual; + function GetOldEMAIL_1IsNull: Boolean; virtual; + procedure SetEMAIL_1Value(const aValue: String); virtual; + procedure SetEMAIL_1IsNull(const aValue: Boolean); virtual; + function GetFECHA_ULT_PRESENTACION_CLIENTEValue: DateTime; virtual; + function GetFECHA_ULT_PRESENTACION_CLIENTEIsNull: Boolean; virtual; + function GetOldFECHA_ULT_PRESENTACION_CLIENTEValue: DateTime; virtual; + function GetOldFECHA_ULT_PRESENTACION_CLIENTEIsNull: Boolean; virtual; + procedure SetFECHA_ULT_PRESENTACION_CLIENTEValue(const aValue: DateTime); virtual; + procedure SetFECHA_ULT_PRESENTACION_CLIENTEIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -1051,6 +1067,14 @@ type property PROCEDENCIA_CLIENTEIsNull : Boolean read GetPROCEDENCIA_CLIENTEIsNull write SetPROCEDENCIA_CLIENTEIsNull; property OldPROCEDENCIA_CLIENTE : String read GetOldPROCEDENCIA_CLIENTEValue; property OldPROCEDENCIA_CLIENTEIsNull : Boolean read GetOldPROCEDENCIA_CLIENTEIsNull; + property EMAIL_1 : String read GetEMAIL_1Value write SetEMAIL_1Value; + property EMAIL_1IsNull : Boolean read GetEMAIL_1IsNull write SetEMAIL_1IsNull; + property OldEMAIL_1 : String read GetOldEMAIL_1Value; + property OldEMAIL_1IsNull : Boolean read GetOldEMAIL_1IsNull; + property FECHA_ULT_PRESENTACION_CLIENTE : DateTime read GetFECHA_ULT_PRESENTACION_CLIENTEValue write SetFECHA_ULT_PRESENTACION_CLIENTEValue; + property FECHA_ULT_PRESENTACION_CLIENTEIsNull : Boolean read GetFECHA_ULT_PRESENTACION_CLIENTEIsNull write SetFECHA_ULT_PRESENTACION_CLIENTEIsNull; + property OldFECHA_ULT_PRESENTACION_CLIENTE : DateTime read GetOldFECHA_ULT_PRESENTACION_CLIENTEValue; + property OldFECHA_ULT_PRESENTACION_CLIENTEIsNull : Boolean read GetOldFECHA_ULT_PRESENTACION_CLIENTEIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -1060,7 +1084,7 @@ type { ITiposCapitulosDelta } ITiposCapitulosDelta = interface(ITiposCapitulos) - ['{3515E5DD-2CF2-4ED9-A717-1FE908B2D252}'] + ['{A3BF1E30-4BE1-4DBC-94A1-0EA20C2BD85E}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldPOSICIONValue : Integer; @@ -1154,7 +1178,7 @@ type { IContratosCliente_DetallesDelta } IContratosCliente_DetallesDelta = interface(IContratosCliente_Detalles) - ['{04D0B422-F0D9-4FF9-8BFA-67148A8EA383}'] + ['{FF4E0A9B-4339-4B2F-B1FF-D09CE86D6D01}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CONTRATOValue : Integer; @@ -3867,6 +3891,68 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClientePROCEDENCIA_CLIENTE] := Null; end; +function TContratosClienteBusinessProcessorRules.GetEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteEMAIL_1]; +end; + +function TContratosClienteBusinessProcessorRules.GetEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteEMAIL_1]); +end; + +function TContratosClienteBusinessProcessorRules.GetOldEMAIL_1Value: String; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContratosClienteEMAIL_1]; +end; + +function TContratosClienteBusinessProcessorRules.GetOldEMAIL_1IsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContratosClienteEMAIL_1]); +end; + +procedure TContratosClienteBusinessProcessorRules.SetEMAIL_1Value(const aValue: String); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteEMAIL_1] := aValue; +end; + +procedure TContratosClienteBusinessProcessorRules.SetEMAIL_1IsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteEMAIL_1] := Null; +end; + +function TContratosClienteBusinessProcessorRules.GetFECHA_ULT_PRESENTACION_CLIENTEValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE]; +end; + +function TContratosClienteBusinessProcessorRules.GetFECHA_ULT_PRESENTACION_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE]); +end; + +function TContratosClienteBusinessProcessorRules.GetOldFECHA_ULT_PRESENTACION_CLIENTEValue: DateTime; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE]; +end; + +function TContratosClienteBusinessProcessorRules.GetOldFECHA_ULT_PRESENTACION_CLIENTEIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE]); +end; + +procedure TContratosClienteBusinessProcessorRules.SetFECHA_ULT_PRESENTACION_CLIENTEValue(const aValue: DateTime); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE] := aValue; +end; + +procedure TContratosClienteBusinessProcessorRules.SetFECHA_ULT_PRESENTACION_CLIENTEIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteFECHA_ULT_PRESENTACION_CLIENTE] := Null; +end; + { TTiposCapitulosBusinessProcessorRules } constructor TTiposCapitulosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); diff --git a/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas b/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas index 0a2bc31..fd849fd 100644 --- a/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas @@ -15,6 +15,12 @@ const SITUACION_CONTRATO_ACEPTADO = 'ACEPTADO'; SITUACION_CONTRATO_RECHAZADO = 'RECHAZADO'; + CTE_TamLetraIni = 8; + CTE_TamLetraMin = 5; + CTE_TamLetraMax = 16; + CTE_Aumento = 1; + + type IBizContratoCliente = interface(IContratosCliente) @@ -261,6 +267,7 @@ begin ID_TIPO_IVA := AppFactuGES.EmpresaActiva.ID_TIPO_IVA; FECHA_CONTRATO := DateOf(Date); + FECHA_ULT_PRESENTACION_CLIENTE := DateOf(Date); INCIDENCIAS_ACTIVAS := 0; RE := 0; @@ -270,7 +277,7 @@ begin ID_TIENDA := AppFactuGES.TiendaActiva.ID; TIENDA := AppFactuGES.TiendaActiva.NOMBRE; - Self.DataTable.FieldByName(fld_ContratosClienteFORMA_PAGO).AsString := AppFactuGES.FormaPagoDocumentos; +// Self.DataTable.FieldByName(fld_ContratosClienteFORMA_PAGO).AsString := AppFactuGES.FormaPagoDocumentos; Self.DataTable.FieldByName(fld_ContratosClienteOBSERVACIONES).AsString := AppFactuGES.ObservacionesDocumentos; Self.DataTable.FieldByName(fld_ContratosClienteCONDICIONES).AsString := AppFactuGES.CondicionesDocumentos; diff --git a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm index d96fae8..90b9c1c 100644 --- a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm +++ b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm @@ -205,8 +205,10 @@ object RptContratosCliente: TRptContratosCliente 'IENTE.IMPORTE_TOTAL,'#10' V_CONTRATOS_CLIENTE.PERSONA_CONTACTO,'#10' ' + ' V_CONTRATOS_CLIENTE.VENDEDOR,'#10' V_CONTRATOS_CLIENTE.TIPO_CO' + 'NTRATO,'#10' V_CONTRATOS_CLIENTE.CONDICIONES,'#10' V_CONTRATOS_CLI' + - 'ENTE.LOPD'#10'FROM'#10' V_CONTRATOS_CLIENTE'#10'WHERE'#10' V_CONTRATOS_CLI' + - 'ENTE.ID = :ID'#10 + 'ENTE.LOPD,'#10' V_CONTRATOS_CLIENTE.REFERENCIA_CLIENTE,'#10' V_CON' + + 'TRATOS_CLIENTE.EMAIL_1,'#10' V_CONTRATOS_CLIENTE.FECHA_ULT_PRESEN' + + 'TACION_CLIENTE'#10'FROM'#10' V_CONTRATOS_CLIENTE'#10'WHERE'#10' V_CONTRATO' + + 'S_CLIENTE.ID = :ID'#10 StatementType = stSQL ColumnMappings = < item @@ -340,6 +342,18 @@ object RptContratosCliente: TRptContratosCliente item DatasetField = 'LOPD' TableField = 'LOPD' + end + item + DatasetField = 'REFERENCIA_CLIENTE' + TableField = 'REFERENCIA_CLIENTE' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'FECHA_ULT_PRESENTACION_CLIENTE' + TableField = 'FECHA_ULT_PRESENTACION_CLIENTE' end> end> Name = 'Informe_Cabecera' @@ -488,6 +502,20 @@ object RptContratosCliente: TRptContratosCliente item Name = 'LOPD' DataType = datSmallInt + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ULT_PRESENTACION_CLIENTE' + DataType = datDateTime end> ReadOnly = True end @@ -1034,7 +1062,7 @@ object RptContratosCliente: TRptContratosCliente PrintOptions.Printer = 'Por defecto' PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 39065.872423495400000000 - ReportOptions.LastChange = 44126.785023055560000000 + ReportOptions.LastChange = 45425.422046400460000000 ScriptLanguage = 'PascalScript' ShowProgress = False StoreInDFM = False @@ -1206,6 +1234,20 @@ object RptContratosCliente: TRptContratosCliente item Name = 'LOPD' DataType = datSmallInt + end + item + Name = 'REFERENCIA_CLIENTE' + DataType = datString + Size = 255 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ULT_PRESENTACION_CLIENTE' + DataType = datDateTime end> Params = < item diff --git a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas index 75b63cf..7727d25 100644 --- a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas +++ b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas @@ -87,6 +87,7 @@ type FVerPrecios: Boolean; FVerTotales: Boolean; FVerCondiciones: Boolean; + FTamLetra: Integer; procedure _GenerarContrato(const AID : Integer); @@ -97,7 +98,7 @@ type procedure IniciarParametrosInforme; procedure RecuperarNombresClientes; public - function GenerarContrato(const ListaID : TIntegerArray; const VerCondiciones: Boolean): Binary; + function GenerarContrato(const ListaID : TIntegerArray; const VerCondiciones: Boolean; const TamLetra: Integer): Binary; function GenerarContratoEnPDF(const ListaID : TIntegerArray; const VerCondiciones: Boolean): Binary; function GenerarInformeListadoContratos(const IdEmpresa: Integer; const FechaInicio: Variant; const FechaFin: Variant; const ListaIDClientes: TIntegerArray; const Desglosado: Boolean; const ImporteMinimo: Currency): Binary; end; @@ -490,7 +491,7 @@ begin end; end; -function TRptContratosCliente.GenerarContrato(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; +function TRptContratosCliente.GenerarContrato(const ListaID: TIntegerArray; const VerCondiciones: Boolean; const TamLetra: Integer): Binary; var i: Integer; begin @@ -502,6 +503,7 @@ begin FVerPrecios := True; FVerTotales := True; FVerCondiciones := VerCondiciones; + FTamLetra := TamLetra; try //Vamos generando todos y cada uno de los Contratos recibidos @@ -533,6 +535,7 @@ end; procedure TRptContratosCliente._GenerarContrato(const AID: Integer); var AInforme: Variant; + AStyle: TfrxStyleItem; begin FConnection.BeginTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" try @@ -568,6 +571,11 @@ begin frxReport.AddFunction('function PONERJUSTIFICACIONCOMPLETA(ARTFText : String): String', 'User Function',''); frxReport.ReportOptions.Name := 'Presupuesto ' + tbl_Cabecera.FieldByName('REFERENCIA').AsString; +//Prueba para ver si se puede reducir tamaño de letra + AStyle := frxReport.Styles.Find('Concepto'); + AStyle.Font.Size := FTamLetra; + frxReport.Styles.Apply; + frxReport.PrepareReport(False); finally FConnection.RollbackTransaction; //<--- Creo que no va a hacer falta. "PUES SI ES NECESARIO" diff --git a/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.dfm b/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.dfm index 3c58783..7989afb 100644 --- a/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.dfm +++ b/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.dfm @@ -502,6 +502,14 @@ object srvContratosCliente: TsrvContratosCliente item DatasetField = 'PROCEDENCIA_CLIENTE' TableField = 'PROCEDENCIA_CLIENTE' + end + item + DatasetField = 'EMAIL_1' + TableField = 'EMAIL_1' + end + item + DatasetField = 'FECHA_ULT_PRESENTACION_CLIENTE' + TableField = 'FECHA_ULT_PRESENTACION_CLIENTE' end> end> Name = 'ContratosCliente' @@ -803,6 +811,15 @@ object srvContratosCliente: TsrvContratosCliente Name = 'PROCEDENCIA_CLIENTE' DataType = datString Size = 255 + end + item + Name = 'EMAIL_1' + DataType = datString + Size = 255 + end + item + Name = 'FECHA_ULT_PRESENTACION_CLIENTE' + DataType = datDateTime end> end item @@ -1283,6 +1300,11 @@ object srvContratosCliente: TsrvContratosCliente DataType = datString Size = 255 Value = '' + end + item + Name = 'FECHA_ULT_PRESENTACION_CLIENTE' + DataType = datDateTime + Value = '' end> Statements = < item @@ -1300,17 +1322,18 @@ object srvContratosCliente: TsrvContratosCliente ' PERSONA_CONTACTO,'#10' RE, IMPORTE_RE, RECARGO_EQUIVALENCIA, TE' + 'LEFONO, MOVIL, TIPO_CONTRATO, CONDICIONES,'#10' CALIDADES, REFER' + 'ENCIA_CLIENTE, FECHA_DECISION, FECHA_PREVISTA_MONTAJE, CAMPO_LIB' + - 'RE)'#10' VALUES'#10' (:ID, :ID_CLIENTE, :NIF_CIF, :NOMBRE, :ID_DIREC' + - 'CION, :CALLE, :POBLACION, :PROVINCIA,'#10' :CODIGO_POSTAL, :REFE' + - 'RENCIA, :FECHA_CONTRATO, :SITUACION, :FORMA_PAGO,'#10' :PLAZO_EN' + - 'TREGA, :OBSERVACIONES, :INCIDENCIAS, :INCIDENCIAS_ACTIVAS, CURRE' + - 'NT_TIMESTAMP,'#10' :USUARIO, :IMPORTE_NETO, :IMPORTE_PORTE, :DES' + - 'CUENTO, :IMPORTE_DESCUENTO,'#10' :BASE_IMPONIBLE, :ID_TIPO_IVA, ' + - ':IVA, :IMPORTE_IVA, :IMPORTE_TOTAL, :ID_FORMA_PAGO,'#10' :ID_TIE' + - 'NDA, :ID_VENDEDOR, :PERSONA_CONTACTO, :RE, :IMPORTE_RE, :RECARGO' + - '_EQUIVALENCIA,'#10' :TELEFONO, :MOVIL, :TIPO_CONTRATO, :CONDICIO' + - 'NES, :CALIDADES, :REFERENCIA_CLIENTE,'#10' :FECHA_DECISION, :FEC' + - 'HA_PREVISTA_MONTAJE, :CAMPO_LIBRE)'#10#10 + 'RE,'#10' FECHA_ULT_PRESENTACION_CLIENTE)'#10' VALUES'#10' (:ID, :ID_' + + 'CLIENTE, :NIF_CIF, :NOMBRE, :ID_DIRECCION, :CALLE, :POBLACION, :' + + 'PROVINCIA,'#10' :CODIGO_POSTAL, :REFERENCIA, :FECHA_CONTRATO, :S' + + 'ITUACION, :FORMA_PAGO,'#10' :PLAZO_ENTREGA, :OBSERVACIONES, :INC' + + 'IDENCIAS, :INCIDENCIAS_ACTIVAS, CURRENT_TIMESTAMP,'#10' :USUARIO' + + ', :IMPORTE_NETO, :IMPORTE_PORTE, :DESCUENTO, :IMPORTE_DESCUENTO,' + + #10' :BASE_IMPONIBLE, :ID_TIPO_IVA, :IVA, :IMPORTE_IVA, :IMPORT' + + 'E_TOTAL, :ID_FORMA_PAGO,'#10' :ID_TIENDA, :ID_VENDEDOR, :PERSONA' + + '_CONTACTO, :RE, :IMPORTE_RE, :RECARGO_EQUIVALENCIA,'#10' :TELEFO' + + 'NO, :MOVIL, :TIPO_CONTRATO, :CONDICIONES, :CALIDADES, :REFERENCI' + + 'A_CLIENTE,'#10' :FECHA_DECISION, :FECHA_PREVISTA_MONTAJE, :CAMPO' + + '_LIBRE, :FECHA_ULT_PRESENTACION_CLIENTE)'#10#10 StatementType = stSQL ColumnMappings = <> end> @@ -1566,6 +1589,11 @@ object srvContratosCliente: TsrvContratosCliente Size = 255 Value = '' end + item + Name = 'FECHA_ULT_PRESENTACION_CLIENTE' + DataType = datDateTime + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -1597,8 +1625,9 @@ object srvContratosCliente: TsrvContratosCliente 'NTRATO,'#10' CONDICIONES = :CONDICIONES,'#10' CALIDADES = :CALIDAD' + 'ES,'#10' REFERENCIA_CLIENTE = :REFERENCIA_CLIENTE,'#10' FECHA_DECI' + 'SION = :FECHA_DECISION,'#10' FECHA_PREVISTA_MONTAJE = :FECHA_PREV' + - 'ISTA_MONTAJE,'#10' CAMPO_LIBRE = :CAMPO_LIBRE'#10' WHERE'#10' (ID = :' + - 'OLD_ID)'#10#10 + 'ISTA_MONTAJE,'#10' CAMPO_LIBRE = :CAMPO_LIBRE,'#10' FECHA_ULT_PRES' + + 'ENTACION_CLIENTE = :FECHA_ULT_PRESENTACION_CLIENTE'#10' WHERE'#10' (' + + 'ID = :OLD_ID)'#10#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.pas b/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.pas index bfa7bd7..63b08e1 100644 --- a/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.pas +++ b/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.pas @@ -33,7 +33,7 @@ type procedure DARemoteServiceCreate(Sender: TObject); protected { IsrvContratosCliente methods } - function GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean; const TamLetra: Integer): Binary; function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; end; @@ -78,13 +78,13 @@ begin ConnectionName := dmServer.ConnectionName; end; -function TsrvContratosCliente.GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; +function TsrvContratosCliente.GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean; const TamLetra: Integer): Binary; var AReportGenerator : TRptContratosCliente; begin AReportGenerator := TRptContratosCliente.Create(nil); try - Result := AReportGenerator.GenerarContrato(ListaID, VerCondiciones); + Result := AReportGenerator.GenerarContrato(ListaID, VerCondiciones, TamLetra); finally FreeAndNIL(AReportGenerator); end; diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.dfm index 4fa10b2..18c8f0a 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.dfm @@ -201,15 +201,17 @@ inherited fEditorContratoCliente: TfEditorContratoCliente ExplicitWidth = 858 ExplicitHeight = 445 inherited edtFechaContrato: TcxDBDateEdit + Left = 155 Top = 84 + ExplicitLeft = 155 ExplicitTop = 84 ExplicitWidth = 129 Width = 129 end inherited memObservaciones: TcxDBMemo - Left = 464 + Left = 474 Top = 330 - ExplicitLeft = 464 + ExplicitLeft = 474 ExplicitTop = 330 ExplicitWidth = 404 ExplicitHeight = 139 @@ -217,25 +219,30 @@ inherited fEditorContratoCliente: TfEditorContratoCliente Width = 404 end inherited eReferencia: TcxDBTextEdit + Left = 155 Top = 30 + ExplicitLeft = 155 ExplicitTop = 30 ExplicitWidth = 122 Width = 122 end inherited cbFormaPago: TcxDBLookupComboBox - Top = 192 - ExplicitTop = 192 + Left = 155 + Top = 219 + ExplicitLeft = 155 + ExplicitTop = 219 ExplicitWidth = 122 Width = 122 end inherited bFormasPago: TButton - Left = 304 - Top = 192 - ExplicitLeft = 304 - ExplicitTop = 192 + Left = 314 + Top = 219 + ExplicitLeft = 314 + ExplicitTop = 219 end inherited cbSituacion: TcxDBImageComboBox - Top = 138 + Left = 155 + Top = 165 Properties.Items = < item Description = 'PENDIENTE' @@ -250,51 +257,54 @@ inherited fEditorContratoCliente: TfEditorContratoCliente Description = 'RECHAZADO' Value = 'RECHAZADO' end> - ExplicitTop = 138 + ExplicitLeft = 155 + ExplicitTop = 165 ExplicitWidth = 260 Width = 260 end inherited memFormaPago: TcxDBMemo - Top = 270 - ExplicitTop = 270 + Top = 297 + ExplicitTop = 297 ExplicitWidth = 396 ExplicitHeight = 100 Height = 100 Width = 396 end inherited memPlazoEntrega: TcxDBMemo - Top = 365 - ExplicitTop = 365 + Top = 378 + ExplicitTop = 378 ExplicitWidth = 396 ExplicitHeight = 100 Height = 100 Width = 396 end inherited cbVendedor: TcxDBLookupComboBox - Top = 219 - ExplicitTop = 219 + Left = 155 + Top = 246 + ExplicitLeft = 155 + ExplicitTop = 246 ExplicitWidth = 27 Width = 27 end inherited cbTipoContrato: TcxDBComboBox - Left = 339 Top = 84 - ExplicitLeft = 339 ExplicitTop = 84 ExplicitWidth = 113 Width = 113 end inherited edtlREF_CLIENTE: TcxDBTextEdit + Left = 155 Top = 57 + ExplicitLeft = 155 ExplicitTop = 57 ExplicitWidth = 335 Width = 335 end inherited frViewClienteContrato1: TfrViewClienteContrato - Left = 464 + Left = 474 Top = 30 Width = 357 - ExplicitLeft = 464 + ExplicitLeft = 474 ExplicitTop = 30 ExplicitWidth = 357 inherited dxLayoutControl1: TdxLayoutControl @@ -357,10 +367,10 @@ inherited fEditorContratoCliente: TfEditorContratoCliente Width = 707 end inherited edtCodigoPostal: TcxDBTextEdit - Left = 279 + Left = 269 Top = 176 DataBinding.DataSource = dsDataTable - ExplicitLeft = 279 + ExplicitLeft = 269 ExplicitTop = 176 end inherited Button1: TBitBtn @@ -376,9 +386,9 @@ inherited fEditorContratoCliente: TfEditorContratoCliente ExplicitTop = 11 end inherited Button3: TBitBtn - Left = 169 + Left = 159 Top = 230 - ExplicitLeft = 169 + ExplicitLeft = 159 ExplicitTop = 230 end inherited cxDBTextEdit1: TcxDBTextEdit @@ -392,26 +402,43 @@ inherited fEditorContratoCliente: TfEditorContratoCliente end end inherited edtFechaDecision: TcxDBDateEdit - Top = 111 - ExplicitTop = 111 + Left = 155 + Top = 138 + ExplicitLeft = 155 + ExplicitTop = 138 ExplicitWidth = 115 Width = 115 end inherited edtFechaPrevMontaje: TcxDBDateEdit - Top = 165 - ExplicitTop = 165 + Left = 155 + Top = 192 + ExplicitLeft = 155 + ExplicitTop = 192 ExplicitWidth = 295 Width = 295 end + inherited edtFechaUltPresentacion: TcxDBDateEdit + Left = 155 + Top = 111 + ExplicitLeft = 155 + ExplicitTop = 111 + ExplicitWidth = 106 + Width = 106 + end inherited dxLayoutControl1Group_Root: TdxLayoutGroup inherited dxLayoutControl1Group8: TdxLayoutGroup inherited dxLayoutControl1Group1: TdxLayoutGroup inherited dxLayoutControl1Group11: TdxLayoutGroup - inherited dxLayoutControl1Item2: TdxLayoutItem - Caption = 'Fecha:' + inherited dxLayoutControl1Group10: TdxLayoutGroup + inherited dxLayoutControl1Item2: TdxLayoutItem + Caption = 'Fecha:' + end + inherited dxLayoutControl1Item7: TdxLayoutItem + Caption = 'Tipo presupuesto:' + end end - inherited dxLayoutControl1Item7: TdxLayoutItem - Caption = 'Tipo presupuesto:' + inherited dxLayoutControl1Item15: TdxLayoutItem + Caption = 'Fecha '#250'ltima actualizaci'#243'n:' end end end @@ -454,19 +481,19 @@ inherited fEditorContratoCliente: TfEditorContratoCliente ExplicitLeft = 334 ExplicitTop = 0 end - inherited FontSize: TEdit [5] + inherited FontName: TJvFontComboBox Left = 0 - Width = 110 ExplicitLeft = 0 + end + inherited FontSize: TEdit + Left = 145 + Width = 110 + ExplicitLeft = 145 ExplicitWidth = 110 end - inherited UpDown1: TUpDown [6] - Left = 110 - ExplicitLeft = 110 - end - inherited FontName: TJvFontComboBox [7] - Left = 127 - ExplicitLeft = 127 + inherited UpDown1: TUpDown + Left = 255 + ExplicitLeft = 255 end inherited ToolButton13: TToolButton Left = 272 diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.pas b/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.pas index 3cd361a..7071b99 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratoCliente.pas @@ -277,6 +277,12 @@ begin frViewDetallesContratoCliente1.BeginUpdate; try bEsNuevo := FContrato.EsNuevo; + + if not bEsNuevo then + if (FContrato.FECHA_ULT_PRESENTACION_CLIENTE < Date) then + if ShowConfirmMessage('Cambio fecha actualización', '¿Desea cambiar la fecha de última actualización del presupuesto por la de hoy?') = IDYES then + Controller.FechaUltimaActualizacionToday(FContrato); + //GESTION_DOCUMENTOS if FController.Guardar(FContrato) then frViewDocumentosContratoCliente1.actActualizarServidor.Execute; @@ -286,6 +292,7 @@ begin frViewDetallesContratoCliente1.RestoreGridStatus; HideHourglassCursor; end; + if bEsNuevo then ShowInfoMessage('El Contrato se ha dado de alta con el código ' + FContrato.REFERENCIA); diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm index 1f93191..e061a3f 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm @@ -3,7 +3,7 @@ inherited fEditorContratosCliente: TfEditorContratosCliente ClientHeight = 551 ClientWidth = 1119 ExplicitWidth = 1127 - ExplicitHeight = 585 + ExplicitHeight = 595 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader @@ -126,7 +126,7 @@ inherited fEditorContratosCliente: TfEditorContratosCliente Width = 1119 ExplicitWidth = 1119 inherited tbxMain: TTBXToolbar - ExplicitWidth = 894 + ExplicitWidth = 1119 object TBXSubmenuItem3: TTBXSubmenuItem [0] Caption = 'Nuevo' DisplayMode = nbdmImageAndText @@ -157,7 +157,7 @@ inherited fEditorContratosCliente: TfEditorContratosCliente end end inherited tbxFiltro: TTBXToolbar - ExplicitWidth = 481 + ExplicitWidth = 535 inherited lblAno: TTBXLabelItem Visible = True end @@ -194,11 +194,11 @@ inherited fEditorContratosCliente: TfEditorContratosCliente end end inherited TBXTMain2: TTBXToolbar - Left = 481 + Left = 535 DockPos = 343 Visible = True - ExplicitLeft = 481 - ExplicitWidth = 430 + ExplicitLeft = 535 + ExplicitWidth = 543 object TBXItem50: TTBXItem Action = actLOPD DisplayMode = nbdmImageAndText @@ -255,10 +255,6 @@ inherited fEditorContratosCliente: TfEditorContratosCliente inherited actImprimir: TAction Visible = True end - inherited actExportarExcel: TAction - Enabled = True - Visible = True - end object actGenerarAlbaranCli: TAction Category = 'Acciones' Caption = 'Generar albar'#225'n de cliente' diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas index 48589c8..485aa70 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas @@ -676,7 +676,14 @@ end; procedure TfEditorContratosCliente.ModificarInterno; begin inherited; - FController.Ver(Contratos); + + if (Length(Trim(Contratos.FACTURA_ASOCIADA)) > 0) then + begin + if (ShowConfirmMessage('¡Atención!, el presupuesto tiene al menos una factura asociada, "no debería modificar nada", antes hablar con Mónica.', '¿Desea continuar?') = IDYES) then + FController.Ver(Contratos); + end + else + FController.Ver(Contratos); end; procedure TfEditorContratosCliente.NuevoInterno; diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosClienteReport.dfm b/Source/Modulos/Contratos de cliente/Views/uEditorContratosClienteReport.dfm index bfaf51d..a362d4b 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosClienteReport.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosClienteReport.dfm @@ -3,18 +3,1199 @@ inherited fEditorContratosClientePreview: TfEditorContratosClientePreview PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader + Top = 49 + ExplicitTop = 49 inherited Image1: TImage ExplicitLeft = 768 end end inherited TBXDock: TTBXDock + Height = 49 + ExplicitHeight = 49 + inherited tbxMain: TTBXToolbar + Left = 592 + Top = 23 + DockPos = 0 + ExplicitLeft = 592 + ExplicitTop = 23 + end inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 540 + DockPos = 0 + DockRow = 1 + ExplicitWidth = 592 object TBXItem58: TTBXItem [1] Action = actExportarRTF DisplayMode = nbdmTextOnlyInMenus Images = SmallImages end + object TBXItem59: TTBXItem [3] + Action = actAumentarTamLetra + DisplayMode = nbdmImageAndText + Images = PreviewSmallImageList + end + object TBXItem60: TTBXItem [4] + Action = actDisminuirTamLetra + DisplayMode = nbdmImageAndText + Images = PreviewSmallImageList + end + inherited TBXSeparatorItem16: TTBXSeparatorItem [5] + end + inherited tbxMano: TTBXItem [6] + end + inherited tbxZoom: TTBXItem [7] + end + inherited TBXSeparatorItem6: TTBXSeparatorItem [8] + end + inherited TBXItem51: TTBXItem [9] + end + inherited TBXItem42: TTBXItem [10] + end + inherited TBXItem41: TTBXItem [11] + end + inherited TBXSeparatorItem14: TTBXSeparatorItem [12] + end + inherited TBXItem40: TTBXItem [13] + end + inherited cbZoom: TTBXComboBoxItem [14] + end + inherited TBXItem37: TTBXItem [15] + end + inherited TBXSeparatorItem17: TTBXSeparatorItem [16] + end + inherited TBXItem7: TTBXItem [17] + end + inherited TBXItem34: TTBXItem [18] + end + inherited TBXItem33: TTBXItem [19] + end + inherited TBXItem36: TTBXItem [20] + end + object TBXSeparatorItem21: TTBXSeparatorItem [21] + end end end + inherited SmallImages: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001754944415478DA6364C001D6ECBE900CA4E640B9 + 2921AE0673B1A963C4A739C8598FE1DB8FDF0C33966C67505054C06A08232ECD + 3EF6BA0C250B7F315C7FF88F6179E15F86456BF76135841197CD79737F324C4E + E1008BF345BC63B833959561F13A4C4318D13507BBE833E4CEF9C160ACC1C290 + 60C30296734D5FCD70F2A333564318B1D90CD20C02D72E9C04D33C92A60CAFDF + FF6358B8E71B86218CE87E866986D90E738186A92FC397EF0C0C6B8FA21A0232 + E03FBACD5FBEFF07E30A3F36B801323ABE0C3F7FFF67F8FE938161EFC5EF7043 + C00678586B32F8B7FD61887167836BFEF59B81A12E186180A8BA0F58F3E76FFF + 194EDDFE0136A07DDA1AB001C90FEE3F98131BE4C4A092FD9BA12A8A07AC19E4 + 67582C800CE051F0C1D06C636994020F44902171214E0CCA99BF19E25DB8E09A + 91C301161330CDE040448E46649764D85C473160C6114D0CCD581312B221CEFA + 9C589D8D3521E13204047069C69B99608680002ECD380D4036E4C98B77383583 + 000005100EB8572466A60000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001074944415478DA + 63FCFFFF3F032580912A06303232E2543079D1766F201505C520B02C37CE331A + C400EBC5670054F3960057330631617E0690B2F357EF336CDA7786A1B5289211 + AF01C89A254505183E7FFDC1F0F5DB0F06311101A021F7184E5DBA733927D643 + 0FAB01E89ADF7EF802D6FCF5FB4F866F406CA6AFC21095DBC6B06C7215238601 + C4689EB27807C3B153E7300D2056F38B371F18B62EDA79EDFCF9F9DA700348D4 + CC70E1C2024420022548D68C128D40C906A0E67A5234631860A6A752AF202346 + B466740396C2521AD020B0A49EA622C39C95BB716AC64889C0405C0A541C2501 + 4C2830804F33D6A40C8A09A0A62DF7EEDD03F3AF1FB98D372301A39191E2DC08 + 0029AC32F01825AACD0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001514944415478DA + 635CB5E3DC7F062C20CCC388918108C0083220D4DD104570F5CEF30CEDFDB319 + CEEF9C4ED0109C06D818AB3278C7941134046E40CBAA0760819A3005B80B6000 + 9F21182EF8F1F30F10FF86E05F7F1882926B883300E60264C0C1805D5F69B802 + 238601E836FF04E2CDA7BF339484C9A368EE59F59261D9C1BB0CE7A75933C20D + F0B4D56698B0E5195617601AF09021DA4998C1297307C38D35A18C60031CCDD4 + C036FF84DAFCE7EF3F307DF0FA7FB001112D57C09A57D4E8800D98BBFA346A18 + 58EA2BC235C39C0FC2671EB0A2B8E0DBCF7F0C5F7FFE05E27F60B65DE26C8801 + 7316ADC11A58AEFE69282E4009C8284506F7F4B90C781349F7CA07FF4106A0DB + FCFD171003E980BCF9840D48F5916148EFBB8E2197EC2BCB1059B290B001512E + 92609BC1B602F1EF3FFFC1F437204EAE5A4CD8007F5B71B8E66F480681407AED + 12C20674CCDE884F0903000B1A00979E81F9710000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002574944415478DA + 63FCFFFF3F03258011D9004646468696696B17FFFECAD0DE581A7C0D596155CF + 0AF77F7FFFD975944755A3E8413760EA929DAF393938D62785D8A7C1C48BBB17 + 711BABAB5C7AF9F6FDDFC2446F354206BC75B6D4E35ABCFE90536B49F87190F8 + E4853B2779DA1BE46EDE7FE62ED00015BC06F4CFDBBA24CACF26FAD0A99B5B42 + BDCC7C6BFA563B057B986FFDFDE72FC7D20D072B26D62574E235A0A26DA999B0 + 98E0F2607713F9251B8E85692A4B5698E9AB9AAEDA7EE2DEBB571F3DDAAB226F + E33500044A3B979507B898B6BF78F3FEA3B1B612FF992BF7FF1F3975336E425D + CC52903C4103EAEBEB5998450D8FAA2A889BC94888306CD977664D675964284C + 1D0103EA99F8DDF50C8CD439E3FFFE67CB7DFFE9DB1F7E3E9EC637DF5977DC98 + B3E73C0343E33F9C0670B8AC555292175BC8F6FF9BEEDF6FEF995E7DF8F95941 + 55EDE5AB17AFBEFCFAC7C2F1ECC5FBEF0C4C4C89FF0F47DDC36A8056F2A103FF + DEDEE465FBFFB5F1D577EECB8C8CFFF72AAA6A7CFFF4F842CED54D7907184CE7 + 4631B0B227FC3F1AE38AD5008D981DDFD9BEDE48BABCA1703983DE226E09891F + D754B4756F7DBC7FBAEFF286BCED0C32BD9C0CB222B7FF1F8B93C16A805ED2EE + D74CEFAF445FDC50B48BC172858E34DFFB6582B2DAFB38BEDCFC7166456A0583 + CE0471063EA103FF8FC66A623540C063F55669B6E747AE3DE3E861E5E158A9C8 + FBF1D1FD6F628BF4147977FC7A79D3E3F2736E39060E9E84FF47A202B0C782ED + 627356C6FF935998FEB349737FB9FE95E975F2F32D8DDF98EC9647B1FCFF55F0 + EB1FD31FA08EC2FF87634F6235801C0000382740F0DFD997BD0000000049454E + 44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002854944415478DA + A5935D48536118C7FFAFDB8CCD557E7F34B33167F9119617A91596495D781304 + 451021A651362821B1ABA49B6EA4460961D88542055D84DD6545415992174994 + 9625CC8F9C329D9B5F3BE9CED9D9797BCEA1C932A3A0079EC3CBE13CBFE7FF7F + 9FF330CE39FE2798FAB80BA4E61559EB2551E67B07279AE8D51FA98F2CC99546 + 031A3D6E5FF329993F631D80B52227A6D7929F9BAEA459D1D73BE8DC3330D6B8 + 1AD206641414DA5A6224E1E8ECA47779660955D532EF642F1371BD74331A14FA + 9C27A4439F5D88777DAE1B65FD230D11485786B9363D65FD35C1EB4B9817427E + 9F80C335C05BD53E23B2A934132FB23662B71406C2B14698F38AF0E9EB9473E8 + E3C8655BD686D6F858A5DA3F27B04511E37E0195B5C0A00AD6003FE5259758F0 + 3AD1843C15125218CCB6AD707FF34EAC93973217041154ECF608D8770E188BD8 + 5A01A8A1DEC5F60CF4980CB0A890E8A47AFFF477EC3F037C8EBE975F006ADC37 + 60A7351E3D061DE222C522A5270047AD82DBAB27B21AC09EDA373525E9A52BCB + 7E5F4CB4822509BE80848AB3C0C09A806380EE7CA1BDC55EB4CDE17AF2984932 + 75A60CCA088739742A84CE1E49C1010730F41BA03B27CD595C517CB1FFF92B04 + E6035AF142101DCB12DA743AB413243FA468331D0F01E51780D1154057AAF148 + D92E7BE794778E8DB92634C901116FA6451CAA27214EC06802AE5227AA839ED2 + 45A0729AC6A406182DD9329C10A7B7F57D18D63A93DF99D92076905F4FB4DF56 + A08C20ED9476027CD1209C7BD9FBDC947BC1C0E2C9596A4B003E27E2F8E9301E + AEB507B700334968A6631D019C759C5F627780822413BA194312CDFB41958C13 + 7FDB4052739000430ECEDD913F313B568F9B8B326AC8F7CCBFAEB27A073F0058 + 5538F0EAB25B380000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001934944415478DA + 6364C002662430FC47E6672C606064C001C0122726A06AB870818121A1632A98 + 5D169DCD10E58B90B32840358C11A4D920622A5C604145365833482308D4F5E6 + 3134154F62A8EE4805F35B2B66334CDA8B3004C50098E62F2F6E823581347F7F + FB80E1E58DBD0C8BD67D6588F6656258BAF91F7E03AE3D66C009081A800CD61F + B161C0072243F419711AF0F7F777864D275D192282F5B06A5EB1F23C43D7FCD9 + 0CE7774E67C43000A41984B79EF3C36AC08F9F7F18366CB8CC10116EC860E491 + 85EA0298E6BFBFBE33ECB8120E36C071E64DB8E6ED09CA40037E33ECD87E03EC + 02142F206BFEF7FB07C3AE9BF1282E00D90CD20CC6BFFE30EC3B719561CAECE5 + 100374837B503483E8BDF733305C000333DC04198E9EBB893040CBAF1945F3DF + 3FDF190E3C2E041B806EF34F283E73E52EC200758F2A865B3B3A506CB927739E + C1C75383C177F17D0C17745971325CBEF51062004820CF19352F808065E64506 + 172748A0C16CFDF3F71F9806B9E4F683A70803B081E56B2EFEB7B19663D875F4 + 32CEC444D080AED9331808010085EE16005695A1DA0000000049454E44AE4260 + 82} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000002164944415478DA95D35F4853511CC0F1EFD491DD + D9587F2C83AC8C328DFE4949908BC0AC142A147BC8077B88A01EECA5E718F958 + 410486C384B50A1F7A991023CBEC0F594F81E5D4C211E130D7D4DDCDA15B5EEF + DD5DD74B1B8EA9D90FCEC3EFC0EFC3EF9CF33B06FE46CBE3AE042B886B176B0C + 0B73C342A0A9B17AD9E2FB4F5EE0E878C6E79776C37F03AAAAD2DAD1CDDEDD3B + B96EBB9B425604CC17CB8A4AFBD31EEA6BAC0CFF08A4907F02C962598EE374BD + D58F908C2581442241603C8CCBFD89D86C9C9C9C1C0A365A282DDE446FDF37E6 + AB9277B128F02B10C6DDF385CD074B10D6593019211E9CC2EF1DA5A0C0821895 + 68BE6D5F1A6873BEA6D07A0879951945CD626B1E6C372978BD7EBC5F4710D608 + DC6A712C0EC84A9C7B6DDDECAF3B459E315B3B3B685B9835448DCD30F4BE0FC1 + 94CB9D56672670A5E1A47E590F1EBDE374C3091D88CD4120063359902B4719F9 + D88F201835E0612670E97CA5DE41578F870A6B296BD79B096BC0B8B6C4DF3252 + 4024E81960832071B3FD7926D0587B5C7F32DFE8243FC74214EDD906AB4D4C29 + 1011230487BC1419BFB32BE8E06CE7BE4CE0C299637A07B3928CCF37816F4CD4 + F2040943365234823134C8E1FC094A8A8D4C0DF6B2E5EA8774A0BEFAA80E283A + A21012A791E6E6B4618249FF08AFEC97292B2CA7B64221BFAC9C90E74DFA289F + AB3A42FFB07FD90FE5B255A510B754379D062C1CD3E5E240AC931D9537B03537 + 19FE00839434866373C4BA0000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD252000001724944415478DA6364A0103062135CB1E2C26E20 + E5824F63448401235603809AA381D412374F5506413E2EB0D89FBFFF187EFFF9 + 0BC62F3EFD6728A999C0B0795E15A60150CD1540CD3A7B4FDCC5B0D5D94299E1 + CAD3BF0CDD3D53F280064CC666C06EA066176C36FF05B25F7F6544B11DC50098 + D3C3C3F519D6ECBA8C61BBBDA922C38D17FF41B6C384B6020DF261846AFE0FA4 + AE809C0EB21DDD6610FFCF9F7F0CE91553194CF49518A4558D1836AE59037609 + 23C8E6AB4F2E2C2136DAE4B5AC186E9CD9C570F3C1278801B53D0BFE3715C7E3 + D4F0E5C75F86CFDF8118487FF9F18F61C3BA350C12CA260C3B366F4218408CCD + 17AE3D03D3065A520CEC42AA0C278F1CC4EF02749BBF82F0CFBF0CC7F66E64F8 + C92AC970FDE259DC06A06BAE3DEFC390ABB49EE1FEB5530CCF9F3F6778FA919D + E1F5D3FBD80DC066F3AC743D8680EEB30CAFEE9E61D8BEF72C4CA90CD080A770 + 03A62FDB45542C400D006B062724DFA4366920FD84D86844D68C9212C905001F + 16FA1194E3DBC30000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000774494D45000000000000000973942E000000097048597300001712 + 0000171201679FD2520000015F4944415478DA6364A000FC3060F8CF884D62C5 + 8A0BBB81940BB258E7FC99286A8EBF9CCEC06EE4C5C088457334905AE2E6A9CA + 20C8C70516FBF3F71F8399770E44D3F9FF0C3F0D19219AE76D6364C4A2B902A8 + 5967EF89BB2806B7F54D6738E7C4C1F073793F58B3D1537986F33BA76318B01B + A8D905D9E6DF7FFE82B1437011C3B91DD31818BA8AC07246FB7EA01A00737A78 + B83EC39A5D9731C205E40274003700A8F93F90BA02723AC876649BFF02D920FE + 9F3FFF18D22BA63298E82B3148AB1A316C5CB38661F5B92A064690CD579F5C58 + 4228CAB6EC3E893D166A7B16FC6F2A8EC7A9F1CB8FBF0C9FBFFF65F08E2CC01E + 0B20038849342017608D055C2E80D9FC19487FF9F18F2125B3147B2C6033005D + 73ED791F86E7B334B1C702BA01E89ABF02F1AC743D8680EEB30CAFEE9E61D8BE + F72C4CA9CCE679554FE1064C5FB68B98A0801900D60C6230FA26B54903E92744 + E946B219C661244123560000C9AFE6B31530CB2E0000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000016A4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D18616C905E466403A27DCCF16A06AA + 61E89DB290E1FCCEE98C241BF0EFDF3F86E5DB4E33488B093314D5F5810D21DA + 0090E6DF7FFE31ACD97596C1C9429BE1E6BD176043CEED98C688D3804D0F0E30 + F45E6A02B37779EC62E05CC0C6B058EA38D80B3080D30090E6805D4E182E7911 + FC91E1C4E5C70C8F1E3F6298B774137603609AFFA4FC013B1B64738BB13743CD + D9AD0C8FFDDF81C5B6EC3B85DB00A6594C289A91C13DEF3740F1BF0C3B0F9DC5 + 6D0048C1EFDF7F21F49F7F50FA2FC31F181F2877E0E445EC068479988015F02C + E640B1F98EE72BB066CDDD120C676D1E311C3D7B05BB0181CE8660DB049773C3 + FD8DAC3957BB80219A379FE1D4C5EBD80DF0B1D7032B165BCD8B110330CD200B + CE5FBD85DD00776B1DB002E9F502609B13CF8781E50C840DE09A41165CB97907 + BB014EE69A1801060B44986610C06980ADB11AC3A63D2789C994D80D404EA6C4 + 0090010087546EF0ACB0C7920000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001024944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305B3E7F1A2323BA66090111A9272F9F301CD9BE99119701110999 + FF416A0E6FDB843000A4F9CFCF1F52F834C2808DA72FD8DF700348D18C6C08D8 + 004B77AF69F292F299308987CF1F4E979256DEB076DEE45D207E7052AEDBB3A7 + 770390D58000DC0B20FFCC98D0CE70E1053FC3DBBF3F191E7F66603831A310C5 + B6E533A6311C7CC080228F624046C534B82408AC690C856B9611976140970719 + 20ACA0CB30A53E13624068693F5CF2F2E3F70C37E7A5C163019BFCD7AD4D0C2B + 164C07A72146981F999998C17EFCFBEF2FD630C0260F3660C0933200BCB3BCE1 + CDA578040000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C04944415478DA + 63FCFFFF3F0325801164C0C20D47A381F41292353332C6800D58B0FEC8FF8440 + 1BA234FDF9FB8FE1F79FBF60EC105CC4806200A3E14C86FFE7D3C13408E0627F + 3C12CF70ECEC0D86AAB659D80D4007FF806AFEFC41D80CC2672FDFC1340019C8 + 7A2C6178F2F22B98ADAE20C0D09869CCE06E29CD2068B788E1D9AE48868BD7EF + 117601C8E673D7DF309846AF6310E66767B8BE3E8441CC6929C3C36D610CD76E + 3FC46DC0CBB7DF19EA679C613870E619C3C3679F197EFCFA0B36106433C8F97F + 80F8D6FD27B8BD1053BD8F61E9B6DB0C0B9B1C181C4C2518E43D5780C54136CB + 7BAD62B8B12E90E1FEE367D85DF0F75C1A836FDE0E866D471E315C5A15CCF0F1 + CB4F06DBA42D6003EE6E0A6650F65BCB7061B90FC3F357AFB11BF0F3540AC3B1 + 8B2F18A2ABF6313C7BFD8DC1C14412E895E76003AEAEF6077B4123528661FFC4 + F3A806C4F859C1A30839CAE0ECDF10BE41E416860F7F32188E4F453320DCCB9C + 81CB621ED8A6177BA218245C9681D9B7360431A805AC03B37F306430FCF8C3C0 + F0E61B0483D8700382DC4CF0DAFC1B498EDD5785E1FD4A3417F83919319CBA78 + 8BA8FCF0DFCF908171139201A0DC3871C6529273637E46740C00F128724C706C + 80060000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000E9C00000E9C01079453DD000002324944415478DA + 63FCFFFF3F03258011640023232386C4922BFF0D9818FFC57EFFFE57FDEFBFFF + CC8CFF19BEF0F1B36D5C73E9EAAAD5613ABF60166318505FFF9F4939F077F98B + 97BF6BEFDCFEC6F9EDDB3F86BF7F810A9918192424D9FEF3F1B32FBFFA93236E + 5528C35FB8018D9B7E2C6DF0E38859759581F5E7BF3FD36EDEF89AF4E51B03E3 + B72F7FC0867EF8F897E1EF3F06867F40ACA1C9F96FE392D5BA5737265D831BE0 + 58F9F0BF83A5F83245796696CB973E87FEF9C70CD6FCE2D92B86E78F6EFCFCF7 + EFEF17360E5E4151590326666626067D7DDE65F57E1CD12806288BB3FF676567 + 66E0E062036B7EFEF425C39307576E8A2A19B9EE6A557DA217B2A88E9B5FBA41 + 405C87C1DC9CEF01D0004514031444391804843918409ADFBFFFCE70E7EA91FB + 9F3FF06BDED9E1F513A450357481341FBBD03D611973362B4B2C067CF8C1C060 + A020C0F0E3FB4F86CF1FDEBCBE7FFD84C3B54DC9D760812B13DACB29CAAAF84A + 58C69AC7C61A8B01CF9FFF61E014646190E365627870FD40C3A535718DC8D1AA + E2B1988F5788E7B998823597A5392FA6010C1F1EC0157FF8F081E1DF9F4F0D1C + EC6AFDA7965A7C02899924ED550746C555793523665D1D2ED440C49690D08149 + D2A9764E3ED90A037DEEFF3696BC7161EA0C4B8836402FF6A41A37AFF0690E2E + 7E3E7B5B9E65C08494084C48BF8832402BF40A0F8F30DB3E0E2E4153277B9E65 + 0DFE9C60A7E34CCA280098ACCDDF3C5A2925C913ACAFCBB51CA6997803ECF7B3 + 301C74FC834D0AC5004A000026261CF09ABF155A0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage14' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000032A4944415478DA + 6D937B4814411CC77FB3B7777A5E7276969AA4648A20A5592A4585FE654122BD + 0CAA3FE2841EA45946697591BD8DB27748A2BDA0A43FA2420C893252D2A244B4 + 7C24495986AFBC3BDDDBDB9DDDBDDDDB663714B366F9B2BB33DFCF777E3BB383 + E0DF66235A19342370912538D0CAB2825BF00A6DA4EF2D1133D5A8AA2AA029EF + 4126B3292B2E21BA70697A5262626A9C393422040D0FBAFCAD6F3BF187C68ED6 + 9F5F472E2992524FBCE2F400735884ED40E6BAE58539F6CCD0B9F323009111C5 + EF075191600C7BA0ABEBAB5AF7A071A4ADBEE71CE7C615849126032823B52D77 + EFBAEBF6BDEBAD164B20E941A092EBF89ED75050960C6ECC805B6060D8E984E7 + 379B9C2D8F3AB71353CD4440CC8ACCE49725D7F2626DB3AC60A028C2535092FF + 4A2FCD5E1A0F2E3C062E9E8171D1034303A3F0E24CF3A7910EF72A1230826813 + BDAFF87CEE85ACCD19269AA2C16030C0093273EDC372C8DE92FFD7EACEDDE902 + 06B3D0F1A41777DEED2D5015F5369A1335BBB6ACFA4056745C24A22903941636 + EBF044C38204BCE003FBEE62B0DAFBC1237A61B8C7A9B69DE979ECF3F836A1A4 + 65F15F4EDD2A880BB606A12B45AD93B02C2BE023D2604D79FB8F02B5F533B022 + 078C9B55BBCF7EEBC43F8424B4243DE19BA37C678CC962844A47B71E204F8212 + 09F1EBF783474E02BBB105BC1207DE711EFACA06BE8B7D520C8A8A0D6F70DCD9 + 951E343B1061598067A54EA8AEBAA4435A0826D22A3976B21406B31B80F76160 + FB3975E8E2E84785F12F460166E3E91D17361D8E5D1E45F332062C8BD07EC300 + D7CA4EC1BEA292BF16B177751D6893304D5E9979E0AD5265354FDBC694B4EC05 + 7599FB57844906093862D04CCEBB913AE4D9F01EBC3E1EBC22AF87635680F1FB + EC4FB95DC922DBD8A105A0008BF1444641DAA1A88C8800CE8F8123656AA59A1F + A740FF9A7AF22CE8B0208AC035F258A8911C20C3D5A9BF72D8CC79C197E3D7CE + CBB12D0D09106862D4A13F9F343133F70E63F18D740F7E818330E3D30FD31CA3 + D5986F5B68B55B532DE128923248269F0EF2DF05856FC58372AF52013C5412AF + EB7FA7516B34512232C2063A944E44C1C82C7B14CEEFF2B793929F92B16E2265 + EA71FE0D330BBCF031BDB9A60000000049454E44AE426082} + Name = 'PngImage15' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A0000031C4944415478DA + 6D536B481451143E779D5D5D37D95AD354523445905AB32C0A0DFD653F92252B + 8BFA130A3D40F385D1C3B09766A5652548D23B34FA1115624894A0F6502845CB + 079298A5F8CA75737677E6CECCCEA3BB532DAB75868F3B73EFF77DE7CCBDF720 + F8374C045BFC97F8AD3504F8191D0ECEC639B91E32D741407B13154501E4F5ED + AFD3EBD263E2220A37A5C49BCD1B62F481214BD1F4E49CDCDDD18F3FB4F7758F + 8FCC5C9504A98570F9C506FAE01053715A46526166565AE0CA552180C88A24CB + C04B02FCC476181818519A1BDA677A5A862E32365C473482C740A3D5ECCFCECF + A8C9CADF613418FCC80C02853C678EB4425E5502D8300D368E8669AB155EDE7C + 67FDF8A4FF002135FE35884A4E4B787DFA464EB469B9117C341AA2D78008329C + CF6D55CBB39406C11C4BC33C6F87A989597855FEFEF34C9F6D2B319841948E2A + 387639BB327D6FAA8ED2505056F066C18E363DAE05CBBE5C30E7BBE02767071A + 3BA0EFD930EEBF3F9CA748CA5D141A1ED454F5A8383D22260C511A1FA8287CAF + 8ABC037302ECC92E0263D618D879274C0F59959EF2A1A72EBB6B378ADF1CFBE5 + FC9DBC9800A33F2201D547BB3C06A228818B80E55C2A728A4E01B3AB0B689B43 + 19BCF0B51F7FE7E2D1FA94B8AF25B587A274062DD971173C2C1D560D448F5020 + 26B23A1E3D790EA62C6DE09C6761B46AE21B3F2A44A1F0E8156D25F70EA7F807 + F9212C72F0A2C20ACFEB6B3C62F788094E9496C12411B32E0C8E314699BA32FB + 49A2E575C857AF2D3B58B9FB44745238C58A183AAF890BFEFF5259A947CC082C + B893D0EF9C22DDE0BCAD884A8EFB1813375A5637A71525070B3E023084E02631 + 24136E88564D262DADE0E4DD621EB08383F97AC7B8D82BA59363EC731B205F83 + F66C6ADEC6E3E1A921BE8C8C55B1BB54FDD34418DBD642DE3955CCF13C30ED2C + E61A85127251AE7B5FE5E0659101D5B1DB23334D9B96FA721421AA22FC3BEB9F + CC4C27C6FC5BE101FC8012A2995FDC4CA15AA336D7B4C69865DC605881C2343E + 82CEA50AD96F9CC476E3497158AA03166E11EEDCFFBAD11D1481196961271548 + 995100D28B768991E7E45E52F273B236482079B7F32FB7E1BAF0E8F71C040000 + 000049454E44AE426082} + Name = 'PngImage16' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63FCFFFF3F4341F1F9FF0C6402469801BEFE4A0C0B16DD60583CC71CABC21F3F + FF327CFFF90748FF6128ABBCC2A0A5CEC0B072C752E20C40D6FCE3D71F86BAFA + 1B0CEB963B31A85A241336005DF38FDF7F18DA5AEE3098997032CC5D3D07BF01 + D834FFFCF597A1B7EB3E612FE0D20CC253263C625092FFC5B0F1C06AEC06E0D3 + 0CE2CF99F68C4152EC0BC3AE931B310D983EC908A119AA11A409660008CC9FF9 + 9C4180F72DC3E14B3B500D00019021840048F3F7EF3F19CEDCDE8F6AC09F3F40 + DB7EFC024B82E81FDF816C280D11FFC5F0F9D337B03C08DF7C79126180A7B73C + 86E6CF9FBF43C460867DFB09D70C32ECD1A7F308036CEC44C18A976E9A82D7F9 + 7CFF8DC19A4186BCFE7D0D618089193FD896B5BB67311CDA309341504A87E1C9 + ED930CEF3FFD60F8F0F927C3FD671F1956AD59CDF0EC96105833C8BBEFFFDF44 + 18A0A3CB0976EAB6C30B182E1CDDCBA06768C8B073FD02B8CDF79F7E64E89C34 + 87E1EE456EB06610403140599519EC827D6796312447F833F072B130B0B0B2A1 + 387FF5D6430C37CF72C0F9700318191919F49D72C9CAD200FAC9B5C145016BDA + 0000000049454E44AE426082} + Name = 'PngImage17' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000015D4944415478DA + 63FCFFFF3F03082CDD7212C22000627C2D1891F98CC80644FB98E3D50C54C3D0 + 3B6521C3F99DD3194936E0DFBF7F0CCBB79D6690161366B04C57058B715C6060 + 24CA0090E6DF7FFE31ACD9759621A4D68281352A97E1F7B2C90C8B2E10E10298 + E6DFBFFF325C5DC2C1F044E912C39B4B4B19984A3AB17BC171E64DACAEE860D0 + 60D0F399C2F0F2D636868587CC18A41A1A18D218F07801DD669866100E699161 + 10D5F6050726411720DB0CD35CDE369B61DED24DD80DF8FDE72FD856107D6319 + 1786E6ED7B4F311C387911BB01611E260C6E73EF80F9110C1F180C182C18C4D5 + BC5034830C3E7AF60A7603029D0D212E00FA7DEDAA2B0C2D2D210C6B6A9EA068 + 06E15317AF6337C0C75E8F2160D92330FF4E8B0B838B4B0D985D5CE907D70CC2 + E7AFDEC26E80BBB50E5CD11FA84B60E181C0FF18AEDCBC83DD0027734D829A41 + 00A701B6C66A0C9BF69C24265362370094D348012003002CB76B52FA97B19500 + 00000049454E44AE426082} + Name = 'PngImage18' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001B04944415478DA + 63FCFFFF3F03258071D400064674018780D0A7823C7C09EB97CCDD8D4B535EC3 + C493AF1EDC305BB1603A2323BA66090111A9272F9F301CD9BE99119701110999 + FF616A189135FFF9F9430A9F4618B0F1F405FB1B6E0021CDD70CF8FF0B09B0D7 + 481C78D50AE2FF7295B1FBC82F7AF0C585F30C8C96EE5ED3E425E533618A1F3E + 7F385D4A5A79C3DA79937781F8C149B96E6627F7F4F8B23ED3DD226BC2F04840 + 96A19CE72DC3E7E387182EDEF8389911E49F1913DA192EBCE06778FBF727C3E3 + CF0C0C276614A2B860F98C690C9BAA5A1854F7F530282A4830DC7FF08261E657 + 318689B76F33820DC8A89806D70C026B1A43E19A65C46518C0F25F3F3048CE28 + 6050BFBC9A61DB7F198693AE390C535AF220068496F6C3355F7EFC9EE1E6BC34 + 782CC0E47F5EBFC060D7E5C170E8BD208301F73B06BE7F1FFD642E316C6604F9 + F1D9D3BB01CC4CCCE070F8FBEF2F4618FC7D723D22F3EF93C4FB37DE301C1296 + D9E8FBE68198BED87F4BFEBF1FED084619087CB4178BB974FFD3D42B8F7E7801 + 6D390A12DB28C4BA51558ECB8F2803D6F1B2C67CFEF5C728EEE7FF62A006701A + 98C0C0202ECBCDB00A00547CD715F016991D0000000049454E44AE426082} + Name = 'PngImage19' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001034944415478DA + 636498F123988181610D032A0861C8E058CB400460041AF07F8201AA60C10520 + 91C1C1489201604DC40114D7313234DCF84FB4561868D080BB8E71F3BEBBFF7D + 1C9550E4FFFCFDC7F0E7CF5F86DF60FC0F4C83F8DF7EFC66084FAF6738BF733A + 7603D6DEFBC710B2FB378A61732CFF307888FF061B7AEDEE4B86EAD6C9B80D60 + 9CF993015B803EF0FDCAF0EBF75F863B8FDEE036006403EB9CDF0CA40628D800 + 0F3B05B01F393BEE911C9E6003ECCDA4188E9CBBCFF0F70F3B03A9010A36A0AE + B307ACB8A9BC04C5005C9A91031425B52107283ECDC8018AD500429A41F8D1F3 + F7D80D8005283ECDBF81F8F99B4FD80D8005283100AB01B0002516000097A51A + 7A68BA98860000000049454E44AE426082} + Name = 'PngImage20' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001F04944415478DA + 633CC0C0F09F0109C83939313CDAB70F5988C181818191C1600644DD850C4664 + 3946900162D7AEC1053872721838972E85F36F4A4A323818CC60A82CF062689F + B00DB7011C1C1C0C9C9C9C0CDFA3A31924B76E65F8F1E307184B7A6E64583825 + 99E1C69DE70C4B561C64F8F1F3EFC5D7EF7F78030D7A8A6280A0A020D890F7C1 + C10C826BD7824D17745C09D70C03627C2C0C959D5BBF000DD20019023640FDF9 + 7314CD201AE48DF7EFDF3368451D62F075D365D0D19265B872ED3198FEF3F90D + C3C2F597B7BEDA17EF0337000440CEC70694DE85810DD9BCEB32DC305878800D + 00853C08806CFDFEFD3B42674A0A38462E2FDACE90DBF7102CB4A0568361ED49 + 568663276F31BC3D98883000E66474F04A4B8BC1F6DF3F14B182CEDD0CF3363D + 66F87A3C8591B15842F33F0301D0F5EC2A0ABF6DC6368629EBDE3148311F6760 + 24A479F2A2EDFFB362DC19983E9D67B8BFDC98412AF402C3EC6DCF19E62DDD04 + 4907C41AF0772D1303AB453CC3FD2D0B197823BE307CFFF18BC13FA19A380372 + FC2480B61B3228DA3330DC3FC8C0C0E27E95E13B83284344663D7106787FF564 + 50F4896760F8BC90E1FD3B06860F9719183EDA3F61482A6C25CE00BD279E18E2 + CCEEF71872ABBA893320C4D30AE8E7DF0CDFBEFF66F8FAFD17C337A0FF41A0A8 + AE8F380360218E0D000074D3EB115697A8140000000049454E44AE426082} + Name = 'PngImage22' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000019E4944415478DA + 63346C31FCCF40009CAF39CFC8603003A2EE420623B21C23C88073D5E7706A36 + 6A356238BF269DA1B2C08BA17DC236DC0680148200881D3CD799E1FE8BF710DB + 819A174E4966B871E739C3921507197EFCFC7BF1F5FB1FDE40839EA21880AC09 + EE7424CD3020C6C7C250D9B9F50BD0200D9021285E40360426C6683893C1D74D + 9741474B96E1CAB5C760FACFE7370C0BD75FDEFA6A5FBC0F5E17C0BC067209C8 + 90CDBB2EC30D838507C130008124B93686DCBE8760F6825A0D86B52759198E9D + BCC5F0F660222351B170A6EA2C8A5841E76E86799B1E337C3D9E023180503A40 + 37A06DC6368629EBDE3148311F676024A479F2A2EDFFB362DC19983E9D67B8BF + DC98412AF402C3EC6DCF19E62DDD040964620DF8BB968981D5229EE1FE96850C + BC115F18BEFFF8C5E09F504D9C01397E1240DB0D1914ED1918EE1F64606071BF + CAF09D41942122B39E3803BCBF7A3228FAC433307C5EC8F0FE1D03C387CB0C0C + 1FED9F302415B6126780DE134F0C7166F77B0CB955DDC41910E26905F4F36F86 + 6FDF7F337CFDFE8BE11BD0FF205054D7479C01B010C70600EF8FEA118DBC0D28 + 0000000049454E44AE426082} + Name = 'PngImage23' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001844944415478DA + 63646068F9CF4010D4303218CC80A8BB90C1882CC30832E0FFFF6A9C5A19195B + 19180C44182A0BBC18DA276CC36D0058211A008B1BCE6458382599E1C69DE70C + 4B561C64F8F1F3EFC5D7EF7F78030D7A4AD005C89A61408C8F85A1B273EB17A0 + 411A2043887281AF9B2E838E962CC3956B8FC1F49FCF6F1816AEBFBCF5D5BE78 + 1FA2C30064C8E65D97E186C1C283B00B80E293171933E4F63D048B2DA8D56058 + 7B9295E1D8C95B0C6F0F263212E582BFFFAA50C40A3A7733CCDBF498E1EBF114 + 8801845201BA016D33B6314C59F78E418AF938032321CD93176DFF9F15E3CEC0 + F4E93CC3FDE5C60C52A11718666F7BCE306FE926583A20CE80BF6B9918582DE2 + 19EE6F59C8C01BF185E1FB8F5F0CFE09D5C41990E32701B4DD9041D19E81E1FE + 41060616F7AB0CDF1944192232EB8933C0FBAB2783A24F3C03C3E7850CEFDF31 + 307CB8CCC0F0D1FE094352612B7106E83DF1C4106776BFC7905BD54D9C01219E + 56403FFF66F8F6FD37C3D7EFBF18BE01FD0F0245757DC419000B716C0000F02E + CE117405CD650000000049454E44AE426082} + Name = 'PngImage24' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001A14944415478DA + 63646068F9CF4010D4303218CC80A8BB90C1882CC30832E0FFFF6A9C5A19195B + 19180C44182A0BBC18DA276CC36E005ECB819A174E4966B871E739C392150719 + 7EFCFC7BF1F5FB1FDE40839EA2B80064133A8DAC1906C4F858182A3BB77E011A + A4013204AF014B97063144771F62F075D365D0D19265B872ED3198FEF3F90DC3 + C2F597B7BEDA17EF836280579426C3B665D7E134B24B40866CDE75196E182C3C + 500C0001B0ADD1EBC07414D02090F8E445C60CB97D0FC1F20B6A3518D69E6465 + 3876F216C3DB83898C44C5C2DF7F552862059DBB19E66D7ACCF0F5780A23E158 + 00027403DA666C6398B2EE1D8314F3710646429A272FDAFE3F2BC69D81E9D379 + 86FBCB8D19A4422F30CCDEF69C61DED24DB074409C017FD73231B05AC433DCDF + B2908137E20BC3F71FBF18FC13AA893320C74F0268BB2183A23D03C3FD830C0C + 2CEE5719BE3388324464D6136780F7574F06459F780686CF0B19DEBF6360F870 + 9981E1A3FD1386A4C256E20CD07BE28921CEEC7E8F21B7AA9B3803423CAD807E + FECDF0EDFB6F86AFDF7F317C03FA1F048AEAFA88330016E2D800000AC1E011C3 + F6FEB30000000049454E44AE426082} + Name = 'PngImage25' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001964944415478DA + 636440038B371DFFCF8005C4FA5932621347115CB2F9D8FF30075154053F3F30 + 30FC7CCF6096B49EE1FCCEE98C380D58B9F5F0FF403B09AC9A61B469C1050C43 + C09C659B8FFE0F7110C3AB194CFFFAC0E0D2FD9B61FFEA1EB8218C203F873B8A + 10A59911C806F18DBB85E02E011BF0E1C30786F44015A234671F0B653871742F + AA0131BE160C5316EF60C8F012012B9AB1F72F8A8BB2153782C5A73E4B00F3E7 + 2DDD846A80BF93215862E1BAFD603A27D603C580ACE6B50C5A0ADC0CB97D0F19 + AEAEF66788C9694235C0D6580DAC70F3DE530CF1418E0CB88063F17D86B3270F + 324C2E9267C88DF3441860A4A9C0B0EFF80506171B230C4D319DEF50F8113E1A + 0CA5B53319182E64A006A28EBA0A565B4BE6FD61C88B85C83D7EF98FE1EBD76F + 60767BDF4AB0216003A4440518AEDD7E80D580054715C006BC7ACFC2F0EBF76F + 862F5FBE8231883D73FE4E880BFAA62EC2AAD9C2DA99E1D4536D86A42019860F + 5FD9E19ABF7CFDCA307FE97E880B180800E3F4EBFF4101070389D18E70CDF0A4 + 4C34309801C9A950CDE41980A4190400B843EED8DFC8CDA30000000049454E44 + AE426082} + Name = 'PngImage21' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000010A4944415478DA63FCFFFF3F0325 + 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8 + 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8 + 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1 + 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE + 46062FA001ABF88321E3FEFBEF40CE8DFF8CB80C00299C0FC40EA09007E22540 + 3C151A130B9E7FCF4878033440E7210E0370819F868CFF41368334BF0426AD47 + 1F19187EFD252129BFD060FC8FAE19EC622C5E900352CF8001F607C8D607B21F + 01D9EF61F2F35918FF8334A7FF27D10BB0509F018C0C103B03C805D1009D9F97 + 36069839440000000049454E44AE426082} + Name = 'PngImage26' + Background = clWindow + end> + Bitmap = {} + end + inherited PreviewActionList: TActionList + object actAumentarTamLetra: TAction + ImageIndex = 12 + OnExecute = actAumentarTamLetraExecute + end + object actDisminuirTamLetra: TAction + ImageIndex = 13 + OnExecute = actDisminuirTamLetraExecute + end + end + inherited PreviewSmallImageList: TPngImageList + PngImages = < + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000F14944415478DA + C5D2A10EC2301006E01B4F30893C39C59619EC70937B843D014C829B0339DEA0 + 1289638EC9C9E1160C9553A43882A0B45DC80223A30112CE346DFA7F697A6770 + CEE19B327E0A8C663BB5A14506348D8CE7CBDEB4E0DBB96D7402518010C5A405 + C8B0840F9B493710FA08F1E21190E1D0B7C5F9F23D10780849D200F7705102AC + D73A8023005203F73065A08022D3003C0B81AC08A0E3810C33115600156BAE01 + 3888E2A9F50BDC71CE07EE105875025A01B09268007D01A4CD1F48E4DAB3809D + 657F35001440963E764122C78BA50798268ACF6ACF8142F6F97B400E8B9AC617 + 93887EC23B814FEAFFC00D0E3CD3E1153EE1F30000000049454E44AE426082} + Name = 'PngImage1' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000A34944415478DA + 63FCFFFF3F032580912606303232628839545CF8BFBF5D9F912C03409A1F5C38 + C0707F7B3EE90680342778E83334744C24DD0098E60B371818366C20D10098E6 + 071F18C0065C384082018E9517C19A3F0035830D7800A44F90E802A3BC13FFF5 + 8CCC193EBCF8C8F0E00503C3871B0B480F039021FF9834183EFC00721E906100 + CC9077BF34C837006EC8AD13E41B00020A1E13FE136D002960E00D000045F48A + E13771044B0000000049454E44AE426082} + Name = 'PngImage0' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000A44944415478DA + 63FCFFFF3F03258091260638565EFC7FA0C380115D1C9B5A9C067CFAF683E1DC + 240B46B20D48F0D06798B4EE248A21241BF0E10703C3A26D0843483220C0419F + E1C10706860F407CE91AC410920C70B0506078F0829FE1C2838F0C1F1E3C009A + 7480E1FEF67C46A20D30D0506038708301AEF9C18E02D25C202020C070E1C207 + B86692C3800118800F6E2034936CC0830BA89A493680A294480A18780300CF22 + A8E18A4EF6A30000000049454E44AE426082} + Name = 'PngImage3' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000EC4944415478DA + C5D2A10EC2301405D0DB2FA012F9246E95C8E290FB04FE8049703890842F5850 + 2882021CB5185210044725B220086E74908D40C252020937A97BF7A479792C49 + 127C13F673A0D65E27AA27D8EBA06CE97C70D10D5821703A5FB01A54D92B1085 + 84A813633F6B16038D7A80C178F984A440A34EE8F43C017B0186D3079202A124 + F4FB1E402803180B58F736DB3B72038403620F405609E65082364758639CA440 + 42425608F1C803106E50ED9097CD3CBAFD40106132F10038E7D0DAE6E56C07A2 + EC80B90700B740B37B9433801CA07C00A39FCB19C039412B0FE0DD25A6709A42 + E0D3FC1FB8020318D0E1923D9C4B0000000049454E44AE426082} + Name = 'PngImage2' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000017E4944415478DA + 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 + 9F7F2138C9268F01C58073FBBF113444C9EA0B58F38469B3192E2DBB8C69404E + AC07568DBFFE303058F86431D44EB264F8053460DACC25B80DA89FBC1FC38092 + 144706FBC02C86F27E03B00BE6CE594B9C0B4036FFFC0DA15D43B31872BB95C0 + 062C5FB09B341764C4383278476631A4754882BDB076F111FC2E40B619860363 + B318125A05187E026362CBD2B3A4B92036D491212C218B21B2999DE1C7DF6F0C + 7B565CC76E4072B807D8E6BFFF1036FFFE0BA16352B218021BFE82C3E0F0EA07 + 080372FC3218FEFEFFCD70E5D07F8698200F86FE79982E08F4756448CAC862F0 + AA05A5836F0CA7D6BD421890E6130F36F5DE311E86303F0F145B616C1048C9CC + 6270AE7A05567B71E3678401F19E6160C1A7274519E62DDD843725DA943F04BB + E0C696BF080322DC7CC151034BE390F4FE0DCA47D07FFEFF01D37F81F4EDAD8C + 0803829C5DC04993540033207F57D36EB2B2B35B9D6B0100103839527F8C36D7 + 0000000049454E44AE426082} + Name = 'PngImage5' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001714944415478DA + 630C9B1C9ACFC0C03081813C50C00834E07F7E400E51AAFFFEFBC3F0EBDF7786 + 9F7F2138C9268F016EC099973B18F253E4198E6ED6C4A9D9CEFF36C3C4390F19 + 64793519264C9BCD7069D9658801D6962A60CDC40290216B171F411880CF05BF + A0CE05D17E619FC09A05D8C519E6CE598B6AC0B9FDDF8876018BEE6986E50B76 + 631A9013EB8153D3AF3F0C0C3F7F3330D807663124B40A607A016640FDE4FD58 + 0D2849716458B86607C3BCA59B18229BD919B62C3D4B9C0B603683E8E51B2006 + 0436FC65D8B3E23A692EC888716458BB05628057ED1786C3AB1F200CC8F1CB60 + B878F0178A0B906D86E1CD3B20063857BD6238B5EE15C280349F7886EB8799F1 + BA2036D49161C76E880136E50F192E6EFC8C3020DE338CE1DE311EB001D86CFE + FD1742EFDB0F31C0B4E43AC38D2D7F110644B8F9323C3D29CA901CEE81A219A6 + 11C63E7604628051F16586DB5B1911060439BB304C9BB984E88404033003F277 + 35ED262B3BBBD5B9160000C8E01B524AB937870000000049454E44AE426082} + Name = 'PngImage4' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E64944415478DA + 8D936B4893511CC6FF67DA74BAC9BC9478C9357338CC4B0EBC1709F929A25414 + A13E48082D8CFC20267E1B925DD004B3120C75919AA99B5DADD485E56DA2791D + 739ABA2D9DB7A953379D6EEF5EDFDE14859C810F3C5F0ECFF33BFFF38783E0FF + 425902A13B668448DCB4C5B658709C40D8F0A4563120A97FB1B61F3AAC291008 + EDB1630ED7ECECA97C6F7F6FAEABB72BCDB46902B54CAD5BD4CCF7AAC68772C5 + 6F8A06C8286E05484EAEB3F10BB6A49FE2B2F2C2628318E0C440063300410050 + 910596D4B344F7BBB63169FBA7B4D6E65AA915205320E47A9EF4ECB89A7CCE85 + CDA021950141E2BD2E9049645029E683BB3301EB2AE5F657E15B4955457EAA15 + 205B5095CD8BE33D0C8BE0523C1002B50120E5C12EE03509D8A60078386EC1B7 + F2066DA3A89C8FFE1DBF9076CADFADFA4A467C829E70829C82AE43B79B97150D + B3522956F3F4C9B3030001DD87C3AE49C84CBCBC646640FCA5D29DF3A0B8A09D + 09F62469E1C3A4B4D7F2EAF1A3DA834FA064DC2D2D8E4DB9984E63F922ED2A02 + 161DE04EE1EE13D4ED7CB090CB5CD9C6E1439978A3FE655189D50E52D37263CE + 4486374725C5D2168DF6C88E2CE414ED02942400030246C6A7087149C5688DF0 + 7EC63EE0F38DB3C79974A8ECB70B7459649E0F64F17854767800C588D390830D + 02172A19226F5E58D211DFEB9AF40DD5CFCB46E5DD0568AFECC6C43FFA470747 + 2CEBF420D2048072C57ED3CB2F846005F9D19CBD4E80C96882B9F16942D1DBA7 + FBD15C2B960F77159355056AB919E0E3E24C17F9C58487E1737218966D429386 + 01F235CB8589854D87D3DCD0448613938D61669B89B1C1099552DEB9AA9B9790 + E559D204FA99C5EBF78D0A0FB5D5ABA0BF6F0D7AA66CA1757CC4B862D808E9D6 + 9826C990236927D236A4B748AF92C6F6FF82243F890861AE817CC8001D6A0A74 + 2A478D1AFD7A926CC6FC058E20743BEDFA2F1ECC70B45A0CDA2614CB5AFDFAAD + BE19B3E828E51D009FCFE710C6F546ED680F473DFF3B7E70DAFCFEA8E5BFFA03 + 503A4EA60D6AAC070000000049454E44AE426082} + Name = 'PngImage6' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300000AEB00000AEB01828B0D5A000002E44944415478DA + 8D936B48D35118C6DFB379D9D4C9BC94A8CB399B38CC4B0E9C9A45427D8C5251 + 82FA2021B430F08398F4258650145A615642A12E4A31AF6565795958A69B685E + C7BCB4B92D9D3AA74E7771BAFD37FFFDA728E40A7CE0FDF6FC9E73DE877310FC + 5FA850200CC22C90ECB06EB1EC76870347D8F88C6E7244D4F8D2B06FFA172910 + 082998BBD7154F8A079F11C5E0043002A8D64D2BA8A56AFDB2463BA8928F1537 + BF2D1B21AC0E9780ECEC06323BCE9E17CE61DE4D4C8BA5812F0D996C00380EE0 + 81ECB0A25EC0FBDFF74C4B7E7CCAEDEEAC97B8041408849C906321BD97B24FFB + B36854A43221106B01ECCE007780203F1CCC2AE576BBF09DA8A6BA24C725A048 + 5053C43DCFBD9F98C4210523046A13C0D0320099BCBBF0360920D87B0BBE56B5 + E8DA9AAAF8E8EFEB3FA2864705D65ECC4FCF30E2BE70BB54ECD28F542485D676 + 3E2C482458DDD327CF0E04087CC222597519059917566C34B8F358BC031C94A8 + 8B0F339241FBEB870FEA0FAE40CABFF5A23CEDF2B93C2A3302E9D611307D0002 + 29006EC4D529A4DD2ED6B61DF0A1B279A3F15559854B0739B9C5A92792799D29 + 5969D4650B05791200C31B804A74E046B831C061423E8B3757544FD509EFE5EF + 077CBE76F208DD07DE0C7BC6F82FD3CFC430B95C0F162F9A64715091171981BF + 0761224E5E5AD1E3DF1A3A8C2DB5CF2BA764FDA5680F0EA43B3E469D8A4B5AD5 + 1BA149130DCA35CA66283B1E67C6B2A97EA147C16AB1C2A27C0E9F1C1CD27FEF + AC6F968D8BCB097412755D8F0EF3F7F36962A7F2121D8B3218976E4287860632 + 83FDAC6269D3EB38272193E64B6761988DAC981E55A894B2BE75BD5644C00BC4 + E0E867217738228597E06654C1F090010666DDA05B3E6159336DC4F76BAC3384 + 8968007C8971BE842D62D6C159C5DE5F109564E1F17403C8C64CD0AB26419F72 + CAA2319AB3A4F3B62F7008A19BB9577F71613E52A7C3A04731B9AA339A6F0CCD + DB9A0E03EF04F0F9FC48DC626ED34D0D44AAB5BFD347E76CAD87859DFA0386D8 + 3FA68502A9830000000049454E44AE426082} + Name = 'PngImage7' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000E14944415478DA + 63FCFFFF3F032580717019C0C8C8086787B4DDF8FFEBD76F869F3F7F33EC6C37 + 824BA05B88D300BF86CBFFA3A35419A6CFB8C870A0CF9C7403DC2BCFFD8F88D4 + 66983DEB34C3B12936C41910DA7E13EE6C100E0D37609837E7180358EC0708FF + 6278B0218011A701FE8D57C0CEFEF68391E1DB770630FD1D88BF7C07E26F8C0C + 6B17AE6178B1230CB7011E55E7FF836C86B9C23FC48661C9BC5D609B7F40F187 + 0331B80D400E03DDF85DFF3D039D1856CEDFCCF0706320E981A816BEF5BF8BBF + 07D8D92F7786936E80BCFFFAFF30677F3C184B9C01E480616000007F3BB6E1E0 + 0AF3B40000000049454E44AE426082} + Name = 'PngImage8' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000000714944415478DA + 63FCFFFF3F03258071D4002A1B10DA7E13CC01897DFDFA83E1DBB71F60FAFBB7 + 9F0C9F3F7F03E3F7FBA219F11A1013A500E77FFCCCC8F0EA1D23C38BB74C0CCF + 5E3131AC9E3397E1F7E914DC0684B4DDF88FCBE62F9FBF33FCF9F397E1FFF974 + DC060C7C208E1A401E0000EFE473E127272ED00000000049454E44AE426082} + Name = 'PngImage9' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD252000001C74944415478DA + A5934D4B5B411885CF5D9982288874EB0F306E5CBA9A646514E33536264AE456 + 5184528AE0424A043751FCC08228E24788894631D5D6D12C5C08EA2A74512AD8 + E4070822EE44A3E255CC386F24264AAE5978609881B9E739EFCCBC571142E03D + 5208A0284ADECDA08FB9E4342087EFF3C04124772F139C1790319614C3DCE456 + B116E2D0EF11CF051502FCD7BA54F37A98C3E951110E70783A5584FC3C2E0155 + 0501DB534C34389F92DD9A342E7068DD2A96FC1CD296AE44F3EE470C019B934C + A8AE6CF2E29C9C3B6C5809EEC0EEA84194C7E212506508D8F8C144735B36D93F + 232B69B72212DE43BDBD1A5BBFFFA1C7B7AF3C03424396C6B252F08714709184 + F94311E22DEDD9E4C0FC0E9CEE1AFC8AC4505B5789E876025F867300D1694BFA + CCA49FCB1C046AD5B2C94B813D383E3D25334B0576778FF17524074047C8944D + A2B3BB3C36E8BA8E3BFD363DEEEF74DC5C5F2179718ED89F4B7C1B7B0520AD8E + 3241C9F4B191F93A798943F90EBDE37900A4908F0987CB6A6826FD3D02FA260C + 0024FF201374DBF9CCA767B7F28E4CF07C7F03409AF532411796319391747266 + C2C77298651F240AFE4C53FD4CA4E48BA464FBD1CBD09ACCB29D132F5AF93D7A + 04D7A238F0C903C3480000000049454E44AE426082} + Name = 'PngImage10' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 610000000970485973000017120000171201679FD2520000014F4944415478DA + 63FCFFFF3F03258011640063D1656591AFEFEE90AAF90DB7900AD800D1F483FF + E50D75712A4C37E6649879F63B9C3E76CD99C14A6B2FC3C3F39719E006B0DE3A + 47BE174006BC9E698F2221E5D8CFF06C7F219CFFEFDF7F865FBFFF82D9BF7EFF + 01B3F58266A11AE038F32658C1FE7475B801303164B03A4C8661D791F30C257D + A709BB006633CC56980B0E9CBC8C6900BA0B9EEC2D60709E7D0BC305F37D4419 + 8E9DBB46D805F776E4826DFBFEE337C4057FFE81E57EFFF9CB70EECA2DDC2ED8 + 95A4C220EF3689E1EA867486A0158F315C30D19197E1CACD7BD85DF01BECDFBF + 0CAADE5319CEAF4E81DB0CB215C486A9B979EF216E17AC8B9065D00E98C97072 + 590243DCA657182E68B76067B8F7E809AA01CFA6D8A084B661E81C86C38BE2E0 + 36836C05B121B1F097E1C9F3E7A8063CE8B764D8B8F714DC1690644F9129DE54 + 886200454999120000B514248103E3F25A0000000049454E44AE426082} + Name = 'PngImage11' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F330000010A4944415478DA63FCFFFF3F0325 + 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8 + 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8 + 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1 + 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE + 46062FA001ABF88321E3FEFBEF40CE8DFF8CB80C00299C0FC40EA09007E22540 + 3C151A130B9E7FCF4878033440E7210E0370819F868CFF41368334BF0426AD47 + 1F19187EFD252129BFD060FC8FAE19EC622C5E900352CF8001F607C8D607B21F + 01D9EF61F2F35918FF8334A7FF27D10BB0509F018C0C103B03C805D1009D9F97 + 36069839440000000049454E44AE426082} + Name = 'PngImage12' + Background = clWindow + end + item + PngImage.Data = { + 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF + 61000000097048597300004E2000004E2001167D99DE00000A4D694343505068 + 6F746F73686F70204943432070726F66696C65000078DA9D53775893F7163EDF + F7650F5642D8F0B1976C81002223AC08C81059A21092006184101240C585880A + 561415119C4855C482D50A489D88E2A028B867418A885A8B555C38EE1FDCA7B5 + 7D7AEFEDEDFBD7FBBCE79CE7FCCE79CF0F8011122691E6A26A003952853C3AD8 + 1F8F4F48C4C9BD80021548E0042010E6CBC26705C50000F00379787E74B03FFC + 01AF6F00020070D52E2412C7E1FF83BA50265700209100E02212E70B01905200 + C82E54C81400C81800B053B3640A009400006C797C422200AA0D00ECF4493E05 + 00D8A993DC1700D8A21CA908008D0100992847240240BB00605581522C02C0C2 + 00A0AC40222E04C0AE018059B632470280BD0500768E58900F4060008099422C + CC0020380200431E13CD03204C03A030D2BFE0A95F7085B8480100C0CB95CD97 + 4BD23314B895D01A77F2F0E0E221E2C26CB142611729106609E4229C979B2313 + 48E7034CCE0C00001AF9D1C1FE383F90E7E6E4E1E666E76CEFF4C5A2FE6BF06F + 223E21F1DFFEBC8C020400104ECFEFDA5FE5E5D60370C701B075BF6BA95B00DA + 560068DFF95D33DB09A05A0AD07AF98B7938FC401E9EA150C83C1D1C0A0B0BED + 2562A1BD30E38B3EFF33E16FE08B7EF6FC401EFEDB7AF000719A4099ADC0A383 + FD71616E76AE528EE7CB0442316EF7E723FEC7857FFD8E29D1E234B15C2C158A + F15889B850224DC779B952914421C995E212E97F32F11F96FD0993770D00AC86 + 4FC04EB607B5CB6CC07EEE01028B0E58D27600407EF32D8C1A0B910010673432 + 79F7000093BFF98F402B0100CD97A4E30000BCE8185CA894174CC608000044A0 + 812AB041070CC114ACC00E9CC11DBCC01702610644400C24C03C104206E4801C + 0AA11896411954C03AD804B5B0031AA0119AE110B4C131380DE7E0125C81EB70 + 170660189EC218BC86090441C8081361213A8811628ED822CE0817998E042261 + 48349280A420E988145122C5C872A402A9426A915D4823F22D7214398D5C40FA + 90DBC820328AFC8ABC47319481B25103D4027540B9A81F1A8AC6A073D174340F + 5D8096A26BD11AB41E3D80B6A2A7D14BE87574007D8A8E6380D1310E668CD961 + 5C8C87456089581A26C71663E55835568F35631D583776151BC09E61EF082402 + 8B8013EC085E8410C26C82909047584C5843A825EC23B412BA085709838431C2 + 272293A84FB4257A12F9C478623AB1905846AC26EE211E219E255E270E135F93 + 48240EC992E44E0A21259032490B496B48DB482DA453A43ED210699C4C26EB90 + 6DC9DEE408B280AC209791B7900F904F92FBC9C3E4B7143AC588E24C09A22452 + A494124A35653FE504A59F324299A0AA51CDA99ED408AA883A9F5A496DA07650 + 2F5387A91334759A25CD9B1643CBA42DA3D5D09A696769F7682FE974BA09DD83 + 1E4597D097D26BE807E9E7E983F4770C0D860D83C7486228196B197B19A718B7 + 192F994CA605D39799C85430D7321B9967980F986F55582AF62A7C1591CA1295 + 3A9556957E95E7AA545573553FD579AA0B54AB550FAB5E567DA64655B350E3A9 + 09D416ABD5A91D55BBA936AECE5277528F50CF515FA3BE5FFD82FA630DB28685 + 46A08648A35463B7C6198D2116C63265F15842D6725603EB2C6B984D625BB2F9 + EC4C7605FB1B762F7B4C534373AA66AC6691669DE671CD010EC6B1E0F039D99C + 4ACE21CE0DCE7B2D032D3F2DB1D66AAD66AD7EAD37DA7ADABEDA62ED72ED16ED + EBDAEF75709D409D2C9DF53A6D3AF77509BA36BA51BA85BADB75CFEA3ED363EB + 79E909F5CAF50EE9DDD147F56DF4A3F517EAEFD6EFD11F373034083690196C31 + 3863F0CC9063E86B9869B8D1F084E1A811CB68BA91C468A3D149A327B826EE87 + 67E33578173E66AC6F1C62AC34DE65DC6B3C61626932DBA4C4A4C5E4BE29CD94 + 6B9A66BAD1B4D374CCCCC82CDCACD8ACC9EC8E39D59C6B9E61BED9BCDBFC8D85 + A5459CC54A8B368BC796DA967CCB05964D96F7AC98563E567956F556D7AC49D6 + 5CEB2CEB6DD6576C501B579B0C9B3A9BCBB6A8AD9BADC4769B6DDF14E2148F29 + D229F5536EDA31ECFCEC0AEC9AEC06ED39F661F625F66DF6CF1DCC1C121DD63B + 743B7C727475CC766C70BCEBA4E134C3A9C4A9C3E957671B67A1739DF33517A6 + 4B90CB1297769717536DA78AA76E9F7ACB95E51AEEBAD2B5D3F5A39BBB9BDCAD + D96DD4DDCC3DC57DABFB4D2E9B1BC95DC33DEF41F4F0F758E271CCE39DA79BA7 + C2F390E72F5E765E595EFBBD1E4FB39C269ED6306DC8DBC45BE0BDCB7B603A3E + 3D65FACEE9033EC63E029F7A9F87BEA6BE22DF3DBE237ED67E997E07FC9EFB3B + FACBFD8FF8BFE179F216F14E056001C101E501BD811A81B3036B031F049904A5 + 0735058D05BB062F0C3E15420C090D591F72936FC017F21BF96333DC672C9AD1 + 15CA089D155A1BFA30CC264C1ED6118E86CF08DF107E6FA6F94CE9CCB60888E0 + 476C88B81F69199917F97D14292A32AA2EEA51B453747174F72CD6ACE459FB67 + BD8EF18FA98CB93BDB6AB6727667AC6A6C526C63EC9BB880B8AAB8817887F845 + F1971274132409ED89E4C4D8C43D89E37302E76C9A339CE49A54967463AEE5DC + A2B917E6E9CECB9E773C593559907C3885981297B23FE5832042502F184FE5A7 + 6E4D1D13F2849B854F45BEA28DA251B1B7B84A3C92E69D5695F638DD3B7D43FA + 68864F4675C633094F522B79911992B923F34D5644D6DEACCFD971D92D39949C + 949CA3520D6996B42BD730B728B74F662B2B930DE479E66DCA1B9387CAF7E423 + F973F3DB156C854CD1A3B452AE500E164C2FA82B785B185B78B848BD485AD433 + DF66FEEAF9230B82167CBD90B050B8B0B3D8B87859F1E022BF45BB16238B5317 + 772E315D52BA647869F0D27DCB68CBB296FD50E2585255F26A79DCF28E5283D2 + A5A5432B82573495A994C9CB6EAEF45AB9631561956455EF6A97D55B567F2A17 + 955FAC70ACA8AEF8B046B8E6E2574E5FD57CF5796DDADADE4AB7CAEDEB48EBA4 + EB6EACF759BFAF4ABD6A41D5D086F00DAD1BF18DE51B5F6D4ADE74A17A6AF58E + CDB4CDCACD03356135ED5BCCB6ACDBF2A136A3F67A9D7F5DCB56FDADABB7BED9 + 26DAD6BFDD777BF30E831D153BDEEF94ECBCB52B78576BBD457DF56ED2EE82DD + 8F1A621BBABFE67EDDB847774FC59E8F7BA57B07F645EFEB6A746F6CDCAFBFBF + B2096D52368D1E483A70E59B806FDA9BED9A77B5705A2A0EC241E5C127DFA67C + 7BE350E8A1CEC3DCC3CDDF997FB7F508EB48792BD23ABF75AC2DA36DA03DA1BD + EFE88CA39D1D5E1D47BEB7FF7EEF31E36375C7358F579EA09D283DF1F9E48293 + E3A764A79E9D4E3F3DD499DC79F74CFC996B5D515DBD6743CF9E3F1774EE4CB7 + 5FF7C9F3DEE78F5DF0BC70F422F762DB25B74BAD3DAE3D477E70FDE148AF5B6F + EB65F7CBED573CAE74F44DEB3BD1EFD37FFA6AC0D573D7F8D72E5D9F79BDEFC6 + EC1BB76E26DD1CB825BAF5F876F6ED17770AEE4CDC5D7A8F78AFFCBEDAFDEA07 + FA0FEA7FB4FEB165C06DE0F860C060CFC3590FEF0E09879EFE94FFD387E1D247 + CC47D52346238D8F9D1F1F1B0D1ABDF264CE93E1A7B2A713CFCA7E56FF79EB73 + ABE7DFFDE2FB4BCF58FCD8F00BF98BCFBFAE79A9F372EFABA9AF3AC723C71FBC + CE793DF1A6FCADCEDB7DEFB8EFBADFC7BD1F9928FC40FE50F3D1FA63C7A7D04F + F73EE77CFEFC2FF784F3FB25D29F33000000EC4944415478DA63FCFFFF3F0325 + 8071F019C06838930548B503710C104B00F117203E02C4B9FFCFA7DF4151CBC8 + 88D50090E60A2C969D001A60498C01CFA136870235AC01F27580ECCB40FC07C8 + 67256800D4101E20E502C4D650DA00240E34809118177800A9E5402C806E30B1 + 06DC06522A403C0188F702F105207E4C8A0130014BA8E614209E4C8A01BBA1FE + 46062FA001AB0834E4012103400AE703B10328E4817809104F85C6C402A00189 + 0463011BF869C8F8FFFD7706863740FC1298B41E7D6460F8F59784A4FC4283F1 + 3FBA66B02BB078410E483D033AF50F90AD0F643F02B2DF633394242FE00200A6 + 308833CD7332EF0000000049454E44AE426082} + Name = 'PngImage13' + Background = clWindow + end> + Bitmap = {} + end end diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosClienteReport.pas b/Source/Modulos/Contratos de cliente/Views/uEditorContratosClienteReport.pas index 4c6201a..98862ab 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosClienteReport.pas +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosClienteReport.pas @@ -10,11 +10,35 @@ uses JvComponentBase, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, - pngimage, frxExportText, frxExportRTF, frxExportMail, frxExportXLS; + pngimage, frxExportText, frxExportRTF, frxExportMail, frxExportXLS, + frxExportCSV, uContratosClienteReportController; type TfEditorContratosClientePreview = class(TfEditorPreview, IEditorContratosClientePreview) TBXItem58: TTBXItem; + actAumentarTamLetra: TAction; + actDisminuirTamLetra: TAction; + TBXItem59: TTBXItem; + TBXItem60: TTBXItem; + TBXSeparatorItem21: TTBXSeparatorItem; + procedure actAumentarTamLetraExecute(Sender: TObject); + procedure actDisminuirTamLetraExecute(Sender: TObject); + + private + FVerCondiciones: boolean; + FTamLetra: Integer; + + function getTamLetra: Integer; + function getVerCondiciones: Boolean; + procedure setTamLetra(const Value: Integer); + procedure setVerCodiciones(const Value: Boolean); + + procedure refrescarInforme; + + public + property Vercondiciones: Boolean read getVerCondiciones write setVerCodiciones; + property TamLetra: Integer read getTamLetra write setTamLetra; + end; @@ -23,6 +47,69 @@ implementation {$R *.dfm} uses - uContratosClienteReportController, uIntegerListUtils, uDialogUtils; + cxControls, uROTypes, uFactuGES_App, uIntegerListUtils, uDialogUtils, uBizContratosCliente; + +procedure TfEditorContratosClientePreview.actAumentarTamLetraExecute(Sender: TObject); +begin + inherited; + //Si sale de los límites de tamaño de letra no hacemos nada + if (FTamLetra >= CTE_TamLetraMax) then + Exit; + + TamLetra := TamLetra + CTE_Aumento; + refrescarInforme; +end; + +procedure TfEditorContratosClientePreview.actDisminuirTamLetraExecute(Sender: TObject); +begin + inherited; + //Si sale de los límites de tamaño de letra no hacemos nada + if (TamLetra <= CTE_TamLetraMin) then + Exit; + + TamLetra := TamLetra - CTE_Aumento; + refrescarInforme; + +end; + + +function TfEditorContratosClientePreview.getTamLetra: Integer; +begin + Result := FTamLetra; +end; + +function TfEditorContratosClientePreview.getVerCondiciones: Boolean; +begin + Result:= FVerCondiciones; +end; + +procedure TfEditorContratosClientePreview.refrescarInforme; +var + AStream: Binary; + +begin + ShowHourglassCursor; + try + + AStream := (Controller as IContratosClienteReportController).DataModule.GetRptContratos(Self.ListaID, FVerCondiciones, FTamLetra); + LoadFromStream(AStream); + Report.ShowPreparedReport; + + finally + FreeAndNil(AStream); + HideHourglassCursor; + end; + +end; + +procedure TfEditorContratosClientePreview.setTamLetra(const Value: Integer); +begin + FTamLetra := Value; +end; + +procedure TfEditorContratosClientePreview.setVerCodiciones(const Value: Boolean); +begin + FVerCondiciones := Value; +end; end. diff --git a/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.dfm index cd5467d..8aabd94 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.dfm @@ -19,7 +19,7 @@ inherited frViewContratoCliente: TfrViewContratoCliente 817 491) object edtFechaContrato: TcxDBDateEdit - Left = 131 + Left = 198 Top = 82 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_CONTRATO' @@ -42,7 +42,7 @@ inherited frViewContratoCliente: TfrViewContratoCliente Width = 129 end object memObservaciones: TcxDBMemo - Left = 441 + Left = 467 Top = 334 Align = alClient DataBinding.DataField = 'OBSERVACIONES' @@ -59,12 +59,12 @@ inherited frViewContratoCliente: TfrViewContratoCliente StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 13 + TabOrder = 14 Height = 139 Width = 404 end object eReferencia: TcxDBTextEdit - Left = 131 + Left = 198 Top = 28 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'REFERENCIA' @@ -89,8 +89,8 @@ inherited frViewContratoCliente: TfrViewContratoCliente Width = 122 end object cbFormaPago: TcxDBLookupComboBox - Left = 131 - Top = 190 + Left = 198 + Top = 217 DataBinding.DataField = 'ID_FORMA_PAGO' DataBinding.DataSource = DADataSource Properties.KeyFieldNames = 'ID' @@ -115,21 +115,21 @@ inherited frViewContratoCliente: TfrViewContratoCliente StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 7 + TabOrder = 8 Width = 122 end object bFormasPago: TButton - Left = 279 - Top = 190 + Left = 305 + Top = 217 Width = 132 Height = 21 Caption = 'Ver las formas de pago...' - TabOrder = 8 + TabOrder = 9 OnClick = bFormasPagoClick end object cbSituacion: TcxDBImageComboBox - Left = 131 - Top = 136 + Left = 198 + Top = 163 DataBinding.DataField = 'SITUACION' DataBinding.DataSource = DADataSource Properties.Items = < @@ -154,12 +154,12 @@ inherited frViewContratoCliente: TfrViewContratoCliente StyleDisabled.LookAndFeel.NativeStyle = True StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 5 + TabOrder = 6 Width = 260 end object memFormaPago: TcxDBMemo Left = 22 - Top = 274 + Top = 301 Anchors = [akLeft, akTop, akRight, akBottom] DataBinding.DataField = 'FORMA_PAGO' DataBinding.DataSource = DADataSource @@ -175,35 +175,35 @@ inherited frViewContratoCliente: TfrViewContratoCliente StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 10 - Height = 100 - Width = 396 - end - object memPlazoEntrega: TcxDBMemo - Left = 22 - Top = 390 - Anchors = [akLeft, akTop, akRight, akBottom] - DataBinding.DataField = 'PLAZO_ENTREGA' - DataBinding.DataSource = DADataSource - Properties.ScrollBars = ssVertical - Style.BorderColor = clWindowFrame - Style.BorderStyle = ebs3D - Style.HotTrack = False - Style.LookAndFeel.Kind = lfStandard - Style.LookAndFeel.NativeStyle = True - StyleDisabled.LookAndFeel.Kind = lfStandard - StyleDisabled.LookAndFeel.NativeStyle = True - StyleFocused.LookAndFeel.Kind = lfStandard - StyleFocused.LookAndFeel.NativeStyle = True - StyleHot.LookAndFeel.Kind = lfStandard - StyleHot.LookAndFeel.NativeStyle = True TabOrder = 11 Height = 100 Width = 396 end + object memPlazoEntrega: TcxDBMemo + Left = 22 + Top = 403 + Anchors = [akLeft, akTop, akRight, akBottom] + DataBinding.DataField = 'PLAZO_ENTREGA' + DataBinding.DataSource = DADataSource + Properties.ScrollBars = ssVertical + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 12 + Height = 100 + Width = 396 + end object cbVendedor: TcxDBLookupComboBox - Left = 131 - Top = 217 + Left = 198 + Top = 244 DataBinding.DataField = 'ID_VENDEDOR' DataBinding.DataSource = DADataSource Properties.KeyFieldNames = 'ID' @@ -228,11 +228,11 @@ inherited frViewContratoCliente: TfrViewContratoCliente StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.Kind = lfStandard StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 9 + TabOrder = 10 Width = 27 end object cbTipoContrato: TcxDBComboBox - Left = 316 + Left = 355 Top = 82 DataBinding.DataField = 'TIPO_CONTRATO' DataBinding.DataSource = DADataSource @@ -258,7 +258,7 @@ inherited frViewContratoCliente: TfrViewContratoCliente Width = 113 end object edtlREF_CLIENTE: TcxDBTextEdit - Left = 131 + Left = 198 Top = 55 Anchors = [akLeft, akTop, akRight] AutoSize = False @@ -280,20 +280,20 @@ inherited frViewContratoCliente: TfrViewContratoCliente Width = 335 end inline frViewClienteContrato1: TfrViewClienteContrato - Left = 441 + Left = 467 Top = 28 Width = 366 Height = 270 - TabOrder = 12 + TabOrder = 13 ReadOnly = False - ExplicitLeft = 441 + ExplicitLeft = 467 ExplicitTop = 28 ExplicitWidth = 366 ExplicitHeight = 270 inherited dxLayoutControl1: TdxLayoutControl Width = 366 Height = 270 - ExplicitWidth = 366 + ExplicitWidth = 327 ExplicitHeight = 270 inherited edtlNombre: TcxDBTextEdit ExplicitWidth = 707 @@ -316,16 +316,12 @@ inherited frViewContratoCliente: TfrViewContratoCliente Width = 707 end inherited edtCodigoPostal: TcxDBTextEdit - Left = 262 - ExplicitLeft = 262 + Left = 236 + ExplicitLeft = 236 end inherited Button3: TBitBtn - Left = 152 - ExplicitLeft = 152 - end - inherited cxDBTextEdit1: TcxDBTextEdit - ExplicitWidth = 283 - Width = 283 + Left = 126 + ExplicitLeft = 126 end inherited dxLayoutControl1Group_Root: TdxLayoutGroup inherited dxLayoutControl1Item10: TdxLayoutItem @@ -336,8 +332,8 @@ inherited frViewContratoCliente: TfrViewContratoCliente end end object edtFechaDecision: TcxDBDateEdit - Left = 131 - Top = 109 + Left = 198 + Top = 136 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_DECISION' DataBinding.DataSource = DADataSource @@ -355,12 +351,12 @@ inherited frViewContratoCliente: TfrViewContratoCliente StyleDisabled.LookAndFeel.NativeStyle = True StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 4 + TabOrder = 5 Width = 115 end object edtFechaPrevMontaje: TcxDBDateEdit - Left = 131 - Top = 163 + Left = 198 + Top = 190 Anchors = [akLeft, akTop, akRight] DataBinding.DataField = 'FECHA_PREVISTA_MONTAJE' DataBinding.DataSource = DADataSource @@ -378,9 +374,32 @@ inherited frViewContratoCliente: TfrViewContratoCliente StyleDisabled.LookAndFeel.NativeStyle = True StyleFocused.LookAndFeel.NativeStyle = True StyleHot.LookAndFeel.NativeStyle = True - TabOrder = 6 + TabOrder = 7 Width = 295 end + object edtFechaUltPresentacion: TcxDBDateEdit + Left = 198 + Top = 109 + Anchors = [akLeft, akTop, akRight] + DataBinding.DataField = 'FECHA_ULT_PRESENTACION_CLIENTE' + DataBinding.DataSource = DADataSource + Properties.DateButtons = [btnToday] + Properties.ImmediatePost = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Color = clInfoBk + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.Shadow = False + Style.ButtonStyle = bts3D + Style.ButtonTransparency = ebtNone + Style.PopupBorderStyle = epbsFrame3D + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 4 + Width = 106 + end object dxLayoutControl1Group_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -411,20 +430,30 @@ inherited frViewContratoCliente: TfrViewContratoCliente object dxLayoutControl1Group11: TdxLayoutGroup ShowCaption = False Hidden = True - LayoutDirection = ldHorizontal ShowBorder = False - object dxLayoutControl1Item2: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Fecha contrato:' - Control = edtFechaContrato - ControlOptions.ShowBorder = False + object dxLayoutControl1Group10: TdxLayoutGroup + ShowCaption = False + Hidden = True + LayoutDirection = ldHorizontal + ShowBorder = False + object dxLayoutControl1Item2: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Fecha contrato:' + Control = edtFechaContrato + ControlOptions.ShowBorder = False + end + object dxLayoutControl1Item7: TdxLayoutItem + AutoAligns = [aaVertical] + AlignHorz = ahClient + Caption = 'Tipo contrato:' + Control = cbTipoContrato + ControlOptions.ShowBorder = False + end end - object dxLayoutControl1Item7: TdxLayoutItem - AutoAligns = [aaVertical] - AlignHorz = ahClient - Caption = 'Tipo contrato:' - Control = cbTipoContrato + object dxLayoutControl1Item15: TdxLayoutItem + Caption = 'Fecha '#250'ltima actualizaci'#243'n a cliente:' + Control = edtFechaUltPresentacion ControlOptions.ShowBorder = False end end @@ -451,7 +480,6 @@ inherited frViewContratoCliente: TfrViewContratoCliente ShowBorder = False object dxLayoutControl1Group9: TdxLayoutGroup ShowCaption = False - Visible = False Hidden = True LayoutDirection = ldHorizontal ShowBorder = False diff --git a/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas b/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas index 1d4b51c..d5a6dfe 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas @@ -71,6 +71,9 @@ type edtFechaDecision: TcxDBDateEdit; dxLayoutControl1Item14: TdxLayoutItem; edtFechaPrevMontaje: TcxDBDateEdit; + dxLayoutControl1Item15: TdxLayoutItem; + edtFechaUltPresentacion: TcxDBDateEdit; + dxLayoutControl1Group10: TdxLayoutGroup; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure bFormasPagoClick(Sender: TObject); diff --git a/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.dfm index db37f78..c129386 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.dfm @@ -22,6 +22,12 @@ inherited frViewContratosCliente: TfrViewContratosCliente Kind = skSum Position = spFooter Column = cxGridViewIMPORTE_TOTAL + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Position = spFooter + Column = cxGridViewIMPORTE_DESCUENTO end> DataController.Summary.FooterSummaryItems = < item @@ -33,6 +39,11 @@ inherited frViewContratosCliente: TfrViewContratosCliente Format = ',0.00 '#8364';-,0.00 '#8364 Kind = skSum Column = cxGridViewIMPORTE_TOTAL + end + item + Format = ',0.00 '#8364';-,0.00 '#8364 + Kind = skSum + Column = cxGridViewIMPORTE_DESCUENTO end> object cxGridViewLOPD: TcxGridDBColumn Caption = 'GDPR' @@ -102,6 +113,10 @@ inherited frViewContratosCliente: TfrViewContratosCliente BestFitMaxWidth = 25 Width = 105 end + object cxGridViewFECHA_ULT_PRESENTACION_CLIENTE: TcxGridDBColumn + Caption = 'Fecha '#250'lt. actualizaci'#243'n' + DataBinding.FieldName = 'FECHA_ULT_PRESENTACION_CLIENTE' + end object cxGridViewFECHA_DECISION: TcxGridDBColumn Caption = 'Fecha decisi'#243'n' DataBinding.FieldName = 'FECHA_DECISION' @@ -153,6 +168,25 @@ inherited frViewContratosCliente: TfrViewContratosCliente DataBinding.FieldName = 'PROVINCIA' Visible = False end + object cxGridViewIMPORTE_NETO: TcxGridDBColumn + Caption = 'Imp. Neto' + DataBinding.FieldName = 'IMPORTE_NETO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewDESCUENTO: TcxGridDBColumn + Caption = 'Dto' + DataBinding.FieldName = 'DESCUENTO' + HeaderAlignmentHorz = taRightJustify + end + object cxGridViewIMPORTE_DESCUENTO: TcxGridDBColumn + Caption = 'Imp. Dto' + DataBinding.FieldName = 'IMPORTE_DESCUENTO' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + HeaderAlignmentHorz = taRightJustify + end object cxGridViewIMPORTE_TOTAL: TcxGridDBColumn Caption = 'Importe total' DataBinding.FieldName = 'IMPORTE_TOTAL' diff --git a/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.pas b/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.pas index af255f2..957c6d4 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uViewContratosCliente.pas @@ -63,6 +63,10 @@ type TBXSeparatorItem3: TTBXSeparatorItem; TBXSeparatorItem4: TTBXSeparatorItem; cxGridViewPROCEDENCIA_CLIENTE: TcxGridDBColumn; + cxGridViewDESCUENTO: TcxGridDBColumn; + cxGridViewIMPORTE_DESCUENTO: TcxGridDBColumn; + cxGridViewIMPORTE_NETO: TcxGridDBColumn; + cxGridViewFECHA_ULT_PRESENTACION_CLIENTE: TcxGridDBColumn; procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas index 80fb046..7fbf665 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas @@ -1426,18 +1426,17 @@ var ARecibos: IBizRecibosCliente; ARecibosACuenta: IBizRecibosCliente; AFechaVencimiento: TDateTime; - i: Integer; ADiaVencimiento: Integer; ADiasMas: Integer; BSemaforo: Boolean; AImporteTotal: Currency; - aa: String; + i: Integer; begin if not Assigned(AFactura) then Exit; - aa:= ''; - i := 1; + + i := 1; AImporteTotal := AFactura.IMPORTE_TOTAL; AFormasPagoController := TFormasPagoController.Create; diff --git a/Source/Modulos/Facturas de cliente/FacturasCliente_Group.groupproj b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.groupproj index b9cb569..921363b 100644 --- a/Source/Modulos/Facturas de cliente/FacturasCliente_Group.groupproj +++ b/Source/Modulos/Facturas de cliente/FacturasCliente_Group.groupproj @@ -27,6 +27,7 @@ + @@ -211,6 +212,15 @@ + + + + + + + + + @@ -302,13 +312,13 @@ - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas index 172e235..69fe754 100644 --- a/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas +++ b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.pas @@ -31,7 +31,7 @@ implementation {$R *.dfm} uses - Forms, Dialogs, SysUtils, + Forms, Dialogs, SysUtils, uFactuGES_App, uFacturasClienteController, uBizFacturasCliente, uFacturasClienteViewRegister; function GetModule : TModuleController; @@ -57,6 +57,14 @@ constructor TPluginFacturasCliente.Create(AOwner: TComponent); begin inherited; uFacturasClienteViewRegister.RegisterViews; + + //El usuario vendedor y logistica será restringido + if ((AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PREFIL_LOGISTICA) OR (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_VENDEDOR)) then + begin + actFacturasCliente.Visible := False; + actFacturasCliente.Visible := False; + end; + end; destructor TPluginFacturasCliente.Destroy; diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm index d8515b1..4e7df42 100644 --- a/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm +++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptPresupuestosCliente_Server.dfm @@ -884,7 +884,7 @@ object RptPresupuestosCliente: TRptPresupuestosCliente PrintOptions.Printer = 'Por defecto' PrintOptions.PrintOnSheet = 0 ReportOptions.CreateDate = 39065.872423495400000000 - ReportOptions.LastChange = 41589.784037662040000000 + ReportOptions.LastChange = 45230.494198148150000000 ScriptLanguage = 'PascalScript' ShowProgress = False StoreInDFM = False diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dfm index f855826..450e36d 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.dfm @@ -1,22 +1,32 @@ inherited fEditorPresupuestosClientePreview: TfEditorPresupuestosClientePreview Caption = 'Previsualizar el pedidos proveedor' - ExplicitWidth = 320 - ExplicitHeight = 240 + ExplicitHeight = 553 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader + ExplicitTop = 89 inherited Image1: TImage ExplicitLeft = 768 end end inherited TBXDock: TTBXDock inherited TBXToolbar1: TTBXToolbar - ExplicitWidth = 540 + ExplicitWidth = 684 object TBXItem58: TTBXItem [1] Action = actExportarRTF DisplayMode = nbdmTextOnlyInMenus Images = SmallImages end + object TBXItem59: TTBXItem [19] + Action = actPrueba + end + end + end + inherited PreviewActionList: TActionList + object actPrueba: TAction + Category = 'Ver' + Caption = 'actPrueba' + OnExecute = actPruebaExecute end end end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.pas index bcecb69..90026be 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestosClienteReport.pas @@ -10,11 +10,15 @@ uses JvComponentBase, uEditorPreview, frxExportImage, frxExportPDF, frxDCtrl, frxClass, JvFormPlacement, ImgList, PngImageList, StdActns, ActnList, ComCtrls, TB2ExtItems, TBXExtItems, TBX, TB2Item, TB2Dock, TB2Toolbar, - pngimage, frxExportText, frxExportRTF, frxExportMail, frxExportXLS; + pngimage, frxExportText, frxExportRTF, frxExportMail, frxExportXLS, + frxExportCSV; type TfEditorPresupuestosClientePreview = class(TfEditorPreview, IEditorPresupuestosClientePreview) TBXItem58: TTBXItem; + actPrueba: TAction; + TBXItem59: TTBXItem; + procedure actPruebaExecute(Sender: TObject); end; @@ -25,4 +29,10 @@ implementation uses uPresupuestosClienteReportController, uIntegerListUtils, uDialogUtils; +procedure TfEditorPresupuestosClientePreview.actPruebaExecute(Sender: TObject); +begin + inherited; +/// +end; + end. diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL index d5b7ff0..3e94afd 100644 --- a/Source/Servicios/FactuGES.RODL +++ b/Source/Servicios/FactuGES.RODL @@ -304,6 +304,8 @@ + + @@ -314,6 +316,8 @@ + + @@ -921,6 +925,8 @@ + + diff --git a/Source/Servicios/FactuGES_Intf.pas b/Source/Servicios/FactuGES_Intf.pas index 82805ef..31b0168 100644 --- a/Source/Servicios/FactuGES_Intf.pas +++ b/Source/Servicios/FactuGES_Intf.pas @@ -516,8 +516,8 @@ type { IsrvFacturasCliente } IsrvFacturasCliente = interface(IDataAbstractService) ['{56B4FFF0-AB1B-46B2-BA16-ABD5360F6311}'] - function GenerateReport(const FacturaID: TIntegerArray; const VerDatosCliente: Boolean): Binary; - function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerDatosCliente: Boolean): Binary; + function GenerateReport(const FacturaID: TIntegerArray; const VerDatosCliente: Boolean; const EmpresaAcota: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerDatosCliente: Boolean; const EmpresaAcota: Boolean): Binary; end; { CosrvFacturasCliente } @@ -530,8 +530,8 @@ type protected function __GetInterfaceName:string; override; - function GenerateReport(const FacturaID: TIntegerArray; const VerDatosCliente: Boolean): Binary; - function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerDatosCliente: Boolean): Binary; + function GenerateReport(const FacturaID: TIntegerArray; const VerDatosCliente: Boolean; const EmpresaAcota: Boolean): Binary; + function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerDatosCliente: Boolean; const EmpresaAcota: Boolean): Binary; end; { IsrvFacturasProveedor } @@ -859,7 +859,7 @@ type { IsrvContratosCliente } IsrvContratosCliente = interface(IDataAbstractService) ['{ADBF1627-F507-4A0F-818E-38BAE28579B6}'] - function GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean; const TamLetra: Integer): Binary; function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; end; @@ -873,7 +873,7 @@ type protected function __GetInterfaceName:string; override; - function GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; + function GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean; const TamLetra: Integer): Binary; function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; end; @@ -1817,13 +1817,14 @@ begin result := 'srvFacturasCliente'; end; -function TsrvFacturasCliente_Proxy.GenerateReport(const FacturaID: TIntegerArray; const VerDatosCliente: Boolean): Binary; +function TsrvFacturasCliente_Proxy.GenerateReport(const FacturaID: TIntegerArray; const VerDatosCliente: Boolean; const EmpresaAcota: Boolean): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerateReport'); __Message.Write('FacturaID', TypeInfo(FactuGES_Intf.TIntegerArray), FacturaID, []); __Message.Write('VerDatosCliente', TypeInfo(Boolean), VerDatosCliente, []); + __Message.Write('EmpresaAcota', TypeInfo(Boolean), EmpresaAcota, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); @@ -1835,13 +1836,14 @@ begin end end; -function TsrvFacturasCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerDatosCliente: Boolean): Binary; +function TsrvFacturasCliente_Proxy.GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerDatosCliente: Boolean; const EmpresaAcota: Boolean): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInformeEnPDF'); __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); __Message.Write('VerDatosCliente', TypeInfo(Boolean), VerDatosCliente, []); + __Message.Write('EmpresaAcota', TypeInfo(Boolean), EmpresaAcota, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); @@ -2778,13 +2780,14 @@ begin result := 'srvContratosCliente'; end; -function TsrvContratosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; +function TsrvContratosCliente_Proxy.GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean; const TamLetra: Integer): Binary; begin try result := nil; __Message.InitializeRequestMessage(__TransportChannel, 'FactuGES', __InterfaceName, 'GenerarInforme'); __Message.Write('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); __Message.Write('VerCondiciones', TypeInfo(Boolean), VerCondiciones, []); + __Message.Write('TamLetra', TypeInfo(Integer), TamLetra, []); __Message.Finalize; __TransportChannel.Dispatch(__Message); diff --git a/Source/Servicios/FactuGES_Invk.pas b/Source/Servicios/FactuGES_Invk.pas index 4c878a8..a37ec87 100644 --- a/Source/Servicios/FactuGES_Invk.pas +++ b/Source/Servicios/FactuGES_Invk.pas @@ -934,10 +934,11 @@ begin end; procedure TsrvFacturasCliente_Invoker.Invoke_GenerateReport(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerateReport(const FacturaID: TIntegerArray; const VerDatosCliente: Boolean): Binary; } +{ function GenerateReport(const FacturaID: TIntegerArray; const VerDatosCliente: Boolean; const EmpresaAcota: Boolean): Binary; } var FacturaID: FactuGES_Intf.TIntegerArray; VerDatosCliente: Boolean; + EmpresaAcota: Boolean; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin @@ -946,8 +947,9 @@ begin try __Message.Read('FacturaID', TypeInfo(FactuGES_Intf.TIntegerArray), FacturaID, []); __Message.Read('VerDatosCliente', TypeInfo(Boolean), VerDatosCliente, []); + __Message.Read('EmpresaAcota', TypeInfo(Boolean), EmpresaAcota, []); - lResult := (__Instance as IsrvFacturasCliente).GenerateReport(FacturaID, VerDatosCliente); + lResult := (__Instance as IsrvFacturasCliente).GenerateReport(FacturaID, VerDatosCliente, EmpresaAcota); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvFacturasCliente', 'GenerateReportResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); @@ -966,10 +968,11 @@ begin end; procedure TsrvFacturasCliente_Invoker.Invoke_GenerarInformeEnPDF(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerDatosCliente: Boolean): Binary; } +{ function GenerarInformeEnPDF(const ListaID: TIntegerArray; const VerDatosCliente: Boolean; const EmpresaAcota: Boolean): Binary; } var ListaID: FactuGES_Intf.TIntegerArray; VerDatosCliente: Boolean; + EmpresaAcota: Boolean; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin @@ -978,8 +981,9 @@ begin try __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); __Message.Read('VerDatosCliente', TypeInfo(Boolean), VerDatosCliente, []); + __Message.Read('EmpresaAcota', TypeInfo(Boolean), EmpresaAcota, []); - lResult := (__Instance as IsrvFacturasCliente).GenerarInformeEnPDF(ListaID, VerDatosCliente); + lResult := (__Instance as IsrvFacturasCliente).GenerarInformeEnPDF(ListaID, VerDatosCliente, EmpresaAcota); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvFacturasCliente', 'GenerarInformeEnPDFResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); @@ -2289,10 +2293,11 @@ begin end; procedure TsrvContratosCliente_Invoker.Invoke_GenerarInforme(const __Instance:IInterface; const __Message:IROMessage; const __Transport:IROTransport; out __oResponseOptions:TROResponseOptions); -{ function GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean): Binary; } +{ function GenerarInforme(const ListaID: TIntegerArray; const VerCondiciones: Boolean; const TamLetra: Integer): Binary; } var ListaID: FactuGES_Intf.TIntegerArray; VerCondiciones: Boolean; + TamLetra: Integer; lResult: Binary; __lObjectDisposer: TROObjectDisposer; begin @@ -2301,8 +2306,9 @@ begin try __Message.Read('ListaID', TypeInfo(FactuGES_Intf.TIntegerArray), ListaID, []); __Message.Read('VerCondiciones', TypeInfo(Boolean), VerCondiciones, []); + __Message.Read('TamLetra', TypeInfo(Integer), TamLetra, []); - lResult := (__Instance as IsrvContratosCliente).GenerarInforme(ListaID, VerCondiciones); + lResult := (__Instance as IsrvContratosCliente).GenerarInforme(ListaID, VerCondiciones, TamLetra); __Message.InitializeResponseMessage(__Transport, 'FactuGES', 'srvContratosCliente', 'GenerarInformeResponse'); __Message.Write('Result', TypeInfo(Binary), lResult, []); diff --git a/Source/Servicios/RODLFile.res b/Source/Servicios/RODLFile.res index 86bfa9b..497d97a 100644 Binary files a/Source/Servicios/RODLFile.res and b/Source/Servicios/RODLFile.res differ diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index 7947910..666bf75 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -135,10 +135,10 @@ uses schFormasPagoServer_Intf in '..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas', schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', - schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas', - schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas', schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', - schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas'; + schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas', + schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas', + schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas'; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index 2415363..c570ce8 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -28,7 +28,7 @@ Delphi.Personality - FalseTrueFalseTrueFalse2260FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.2.6.0FactuGES v2(Servidor)2.2.6.0viernes, 03 de junio de 2022 11:16 + FalseTrueFalseTrueFalse2300FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.3.0.0FactuGES v2(Servidor)2.3.0.0jueves, 25 de abril de 2024 17:41 File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES_Server.dpr diff --git a/Source/Servidor/FactuGES_Server.res b/Source/Servidor/FactuGES_Server.res index feff8ee..c7a77d5 100644 Binary files a/Source/Servidor/FactuGES_Server.res and b/Source/Servidor/FactuGES_Server.res differ