リビジョン 483
オリジナルリビジョン:573相当
trunk/src/ProcessManagement/ProcessManagement/Common/CommonDefine.cs | ||
---|---|---|
226 | 226 |
/// </summary> |
227 | 227 |
public static string s_ExecCurrentDirName = @"C:\Users\Default\Desktop\"; |
228 | 228 |
public static string s_SaveExecl = @"SaveExcel"; |
229 |
public static string s_ExecExcelDirName = @"見積もりエクセルデータ"; |
|
230 | 229 |
#endregion |
231 | 230 |
|
232 | 231 |
#region ワード使用時パス |
... | ... | |
1207 | 1206 |
/// </summary> |
1208 | 1207 |
public static string[] Type2YearString = new string[] { "対象年", "年" }; |
1209 | 1208 |
#endregion |
1209 |
|
|
1210 |
#region 有給取得日数テーブル |
|
1211 |
/// <summary> |
|
1212 |
/// 有給取得日数テーブル |
|
1213 |
/// 年度:1年目 :10日 |
|
1214 |
/// 2年目 :11日 |
|
1215 |
/// 3年目 :12日 |
|
1216 |
/// 4年目 :14日 |
|
1217 |
/// 5年目 :16日 |
|
1218 |
/// 6年目 :18日 |
|
1219 |
/// 7年目以降:20日 |
|
1220 |
/// </summary> |
|
1221 |
public static List<decimal> PaidHolidayTable = new List<decimal> { 10, 11, 12, 14, 16, 18, 20 }; |
|
1222 |
#endregion |
|
1210 | 1223 |
} |
1211 | 1224 |
} |
trunk/src/ProcessManagement/ProcessManagement/Common/CommonMotions.cs | ||
---|---|---|
2959 | 2959 |
|
2960 | 2960 |
#region TimeSpanから年数を取得する |
2961 | 2961 |
/// <summary> |
2962 |
/// TimeSpanから年数を取得する |
|
2962 |
/// TimeSpanから年数を取得する(切り上げ)
|
|
2963 | 2963 |
/// </summary> |
2964 | 2964 |
/// <param name="timespan"></param> |
2965 | 2965 |
/// <returns></returns> |
2966 | 2966 |
public static int GetTimeSpanYears(this TimeSpan timespan) |
2967 | 2967 |
{ |
2968 |
return (int)((double)timespan.Days / 365.2425);
|
|
2968 |
return CommonMotions.cnvRoundUp((double)timespan.Days / 365.2425);
|
|
2969 | 2969 |
} |
2970 | 2970 |
#endregion |
2971 | 2971 |
|
... | ... | |
3411 | 3411 |
strSQL.AppendFormat(" And DATE('{0}') <= DATE(Ledger.ConstructionEnd)", dtDefaultStart.ToShortDateString()); |
3412 | 3412 |
strSQL.Append(" Inner Join constructionledgerdetail As LDetail"); |
3413 | 3413 |
strSQL.Append(" On LDetail.ConstructionCode = Base.ConstructionCode"); |
3414 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)FrmConstructionLedger.DataGroup.Payroll);
|
|
3414 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)ConstructionLedgerDetail.GroupCountDef.Payroll);
|
|
3415 | 3415 |
strSQL.AppendFormat(" And LDetail.CompanyCode = {0}", PersonCode); |
3416 | 3416 |
strSQL.AppendFormat(" And LDetail.SalaryFlg = {0}", (int)CommonDefine.SalaryDevision.DaysInput); |
3417 | 3417 |
strSQL.Append(" Where"); |
... | ... | |
3478 | 3478 |
strSQL.Append(" On Ledger.ConstructionCode = Base.ConstructionCode"); |
3479 | 3479 |
strSQL.Append(" Inner Join constructionledgerdetail As LDetail"); |
3480 | 3480 |
strSQL.Append(" On LDetail.ConstructionCode = Base.ConstructionCode"); |
3481 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)FrmConstructionLedger.DataGroup.Payroll);
|
|
3481 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)ConstructionLedgerDetail.GroupCountDef.Payroll);
|
|
3482 | 3482 |
strSQL.AppendFormat(" And LDetail.CompanyCode = {0}", PersonCode); |
3483 | 3483 |
strSQL.AppendFormat(" And LDetail.SalaryFlg = {0}", (int)CommonDefine.SalaryDevision.DaysInput); |
3484 | 3484 |
strSQL.Append(" Where"); |
... | ... | |
3719 | 3719 |
strSQL.AppendFormat(" And DATE('{0}') <= DATE(Ledger.ConstructionEnd)", dtDefaultStart.ToShortDateString()); |
3720 | 3720 |
strSQL.Append(" Inner Join constructionledgerdetail As LDetail"); |
3721 | 3721 |
strSQL.Append(" On LDetail.ConstructionCode = Base.ConstructionCode"); |
3722 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)FrmConstructionLedger.DataGroup.Payroll);
|
|
3722 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)ConstructionLedgerDetail.GroupCountDef.Payroll);
|
|
3723 | 3723 |
strSQL.AppendFormat(" And LDetail.ComponentCode = {0}", nDepCode); |
3724 | 3724 |
strSQL.AppendFormat(" And LDetail.CompanyCode = {0}", nPersonCode); |
3725 | 3725 |
strSQL.AppendFormat(" And LDetail.SalaryFlg = {0}", (int)CommonDefine.SalaryDevision.DaysInput); |
... | ... | |
3757 | 3757 |
strSQL.Append(" On Ledger.ConstructionCode = Base.ConstructionCode"); |
3758 | 3758 |
strSQL.Append(" Inner Join constructionledgerdetail As LDetail"); |
3759 | 3759 |
strSQL.Append(" On LDetail.ConstructionCode = Base.ConstructionCode"); |
3760 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)FrmConstructionLedger.DataGroup.Payroll);
|
|
3760 |
strSQL.AppendFormat(" And LDetail.GroupCount = {0}", (int)ConstructionLedgerDetail.GroupCountDef.Payroll);
|
|
3761 | 3761 |
strSQL.AppendFormat(" And LDetail.ComponentCode = {0}", nDepCode); |
3762 | 3762 |
strSQL.AppendFormat(" And LDetail.CompanyCode = {0}", nPersonCode); |
3763 | 3763 |
strSQL.AppendFormat(" And LDetail.SalaryFlg = {0}", (int)CommonDefine.SalaryDevision.DaysInput); |
... | ... | |
4025 | 4025 |
strSQL.Append(", A.DISPLAYORDER"); |
4026 | 4026 |
strSQL.Append(", 1"); |
4027 | 4027 |
strSQL.Append(" From DEPARTMENTMASTER As A"); |
4028 |
strSQL.AppendFormat(" Where DeleteFlg = {0}", (int)CommonDefine.DataDeleteDef.Exists); |
|
4028 | 4029 |
return; |
4029 | 4030 |
} |
4030 | 4031 |
|
... | ... | |
4185 | 4186 |
} |
4186 | 4187 |
else |
4187 | 4188 |
{ |
4188 |
strSQL.AppendFormat(" AND ((DATE(AB.STARTDATE) <= DATE('{0}'))", dtDefaultEnd.ToShortDateString()); |
|
4189 |
strSQL.AppendFormat(" AND(DATE('{0}') <= DATE(AB.CompDate)", dtDefaultStart.ToShortDateString()); |
|
4190 |
strSQL.AppendFormat(" OR DATE('{0}') = DATE(AB.CompDate)))", DateTime.MinValue.ToShortDateString()); |
|
4189 |
strSQL.AppendFormat(" AND DATE('{0}') <= DATE(AB.CompDate)", dtDefaultEnd.ToShortDateString()); |
|
4190 |
|
|
4191 |
//strSQL.AppendFormat(" AND ((DATE(AB.STARTDATE) <= DATE('{0}'))", dtDefaultEnd.ToShortDateString()); |
|
4192 |
//strSQL.AppendFormat(" AND(DATE('{0}') <= DATE(AB.CompDate)", dtDefaultStart.ToShortDateString()); |
|
4193 |
//strSQL.AppendFormat(" OR DATE('{0}') = DATE(AB.CompDate)))", DateTime.MinValue.ToShortDateString()); |
|
4191 | 4194 |
} |
4192 | 4195 |
|
4193 | 4196 |
if (bNowSeason) |
... | ... | |
4443 | 4446 |
strSQL.Append(", A.NAMECODE"); |
4444 | 4447 |
strSQL.Append(", B.DEPARTMENTCODE"); |
4445 | 4448 |
strSQL.Append(", A.DeleteFlg"); |
4446 |
strSQL.Append(" FROM"); |
|
4447 |
strSQL.Append(" DIVISIONMASTER AS A"); |
|
4449 |
strSQL.Append(" FROM DIVISIONMASTER AS A"); |
|
4448 | 4450 |
|
4449 |
strSQL.Append(" LEFT JOIN ("); |
|
4450 |
strSQL.Append("SELECT"); |
|
4451 |
strSQL.Append(" BB.NAMECODE"); |
|
4452 |
strSQL.Append(", BB.DEPARTMENTCODE"); |
|
4453 |
strSQL.Append(", BB.EXPENSESRAITO"); |
|
4454 |
strSQL.Append(", BB.EXPENSESPERIOD"); |
|
4455 |
strSQL.Append(", BB.DisplayOrder"); |
|
4456 |
strSQL.Append(" FROM"); |
|
4457 |
strSQL.Append(" DEPARTMENTEXPENSESMASTER AS BB) AS B"); |
|
4458 |
strSQL.Append(" ON A.NAMECODE = B.NAMECODE"); |
|
4451 |
strSQL.Append(" LEFT JOIN (SELECT"); |
|
4452 |
strSQL.Append(" BB.NAMECODE"); |
|
4453 |
strSQL.Append(" , BB.DEPARTMENTCODE"); |
|
4454 |
strSQL.Append(" , BB.EXPENSESRAITO"); |
|
4455 |
strSQL.Append(" , BB.EXPENSESPERIOD"); |
|
4456 |
strSQL.Append(" , BB.DisplayOrder"); |
|
4457 |
strSQL.Append(" FROM DEPARTMENTEXPENSESMASTER AS BB) AS B"); |
|
4458 |
strSQL.Append(" ON A.NAMECODE = B.NAMECODE"); |
|
4459 | 4459 |
strSQL.AppendFormat(" AND B.EXPENSESPERIOD = {0}", Preiod); |
4460 | 4460 |
if(DepartmentCode > 0) strSQL.AppendFormat(" AND B.DEPARTMENTCODE = {0}", DepartmentCode); |
4461 | 4461 |
|
4462 | 4462 |
strSQL.Append(" LEFT JOIN departmentmaster AS C"); |
4463 |
strSQL.Append(" On C.DepartmentCode = B.DEPARTMENTCODE"); |
|
4463 |
strSQL.Append(" On C.DepartmentCode = B.DEPARTMENTCODE");
|
|
4464 | 4464 |
|
4465 |
strSQL.AppendFormat(" WHERE A.DIVISIONCODE = {0}", (int)DivisionMaster.DivisionMasterCodeDef.ConstructionExpenses); |
|
4465 |
strSQL.Append(" WHERE"); |
|
4466 |
strSQL.AppendFormat(" A.DIVISIONCODE = {0}", (int)DivisionMaster.DivisionMasterCodeDef.ConstructionExpenses); |
|
4466 | 4467 |
strSQL.AppendFormat(" AND A.DeleteFlg = {0}", (int)CommonDefine.DataDeleteDef.Exists); |
4468 |
strSQL.Append(" And B.EXPENSESRAITO > 0.00"); |
|
4467 | 4469 |
|
4468 | 4470 |
strSQL.Append(" ORDER BY A.DISPLAYORDER, C.DISPLAYORDER"); |
4469 | 4471 |
} |
... | ... | |
4475 | 4477 |
strSQL.Append(", B.NAMECODE"); |
4476 | 4478 |
strSQL.Append(", B.DEPARTMENTCODE"); |
4477 | 4479 |
strSQL.Append(", B.DeleteFlg"); |
4478 |
strSQL.Append(" FROM"); |
|
4479 |
strSQL.Append(" DEPARTMENTEXPENSESMASTER AS B"); |
|
4480 |
strSQL.Append(" FROM DEPARTMENTEXPENSESMASTER AS B"); |
|
4480 | 4481 |
|
4481 | 4482 |
strSQL.Append(" INNER JOIN departmentmaster AS C"); |
4482 | 4483 |
strSQL.Append(" On C.DepartmentCode = B.DEPARTMENTCODE"); |
... | ... | |
4485 | 4486 |
strSQL.AppendFormat(" ON D.DIVISIONCODE = {0}", (int)DivisionMaster.DivisionMasterCodeDef.ConstructionExpenses); |
4486 | 4487 |
strSQL.Append(" And D.NameCode = B.NameCode"); |
4487 | 4488 |
|
4488 |
strSQL.AppendFormat(" WHERE B.EXPENSESPERIOD = {0}", Preiod); |
|
4489 |
strSQL.Append(" WHERE"); |
|
4490 |
strSQL.AppendFormat(" B.EXPENSESPERIOD = {0}", Preiod); |
|
4489 | 4491 |
if (DepartmentCode > 0) strSQL.AppendFormat(" AND B.DEPARTMENTCODE = {0}", DepartmentCode); |
4492 |
strSQL.Append(" And B.EXPENSESRAITO > 0.00"); |
|
4493 |
|
|
4490 | 4494 |
strSQL.Append(" ORDER BY D.DeleteFlg, C.DISPLAYORDER, B.DISPLAYORDER"); |
4491 | 4495 |
} |
4492 | 4496 |
|
... | ... | |
4695 | 4699 |
IOMHolidayCalender CalDB = new IOMHolidayCalender(); |
4696 | 4700 |
try |
4697 | 4701 |
{ |
4702 |
// 当月以前は翌月1日をセットして抜ける |
|
4703 |
if(WorktDate.Year < DateTime.Today.Year |
|
4704 |
|| WorktDate.Month < DateTime.Today.Month) |
|
4705 |
{ |
|
4706 |
DateTime dtTarget = new DateTime(WorktDate.Year, WorktDate.Month, 1).AddMonths(1); |
|
4707 |
return dtTarget; |
|
4708 |
} |
|
4709 |
|
|
4698 | 4710 |
StringBuilder strSQL = new StringBuilder(); |
4699 | 4711 |
|
4700 | 4712 |
strSQL.Append("SELECT t1.d, DATE_FORMAT(C.HOLIDAY, '%Y/%m/%d') HOLIDAY FROM"); |
... | ... | |
4707 | 4719 |
strSQL.AppendFormat(" AND A2.month = {0}", WorktDate.Month); |
4708 | 4720 |
strSQL.Append(" AND CAST(CONCAT(A1.years, '/', A2.month, '/', A3.days) as DATE) IS NOT NULL) as t1"); |
4709 | 4721 |
strSQL.Append(" LEFT JOIN HOLIDAYCALENDERMASTER C ON C.HOLIDAY = t1.d"); |
4722 |
strSQL.Append(" Where"); |
|
4723 |
strSQL.AppendFormat(" DATE(t1.d) <= DATE('{0}')", DateTime.Today.ToShortDateString()); |
|
4710 | 4724 |
strSQL.Append(" ORDER BY t1.d Desc"); |
4711 | 4725 |
|
4712 | 4726 |
ArrayList arList = new ArrayList(); |
4713 | 4727 |
CalDB.ExecuteReader(strSQL.ToString(), ref arList); |
4714 | 4728 |
|
4729 |
DateTime dtRet = DateTime.MinValue; |
|
4715 | 4730 |
int nPrevCount = 0; |
4716 |
DateTime dtRet = DateTime.MinValue; |
|
4717 | 4731 |
foreach(object[] objCalender in arList) |
4718 | 4732 |
{ |
4719 | 4733 |
// まず今日を探す |
trunk/src/ProcessManagement/ProcessManagement/Common/Process/ClsChangeLedgerData.cs | ||
---|---|---|
54 | 54 |
/// 工事詳細台帳再計算処理(総支払額・粗利・給与・純利益が対象) |
55 | 55 |
/// </summary> |
56 | 56 |
/// <param name="ConstrCode"></param> |
57 |
private static bool LedgerRecalculate(IOConstructionLedgerExcute LedgerExcuteDB, List<int> ConstrCodeList)
|
|
57 |
public static bool LedgerRecalculate(IOConstructionLedgerExcute LedgerExcuteDB, List<int> ConstrCodeList)
|
|
58 | 58 |
{ |
59 | 59 |
try |
60 | 60 |
{ |
61 | 61 |
StringBuilder strSQL = new StringBuilder(); |
62 | 62 |
bool bRet = true; |
63 | 63 |
|
64 |
// 対象データ取得 |
|
65 |
List<int> GroupCodeList1 = new List<int>(); |
|
66 |
List<int> GroupCodeList2 = new List<int>(); |
|
67 |
List<int> GroupCodeList3 = new List<int>(); |
|
68 |
List<int> GroupCodeList4 = new List<int>(); |
|
69 |
// 集計コード一覧作成 |
|
70 |
SetGroupCodeList(ref GroupCodeList1, ref GroupCodeList2, ref GroupCodeList3, ref GroupCodeList4); |
|
71 |
|
|
72 | 64 |
foreach (int ConstrCode in ConstrCodeList) |
73 | 65 |
{ |
74 | 66 |
// 工事台帳実行データよりグループごとの合計金額を取得する |
... | ... | |
86 | 78 |
if (InData.Count == 0) continue; |
87 | 79 |
|
88 | 80 |
// 対象データ取得 |
89 |
int Payment = CalcGetTotal(InData, GroupCodeList1); // ----- 支払額 |
|
81 |
decimal Payment = InData.Cast<object[]>() // ----- 支払額 |
|
82 |
.Where(x => CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.Expenses // 1:経費 |
|
83 |
|| CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.ConstructionCosts // 2:施工費 |
|
84 |
|| CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.TransportationCosts // 3:交通費(通行料・電車代) |
|
85 |
|| CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.PurchaseCosts // 4:購入品 |
|
86 |
|| CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.VehicleLeaseFee // 5:車両リース代 |
|
87 |
|| CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.ParkingCosts // 6:駐車場・資材置き場 |
|
88 |
|| CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.RoomChargeCosts // 7:宿泊費 |
|
89 |
|| CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.DisposeCosts) // 8:処分費等 |
|
90 |
.Sum(y=>CommonMotions.cnvDecimal(y[1])); |
|
90 | 91 |
|
91 |
int PExpenses = CalcGetTotal(InData, GroupCodeList2); // ----- 人件費 |
|
92 |
decimal PExpenses = InData.Cast<object[]>() // ----- 人件費 |
|
93 |
.Where(x => CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.Instructor // 9:指導員給料行 |
|
94 |
|| CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.Assistant) // 10:副担当者給料行 |
|
95 |
.Sum(y => CommonMotions.cnvDecimal(y[1])); |
|
92 | 96 |
|
93 |
int Allowance = CalcGetTotal(InData, GroupCodeList3); // ----- 給与 |
|
97 |
decimal Allowance = InData.Cast<object[]>() // ----- 給与 |
|
98 |
.Where(x => CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.Payroll) // 11:担当者給料行 |
|
99 |
.Sum(y => CommonMotions.cnvDecimal(y[1])); |
|
94 | 100 |
|
95 |
int Billing = CalcGetTotal(InData, GroupCodeList4); // ----- 請求額 |
|
101 |
decimal Compensation = InData.Cast<object[]>() // ----- 補填 |
|
102 |
.Where(x => CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.Compensation) // 12:補填金額(金額がマイナスで入っている) |
|
103 |
.Sum(y => CommonMotions.cnvDecimal(y[1])); |
|
96 | 104 |
|
105 |
decimal Billing = InData.Cast<object[]>() // ----- 請求額 |
|
106 |
.Where(x => CommonMotions.cnvInt(x[0]) == (int)ConstructionLedgerDetail.GroupCountDef.BillingAmount) // 14:請求金額 |
|
107 |
.Sum(y => CommonMotions.cnvDecimal(y[1])); |
|
108 |
|
|
97 | 109 |
// ----- 工事詳細台帳更新 |
98 | 110 |
strSQL.Clear(); |
99 | 111 |
strSQL.Append("UPDATE CONSTRUCTIONLEDGER SET"); |
100 | 112 |
strSQL.AppendFormat(" TOTALPAYMENT = {0}", Payment); |
101 |
strSQL.AppendFormat(", GROSSPROFIT = {0}", (Billing - Payment));
|
|
113 |
strSQL.AppendFormat(", GROSSPROFIT = {0}", (Billing - (Payment + Compensation)));
|
|
102 | 114 |
strSQL.AppendFormat(", Allowance = {0}", Allowance); |
103 |
strSQL.AppendFormat(", NETPROFIT = {0}", (Billing - (Payment + Allowance + PExpenses)));
|
|
115 |
strSQL.AppendFormat(", NETPROFIT = {0}", (Billing - ((Payment + Compensation) + Allowance + PExpenses)));
|
|
104 | 116 |
strSQL.AppendFormat(" WHERE CONSTRUCTIONCODE = {0}", ConstrCode); |
105 | 117 |
if (!LedgerExcuteDB.ExecuteNonQuery(strSQL.ToString(), false)) |
106 | 118 |
{ |
... | ... | |
118 | 130 |
} |
119 | 131 |
#endregion |
120 | 132 |
|
121 |
#region 集計用コードセット
|
|
133 |
#region 担当者購入品データ番号より工事詳細台帳のグループ番号を取得する
|
|
122 | 134 |
/// <summary> |
123 |
/// 集計用コードセット
|
|
135 |
/// 担当者購入品データ番号より工事詳細台帳のグループ番号を取得する
|
|
124 | 136 |
/// </summary> |
125 |
private static void SetGroupCodeList(ref List<int> GroupCodeList1, ref List<int> GroupCodeList2, |
|
126 |
ref List<int> GroupCodeList3, ref List<int> GroupCodeList4) |
|
127 |
{ |
|
128 |
try |
|
129 |
{ |
|
130 |
// 対象データ取得 |
|
131 |
// ----- 支払額コードセット |
|
132 |
GroupCodeList1.Add((int)FrmConstructionLedger.DataGroup.Expenses); // 1:経費 |
|
133 |
GroupCodeList1.Add((int)FrmConstructionLedger.DataGroup.ConstructionCosts); // 2:施工費 |
|
134 |
GroupCodeList1.Add((int)FrmConstructionLedger.DataGroup.TransportationCosts); // 3:交通費(通行料・電車代) |
|
135 |
GroupCodeList1.Add((int)FrmConstructionLedger.DataGroup.PurchaseCosts); // 4:購入品 |
|
136 |
GroupCodeList1.Add((int)FrmConstructionLedger.DataGroup.VehicleLeaseFee); // 5:車両リース代 |
|
137 |
GroupCodeList1.Add((int)FrmConstructionLedger.DataGroup.ParkingCosts); // 6:駐車場・資材置き場 |
|
138 |
GroupCodeList1.Add((int)FrmConstructionLedger.DataGroup.RoomChargeCosts); // 7:宿泊費 |
|
139 |
GroupCodeList1.Add((int)FrmConstructionLedger.DataGroup.DisposeCosts); // 8:処分費等 |
|
140 |
|
|
141 |
// ----- 人件費コードセット |
|
142 |
GroupCodeList2.Add((int)FrmConstructionLedger.DataGroup.Instructor); // 9:指導員給料行 |
|
143 |
GroupCodeList2.Add((int)FrmConstructionLedger.DataGroup.Assistant); // 10:副担当者給料行 |
|
144 |
|
|
145 |
// ----- 給与コードセット |
|
146 |
GroupCodeList3.Add((int)FrmConstructionLedger.DataGroup.Payroll); // 11:担当者給料行 |
|
147 |
|
|
148 |
// ----- 請求額コードセット |
|
149 |
GroupCodeList4.Add((int)FrmConstructionLedger.DataGroup.BillingAmount); // 14:請求金額 |
|
150 |
} |
|
151 |
catch (System.Exception ex) |
|
152 |
{ |
|
153 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
154 |
} |
|
155 |
} |
|
156 |
#endregion |
|
157 |
|
|
158 |
#region 配列リストより指定された合計を取得する |
|
159 |
/// <summary> |
|
160 |
/// 配列リストより指定された合計を取得する |
|
161 |
/// </summary> |
|
162 |
private static int CalcGetTotal(ArrayList InData, List<int> GroupCodeList) |
|
163 |
{ |
|
164 |
try |
|
165 |
{ |
|
166 |
int iRetVal = 0; |
|
167 |
|
|
168 |
int GrpNo = -1; |
|
169 |
foreach (int GroupCode in GroupCodeList) |
|
170 |
{ |
|
171 |
foreach (object[] CurRec in InData) |
|
172 |
{ |
|
173 |
GrpNo = CommonMotions.cnvInt(CurRec[0]); |
|
174 |
|
|
175 |
if (GroupCode != GrpNo) continue; |
|
176 |
|
|
177 |
iRetVal += CommonMotions.cnvInt(CurRec[1]); |
|
178 |
} |
|
179 |
} |
|
180 |
|
|
181 |
return iRetVal; |
|
182 |
} |
|
183 |
catch (System.Exception ex) |
|
184 |
{ |
|
185 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
186 |
return 0; |
|
187 |
} |
|
188 |
} |
|
189 |
#endregion |
|
190 |
|
|
191 |
#region 工事詳細台帳のグループ番号を取得する |
|
192 |
/// <summary> |
|
193 |
/// 工事詳細台帳のグループ番号を取得する |
|
194 |
/// </summary> |
|
195 | 137 |
/// <param name="TargetData"></param> |
196 | 138 |
/// <returns></returns> |
197 | 139 |
public static int GetConstructionLedgerGroupNo(int TargetData) |
... | ... | |
202 | 144 |
{ |
203 | 145 |
case (int)CostDataOfPerson.DataNoDef.Transport: |
204 | 146 |
// 交通費(通行料・電車代) |
205 |
GroupNo = (int)FrmConstructionLedger.DataGroup.TransportationCosts;
|
|
147 |
GroupNo = (int)ConstructionLedgerDetail.GroupCountDef.TransportationCosts;
|
|
206 | 148 |
break; |
207 | 149 |
case (int)CostDataOfPerson.DataNoDef.Purchase: |
208 | 150 |
// 購入品 |
209 |
GroupNo = (int)FrmConstructionLedger.DataGroup.PurchaseCosts;
|
|
151 |
GroupNo = (int)ConstructionLedgerDetail.GroupCountDef.PurchaseCosts;
|
|
210 | 152 |
break; |
211 | 153 |
case (int)CostDataOfPerson.DataNoDef.Lease: |
212 | 154 |
// 車両リース代 |
213 |
GroupNo = (int)FrmConstructionLedger.DataGroup.VehicleLeaseFee;
|
|
155 |
GroupNo = (int)ConstructionLedgerDetail.GroupCountDef.VehicleLeaseFee;
|
|
214 | 156 |
break; |
215 | 157 |
case (int)CostDataOfPerson.DataNoDef.StoragePlace: |
216 | 158 |
// 駐車場・資材置き場 |
217 |
GroupNo = (int)FrmConstructionLedger.DataGroup.ParkingCosts;
|
|
159 |
GroupNo = (int)ConstructionLedgerDetail.GroupCountDef.ParkingCosts;
|
|
218 | 160 |
break; |
219 | 161 |
case (int)CostDataOfPerson.DataNoDef.Lodging: |
220 | 162 |
// 宿泊費 |
221 |
GroupNo = (int)FrmConstructionLedger.DataGroup.RoomChargeCosts;
|
|
163 |
GroupNo = (int)ConstructionLedgerDetail.GroupCountDef.RoomChargeCosts;
|
|
222 | 164 |
break; |
223 | 165 |
case (int)CostDataOfPerson.DataNoDef.DisposalCost: |
224 | 166 |
// 処分費 |
225 |
GroupNo = (int)FrmConstructionLedger.DataGroup.DisposeCosts;
|
|
167 |
GroupNo = (int)ConstructionLedgerDetail.GroupCountDef.DisposeCosts;
|
|
226 | 168 |
break; |
227 | 169 |
} |
228 | 170 |
return GroupNo; |
229 | 171 |
} |
230 | 172 |
#endregion |
231 | 173 |
|
232 |
#region 工事詳細台帳より支払金額グリッドの先頭カラム数を取得する |
|
233 |
/// <summary> |
|
234 |
/// 工事詳細台帳より支払金額グリッドの先頭カラム数を取得する |
|
235 |
/// </summary> |
|
236 |
public static int GetLedgerColumnCount() |
|
237 |
{ |
|
238 |
try |
|
239 |
{ |
|
240 |
return (Enum.GetNames(typeof(FrmConstructionLedger.GridColumn)).Length - 1); |
|
241 |
} |
|
242 |
catch (System.Exception ex) |
|
243 |
{ |
|
244 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
245 |
return 0; |
|
246 |
} |
|
247 |
} |
|
248 |
#endregion |
|
249 |
|
|
250 | 174 |
#region 対象年月から工事詳細台帳のグリッドカラム位置を算出する |
251 | 175 |
/// <summary> |
252 | 176 |
/// 対象年月から工事詳細台帳のグリッドカラム位置を算出する |
... | ... | |
313 | 237 |
DetailSQL.AppendFormat(" AND OperatingFlg = {0}", (int)ConstructionLedgerDetail.SalOpeKindDef.Oparateing); // 対応中フラグ |
314 | 238 |
DetailSQL.AppendFormat(" AND SALARYFLG != {0}", (int)CommonDefine.SalaryDevision.Noting); // 給与振分区分 |
315 | 239 |
DetailSQL.AppendFormat(" AND GROUPCOUNT IN ({0},{1},{2})", |
316 |
(int)FrmConstructionLedger.DataGroup.Instructor, // 指導員給料
|
|
317 |
(int)FrmConstructionLedger.DataGroup.Assistant, // 副担当者給料
|
|
318 |
(int)FrmConstructionLedger.DataGroup.Payroll); // 担当者給料行
|
|
240 |
(int)ConstructionLedgerDetail.GroupCountDef.Instructor, // 指導員給料
|
|
241 |
(int)ConstructionLedgerDetail.GroupCountDef.Assistant, // 副担当者給料
|
|
242 |
(int)ConstructionLedgerDetail.GroupCountDef.Payroll); // 担当者給料行
|
|
319 | 243 |
|
320 | 244 |
if (!LedgerDeDB.SelectAction(DetailSQL.ToString(), ref DetailList, false) || DetailList.Count == 0) continue; |
321 | 245 |
|
... | ... | |
428 | 352 |
// 支払給与計算 |
429 | 353 |
switch (CurRec.GroupCount) |
430 | 354 |
{ |
431 |
case (int)FrmConstructionLedger.DataGroup.Instructor: // 指導員給料
|
|
355 |
case (int)ConstructionLedgerDetail.GroupCountDef.Instructor: // 指導員給料
|
|
432 | 356 |
SumSaraly = CommonMotions.cnvRound((double)CommonDefine.InstructorMonthryCost / MonthDayCnt); |
433 | 357 |
SumSaraly *= (ts.Days + 1); |
434 | 358 |
break; |
435 |
case (int)FrmConstructionLedger.DataGroup.Assistant: // 副担当者給料
|
|
359 |
case (int)ConstructionLedgerDetail.GroupCountDef.Assistant: // 副担当者給料
|
|
436 | 360 |
SumSaraly = CommonMotions.cnvRound((double)CommonDefine.AssistantMonthryCost / MonthDayCnt); |
437 | 361 |
SumSaraly *= (ts.Days + 1); |
438 | 362 |
break; |
439 |
case (int)FrmConstructionLedger.DataGroup.Payroll: // 担当者給料行
|
|
363 |
case (int)ConstructionLedgerDetail.GroupCountDef.Payroll: // 担当者給料行
|
|
440 | 364 |
// 範囲給与取得 |
441 | 365 |
SumSaraly = CommonMotions.CalcElapsedSalary(PersonDB, StartDate, CompDate, CurRec.CompanyCode, false); |
442 | 366 |
break; |
... | ... | |
491 | 415 |
} |
492 | 416 |
#endregion |
493 | 417 |
|
494 |
#region 日付指定時の給与書込み |
|
495 |
/// <summary> |
|
496 |
/// 日付指定時の給与書込み |
|
497 |
/// </summary> |
|
498 |
private static bool CalcSalaryDevisionDaysInput(IOConstructionLedgerExcute LedgerExDB, |
|
499 |
IOMPersonInCharge PersonDB, |
|
500 |
ConstructionLedger LedgerRec, |
|
501 |
ConstructionLedgerDetail CurRec) |
|
502 |
{ |
|
503 |
IOProcessApproval AppDB = new IOProcessApproval(); |
|
504 |
try |
|
505 |
{ |
|
506 |
StringBuilder strSQL = new StringBuilder(); |
|
507 |
|
|
508 |
|
|
509 |
|
|
510 |
// 月末日より月日数を取得する |
|
511 |
int MonthDayCnt = DateTimeUtil.EndOfMonth(LedgerRec.ConstructionStart).Day; |
|
512 |
int OneDaySalary = 0; |
|
513 |
int nSalaryDays = 0; |
|
514 |
// 支払給与計算 |
|
515 |
switch (CurRec.GroupCount) |
|
516 |
{ |
|
517 |
case (int)FrmConstructionLedger.DataGroup.Instructor: // 指導員給料 |
|
518 |
OneDaySalary = CommonMotions.cnvRound((double)CommonDefine.InstructorMonthryCost / MonthDayCnt); |
|
519 |
break; |
|
520 |
case (int)FrmConstructionLedger.DataGroup.Assistant: // 副担当者給料 |
|
521 |
OneDaySalary = CommonMotions.cnvRound((double)CommonDefine.AssistantMonthryCost / MonthDayCnt); |
|
522 |
OneDaySalary *= CurRec.SalaryDays; |
|
523 |
break; |
|
524 |
case (int)FrmConstructionLedger.DataGroup.Payroll: // 担当者給料行 |
|
525 |
// 給与取得 |
|
526 |
OneDaySalary = CommonMotions.CalcElapsedSalary(PersonDB |
|
527 |
, LedgerRec.ConstructionStart |
|
528 |
, LedgerRec.ConstructionStart |
|
529 |
, CurRec.CompanyCode |
|
530 |
, false); |
|
531 |
break; |
|
532 |
} |
|
533 |
|
|
534 |
|
|
535 |
OneDaySalary *= nSalaryDays; |
|
536 |
|
|
537 |
// 工事予算が承認された月の位置に書く |
|
538 |
strSQL.Clear(); |
|
539 |
strSQL.Append(AppDB.CreatePrimarykeyString(CurRec.SourceCode, |
|
540 |
3, // 工事予算承認番号(ClsExecuteが無いため) |
|
541 |
(int)CommonDefine.s_Default_OrderNo, |
|
542 |
1)); // 先頭レコード |
|
543 |
strSQL.AppendFormat(" AND ApprovalStatus = {0}", (int)CommonDefine.ApprovalStatus.Approval); |
|
544 |
ProcessApproval AppRec = new ProcessApproval(); |
|
545 |
if (!AppDB.SelectAction(strSQL.ToString(), ref AppRec)) return false; |
|
546 |
|
|
547 |
// 実行データのキー部年月日は開始月の1日 |
|
548 |
DateTime ParaDate = new DateTime(LedgerRec.ConstructionStart.Year |
|
549 |
, LedgerRec.ConstructionStart.Month, 1); |
|
550 |
// 台帳カラム位置 |
|
551 |
int Columncnt = Enum.GetNames(typeof(FrmConstructionLedger.GridColumn)).Length - 1; |
|
552 |
|
|
553 |
// 増減データは承認データを日付として使用する |
|
554 |
if ((CurRec.SourceCode % 10) > 1) |
|
555 |
{ |
|
556 |
DateTime dtStart = LedgerRec.ConstructionStart; |
|
557 |
// 工事詳細台帳実行データよりカラム対象の年月を取得する |
|
558 |
DateTime wrkDate = GetConstructionLedgerStartDate(LedgerExDB, CurRec.ConstructionCode, false); |
|
559 |
if (wrkDate.Date != DateTime.MinValue.Date) dtStart = wrkDate; |
|
560 |
|
|
561 |
// 承認日付より持ってくる |
|
562 |
Columncnt = CalcTargetMonthToColumn(LedgerExDB, false, LedgerRec.ConstructionCode, AppRec.PetitionApprovalDate); |
|
563 |
ParaDate = new DateTime(AppRec.PetitionApprovalDate.Year |
|
564 |
, AppRec.PetitionApprovalDate.Month, 1); |
|
565 |
} |
|
566 |
|
|
567 |
// 支払いデータ書込み |
|
568 |
if (!AddOrSetSalary(LedgerExDB |
|
569 |
, CurRec.ConstructionCode, CurRec.GroupCount, CurRec.LineCount, Columncnt, OneDaySalary, ParaDate)) |
|
570 |
{ |
|
571 |
return false; |
|
572 |
} |
|
573 |
|
|
574 |
return true; |
|
575 |
} |
|
576 |
catch (Exception ex) |
|
577 |
{ |
|
578 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
579 |
return false; |
|
580 |
} |
|
581 |
finally |
|
582 |
{ |
|
583 |
AppDB.close(); AppDB = null; |
|
584 |
} |
|
585 |
} |
|
586 |
#endregion |
|
587 |
|
|
588 | 418 |
#region 日次処理での日当の加算を判定する |
589 | 419 |
/// <summary> |
590 | 420 |
/// 日次処理での日当の加算を判定する |
... | ... | |
686 | 516 |
StringBuilder strSQL = new StringBuilder(); |
687 | 517 |
strSQL.Append("Select ConstructionCode, (MAX(DetailCount) + 1) As NewNo From constructionledgerdetail"); |
688 | 518 |
strSQL.AppendFormat(" Where ConstructionCode = {0}", ConstrCode); |
689 |
strSQL.AppendFormat(" And GroupCount = {0}", (int)FrmConstructionLedger.DataGroup.ConstructionCosts);
|
|
519 |
strSQL.AppendFormat(" And GroupCount = {0}", (int)ConstructionLedgerDetail.GroupCountDef.ConstructionCosts);
|
|
690 | 520 |
|
691 | 521 |
ArrayList arList = new ArrayList(); |
692 | 522 |
if (!DetailDB.ExecuteReader(strSQL.ToString(), ref arList, bConnect)) return 0; |
... | ... | |
704 | 534 |
} |
705 | 535 |
#endregion |
706 | 536 |
|
707 |
// ----------------------------------- |
|
708 |
// フルバージョン本体のみ ↓↓↓ |
|
709 |
// ----------------------------------- |
|
537 |
#region 工事詳細台帳実行データより最小カラムの対象年月日を取得する |
|
538 |
/// <summary> |
|
539 |
/// 工事詳細台帳実行データより最小カラムの対象年月日を取得する |
|
540 |
/// </summary> |
|
541 |
public static DateTime GetConstructionLedgerStartDate(IOConstructionLedgerExcute LedgerExcuteDB, int ConstrCode, bool bTableConnect = true) |
|
542 |
{ |
|
543 |
try |
|
544 |
{ |
|
545 |
// 工事詳細台帳実行データよりカラム対象の年月を取得する |
|
546 |
StringBuilder strCol = new StringBuilder(); |
|
547 |
strCol.Append("SELECT MIN(ColumnCount), TargetMonth From constructionledgerexcute"); |
|
548 |
strCol.AppendFormat(" Where ConstructionCode = {0}", ConstrCode); |
|
549 |
ArrayList arrCol = new ArrayList(); |
|
550 |
if (!LedgerExcuteDB.ExecuteReader(strCol.ToString(), ref arrCol, bTableConnect)) return DateTime.MinValue; |
|
551 |
|
|
552 |
if (arrCol.Count < 1) return DateTime.MinValue; |
|
553 |
|
|
554 |
// 実行データが存在した場合は最小のカラムの年月スタートにする |
|
555 |
object[] wrkCol = (object[])arrCol[0]; |
|
556 |
return CommonMotions.cnvDate(wrkCol[1]); |
|
557 |
} |
|
558 |
catch (Exception ex) |
|
559 |
{ |
|
560 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
561 |
return DateTime.MinValue; |
|
562 |
} |
|
563 |
} |
|
564 |
#endregion |
|
565 |
|
|
566 |
#region 日付指定時の給与書込み |
|
567 |
/// <summary> |
|
568 |
/// 日付指定時の給与書込み |
|
569 |
/// </summary> |
|
570 |
private static bool CalcSalaryDevisionDaysInput(IOConstructionLedgerExcute LedgerExDB, |
|
571 |
IOMPersonInCharge PersonDB, |
|
572 |
ConstructionLedger LedgerRec, |
|
573 |
ConstructionLedgerDetail CurRec) |
|
574 |
{ |
|
575 |
IOProcessApproval AppDB = new IOProcessApproval(); |
|
576 |
try |
|
577 |
{ |
|
578 |
StringBuilder strSQL = new StringBuilder(); |
|
579 |
|
|
580 |
|
|
581 |
|
|
582 |
// 月末日より月日数を取得する |
|
583 |
int MonthDayCnt = DateTimeUtil.EndOfMonth(LedgerRec.ConstructionStart).Day; |
|
584 |
int OneDaySalary = 0; |
|
585 |
int nSalaryDays = 0; |
|
586 |
// 支払給与計算 |
|
587 |
switch (CurRec.GroupCount) |
|
588 |
{ |
|
589 |
case (int)ConstructionLedgerDetail.GroupCountDef.Instructor: // 指導員給料 |
|
590 |
OneDaySalary = CommonMotions.cnvRound((double)CommonDefine.InstructorMonthryCost / MonthDayCnt); |
|
591 |
break; |
|
592 |
case (int)ConstructionLedgerDetail.GroupCountDef.Assistant: // 副担当者給料 |
|
593 |
OneDaySalary = CommonMotions.cnvRound((double)CommonDefine.AssistantMonthryCost / MonthDayCnt); |
|
594 |
OneDaySalary *= CurRec.SalaryDays; |
|
595 |
break; |
|
596 |
case (int)ConstructionLedgerDetail.GroupCountDef.Payroll: // 担当者給料行 |
|
597 |
// 給与取得 |
|
598 |
OneDaySalary = CommonMotions.CalcElapsedSalary(PersonDB |
|
599 |
, LedgerRec.ConstructionStart |
|
600 |
, LedgerRec.ConstructionStart |
|
601 |
, CurRec.CompanyCode |
|
602 |
, false); |
|
603 |
break; |
|
604 |
} |
|
605 |
|
|
606 |
|
|
607 |
OneDaySalary *= nSalaryDays; |
|
608 |
|
|
609 |
// 工事予算が承認された月の位置に書く |
|
610 |
strSQL.Clear(); |
|
611 |
strSQL.Append(AppDB.CreatePrimarykeyString(CurRec.SourceCode, |
|
612 |
3, // 工事予算承認番号(ClsExecuteが無いため) |
|
613 |
(int)CommonDefine.s_Default_OrderNo, |
|
614 |
1)); // 先頭レコード |
|
615 |
strSQL.AppendFormat(" AND ApprovalStatus = {0}", (int)CommonDefine.ApprovalStatus.Approval); |
|
616 |
ProcessApproval AppRec = new ProcessApproval(); |
|
617 |
if (!AppDB.SelectAction(strSQL.ToString(), ref AppRec)) return false; |
|
618 |
|
|
619 |
// 実行データのキー部年月日は開始月の1日 |
|
620 |
DateTime ParaDate = new DateTime(LedgerRec.ConstructionStart.Year |
|
621 |
, LedgerRec.ConstructionStart.Month, 1); |
|
622 |
// 台帳カラム位置 |
|
623 |
int Columncnt = Enum.GetNames(typeof(FrmConstructionLedger.GridColumn)).Length - 1; |
|
624 |
|
|
625 |
// 増減データは承認データを日付として使用する |
|
626 |
if ((CurRec.SourceCode % 10) > 1) |
|
627 |
{ |
|
628 |
DateTime dtStart = LedgerRec.ConstructionStart; |
|
629 |
// 工事詳細台帳実行データよりカラム対象の年月を取得する |
|
630 |
DateTime wrkDate = GetConstructionLedgerStartDate(LedgerExDB, CurRec.ConstructionCode, false); |
|
631 |
if (wrkDate.Date != DateTime.MinValue.Date) dtStart = wrkDate; |
|
632 |
|
|
633 |
// 承認日付より持ってくる |
|
634 |
Columncnt = CalcTargetMonthToColumn(LedgerExDB, false, LedgerRec.ConstructionCode, AppRec.PetitionApprovalDate); |
|
635 |
ParaDate = new DateTime(AppRec.PetitionApprovalDate.Year |
|
636 |
, AppRec.PetitionApprovalDate.Month, 1); |
|
637 |
} |
|
638 |
|
|
639 |
// 支払いデータ書込み |
|
640 |
if (!AddOrSetSalary(LedgerExDB |
|
641 |
, CurRec.ConstructionCode, CurRec.GroupCount, CurRec.LineCount, Columncnt, OneDaySalary, ParaDate)) |
|
642 |
{ |
|
643 |
return false; |
|
644 |
} |
|
645 |
|
|
646 |
return true; |
|
647 |
} |
|
648 |
catch (Exception ex) |
|
649 |
{ |
|
650 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
651 |
return false; |
|
652 |
} |
|
653 |
finally |
|
654 |
{ |
|
655 |
AppDB.close(); AppDB = null; |
|
656 |
} |
|
657 |
} |
|
658 |
#endregion |
|
659 |
|
|
660 |
#region 工事詳細台帳より支払金額グリッドの先頭カラム数を取得する |
|
661 |
/// <summary> |
|
662 |
/// 工事詳細台帳より支払金額グリッドの先頭カラム数を取得する |
|
663 |
/// </summary> |
|
664 |
public static int GetLedgerColumnCount() |
|
665 |
{ |
|
666 |
try |
|
667 |
{ |
|
668 |
return (Enum.GetNames(typeof(FrmConstructionLedger.GridColumn)).Length - 1); |
|
669 |
} |
|
670 |
catch (System.Exception ex) |
|
671 |
{ |
|
672 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
673 |
return 0; |
|
674 |
} |
|
675 |
} |
|
676 |
#endregion |
|
677 |
|
|
710 | 678 |
#region 工事詳細台帳データを新規作成する |
711 | 679 |
/// <summary> |
712 | 680 |
/// 工事詳細台帳データを新規作成する |
... | ... | |
1039 | 1007 |
} |
1040 | 1008 |
#endregion |
1041 | 1009 |
|
1042 |
#region 工事詳細台帳実行データより最小カラムの対象年月日を取得する |
|
1043 |
/// <summary> |
|
1044 |
/// 工事詳細台帳実行データより最小カラムの対象年月日を取得する |
|
1045 |
/// </summary> |
|
1046 |
public static DateTime GetConstructionLedgerStartDate(IOConstructionLedgerExcute LedgerExcuteDB, int ConstrCode, bool bTableConnect = true) |
|
1047 |
{ |
|
1048 |
try |
|
1049 |
{ |
|
1050 |
// 工事詳細台帳実行データよりカラム対象の年月を取得する |
|
1051 |
StringBuilder strCol = new StringBuilder(); |
|
1052 |
strCol.Append("SELECT MIN(ColumnCount), TargetMonth From constructionledgerexcute"); |
|
1053 |
strCol.AppendFormat(" Where ConstructionCode = {0}", ConstrCode); |
|
1054 |
ArrayList arrCol = new ArrayList(); |
|
1055 |
if (!LedgerExcuteDB.ExecuteReader(strCol.ToString(), ref arrCol, bTableConnect)) return DateTime.MinValue; |
|
1056 |
|
|
1057 |
if (arrCol.Count < 1) return DateTime.MinValue; |
|
1058 |
|
|
1059 |
// 実行データが存在した場合は最小のカラムの年月スタートにする |
|
1060 |
object[] wrkCol = (object[])arrCol[0]; |
|
1061 |
return CommonMotions.cnvDate(wrkCol[1]); |
|
1062 |
} |
|
1063 |
catch (Exception ex) |
|
1064 |
{ |
|
1065 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
1066 |
return DateTime.MinValue; |
|
1067 |
} |
|
1068 |
} |
|
1069 |
#endregion |
|
1070 |
|
|
1071 | 1010 |
#region 結合工事作成処理 |
1072 | 1011 |
/// <summary> |
1073 | 1012 |
/// 結合工事作成処理 |
... | ... | |
1196 | 1135 |
|
1197 | 1136 |
StringBuilder strSQL = new StringBuilder(); |
1198 | 1137 |
|
1199 |
int GroupNo = (int)FrmConstructionLedger.DataGroup.ConstructionCosts;
|
|
1138 |
int GroupNo = (int)ConstructionLedgerDetail.GroupCountDef.ConstructionCosts;
|
|
1200 | 1139 |
|
1140 |
double decParcent = (100.0 - CommonMotions.SystemMasterData.StatutoryWelfareRate) / 100.0; |
|
1201 | 1141 |
strSQL.Append("Select"); |
1202 | 1142 |
strSQL.Append(" A.ConstructionCode,"); |
1203 | 1143 |
strSQL.Append(" A.CompanyCode,"); |
1204 | 1144 |
strSQL.Append(" A.ExecutionAmount,"); |
1205 | 1145 |
strSQL.Append(" SUM(ifnull(B.PaymentAmount, 0)), "); |
1206 |
strSQL.Append(" Round((Ifnull(Odr.OrdersLinePrice, 0) / (100.0 - ifnull(Odr2.StatutoryWelfareRate, 0))) * 100.0, 0) As OrderPrice");
|
|
1146 |
strSQL.AppendFormat(" Round((Ifnull(Odr.OrdersLinePrice, 0) / {0}), 0) As OrderPrice", decParcent);
|
|
1207 | 1147 |
|
1208 | 1148 |
strSQL.Append(" From constructionledgerdetail AS A"); |
1209 | 1149 |
|
... | ... | |
1218 | 1158 |
strSQL.Append(" And Odr.SourceDetailCnt = A.DetailCount"); |
1219 | 1159 |
strSQL.AppendFormat(" And Odr.GroupCount = {0}", (int)PurchaseOrderDetail.GroupCountDef.Detail); |
1220 | 1160 |
strSQL.Append(" And A.DetailCount > 0"); |
1221 |
strSQL.Append(" LEFT JOIN PurchaseOrderDetail As Odr2"); |
|
1222 |
strSQL.Append(" ON Odr2.ConstructionCode = Odr.ConstructionCode"); |
|
1223 |
strSQL.Append(" And Odr2.SeqNo = Odr.SeqNo"); |
|
1224 |
strSQL.AppendFormat(" And Odr2.GroupCount = {0}", (int)PurchaseOrderDetail.GroupCountDef.StatutoryWelfare); |
|
1225 | 1161 |
|
1226 | 1162 |
strSQL.AppendFormat(" WHERE A.ConstructionCode = {0}", ConstrCode); |
1227 | 1163 |
strSQL.AppendFormat(" AND A.GroupCount = {0}", GroupNo); |
... | ... | |
1236 | 1172 |
int ExecValue = CommonMotions.cnvInt(objRec[2]); |
1237 | 1173 |
int PaymentValue = CommonMotions.cnvInt(objRec[3]); |
1238 | 1174 |
int OrderValue = CommonMotions.cnvInt(objRec[4]); |
1175 |
// 発注金額が無ければ予算金額をセットする |
|
1176 |
if (OrderValue <= 0) OrderValue = ExecValue; |
|
1239 | 1177 |
|
1240 |
//// 登録値+入力値が実行金額を超えた場合はfalseを返す |
|
1241 |
//if (ExecValue < (PaymentValue + CurrentValue)) return false; |
|
1242 | 1178 |
// 登録値+入力値が発注金額を超えた場合はfalseを返す |
1243 |
if (OrderValue < (PaymentValue + CurrentValue)) return false; |
|
1179 |
if (OrderValue < (PaymentValue + CurrentValue)) |
|
1180 |
{ |
|
1181 |
// 入力値が0の場合はエラーにしない |
|
1182 |
if (CurrentValue == 0) return true; |
|
1244 | 1183 |
|
1184 |
// 予算がプラスの場合は超過(マイナス時には超過にしない) |
|
1185 |
if (ExecValue > 0) return false; |
|
1186 |
} |
|
1187 |
|
|
1245 | 1188 |
return true; |
1246 | 1189 |
} |
1247 | 1190 |
catch (System.Exception ex) |
trunk/src/ProcessManagement/ProcessManagement/Common/Process/ClsConvertCode.cs | ||
---|---|---|
77 | 77 |
case (int)ClsExcute.ApprovalListNo.GoOut: // 23:外 出➝5:外 出 |
78 | 78 |
nAppNo = (int)AttendanceDailyData.WorkKindFlgDef.GoOut; |
79 | 79 |
break; |
80 |
case (int)ClsExcute.ApprovalListNo.UniqueDay: // 25:特殊休暇➝12:特殊休 |
|
81 |
nAppNo = (int)AttendanceDailyData.WorkKindFlgDef.UniqueDay; |
|
82 |
break; |
|
80 | 83 |
} |
81 | 84 |
|
82 | 85 |
return nAppNo; |
... | ... | |
130 | 133 |
case (int)AttendanceDailyData.WorkKindFlgDef.CompensatoryHoliday: // 10:代 休➝18:代 休 |
131 | 134 |
nAppNo = (int)ClsExcute.ApprovalListNo.CompensatoryHoliday; |
132 | 135 |
break; |
136 |
case (int)AttendanceDailyData.WorkKindFlgDef.UniqueDay: // 12:特殊休➝18:特殊休暇休 |
|
137 |
nAppNo = (int)ClsExcute.ApprovalListNo.UniqueDay; |
|
138 |
break; |
|
133 | 139 |
} |
134 | 140 |
|
135 | 141 |
return nAppNo; |
trunk/src/ProcessManagement/ProcessManagement/Common/Process/ClsExcute.cs | ||
---|---|---|
101 | 101 |
WorkingPrint = 54, // 54:出勤管理日報印刷 |
102 | 102 |
OnHandVolume = 55, // 55:手持工事高一覧 |
103 | 103 |
DRNoticeCalender = 56, // 56:勤怠届カレンダー |
104 |
PurchaseOrderList = 57, // 57:注文書入力一覧 |
|
104 | 105 |
} |
105 | 106 |
#endregion |
106 | 107 |
|
... | ... | |
281 | 282 |
{ (int)ProcessExecuteNo.WorkingPrint, "出勤管理日報-印刷" }, |
282 | 283 |
{ (int)ProcessExecuteNo.OnHandVolume, "手持工事高-印刷" }, |
283 | 284 |
{ (int)ProcessExecuteNo.DRNoticeCalender, "勤怠届カレンダー-表示" }, |
285 |
{ (int)ProcessExecuteNo.PurchaseOrderList, "注文書入力一覧-表示" }, |
|
284 | 286 |
}; |
285 | 287 |
|
286 | 288 |
#endregion |
... | ... | |
347 | 349 |
}; |
348 | 350 |
#endregion |
349 | 351 |
|
350 |
#region 承認処理定義 |
|
352 |
#region 承認処理定義一覧
|
|
351 | 353 |
/// <summary> |
352 |
/// 承認一覧 |
|
354 |
/// 承認処理定義一覧
|
|
353 | 355 |
/// </summary> |
354 | 356 |
public enum ApprovalListNo |
355 | 357 |
{ |
... | ... | |
453 | 455 |
/// 24:請求取消 |
454 | 456 |
/// </summary> |
455 | 457 |
OrderRequestCancel, |
458 |
/// <summary> |
|
459 |
/// 25:特殊休暇 |
|
460 |
/// </summary> |
|
461 |
UniqueDay, |
|
456 | 462 |
} |
457 | 463 |
#endregion |
458 | 464 |
|
... | ... | |
504 | 510 |
{ (int)ApprovalListNo.Late, "遅刻承認" }, |
505 | 511 |
{ (int)ApprovalListNo.LeaveEarly, "早退承認" }, |
506 | 512 |
{ (int)ApprovalListNo.GoOut, "外出承認" }, |
507 |
{ (int)ApprovalListNo.OrderRequestCancel, "請求取消" }, |
|
513 |
{ (int)ApprovalListNo.OrderRequestCancel, "請求取消承認" }, |
|
514 |
{ (int)ApprovalListNo.UniqueDay, "特殊休暇承認" }, |
|
508 | 515 |
}; |
509 | 516 |
|
510 | 517 |
#endregion |
... | ... | |
859 | 866 |
ProcessExecuteNo_OnHandVolume(m_ProcControlPara[NowPoint]); |
860 | 867 |
break; |
861 | 868 |
|
862 |
case (int)ProcessExecuteNo.DRNoticeCalender: // 56:勤怠届カレンダー
|
|
869 |
case (int)ProcessExecuteNo.DRNoticeCalender: // 56:勤怠届カレンダー |
|
863 | 870 |
ProcessExecuteNo_DRWorkCalender(m_ProcControlPara[NowPoint]); |
864 | 871 |
break; |
865 | 872 |
|
873 |
case (int)ProcessExecuteNo.PurchaseOrderList: // 57:注文書入力一覧 |
|
874 |
ProcessExecuteNo_PurchaseOrderList(m_ProcControlPara[NowPoint]); |
|
875 |
break; |
|
876 |
|
|
866 | 877 |
#endregion |
867 | 878 |
|
868 | 879 |
#region マスタメンテ |
... | ... | |
1232 | 1243 |
finally |
1233 | 1244 |
{ |
1234 | 1245 |
frm.Dispose(); frm = null; |
1235 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1236 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1237 | 1246 |
} |
1238 | 1247 |
} |
1239 | 1248 |
#endregion |
... | ... | |
1273 | 1282 |
finally |
1274 | 1283 |
{ |
1275 | 1284 |
frm.Dispose(); frm = null; |
1276 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1277 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1278 | 1285 |
} |
1279 | 1286 |
} |
1280 | 1287 |
#endregion |
... | ... | |
1315 | 1322 |
finally |
1316 | 1323 |
{ |
1317 | 1324 |
frm.Dispose(); frm = null; |
1318 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1319 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1320 | 1325 |
} |
1321 | 1326 |
} |
1322 | 1327 |
#endregion |
... | ... | |
1395 | 1400 |
finally |
1396 | 1401 |
{ |
1397 | 1402 |
frm.Dispose(); frm = null; |
1398 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1399 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1400 | 1403 |
} |
1401 | 1404 |
} |
1402 | 1405 |
#endregion |
... | ... | |
1442 | 1445 |
frm.DirectFlg = CurrentPara.BoolExecParameter[0]; |
1443 | 1446 |
if (CurrentPara.BoolExecParameter.Count > 1) |
1444 | 1447 |
{ |
1445 |
/// 新規申請フラグ
|
|
1448 |
// 新規申請フラグ |
|
1446 | 1449 |
frm.NewApprovalFlg = CurrentPara.BoolExecParameter[1]; |
1447 | 1450 |
} |
1448 | 1451 |
} |
... | ... | |
1458 | 1461 |
finally |
1459 | 1462 |
{ |
1460 | 1463 |
frm.Dispose(); frm = null; |
1461 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1462 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1463 | 1464 |
} |
1464 | 1465 |
} |
1465 | 1466 |
#endregion |
... | ... | |
1501 | 1502 |
finally |
1502 | 1503 |
{ |
1503 | 1504 |
frm.Dispose(); frm = null; |
1504 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1505 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1506 | 1505 |
} |
1507 | 1506 |
} |
1508 | 1507 |
#endregion |
... | ... | |
1661 | 1660 |
finally |
1662 | 1661 |
{ |
1663 | 1662 |
frm.Dispose(); frm = null; |
1664 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1665 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1666 | 1663 |
} |
1667 | 1664 |
} |
1668 | 1665 |
#endregion |
... | ... | |
1707 | 1704 |
finally |
1708 | 1705 |
{ |
1709 | 1706 |
frm.Dispose(); frm = null; |
1710 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1711 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1712 | 1707 |
} |
1713 | 1708 |
} |
1714 | 1709 |
#endregion |
... | ... | |
1803 | 1798 |
finally |
1804 | 1799 |
{ |
1805 | 1800 |
frm.Dispose(); frm = null; |
1806 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1807 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1808 | 1801 |
} |
1809 | 1802 |
} |
1810 | 1803 |
#endregion |
... | ... | |
1848 | 1841 |
finally |
1849 | 1842 |
{ |
1850 | 1843 |
frm.Dispose(); frm = null; |
1851 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
1852 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
1853 | 1844 |
} |
1854 | 1845 |
} |
1855 | 1846 |
#endregion |
... | ... | |
2098 | 2089 |
finally |
2099 | 2090 |
{ |
2100 | 2091 |
frm.Dispose(); frm = null; |
2101 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
2102 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
2103 | 2092 |
} |
2104 | 2093 |
} |
2105 | 2094 |
#endregion |
... | ... | |
2444 | 2433 |
finally |
2445 | 2434 |
{ |
2446 | 2435 |
frm.Dispose(); frm = null; |
2447 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
2448 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
2449 | 2436 |
} |
2450 | 2437 |
} |
2451 | 2438 |
#endregion |
... | ... | |
2515 | 2502 |
} |
2516 | 2503 |
|
2517 | 2504 |
// 次起動プロセスセット |
2518 |
frm.ExecuteFlg = CurrentPara.IntExecParameter[0]; |
|
2519 |
frm.ExecuteSubFlg = CurrentPara.IntExecParameter[1]; |
|
2520 |
frm.RequestMonth = CurrentPara.IntExecParameter[2]; |
|
2521 |
frm.OrderersDivision = CurrentPara.IntExecParameter[3]; |
|
2522 |
frm.OrderersCode = CurrentPara.IntExecParameter[4]; |
|
2505 |
if (CurrentPara.IntExecParameter.Count > 0) frm.ExecuteFlg = CurrentPara.IntExecParameter[0];
|
|
2506 |
if (CurrentPara.IntExecParameter.Count > 1) frm.ExecuteSubFlg = CurrentPara.IntExecParameter[1];
|
|
2507 |
if (CurrentPara.IntExecParameter.Count > 2) frm.RequestMonth = CurrentPara.IntExecParameter[2];
|
|
2508 |
if (CurrentPara.IntExecParameter.Count > 3) frm.OrderersDivision = CurrentPara.IntExecParameter[3];
|
|
2509 |
if (CurrentPara.IntExecParameter.Count > 4) frm.OrderersCode = CurrentPara.IntExecParameter[4];
|
|
2523 | 2510 |
|
2524 |
frm.OrderersName = CurrentPara.StringExecParameter[0]; |
|
2511 |
if (CurrentPara.StringExecParameter.Count > 0) frm.OrderersName = CurrentPara.StringExecParameter[0];
|
|
2525 | 2512 |
|
2526 | 2513 |
frm.EditFlg = true; |
2527 | 2514 |
|
... | ... | |
3290 | 3277 |
finally |
3291 | 3278 |
{ |
3292 | 3279 |
frm.Dispose(); frm = null; |
3293 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = (int)ClsExcute.ProcessExecuteNo.MainMenu; |
|
3294 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = null; |
|
3295 | 3280 |
} |
3296 | 3281 |
} |
3297 | 3282 |
#endregion |
3298 | 3283 |
|
3284 |
#region 注文書入力一覧 |
|
3285 |
/// <summary> |
|
3286 |
/// 注文書入力一覧 |
|
3287 |
/// </summary> |
|
3288 |
/// <returns></returns> |
|
3289 |
public static void ProcessExecuteNo_PurchaseOrderList(ProcessParameter CurrentPara) |
|
3290 |
{ |
|
3291 |
// 注文書入力一覧 |
|
3292 |
FrmOrderEntryList frm = new FrmOrderEntryList(); |
|
3293 |
int ProcessNo = (int)ClsExcute.ProcessExecuteNo.PurchaseOrderList; |
|
3294 |
try |
|
3295 |
{ |
|
3296 |
// 自分のハンドルをリストへセットする |
|
3297 |
ClsExcute.SubFormHandleList[ProcessNo].ProcessNo = ProcessNo; |
|
3298 |
ClsExcute.SubFormHandleList[ProcessNo].SubFormHandle = (Form)frm; |
|
3299 |
|
|
3300 |
// 起動・編集フラグ |
|
3301 |
int EditFlg = (int)CommonDefine.ProcessDataEdit.Reference; |
|
3302 |
ClsSecurityPermission.GetExecutePermission(ProcessNo, ref EditFlg); |
|
3303 |
if (EditFlg == (int)CommonDefine.ProcessDataEdit.Reference) frm.EditLock = true; |
|
3304 |
|
|
3305 |
// ----- パラメータセット |
|
3306 |
// 工事番号 |
|
3307 |
frm.ConstructionCode = CurrentPara.IntExecParameter[0]; |
|
3308 |
|
|
3309 |
// 新規申請フラグ |
|
3310 |
if (CurrentPara.BoolExecParameter.Count > 0) |
|
3311 |
frm.NewApprovalFlg = CurrentPara.BoolExecParameter[0]; |
|
3312 |
|
|
3313 |
// フォーム表示 |
|
3314 |
frm.ShowDialog(); |
|
3315 |
} |
|
3316 |
catch (Exception ex) |
|
3317 |
{ |
|
3318 |
logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message); |
|
3319 |
BackProcess(); |
|
3320 |
} |
|
3321 |
finally |
|
3322 |
{ |
|
3323 |
frm.Dispose(); frm = null; |
|
3324 |
} |
|
3325 |
} |
|
3299 | 3326 |
#endregion |
3300 | 3327 |
|
3328 |
#endregion |
|
3329 |
|
|
3301 | 3330 |
#region マスタメンテナンス |
3302 | 3331 |
// ----------------- メンテナンス起動 |
3303 | 3332 |
#region 管理マスタ |
trunk/src/ProcessManagement/ProcessManagement/Common/Process/ClsMoveDepOfInfo.cs | ||
---|---|---|
491 | 491 |
} |
492 | 492 |
strSQL.Append(" )"); |
493 | 493 |
|
494 |
strSQL.AppendFormat(" And GroupCount in ({0}, {1}, {2})",(int)FrmConstructionLedger.DataGroup.Instructor
|
|
495 |
, (int)FrmConstructionLedger.DataGroup.Assistant
|
|
496 |
, (int)FrmConstructionLedger.DataGroup.Payroll);
|
|
494 |
strSQL.AppendFormat(" And GroupCount in ({0}, {1}, {2})",(int)ConstructionLedgerDetail.GroupCountDef.Instructor
|
|
495 |
, (int)ConstructionLedgerDetail.GroupCountDef.Assistant
|
|
496 |
, (int)ConstructionLedgerDetail.GroupCountDef.Payroll);
|
|
497 | 497 |
strSQL.AppendFormat(" And CompanyCode = {0}", PersonCode); |
498 | 498 |
|
499 | 499 |
if (!LedgerDB.ExecuteNonQuery(strSQL.ToString(), false)) return false; |
trunk/src/ProcessManagement/ProcessManagement/Common/Process/ClsOtherProc.cs | ||
---|---|---|
811 | 811 |
/// <summary> |
812 | 812 |
/// 起動フォーム登録 |
813 | 813 |
/// </summary> |
814 |
private static void ExecFormEntry(int ProcessNo, int CurProcNo, Form CurForm)
|
|
814 |
public static void ExecFormEntry(int ProcessNo, int CurProcNo, Form CurForm)
|
|
815 | 815 |
{ |
816 | 816 |
try |
817 | 817 |
{ |
trunk/src/ProcessManagement/ProcessManagement/Common/Process/ClsSystemOnceExecute.cs | ||
---|---|---|
376 | 376 |
WriteData.MessageColor = CheckRec.ForeColor; // 背景色セット |
377 | 377 |
|
378 | 378 |
// 掲示板対象者テーブル |
379 |
MessageBoardTerget DetailTbl = new MessageBoardTerget(); |
|
380 |
DetailTbl.ToCode = ConstructionPersonCode; // 対象者コード |
|
381 |
DetailTbl.ToName = ConstructionPersonName; // 対象者 |
|
379 |
MessageBoardTerget DetailTbl = new MessageBoardTerget |
|
380 |
{ |
|
381 |
ToCode = ConstructionPersonCode, // 対象者コード |
|
382 |
ToName = ConstructionPersonName // 対象者 |
|
383 |
}; |
|
382 | 384 |
WriteDetail.Add(DetailTbl); |
383 | 385 |
|
384 | 386 |
// メッセージフラグを自動に設定する |
... | ... | |
692 | 694 |
strSQL.Append(" Where"); |
693 | 695 |
strSQL.AppendFormat(" B1.ConstructionCode = {0}", nConstrCode); |
694 | 696 |
|
695 |
// ----- 定義がClsExcuteクラスにあるためマジックナンバー |
|
696 |
// ----- 3は工事予算承認が承認されていればOK |
|
697 |
strSQL.Append(" And B1.ApprovalCode = 3"); |
|
697 |
// ----- 工事予算承認が承認されていればOK |
|
698 |
strSQL.AppendFormat(" And B1.ApprovalCode = {0}", (int)ClsExcute.ApprovalListNo.ConstructionBudgetApproval); |
|
698 | 699 |
strSQL.Append(" And B1.SeqNo = 1"); |
699 | 700 |
strSQL.AppendFormat(" And B1.ApprovalStatus = {0}", (int)CommonDefine.ApprovalStatus.Approval); |
700 | 701 |
|
... | ... | |
930 | 931 |
WriteData.MessageColor = CheckRec.ForeColor; // 背景色セット |
931 | 932 |
|
932 | 933 |
// 掲示板対象者テーブル |
933 |
MessageBoardTerget DetailTbl = new MessageBoardTerget(); |
|
934 |
DetailTbl.ToCode = SalesPersonCode; // 対象者コード |
|
935 |
DetailTbl.ToName = SalesPersonName; // 対象者 |
|
934 |
MessageBoardTerget DetailTbl = new MessageBoardTerget |
|
935 |
{ |
|
936 |
ToCode = SalesPersonCode, // 対象者コード |
|
937 |
ToName = SalesPersonName // 対象者 |
|
938 |
}; |
|
936 | 939 |
if (ConstructionPersonCode != 0) |
937 | 940 |
{ |
938 | 941 |
DetailTbl.ToCode = ConstructionPersonCode; // 対象者コード |
... | ... | |
1078 | 1081 |
{ |
1079 | 1082 |
try |
1080 | 1083 |
{ |
1081 |
ConstructionBaseInfoDetail work = new ConstructionBaseInfoDetail(); |
|
1082 |
work.ConstructionCode = ConstrCode; |
|
1083 |
work.DetailNo = (int)ConstructionBaseInfoDetail.DataNoDef.OrdersDecisionComment; |
|
1084 |
work.DetailString = strMsg; |
|
1084 |
ConstructionBaseInfoDetail work = new ConstructionBaseInfoDetail |
|
1085 |
{ |
|
1086 |
ConstructionCode = ConstrCode, |
|
1087 |
DetailNo = (int)ConstructionBaseInfoDetail.DataNoDef.OrdersDecisionComment, |
|
1088 |
DetailString = strMsg |
|
1089 |
}; |
|
1085 | 1090 |
|
1086 | 1091 |
if (!DetailDB.InsertAction(work, false)) return false; |
1087 | 1092 |
|
... | ... | |
1397 | 1402 |
return false; |
1398 | 1403 |
} |
1399 | 1404 |
|
1400 |
BizPeriodHistory BizHisRec = new BizPeriodHistory(); |
|
1401 |
BizHisRec.PeriodYear = nData; // 営業期数・工事年度 |
|
1402 |
BizHisRec.PeriodFlag = nPeriodFlag; // 営業期数・工事年度フラグ |
|
1405 |
BizPeriodHistory BizHisRec = new BizPeriodHistory |
|
1406 |
{ |
|
1407 |
PeriodYear = nData, // 営業期数・工事年度 |
|
1408 |
PeriodFlag = nPeriodFlag, // 営業期数・工事年度フラグ |
|
1403 | 1409 |
|
1404 |
BizHisRec.BeginDate = dtData[0]; // 期首日 |
|
1405 |
BizHisRec.CompleteDate = dtData[1]; // 期末日 |
|
1410 |
BeginDate = dtData[0], // 期首日 |
|
1411 |
CompleteDate = dtData[1] // 期末日 |
|
1412 |
}; |
|
1406 | 1413 |
|
1407 | 1414 |
if (BizHisList.Count < 1) |
1408 | 1415 |
{ |
... | ... | |
1664 | 1671 |
if (!SystemDB.SelectAction(strSQL.ToString(), ref SysRec)) return false; |
1665 | 1672 |
|
1666 | 1673 |
// 期末のみ処理を行う |
1667 |
if ((int)SystemMaster.ConstrNoBaseDef.BusinessPeriod == SysRec.ConstructionNoBase) |
|
1674 |
int nYear = DateTime.Today.Year; |
|
1675 |
int nMonth = DateTime.Today.Month; |
|
1676 |
if (CommonMotions.BasePeriodYear()) |
|
1668 | 1677 |
{ |
1669 | 1678 |
// 期を選択している場合 |
1670 |
if (DateTime.Today.AddDays(-1).Date != SysRec.BusinessCompDate.Date) return true; |
|
1679 |
if (DateTime.Today.Date != SysRec.BusinessCompDate.Date) return true; |
|
1680 |
nMonth = (SysRec.BusinessCompDate.Month + 1); |
|
1671 | 1681 |
} |
1672 | 1682 |
else |
1673 | 1683 |
{ |
1674 | 1684 |
// 年を選択している場合 |
1675 |
if (DateTime.Today.AddDays(-1).Date != SysRec.ConstrBeginDate.Date) return true; |
|
1685 |
if (DateTime.Today.Date != SysRec.ConstrCompDate.Date) return true; |
|
1686 |
nMonth = (SysRec.ConstrCompDate.Month + 1); |
|
1676 | 1687 |
} |
1677 | 1688 |
|
1678 | 1689 |
DateDB.connect();DateDB.beginTran(); |
1679 | 1690 |
|
1680 | 1691 |
// 当月の25日開始、翌月5日のデータを1年分作成する |
1681 |
DateTime dtWrkYM = new DateTime(2019, 4, 1);
|
|
1682 |
DateTime dtWrkYM2 = new DateTime(2019, 4, 1);
|
|
1692 |
DateTime dtWrkYM = new DateTime(nYear, nMonth, 1);
|
|
1693 |
DateTime dtWrkYM2 = new DateTime(nYear, nMonth, 1);
|
|
1683 | 1694 |
DateTime[] dateTime = new DateTime[2]; |
1684 | 1695 |
ClosingDateOfMonth DateRec = new ClosingDateOfMonth(); |
1685 | 1696 |
for (int ix = 0; ix < 12; ix++) |
... | ... | |
1765 | 1776 |
try |
1766 | 1777 |
{ |
1767 | 1778 |
// 定数取得 |
1768 |
List<decimal> PaidHolidayTable = new List<decimal> { 10, 11, 12, 14, 16, 18, 20 }; |
|
1779 |
//List<decimal> PaidHolidayTable = new List<decimal> { 10, 11, 12, 14, 16, 18, 20 }; 2020/4/20 Commondefineへ移動 |
|
1780 |
// 半年後 |
|
1769 | 1781 |
int nAddMonth = 6; |
1782 |
// 加算年 |
|
1770 | 1783 |
int nAddYear = 1; |
1771 | 1784 |
|
1772 | 1785 |
StringBuilder strSQL = new StringBuilder(); |
... | ... | |
1801 | 1814 |
// ループカウントの最終回は無条件に処理する |
1802 | 1815 |
// 年が今年の時に処理を行う |
1803 | 1816 |
DateTime dtWork = dtTarget.AddYears((ix * nAddYear)); |
1804 |
if (ix < (PaidHolidayTable.Count - 1) |
|
1817 |
if (ix < (CommonDefine.PaidHolidayTable.Count - 1)
|
|
1805 | 1818 |
&& dtWork.Year != DateTime.Today.Year) continue; |
1806 | 1819 |
|
1807 | 1820 |
// 当年残日数取得 |
... | ... | |
1812 | 1825 |
if (nZen < 0) |
1813 | 1826 |
{ |
1814 | 1827 |
strSQL.Append(" SET PaidVacationDaysPrev = 0"); |
1815 |
strSQL.AppendFormat(", PaidVacationDays = {0}", (PaidHolidayTable[ix] + nZen)); |
|
1828 |
strSQL.AppendFormat(", PaidVacationDays = {0}", (CommonDefine.PaidHolidayTable[ix] + nZen));
|
|
1816 | 1829 |
} |
1817 | 1830 |
else |
1818 | 1831 |
{ |
1819 | 1832 |
strSQL.Append(" SET PaidVacationDaysPrev = PaidVacationDays"); |
1820 |
strSQL.AppendFormat(", PaidVacationDays = {0}", PaidHolidayTable[ix]); |
|
1833 |
strSQL.AppendFormat(", PaidVacationDays = {0}", CommonDefine.PaidHolidayTable[ix]);
|
|
1821 | 1834 |
} |
1822 | 1835 |
strSQL.Append(" , UpdateDate = NOW()"); |
1823 | 1836 |
strSQL.AppendFormat(" Where PersonCode = {0}", nManNo); |
trunk/src/ProcessManagement/ProcessManagement/Common/ProductDefine.cs | ||
---|---|---|
183 | 183 |
/// <summary> |
184 | 184 |
/// 製品種別 |
185 | 185 |
/// </summary> |
186 |
private static int m_ProductType = (int)ProductTypeDef.ProductsModelType3;
|
|
186 |
private static int m_ProductType = (int)ProductTypeDef.ProductsModelType1;
|
|
187 | 187 |
#endregion |
188 | 188 |
|
189 | 189 |
#region 更新機能実装 |
... | ... | |
204 | 204 |
/// <summary> |
205 | 205 |
/// DBサーバータイプ |
206 | 206 |
/// </summary> |
207 |
private static int m_StorageType = (int)StorageTypeDef.VPS;
|
|
207 |
private static int m_StorageType = (int)StorageTypeDef.Internal_LAN;
|
|
208 | 208 |
#endregion |
209 | 209 |
|
210 | 210 |
#region バッチ処理起動タイプ |
211 | 211 |
/// <summary> |
212 | 212 |
/// バッチ処理起動タイプ |
213 | 213 |
/// </summary> |
214 |
private static int m_BatchProcessing = (int)BatchProcessingDef.Server;
|
|
214 |
private static int m_BatchProcessing = (int)BatchProcessingDef.Loacl;
|
|
215 | 215 |
#endregion |
216 | 216 |
|
217 | 217 |
#endregion |
trunk/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOBillingCostDataLink.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Text; |
|
5 |
using System.Collections; |
|
6 |
|
|
7 |
using log4net; |
|
8 |
using MySql.Data.MySqlClient; |
|
9 |
|
|
10 |
using ProcessManagement.DB.MySql; |
|
11 |
using ProcessManagement.DB.Core; |
|
12 |
using ProcessManagement.DataModel; |
|
13 |
|
|
14 |
using ProcessManagement.Common; |
|
15 |
|
|
16 |
namespace ProcessManagement.DB.IOAccess |
|
17 |
{ |
|
18 |
/// <summary> |
|
19 |
/// 業者請求部署出納リンクデータクラス |
|
20 |
/// </summary> |
|
21 |
public class IOBillingCostDataLink: MySqlProcess |
|
22 |
{ |
|
23 |
#region 定義部 |
|
24 |
/// <summary> |
|
25 |
/// log4netログを使用する |
|
26 |
/// </summary> |
|
27 |
private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); |
|
28 |
#endregion |
|
29 |
|
|
30 |
#region 定数 |
|
31 |
/// <summary> |
|
32 |
/// フィールド並び |
|
33 |
/// </summary> |
|
34 |
public enum NameColumn |
|
35 |
{ |
|
36 |
CompanyCode = 0, |
|
37 |
TargetDate, |
|
38 |
SeqNoB, |
|
39 |
LineCount, |
|
40 |
LabourKind, |
|
41 |
YearNumber, |
|
42 |
CostType, |
|
43 |
TargetType, |
|
44 |
TargetCode, |
|
45 |
SeqNoC, |
|
46 |
EntryDate, |
|
47 |
UpdateDate, |
|
48 |
} |
|
49 |
#endregion |
|
50 |
|
|
51 |
#region コンストラクタ |
|
52 |
/// <summary> |
|
53 |
/// コンストラクタ |
|
54 |
/// </summary> |
|
55 |
/// <param name="ConnectionString"></param> |
|
56 |
public IOBillingCostDataLink() |
|
57 |
: base(DBCommon.Instance.DBConnectString) |
|
58 |
{ |
|
59 |
} |
|
60 |
|
|
61 |
#endregion |
|
62 |
|
|
63 |
#region 承認データ検索文字列作成 |
|
64 |
/// <summary> |
|
65 |
/// 承認データ検索文字列作成 |
|
66 |
/// </summary> |
|
67 |
private string CreateSelectSQL() |
|
68 |
{ |
|
69 |
StringBuilder strcmd = new StringBuilder(); |
|
70 |
strcmd.Append("SELECT"); |
|
71 |
|
|
72 |
bool bColFirst = true; |
|
73 |
string strWork = string.Empty; |
|
74 |
foreach (var gender in Enum.GetValues(typeof(NameColumn))) |
|
75 |
{ |
|
76 |
strWork = gender.ToString(); |
|
77 |
if (!bColFirst) strcmd.Append(","); |
|
78 |
if (strWork.Equals("EntryDate") || strWork.Equals("UpdateDate")) |
|
79 |
{ |
|
80 |
strcmd.AppendFormat(" DATE_FORMAT({0}, '%Y/%m/%d %H:%i:%s')", strWork); |
|
81 |
} |
|
82 |
else |
|
83 |
{ |
|
84 |
strcmd.AppendFormat(" {0}", strWork); |
|
85 |
} |
|
86 |
bColFirst = false; |
|
87 |
} |
|
88 |
|
|
89 |
strcmd.Append(" FROM BillingCostDataLink"); |
|
90 |
|
|
91 |
return strcmd.ToString(); |
|
92 |
} |
|
93 |
#endregion |
|
94 |
|
|
95 |
#region 検索(複数) |
|
96 |
/// <summary> |
|
97 |
/// 検索(複数) |
|
98 |
/// </summary> |
|
99 |
public bool SelectAction(string AddSQLString, ref List<BillingCostDataLink> data, bool bConnect = true) |
|
100 |
{ |
|
101 |
// インターフェース |
|
102 |
StringBuilder strcmd = new StringBuilder(); |
|
103 |
ArrayList arData = new ArrayList(); |
|
104 |
|
|
105 |
try |
|
106 |
{ |
|
107 |
// SQL作成 |
|
108 |
strcmd.Append(CreateSelectSQL()); |
|
109 |
strcmd.Append(AddSQLString); |
|
110 |
|
|
111 |
// SQL実行 |
|
112 |
if (!ExecuteReader(strcmd.ToString(), ref arData, bConnect)) return false; |
|
113 |
|
|
114 |
// データセット |
|
115 |
foreach (object[] objwrk in arData) |
|
116 |
{ |
|
117 |
BillingCostDataLink work = new BillingCostDataLink(); |
|
118 |
Reader2Struct(objwrk, ref work); |
|
119 |
data.Add(work); |
|
120 |
} |
|
121 |
|
|
122 |
return true; |
|
123 |
} |
|
124 |
catch (Exception ex) |
|
125 |
{ |
|
126 |
logger.ErrorFormat("システムエラー::{0}:{1}:{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString()); |
|
127 |
return false; |
|
128 |
} |
|
129 |
|
|
130 |
} |
|
131 |
#endregion |
|
132 |
|
|
133 |
#region 検索(1件) |
|
134 |
/// <summary> |
|
135 |
/// 検索(1件) |
|
136 |
/// </summary> |
|
137 |
public bool SelectAction(string AddSQLString, ref BillingCostDataLink data, bool bConnect = true) |
|
138 |
{ |
|
139 |
// インターフェース |
|
140 |
StringBuilder strcmd = new StringBuilder(); |
|
141 |
ArrayList arData = new ArrayList(); |
|
142 |
|
|
143 |
try |
|
144 |
{ |
|
145 |
// SQL作成 |
|
146 |
strcmd.Append(CreateSelectSQL()); |
|
147 |
strcmd.Append(AddSQLString); |
|
148 |
|
|
149 |
// SQL実行 |
|
150 |
if (!ExecuteReader(strcmd.ToString(), ref arData, bConnect)) return false; |
|
151 |
|
|
152 |
// データセット |
|
153 |
object[] objwrk = (object[])arData[0]; |
|
154 |
Reader2Struct(objwrk, ref data); |
|
155 |
|
|
156 |
return true; |
|
157 |
} |
|
158 |
catch (Exception ex) |
|
159 |
{ |
|
160 |
logger.ErrorFormat("システムエラー::{0}:{1}:{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString()); |
|
161 |
return false; |
|
162 |
} |
|
163 |
|
|
164 |
} |
|
165 |
#endregion |
|
166 |
|
|
167 |
#region 新規登録(1件) |
|
168 |
/// <summary> |
|
169 |
/// 新規登録(1件) |
|
170 |
/// </summary> |
|
171 |
public bool InsertAction(BillingCostDataLink work, bool bConnect = true) |
|
172 |
{ |
|
173 |
StringBuilder strcmd = new StringBuilder(); |
|
174 |
try |
|
175 |
{ |
|
176 |
|
|
177 |
strcmd.Clear(); |
|
178 |
strcmd.Append("INSERT INTO BillingCostDataLink"); |
|
179 |
|
|
180 |
strcmd.Append("("); |
|
181 |
bool bFirst = true; |
|
182 |
foreach (var gender in Enum.GetValues(typeof(NameColumn))) |
|
183 |
{ |
|
184 |
if (!bFirst) strcmd.Append(", "); |
|
185 |
strcmd.Append(gender.ToString()); |
|
186 |
bFirst = false; |
|
187 |
} |
|
188 |
strcmd.Append(") VALUES ("); |
|
189 |
|
他の形式にエクスポート: Unified diff