プロジェクト

全般

プロフィール

リビジョン 298

堀内約7年前に追加

期限チェック解除処理追加
注文書印刷フォーマット修正
請求まとめ修正中

差分を表示:

branches/src/DataCheckExcute/DataCheckExcute/Common/Process/ClsChangeLedgerData.cs
43 43
        #endregion
44 44

  
45 45
        #region 変数
46
        /// <summary>
47
        /// 工事施工台帳支払い実績先頭カラム数
48
        /// </summary>
49
        private static int m_LedgerColumnCount = 0;
46

  
50 47
        #endregion
51 48

  
52 49
        #region 工事詳細台帳再計算処理(総支払額・粗利・給与・純利益が対象)
branches/src/DataCheckExcute/DataCheckExcute/Common/Process/ClsSystemOnceExecute.cs
47 47
        /// 状態毎期限チェックコードリスト
48 48
        /// </summary>
49 49
        private ArrayList m_TermCodeArray = new ArrayList();
50

  
50 51
        /// <summary>
51 52
        /// 状態毎期限マスタリスト
52 53
        /// </summary>
......
205 206
                strSQL.Append(" ConstructionStatusFlg ASC");
206 207
                strSQL.Append(", FieldNo ASC");
207 208
                strSQL.Append(", CheckSchdule DESC");
208
                strSQL.Append(", TermDays DESC"); 
209
                strSQL.Append(", TermDays DESC");
209 210

  
210 211
                if (!tmDB.SelectAction(strSQL.ToString(), ref m_TermMstList)) return false;
211 212
                if (m_TermMstList.Count == 0) return false;
......
518 519

  
519 520
                // 工事基本情報を期限テーブルに設定している状態分取得する
520 521
                StringBuilder strSQL = new StringBuilder();
521
                strSQL.Append(" WHERE CONSTRUCTIONSTATUSFLG IN (SELECT DISTINCT A1.CONSTRUCTIONSTATUSFLG FROM TERMMASTER A1)");
522
                strSQL.Append(" ORDER BY CONSTRUCTIONSTATUSFLG ASC, CONSTRUCTIONCODE ASC");
523
                List<ConstructionBaseInfo> cbiList = new List<ConstructionBaseInfo>();
524
                if (!cbiDB.SelectAction(strSQL.ToString(), ref cbiList)) return true;
522
                strSQL.Append("Select * From");
523
                strSQL.Append(" constructionbaseinfo As Atbl");
524
                strSQL.Append(" Left Join PeriodAvoidance As Btbl");
525
                strSQL.Append(" On Btbl.ConstructionCode = Atbl.ConstructionCode");
526
                strSQL.Append(" And Btbl.ConstructionStatusFlg = Atbl.ConstructionStatusFlg");
527
                strSQL.Append(" WHERE Atbl.CONSTRUCTIONSTATUSFLG IN");
528
                strSQL.Append(" (SELECT DISTINCT A1.CONSTRUCTIONSTATUSFLG FROM TERMMASTER A1) ");
529
                strSQL.Append(" ORDER BY Atbl.CONSTRUCTIONSTATUSFLG ASC, Atbl.CONSTRUCTIONCODE ASC");
530
                ArrayList cbiList = new ArrayList();
531
                if (!cbiDB.ExecuteReader(strSQL.ToString(), ref cbiList)) return true;
525 532

  
526 533
                // 経過日数を取得する
527 534
                TimeSpan ts = DateTime.Now - StartDate;
......
539 546
                mbtDB.connect(); mbtDB.beginTran();
540 547

  
541 548
                bool procflg = true;
549
                ConstructionBaseInfo wrkBaseRec = new ConstructionBaseInfo();
550
                PeriodAvoidance wrkAvoRec = new PeriodAvoidance();
551
                int offset = Enum.GetNames(typeof(IOConstructionBaseInfo.TableColumn)).Length + 1;
542 552
                // 経過日数分処理を行う
543 553
                for (int ix = 0; ix < diffDays; ix++)
544 554
                {
545 555
                    DateTime CriteriaDate = StartDate.AddDays((ix + 1));
546
                    foreach (ConstructionBaseInfo wrkRec in cbiList)
556
                    foreach(object[] objRec in cbiList)
547 557
                    {
558
                        // 工事情報データセット
559
                        cbiDB.Reader2Struct(objRec, ref wrkBaseRec);
560
                        // ----- 工事期限回避データ
561
                        // 工事コード
562
                        wrkAvoRec.ConstructionCode = CommonMotions.cnvInt(objRec[offset + (int)IOPeriodAvoidance.NameColumn.ConstructionCode]);
563
                        // 工事状態フラグ
564
                        wrkAvoRec.ConstructionStatusFlg = CommonMotions.cnvInt(objRec[offset + (int)IOPeriodAvoidance.NameColumn.ConstructionStatusFlg]);
565
                        // チェック対象フィールド番号
566
                        wrkAvoRec.FieldNo = CommonMotions.cnvInt(objRec[offset + (int)IOPeriodAvoidance.NameColumn.ConstructionStatusFlg]);
567

  
548 568
                        List<TermMaster> term = new List<TermMaster>();
549 569
                        // 増減工事の子
550
                        if (wrkRec.TyingFlg == (int)ConstructionBaseInfo.TyingFlgDef.Tying)
570
                        if (wrkBaseRec.TyingFlg == (int)ConstructionBaseInfo.TyingFlgDef.Tying)
551 571
                        {
552 572
                            // 工事予算承認が承認されている場合は処理しない
553
                            if (SubmittedDateCheckApproval3(cbiDB, wrkRec.ConstructionCode)) continue;
573
                            if (SubmittedDateCheckApproval3(cbiDB, wrkBaseRec.ConstructionCode)) continue;
554 574
                        }
555 575
                        // 結合工事の親は処理しない
556
                        if (wrkRec.JoinFlg == (int)ConstructionBaseInfo.JoinFlgDef.JoinParent) continue;
576
                        if (wrkBaseRec.JoinFlg == (int)ConstructionBaseInfo.JoinFlgDef.JoinParent) continue;
557 577
                        // 結合工事の子は処理しない
558
                        if (wrkRec.JoinFlg == (int)ConstructionBaseInfo.JoinFlgDef.JoinChildren) continue;
578
                        if (wrkBaseRec.JoinFlg == (int)ConstructionBaseInfo.JoinFlgDef.JoinChildren) continue;
559 579
                        // チェックOKならば次のデータ
560
                        if (ConstructionStatusCheck(wrkRec, CriteriaDate, ref term)) continue;
580
                        if (ConstructionStatusCheck(wrkBaseRec, wrkAvoRec, CriteriaDate, ref term)) continue;
561 581

  
562 582
                        // 掲示板にメッセージを載せるためにループ処理
563 583
                        foreach (TermMaster CurTerm in term)
564 584
                        {
565 585
                            // メッセージ作成
566
                            if (!MakeMassageData(mbdDB, mbtDB, cbiDDB, wrkRec, CurTerm, CriteriaDate))
586
                            if (!MakeMassageData(mbdDB, mbtDB, cbiDDB, wrkBaseRec, CurTerm, CriteriaDate))
567 587
                            {   // エラー時に抜ける
568 588
                                procflg = false;
569 589
                                break;
......
649 669
        /// チェック処理
650 670
        /// </summary>
651 671
        /// <returns></returns>
652
        public bool ConstructionStatusCheck(ConstructionBaseInfo checkRec, DateTime CriteriaDate, ref List<TermMaster> TermRec)
672
        public bool ConstructionStatusCheck(ConstructionBaseInfo checkRec, PeriodAvoidance AvoidanceRec, DateTime CriteriaDate, ref List<TermMaster> TermRec)
653 673
        {
654 674
            try
655 675
            {
......
658 678

  
659 679
                int nStatusFlg = -1;
660 680
                int nFieldNo = -1;
661
                int nCheckSchdule =-1;
681
                int nCheckSchdule = -1;
662 682
                bool ErrFlg = false;
663 683
                // エラーチェック
664 684
                foreach (object[] objCode in m_TermCodeArray)
......
677 697
                                                                                .ToArray();
678 698
                    foreach (TermMaster wrkCheck in CheckTerget)
679 699
                    {
700
                        // 解除データがあれば次レコード
701
                        if (wrkCheck.FieldNo == AvoidanceRec.FieldNo) continue;
702

  
680 703
                        // 対象日付をクリア
681 704
                        DateTime Target = DateTime.MinValue;
682 705

  
branches/src/DataCheckExcute/DataCheckExcute/DataCheckExcute.csproj
295 295
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DataModel\PaymentDataDetail.cs">
296 296
      <Link>DataModel\PaymentDataDetail.cs</Link>
297 297
    </Compile>
298
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DataModel\PeriodAvoidance.cs">
299
      <Link>DataModel\PeriodAvoidance.cs</Link>
300
    </Compile>
298 301
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DataModel\PersonApproval.cs">
299 302
      <Link>DataModel\PersonApproval.cs</Link>
300 303
    </Compile>
......
394 397
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DataModel\TermMaster.cs">
395 398
      <Link>DataModel\TermMaster.cs</Link>
396 399
    </Compile>
397
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DataModel\TermMasterList.cs">
398
      <Link>DataModel\TermMasterList.cs</Link>
399
    </Compile>
400 400
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DataModel\TranceportDailyData.cs">
401 401
      <Link>DataModel\TranceportDailyData.cs</Link>
402 402
    </Compile>
......
676 676
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DB\IOAccess\IOPaymentDataDetail.cs">
677 677
      <Link>DB\IOAccess\IOPaymentDataDetail.cs</Link>
678 678
    </Compile>
679
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DB\IOAccess\IOPeriodAvoidance.cs">
680
      <Link>DB\IOAccess\IOPeriodAvoidance.cs</Link>
681
    </Compile>
679 682
    <Compile Include="..\..\ProcessManagement\ProcessManagement\DB\IOAccess\IOPersonApproval.cs">
680 683
      <Link>DB\IOAccess\IOPersonApproval.cs</Link>
681 684
    </Compile>
branches/src/ProcessManagement/ProcessManagement/Common/CommonMotions.cs
530 530
        }
531 531
        #endregion
532 532

  
533
        #region 文字列より数値変換(long)
533
        #region オブジェクトより数値変換(long)
534 534
        /// <summary>
535
        /// 文字列より数値変換(long)
535
        /// オブジェクトより数値変換(long)
536 536
        /// </summary>
537 537
        /// <param name="sendData"></param>
538 538
        /// <returns></returns>
......
559 559
        }
560 560
        #endregion
561 561

  
562
        #region 文字列より数値変換(int)
562
        #region オブジェクトより数値変換(int)
563 563
        /// <summary>
564
        /// 文字列より数値変換(int)
564
        /// オブジェクトより数値変換(int)
565 565
        /// </summary>
566 566
        /// <param name="sendData"></param>
567 567
        /// <returns></returns>
......
588 588
        }
589 589
        #endregion
590 590

  
591
        #region 文字列より数値変換(string)
591
        #region オブジェクトより数値変換(string)
592 592
        /// <summary>
593
        /// 文字列より数値変換(string)
593
        /// オブジェクトより数値変換(string)
594 594
        /// </summary>
595 595
        /// <param name="sendData"></param>
596 596
        /// <returns></returns>
......
618 618
        }
619 619
        #endregion
620 620

  
621
        #region 文字列より数値変換(double)
621
        #region オブジェクトより数値変換(double)
622 622
        /// <summary>
623
        /// 文字列より数値変換(double)
623
        /// オブジェクトより数値変換(double)
624 624
        /// </summary>
625 625
        /// <param name="sendData"></param>
626 626
        /// <returns></returns>
......
648 648
        }
649 649
        #endregion
650 650

  
651
        #region 文字列より数値変換(float)
651
        #region オブジェクトより数値変換(float)
652 652
        /// <summary>
653
        /// 文字列より数値変換(float)
653
        /// オブジェクトより数値変換(float)
654 654
        /// </summary>
655 655
        /// <param name="sendData"></param>
656 656
        /// <returns></returns>
......
678 678
        }
679 679
        #endregion
680 680

  
681
        #region 文字列より数値変換(decimal)
681
        #region オブジェクトより数値変換(decimal)
682 682
        /// <summary>
683
        /// 文字列より数値変換(decimal)
683
        /// オブジェクトより数値変換(decimal)
684 684
        /// </summary>
685 685
        /// <param name="sendData"></param>
686 686
        /// <returns></returns>
......
708 708
        }
709 709
        #endregion
710 710

  
711
        #region オブジェクトよりBool値変換(bool)
712
        /// <summary>
713
        /// オブジェクトよりBool値変換(bool)
714
        /// </summary>
715
        /// <param name="sendData"></param>
716
        /// <returns></returns>
717
        public static bool cnvBool(object sendData)
718
        {
719
            try
720
            {
721
                bool retData = false;
722

  
723
                // 空判定
724
                if (sendData == null) return retData;
725
                if (sendData.ToString().Trim().Length == 0) return retData;
726

  
727
                // 変換
728
                bool.TryParse(sendData.ToString(), out retData);
729

  
730
                return retData;
731
            }
732
            catch (System.Exception ex)
733
            {
734
                logger.ErrorFormat("システムエラー:{0}:{1}", GetMethodName(), ex.Message);
735
                return false;
736
            }
737
        }
738
        #endregion
739

  
711 740
        #region 四捨五入
712 741
        /// <summary>
713 742
        /// 四捨五入
......
909 938
        }
910 939
        #endregion
911 940

  
912
        #region 文字列から日付を返す(文字列が"未定"文字ならば日付最小値を返す)
941
        #region オブジェクトより日付を返す(文字列が"未定"文字ならば日付最小値を返す)
913 942
        /// <summary>
914
        /// 文字列から日付を返す
943
        /// オブジェクトより日付を返す
915 944
        /// 文字列が"未定"文字ならば日付最小値を返す
916 945
        /// </summary>
917 946
        /// <param name="srcDate"></param>
......
934 963
        }
935 964
        #endregion
936 965

  
937
        #region 文字列から数値(文字列が"未定"文字ならば0を返す)
966
        #region オブジェクトより数値(文字列が"未定"文字ならば0を返す)
938 967
        /// <summary>
939
        /// 文字列から数値
968
        /// オブジェクトより数値
940 969
        /// 文字列が"未定"文字ならば0を返す
941 970
        /// </summary>
942 971
        /// <param name="srcDate"></param>
branches/src/ProcessManagement/ProcessManagement/Common/CommonVersion.cs
14 14
        /// <summary>
15 15
        /// 本体バージョン
16 16
        /// </summary>
17
        public static int s_SystemVersion = 109;
17
        public static int s_SystemVersion = 110;
18 18

  
19 19
        /// <summary>
20 20
        /// コピー・環境バージョン
branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsPeriodAvoidance.cs
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Windows.Forms;
9
using System.Collections;
10
using System.Diagnostics;
11

  
12
using log4net;
13
using log4net.Appender;
14
using log4net.Repository.Hierarchy;
15

  
16
using ProcessManagement.Common;
17
using ProcessManagement.DB.IOAccess;
18
using ProcessManagement.DataModel;
19
using ProcessManagement.Forms.Master;
20
using ProcessManagement.Forms.DataEntry;
21
using ProcessManagement.Forms.ControlsAction;
22
using ProcessManagement.Forms.SubForms;
23

  
24
//*----------------------- 期限解除処理クラスクラス ---------------------------*
25
//  2017/11/30  Ver1.0.0.0      Create Source           
26
//
27
//
28
//
29
//*----------------------------------------------------------------------------*
30
namespace ProcessManagement.Common.Process
31
{
32
    public static class ClsPeriodAvoidance
33
    {
34
        #region 定義部
35
        /// <summary>
36
        /// log4netログを使用する
37
        /// </summary>
38
        private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
39
        #endregion
40

  
41
        #region 期限解除処理
42
        /// <summary>
43
        /// 期限解除処理
44
        /// </summary>
45
        public static bool TermAvoidance(string strTitle, string strMsg)
46
        {
47
            IOMTerm TermDB = new IOMTerm();
48
            try
49
            {
50
                // メッセージより期限マスタを取得する
51
                StringBuilder strSQL = new StringBuilder();
52
                strSQL.AppendFormat(" Where SendTitile = '{0}'", strTitle);
53
                strSQL.AppendFormat(" And SendMessage = '{0}'", strMsg);
54

  
55
                List<TermMaster> termList = new List<TermMaster>();
56
                if (!TermDB.SelectAction(strSQL.ToString(), ref termList) || termList.Count < 1) return false;
57

  
58
                DialogResult drAns = MessageBox.Show("選択工事の期限チェックを解除しますか?"
59
                                                        , "実行確認"
60
                                                        , MessageBoxButtons.OKCancel
61
                                                        , MessageBoxIcon.Question);
62
                if (drAns == DialogResult.Cancel) return false;
63

  
64

  
65
                return true;
66
            }
67
            catch (Exception ex)
68
            {
69
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(2), ex.Message);
70
                return false;
71
            }
72
            finally
73
            {
74
                TermDB.close(); TermDB = null;
75
            }
76
        }
77
        #endregion
78
    }
79
}
branches/src/ProcessManagement/ProcessManagement/Common/Process/ClsSystemOnceExecute.cs
48 48
        private bool m_bExecuteFlg = true;
49 49
        
50 50
        /// <summary>
51
        /// 状態毎期限チェックコードリスト
52
        /// </summary>
53
        private ArrayList m_TermCodeArray = new ArrayList();
54

  
55
        /// <summary>
51 56
        /// 状態毎期限マスタリスト
52 57
        /// </summary>
53
        private List<TermMasterList> SystemOnceExecuteTermMstList = new List<TermMasterList>();
58
        private List<TermMaster> m_TermMstList = new List<TermMaster>();
54 59

  
55 60
        /// <summary>
56 61
        /// 最終起動日
......
79 84
            bool ProcessFlg = true;
80 85
            try
81 86
            {
82
                // 初期化に失敗したら処理しない
83
                if (!m_bExecuteFlg) return;
84

  
85 87
                // 本日の初回起動がされている場合は処理しない
86 88
                if (!ExecuteCheck(ref m_lastsessionDate)) return;
87 89
                
......
208 210
            try
209 211
            {
210 212
                // 期限マスタ読込
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;
213
                StringBuilder strSQL = new StringBuilder();
214
                strSQL.Append(" Order By");
215
                strSQL.Append(" ConstructionStatusFlg ASC");
216
                strSQL.Append(", FieldNo ASC");
217
                strSQL.Append(", CheckSchdule DESC");
218
                strSQL.Append(", TermDays DESC");
214 219

  
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);
220
                if (!tmDB.SelectAction(strSQL.ToString(), ref m_TermMstList)) return false;
221
                if (m_TermMstList.Count == 0) return false;
227 222

  
228
                        // ブレイクキーの更新
229
                        iTmpStatus = tmRec.ConstructionStatusFlg;
230
                    }
231
                    // 取得データをセットする
232
                    CheckList.TermMstTBL.Add(tmRec);
233
                }
223
                // チェックコードリスト取得
224
                strSQL.Clear();
225
                strSQL.Append("Select");
226
                strSQL.Append(" ConstructionStatusFlg");
227
                strSQL.Append(", FieldNo");
228
                strSQL.Append(", CheckSchdule");
229
                strSQL.Append(" From");
230
                strSQL.Append(" TermMaster");
231
                strSQL.Append(" Group by");
232
                strSQL.Append(" ConstructionStatusFlg");
233
                strSQL.Append(", FieldNo");
234
                strSQL.Append(", CheckSchdule");
234 235

  
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
                }
236
                if (!tmDB.ExecuteReader(strSQL.ToString(), ref m_TermCodeArray)) return false;
237
                if (m_TermCodeArray.Count == 0) return false;
245 238

  
246 239
                return true;
247 240
            }
......
497 490
                strSQL.Append(" INNER JOIN CONSTRUCTIONMATERIALINFO AS t2");
498 491
                strSQL.Append(" ON t1.CONSTRUCTIONCODE = t2.CONSTRUCTIONCODE");
499 492
                strSQL.Append(" AND t1.MATERIALITEMCODE = t2.MATERIALITEMCODE");
493
                strSQL.Append(" AND DATE(t1.ENTRYDATE) = DATE(t2.PROCESSDATE)");
500 494
                strSQL.Append(" AND t2.COMPLETEFLG = 0");
501 495
                strSQL.Append(" WHERE");
502 496
                strSQL.Append(" t1.CONSTRUCTIONCODE > 0");
......
529 523
            IOMessageBoardTerget mbtDB = new IOMessageBoardTerget();
530 524
            try
531 525
            {
526
                // マスタ取得エラーは処理しない
527
                if (!m_bExecuteFlg) return false;
528

  
532 529
                // 工事基本情報を期限テーブルに設定している状態分取得する
533 530
                StringBuilder strSQL = new StringBuilder();
534
                strSQL.Append(" WHERE CONSTRUCTIONSTATUSFLG IN (SELECT DISTINCT A1.CONSTRUCTIONSTATUSFLG FROM TERMMASTER A1)");
535
                strSQL.Append(" ORDER BY CONSTRUCTIONSTATUSFLG ASC, CONSTRUCTIONCODE ASC");
536
                List<ConstructionBaseInfo> cbiList = new List<ConstructionBaseInfo>();
537
                if (!cbiDB.SelectAction(strSQL.ToString(), ref cbiList)) return true;
531
                strSQL.Append("Select * From");
532
                strSQL.Append(" constructionbaseinfo As Atbl");
533
                strSQL.Append(" Left Join PeriodAvoidance As Btbl");
534
                strSQL.Append(" On Btbl.ConstructionCode = Atbl.ConstructionCode");
535
                strSQL.Append(" And Btbl.ConstructionStatusFlg = Atbl.ConstructionStatusFlg");
536
                strSQL.Append(" WHERE Atbl.CONSTRUCTIONSTATUSFLG IN");
537
                strSQL.Append(" (SELECT DISTINCT A1.CONSTRUCTIONSTATUSFLG FROM TERMMASTER A1) ");
538
                strSQL.Append(" ORDER BY Atbl.CONSTRUCTIONSTATUSFLG ASC, Atbl.CONSTRUCTIONCODE ASC");
539
                ArrayList cbiList = new ArrayList();
540
                if (!cbiDB.ExecuteReader(strSQL.ToString(), ref cbiList)) return true;
538 541

  
539 542
                // 経過日数を取得する
540 543
                TimeSpan ts = DateTime.Now - StartDate;
......
552 555
                mbtDB.connect(); mbtDB.beginTran();
553 556

  
554 557
                bool procflg = true;
558
                ConstructionBaseInfo wrkBaseRec = new ConstructionBaseInfo();
559
                PeriodAvoidance wrkAvoRec = new PeriodAvoidance();
560
                int offset = Enum.GetNames(typeof(IOConstructionBaseInfo.TableColumn)).Length + 1;
555 561
                // 経過日数分処理を行う
556 562
                for (int ix = 0; ix < diffDays; ix++)
557 563
                {
558 564
                    DateTime CriteriaDate = StartDate.AddDays((ix + 1));
559
                    foreach (ConstructionBaseInfo wrkRec in cbiList)
565
                    foreach(object[] objRec in cbiList)
560 566
                    {
567
                        // 工事情報データセット
568
                        cbiDB.Reader2Struct(objRec, ref wrkBaseRec);
569
                        // ----- 工事期限回避データ
570
                        // 工事コード
571
                        wrkAvoRec.ConstructionCode = CommonMotions.cnvInt(objRec[offset + (int)IOPeriodAvoidance.NameColumn.ConstructionCode]);
572
                        // 工事状態フラグ
573
                        wrkAvoRec.ConstructionStatusFlg = CommonMotions.cnvInt(objRec[offset + (int)IOPeriodAvoidance.NameColumn.ConstructionStatusFlg]);
574
                        // チェック対象フィールド番号
575
                        wrkAvoRec.FieldNo = CommonMotions.cnvInt(objRec[offset + (int)IOPeriodAvoidance.NameColumn.ConstructionStatusFlg]);
576

  
561 577
                        List<TermMaster> term = new List<TermMaster>();
562
                        // 増減工事の子は処理しない
563
                        if (wrkRec.TyingFlg == (int)ConstructionBaseInfo.TyingFlgDef.Tying) continue;
578
                        // 増減工事の子
579
                        if (wrkBaseRec.TyingFlg == (int)ConstructionBaseInfo.TyingFlgDef.Tying)
580
                        {
581
                            // 工事予算承認が承認されている場合は処理しない
582
                            if (SubmittedDateCheckApproval3(cbiDB, wrkBaseRec.ConstructionCode)) continue;
583
                        }
564 584
                        // 結合工事の親は処理しない
565
                        if (wrkRec.JoinFlg == (int)ConstructionBaseInfo.JoinFlgDef.JoinParent) continue;
585
                        if (wrkBaseRec.JoinFlg == (int)ConstructionBaseInfo.JoinFlgDef.JoinParent) continue;
566 586
                        // 結合工事の子は処理しない
567
                        if (wrkRec.JoinFlg == (int)ConstructionBaseInfo.JoinFlgDef.JoinChildren) continue;
587
                        if (wrkBaseRec.JoinFlg == (int)ConstructionBaseInfo.JoinFlgDef.JoinChildren) continue;
568 588
                        // チェックOKならば次のデータ
569
                        if (ConstructionStatusCheck(wrkRec, CriteriaDate, ref term)) continue;
589
                        if (ConstructionStatusCheck(wrkBaseRec, wrkAvoRec, CriteriaDate, ref term)) continue;
570 590

  
571 591
                        // 掲示板にメッセージを載せるためにループ処理
572 592
                        foreach (TermMaster CurTerm in term)
573 593
                        {
574 594
                            // メッセージ作成
575
                            if (!MakeMassageData(mbdDB, mbtDB, cbiDDB, wrkRec, CurTerm, CriteriaDate))
595
                            if (!MakeMassageData(mbdDB, mbtDB, cbiDDB, wrkBaseRec, CurTerm, CriteriaDate))
576 596
                            {   // エラー時に抜ける
577 597
                                procflg = false;
578 598
                                break;
......
613 633
        }
614 634
        #endregion
615 635

  
636
        #region 承認の処理チェック
637
        /// <summary>
638
        /// 承認の処理チェック
639
        /// </summary>
640
        /// <returns></returns>
641
        private bool SubmittedDateCheckApproval3(IOConstructionBaseInfo cbiDB, int nConstrCode)
642
        {
643
            try
644
            {
645
                StringBuilder strSQL = new StringBuilder();
646

  
647
                strSQL.Append("Select");
648
                strSQL.Append(" B1.ConstructionCode");
649
                strSQL.Append(", B1.ApprovalCode");
650
                strSQL.Append(" From");
651
                strSQL.Append(" processapproval As B1");
652
                strSQL.Append(" Where");
653
                strSQL.AppendFormat(" B1.ConstructionCode = {0}", nConstrCode);
654

  
655
                // ----- 定義がClsExcuteクラスにあるためマジックナンバー
656
                // ----- 3は工事予算承認が承認されていればOK
657
                strSQL.Append(" And B1.ApprovalCode = 3");
658
                strSQL.Append(" And B1.SeqNo = 1");
659
                strSQL.AppendFormat(" And B1.ApprovalStatus = {0}", (int)CommonDefine.ApprovalStatus.Approval);
660

  
661
                ArrayList arList = new ArrayList();
662
                if (!cbiDB.ExecuteReader(strSQL.ToString(), ref arList, false)) return false;
663
                // 工事予算承認が承認されている場合はOK
664
                if (arList.Count > 0) return true;
665

  
666
                return false;
667
            }
668
            catch (Exception ex)
669
            {
670
                logger.ErrorFormat("システムエラー:{0}", ex.Message);
671
                return false;
672
            }
673
        }
674
        #endregion
675

  
616 676
        #region チェック処理
617 677
        /// <summary>
618 678
        /// チェック処理
619 679
        /// </summary>
620 680
        /// <returns></returns>
621
        public bool ConstructionStatusCheck(ConstructionBaseInfo checkRec, DateTime CriteriaDate, ref List<TermMaster> TermRec)
681
        public bool ConstructionStatusCheck(ConstructionBaseInfo checkRec, PeriodAvoidance AvoidanceRec, DateTime CriteriaDate, ref List<TermMaster> TermRec)
622 682
        {
623 683
            try
624 684
            {
625
                // 初期化に失敗していたら処理しない
626
                if (!m_bExecuteFlg) return true;
627

  
628
                // 取得データの進捗状態がチェック判定テーブルにあるかの存在チェック
629
                bool exestFlg = false;
630
                int itblCnt = 0;
631
                for (int i = 0; i < SystemOnceExecuteTermMstList.Count; i++)
632
                {
633
                    // 判定対象データの状態がチェック判定テーブルにあれば処理をおこなう
634
                    if (SystemOnceExecuteTermMstList[i].TermMstTBL[0].ConstructionStatusFlg == checkRec.ConstructionStatusFlg)
635
                    {
636
                        exestFlg = true;
637
                        itblCnt = i;
638
                        break;
639
                    }
640
                }
641
                // 取得データがチェック判定以外は処理しない
642
                if (!exestFlg) return true;
643

  
644 685
                // 戻り値
645 686
                bool bCheckNoError = true;
646 687

  
647
                List<TermMaster> Termtbl = SystemOnceExecuteTermMstList[itblCnt].TermMstTBL;
688
                int nStatusFlg = -1;
689
                int nFieldNo = -1;
690
                int nCheckSchdule = -1;
691
                bool ErrFlg = false;
648 692
                // エラーチェック
649
                foreach (TermMaster wrkCheck in Termtbl)
693
                foreach (object[] objCode in m_TermCodeArray)
650 694
                {
651
                    // 対象日付をクリア
652
                    DateTime Target = DateTime.MinValue;
695
                    nStatusFlg = CommonMotions.cnvInt(objCode[0]);
696
                    nFieldNo = CommonMotions.cnvInt(objCode[1]);
697
                    nCheckSchdule = CommonMotions.cnvInt(objCode[2]);
653 698

  
654
                    switch (wrkCheck.FieldNo)
699
                    // 状態が対象外は処理しない
700
                    if (nStatusFlg != checkRec.ConstructionStatusFlg) continue;
701

  
702
                    TermMaster[] CheckTerget = m_TermMstList.Cast<TermMaster>().Where(x => x.ConstructionStatusFlg == nStatusFlg
703
                                                                                            && x.FieldNo == nFieldNo
704
                                                                                            && x.CheckSchdule == nCheckSchdule)
705
                                                                                .OrderByDescending(x => x.TermDays)
706
                                                                                .ToArray();
707
                    foreach (TermMaster wrkCheck in CheckTerget)
655 708
                    {
656
                        case (int)ConstructionBaseInfo.DateNoDef.RequestedDate:               // 依頼受け日
657
                            Target = checkRec.RequestedDate;
658
                            break;
659
                        case (int)ConstructionBaseInfo.DateNoDef.EstimatesSubmitDeadline:     // 見積提出期限
660
                            Target = checkRec.EstimatesSubmitDeadline;
661
                            break;
662
                        case (int)ConstructionBaseInfo.DateNoDef.EstimatesSubmittedDate:      // 見積提出日
663
                            Target = checkRec.EstimatesSubmittedDate;
664
                            break;
665
                        case (int)ConstructionBaseInfo.DateNoDef.OrderDate:                   // 受注日
666
                            Target = checkRec.OrderDate;
667
                            break;
668
                        case (int)ConstructionBaseInfo.DateNoDef.OrderStartingDate:           // 開始予定日
669
                            Target = checkRec.OrderStartingDate;
670
                            break;
671
                        case (int)ConstructionBaseInfo.DateNoDef.OrderCompletionDate:         // 完了予定日
672
                            Target = checkRec.OrderCompletionDate;
673
                            break;
674
                        case (int)ConstructionBaseInfo.DateNoDef.ConstrPreparationDate:       // 施工開始準備日
675
                            Target = checkRec.PreparationStartDate;
676
                            break;
677
                        case (int)ConstructionBaseInfo.DateNoDef.ConstructionStartingDate:    // 施工開始日
678
                            Target = checkRec.ConstructionStartingDate;
679
                            break;
680
                        case (int)ConstructionBaseInfo.DateNoDef.ConstructionCompletionDate:  // 施工完了日
681
                            Target = checkRec.ConstructionCompletionDate;
682
                            break;
683
                        case (int)ConstructionBaseInfo.DateNoDef.TransferConstructionDate:    // 工事移管日
684
                            Target = checkRec.TransferConstructionDate;
685
                            break;
686
                        case (int)ConstructionBaseInfo.DateNoDef.EstimatesExpirationDate:     // 見積有効期限
687
                            Target = checkRec.EstimatesExpirationDate;
688
                            break;
689
                        case (int)ConstructionBaseInfo.DateNoDef.ConstructionPeriodStart:     // 契約工期開始
690
                            Target = checkRec.ConstructionPeriodStart;
691
                            break;
692
                        case (int)ConstructionBaseInfo.DateNoDef.ConstructionPeriodEnd:       // 契約工期完了
693
                            Target = checkRec.ConstructionPeriodEnd;
694
                            // 延長工期があれば延長工期を入れる
695
                            if (checkRec.ConstructionPeriodEnd2 != DateTime.MinValue) Target = checkRec.ConstructionPeriodEnd2;
696
                            break;
697
                        case (int)ConstructionBaseInfo.DateNoDef.BillingStartDate:            // 請求準備開始日
698
                            Target = checkRec.BillingStartDate;
699
                            break;
700
                        case (int)ConstructionBaseInfo.DateNoDef.BillingDate:                 // 請求日
701
                            Target = checkRec.BillingDate;
702
                            // 2016/10/06 台帳入力完了日があればチェックをしない 
703
                            if (checkRec.LedgerComplateDate != DateTime.MinValue) Target = DateTime.MinValue.Date;
704
                            break;
705
                    }
706
                    // 未定の日付はチェックしない
707
                    if (Target.Date == DateTime.MinValue.Date) continue;
709
                        // 解除データがあれば次レコード
710
                        if (wrkCheck.FieldNo == AvoidanceRec.FieldNo) continue;
708 711

  
712
                        // 対象日付をクリア
713
                        DateTime Target = DateTime.MinValue;
709 714

  
710
                    // エラーフラグクリア
711
                    bool ErrFlg = false;
715
                        switch (wrkCheck.FieldNo)
716
                        {
717
                            case (int)ConstructionBaseInfo.DateNoDef.RequestedDate:               // 依頼受け日
718
                                Target = checkRec.RequestedDate;
719
                                break;
720
                            case (int)ConstructionBaseInfo.DateNoDef.EstimatesSubmitDeadline:     // 見積提出期限
721
                                Target = checkRec.EstimatesSubmitDeadline;
722
                                break;
723
                            case (int)ConstructionBaseInfo.DateNoDef.EstimatesSubmittedDate:      // 見積提出日
724
                                Target = checkRec.EstimatesSubmittedDate;
725
                                break;
726
                            case (int)ConstructionBaseInfo.DateNoDef.OrderDate:                   // 受注日
727
                                Target = checkRec.OrderDate;
728
                                break;
729
                            case (int)ConstructionBaseInfo.DateNoDef.OrderStartingDate:           // 開始予定日
730
                                Target = checkRec.OrderStartingDate;
731
                                break;
732
                            case (int)ConstructionBaseInfo.DateNoDef.OrderCompletionDate:         // 完了予定日
733
                                Target = checkRec.OrderCompletionDate;
734
                                break;
735
                            case (int)ConstructionBaseInfo.DateNoDef.ConstrPreparationDate:       // 施工開始準備日
736
                                Target = checkRec.PreparationStartDate;
737
                                break;
738
                            case (int)ConstructionBaseInfo.DateNoDef.ConstructionStartingDate:    // 施工開始日
739
                                Target = checkRec.ConstructionStartingDate;
740
                                break;
741
                            case (int)ConstructionBaseInfo.DateNoDef.ConstructionCompletionDate:  // 施工完了日
742
                                Target = checkRec.ConstructionCompletionDate;
743
                                break;
744
                            case (int)ConstructionBaseInfo.DateNoDef.TransferConstructionDate:    // 工事移管日
745
                                Target = checkRec.TransferConstructionDate;
746
                                break;
747
                            case (int)ConstructionBaseInfo.DateNoDef.EstimatesExpirationDate:     // 見積有効期限
748
                                Target = checkRec.EstimatesExpirationDate;
749
                                break;
750
                            case (int)ConstructionBaseInfo.DateNoDef.ConstructionPeriodStart:     // 契約工期開始
751
                                Target = checkRec.ConstructionPeriodStart;
752
                                break;
753
                            case (int)ConstructionBaseInfo.DateNoDef.ConstructionPeriodEnd:       // 契約工期完了
754
                                Target = checkRec.ConstructionPeriodEnd;
755
                                // 延長工期があれば延長工期を入れる
756
                                if (checkRec.ConstructionPeriodEnd2 != DateTime.MinValue) Target = checkRec.ConstructionPeriodEnd2;
757
                                break;
758
                            case (int)ConstructionBaseInfo.DateNoDef.BillingStartDate:            // 請求準備開始日
759
                                Target = checkRec.BillingStartDate;
760
                                break;
761
                            case (int)ConstructionBaseInfo.DateNoDef.BillingDate:                 // 請求日
762
                                Target = checkRec.BillingDate;
763
                                // 2016/10/06 台帳入力完了日があればチェックをしない 
764
                                if (checkRec.LedgerComplateDate != DateTime.MinValue) Target = DateTime.MinValue.Date;
765
                                break;
766
                        }
767
                        // 未定の日付はチェックしない
768
                        if (Target.Date == DateTime.MinValue.Date) continue;
712 769

  
713
                    switch (wrkCheck.CheckSchdule)
714
                    {
715
                        case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule0:   // 前日以前のチェック
716
                            // 今日を基準に経過日を加算して対象日と比較する
717
                            //if (Target.Date == DateTime.Now.AddDays(wrkCheck.TermDays).Date)
718
                            if (Target.Date == CriteriaDate.AddDays(wrkCheck.TermDays).Date)
719
                            {
720
                                ErrFlg = true;
721
                            }
722
                            break;
723
                        case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule1:   // 当日のチェック
724
                            // 今日を基準に対象日と比較する
725
                            //if (Target.Date == DateTime.Now.Date)
726
                            if (Target.Date == CriteriaDate.Date)
727
                            {
728
                                ErrFlg = true;
729
                            }
730
                            break;
731
                        case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule2:   // 後日以降のチェック
732
                            // 今日を基準に対象日と比較する
733
                            //if (Target.AddDays(wrkCheck.TermDays).Date == DateTime.Now.Date)
734
                            if (Target.AddDays(wrkCheck.TermDays).Date == CriteriaDate.Date)
735
                            {
736
                                ErrFlg = true;
737
                            }
738
                            break;
739
                        case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule3:   // 後日以降継続のチェック
740
                            // 今日を基準に経過日が過ぎているとエラー
741
                            //if (Target.AddDays(wrkCheck.TermDays).Date <= DateTime.Now.Date)
742
                            if (Target.AddDays(wrkCheck.TermDays).Date <= CriteriaDate.Date)
743
                            {
744
                                ErrFlg = true;
745
                            }
746
                            break;
770
                        // エラーフラグクリア
771
                        ErrFlg = false;
772

  
773
                        switch (wrkCheck.CheckSchdule)
774
                        {
775
                            case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule0:   // 前日以前のチェック
776
                                // 今日を基準に経過日を加算して対象日と比較する
777
                                if (Target.Date == CriteriaDate.AddDays(wrkCheck.TermDays).Date)
778
                                {
779
                                    ErrFlg = true;
780
                                }
781
                                break;
782
                            case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule1:   // 当日のチェック
783
                                // 今日を基準に対象日と比較する
784
                                if (Target.Date == CriteriaDate.Date)
785
                                {
786
                                    ErrFlg = true;
787
                                }
788
                                break;
789
                            case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule2:   // 後日以降のチェック
790
                                // 今日を基準に対象日と比較する
791
                                if (Target.AddDays(wrkCheck.TermDays).Date == CriteriaDate.Date)
792
                                {
793
                                    ErrFlg = true;
794
                                }
795
                                break;
796
                            case (int)TermMaster.TermDateCheckTimingDef.CheckSchdule3:   // 後日以降継続のチェック
797
                                // 今日を基準に経過日が過ぎているとエラー
798
                                if (Target.AddDays(wrkCheck.TermDays).Date <= CriteriaDate.Date)
799
                                {
800
                                    ErrFlg = true;
801
                                }
802
                                break;
803
                        }
804
                        // チェック項目に該当すればメッセージ・色をセットする
805
                        if (ErrFlg)
806
                        {
807
                            TermRec.Add(wrkCheck);
808
                            bCheckNoError = false;
809
                        }
810
                        if (ErrFlg) break;
747 811
                    }
748
                    // チェック項目に該当すればメッセージ・色をセットする
749
                    if (ErrFlg)
750
                    {
751
                        TermRec.Add(wrkCheck);
752
                        bCheckNoError = false;
753
                    }
754 812
                }
755 813
                return bCheckNoError;
756 814
            }
branches/src/ProcessManagement/ProcessManagement/DB/IOAccess/IOPeriodAvoidance.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;           // Data Provider for MySql
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 IOPeriodAvoidance : 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
            ConstructionCode = 0,
37
            ConstructionStatusFlg,
38
            FieldNo,
39
            EntryDate,
40
            UpdateDate,
41
        }
42
        #endregion
43

  
44
        #region コンストラクタ
45
        /// <summary>
46
        /// コンストラクタ
47
        /// </summary>
48
        /// <param name="ConnectionString"></param>
49
        public IOPeriodAvoidance()
50
            : base(DBCommon.Instance.DBConnectString)
51
        {
52
        }
53

  
54
        #endregion
55

  
56
        #region 行動予定検索
57
        /// <summary>
58
        /// 行動予定検索
59
        /// </summary>
60
        /// <param name="AddSQLString">検索条件SQL文字列</param>
61
        /// <param name="data">行動予定データ</param>
62
        /// <returns>true:成功 false:失敗</returns>
63
        public bool SelectAction(string AddSQLString, ref List<PeriodAvoidance> data, bool bConnect = true)
64
        {
65
            // インターフェース
66
            StringBuilder strcmd = new StringBuilder();
67
            ArrayList arData = new ArrayList();
68

  
69
            try
70
            {
71
                // SQL作成
72
                strcmd.Append("SELECT");
73
                strcmd.Append(" ConstructionCode");
74
                strcmd.Append(", ConstructionStatusFlg");
75
                strcmd.Append(", FieldNo");
76
                strcmd.Append(", DATE_FORMAT(EntryDate,'%Y/%m/%d %H:%i:%s')");
77
                strcmd.Append(", DATE_FORMAT(UpdateDate,'%Y/%m/%d %H:%i:%s')");
78
                strcmd.Append(" FROM PeriodAvoidance");
79
                strcmd.Append(AddSQLString);
80

  
81
                // SQL実行
82
                if (!ExecuteReader(strcmd.ToString(), ref arData, bConnect)) return false;
83

  
84
                // データセット
85
                foreach (object[] objwrk in arData)
86
                {
87
                    PeriodAvoidance work = new PeriodAvoidance();
88
                    Reader2Struct(objwrk, ref work);
89
                    data.Add(work);
90
                }
91

  
92
                return true;
93
            }
94
            catch (Exception ex)
95
            {
96
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
97
                return false;
98
            }
99

  
100
        }
101
        #endregion
102

  
103
        #region 行動予定追加(1件)
104
        /// <summary>
105
        /// 行動予定追加(1件)
106
        /// </summary>
107
        /// <param name="data">行動予定データ</param>
108
        /// <returns>true:成功 false:失敗</returns>
109
        public bool OneRecInsertAction(PeriodAvoidance data, bool bConnect = true)
110
        {
111
            StringBuilder strcmd = new StringBuilder();
112
            try
113
            {
114
                bool bColFirst = true;
115
                strcmd.Append("INSERT INTO PeriodAvoidance");
116
                strcmd.Append(" (");
117
                foreach (var gender in Enum.GetValues(typeof(NameColumn)))
118
                {
119
                    if (!bColFirst) strcmd.Append(", ");
120
                    strcmd.Append(gender.ToString());
121
                    bColFirst = false;
122
                }
123
                strcmd.Append(") VALUES (");
124

  
125
                strcmd.AppendFormat(" {0}", data.ConstructionCode);
126
                strcmd.AppendFormat(",{0}", data.ConstructionStatusFlg);
127
                strcmd.AppendFormat(",{0}", data.FieldNo);
128

  
129
                strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", data.EntryDate);
130
                strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", data.UpdateDate);
131
                strcmd.Append(")");
132

  
133
                if (!ExecuteNonQuery(strcmd.ToString(), bConnect)) return false;
134

  
135
                return true;
136
            }
137
            catch (Exception ex)
138
            {
139
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
140
                return false;
141
            }
142
        }
143
        #endregion
144

  
145
        #region 行動予定追加
146
        /// <summary>
147
        /// 行動予定追加
148
        /// </summary>
149
        /// <param name="data"></param>
150
        /// <param name="bConnect"></param>
151
        /// <returns></returns>
152
        public bool InsertAction(List<PeriodAvoidance> data, bool bConnect = true)
153
        {
154
            StringBuilder strcmd = new StringBuilder();
155
            try
156
            {
157
                bool bColFirst = true;
158
                strcmd.Append("INSERT INTO PeriodAvoidance");
159
                strcmd.Append(" (");
160
                foreach (var gender in Enum.GetValues(typeof(NameColumn)))
161
                {
162
                    if (!bColFirst) strcmd.Append(", ");
163
                    strcmd.Append(gender.ToString());
164
                    bColFirst = false;
165
                }
166
                strcmd.Append(") VALUES");
167

  
168
                bool bDataFirst = true;
169
                foreach (PeriodAvoidance work in data)
170
                {
171
                    if (bDataFirst) strcmd.Append(" (");
172
                    else strcmd.Append(", (");
173

  
174
                    strcmd.AppendFormat(" {0}", work.ConstructionCode);
175
                    strcmd.AppendFormat(",{0}", work.ConstructionStatusFlg);
176
                    strcmd.AppendFormat(",{0}", work.FieldNo);
177

  
178
                    strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.EntryDate);
179
                    strcmd.AppendFormat(", STR_TO_DATE('{0}','%Y/%m/%d %H:%i:%s')", work.UpdateDate);
180
                    strcmd.Append(")");
181

  
182
                    bDataFirst = false;
183
                }
184

  
185
                if (!ExecuteNonQuery(strcmd.ToString(), false)) return false;
186
                return true;
187
            }
188
            catch (Exception ex)
189
            {
190
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
191
                return false;
192
            }
193
        }
194
        #endregion
195

  
196
        #region 行動予定更新
197
        /// <summary>
198
        /// 行動予定更新
199
        /// </summary>
200
        /// <param name="AddSQLString">更新条件SQL文字列</param>
201
        /// <param name="data">行動予定データ</param>
202
        /// <returns>true:成功 false:失敗</returns>
203
        public bool UpdateAction(string AddSQLString, PeriodAvoidance data, bool bConnect = true)
204
        {
205
            StringBuilder strcmd = new StringBuilder();
206
            try
207
            {
208

  
209
                strcmd.Append("UPDATE PeriodAvoidance");
210

  
211
                strcmd.Append(" SET");
212
                strcmd.AppendFormat(" ConstructionCode = {0}", data.ConstructionCode);
213
                strcmd.AppendFormat(", ConstructionStatusFlg = {0}", data.ConstructionStatusFlg);
214
                strcmd.AppendFormat(", FieldNo = {0}", data.FieldNo);
215

  
216
                strcmd.Append(", UpdateDate = NOW()");
217
                strcmd.Append(AddSQLString);
218

  
219
                if (!ExecuteNonQuery(strcmd.ToString(), bConnect)) return false;
220

  
221
                return true;
222
            }
223
            catch (Exception ex)
224
            {
225
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
226
                return false;
227
            }
228
        }
229
        #endregion
230

  
231
        #region 行動予定削除
232
        /// <summary>
233
        /// 行動予定削除
234
        /// </summary>
235
        /// <param name="AddSQLString">削除条件SQL文字列</param>
236
        /// <param name="data">行動予定データ</param>
237
        /// <returns>true:成功 false:失敗</returns>
238
        public bool DeleteAction(string AddSQLString, bool bConnect = true)
239
        {
240
            // インターフェース
241
            StringBuilder strcmd = new StringBuilder();
242
            try
243
            {
244
                strcmd.AppendFormat("{0}{1}", "DELETE FROM PeriodAvoidance", AddSQLString);
245

  
246
                if (!ExecuteNonQuery(strcmd.ToString(), bConnect)) return false;
247

  
248
                return true;
249
            }
250
            catch (Exception ex)
251
            {
252
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", CommonMotions.GetMethodName(2), ex.Message, strcmd.ToString());
253
                return false;
254
            }
255
        }
256
        #endregion
257

  
258
        #region 構造体へセットする
259
        /// <summary>
260
        /// 構造体へセットする
261
        /// </summary>
262
        /// <param name="wrk">構造体</param>
263
        public void Reader2Struct(object[] objwrk, ref PeriodAvoidance wrk)
264
        {
265
            try
266
            {
267
                // データ取得
268
                wrk.ConstructionCode= int.Parse(objwrk[(int)NameColumn.ConstructionCode].ToString());
269
                wrk.ConstructionStatusFlg = int.Parse(objwrk[(int)NameColumn.ConstructionStatusFlg].ToString());
270
                wrk.FieldNo = int.Parse(objwrk[(int)NameColumn.FieldNo].ToString());
271

  
272
                wrk.EntryDate = DateTime.Parse(objwrk[(int)NameColumn.EntryDate].ToString());
273
                wrk.UpdateDate = DateTime.Parse(objwrk[(int)NameColumn.UpdateDate].ToString());
274
            }
275
            catch (MySqlException myex)
276
            {
277
                logger.ErrorFormat("MySQLエラー:{0}:{1}", CommonMotions.GetMethodName(), myex.Message);
278
            }
279
            catch (Exception ex)
280
            {
281
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
282
            }
283
        }
284
        #endregion
285

  
286
        #region 主キー検索の文字列を返す
287
        /// <summary>
288
        /// 主キー検索の文字列を返す
289
        /// </summary>
290
        /// <param name="BusinessTypeCode"></param>
291
        /// <returns>Where文字列</returns>
292
        public string CreatePrimarykeyString(int ConstructionCode,int ConstructionStatusFlg = 0, int FieldNo = 0)
293
        {
294
            StringBuilder strWork = new StringBuilder();
295
            try
296
            {
297
                strWork.AppendFormat(" Where ConstructionCode = {0}", ConstructionCode);
298
                if (ConstructionStatusFlg > 0)
299
                    strWork.AppendFormat(" And ConstructionStatusFlg = {0}", ConstructionStatusFlg);
300
                if (FieldNo != 0)
301
                    strWork.AppendFormat(" And FieldNo = {0}", FieldNo.ToString());
302

  
303
            }
304
            catch (Exception ex)
305
            {
306
                logger.ErrorFormat("システムエラー:{0}:{1}:{2}", CommonMotions.GetMethodName(2), ex.Message, strWork.ToString());
307
            }
308

  
309
            return strWork.ToString();
310
        }
311
        #endregion
312
    }
313
}
branches/src/ProcessManagement/ProcessManagement/DataModel/TermMasterList.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Windows.Forms;
6

  
7
using ProcessManagement.Common;
8

  
9
namespace ProcessManagement.DataModel
10
{
11
    /// <summary>
12
    /// 期限マスタリストクラス
13
    /// </summary>
14
    public class TermMasterList
15
    {
16
        #region メンバ変数
17
        /// <summary>
18
        /// 期限マスタリスト
19
        /// </summary>
20
        private List<TermMaster> m_TermCheckList = new List<TermMaster>();
21
        #endregion
22

  
23
        #region プロパティ
24
        /// <summary>
25
        /// 期限マスタリスト
26
        /// </summary>
27
        public List<TermMaster> TermMstTBL
28
        {
29
            get { return m_TermCheckList; }
30
            set { m_TermCheckList = value; }
31
        }
32
        #endregion
33
    }
34
}
branches/src/ProcessManagement/ProcessManagement/DataModel/PeriodAvoidance.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5

  
6
namespace ProcessManagement.DataModel
7
{
8
    /// <summary>
9
    /// 期限マスタ
10
    /// </summary>
11
    public class PeriodAvoidance
12
    {
13
        #region メンバ変数
14
        /// <summary>
15
        /// 工事コード
16
        /// </summary>
17
        private int         m_ConstructionCode = 0;
18
        /// <summary>
19
        /// 工事状態フラグ
20
        /// </summary>
21
        private int         m_ConstructionStatusFlg = 0;
22
        /// <summary>
23
        /// チェック対象フィールド番号
24
        /// </summary>
25
        private int         m_FieldNo = 0;
26
        /// <summary>
27
        /// 登録日付
28
        /// </summary>
29
        private DateTime    m_EntryDate = DateTime.Now;
30
        /// <summary>
31
        /// 更新日付
32
        /// </summary>
33
        private DateTime    m_UpdateDate = DateTime.Now;
34
        #endregion
35

  
36
        #region コンストラクタ
37
        #endregion
38

  
39
        #region プロパティ
40
        /// <summary>
41
        /// 工事コード
42
        /// </summary>
43
        public int ConstructionCode
44
        {
45
            get { return m_ConstructionCode; }
46
            set { m_ConstructionCode = value; }
47
        }
48
        /// <summary>
49
        /// 工事状態フラグ
50
        /// </summary>
51
        public int ConstructionStatusFlg
52
        {
53
            get { return m_ConstructionStatusFlg; }
54
            set { m_ConstructionStatusFlg = value; }
55
        }
56
        /// <summary>
57
        /// チェック対象フィールド番号
58
        /// </summary>
59
        public int FieldNo
60
        {
61
            get { return m_FieldNo; }
62
            set { m_FieldNo = value; }
63
        }
64
        /// <summary>
65
        /// 登録日付
66
        /// </summary>
67
        public DateTime EntryDate
68
        {
69
            set { m_EntryDate = value; }
70
            get { return m_EntryDate; }
71
        }
72
        /// <summary>
73
        /// 更新日付
74
        /// </summary>
75
        public DateTime UpdateDate
76
        {
77
            set { m_UpdateDate = value; }
78
            get { return m_UpdateDate; }
79
        }
80
        #endregion
81
    }
82
}
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBaseInfo/FrmConstructionBaseInfo.cs
2025 2025
            this.Close();
2026 2026
        }
2027 2027
        #endregion
2028

  
2029
        #region ?????`?F?b?N?????{?^??????
2030
        /// <summary>
2031
        /// ?????`?F?b?N?????{?^??????
2032
        /// </summary>
2033
        /// <param name="sender"></param>
2034
        /// <param name="e"></param>
2035
        private void btnPA_Click(object sender, EventArgs e)
2036
        {
2037
            PeriodAvoidanceProc();
2038
        }
2039
        #endregion
2028 2040
    }
2029 2041
}
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBaseInfo/FrmConstructionBaseInfo.designer.cs
315 315
            this.btnOtherProc = new System.Windows.Forms.Button();
316 316
            this.lblJointLabel = new System.Windows.Forms.Label();
317 317
            this.groupBoxEx1 = new ProcessManagement.Forms.CustomControls.GroupBoxEx();
318
            this.btnPA = new System.Windows.Forms.Button();
318 319
            this.BasePanel.SuspendLayout();
319 320
            this.tableLayoutPanel2.SuspendLayout();
320 321
            this.panel10.SuspendLayout();
......
3994 3995
            this.groupBoxEx1.TabIndex = 98;
3995 3996
            this.groupBoxEx1.TabStop = false;
3996 3997
            // 
3998
            // btnPA
3999
            // 
4000
            this.btnPA.BackColor = System.Drawing.Color.DimGray;
4001
            this.btnPA.Font = new System.Drawing.Font("MS 明朝", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
4002
            this.btnPA.ForeColor = System.Drawing.Color.White;
4003
            this.btnPA.Location = new System.Drawing.Point(169, 657);
4004
            this.btnPA.Name = "btnPA";
4005
            this.btnPA.Size = new System.Drawing.Size(150, 30);
4006
            this.btnPA.TabIndex = 100;
4007
            this.btnPA.TabStop = false;
4008
            this.btnPA.Text = "期限チェック解除";
4009
            this.btnPA.UseVisualStyleBackColor = false;
4010
            this.btnPA.Visible = false;
4011
            this.btnPA.Click += new System.EventHandler(this.btnPA_Click);
4012
            // 
3997 4013
            // FrmConstructionBaseInfo
3998 4014
            // 
3999 4015
            this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
......
4008 4024
            this.Controls.Add(this.BasePanel);
4009 4025
            this.Controls.Add(this.btnDataDelete);
4010 4026
            this.Controls.Add(this.btnDataEntry);
4027
            this.Controls.Add(this.btnPA);
4011 4028
            this.Controls.Add(this.btnEnd);
4012 4029
            this.Controls.Add(this.label1);
4013 4030
            this.Font = new System.Drawing.Font("MS 明朝", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
......
4321 4338
        private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
4322 4339
        private CustomControls.GroupBoxEx groupBoxEx1;
4323 4340
        private System.Windows.Forms.Button btnRestore;
4341
        private System.Windows.Forms.Button btnPA;
4324 4342
    }
4325 4343
}
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionBaseInfo/FrmConstructionBaseInfoAuxiliary.cs
4918 4918
                    btnRestore.Enabled = true;
4919 4919
                    btnRestore.Visible = true;
4920 4920
                }
4921
                // ??????????`?F?b?N?????{?^??????????\??(?V?K????\???????)
4922
                if (m_ConstructionCode > 0) btnPA.Visible = true;
4921 4923
            }
4922 4924
            catch (Exception ex)
4923 4925
            {
......
4948 4950
            }
4949 4951
        }
4950 4952
        #endregion
4953

  
4954
        #region ?????`?F?b?N?????f?[?^?o?^????
4955
        /// <summary>
4956
        /// ?????`?F?b?N?????f?[?^?o?^????
4957
        /// </summary>
4958
        private void PeriodAvoidanceProc()
4959
        {
4960
            FrmPeriodAvoidance frm = new FrmPeriodAvoidance();
4961
            try
4962
            {
4963
                frm.ConstructionCode = m_ConstructionCode;
4964
                frm.ShowDialog();
4965
            }
4966
            catch (Exception ex)
4967
            {
4968
                logger.ErrorFormat("?V?X?e???G???[?F{0}?F{1}", CommonMotions.GetMethodName(), ex.Message);
4969
            }
4970
            finally
4971
            {
4972
                frm.Dispose(); frm = null;
4973
            }
4974
        }
4975
        #endregion
4951 4976
    }
4952 4977
}
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/ConstructionLedgerList/FrmConstructionLedgerList.designer.cs
488 488
            this.label18.ForeColor = System.Drawing.Color.Red;
489 489
            this.label18.Location = new System.Drawing.Point(944, 59);
490 490
            this.label18.Name = "label18";
491
            this.label18.Size = new System.Drawing.Size(282, 19);
491
            this.label18.Size = new System.Drawing.Size(345, 19);
492 492
            this.label18.TabIndex = 55;
493
            this.label18.Text = "※当期人件費のの計算です";
493
            this.label18.Text = "※当期人件費のおおよその計算です";
494 494
            // 
495 495
            // lblEndDate
496 496
            // 
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/DepExpenssList/FrmDepExpenssList.designer.cs
412 412
            this.label18.ForeColor = System.Drawing.Color.Red;
413 413
            this.label18.Location = new System.Drawing.Point(944, 59);
414 414
            this.label18.Name = "label18";
415
            this.label18.Size = new System.Drawing.Size(282, 19);
415
            this.label18.Size = new System.Drawing.Size(345, 19);
416 416
            this.label18.TabIndex = 56;
417
            this.label18.Text = "※当期人件費のの計算です";
417
            this.label18.Text = "※当期人件費のおおよその計算です";
418 418
            // 
419 419
            // lblEndDate
420 420
            // 
branches/src/ProcessManagement/ProcessManagement/Forms/DataEntry/PurchaseOrderPrint/FrmPurchaseOrderPrint.cs
373 373
        /// <summary>
374 374
        /// EXCEL行デフォルトサイズ
375 375
        /// </summary>
376
        private double s_DefaultRowSize = 13.5;
376
        //private double s_DefaultRowSize = 13.5;
377 377
        #endregion
378 378

  
379 379
        #region EXCEL列デフォルトサイズ
380 380
        /// <summary>
381 381
        /// EXCEL列デフォルトサイズ
382 382
        /// </summary>
383
        private double s_DefaultColumnSize = 8.38;
383
        //private double s_DefaultColumnSize = 8.38;
384 384
        #endregion
385 385

  
386 386
        #endregion
... 差分の行数が表示可能な上限を超えました。超過分は表示しません。

他の形式にエクスポート: Unified diff