プロジェクト

全般

プロフィール

リビジョン 292

堀内約7年前に追加

人件費日数指定金額セット修正

差分を表示:

branches/src/DataCheckExcute/DataCheckExcute/Common/Process/ClsChangeLedgerData.cs
161 161
        }
162 162
        #endregion
163 163

  
164
        #region 工事詳細台帳より支払金額グリッドの先頭カラム数を取得する
165
        /// <summary>
166
        /// 工事詳細台帳より支払金額グリッドの先頭カラム数を取得する
167
        /// </summary>
168
        private static void GetLedgerColumnCount()
169
        {
170
            try
171
            {
172
                m_LedgerColumnCount = Enum.GetNames(typeof(FrmConstructionLedger.GridColumn)).Length - 1;
173
            }
174
            catch (System.Exception ex)
175
            {
176
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
177
            }
178
        }
179
        #endregion
180

  
181 164
        #region 工事詳細台帳データに対象行の支払い給与を計算する
182 165
        /// <summary>
183 166
        /// 工事詳細台帳データに対象行の支払い給与を計算する
......
398 381
                                                        ConstructionLedger LedgerRec,
399 382
                                                        ConstructionLedgerDetail CurRec)
400 383
        {
384
            IOProcessApproval AppDB = new IOProcessApproval();
401 385
            try
402 386
            {
403 387
                int OneDaySalary = 0;
......
422 406
                        break;
423 407
                }
424 408

  
409
                // 工事予算が承認された月の位置に書く
410
                StringBuilder strSQL = new StringBuilder();
411
                strSQL.Append(AppDB.CreatePrimarykeyString(CurRec.SourceCode,
412
                                                            3,                                      // 工事予算承認番号(ClExecuteが無いため)
413
                                                            (int)CommonDefine.s_Default_OrderNo,
414
                                                            1));                                    // 先頭レコード
415
                ProcessApproval AppRec = new ProcessApproval();
416
                if (!AppDB.SelectAction(strSQL.ToString(), ref AppRec)) return false;
417

  
425 418
                // 実行データのキー部年月日は開始月の1日
426
                DateTime ParaDate = new DateTime(LedgerRec.ConstructionStart.Year, LedgerRec.ConstructionStart.Month, 1);
419
                DateTime ParaDate = new DateTime(LedgerRec.ConstructionStart.Year
420
                                                , LedgerRec.ConstructionStart.Month, 1);
427 421
                // 台帳カラム位置
428 422
                int Columncnt = Enum.GetNames(typeof(FrmConstructionLedger.GridColumn)).Length - 1;
429 423

  
424
                // 増減データは承認データを日付として使用する
425
                if ((CurRec.SourceCode % 10) > 1)
426
                {
427
                    // 承認日付より持ってくる
428
                    Columncnt = CalcTargetMonthToColumn(LedgerRec.ConstructionStart, AppRec.PetitionApprovalDate);
429
                    ParaDate = new DateTime(AppRec.PetitionApprovalDate.Year
430
                                            , AppRec.PetitionApprovalDate.Month, 1);
431
                }
432

  
430 433
                // 支払いデータ書込み
431 434
                if (!AddOrSetSalary(LedgerExDB
432 435
                                , CurRec.ConstructionCode, CurRec.GroupCount, CurRec.LineCount, Columncnt, OneDaySalary, ParaDate))
......
441 444
                logger.ErrorFormat("システムエラー:{0}:{1}", CommonMotions.GetMethodName(), ex.Message);
442 445
                return false;
443 446
            }
447
            finally
448
            {
449
                AppDB.close(); AppDB = null;
450
            }
444 451
        }
445 452
        #endregion
446 453

  
......
492 499
                // キー作成
493 500
                StringBuilder strSQL = new StringBuilder();
494 501
                strSQL.Append(LedgerExDB.CreatePrimarykeyString(ConstrCode, GroupCount, LineCount, ColumnCount));
495
                strSQL.AppendFormat(" AND DATE(TargetMonth) = STR_TO_DATE('{0}','%Y/%m/%d')", ColumnDate.ToShortDateString());
502
                strSQL.AppendFormat(" AND DATE(TargetMonth) = '{0}'", ColumnDate.ToShortDateString());
496 503

  
497 504
                // データ読込み
498
                ConstructionLedgerExcute LedgerExDBRec = new ConstructionLedgerExcute();
499
                if (!LedgerExDB.SelectAction(strSQL.ToString(), ref LedgerExDBRec, false))
505
                List<ConstructionLedgerExcute> LedgerExList = new List<ConstructionLedgerExcute>();
506
                if (LedgerExDB.SelectAction(strSQL.ToString(), ref LedgerExList, false) && LedgerExList.Count > 0)
500 507
                {
501
                    LedgerExDBRec.ConstructionCode = ConstrCode;	// 工事コード
502
                    LedgerExDBRec.GroupCount = GroupCount;          // グループ番号
503
                    LedgerExDBRec.LineCount = LineCount;            // 行番号
504
                    LedgerExDBRec.ColumnCount = ColumnCount;        // 列番号
505
                    LedgerExDBRec.PaymentAmount = DaySalary;        // 支払金額
506
                    LedgerExDBRec.TargetMonth = ColumnDate;         // 対象年月
507
                    
508
                    // データ作成
509
                    if (!LedgerExDB.InsertAction(LedgerExDBRec, false)) return false;
510
                    
508
                    // データ更新
509
                    if (!LedgerExDB.UpdateFeild(ConstrCode, GroupCount, LineCount, ColumnCount
510
                                                , (int)IOConstructionLedgerExcute.TableColumn.PaymentAmount
511
                                                , (double)DaySalary
512
                                                , false))
513
                                                return false;
514

  
511 515
                    return true;
512 516
                }
513 517

  
514
                // データ更新
515
                if (!LedgerExDB.UpdateFeild(ConstrCode, GroupCount, LineCount, ColumnCount
516
                                            , (int)IOConstructionLedgerExcute.TableColumn.PaymentAmount, (double)DaySalary, false)) return false;
518
                ConstructionLedgerExcute LedgerExDBRec = new ConstructionLedgerExcute();
519
                LedgerExDBRec.ConstructionCode = ConstrCode;	// 工事コード
520
                LedgerExDBRec.GroupCount = GroupCount;          // グループ番号
521
                LedgerExDBRec.LineCount = LineCount;            // 行番号
522
                LedgerExDBRec.ColumnCount = ColumnCount;        // 列番号
523
                LedgerExDBRec.PaymentAmount = DaySalary;        // 支払金額
524
                LedgerExDBRec.TargetMonth = ColumnDate;         // 対象年月
517 525

  
526
                // データ作成
527
                if (!LedgerExDB.InsertAction(LedgerExDBRec, false)) return false;
528

  
518 529
                return true;
519 530
            }
520 531
            catch (Exception ex)
......
533 544
        /// <returns></returns>
534 545
        public static int CalcTargetMonthToColumn(DateTime StartDate, DateTime TargetMonth)
535 546
        {
536
            int Columncnt = Enum.GetNames(typeof(FrmConstructionLedger.GridColumn)).Length - 1;
547
            int Columncnt = Enum.GetNames(typeof(FrmConstructionLedger.GridColumn)).Length;
537 548
            try
538 549
            {
539 550
                // 処理対象年月日を対象月月初日に変換する

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