リビジョン 292
人件費日数指定金額セット修正
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