-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathudmSettings.pas
132 lines (99 loc) · 3.31 KB
/
udmSettings.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
unit udmSettings;
(*
* $Workfile: udmSettings.pas $
* $Author: rgrove $
* By: Retail Dimensions, Inc.
* $Date: 2015-11-16 17:06:04-08:00 $
* in: Delphi 2010
* to: provide a GUI configuration dialog window
*
* Copyright 2015 Retail Dimensions, Inc. All rights reserved.
*)
interface
uses
SysUtils, Classes, Dialogs,
//RDi units
uRDiConfigMgr, uRDiSpringLogger, uRDiLogSettings, uRDiRPro8Settings,
uRDiSpringRProDB;
type
TdmSettings = class(TDataModule)
procedure DataModuleCreate(Sender: TObject);
strict private
FConfigMgr: TRDIConfigManager;
FLogSettings: TLogSettings;
FSpringLogger: TRDISpringLogger;
procedure RegisterSections;
procedure ConfigureSpringLogger;
end;
var
dmSettings: TdmSettings;
implementation
uses
//Spring units
Spring.Container
{$IFDEF UseCodeSite}, CodeSiteLogging {$ENDIF}
//RDi Units
, uProjectConstants
, uRDIDatabaseSettings
, uRDIImportSettings
, uRDIExportSettings
, uRDIItemFilterSettings
, uRDiCustomerImportSettings
;
{$R *.dfm}
procedure TdmSettings.ConfigureSpringLogger;
var
idx: Integer;
LLogBy: string;
begin
LLogBy := EmptyStr;
idx := FConfigMgr.GetIndexBySection(INIKey_Logging);
FLogSettings := FConfigMgr[idx] as TLogSettings;
{$IFDEF UseCodeSite} CodeSite.Send('TLogSettings', FLogSettings); {$ENDIF}
if FLogSettings.Detailed then
FSpringLogger.Detailed := True;
LLogBy := UpperCase(Trim(FLogSettings.LogBy));
if LLogBy = 'MONTH' then
FSpringLogger.LogByMonth := True
else if LLogBy = 'DAY' then
FSpringLogger.LogByDay := True
else
FSpringLogger.LogByMonth := True;
FSpringLogger.Overwrite := FLogSettings.Overwrite;
FSpringLogger.TimeStamp := FLogSettings.TimeStamp;
FSpringLogger.CustomLogFolder := FLogSettings.CustomLogFolder;
end;
procedure TdmSettings.DataModuleCreate(Sender: TObject);
begin
{$IFDEF UseCodeSite}CodeSite.EnterMethod( Self, 'DataModuleCreate' );{$ENDIF}
{$IFDEF UseFastMM} System.ReportMemoryLeaksOnShutdown := True; {$ENDIF}
GlobalContainer.RegisterType<TRDiSpringLogger>.AsSingleton;
GlobalContainer.RegisterType<TRDIConfigManager>.AsSingleton;
//Build our Spring GlobalContainer
GlobalContainer.Build;
FConfigMgr := GlobalContainer.Resolve<TRDIConfigManager>;
FSpringLogger := GlobalContainer.Resolve<TRDISpringLogger>;
//Register the sections for this project
RegisterSections;
//Read in the ini file to fill our config objects
FConfigMgr.Read;
//Set whether we're in detailed logging or not
ConfigureSpringLogger;
{$IFDEF UseCodeSite}CodeSite.ExitMethod( Self, 'DataModuleCreate' );{$ENDIF}
end;
procedure TdmSettings.RegisterSections;
begin
{$IFDEF UseCodeSite}CodeSite.EnterMethod( Self, 'RegisterSections' );{$ENDIF}
// General Settings
FConfigMgr.Add(TRpro8Settings.Create(INIKey_RetailPro));
FConfigMgr.Add(TLogSettings.Create(INIKey_Logging));
// inventory import settings
//FConfigMgr.Add(TImportSettings.Create(INIKey_ItemImportSettings));
// customer import settings
//FConfigMgr.Add(TRDiCustomerImportSettings.Create(INIKey_CustomerImportSettings));
//FConfigMgr.Add(TImportSettings.Create(INIKey_CustImportFileSettings));
// receipt export settings
//FConfigMgr.Add(TExportSettings.Create(INIKey_ReceiptExportFile));
{$IFDEF UseCodeSite}CodeSite.ExitMethod( Self, 'RegisterSections' );{$ENDIF}
end;
end.