リビジョン 285
サーバー日時更新処理:チェック部のバグ修正
branches/src/DataCheckExcute/DataCheckExcute/Common/Process/ClsChangeLedgerData.cs | ||
---|---|---|
237 | 237 |
bret = CalcSalaryDevisionAll(LedgerExDB, PersonDB, LedgerRec, CurRec, TargetDate.Date, ColPoint); |
238 | 238 |
break; |
239 | 239 |
case (int)CommonDefine.SalaryDevision.Noting: // 振分無 |
240 |
bret = CalcSalaryDevisionNoting(LedgerExDB, CurRec, TargetDate.Date, ColPoint); |
|
240 |
//bret = CalcSalaryDevisionNoting(LedgerExDB, CurRec, TargetDate.Date, ColPoint);
|
|
241 | 241 |
break; |
242 | 242 |
case (int)CommonDefine.SalaryDevision.DaysInput: // 日数入力 |
243 | 243 |
bret = CalcSalaryDevisionDaysInput(LedgerExDB, PersonDB, LedgerRec, CurRec); |
... | ... | |
495 | 495 |
strSQL.AppendFormat(" AND DATE(TargetMonth) = STR_TO_DATE('{0}','%Y/%m/%d')", ColumnDate.ToShortDateString()); |
496 | 496 |
|
497 | 497 |
// データ読込み |
498 |
List<ConstructionLedgerExcute> LedgerExDBList = new List<ConstructionLedgerExcute>(); |
|
499 | 498 |
ConstructionLedgerExcute LedgerExDBRec = new ConstructionLedgerExcute(); |
500 |
bool ReadData = LedgerExDB.SelectAction(strSQL.ToString(), ref LedgerExDBList, false); |
|
501 |
if (!ReadData || LedgerExDBList.Count == 0) |
|
499 |
if (!LedgerExDB.SelectAction(strSQL.ToString(), ref LedgerExDBRec, false)) |
|
502 | 500 |
{ |
503 | 501 |
LedgerExDBRec.ConstructionCode = ConstrCode; // 工事コード |
504 | 502 |
LedgerExDBRec.GroupCount = GroupCount; // グループ番号 |
branches/src/DataCheckExcute/DataCheckExcute/Common/Process/ClsSystemOnceExecute.cs | ||
---|---|---|
42 | 42 |
#endregion |
43 | 43 |
|
44 | 44 |
#region 変数 |
45 |
|
|
45 | 46 |
/// <summary> |
46 |
/// 初期化処理成否フラグ
|
|
47 |
/// 状態毎期限チェックコードリスト
|
|
47 | 48 |
/// </summary> |
48 |
private bool m_bExecuteFlg = true; |
|
49 |
|
|
49 |
private ArrayList m_TermCodeArray = new ArrayList(); |
|
50 | 50 |
/// <summary> |
51 | 51 |
/// 状態毎期限マスタリスト |
52 | 52 |
/// </summary> |
53 |
private List<TermMasterList> SystemOnceExecuteTermMstList = new List<TermMasterList>();
|
|
53 |
private List<TermMaster> m_TermMstList = new List<TermMaster>();
|
|
54 | 54 |
|
55 | 55 |
/// <summary> |
56 | 56 |
/// 最終起動日 |
... | ... | |
61 | 61 |
#region コンストラクタ |
62 | 62 |
public ClsSystemOnceExecute() |
63 | 63 |
{ |
64 |
// チェック項目取得 |
|
65 |
if (!GetTermList()) |
|
66 |
{ |
|
67 |
m_bExecuteFlg = false; |
|
68 |
} |
|
69 | 64 |
} |
70 | 65 |
#endregion |
71 | 66 |
|
... | ... | |
79 | 74 |
bool ProcessFlg = true; |
80 | 75 |
try |
81 | 76 |
{ |
82 |
// 初期化に失敗したら処理しない |
|
83 |
if (!m_bExecuteFlg) return; |
|
84 |
|
|
85 | 77 |
// 本日の初回起動がされている場合は処理しない |
86 | 78 |
if (!ExecuteCheck(ref m_lastsessionDate)) return; |
87 | 79 |
|
... | ... | |
208 | 200 |
try |
209 | 201 |
{ |
210 | 202 |
// 期限マスタ読込 |
211 |
string strSQL = " Order By ConstructionStatusFlg Asc, DisplayOrder Asc"; |
|
212 |
List<TermMaster> tmList = new List<TermMaster>(); |
|
213 |
if (!tmDB.SelectAction(strSQL, ref tmList)) return false; |
|
203 |
StringBuilder strSQL = new StringBuilder(); |
|
204 |
strSQL.Append(" Order By"); |
|
205 |
strSQL.Append(" ConstructionStatusFlg ASC"); |
|
206 |
strSQL.Append(", FieldNo ASC"); |
|
207 |
strSQL.Append(", CheckSchdule DESC"); |
|
208 |
strSQL.Append(", TermDays DESC"); |
|
214 | 209 |
|
215 |
// ラストのためにループ外で定義 |
|
216 |
TermMasterList CheckList = null; |
|
217 |
int iTmpStatus = -1; |
|
218 |
// データセット |
|
219 |
foreach (TermMaster tmRec in tmList) |
|
220 |
{ |
|
221 |
// キーが違えばArrayテーブルへ追加する |
|
222 |
if (iTmpStatus != tmRec.ConstructionStatusFlg) |
|
223 |
{ |
|
224 |
// チェックテーブルへ新たな状態テーブルを追加 |
|
225 |
CheckList = new TermMasterList(); |
|
226 |
SystemOnceExecuteTermMstList.Add(CheckList); |
|
210 |
if (!tmDB.SelectAction(strSQL.ToString(), ref m_TermMstList)) return false; |
|
211 |
if (m_TermMstList.Count == 0) return false; |
|
227 | 212 |
|
228 |
// ブレイクキーの更新 |
|
229 |
iTmpStatus = tmRec.ConstructionStatusFlg; |
|
230 |
} |
|
231 |
// 取得データをセットする |
|
232 |
CheckList.TermMstTBL.Add(tmRec); |
|
233 |
} |
|
213 |
// チェックコードリスト取得 |
|
214 |
strSQL.Clear(); |
|
215 |
strSQL.Append("Select"); |
|
216 |
strSQL.Append(" ConstructionStatusFlg"); |
|
217 |
strSQL.Append(", FieldNo"); |
|
218 |
strSQL.Append(", CheckSchdule"); |
|
219 |
strSQL.Append(" From"); |
|
220 |
strSQL.Append(" TermMaster"); |
|
221 |
strSQL.Append(" Group by"); |
|
222 |
strSQL.Append(" ConstructionStatusFlg"); |
|
223 |
strSQL.Append(", FieldNo"); |
|
224 |
strSQL.Append(", CheckSchdule"); |
|
234 | 225 |
|
235 |
// バッファテーブルが空ではない場合 |
|
236 |
if (CheckList.TermMstTBL.Count != 0) |
|
237 |
{ |
|
238 |
// マスターテーブルリストより最後のステータスを取得する |
|
239 |
int SetTableStatus = SystemOnceExecuteTermMstList[SystemOnceExecuteTermMstList.Count - 1].TermMstTBL[0].ConstructionStatusFlg; |
|
240 |
// バッファテーブルのステータスを取得する |
|
241 |
int NowStatus = CheckList.TermMstTBL[0].ConstructionStatusFlg; |
|
242 |
// バッファテーブルがすでにセットされていなければセットする |
|
243 |
if (SetTableStatus != NowStatus) SystemOnceExecuteTermMstList.Add(CheckList); |
|
244 |
} |
|
226 |
if (!tmDB.ExecuteReader(strSQL.ToString(), ref m_TermCodeArray)) return false; |
|
227 |
if (m_TermCodeArray.Count == 0) return false; |
|
245 | 228 |
|
246 | 229 |
return true; |
247 | 230 |
} |
... | ... | |
530 | 513 |
IOMessageBoardTerget mbtDB = new IOMessageBoardTerget(); |
531 | 514 |
try |
532 | 515 |
{ |
516 |
// チェック項目取得 |
|
517 |
if (!GetTermList()) return false; |
|
518 |
|
|
533 | 519 |
// 工事基本情報を期限テーブルに設定している状態分取得する |
534 | 520 |
StringBuilder strSQL = new StringBuilder(); |
535 | 521 |
strSQL.Append(" WHERE CONSTRUCTIONSTATUSFLG IN (SELECT DISTINCT A1.CONSTRUCTIONSTATUSFLG FROM TERMMASTER A1)"); |
... | ... | |
667 | 653 |
{ |
668 | 654 |
try |
669 | 655 |
{ |
670 |
// 初期化に失敗していたら処理しない |
|
671 |
if (!m_bExecuteFlg) return true; |
|
672 |
|
|
673 |
// 取得データの進捗状態がチェック判定テーブルにあるかの存在チェック |
|
674 |
bool exestFlg = false; |
|
675 |
int itblCnt = 0; |
|
676 |
for (int i = 0; i < SystemOnceExecuteTermMstList.Count; i++) |
|
677 |
{ |
|
678 |
// 判定対象データの状態がチェック判定テーブルにあれば処理をおこなう |
|
679 |
if (SystemOnceExecuteTermMstList[i].TermMstTBL[0].ConstructionStatusFlg == checkRec.ConstructionStatusFlg) |
|
680 |
{ |
|
681 |
exestFlg = true; |
|
682 |
itblCnt = i; |
|
683 |
break; |
|
684 |
} |
|
685 |
} |
|
686 |
// 取得データがチェック判定以外は処理しない |
|
687 |
if (!exestFlg) return true; |
|
688 |
|
|
689 | 656 |
// 戻り値 |
690 | 657 |
bool bCheckNoError = true; |
691 | 658 |
|
692 |
List<TermMaster> Termtbl = SystemOnceExecuteTermMstList[itblCnt].TermMstTBL; |
|
659 |
int nStatusFlg = -1; |
|
660 |
int nFieldNo = -1; |
|
661 |
int nCheckSchdule =-1; |
|
662 |
bool ErrFlg = false; |
|
693 | 663 |
// エラーチェック |
694 |
foreach (TermMaster wrkCheck in Termtbl)
|
|
664 |
foreach (object[] objCode in m_TermCodeArray)
|
|
695 | 665 |
{ |
696 |
// 対象日付をクリア |
|
697 |
DateTime Target = DateTime.MinValue; |
|
666 |
nStatusFlg = CommonMotions.cnvInt(objCode[0]); |
|
667 |
nFieldNo = CommonMotions.cnvInt(objCode[1]); |
|
668 |
nCheckSchdule = CommonMotions.cnvInt(objCode[2]); |
|
698 | 669 |
|
699 |
switch (wrkCheck.FieldNo) |
|
670 |
// 状態が対象外は処理しない |
|
671 |
if (nStatusFlg != checkRec.ConstructionStatusFlg) continue; |
|
672 |
|
|
673 |
TermMaster[] CheckTerget = m_TermMstList.Cast<TermMaster>().Where(x => x.ConstructionStatusFlg == nStatusFlg |
|
674 |
&& x.FieldNo == nFieldNo |
|
675 |
&& x.CheckSchdule == nCheckSchdule) |
|
676 |
.OrderByDescending(x => x.TermDays) |
|
677 |
.ToArray(); |
|
678 |
foreach (TermMaster wrkCheck in CheckTerget) |
|
700 | 679 |
{ |
701 |
case (int)ConstructionBaseInfo.DateNoDef.RequestedDate: // 依頼受け日 |
|
702 |
Target = checkRec.RequestedDate; |
|
703 |
break; |
|
704 |
case (int)ConstructionBaseInfo.DateNoDef.EstimatesSubmitDeadline: // 見積提出期限 |
|
705 |
Target = checkRec.EstimatesSubmitDeadline; |
|
706 |
break; |
|
707 |
case (int)ConstructionBaseInfo.DateNoDef.EstimatesSubmittedDate: // 見積提出日 |
|
708 |
Target = checkRec.EstimatesSubmittedDate; |
|
709 |
break; |
|
710 |
case (int)ConstructionBaseInfo.DateNoDef.OrderDate: // 受注日 |
|
711 |
Target = checkRec.OrderDate; |
|
712 |
break; |
|
713 |
case (int)ConstructionBaseInfo.DateNoDef.OrderStartingDate: // 開始予定日 |
|
714 |
Target = checkRec.OrderStartingDate; |
|
715 |
break; |
|
716 |
case (int)ConstructionBaseInfo.DateNoDef.OrderCompletionDate: // 完了予定日 |
|
717 |
Target = checkRec.OrderCompletionDate; |
|
718 |
break; |
|
719 |
case (int)ConstructionBaseInfo.DateNoDef.ConstrPreparationDate: // 施工開始準備日 |
|
720 |
Target = checkRec.PreparationStartDate; |
|
721 |
break; |
|
722 |
case (int)ConstructionBaseInfo.DateNoDef.ConstructionStartingDate: // 施工開始日 |
|
723 |
Target = checkRec.ConstructionStartingDate; |
|
724 |
break; |
|
725 |
case (int)ConstructionBaseInfo.DateNoDef.ConstructionCompletionDate: // 施工完了日 |
|
726 |
Target = checkRec.ConstructionCompletionDate; |
|
727 |
break; |
|
728 |
case (int)ConstructionBaseInfo.DateNoDef.TransferConstructionDate: // 工事移管日 |
|
729 |
Target = checkRec.TransferConstructionDate; |
|
730 |
break; |
|
731 |
case (int)ConstructionBaseInfo.DateNoDef.EstimatesExpirationDate: // 見積有効期限 |
|
732 |
Target = checkRec.EstimatesExpirationDate; |
|
733 |
break; |
|
734 |
case (int)ConstructionBaseInfo.DateNoDef.ConstructionPeriodStart: // 契約工期開始 |
|
735 |
Target = checkRec.ConstructionPeriodStart; |
|
736 |
break; |
|
737 |
case (int)ConstructionBaseInfo.DateNoDef.ConstructionPeriodEnd: // 契約工期完了 |
|
738 |
Target = checkRec.ConstructionPeriodEnd; |
|
739 |
// 延長工期があれば延長工期を入れる |
|
740 |
if (checkRec.ConstructionPeriodEnd2 != DateTime.MinValue) Target = checkRec.ConstructionPeriodEnd2; |
|
741 |
break; |
|
742 |
case (int)ConstructionBaseInfo.DateNoDef.BillingStartDate: // 請求準備開始日 |
|
743 |
Target = checkRec.BillingStartDate; |
|
744 |
break; |
|
745 |
case (int)ConstructionBaseInfo.DateNoDef.BillingDate: // 請求日 |
|
746 |
Target = checkRec.BillingDate; |
|
747 |
// 2016/10/06 台帳入力完了日があればチェックをしない |
|
748 |
if (checkRec.LedgerComplateDate != DateTime.MinValue) Target = DateTime.MinValue.Date; |
|
749 |
break; |
|
750 |
} |
|
751 |
// 未定の日付はチェックしない |
|
752 |
if (Target.Date == DateTime.MinValue.Date) continue; |
|
680 |
// 対象日付をクリア |
|
681 |
DateTime Target = DateTime.MinValue; |
|
753 | 682 |
|
683 |
switch (wrkCheck.FieldNo) |
|
684 |
{ |
|
685 |
case (int)ConstructionBaseInfo.DateNoDef.RequestedDate: // 依頼受け日 |
|
686 |
Target = checkRec.RequestedDate; |
|
687 |
break; |
|
688 |
case (int)ConstructionBaseInfo.DateNoDef.EstimatesSubmitDeadline: // 見積提出期限 |
|
689 |
Target = checkRec.EstimatesSubmitDeadline; |
|
690 |
break; |
|
691 |
case (int)ConstructionBaseInfo.DateNoDef.EstimatesSubmittedDate: // 見積提出日 |
|
692 |
Target = checkRec.EstimatesSubmittedDate; |
|
693 |
break; |
|
694 |
case (int)ConstructionBaseInfo.DateNoDef.OrderDate: // 受注日 |
|
695 |
Target = checkRec.OrderDate; |
|
696 |
break; |
|
697 |
case (int)ConstructionBaseInfo.DateNoDef.OrderStartingDate: // 開始予定日 |
|
698 |
Target = checkRec.OrderStartingDate; |
|
699 |
break; |
|
700 |
case (int)ConstructionBaseInfo.DateNoDef.OrderCompletionDate: // 完了予定日 |
|
701 |
Target = checkRec.OrderCompletionDate; |
|
702 |
break; |
|
703 |
case (int)ConstructionBaseInfo.DateNoDef.ConstrPreparationDate: // 施工開始準備日 |
|
704 |
Target = checkRec.PreparationStartDate; |
|
705 |
break; |
|
706 |
case (int)ConstructionBaseInfo.DateNoDef.ConstructionStartingDate: // 施工開始日 |
|
707 |
Target = checkRec.ConstructionStartingDate; |
|
708 |
break; |
|
709 |
case (int)ConstructionBaseInfo.DateNoDef.ConstructionCompletionDate: // 施工完了日 |
|
710 |
Target = checkRec.ConstructionCompletionDate; |
|
711 |
break; |
|
712 |
case (int)ConstructionBaseInfo.DateNoDef.TransferConstructionDate: // 工事移管日 |
|
713 |
Target = checkRec.TransferConstructionDate; |
|
714 |
break; |
|
715 |
case (int)ConstructionBaseInfo.DateNoDef.EstimatesExpirationDate: // 見積有効期限 |
|
716 |
Target = checkRec.EstimatesExpirationDate; |
|
717 |
break; |
|
718 |
case (int)ConstructionBaseInfo.DateNoDef.ConstructionPeriodStart: // 契約工期開始 |
|
719 |
Target = checkRec.ConstructionPeriodStart; |
|
720 |
break; |
|
721 |
case (int)ConstructionBaseInfo.DateNoDef.ConstructionPeriodEnd: // 契約工期完了 |
|
722 |
Target = checkRec.ConstructionPeriodEnd; |
|
723 |
// 延長工期があれば延長工期を入れる |
|
724 |
if (checkRec.ConstructionPeriodEnd2 != DateTime.MinValue) Target = checkRec.ConstructionPeriodEnd2; |
|
725 |
break; |
|
726 |
case (int)ConstructionBaseInfo.DateNoDef.BillingStartDate: // 請求準備開始日 |
|
727 |
Target = checkRec.BillingStartDate; |
|
728 |
break; |
|
729 |
case (int)ConstructionBaseInfo.DateNoDef.BillingDate: // 請求日 |
|
730 |
Target = checkRec.BillingDate; |
|
731 |
// 2016/10/06 台帳入力完了日があればチェックをしない |
|
732 |
if (checkRec.LedgerComplateDate != DateTime.MinValue) Target = DateTime.MinValue.Date; |
|
733 |
break; |
|
734 |
} |
|
735 |
// 未定の日付はチェックしない |
|
736 |
if (Target.Date == DateTime.MinValue.Date) continue; |
|
754 | 737 |
|
755 |
// エラーフラグクリア |
|
756 |
bool ErrFlg = false;
|
|
738 |
// エラーフラグクリア
|
|
739 |
ErrFlg = false;
|
|
757 | 740 |
|
758 |
switch (wrkCheck.CheckSchdule) |
|
759 |
{ |
|
760 |
case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule0: // 前日以前のチェック |
|
761 |
// 今日を基準に経過日を加算して対象日と比較する |
|
762 |
//if (Target.Date == DateTime.Now.AddDays(wrkCheck.TermDays).Date) |
|
763 |
if (Target.Date == CriteriaDate.AddDays(wrkCheck.TermDays).Date) |
|
764 |
{ |
|
765 |
ErrFlg = true; |
|
766 |
} |
|
767 |
break; |
|
768 |
case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule1: // 当日のチェック |
|
769 |
// 今日を基準に対象日と比較する |
|
770 |
//if (Target.Date == DateTime.Now.Date) |
|
771 |
if (Target.Date == CriteriaDate.Date) |
|
772 |
{ |
|
773 |
ErrFlg = true; |
|
774 |
} |
|
775 |
break; |
|
776 |
case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule2: // 後日以降のチェック |
|
777 |
// 今日を基準に対象日と比較する |
|
778 |
//if (Target.AddDays(wrkCheck.TermDays).Date == DateTime.Now.Date) |
|
779 |
if (Target.AddDays(wrkCheck.TermDays).Date == CriteriaDate.Date) |
|
780 |
{ |
|
781 |
ErrFlg = true; |
|
782 |
} |
|
783 |
break; |
|
784 |
case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule3: // 後日以降継続のチェック |
|
785 |
// 今日を基準に経過日が過ぎているとエラー |
|
786 |
//if (Target.AddDays(wrkCheck.TermDays).Date <= DateTime.Now.Date) |
|
787 |
if (Target.AddDays(wrkCheck.TermDays).Date <= CriteriaDate.Date) |
|
788 |
{ |
|
789 |
ErrFlg = true; |
|
790 |
} |
|
791 |
break; |
|
741 |
switch (wrkCheck.CheckSchdule) |
|
742 |
{ |
|
743 |
case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule0: // 前日以前のチェック |
|
744 |
// 今日を基準に経過日を加算して対象日と比較する |
|
745 |
if (Target.Date == CriteriaDate.AddDays(wrkCheck.TermDays).Date) |
|
746 |
{ |
|
747 |
ErrFlg = true; |
|
748 |
} |
|
749 |
break; |
|
750 |
case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule1: // 当日のチェック |
|
751 |
// 今日を基準に対象日と比較する |
|
752 |
if (Target.Date == CriteriaDate.Date) |
|
753 |
{ |
|
754 |
ErrFlg = true; |
|
755 |
} |
|
756 |
break; |
|
757 |
case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule2: // 後日以降のチェック |
|
758 |
// 今日を基準に対象日と比較する |
|
759 |
if (Target.AddDays(wrkCheck.TermDays).Date == CriteriaDate.Date) |
|
760 |
{ |
|
761 |
ErrFlg = true; |
|
762 |
} |
|
763 |
break; |
|
764 |
case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule3: // 後日以降継続のチェック |
|
765 |
// 今日を基準に経過日が過ぎているとエラー |
|
766 |
if (Target.AddDays(wrkCheck.TermDays).Date <= CriteriaDate.Date) |
|
767 |
{ |
|
768 |
ErrFlg = true; |
|
769 |
} |
|
770 |
break; |
|
771 |
} |
|
772 |
// チェック項目に該当すればメッセージ・色をセットする |
|
773 |
if (ErrFlg) |
|
774 |
{ |
|
775 |
TermRec.Add(wrkCheck); |
|
776 |
bCheckNoError = false; |
|
777 |
} |
|
778 |
if (ErrFlg) break; |
|
792 | 779 |
} |
793 |
// チェック項目に該当すればメッセージ・色をセットする |
|
794 |
if (ErrFlg) |
|
795 |
{ |
|
796 |
TermRec.Add(wrkCheck); |
|
797 |
bCheckNoError = false; |
|
798 |
} |
|
799 | 780 |
} |
800 | 781 |
return bCheckNoError; |
801 | 782 |
} |
branches/src/DataCheckExcute/DataCheckExcute/FrmDataCheck.cs | ||
---|---|---|
42 | 42 |
|
43 | 43 |
lblMessage.Text = "工事基本情報をチェックしています。\nそのまましばらくお待ちください。"; |
44 | 44 |
lblMessage.Refresh(); |
45 |
logger.Info(lblMessage.Text); |
|
45 |
logger.Info(lblMessage.Text.Replace("\n",""));
|
|
46 | 46 |
|
47 | 47 |
ClsSystemOnceExecute ChkProc = new ClsSystemOnceExecute(); |
48 | 48 |
|
他の形式にエクスポート: Unified diff