-
Notifications
You must be signed in to change notification settings - Fork 0
/
CDataControl.cs
249 lines (224 loc) · 13.5 KB
/
CDataControl.cs
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace KIWI
{
public partial class CDataControl
{
public static CBasicInput g_BasicInput = new CBasicInput(); //기본입력
public static CBusinessData g_DetailInput = new CBusinessData(); //상세입력
//설정된 업계평균은 레지스트리 또는 파일에 항상 가지고 있어야 함.
//파일 실행시 레지스트리 또는 파일에서 읽어 변수에 세팅
public static CBusinessData g_BusinessAvg = new CBusinessData(); //업계평균, 관리자가 배포한 데이타 및 현재 클라이언트 계산에 적용하는 값
public static CResultData g_ResultBusinessTotal = new CResultData(); //업계 총계
public static CResultData g_ResultBusiness = new CResultData(); //업계 단위금액
public static CResultData g_ResultStoreTotal = new CResultData(); //당대리점 총계
public static CResultData g_ResultStore = new CResultData(); //당대리점 단위금액
public static CResultData g_ResultFutureTotal = new CResultData(); //미래수익 총계
public static CResultData g_ResultFuture = new CResultData(); //미래수익 단위금액
public static CBasicInput g_SimBasicInput = new CBasicInput(); //시뮬레이션 기본입력
public static CBusinessData g_SimDetailInput = new CBusinessData(); //시뮬레이션 상세입력
public static CResultData g_SimResultBusinessTotal = new CResultData(); //시뮬레이션 업계 총계
public static CResultData g_SimResultBusiness = new CResultData(); //시뮬레이션 업계 단위금액
public static CResultData g_SimResultStoreTotal = new CResultData(); //시뮬레이션 당대리점 총계
public static CResultData g_SimResultStore = new CResultData(); //시뮬레이션 당대리점 단위금액
public static CResultData g_SimResultFutureTotal = new CResultData(); //시뮬레이션 미래수익 총계
public static CResultData g_SimResultFuture = new CResultData(); //시뮬레이션 미래수익 단위금액
//파일에서 읽은 데이터 저장 용
//기본입력(g_BasicInput)과 상세입력(g_DetailInput)에 입력하여 현재세팅된 업계평균을 적용하여 결과를 계산할 수 있다
//계산 없이 결과를 보기위해 g_FileResultBusinessTotal등의 아래값을 출력하면 됨
public static CBasicInput g_FileBasicInput = new CBasicInput(); //파일에서 읽은 기본입력
public static CBusinessData g_FileDetailInput = new CBusinessData(); //파일에서 읽은 상세입력
//public static CBusinessData g_FileBusinessAvg; //파일에서 읽은 업계평균
public static CResultData g_FileResultBusinessTotal = new CResultData(); //업계 총계
public static CResultData g_FileResultBusiness = new CResultData(); //업계 단위금액
public static CResultData g_FileResultStoreTotal = new CResultData(); //당대리점 총계
public static CResultData g_FileResultStore = new CResultData(); //당대리점 단위금액
public static CResultData g_FileResultFutureTotal = new CResultData(); //미래수익 총계
public static CResultData g_FileResultFuture = new CResultData(); //미래수익 단위금액
//보고서용 데이터
public static CReportData g_ReportData = new CReportData(); // 리포트에 추가적으로 들어갈 자료(이름, 코멘트 등)
internal static void clearAllData()
{
g_BasicInput = new CBasicInput(); //기본입력
g_DetailInput = new CBusinessData(); //상세입력
//설정된 업계평균은 레지스트리 또는 파일에 항상 가지고 있어야 함.
//파일 실행시 레지스트리 또는 파일에서 읽어 변수에 세팅
g_BusinessAvg = new CBusinessData(); //업계평균, 관리자가 배포한 데이타 및 현재 클라이언트 계산에 적용하는 값
g_ResultBusinessTotal = new CResultData(); //업계 총계
g_ResultBusiness = new CResultData(); //업계 단위금액
g_ResultStoreTotal = new CResultData(); //당대리점 총계
g_ResultStore = new CResultData(); //당대리점 단위금액
g_ResultFutureTotal = new CResultData(); //미래수익 총계
g_ResultFuture = new CResultData(); //미래수익 단위금액
//파일에서 읽은 데이터 저장 용
//기본입력(g_BasicInput)과 상세입력(g_DetailInput)에 입력하여 현재세팅된 업계평균을 적용하여 결과를 계산할 수 있다
//계산 없이 결과를 보기위해 g_FileResultBusinessTotal등의 아래값을 출력하면 됨
g_FileBasicInput = new CBasicInput(); //파일에서 읽은 기본입력
g_FileDetailInput = new CBusinessData(); //파일에서 읽은 상세입력
//public static CBusinessData g_FileBusinessAvg; //파일에서 읽은 업계평균
g_FileResultBusinessTotal = new CResultData(); //업계 총계
g_FileResultBusiness = new CResultData(); //업계 단위금액
g_FileResultStoreTotal = new CResultData(); //당대리점 총계
g_FileResultStore = new CResultData(); //당대리점 단위금액
g_FileResultFutureTotal = new CResultData(); //미래수익 총계
g_FileResultFuture = new CResultData(); //미래수익 단위금액
//보고서용 데이터
g_ReportData = new CReportData(); // 리포트에 추가적으로 들어갈 자료(이름, 코멘트 등)
clearSimulData();
}
internal static void clearSimulData()
{
g_SimBasicInput = new CBasicInput(); //시뮬레이션 기본입력
g_SimDetailInput = new CBusinessData(); //시뮬레이션 상세입력
g_SimResultBusinessTotal = new CResultData(); //시뮬레이션 업계 총계
g_SimResultBusiness = new CResultData(); //시뮬레이션 업계 단위금액
g_SimResultStoreTotal = new CResultData(); //시뮬레이션 당대리점 총계
g_SimResultStore = new CResultData(); //시뮬레이션 당대리점 단위금액
g_SimResultFutureTotal = new CResultData(); //시뮬레이션 미래수익 총계
g_SimResultFuture = new CResultData(); //시뮬레이션 미래수익 단위금액
}
internal static String getSplitedLGEFileFromData(String splitter)
{
Object[] arrWarp = new Object[]{
CDataControl.g_ReportData.getArrData(),
CDataControl.g_BasicInput.getArrData(),
CDataControl.g_DetailInput.getArrData(),
CDataControl.g_ResultBusinessTotal.getArrayOutput전체(),
CDataControl.g_ResultBusiness.getArrayOutput전체(),
CDataControl.g_ResultStoreTotal.getArrayOutput전체(),
CDataControl.g_ResultStore.getArrayOutput전체(),
CDataControl.g_ResultFutureTotal.getArrayOutput전체(),
CDataControl.g_ResultFuture.getArrayOutput전체()
};
return getSplitedLGEFileFromArray(arrWarp, splitter);
}
internal static String getSplitedLGEFileFromSimulData(String splitter)
{
Object[] arrWarp = new Object[]{
CDataControl.g_ReportData.getArrData(),
CDataControl.g_SimBasicInput.getArrData(),
CDataControl.g_SimDetailInput.getArrData(),
CDataControl.g_SimResultBusinessTotal.getArrayOutput전체(),
CDataControl.g_SimResultBusiness.getArrayOutput전체(),
CDataControl.g_SimResultStoreTotal.getArrayOutput전체(),
CDataControl.g_SimResultStore.getArrayOutput전체(),
CDataControl.g_SimResultFutureTotal.getArrayOutput전체(),
CDataControl.g_SimResultFuture.getArrayOutput전체()
};
return getSplitedLGEFileFromArray(arrWarp, splitter);
}
private static String getSplitedLGEFileFromArray(Object[] arrWarp, String splitter)
{
string returnLge = "";
for (int i = 0; i < arrWarp.Length; i++)
{
if (arrWarp[i].GetType() == Type.GetType("System.String[]"))
{
foreach (String str in (arrWarp[i] as String[]))
{
returnLge += str.Replace(splitter, splitter == "|" ? "l" : "") + splitter; // 파이프를 구분자로 쓰기위해 엘(L)소문자로 고침
}
}
else if (arrWarp[i].GetType() == Type.GetType("System.Double[]"))
{
foreach (Double val in (arrWarp[i] as Double[]))
{
returnLge += val.ToString() + splitter;
}
}
}
return returnLge;
}
internal static void setDataFromLGEFile(String lge, String spliter, int type = CommonUtil.파일종류_기본)
{
String[] splittedLge = lge.Split(spliter.ToCharArray());
CReportData reportData = null;
CBasicInput basicData = null;
CBusinessData detailData = null;
CResultData rbt = null;
CResultData rb = null;
CResultData rst = null;
CResultData rs = null;
CResultData rft = null;
CResultData rf = null;
switch (type)
{
case CommonUtil.파일종류_시뮬레이션:
reportData = null;
basicData = CDataControl.g_SimBasicInput;
detailData = CDataControl.g_SimDetailInput;
rbt = CDataControl.g_SimResultBusinessTotal;
rb = CDataControl.g_SimResultBusiness;
rst = CDataControl.g_SimResultStoreTotal;
rs = CDataControl.g_SimResultStore;
rft = CDataControl.g_SimResultFutureTotal;
rf = CDataControl.g_SimResultFuture;
break;
default: // CommonUtil.파일종류_기본
reportData = CDataControl.g_ReportData;
basicData = CDataControl.g_FileBasicInput;
detailData = CDataControl.g_FileDetailInput;
rbt = CDataControl.g_FileResultBusinessTotal;
rb = CDataControl.g_FileResultBusiness;
rst = CDataControl.g_FileResultStoreTotal;
rs = CDataControl.g_FileResultStore;
rft = CDataControl.g_FileResultFutureTotal;
rf = CDataControl.g_FileResultFuture;
break;
}
int startIndex = 0;
int length = 7;
String[] param = splittedLge.Take(length).ToArray<String>();
if (reportData != null)
reportData.setArrData(param);
startIndex += length;
length = 14;
param = splittedLge.Skip(startIndex).Take(length).ToArray<String>();
basicData.setArrData(param);
startIndex += length;
length = 31;
param = splittedLge.Skip(startIndex).Take(length).ToArray<String>();
detailData.setArrData(param);
startIndex += length;
length = 42;
param = splittedLge.Skip(startIndex).Take(length).ToArray<String>();
rbt.setArrayOutput전체(param);
startIndex += length;
param = splittedLge.Skip(startIndex).Take(length).ToArray<String>();
rb.setArrayOutput전체(param);
startIndex += length;
param = splittedLge.Skip(startIndex).Take(length).ToArray<String>();
rst.setArrayOutput전체(param);
startIndex += length;
param = splittedLge.Skip(startIndex).Take(length).ToArray<String>();
rs.setArrayOutput전체(param);
startIndex += length;
param = splittedLge.Skip(startIndex).Take(length).ToArray<String>();
rft.setArrayOutput전체(param);
startIndex += length;
param = splittedLge.Skip(startIndex).Take(length).ToArray<String>();
rf.setArrayOutput전체(param);
basicData.set통신사(CDataControl.g_ReportData.get통신사());
basicData.set지역(CDataControl.g_ReportData.get지역());
basicData.set대리점(CDataControl.g_ReportData.get대리점());
basicData.set마케터(CDataControl.g_ReportData.get마케터());
}
internal static String getAdminDataBySerialization(String splitter)
{
string returnLge = "";
foreach (Double val in g_BusinessAvg.getArrData())
{
returnLge += val.ToString() + splitter;
}
return returnLge;
}
internal static void setAdminDataFromLGEFile(String lge, String spliter)
{
String[] splittedLge = lge.Split(spliter.ToCharArray());
CDataControl.g_BusinessAvg.setArrData_DetailInput(splittedLge);
}
}
}