Index.cshtml 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. @page
  2. @model Admin.Pages.Stocks.MarketHoliday.IndexModel
  3. @{
  4. ViewData["Title"] = "휴장일 관리";
  5. }
  6. <div class="container-fluid">
  7. <h3>@ViewData["Title"]</h3>
  8. <hr />
  9. <partial name="_StatusMessage" />
  10. <div class="alert alert-warning" role="alert">
  11. 휴장일은 주식 데이터 수집 배치의 영업일 판정에 사용됩니다.
  12. <strong>거래일을 휴장일로 잘못 등록하면 그 날짜의 데이터가 수집되지 않습니다.</strong>
  13. 연 1회 KRX 휴장일 공시 기준으로 등록하세요. 주말(토·일)은 자동 제외되므로 등록하지 않습니다.
  14. </div>
  15. <div class="row g-2 align-items-end">
  16. <div class="col-auto">
  17. <form method="get">
  18. <div class="input-group">
  19. <label class="input-group-text" for="year">연도</label>
  20. <select id="year" name="year" class="form-select" onchange="this.form.submit()">
  21. <option value="">전체</option>
  22. @foreach (var year in Model.Years)
  23. {
  24. <option value="@year" selected="@(Model.Year == year)">@year 년</option>
  25. }
  26. </select>
  27. </div>
  28. </form>
  29. </div>
  30. <div class="col">
  31. Total : @Model.Total.ToString("N0")
  32. </div>
  33. <div class="col-auto">
  34. <form method="post" asp-page-handler="Add" asp-route-year="@Model.Year" class="row g-2">
  35. <div class="col-auto">
  36. <input type="date" name="Input.Date" class="form-control" required />
  37. </div>
  38. <div class="col-auto">
  39. <input type="text" name="Input.Name" class="form-control" placeholder="휴장일 명칭 (예: 설날)" maxlength="50" required />
  40. </div>
  41. <div class="col-auto">
  42. <button type="submit" class="btn btn-primary" onclick="return confirm('휴장일을 등록하시겠습니까?\n거래일을 잘못 등록하면 해당 날짜 데이터가 수집되지 않습니다.');">추가</button>
  43. </div>
  44. </form>
  45. </div>
  46. </div>
  47. <div class="table-responsive">
  48. <table class="table table-striped table-bordered table-hover mt-3">
  49. <colgroup>
  50. <col style="width: 20%;" />
  51. <col style="width: 15%;" />
  52. <col />
  53. <col style="width: 10%;" />
  54. </colgroup>
  55. <thead>
  56. <tr class="text-center">
  57. <th>날짜</th>
  58. <th>요일</th>
  59. <th>명칭</th>
  60. <th>비고</th>
  61. </tr>
  62. </thead>
  63. <tbody>
  64. @if (Model.Data.Count <= 0)
  65. {
  66. <tr>
  67. <td colspan="4">No Data.</td>
  68. </tr>
  69. }
  70. else
  71. {
  72. @foreach (var row in Model.Data)
  73. {
  74. <tr>
  75. <td class="text-center">@row.Date.ToString("yyyy-MM-dd")</td>
  76. <td class="text-center">@row.DayOfWeek</td>
  77. <td>@row.Name</td>
  78. <td class="text-center">
  79. <form method="post" asp-page-handler="Delete" asp-route-year="@Model.Year" class="d-inline">
  80. <input type="hidden" name="DeleteDate" value="@row.Date.ToString("yyyy-MM-dd")" />
  81. <button type="submit" class="btn btn-sm btn-outline-danger" onclick="return confirm('@row.Date.ToString("yyyy-MM-dd") (@row.Name) 휴장일을 삭제하시겠습니까?');">삭제</button>
  82. </form>
  83. </td>
  84. </tr>
  85. }
  86. }
  87. </tbody>
  88. </table>
  89. </div>
  90. </div>