リビジョン 343
工事承認処理:承認後さらに承認できてしまうバグ修正
工事台帳一覧:給料集計SQLを一括で処理するように変更
branches/src/ProcessManagement/ProcessManagement/Common/CommonMotions.cs | ||
---|---|---|
2920 | 2920 |
} |
2921 | 2921 |
#endregion |
2922 | 2922 |
|
2923 |
#region 経過給与を一括計算する |
|
2924 |
/// <summary> |
|
2925 |
/// 経過給与を一括計算する |
|
2926 |
/// </summary> |
|
2927 |
/// <param name="dtStart"></param> |
|
2928 |
/// <param name="PersonCode"></param> |
|
2929 |
/// <returns></returns> |
|
2930 |
public static void CalcElapsedSalaryAll(IOMPersonInCharge SalDB, ArrayList TargetList, ref List<KeyValuePair<int, long>> SalDataList) |
|
2931 |
{ |
|
2932 |
try |
|
2933 |
{ |
|
2934 |
|
|
2935 |
StringBuilder strSQL = new StringBuilder(); |
|
2936 |
|
|
2937 |
bool bFirst = true; |
|
2938 |
foreach (object[] ObjRec in TargetList) |
|
2939 |
{ |
|
2940 |
int PersonCode = CommonMotions.cnvInt(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.PersonCode]); |
|
2941 |
DateTime dtStart = CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.StartDate]); |
|
2942 |
DateTime dtLast = CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.CompDate]); |
|
2943 |
|
|
2944 |
if (!bFirst) strSQL.Append(" UNION "); |
|
2945 |
|
|
2946 |
strSQL.AppendFormat("SELECT {0} As LinkKey, SUM(SAL{0}.SALARY) FROM", PersonCode); |
|
2947 |
|
|
2948 |
strSQL.Append(" (SELECT AX.hiduke,"); |
|
2949 |
//strSQL.AppendFormat(" ROUND((AX.salary * {0}) / DATE_FORMAT(LAST_DAY(AX.hiduke), '%d')) AS SALARY,", CommonDefine.s_SalaryCorrection); |
|
2950 |
strSQL.AppendFormat(" ROUND((AX.salary * {0}) / 30) AS SALARY,", CommonDefine.s_SalaryCorrection); |
|
2951 |
strSQL.Append(" MAX(AX.StartD) FROM"); |
|
2952 |
strSQL.Append(" (SELECT A.d hiduke, B.MonthlySalary salary, B.STARTDATE StartD FROM"); |
|
2953 |
|
|
2954 |
strSQL.Append(" (SELECT A1.years, A2.month, A3.days, DATE(CONCAT(A1.years, '/', A2.month, '/', A3.days)) AS d"); |
|
2955 |
strSQL.Append(" FROM yearmaster AS A1, monthmaster AS A2, daymaster AS A3"); |
|
2956 |
|
|
2957 |
strSQL.Append(" WHERE"); |
|
2958 |
if (dtStart.Year == dtLast.Year) |
|
2959 |
{ |
|
2960 |
strSQL.AppendFormat(" (A1.years = {0} AND A2.month IN(", dtStart.Year.ToString("0000")); |
|
2961 |
for (int i = dtStart.Month; i <= dtLast.Month; i++) |
|
2962 |
{ |
|
2963 |
if (i != dtStart.Month) strSQL.Append(", "); |
|
2964 |
strSQL.AppendFormat("{0} ", i); |
|
2965 |
} |
|
2966 |
strSQL.Append("))"); |
|
2967 |
} |
|
2968 |
else |
|
2969 |
{ |
|
2970 |
strSQL.Append(" ("); |
|
2971 |
|
|
2972 |
for (int iYear = dtStart.Year; iYear <= dtLast.Year; iYear++) |
|
2973 |
{ |
|
2974 |
// 先頭以外はORを追加する |
|
2975 |
if (iYear != dtStart.Year) strSQL.AppendFormat(" OR"); |
|
2976 |
|
|
2977 |
strSQL.AppendFormat(" (A1.years = {0}", iYear.ToString("0000")); |
|
2978 |
strSQL.Append(" AND A2.month IN ("); |
|
2979 |
|
|
2980 |
if (iYear == dtStart.Year) |
|
2981 |
{ // 先頭年 |
|
2982 |
for (int i = dtStart.Month; i <= 12; i++) |
|
2983 |
{ |
|
2984 |
if (i != dtStart.Month) strSQL.Append(", "); |
|
2985 |
strSQL.AppendFormat("{0} ", i); |
|
2986 |
} |
|
2987 |
} |
|
2988 |
else if (iYear == dtLast.Year) |
|
2989 |
{ // 最終年 |
|
2990 |
for (int i = 1; i <= dtLast.Month; i++) |
|
2991 |
{ |
|
2992 |
if (i != 1) strSQL.Append(", "); |
|
2993 |
strSQL.AppendFormat("{0} ", i); |
|
2994 |
} |
|
2995 |
} |
|
2996 |
else |
|
2997 |
{ // 以外の年 |
|
2998 |
for (int i = 1; i <= 12; i++) |
|
2999 |
{ |
|
3000 |
if (i != 1) strSQL.Append(", "); |
|
3001 |
strSQL.AppendFormat("{0} ", i); |
|
3002 |
} |
|
3003 |
} |
|
3004 |
strSQL.Append("))"); |
|
3005 |
} |
|
3006 |
strSQL.Append(")"); |
|
3007 |
} |
|
3008 |
|
|
3009 |
strSQL.Append(" AND DATE(CONCAT(A1.years, '/', A2.month, '/', A3.days)) IS NOT NULL"); |
|
3010 |
strSQL.AppendFormat(" AND (DATE('{0}') <= DATE(CONCAT(A1.years, '/', A2.month, '/', A3.days))", dtStart.ToShortDateString()); |
|
3011 |
strSQL.AppendFormat(" AND DATE(CONCAT(A1.years, '/', A2.month, '/', A3.days)) <= DATE('{0}'))", dtLast.ToShortDateString()); |
|
3012 |
strSQL.Append(" ORDER BY d) A"); |
|
3013 |
strSQL.Append(", PERSONSALARYMASTER AS B"); |
|
3014 |
strSQL.AppendFormat(" WHERE B.PERSONCODE = {0}", PersonCode); |
|
3015 |
strSQL.Append(" AND B.STARTDATE <= A.d"); |
|
3016 |
strSQL.Append(" ORDER BY A.d, B.STARTDATE DESC) AS AX"); |
|
3017 |
strSQL.Append(" GROUP BY AX.hiduke"); |
|
3018 |
strSQL.Append(" ORDER BY AX.hiduke"); |
|
3019 |
strSQL.AppendFormat(" ) AS SAL{0}", PersonCode); |
|
3020 |
|
|
3021 |
bFirst = false; |
|
3022 |
} |
|
3023 |
|
|
3024 |
ArrayList ArData = new ArrayList(); |
|
3025 |
if (!SalDB.ExecuteReader(strSQL.ToString(), ref ArData)) return; |
|
3026 |
|
|
3027 |
foreach (object[] objRec in ArData) |
|
3028 |
{ |
|
3029 |
SalDataList.Add(new KeyValuePair<int, long>(CommonMotions.cnvInt(objRec[0]), CommonMotions.cnvLong(objRec[1]))); |
|
3030 |
} |
|
3031 |
|
|
3032 |
} |
|
3033 |
catch (Exception ex) |
|
3034 |
{ |
|
3035 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
3036 |
} |
|
3037 |
} |
|
3038 |
#endregion |
|
3039 |
|
|
3040 |
#region 期間より零れた経過給与を取得しデータテーブルの開始終了日を変更する |
|
3041 |
/// <summary> |
|
3042 |
/// 期間より零れた経過給与を取得しデータテーブルの開始終了日を変更する |
|
3043 |
/// </summary> |
|
3044 |
/// <returns></returns> |
|
3045 |
public static void CalcSpilledSalaryAll(IOMPersonInCharge SalDB |
|
3046 |
, int TargetYear |
|
3047 |
, ref ArrayList TargetList) |
|
3048 |
{ |
|
3049 |
try |
|
3050 |
{ |
|
3051 |
// デフォルト開始・終了を取得する |
|
3052 |
DateTime dtDefaultStart = CommonMotions.GetOpeningEndDate(TargetYear, true); |
|
3053 |
DateTime dtDefaultEnd = CommonMotions.GetOpeningEndDate(TargetYear, false); |
|
3054 |
DateTime dtPrevEnd = CommonMotions.GetOpeningEndDate((TargetYear - 1), false); |
|
3055 |
|
|
3056 |
// 先期の期末を取得する |
|
3057 |
int PrevTargetYear = (TargetYear - 1); |
|
3058 |
if (PrevTargetYear < 1) return; |
|
3059 |
|
|
3060 |
List<KeyValuePair<DateTime, DateTime>> wrkStEdDate = new List<KeyValuePair<DateTime, DateTime>>(); |
|
3061 |
bool bFirst = true; |
|
3062 |
StringBuilder strSQL = new StringBuilder(); |
|
3063 |
foreach (object[] ObjRec in TargetList) |
|
3064 |
{ |
|
3065 |
// 開始・終了日が無い場合はデフォルトの期首・期末を使用する |
|
3066 |
DateTime stDate = CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.StartDate]); |
|
3067 |
DateTime edDate = CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.CompDate]); |
|
3068 |
CalcStartCompDate(TargetYear, |
|
3069 |
dtDefaultStart, dtDefaultEnd, |
|
3070 |
CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.HireStartDays]), |
|
3071 |
CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.HireCompDays]), |
|
3072 |
CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.NextStartDate]), |
|
3073 |
CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.NextCompDate]), |
|
3074 |
ref stDate, ref edDate); |
|
3075 |
|
|
3076 |
int nPersonCode = CommonMotions.cnvInt(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.PersonCode]); |
|
3077 |
wrkStEdDate.Add(new KeyValuePair<DateTime, DateTime>(stDate, edDate)); |
|
3078 |
|
|
3079 |
// 今期の最初が先期の最後より大きい場合は処理しない |
|
3080 |
//if (dtPrevEnd < stDate) continue; |
|
3081 |
|
|
3082 |
if (!bFirst) strSQL.Append(" Union "); |
|
3083 |
|
|
3084 |
strSQL.Append("Select"); |
|
3085 |
strSQL.Append(" Base.ConstructionPeriod"); |
|
3086 |
strSQL.Append(", Base.ConstructionCode"); |
|
3087 |
strSQL.Append(", Base.ConstructionPersonCode"); |
|
3088 |
strSQL.Append(", Ledger.ConstructionStart"); |
|
3089 |
strSQL.Append(", Ledger.ConstructionEnd"); |
|
3090 |
strSQL.Append(", LDetail.GroupCount"); |
|
3091 |
strSQL.Append(", LDetail.SalaryFlg"); |
|
3092 |
strSQL.Append(", LDetail.SalaryDays"); |
|
3093 |
strSQL.Append(" From"); |
|
3094 |
strSQL.Append(" constructionbaseinfo As Base"); |
|
3095 |
strSQL.Append(" Inner Join constructionledger As Ledger"); |
|
3096 |
strSQL.Append(" On Ledger.ConstructionCode = Base.ConstructionCode"); |
|
3097 |
strSQL.AppendFormat(" And DATE('{0}') <= DATE(Ledger.ConstructionEnd)", dtDefaultStart.ToShortDateString()); |
|
3098 |
strSQL.Append(" Inner Join constructionledgerdetail As LDetail"); |
|
3099 |
strSQL.Append(" On LDetail.ConstructionCode = Base.ConstructionCode"); |
|
3100 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)FrmConstructionLedger.DataGroup.Payroll); |
|
3101 |
strSQL.AppendFormat(" And LDetail.CompanyCode = {0}", nPersonCode); |
|
3102 |
strSQL.AppendFormat(" And LDetail.SalaryFlg = {0}", (int)CommonDefine.SalaryDevision.DaysInput); |
|
3103 |
strSQL.Append(" Where"); |
|
3104 |
strSQL.AppendFormat(" Base.ConstructionPeriod = {0}", TargetYear); |
|
3105 |
strSQL.AppendFormat(" And Base.ConstructionPersonCode = {0}", nPersonCode); |
|
3106 |
strSQL.Append(" And("); |
|
3107 |
strSQL.AppendFormat("DATE('{0}') <= DATE(Ledger.ConstructionStart)", edDate.ToShortDateString()); |
|
3108 |
strSQL.AppendFormat(" And DATE(Ledger.ConstructionEnd) <= DATE('{0}')", dtDefaultEnd.ToShortDateString()); |
|
3109 |
strSQL.Append(")"); |
|
3110 |
strSQL.Append(" Union Select"); |
|
3111 |
strSQL.Append(" Base.ConstructionPeriod"); |
|
3112 |
strSQL.Append(", Base.ConstructionCode"); |
|
3113 |
strSQL.Append(", Base.ConstructionPersonCode"); |
|
3114 |
strSQL.Append(", Ledger.ConstructionStart"); |
|
3115 |
strSQL.Append(", Ledger.ConstructionEnd"); |
|
3116 |
strSQL.Append(", LDetail.GroupCount"); |
|
3117 |
strSQL.Append(", LDetail.SalaryFlg"); |
|
3118 |
strSQL.Append(", LDetail.SalaryDays"); |
|
3119 |
strSQL.Append(" From"); |
|
3120 |
strSQL.Append(" constructionbaseinfo As Base"); |
|
3121 |
strSQL.Append(" Inner Join constructionledger As Ledger"); |
|
3122 |
strSQL.Append(" On Ledger.ConstructionCode = Base.ConstructionCode"); |
|
3123 |
strSQL.Append(" Inner Join constructionledgerdetail As LDetail"); |
|
3124 |
strSQL.Append(" On LDetail.ConstructionCode = Base.ConstructionCode"); |
|
3125 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)FrmConstructionLedger.DataGroup.Payroll); |
|
3126 |
strSQL.AppendFormat(" And LDetail.CompanyCode = {0}", nPersonCode); |
|
3127 |
strSQL.AppendFormat(" And LDetail.SalaryFlg = {0}", (int)CommonDefine.SalaryDevision.DaysInput); |
|
3128 |
strSQL.Append(" Where"); |
|
3129 |
strSQL.AppendFormat(" Base.ConstructionPeriod = {0}", PrevTargetYear); |
|
3130 |
strSQL.AppendFormat(" And Base.ConstructionPersonCode = {0}", nPersonCode); |
|
3131 |
strSQL.Append(" And("); |
|
3132 |
strSQL.AppendFormat("DATE('{0}') <= DATE(Ledger.ConstructionStart)", (stDate.AddDays(-1)).ToShortDateString()); |
|
3133 |
strSQL.AppendFormat(" And DATE(Ledger.ConstructionEnd) <= DATE('{0}')", dtPrevEnd.ToShortDateString()); |
|
3134 |
strSQL.Append(")"); |
|
3135 |
|
|
3136 |
bFirst = false; |
|
3137 |
} |
|
3138 |
// データ取得 |
|
3139 |
ArrayList ArData = new ArrayList(); |
|
3140 |
if (!SalDB.ExecuteReader(strSQL.ToString(), ref ArData)) return; |
|
3141 |
|
|
3142 |
int DateCnt = 0; |
|
3143 |
foreach (object[] ObjRec in TargetList) |
|
3144 |
{ |
|
3145 |
int nPersonCode = CommonMotions.cnvInt(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.PersonCode]); |
|
3146 |
|
|
3147 |
// 半端分の日数を取得する |
|
3148 |
int NextDiffDay = ArData.Cast<object[]>().Where(x => CommonMotions.cnvInt(x[0]) == TargetYear |
|
3149 |
&& CommonMotions.cnvInt(x[2]) == nPersonCode) |
|
3150 |
.Sum(y => CommonMotions.cnvInt(y[7])); |
|
3151 |
|
|
3152 |
// 先期の半端分の日数を取得する |
|
3153 |
int PrevDiffDay = ArData.Cast<object[]>().Where(x => CommonMotions.cnvInt(x[0]) == PrevTargetYear |
|
3154 |
&& CommonMotions.cnvInt(x[2]) == nPersonCode) |
|
3155 |
.Sum(y => CommonMotions.cnvInt(y[7])); |
|
3156 |
|
|
3157 |
KeyValuePair<DateTime, DateTime> CurStEd = wrkStEdDate[DateCnt++]; |
|
3158 |
// 今期終了日変更 |
|
3159 |
DateTime wrkDate = CurStEd.Value.AddDays(NextDiffDay); |
|
3160 |
if (dtDefaultEnd.Date < wrkDate.Date) wrkDate = dtDefaultEnd; |
|
3161 |
ObjRec[(int)CreateLedgerSQL.GetPersonTerm.CompDate] = wrkDate; |
|
3162 |
// 今期開始日変更 |
|
3163 |
wrkDate = CurStEd.Key.AddDays(PrevDiffDay); |
|
3164 |
if (dtDefaultEnd.Date < wrkDate.Date) wrkDate = dtDefaultEnd; |
|
3165 |
ObjRec[(int)CreateLedgerSQL.GetPersonTerm.StartDate] = wrkDate; |
|
3166 |
} |
|
3167 |
|
|
3168 |
} |
|
3169 |
catch (Exception ex) |
|
3170 |
{ |
|
3171 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
3172 |
} |
|
3173 |
} |
|
3174 |
#endregion |
|
3175 |
|
|
3176 |
#region 計算開始・終了日のチェック入れ替え |
|
3177 |
/// <summary> |
|
3178 |
/// 計算開始・終了日のチェック入れ替え |
|
3179 |
/// </summary> |
|
3180 |
public static void CalcStartCompDate(int BusinessPeriod, |
|
3181 |
DateTime dtDefaultStart, DateTime dtDefaultEnd, |
|
3182 |
DateTime HireStartDate, DateTime HireCompDate, |
|
3183 |
DateTime NextStartDate, DateTime NextCompDate, |
|
3184 |
ref DateTime StartDate, ref DateTime CompDate) |
|
3185 |
{ |
|
3186 |
try |
|
3187 |
{ |
|
3188 |
// ----- 計算開始日セット |
|
3189 |
if (StartDate == DateTime.MinValue) |
|
3190 |
{ |
|
3191 |
StartDate = dtDefaultStart; |
|
3192 |
} |
|
3193 |
else if (dtDefaultStart <= HireStartDate && HireStartDate <= dtDefaultEnd) |
|
3194 |
{ |
|
3195 |
StartDate = HireStartDate; |
|
3196 |
} |
|
3197 |
else if (dtDefaultStart < StartDate) |
|
3198 |
{ |
|
3199 |
StartDate = dtDefaultStart; |
|
3200 |
} |
|
3201 |
// 入社日が期内ならば開始を入社日にする |
|
3202 |
if (dtDefaultStart < HireStartDate && HireStartDate < dtDefaultEnd) StartDate = HireStartDate; |
|
3203 |
|
|
3204 |
// ----- 計算終了日セット |
|
3205 |
// Defaultは期末 |
|
3206 |
CompDate = dtDefaultEnd; |
|
3207 |
|
|
3208 |
// 退社日が期内ならば終了を退社日にする |
|
3209 |
if (dtDefaultStart < HireCompDate && HireCompDate < dtDefaultEnd) CompDate = HireCompDate; |
|
3210 |
|
|
3211 |
// 来季の開始があって期末日より小さい場合は置き換える |
|
3212 |
if (NextStartDate != DateTime.MinValue) |
|
3213 |
{ |
|
3214 |
if (StartDate < NextStartDate && NextStartDate < CompDate) CompDate = NextStartDate.AddDays(-1); |
|
3215 |
} |
|
3216 |
} |
|
3217 |
catch (Exception ex) |
|
3218 |
{ |
|
3219 |
logger.ErrorFormat("システムエラー:{0}", ex.Message); |
|
3220 |
} |
|
3221 |
} |
|
3222 |
#endregion |
|
3223 |
|
|
2923 | 3224 |
#region グリッド行退避エリア初期化処理 |
2924 | 3225 |
/// <summary> |
2925 | 3226 |
/// グリッド行退避エリア初期化処理 |
branches/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs | ||
---|---|---|
14 | 14 |
/// <summary> |
15 | 15 |
/// 本体バージョン |
16 | 16 |
/// </summary> |
17 |
public static int s_SystemVersion = 180;
|
|
17 |
public static int s_SystemVersion = 181;
|
|
18 | 18 |
|
19 | 19 |
/// <summary> |
20 | 20 |
/// コピー・環境バージョン |
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalScreen/FrmApprovalScreen.cs | ||
---|---|---|
437 | 437 |
{ |
438 | 438 |
try |
439 | 439 |
{ |
440 |
// ???F?????`?F?b?N |
|
440 |
// ???F???`?F?b?N |
|
441 |
if (!CheckUserAppStat()) return; |
|
442 |
|
|
443 |
// ???F?????`?F?b?N |
|
441 | 444 |
if (!ChkApprovalOrder()) return; |
442 | 445 |
|
443 | 446 |
// ??????`?F?b?N |
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ApprovalScreen/FrmApprovalScreenAuxiliary.cs | ||
---|---|---|
1243 | 1243 |
} |
1244 | 1244 |
#endregion |
1245 | 1245 |
|
1246 |
#region ログイン者・承認者の承認状態をグリッドから取る |
|
1247 |
/// <summary> |
|
1248 |
/// ログイン者・承認者の承認状態をグリッドから取る |
|
1249 |
/// </summary> |
|
1250 |
/// <returns></returns> |
|
1251 |
private bool CheckUserAppStat() |
|
1252 |
{ |
|
1253 |
try |
|
1254 |
{ |
|
1255 |
DataGridView dgv = dgvEntryData; |
|
1256 |
|
|
1257 |
int nPresonCode = (int)DispGridColumn.ApprovalCode; |
|
1258 |
DataGridViewRow[] CurRow = dgv.Rows.Cast<DataGridViewRow>() |
|
1259 |
.Where(x => CommonMotions.cnvInt(x.Cells[nPresonCode].Value) == CommonMotions.LoginUserData.PersonCode) |
|
1260 |
.ToArray(); |
|
1261 |
// ----- グリッドに無いものは処理できない |
|
1262 |
if (CurRow.Count() < 1) return false; |
|
1263 |
|
|
1264 |
// ----- 承認済みは処理できない |
|
1265 |
// グリッドの承認文字を取得する |
|
1266 |
int nGridAppStat = (int)DispGridColumn.ApprovalStatus; |
|
1267 |
string strGridApp = CommonMotions.cnvString(CurRow[0].Cells[nGridAppStat].Value); |
|
1268 |
// 承認文字を取得する |
|
1269 |
int nAppStat = (int)CommonDefine.ApprovalStatus.Approval; |
|
1270 |
string strAppString = CommonDefine.ApprovalStatusString[nAppStat]; |
|
1271 |
if (strGridApp == strAppString) |
|
1272 |
{ |
|
1273 |
MessageBox.Show("既に承認されています。", "承認エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); |
|
1274 |
return false; |
|
1275 |
} |
|
1276 |
|
|
1277 |
return true; |
|
1278 |
} |
|
1279 |
catch (Exception ex) |
|
1280 |
{ |
|
1281 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
1282 |
return false; |
|
1283 |
} |
|
1284 |
} |
|
1285 |
#endregion |
|
1286 |
|
|
1246 | 1287 |
#region ---------->> 指示連絡コメント処理 |
1247 | 1288 |
#region 指示連絡コメント表示処理 |
1248 | 1289 |
/// <summary> |
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedgerList/CreateLedgerSQL.cs | ||
---|---|---|
229 | 229 |
DateTime dtDefaultEnd = CommonMotions.GetOpeningEndDate(TargetNum, false); |
230 | 230 |
DateTime stDate = DateTime.Today; |
231 | 231 |
DateTime edDate = DateTime.Today; |
232 |
DateTime DspSTDate = DateTime.MaxValue; |
|
233 |
DateTime DspEdDate = DateTime.MinValue; |
|
234 | 232 |
|
235 |
|
|
236 | 233 |
// 給与を集計する |
237 | 234 |
foreach (object[] ObjRec in TargetList) |
238 | 235 |
{ |
... | ... | |
479 | 476 |
} |
480 | 477 |
} |
481 | 478 |
#endregion |
482 |
|
|
479 |
|
|
483 | 480 |
#region 担当者毎割当無費目毎の経費を取得する(一括バージョン) |
484 | 481 |
/// <summary> |
485 | 482 |
/// 担当者毎割当無費目毎の経費を取得する(一括バージョン) |
... | ... | |
556 | 553 |
} |
557 | 554 |
} |
558 | 555 |
#endregion |
556 |
|
|
557 |
#region 経過給与を一括取得する |
|
558 |
/// <summary> |
|
559 |
/// 経過給与を一括取得する |
|
560 |
/// </summary> |
|
561 |
public static void GetElapsedSalaryAll(IOMPersonInCharge SalaryDB, int TargetNum, ref ArrayList TargetList, ref List<SalaryClass> ArrarySalary) |
|
562 |
{ |
|
563 |
try |
|
564 |
{ |
|
565 |
// 零れた給与日数取得とデータテーブル加工 |
|
566 |
CommonMotions.CalcSpilledSalaryAll(SalaryDB, TargetNum, ref TargetList); |
|
567 |
|
|
568 |
// 給与累積取得 |
|
569 |
List<KeyValuePair<int, long>> SalDataList = new List<KeyValuePair<int, long>>(); |
|
570 |
CommonMotions.CalcElapsedSalaryAll(SalaryDB, TargetList, ref SalDataList); |
|
571 |
|
|
572 |
foreach (object[] ObjRec in TargetList) |
|
573 |
{ |
|
574 |
int nDepartmentCode = CommonMotions.cnvInt(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.DepartmentCode]); |
|
575 |
int nPersonCode = CommonMotions.cnvInt(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.PersonCode]); |
|
576 |
DateTime stDate = CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.StartDate]); |
|
577 |
DateTime edDate = CommonMotions.cnvDate(ObjRec[(int)CreateLedgerSQL.GetPersonTerm.CompDate]); |
|
578 |
|
|
579 |
KeyValuePair<int, long> CurValuePair = SalDataList.Find(x => x.Key == nPersonCode); |
|
580 |
|
|
581 |
// 配列セット |
|
582 |
ArrarySalary.Add(new SalaryClass(nDepartmentCode, nPersonCode, (int)CurValuePair.Value, stDate, edDate)); |
|
583 |
} |
|
584 |
} |
|
585 |
catch (Exception ex) |
|
586 |
{ |
|
587 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
588 |
} |
|
589 |
} |
|
590 |
#endregion |
|
591 |
|
|
592 |
#region 担当者毎割当無費目毎の経費を一括取得する |
|
593 |
/// <summary> |
|
594 |
/// 担当者毎割当無費目毎の経費を一括取得する |
|
595 |
/// </summary> |
|
596 |
public static void GetPersonExpensesCostValueAll(IOCostDataOfPerson CostDB, |
|
597 |
int nNowYear, |
|
598 |
List<SalaryClass> ArrarySalary, |
|
599 |
ref List<PersonExpensesCost> CostValue) |
|
600 |
{ |
|
601 |
try |
|
602 |
{ |
|
603 |
// デフォルト開始・終了を取得する |
|
604 |
DateTime dtDefaultStart = CommonMotions.GetOpeningEndDate(nNowYear, true); |
|
605 |
DateTime dtDefaultEnd = CommonMotions.GetOpeningEndDate(nNowYear, false); |
|
606 |
|
|
607 |
// 担当者毎経費データよりどこの工事にも所属していない経費を取得する |
|
608 |
bool bFirst = true; |
|
609 |
StringBuilder strSQL = new StringBuilder(); |
|
610 |
foreach (SalaryClass CurData in ArrarySalary) |
|
611 |
{ |
|
612 |
if(!bFirst) strSQL.Append(" UNION "); |
|
613 |
strSQL.Append("SELECT"); |
|
614 |
strSQL.Append(" PERSONCODE"); |
|
615 |
strSQL.Append(", B.DATATYPE AS DATATYPE"); |
|
616 |
strSQL.Append(", SUM(B.ENTRYPRICE) AS SUMPRICE"); |
|
617 |
strSQL.Append(" FROM"); |
|
618 |
strSQL.Append(" COSTDATAOFPERSON AS B"); |
|
619 |
strSQL.Append(" WHERE"); |
|
620 |
|
|
621 |
strSQL.AppendFormat(" B.PERSONCODE = {0}", CurData.PersonCode); |
|
622 |
|
|
623 |
strSQL.AppendFormat(" AND (DATE('{0}') <= DATE(B.ACTIONDATE)", dtDefaultStart.ToShortDateString()); |
|
624 |
strSQL.AppendFormat(" AND DATE(B.ACTIONDATE) <= DATE('{0}'))", dtDefaultEnd.ToShortDateString()); |
|
625 |
strSQL.Append(" AND B.CONSTRUCTIONCODE = 0"); |
|
626 |
strSQL.Append(" GROUP BY B.DATATYPE"); |
|
627 |
|
|
628 |
bFirst = false; |
|
629 |
} |
|
630 |
// データ取得 |
|
631 |
ArrayList arList = new ArrayList(); |
|
632 |
if (!CostDB.ExecuteReader(strSQL.ToString(), ref arList)) return; |
|
633 |
|
|
634 |
// データセット |
|
635 |
int[] GetCostVal = new int[CostDataOfPerson.DataNoStrArrary.Length]; |
|
636 |
foreach (SalaryClass CurData in ArrarySalary) |
|
637 |
{ |
|
638 |
Array.Clear(GetCostVal, 0, GetCostVal.Length); |
|
639 |
// 取得結果を振り分ける |
|
640 |
foreach (object[] wrkobj in arList) |
|
641 |
{ |
|
642 |
for (int i = (int)CostDataOfPerson.DataNoDef.Transport |
|
643 |
; i <= (int)CostDataOfPerson.DataNoDef.DisposalCost |
|
644 |
; i++) |
|
645 |
{ |
|
646 |
GetCostVal[i] = arList.Cast<object[]>().Where(x => CommonMotions.cnvInt(x[0]) == CurData.PersonCode |
|
647 |
&& CommonMotions.cnvInt(x[1]) == i) |
|
648 |
.Sum(y => CommonMotions.cnvInt(y[2])); |
|
649 |
} |
|
650 |
} |
|
651 |
|
|
652 |
CostValue.Add(new PersonExpensesCost(CurData.DepartmentCode |
|
653 |
, CurData.PersonCode |
|
654 |
, CurData.StartDate |
|
655 |
, CurData.CompDate |
|
656 |
, new int[] { GetCostVal[0], GetCostVal[1], GetCostVal[2], |
|
657 |
GetCostVal[3],GetCostVal[4],GetCostVal[5], |
|
658 |
GetCostVal[6] })); |
|
659 |
} |
|
660 |
} |
|
661 |
catch (Exception ex) |
|
662 |
{ |
|
663 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
664 |
} |
|
665 |
} |
|
666 |
#endregion |
|
559 | 667 |
} |
560 | 668 |
} |
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedgerList/FrmConstructionLedgerListAuxiliary.cs | ||
---|---|---|
1009 | 1009 |
|
1010 | 1010 |
// ????o????^???????? |
1011 | 1011 |
List<SalaryClass> ArrarySalary = new List<SalaryClass>(); |
1012 |
CreateLedgerSQL.GetElapsedSalary(SalaryDB, (int)numUDConstPro.Value, TargetList, ref ArrarySalary); |
|
1012 |
//CreateLedgerSQL.GetElapsedSalary(SalaryDB, (int)numUDConstPro.Value, TargetList, ref ArrarySalary); |
|
1013 |
CreateLedgerSQL.GetElapsedSalaryAll(SalaryDB, (int)numUDConstPro.Value, ref TargetList, ref ArrarySalary); |
|
1013 | 1014 |
|
1014 | 1015 |
// ????o????????? |
1015 | 1016 |
List<PersonExpensesCost> ArraryCost = new List<PersonExpensesCost>(); |
1016 |
CreateLedgerSQL.GetPersonExpensesCostValue(CostDB, (int)numUDConstPro.Value, ArrarySalary, ref ArraryCost); |
|
1017 |
//CreateLedgerSQL.GetPersonExpensesCostValue(CostDB, (int)numUDConstPro.Value, ArrarySalary, ref ArraryCost); |
|
1018 |
CreateLedgerSQL.GetPersonExpensesCostValueAll(CostDB, (int)numUDConstPro.Value, ArrarySalary, ref ArraryCost); |
|
1017 | 1019 |
|
1018 | 1020 |
// ProgressBar??l???X???? |
1019 | 1021 |
prgber.Value++; |
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/DepExpenssList/FrmDepExpenssListAuxiliary.cs | ||
---|---|---|
813 | 813 |
|
814 | 814 |
// ????o????^???????? |
815 | 815 |
List<SalaryClass> ArrarySalary = new List<SalaryClass>(); |
816 |
CreateLedgerSQL.GetElapsedSalary(SalaryDB, (int)numUDConstPro.Value, TargetList, ref ArrarySalary); |
|
816 |
//CreateLedgerSQL.GetElapsedSalary(SalaryDB, (int)numUDConstPro.Value, TargetList, ref ArrarySalary); |
|
817 |
CreateLedgerSQL.GetElapsedSalaryAll(SalaryDB, (int)numUDConstPro.Value, ref TargetList, ref ArrarySalary); |
|
817 | 818 |
|
818 | 819 |
// ProgressBar??l???X???? |
819 | 820 |
prgber.Value++; |
... | ... | |
821 | 822 |
|
822 | 823 |
// ????o????????? |
823 | 824 |
List<PersonExpensesCost> ArraryCost = new List<PersonExpensesCost>(); |
824 |
CreateLedgerSQL.GetPersonExpensesCostValue(CostDB, (int)numUDConstPro.Value, ArrarySalary, ref ArraryCost); |
|
825 |
//CreateLedgerSQL.GetPersonExpensesCostValue(CostDB, (int)numUDConstPro.Value, ArrarySalary, ref ArraryCost); |
|
826 |
CreateLedgerSQL.GetPersonExpensesCostValueAll(CostDB, (int)numUDConstPro.Value, ArrarySalary, ref ArraryCost); |
|
825 | 827 |
|
826 | 828 |
// ProgressBar??l???X???? |
827 | 829 |
prgber.Value++; |
828 | 830 |
prgber.Update(); |
829 | 831 |
|
830 |
// ?f?t?H???g?J?n?E?I?????????? |
|
831 |
DateTime dtDefaultStart = CommonMotions.GetOpeningEndDate((int)numUDConstPro.Value, true); |
|
832 |
DateTime dtDefaultEnd = CommonMotions.GetOpeningEndDate((int)numUDConstPro.Value, false); |
|
833 |
|
|
834 | 832 |
// ----- ?o????^?\???i?w?b?_?[??\???j |
835 |
SetPayrollData(TargetList, dtDefaultStart, dtDefaultEnd, SalaryDB, LedgerDB, ArrarySalary);
|
|
833 |
SetPayrollData(TargetList, LedgerDB, ArrarySalary); |
|
836 | 834 |
|
837 | 835 |
// ProgressBar??l???X???? |
838 | 836 |
prgber.Value++; |
... | ... | |
873 | 871 |
int[] TotalArea = new int[TotalColCnt]; |
874 | 872 |
Array.Clear(TotalArea, 0, TotalArea.Length); |
875 | 873 |
|
874 |
// ?f?t?H???g?J?n?E?I?????????? |
|
875 |
DateTime dtDefaultStart = CommonMotions.GetOpeningEndDate((int)numUDConstPro.Value, true); |
|
876 |
DateTime dtDefaultEnd = CommonMotions.GetOpeningEndDate((int)numUDConstPro.Value, false); |
|
877 |
|
|
876 | 878 |
int ino = 1; |
877 | 879 |
// ?f?[?^?\?? |
878 | 880 |
if (arData.Count != 0) |
... | ... | |
1249 | 1251 |
/// <summary> |
1250 | 1252 |
/// ??????o????^??\?????? |
1251 | 1253 |
/// </summary> |
1252 |
private void SetPayrollData(ArrayList TargetList, |
|
1253 |
DateTime dtDefaultStart, DateTime dtDefaultEnd, |
|
1254 |
IOMPersonInCharge SalaryDB, IOConstructionLedger LedgerDB, |
|
1254 |
private void SetPayrollData(ArrayList TargetList, IOConstructionLedger LedgerDB, |
|
1255 | 1255 |
List<SalaryClass> ArrarySalary) |
1256 | 1256 |
{ |
1257 | 1257 |
try |
1258 | 1258 |
{ |
1259 |
|
|
1260 | 1259 |
//Debug.WriteLine("---------------------"); |
1261 | 1260 |
// ?????R?[?h?? |
1262 | 1261 |
int DepartmentCode = GetDepartmentCode(); |
branches/src/ProcessManagement/ProcessManagement/Properties/AssemblyInfo.cs | ||
---|---|---|
32 | 32 |
// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を |
33 | 33 |
// 既定値にすることができます: |
34 | 34 |
// [assembly: AssemblyVersion("1.0.*")] |
35 |
[assembly: AssemblyVersion("1.0.1.180")]
|
|
36 |
[assembly: AssemblyFileVersion("1.0.1.180")]
|
|
35 |
[assembly: AssemblyVersion("1.0.1.181")]
|
|
36 |
[assembly: AssemblyFileVersion("1.0.1.181")]
|
|
37 | 37 |
// Log4netを使用する |
38 | 38 |
[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4net.config", Watch = true)] |
他の形式にエクスポート: Unified diff