diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql
index 14cd639d..57c873a7 100644
--- a/Database/scripts/factuges.sql
+++ b/Database/scripts/factuges.sql
@@ -638,7 +638,8 @@ CREATE TABLE CONFIGURACION (
ID TIPO_ID NOT NULL,
CODIGO VARCHAR(50) NOT NULL,
VALOR TIPO_CONCEPTO NOT NULL,
- ID_EMPRESA TIPO_ID
+ ID_EMPRESA TIPO_ID,
+ VALOR_BLOB TIPO_NOTAS
);
CREATE TABLE CONT_APUNTES (
diff --git a/Installer/librerias.txt b/Installer/librerias.txt
index 18520401..674a51f9 100644
--- a/Installer/librerias.txt
+++ b/Installer/librerias.txt
@@ -12,6 +12,7 @@ cxPageControlD11.bpl
cxTreeListD11.bpl
DataAbstract_Core_D11.bpl
dclcxLibraryD11.bpl
+dxNavBarD11.bpl
dxBarD11.bpl
dxBarExtItemsD11.bpl
dxComnD11.bpl
@@ -74,4 +75,5 @@ vcljpg100.bpl
vclshlctrls100.bpl
vclsmp100.bpl
vclx100.bpl
-xmlrtl100.bpl
\ No newline at end of file
+xmlrtl100.bpl
+dcldxCoreD11.bpl
\ No newline at end of file
diff --git a/Source/ApplicationBase/ApplicationBase.dpk b/Source/ApplicationBase/ApplicationBase.dpk
index 1e59cbb1..93c02c0b 100644
--- a/Source/ApplicationBase/ApplicationBase.dpk
+++ b/Source/ApplicationBase/ApplicationBase.dpk
@@ -48,7 +48,18 @@ requires
vclactnband,
designide,
ccpackD11,
- dxNavBarD11;
+ dxNavBarD11,
+ JvCoreD11R,
+ Jcl,
+ JclVcl,
+ JvMMD11R,
+ JvStdCtrlsD11R,
+ JvSystemD11R,
+ JvCtrlsD11R,
+ dxCoreD11,
+ cxEditorsD11,
+ cxDataD11,
+ cxExtEditorsD11;
contains
uFactuGES_App in 'uFactuGES_App.pas',
@@ -111,13 +122,13 @@ contains
uDataModuleProvinciasPoblaciones in 'ProvinciasPoblaciones\Data\uDataModuleProvinciasPoblaciones.pas',
uProvinciasPoblacionesController in 'ProvinciasPoblaciones\Controller\uProvinciasPoblacionesController.pas',
uConfiguracionController in 'Configuracion\Controller\uConfiguracionController.pas',
- uViewConfiguracionBase in 'Configuracion\Views\uViewConfiguracionBase.pas' {frViewConfiguracionBase: TCustomView},
uEditorConfiguracion in 'Configuracion\Views\uEditorConfiguracion.pas' {fConfiguracionEditor},
uViewConfiguracionGeneral in 'Configuracion\Views\uViewConfiguracionGeneral.pas' {frViewConfiguracionGeneral: TFrame},
uIViewConfiguracionBase in 'Configuracion\Controller\Views\uIViewConfiguracionBase.pas',
schUsuariosClient_Intf in 'Usuarios\Model\schUsuariosClient_Intf.pas',
schUsuariosServer_Intf in 'Usuarios\Model\schUsuariosServer_Intf.pas',
uEditorElegirEjercicios in 'Ejercicios\Views\uEditorElegirEjercicios.pas' {fEditorElegirEjercicios: TCustomEditor},
- uIEditorElegirEjercicios in 'Ejercicios\Controller\View\uIEditorElegirEjercicios.pas';
+ uIEditorElegirEjercicios in 'Ejercicios\Controller\View\uIEditorElegirEjercicios.pas',
+ uViewConfiguracionBase in 'Configuracion\Views\uViewConfiguracionBase.pas' {frViewConfiguracionBase: TFrame};
end.
diff --git a/Source/ApplicationBase/ApplicationBase.dproj b/Source/ApplicationBase/ApplicationBase.dproj
index 4d84e7ea..7c7c24db 100644
--- a/Source/ApplicationBase/ApplicationBase.dproj
+++ b/Source/ApplicationBase/ApplicationBase.dproj
@@ -56,42 +56,50 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- TCustomView
-
+
TFrame
+
+
+
+
+
+
diff --git a/Source/ApplicationBase/Configuracion/Controller/uConfiguracionController.pas b/Source/ApplicationBase/Configuracion/Controller/uConfiguracionController.pas
index 9ebe67bc..4426ab86 100644
--- a/Source/ApplicationBase/Configuracion/Controller/uConfiguracionController.pas
+++ b/Source/ApplicationBase/Configuracion/Controller/uConfiguracionController.pas
@@ -4,9 +4,12 @@ interface
uses
Classes, SysUtils, uDADataTable, uControllerBase, uIViewConfiguracionBase,
- uViewConfiguracionBase, uClassRegistryUtils, JvAppXMLStorage;
+ uViewConfiguracionBase, uClassRegistryUtils, JvAppXMLStorage,
+ uROTypes, uDataModuleConfiguracion;
type
+ TEnumAlmacen = (teXML, teBD);
+
IPluginConfigurable = interface
['{30063608-BFD2-47B9-80FA-F10A5067AF82}']
function GetVistaConfiguracion : TClass;
@@ -16,39 +19,40 @@ type
IConfiguracionController = interface(IControllerBase)
['{F29215BA-0D34-4AE9-B9A9-C80ABF49A81D}']
procedure ConfigurarAplicacion;
- procedure AplicarConfiguracion;
+ procedure AplicarConfiguracion;
procedure SalvarConfiguracion;
procedure CargarConfiguracion;
- function GetSettingAsString(const ASettingName: String; const ADefaultValue : String = ''): String;
- function GetSettingAsInteger(const ASettingName: String; const ADefaultValue : Integer = 0): Integer;
- function GetSettingAsFloat(const ASettingName: String; const ADefaultValue : Float = 0): Float;
- function GetSettingAsBoolean(const ASettingName: String; const ADefaultValue : Boolean = False): Boolean;
+ function GetSettingAsString(const AFuente: TEnumAlmacen; const ASettingName: String; const ADefaultValue : String = ''): String;
+ function GetSettingAsInteger(const AFuente: TEnumAlmacen; const ASettingName: String; const ADefaultValue : Integer = 0): Integer;
+ function GetSettingAsFloat(const AFuente: TEnumAlmacen; const ASettingName: String; const ADefaultValue : Float = 0): Float;
+ function GetSettingAsBoolean(const AFuente: TEnumAlmacen; const ASettingName: String; const ADefaultValue : Boolean = False): Boolean;
- procedure SetSettingAsString(const ASettingName: String; AValue : String);
- procedure SetSettingAsInteger(const ASettingName: String; AValue : Integer);
- procedure SetSettingAsFloat(const ASettingName: String; AValue : Float);
- procedure SetSettingAsBoolean(const ASettingName: String; AValue : Boolean);
+ procedure SetSettingAsString(const AFuente: TEnumAlmacen; const ASettingName: String; AValue : String);
+ procedure SetSettingAsInteger(const AFuente: TEnumAlmacen; const ASettingName: String; AValue : Integer);
+ procedure SetSettingAsFloat(const AFuente: TEnumAlmacen; const ASettingName: String; AValue : Float);
+ procedure SetSettingAsBoolean(const AFuente: TEnumAlmacen; const ASettingName: String; AValue : Boolean);
end;
TConfiguracionController = class(TControllerBase, IConfiguracionController)
private
FAppXMLFileStorage : TJvAppXMLFileStorage;
+ FAppDBStorage : TdmConfiguracion;
public
procedure SalvarConfiguracion;
procedure AplicarConfiguracion;
procedure CargarConfiguracion;
procedure ConfigurarAplicacion;
- function GetSettingAsString(const ASettingName: String; const ADefaultValue : String = ''): String;
- function GetSettingAsInteger(const ASettingName: String; const ADefaultValue : Integer = 0): Integer;
- function GetSettingAsFloat(const ASettingName: String; const ADefaultValue : Float = 0): Float;
- function GetSettingAsBoolean(const ASettingName: String; const ADefaultValue : Boolean = False): Boolean;
+ function GetSettingAsString(const AFuente: TEnumAlmacen; const ASettingName: String; const ADefaultValue : String = ''): String;
+ function GetSettingAsInteger(const AFuente: TEnumAlmacen; const ASettingName: String; const ADefaultValue : Integer = 0): Integer;
+ function GetSettingAsFloat(const AFuente: TEnumAlmacen; const ASettingName: String; const ADefaultValue : Float = 0): Float;
+ function GetSettingAsBoolean(const AFuente: TEnumAlmacen; const ASettingName: String; const ADefaultValue : Boolean = False): Boolean;
- procedure SetSettingAsString(const ASettingName: String; AValue : String);
- procedure SetSettingAsInteger(const ASettingName: String; AValue : Integer);
- procedure SetSettingAsFloat(const ASettingName: String; AValue : Float);
- procedure SetSettingAsBoolean(const ASettingName: String; AValue : Boolean);
+ procedure SetSettingAsString(const AFuente: TEnumAlmacen; const ASettingName: String; AValue : String);
+ procedure SetSettingAsInteger(const AFuente: TEnumAlmacen; const ASettingName: String; AValue : Integer);
+ procedure SetSettingAsFloat(const AFuente: TEnumAlmacen; const ASettingName: String; AValue : Float);
+ procedure SetSettingAsBoolean(const AFuente: TEnumAlmacen; const ASettingName: String; AValue : Boolean);
constructor Create; override;
destructor Destroy; override;
@@ -57,7 +61,7 @@ type
implementation
uses
- Forms, uEditorConfiguracion, uViewConfiguracionGeneral, uDMBase,
+ Forms, uEditorConfiguracion, uViewConfiguracionGeneral, uDMBase,
JvAppStorage, uAppInfoUtils, Controls, uViewConfiguracionRegistryUtils;
const
@@ -121,37 +125,54 @@ begin
FileName := 'Rodax Software' + PathDelim + GetAppName + PathDelim + CONFIG_INI_FILE;
end;
+ FAppDBStorage := dmConfiguracion;
+
ViewConfiguracionRegistry.RegisterClass(TfrViewConfiguracionGeneral, 'General');
end;
destructor TConfiguracionController.Destroy;
begin
FreeANDNIL(FAppXMLFileStorage);
+
+ FAppDBStorage := NIL;
+
inherited;
end;
-function TConfiguracionController.GetSettingAsBoolean(
+function TConfiguracionController.GetSettingAsBoolean(const AFuente: TEnumAlmacen;
const ASettingName: String; const ADefaultValue: Boolean): Boolean;
begin
- Result := FAppXMLFileStorage.ReadBoolean(ASettingName, ADefaultValue)
+ case AFuente of
+ teXML: Result := FAppXMLFileStorage.ReadBoolean(ASettingName, ADefaultValue);
+ teBD: Result := FAppDBStorage.DarValor(ASettingName);
+ end;
end;
-function TConfiguracionController.GetSettingAsFloat(const ASettingName: String;
+function TConfiguracionController.GetSettingAsFloat(const AFuente: TEnumAlmacen; const ASettingName: String;
const ADefaultValue: Float): Float;
begin
- Result := FAppXMLFileStorage.ReadFloat(ASettingName, ADefaultValue);
+ case AFuente of
+ teXML: Result := FAppXMLFileStorage.ReadFloat(ASettingName, ADefaultValue);
+ teBD: Result := FAppDBStorage.DarValor(ASettingName);
+ end;
end;
-function TConfiguracionController.GetSettingAsInteger(
+function TConfiguracionController.GetSettingAsInteger(const AFuente: TEnumAlmacen;
const ASettingName: String; const ADefaultValue: Integer): Integer;
begin
- Result := FAppXMLFileStorage.ReadInteger(ASettingName, ADefaultValue);
+ case AFuente of
+ teXML: Result := FAppXMLFileStorage.ReadInteger(ASettingName, ADefaultValue);
+ teBD: Result := FAppDBStorage.DarValor(ASettingName);
+ end;
end;
-function TConfiguracionController.GetSettingAsString(const ASettingName,
+function TConfiguracionController.GetSettingAsString(const AFuente: TEnumAlmacen; const ASettingName,
ADefaultValue: String): String;
begin
- Result := FAppXMLFileStorage.ReadString(ASettingName, ADefaultValue);
+ case AFuente of
+ teXML: Result := FAppXMLFileStorage.ReadString(ASettingName, ADefaultValue);
+ teBD: Result := FAppDBStorage.DarValor(ASettingName);
+ end;
end;
procedure TConfiguracionController.SalvarConfiguracion;
@@ -159,28 +180,40 @@ begin
FAppXMLFileStorage.Flush;
end;
-procedure TConfiguracionController.SetSettingAsBoolean(
+procedure TConfiguracionController.SetSettingAsBoolean(const AFuente: TEnumAlmacen;
const ASettingName: String; AValue: Boolean);
begin
- FAppXMLFileStorage.WriteBoolean(ASettingName, AValue);
+ case AFuente of
+ teXML: FAppXMLFileStorage.WriteBoolean(ASettingName, AValue);
+ teBD: FAppDBStorage.GuardarValor(ASettingName, AValue);
+ end;
end;
-procedure TConfiguracionController.SetSettingAsFloat(const ASettingName: String;
+procedure TConfiguracionController.SetSettingAsFloat(const AFuente: TEnumAlmacen; const ASettingName: String;
AValue: Float);
begin
- FAppXMLFileStorage.WriteFloat(ASettingName, AValue);
+ case AFuente of
+ teXML: FAppXMLFileStorage.WriteFloat(ASettingName, AValue);
+ teBD: FAppDBStorage.GuardarValor(ASettingName, AValue);
+ end;
end;
-procedure TConfiguracionController.SetSettingAsInteger(
+procedure TConfiguracionController.SetSettingAsInteger(const AFuente: TEnumAlmacen;
const ASettingName: String; AValue: Integer);
begin
- FAppXMLFileStorage.WriteInteger(ASettingName, AValue);
+ case AFuente of
+ teXML: FAppXMLFileStorage.WriteInteger(ASettingName, AValue);
+ teBD: FAppDBStorage.GuardarValor(ASettingName, AValue);
+ end;
end;
-procedure TConfiguracionController.SetSettingAsString(
+procedure TConfiguracionController.SetSettingAsString(const AFuente: TEnumAlmacen;
const ASettingName: String; AValue: String);
begin
- FAppXMLFileStorage.WriteString(ASettingName, AValue);
+ case AFuente of
+ teXML: FAppXMLFileStorage.WriteString(ASettingName, AValue);
+ teBD: FAppDBStorage.GuardarValor(ASettingName, AValue);
+ end;
end;
diff --git a/Source/ApplicationBase/Configuracion/Views/uEditorConfiguracion.dfm b/Source/ApplicationBase/Configuracion/Views/uEditorConfiguracion.dfm
index 1e6bad15..dd0371b4 100644
--- a/Source/ApplicationBase/Configuracion/Views/uEditorConfiguracion.dfm
+++ b/Source/ApplicationBase/Configuracion/Views/uEditorConfiguracion.dfm
@@ -3,7 +3,7 @@ object fConfiguracionEditor: TfConfiguracionEditor
Top = 0
Caption = 'Configuraci'#243'n de FactuGES'
ClientHeight = 524
- ClientWidth = 635
+ ClientWidth = 733
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -32,7 +32,7 @@ object fConfiguracionEditor: TfConfiguracionEditor
TabOrder = 0
View = 17
ViewStyle.ColorSchemeName = 'Blue'
- OptionsBehavior.SideBar.AllowSelectLinks = True
+ OptionsBehavior.Common.AllowSelectLinks = True
OptionsView.Common.ShowGroupCaptions = False
OptionsView.NavigationPane.ShowHeader = False
OptionsView.NavigationPane.ShowOverflowPanel = False
@@ -47,16 +47,17 @@ object fConfiguracionEditor: TfConfiguracionEditor
object Panel2: TPanel
Left = 0
Top = 482
- Width = 635
+ Width = 733
Height = 42
Align = alBottom
BevelOuter = bvNone
TabOrder = 1
+ ExplicitWidth = 635
DesignSize = (
- 635
+ 733
42)
object bCancelar: TButton
- Left = 552
+ Left = 650
Top = 10
Width = 75
Height = 25
@@ -65,9 +66,10 @@ object fConfiguracionEditor: TfConfiguracionEditor
Caption = '&Cancelar'
ModalResult = 2
TabOrder = 0
+ ExplicitLeft = 552
end
object bAceptar: TButton
- Left = 471
+ Left = 569
Top = 10
Width = 75
Height = 25
@@ -75,13 +77,14 @@ object fConfiguracionEditor: TfConfiguracionEditor
Caption = '&Aceptar'
ModalResult = 1
TabOrder = 1
+ ExplicitLeft = 471
end
end
object PageControlMain: TPageControl
AlignWithMargins = True
Left = 166
Top = 6
- Width = 461
+ Width = 559
Height = 468
Margins.Left = 4
Margins.Top = 6
@@ -89,5 +92,6 @@ object fConfiguracionEditor: TfConfiguracionEditor
Margins.Bottom = 8
Align = alClient
TabOrder = 2
+ ExplicitWidth = 461
end
end
diff --git a/Source/ApplicationBase/Configuracion/Views/uViewConfiguracionGeneral.dfm b/Source/ApplicationBase/Configuracion/Views/uViewConfiguracionGeneral.dfm
index 2cb891ee..f64ac370 100644
--- a/Source/ApplicationBase/Configuracion/Views/uViewConfiguracionGeneral.dfm
+++ b/Source/ApplicationBase/Configuracion/Views/uViewConfiguracionGeneral.dfm
@@ -1,17 +1,19 @@
inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
- Height = 375
inherited Panel1: TPanel
+ Width = 424
inherited Label3: TLabel
- Width = 429
Caption = 'Apariencia'
ExplicitWidth = 63
end
end
+ inherited JvGradientHeaderPanel1: TJvGradientHeaderPanel
+ Width = 434
+ end
object Panel2: TPanel
AlignWithMargins = True
Left = 5
Top = 142
- Width = 441
+ Width = 424
Height = 22
Margins.Left = 5
Margins.Top = 0
@@ -35,11 +37,10 @@ inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
ParentBackground = False
ParentFont = False
TabOrder = 2
- ExplicitTop = 109
object Label2: TLabel
Left = 6
Top = 4
- Width = 429
+ Width = 412
Height = 14
Align = alTop
Caption = 'Seguridad'
@@ -50,7 +51,7 @@ inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
AlignWithMargins = True
Left = 5
Top = 68
- Width = 441
+ Width = 424
Height = 74
Margins.Left = 5
Margins.Top = 0
@@ -91,7 +92,7 @@ inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
AlignWithMargins = True
Left = 5
Top = 164
- Width = 441
+ Width = 424
Height = 72
Margins.Left = 5
Margins.Top = 0
@@ -101,7 +102,6 @@ inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
BevelOuter = bvNone
ParentColor = True
TabOrder = 4
- ExplicitTop = 131
object Label4: TLabel
Left = 17
Top = 43
@@ -140,7 +140,7 @@ inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
AlignWithMargins = True
Left = 5
Top = 236
- Width = 441
+ Width = 424
Height = 22
Margins.Left = 5
Margins.Top = 0
@@ -164,11 +164,10 @@ inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
ParentBackground = False
ParentFont = False
TabOrder = 5
- ExplicitTop = 203
object Label5: TLabel
Left = 6
Top = 4
- Width = 429
+ Width = 412
Height = 14
Align = alTop
Caption = 'Usuarios'
@@ -179,7 +178,7 @@ inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
AlignWithMargins = True
Left = 5
Top = 258
- Width = 441
+ Width = 424
Height = 72
Margins.Left = 5
Margins.Top = 0
@@ -189,7 +188,6 @@ inherited frViewConfiguracionGeneral: TfrViewConfiguracionGeneral
BevelOuter = bvNone
ParentColor = True
TabOrder = 6
- ExplicitTop = 225
object lblLongMinPass: TLabel
Left = 17
Top = 43
diff --git a/Source/ApplicationBase/Configuracion/Views/uViewConfiguracionGeneral.pas b/Source/ApplicationBase/Configuracion/Views/uViewConfiguracionGeneral.pas
index 7056f649..1d3ce9d7 100644
--- a/Source/ApplicationBase/Configuracion/Views/uViewConfiguracionGeneral.pas
+++ b/Source/ApplicationBase/Configuracion/Views/uViewConfiguracionGeneral.pas
@@ -44,7 +44,7 @@ type
implementation
uses
- uFactuGES_App, uDMBase;
+ uFactuGES_App, uDMBase, uConfiguracionController;
{$R *.dfm}
@@ -55,11 +55,11 @@ procedure TfrViewConfiguracionGeneral.CargarValores;
ASkinName : String;}
begin
inherited;
- edtLongMinPass.Text := AppFactuGES.Configuracion.GetSettingAsString('MinPasswordLength', '3');
- edtNumIntentos.Text := AppFactuGES.Configuracion.GetSettingAsString('MaxLoginAttempts', '3');
- cbPassObligatoria.Checked := AppFactuGES.Configuracion.GetSettingAsBoolean('ForcePassword', True);
+ edtLongMinPass.Text := AppFactuGES.Configuracion.GetSettingAsString(teXML, 'MinPasswordLength', '3');
+ edtNumIntentos.Text := AppFactuGES.Configuracion.GetSettingAsString(teXML, 'MaxLoginAttempts', '3');
+ cbPassObligatoria.Checked := AppFactuGES.Configuracion.GetSettingAsBoolean(teXML, 'ForcePassword', True);
- cbMostrarMenu.Checked := AppFactuGES.Configuracion.GetSettingAsBoolean('MostrarBarraMenus', True);
+ cbMostrarMenu.Checked := AppFactuGES.Configuracion.GetSettingAsBoolean(teXML, 'MostrarBarraMenus', True);
{cbEsquemaColor.Items.Add('Usar estilo nativo de Windows');
cbEsquemaColor.Items.AddStrings(dmBase.DarListaSkins);
@@ -86,11 +86,11 @@ procedure TfrViewConfiguracionGeneral.GuardarValores;
ASkinName : String;}
begin
inherited;
- AppFactuGES.Configuracion.SetSettingAsString('MinPasswordLength', edtLongMinPass.Text);
- AppFactuGES.Configuracion.SetSettingAsString('MaxLoginAttempts', edtNumIntentos.Text);
- AppFactuGES.Configuracion.SetSettingAsBoolean('ForcePassword', cbPassObligatoria.Checked);
+ AppFactuGES.Configuracion.SetSettingAsString(teXML, 'MinPasswordLength', edtLongMinPass.Text);
+ AppFactuGES.Configuracion.SetSettingAsString(teXML, 'MaxLoginAttempts', edtNumIntentos.Text);
+ AppFactuGES.Configuracion.SetSettingAsBoolean(teXML, 'ForcePassword', cbPassObligatoria.Checked);
- AppFactuGES.Configuracion.SetSettingAsBoolean('MostrarBarraMenus', cbMostrarMenu.Checked);
+ AppFactuGES.Configuracion.SetSettingAsBoolean(teXML, 'MostrarBarraMenus', cbMostrarMenu.Checked);
{if cbEsquemaColor.ItemIndex = 0 then
ASkinName := ''
diff --git a/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas
index e1985bc2..41d28cce 100644
--- a/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas
+++ b/Source/ApplicationBase/Usuarios/Controller/uUsuariosController.pas
@@ -175,7 +175,7 @@ uses
uDAInterfaces, uDataTableUtils, uDialogUtils, uFactuGES_App, Dialogs,
uDateUtils, uROTypes, DateUtils, Controls, Windows, uIEditorLogin,
uIEditorUsuarios, uIEditorUsuario, uIEditorPerfilesUsuario,
- uIEditorPerfilUsuario, uEditorCambiarPassword;
+ uIEditorPerfilUsuario, uEditorCambiarPassword, uConfiguracionController;
{ TUsuariosController }
@@ -678,9 +678,9 @@ procedure TUsuariosController.RecogerConfiguracion;
begin
with FUserControl do
begin
- Login.MaxLoginAttempts := AppFactuGES.Configuracion.GetSettingAsInteger('MaxLoginAttempts', 3);
- UserPasswordChange.ForcePassword := AppFactuGES.Configuracion.GetSettingAsBoolean('ForcePassword', True);
- UserPasswordChange.MinPasswordLength := AppFactuGES.Configuracion.GetSettingAsInteger('MinPasswordLength', 3);
+ Login.MaxLoginAttempts := AppFactuGES.Configuracion.GetSettingAsInteger(teXML, 'MaxLoginAttempts', 3);
+ UserPasswordChange.ForcePassword := AppFactuGES.Configuracion.GetSettingAsBoolean(teXML, 'ForcePassword', True);
+ UserPasswordChange.MinPasswordLength := AppFactuGES.Configuracion.GetSettingAsInteger(teXML, 'MinPasswordLength', 3);
end;
end;
diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj
index 057ca2e1..426db58c 100644
--- a/Source/Base/Base.dproj
+++ b/Source/Base/Base.dproj
@@ -58,55 +58,55 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TForm
diff --git a/Source/Base/Configuracion/uDataModuleConfiguracion.pas b/Source/Base/Configuracion/uDataModuleConfiguracion.pas
index 6c6beb2e..853a6f5f 100644
--- a/Source/Base/Configuracion/uDataModuleConfiguracion.pas
+++ b/Source/Base/Configuracion/uDataModuleConfiguracion.pas
@@ -4,8 +4,8 @@ interface
uses
SysUtils, Classes, uRORemoteService, uDADataTable,
- uDABINAdapter, uROClient, IniFiles,
- uDADataStreamer;
+ uDABINAdapter, uROClient, IniFiles, Variants,
+ uDADataStreamer, uROTypes;
const
SERVER_URL = 'http://localhost:8099/bin';
@@ -19,6 +19,7 @@ type
FIniFile : TIniFile;
public
function DarValor(const CODIGO: String; const ValorPorDefecto: String = ''): Variant;
+ procedure GuardarValor(const CODIGO: String; const Valor: Variant);
procedure LeerConfiguracion;
procedure SalvarConfiguracion;
constructor Create(AOwner: TComponent); override;
@@ -33,7 +34,7 @@ implementation
{$R *.dfm}
uses
- Forms, FactuGES_Intf, Variants, uDataModuleConexion,
+ Forms, FactuGES_Intf, uDataModuleConexion,
uSistemaFunc, SHFolder, uAppInfoUtils;
const
@@ -68,6 +69,13 @@ begin
inherited;
end;
+procedure TdmConfiguracion.GuardarValor(const CODIGO: String; const Valor: Variant);
+begin
+ RORemoteService.Channel := dmConexion.ROChannel;
+ RORemoteService.Message := dmConexion.ROMessage;
+ (RORemoteService as IsrvConfiguracion).GuardarValor(CODIGO, Valor);
+end;
+
procedure TdmConfiguracion.LeerConfiguracion;
begin
with FIniFile do
diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj
index f7de5674..a15e6211 100644
--- a/Source/Cliente/FactuGES.dproj
+++ b/Source/Cliente/FactuGES.dproj
@@ -51,8 +51,7 @@
Delphi.Personality
VCLApplication
-FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2440FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.4.4.0FactuGESFactuGES2.4.4.0
-
+FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2450FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.4.5.0FactuGESFactuGES2.4.5.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.rc b/Source/Cliente/FactuGES.rc
index f11b9e9e..960a36d5 100644
--- a/Source/Cliente/FactuGES.rc
+++ b/Source/Cliente/FactuGES.rc
@@ -1,7 +1,7 @@
MAINICON ICON "C:\Codigo Acana\Resources\Iconos\Factuges.ico"
1 VERSIONINFO
-FILEVERSION 2,4,4,0
-PRODUCTVERSION 2,4,4,0
+FILEVERSION 2,4,5,0
+PRODUCTVERSION 2,4,5,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
@@ -13,10 +13,10 @@ BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "CompanyName", "Rodax Software S.L.\0"
- VALUE "FileVersion", "2.4.4.0\0"
+ VALUE "FileVersion", "2.4.5.0\0"
VALUE "InternalName", "FactuGES\0"
VALUE "ProductName", "FactuGES\0"
- VALUE "ProductVersion", "2.4.4.0\0"
+ VALUE "ProductVersion", "2.4.5.0\0"
END
END
BLOCK "VarFileInfo"
diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res
index 70d0df22..043cf3f8 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 87df91ca..f44e3be7 100644
--- a/Source/GUIBase/GUIBase.dproj
+++ b/Source/GUIBase/GUIBase.dproj
@@ -58,34 +58,34 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res
index 1641339f..8b251f31 100644
Binary files a/Source/GUIBase/GUIBase.res and b/Source/GUIBase/GUIBase.res differ
diff --git a/Source/Informes/InfContratoCliente.fr3 b/Source/Informes/InfContratoCliente.fr3
index 590b77a1..95663798 100644
--- a/Source/Informes/InfContratoCliente.fr3
+++ b/Source/Informes/InfContratoCliente.fr3
@@ -1,5 +1,5 @@
-
+
@@ -9,7 +9,7 @@
-
+
@@ -64,16 +64,16 @@
-
+
-
-
+
+
-
-
-
+
+
+
diff --git a/Source/Modulos/Articulos/Controller/Articulos_controller.dproj b/Source/Modulos/Articulos/Controller/Articulos_controller.dproj
index a3202e7f..30a7bf31 100644
--- a/Source/Modulos/Articulos/Controller/Articulos_controller.dproj
+++ b/Source/Modulos/Articulos/Controller/Articulos_controller.dproj
@@ -54,11 +54,11 @@
MainSource
-
-
-
-
-
+
+
+
+
+
diff --git a/Source/Modulos/Articulos/Data/Articulos_data.dproj b/Source/Modulos/Articulos/Data/Articulos_data.dproj
index 5846d795..126ef528 100644
--- a/Source/Modulos/Articulos/Data/Articulos_data.dproj
+++ b/Source/Modulos/Articulos/Data/Articulos_data.dproj
@@ -54,7 +54,7 @@
MainSource
-
+
diff --git a/Source/Modulos/Contactos/Controller/Contactos_controller.dproj b/Source/Modulos/Contactos/Controller/Contactos_controller.dproj
index bdd649ed..9f86cd58 100644
--- a/Source/Modulos/Contactos/Controller/Contactos_controller.dproj
+++ b/Source/Modulos/Contactos/Controller/Contactos_controller.dproj
@@ -53,19 +53,19 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Contactos/Data/Contactos_data.dproj b/Source/Modulos/Contactos/Data/Contactos_data.dproj
index e957e06a..8087b682 100644
--- a/Source/Modulos/Contactos/Data/Contactos_data.dproj
+++ b/Source/Modulos/Contactos/Data/Contactos_data.dproj
@@ -49,12 +49,12 @@
MainSource
-
-
-
-
-
-
+
+
+
+
+
+
TDAClientDataModule
diff --git a/Source/Modulos/Contactos/Model/Contactos_model.dproj b/Source/Modulos/Contactos/Model/Contactos_model.dproj
index 18f6eded..d62420c8 100644
--- a/Source/Modulos/Contactos/Model/Contactos_model.dproj
+++ b/Source/Modulos/Contactos/Model/Contactos_model.dproj
@@ -49,22 +49,22 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Contactos/Model/uBizContactos.pas b/Source/Modulos/Contactos/Model/uBizContactos.pas
index 8dda5a35..9108c724 100644
--- a/Source/Modulos/Contactos/Model/uBizContactos.pas
+++ b/Source/Modulos/Contactos/Model/uBizContactos.pas
@@ -435,7 +435,7 @@ implementation
uses
- uDataTableUtils, Classes, DateUtils, SysUtils, uFactuGES_App,
+ uDataTableUtils, Classes, DateUtils, SysUtils, uFactuGES_App, uConfiguracionController,
uBizEmpresasTiendas, uBizTiposIVA, uBizFormasPago;
const
@@ -741,7 +741,7 @@ begin
ID_CATEGORIA := CATEGORIA_CLIENTE;
BLOQUEADO := 0;
RECARGO_EQUIVALENCIA := CLIENTE_RECARGO_EQUIVALENCIA;
- REGIMEN_IVA := AppFactuGES.Configuracion.GetSettingAsString('Clientes.RegimenIVA', CLIENTE_REGIMEN_IVA);
+ REGIMEN_IVA := AppFactuGES.Configuracion.GetSettingAsString(teXML, 'Clientes.RegimenIVA', CLIENTE_REGIMEN_IVA);
//CONTABILIDAD
if Assigned(AppFactuGES.EjercicioActivo) then
@@ -826,7 +826,7 @@ procedure TBizProveedor.IniciarValoresContactoNuevo;
begin
inherited;
ID_CATEGORIA := CATEGORIA_PROVEEDOR;
- REGIMEN_IVA := AppFactuGES.Configuracion.GetSettingAsString('Proveedores.RegimenIVA', PROVEEDOR_REGIMEN_IVA);
+ REGIMEN_IVA := AppFactuGES.Configuracion.GetSettingAsString(teXML, 'Proveedores.RegimenIVA', PROVEEDOR_REGIMEN_IVA);
//CONTABILIDAD
if Assigned(AppFactuGES.EjercicioActivo) then
diff --git a/Source/Modulos/Contactos/Views/Contactos_view.dproj b/Source/Modulos/Contactos/Views/Contactos_view.dproj
index e93efe53..a035001b 100644
--- a/Source/Modulos/Contactos/Views/Contactos_view.dproj
+++ b/Source/Modulos/Contactos/Views/Contactos_view.dproj
@@ -47,40 +47,40 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Contactos/Views/uViewConfiguracionContactos.dfm b/Source/Modulos/Contactos/Views/uViewConfiguracionContactos.dfm
index 1362c0ef..b17fcef9 100644
--- a/Source/Modulos/Contactos/Views/uViewConfiguracionContactos.dfm
+++ b/Source/Modulos/Contactos/Views/uViewConfiguracionContactos.dfm
@@ -1,20 +1,20 @@
inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
- Width = 547
- Height = 411
+ ExplicitWidth = 547
+ ExplicitHeight = 411
inherited Panel1: TPanel
Width = 537
ExplicitTop = 49
ExplicitWidth = 537
inherited Label3: TLabel
- Width = 525
+ Width = 166
Caption = 'Configuraci'#243'n para clientes'
- ExplicitTop = 5
- ExplicitWidth = 525
+ ExplicitWidth = 166
end
end
inherited JvGradientHeaderPanel1: TJvGradientHeaderPanel
Width = 547
LabelCaption = 'Configuraci'#243'n para contactos'
+ ExplicitWidth = 547
end
object Panel3: TPanel
AlignWithMargins = True
@@ -64,7 +64,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
Width = 168
Height = 21
Style = csDropDownList
- ItemHeight = 13
+ ItemHeight = 0
TabOrder = 0
end
object cbRegimenIVA: TComboBox
@@ -73,7 +73,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
Width = 168
Height = 21
Style = csDropDownList
- ItemHeight = 13
+ ItemHeight = 0
TabOrder = 1
end
object bFormasPago: TButton
@@ -100,7 +100,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
Width = 168
Height = 21
Style = csDropDownList
- ItemHeight = 13
+ ItemHeight = 0
TabOrder = 4
end
end
@@ -108,7 +108,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
AlignWithMargins = True
Left = 5
Top = 223
- Width = 537
+ Width = 424
Height = 130
Margins.Left = 5
Margins.Top = 0
@@ -118,6 +118,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
BevelOuter = bvNone
ParentColor = True
TabOrder = 3
+ ExplicitWidth = 537
object Label7: TLabel
Left = 17
Top = 37
@@ -152,7 +153,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
Width = 168
Height = 21
Style = csDropDownList
- ItemHeight = 13
+ ItemHeight = 0
TabOrder = 0
end
object cbRegimenIVAProv: TComboBox
@@ -161,7 +162,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
Width = 168
Height = 21
Style = csDropDownList
- ItemHeight = 13
+ ItemHeight = 0
TabOrder = 1
end
object Button1: TButton
@@ -188,7 +189,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
Width = 168
Height = 21
Style = csDropDownList
- ItemHeight = 13
+ ItemHeight = 0
TabOrder = 4
end
end
@@ -196,7 +197,7 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
AlignWithMargins = True
Left = 5
Top = 201
- Width = 537
+ Width = 424
Height = 22
Margins.Left = 5
Margins.Top = 0
@@ -222,14 +223,14 @@ inherited frViewConfiguracionContactos: TfrViewConfiguracionContactos
TabOrder = 4
ExplicitLeft = -1
ExplicitTop = 239
+ ExplicitWidth = 537
object Label6: TLabel
Left = 6
Top = 4
- Width = 525
+ Width = 196
Height = 14
Align = alTop
Caption = 'Configuraci'#243'n para proveedores'
- ExplicitWidth = 196
end
end
end
diff --git a/Source/Modulos/Contactos/Views/uViewConfiguracionContactos.pas b/Source/Modulos/Contactos/Views/uViewConfiguracionContactos.pas
index 63b9efd2..61c31e7a 100644
--- a/Source/Modulos/Contactos/Views/uViewConfiguracionContactos.pas
+++ b/Source/Modulos/Contactos/Views/uViewConfiguracionContactos.pas
@@ -52,7 +52,7 @@ implementation
{$R *.dfm}
uses
- uRegimenIVAUtils, uFactuGES_App;
+ uRegimenIVAUtils, uFactuGES_App, uConfiguracionController;
{ TfrViewConfiguracionBase1 }
@@ -89,14 +89,14 @@ begin
cbIVA.Items := FTiposIVAController.DarListaTiposIVA;
cbTipoIVAProv.Items := cbIVA.Items;
- cbRegimenIVA.ItemIndex := cbRegimenIVA.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString('Clientes.RegimenIVA', cbRegimenIVA.Items[0]));
- cbRegimenIVAProv.ItemIndex := cbRegimenIVAProv.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString('Proveedores.RegimenIVA', cbRegimenIVAProv.Items[0]));
+ cbRegimenIVA.ItemIndex := cbRegimenIVA.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString(teXML, 'Clientes.RegimenIVA', cbRegimenIVA.Items[0]));
+ cbRegimenIVAProv.ItemIndex := cbRegimenIVAProv.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString(teXML, 'Proveedores.RegimenIVA', cbRegimenIVAProv.Items[0]));
- cbFormaPago.ItemIndex := cbFormaPago.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString('Clientes.FormaPago', cbFormaPago.Items[0]));
- cbFormaPagoProv.ItemIndex := cbFormaPagoProv.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString('Proveedores.FormaPago', cbFormaPagoProv.Items[0]));
+ cbFormaPago.ItemIndex := cbFormaPago.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString(teXML, 'Clientes.FormaPago', cbFormaPago.Items[0]));
+ cbFormaPagoProv.ItemIndex := cbFormaPagoProv.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString(teXML, 'Proveedores.FormaPago', cbFormaPagoProv.Items[0]));
- cbIVA.ItemIndex := cbIVA.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString('Clientes.TipoIVA'));
- cbTipoIVAProv.ItemIndex := cbTipoIVAProv.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString('Proveedores.TipoIVA'));
+ cbIVA.ItemIndex := cbIVA.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString(teXML,'Clientes.TipoIVA'));
+ cbTipoIVAProv.ItemIndex := cbTipoIVAProv.Items.IndexOf (AppFactuGES.Configuracion.GetSettingAsString(teXML,'Proveedores.TipoIVA'));
end;
constructor TfrViewConfiguracionContactos.Create(AOwner: TComponent);
@@ -126,13 +126,13 @@ end;
procedure TfrViewConfiguracionContactos.GuardarValores;
begin
inherited;
- AppFactuGES.Configuracion.SetSettingAsString('Clientes.RegimenIVA', cbRegimenIVA.Text);
- AppFactuGES.Configuracion.SetSettingAsString('Clientes.FormaPago', cbFormaPago.Text);
- AppFactuGES.Configuracion.SetSettingAsString('Clientes.TipoIVA', cbIVA.Text);
+ AppFactuGES.Configuracion.SetSettingAsString(teXML,'Clientes.RegimenIVA', cbRegimenIVA.Text);
+ AppFactuGES.Configuracion.SetSettingAsString(teXML,'Clientes.FormaPago', cbFormaPago.Text);
+ AppFactuGES.Configuracion.SetSettingAsString(teXML,'Clientes.TipoIVA', cbIVA.Text);
- AppFactuGES.Configuracion.SetSettingAsString('Proveedores.RegimenIVA', cbRegimenIVAProv.Text);
- AppFactuGES.Configuracion.SetSettingAsString('Proveedores.FormaPago', cbFormaPagoProv.Text);
- AppFactuGES.Configuracion.SetSettingAsString('Proveedores.TipoIVA', cbTipoIVAProv.Text);
+ AppFactuGES.Configuracion.SetSettingAsString(teXML,'Proveedores.RegimenIVA', cbRegimenIVAProv.Text);
+ AppFactuGES.Configuracion.SetSettingAsString(teXML,'Proveedores.FormaPago', cbFormaPagoProv.Text);
+ AppFactuGES.Configuracion.SetSettingAsString(teXML,'Proveedores.TipoIVA', cbTipoIVAProv.Text);
end;
diff --git a/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.RES b/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.RES
index 1641339f..8b251f31 100644
Binary files a/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.RES and b/Source/Modulos/Contratos de cliente/Controller/ContratosCliente_controller.RES differ
diff --git a/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas b/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas
index 3bbd73e5..0492828d 100644
--- a/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas
+++ b/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas
@@ -3,7 +3,7 @@ unit schContratosClienteClient_Intf;
interface
uses
- Classes, DB, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf;
+ Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf;
const
{ Data table rules ids
@@ -251,7 +251,7 @@ type
end;
{ TValoresDataTableRules }
- TValoresDataTableRules = class(TDADataTableRules, IValores)
+ TValoresDataTableRules = class(TIntfObjectDADataTableRules, IValores)
private
protected
{ Property getters and setters }
@@ -310,7 +310,7 @@ type
end;
{ TPropiedadesDataTableRules }
- TPropiedadesDataTableRules = class(TDADataTableRules, IPropiedades)
+ TPropiedadesDataTableRules = class(TIntfObjectDADataTableRules, IPropiedades)
private
protected
{ Property getters and setters }
@@ -357,7 +357,7 @@ type
end;
{ TListaAnosContratosDataTableRules }
- TListaAnosContratosDataTableRules = class(TDADataTableRules, IListaAnosContratos)
+ TListaAnosContratosDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosContratos)
private
protected
{ Property getters and setters }
@@ -452,7 +452,7 @@ type
end;
{ TContratosClienteBeneficiosDataTableRules }
- TContratosClienteBeneficiosDataTableRules = class(TDADataTableRules, IContratosClienteBeneficios)
+ TContratosClienteBeneficiosDataTableRules = class(TIntfObjectDADataTableRules, IContratosClienteBeneficios)
private
protected
{ Property getters and setters }
@@ -807,7 +807,7 @@ type
end;
{ TContratosClienteDataTableRules }
- TContratosClienteDataTableRules = class(TDADataTableRules, IContratosCliente)
+ TContratosClienteDataTableRules = class(TIntfObjectDADataTableRules, IContratosCliente)
private
f_FORMA_PAGO: IROStrings;
f_PLAZO_ENTREGA: IROStrings;
@@ -1143,7 +1143,7 @@ type
end;
{ TTiposCapitulosDataTableRules }
- TTiposCapitulosDataTableRules = class(TDADataTableRules, ITiposCapitulos)
+ TTiposCapitulosDataTableRules = class(TIntfObjectDADataTableRules, ITiposCapitulos)
private
protected
{ Property getters and setters }
@@ -1292,7 +1292,7 @@ type
end;
{ TContratosCliente_DetallesDataTableRules }
- TContratosCliente_DetallesDataTableRules = class(TDADataTableRules, IContratosCliente_Detalles)
+ TContratosCliente_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IContratosCliente_Detalles)
private
protected
{ Property getters and setters }
diff --git a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm
index 3d86288c..746bca7d 100644
--- a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm
+++ b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.dfm
@@ -176,6 +176,31 @@ object RptContratosCliente: TRptContratosCliente
DataType = datCurrency
end>
end
+ item
+ Params = <>
+ Statements = <
+ item
+ Connection = 'IBX'
+ ConnectionType = 'Interbase'
+ Default = True
+ Name = 'IBX'
+ SQL =
+ 'SELECT VALOR_BLOB'#10'FROM CONFIGURACION'#10'WHERE CODIGO = '#39'CONDICIONES' +
+ '_COCINA'#39#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'VALOR_BLOB'
+ TableField = 'VALOR_BLOB'
+ end>
+ end>
+ Name = 'Informe_Condiciones'
+ Fields = <
+ item
+ Name = 'VALOR_BLOB'
+ DataType = datBlob
+ end>
+ end
item
Params = <
item
@@ -812,7 +837,7 @@ object RptContratosCliente: TRptContratosCliente
PrintOptions.Printer = 'Por defecto'
PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 39065.872423495400000000
- ReportOptions.LastChange = 40071.577940347220000000
+ ReportOptions.LastChange = 40420.450887569440000000
ScriptLanguage = 'PascalScript'
ShowProgress = False
StoreInDFM = False
@@ -1494,4 +1519,40 @@ object RptContratosCliente: TRptContratosCliente
Left = 440
Top = 128
end
+ object frxDBCondiciones: TfrxDBDataset
+ UserName = 'frxDBCondiciones'
+ CloseDataSource = False
+ DataSource = DADSCondiciones
+ BCDToCurrency = False
+ Left = 352
+ Top = 192
+ end
+ object DADSCondiciones: TDADataSource
+ DataSet = tbl_Condiciones.Dataset
+ DataTable = tbl_Condiciones
+ Left = 352
+ Top = 248
+ end
+ object tbl_Condiciones: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'VALOR_BLOB'
+ DataType = datBlob
+ end>
+ Params = <>
+ MasterMappingMode = mmWhere
+ MasterParamsMappings.Strings = (
+ 'ID_PRESUPUESTO=ID')
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ LocalSchema = schReport
+ LocalDataStreamer = DABin2DataStreamer1
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moAllInOneFetch]
+ LogicalName = 'Informe_Condiciones'
+ IndexDefs = <>
+ Left = 352
+ Top = 304
+ end
end
diff --git a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas
index b721e2c6..5eebb038 100644
--- a/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas
+++ b/Source/Modulos/Contratos de cliente/Reports/uRptContratosCliente_Server.pas
@@ -66,6 +66,9 @@ type
cabeceraCODIGO_POSTAL: TIBStringField;
schReport: TDASchema;
DataDictionary: TDADataDictionary;
+ frxDBCondiciones: TfrxDBDataset;
+ DADSCondiciones: TDADataSource;
+ tbl_Condiciones: TDAMemDataTable;
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
function frxReportUserFunction(const MethodName: string;
@@ -397,6 +400,7 @@ begin
tbl_Cabecera.Active := False;
tbl_Capitulos.Active := False;
tbl_Detalles.Active := False;
+ tbl_Condiciones.Active := False;
FreeANDNIL(FListaNombresClientes);
end;
@@ -515,6 +519,7 @@ begin
tbl_Cabecera.Active := False;
tbl_Capitulos.Active := False;
tbl_Detalles.Active := False;
+ tbl_Condiciones.Active := False;
tbl_Cabecera.ParamByName('ID').AsInteger := AID;
tbl_Capitulos.ParamByName('ID_PRE_CON').AsInteger := AID;
@@ -526,6 +531,7 @@ begin
tbl_Cabecera.Active := True;
tbl_Capitulos.Active := True;
tbl_Detalles.Active := True;
+ tbl_Condiciones.Active := True;
AInforme := DarRutaFichero(DarRutaInformes, rptInforme, tbl_Cabecera.FieldByName('ID_EMPRESA').AsString);
if VarIsNull(AInforme) then
diff --git a/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.RES b/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.RES
index 1641339f..8b251f31 100644
Binary files a/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.RES and b/Source/Modulos/Contratos de cliente/Views/ContratosCliente_view.RES differ
diff --git a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.RES b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.RES
index 1641339f..8b251f31 100644
Binary files a/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.RES and b/Source/Modulos/Facturas de proveedor/Controller/FacturasProveedor_controller.RES differ
diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas
index fbe4f03e..a7acb476 100644
--- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas
+++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas
@@ -3,7 +3,7 @@ unit schFacturasProveedorClient_Intf;
interface
uses
- Classes, DB, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf;
+ Classes, DB, schBase_Intf, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf;
const
{ Data table rules ids
@@ -181,7 +181,7 @@ type
end;
{ TListaAnosFacturasDataTableRules }
- TListaAnosFacturasDataTableRules = class(TDADataTableRules, IListaAnosFacturas)
+ TListaAnosFacturasDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosFacturas)
private
protected
{ Property getters and setters }
@@ -252,7 +252,7 @@ type
end;
{ TFacturasProveedor_ContratosDataTableRules }
- TFacturasProveedor_ContratosDataTableRules = class(TDADataTableRules, IFacturasProveedor_Contratos)
+ TFacturasProveedor_ContratosDataTableRules = class(TIntfObjectDADataTableRules, IFacturasProveedor_Contratos)
private
protected
{ Property getters and setters }
@@ -568,7 +568,7 @@ type
end;
{ TFacturasProveedorDataTableRules }
- TFacturasProveedorDataTableRules = class(TDADataTableRules, IFacturasProveedor)
+ TFacturasProveedorDataTableRules = class(TIntfObjectDADataTableRules, IFacturasProveedor)
private
f_OBSERVACIONES: IROStrings;
procedure OBSERVACIONES_OnChange(Sender: TObject);
@@ -928,7 +928,7 @@ type
end;
{ TFacturasProveedor_DetallesDataTableRules }
- TFacturasProveedor_DetallesDataTableRules = class(TDADataTableRules, IFacturasProveedor_Detalles)
+ TFacturasProveedor_DetallesDataTableRules = class(TIntfObjectDADataTableRules, IFacturasProveedor_Detalles)
private
protected
{ Property getters and setters }
diff --git a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res
index 1641339f..8b251f31 100644
Binary files a/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res and b/Source/Modulos/Facturas de proveedor/Views/FacturasProveedor_view.res differ
diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas
index 7e0ad50c..6b81c8ad 100644
--- a/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas
+++ b/Source/Modulos/Presupuestos de cliente/Controller/uPresupuestosClienteController.pas
@@ -10,7 +10,42 @@ uses
uBizPresupuestosCliente, uBizDireccionesContacto, uBizDetallesPresupuestoCliente,
uIntegerListUtils;
+const
+ CTE_COCINA = 'Cocina';
+ CTE_BANO = 'Baño';
+ CTE_ARMARIO = 'Armarios';
+ CTE_ELECTRODOMESTICO = 'Electrodomésticos';
+ CTE_VARIOS = 'Varios';
+
+
+ CTE_FORMA_PAGO_COCINA = 'FORMA_PAGO_COCINA';
+ CTE_PLAZOS_ENTREGA_COCINA = 'PLAZOS_ENTREGA_COCINA';
+ CTE_OBSERVACIONES_COCINA = 'OBSERVACIONES_COCINA';
+ CTE_CONDICIONES_COCINA = 'CONDICIONES_COCINA';
+
+ CTE_FORMA_PAGO_ARMARIO = 'FORMA_PAGO_ARMARIO';
+ CTE_PLAZOS_ENTREGA_ARMARIO = 'PLAZOS_ENTREGA_ARMARIO';
+ CTE_OBSERVACIONES_ARMARIO = 'OBSERVACIONES_ARMARIO';
+ CTE_CONDICIONES_ARMARIO = 'CONDICIONES_ARMARIO';
+
+ CTE_FORMA_PAGO_BANO = 'FORMA_PAGO_BANO';
+ CTE_PLAZOS_ENTREGA_BANO = 'PLAZOS_ENTREGA_BANO';
+ CTE_OBSERVACIONES_BANO = 'OBSERVACIONES_BANO';
+ CTE_CONDICIONES_BANO = 'CONDICIONES_BANO';
+
+ CTE_FORMA_PAGO_ELECTRODOMESTICO = 'FORMA_PAGO_ELECTRODOMESTICO';
+ CTE_PLAZOS_ENTREGA_ELECTRODOMESTICO = 'PLAZOS_ENTREGA_ELECTRODOMESTICO';
+ CTE_OBSERVACIONES_ELECTRODOMESTICO = 'OBSERVACIONES_ELECTRODOMESTICO';
+ CTE_CONDICIONES_ELECTRODOMESTICO = 'CONDICIONES_ELECTRODOMESTICO';
+
+ CTE_FORMA_PAGO_VARIOS = 'FORMA_PAGO_VARIOS';
+ CTE_PLAZOS_ENTREGA_VARIOS = 'PLAZOS_ENTREGA_VARIOS';
+ CTE_OBSERVACIONES_VARIOS = 'OBSERVACIONES_VARIOS';
+ CTE_CONDICIONES_VARIOS = 'CONDICIONES_VARIOS';
+
type
+ TEnumTiposPresupuesto = (teCocina, teArmario, teBano, teElectrodomestico, teVarios);
+
IPresupuestosClienteController = interface(IControllerBase)
['{21ED0332-F0E0-468D-8D53-8CA362757191}']
function GetClienteController: IClientesController;
@@ -39,7 +74,7 @@ type
const AHeaderText: String = '');
procedure VerDireccionEntrega(APresupuesto : IBizPresupuestoCliente);
function Nuevo : IBizPresupuestoCliente;
- function Anadir(APresupuesto : IBizPresupuestoCliente) : Boolean;
+ function Anadir(APresupuesto : IBizPresupuestoCliente; ATipo: TEnumTiposPresupuesto) : Boolean;
function Eliminar(const ID : Integer): Boolean; overload;
function Eliminar(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; overload;
function Guardar(APresupuesto : IBizPresupuestoCliente): Boolean;
@@ -108,7 +143,7 @@ type
function Guardar(APresupuesto : IBizPresupuestoCliente): Boolean;
procedure DescartarCambios(APresupuesto : IBizPresupuestoCliente); virtual;
function Existe(const ID: Integer) : Boolean; virtual;
- function Anadir(APresupuesto : IBizPresupuestoCliente) : Boolean;
+ function Anadir(APresupuesto : IBizPresupuestoCliente; ATipo: TEnumTiposPresupuesto) : Boolean;
function Buscar(const ListaID: TIntegerList): IBizPresupuestoCliente; overload;
function Buscar(const ID: Integer): IBizPresupuestoCliente; overload;
function BuscarTodos: IBizPresupuestoCliente; overload;
@@ -145,7 +180,7 @@ implementation
uses
Controls, cxControls, DB, uEditorRegistryUtils, uEditorPreview, DateUtils,
uIEditorPresupuestosCliente, uDataModulePresupuestosCliente, Variants,
- uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App,
+ uBizContactos, uDataTableUtils, uDataModuleUsuarios, uFactuGES_App, uConfiguracionController,
schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente,
uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente,
schContactosClient_Intf, uPresupuestosClienteReportController,
@@ -153,11 +188,54 @@ uses
{ TPresupuestosClienteController }
-function TPresupuestosClienteController.Anadir(APresupuesto: IBizPresupuestoCliente): Boolean;
+function TPresupuestosClienteController.Anadir(APresupuesto: IBizPresupuestoCliente; ATipo: TEnumTiposPresupuesto): Boolean;
begin
if not Assigned(APresupuesto) then
raise Exception.Create ('Presupuesto no asignado (Anadir)');
APresupuesto.Insert;
+
+ case ATipo of
+ teCocina: begin
+ APresupuesto.TIPO_PRESUPUESTO := CTE_COCINA;
+ APresupuesto.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_FORMA_PAGO_COCINA));
+ APresupuesto.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_PLAZOS_ENTREGA_COCINA));
+ APresupuesto.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_OBSERVACIONES_COCINA));
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_C_VACIO, 'MUEBLES DE COCINA ', False, APresupuesto.Detalles);
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True, APresupuesto.Detalles);
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'AUMENTO POR ', False, APresupuesto.Detalles);
+ end;
+ teArmario:begin
+ APresupuesto.TIPO_PRESUPUESTO := CTE_ARMARIO;
+ APresupuesto.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_FORMA_PAGO_ARMARIO));
+ APresupuesto.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_PLAZOS_ENTREGA_ARMARIO));
+ APresupuesto.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_OBSERVACIONES_ARMARIO));
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_AF, 'FRENTE DE ARMARIO Nº ', False, APresupuesto.Detalles);
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_AI, 'INTERIOR DE ARMARIO Nº ', False, APresupuesto.Detalles);
+ end;
+ teBano: begin
+ APresupuesto.TIPO_PRESUPUESTO := CTE_BANO;
+ APresupuesto.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_FORMA_PAGO_BANO));
+ APresupuesto.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_PLAZOS_ENTREGA_BANO));
+ APresupuesto.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_OBSERVACIONES_BANO));
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_B, 'MUEBLE DE BAÑO Nº ', False, APresupuesto.Detalles);
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True, APresupuesto.Detalles);
+ end;
+ teElectrodomestico: begin
+ APresupuesto.TIPO_PRESUPUESTO := CTE_ELECTRODOMESTICO;
+ APresupuesto.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_FORMA_PAGO_ELECTRODOMESTICO));
+ APresupuesto.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_PLAZOS_ENTREGA_ELECTRODOMESTICO));
+ APresupuesto.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_OBSERVACIONES_ELECTRODOMESTICO));
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_E, 'ELECTRODOMÉSTICOS ', False, APresupuesto.Detalles);
+ end;
+ teVarios: begin
+ APresupuesto.TIPO_PRESUPUESTO := CTE_VARIOS;
+ APresupuesto.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_FORMA_PAGO_VARIOS));
+ APresupuesto.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_PLAZOS_ENTREGA_VARIOS));
+ APresupuesto.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD,CTE_OBSERVACIONES_VARIOS));
+ (Self.DetallesController as IDetallesPresupuestoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'VARIOS ', False, APresupuesto.Detalles);
+ end;
+ end;
+
Result := True;
end;
diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dpk b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dpk
index 2cc4c283..b10dbc7c 100644
--- a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dpk
+++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dpk
@@ -31,7 +31,28 @@ requires
PresupuestosCliente_controller,
Articulos_view,
GestorInformes_controller,
- PreCli_ConCli_relation;
+ PreCli_ConCli_relation,
+ rtl,
+ vcl,
+ JvCoreD11R,
+ vcldb,
+ dbrtl,
+ vcljpg,
+ vclx,
+ Jcl,
+ JclVcl,
+ JvMMD11R,
+ JvStdCtrlsD11R,
+ JvSystemD11R,
+ JvCtrlsD11R,
+ cxLibraryD11,
+ dxThemeD11,
+ dxGDIPlusD11,
+ dxCoreD11,
+ cxEditorsD11,
+ cxDataD11,
+ cxExtEditorsD11,
+ ApplicationBase;
contains
uPresupuestosClienteViewRegister in 'uPresupuestosClienteViewRegister.pas',
@@ -49,6 +70,11 @@ contains
uEditorAsignarDescuento in 'uEditorAsignarDescuento.pas' {fEditorAsignarDescuento},
uEditorFechaDecisionPresupuesto in 'uEditorFechaDecisionPresupuesto.pas' {fEditorFechaDecisionPresupuesto},
uViewTotalesPresupuesto in 'uViewTotalesPresupuesto.pas' {frViewTotalesPresupuesto: TFrame},
- uViewPresupuestoCliente in 'uViewPresupuestoCliente.pas' {frViewPresupuestoCliente: TFrame};
+ uViewPresupuestoCliente in 'uViewPresupuestoCliente.pas' {frViewPresupuestoCliente: TFrame},
+ uViewConfiguracionDocArmario in 'uViewConfiguracionDocArmario.pas' {frViewConfiguracionDocArmario: TFrame},
+ uViewConfiguracionDocBano in 'uViewConfiguracionDocBano.pas' {frViewConfiguracionDocBano: TFrame},
+ uViewConfiguracionDocCocina in 'uViewConfiguracionDocCocina.pas' {frViewConfiguracionDocCocina: TFrame},
+ uViewConfiguracionDocElectrodomestico in 'uViewConfiguracionDocElectrodomestico.pas' {frViewConfiguracionDocElectrodomestico: TFrame},
+ uViewConfiguracionDocVarios in 'uViewConfiguracionDocVarios.pas' {frViewConfiguracionDocVarios: TFrame};
end.
diff --git a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj
index 62c06807..ba38bcb1 100644
--- a/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj
+++ b/Source/Modulos/Presupuestos de cliente/Views/PresupuestosCliente_view.dproj
@@ -49,13 +49,30 @@
MainSource
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -83,6 +100,26 @@
TfEditorPedidosClientePreview
+
+
+ TFrame
+
+
+
+ TFrame
+
+
+
+ TFrame
+
+
+
+ TFrame
+
+
+
+ TFrame
+
TFrame
@@ -115,6 +152,10 @@
TFrame
+
+
+
+