裕隆城折扣合作@中興低碳 折扣報表
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

133 satır
5.2KB

  1. @using CouponReport.Models.CouponMiddleware
  2. @model CouponReportViewModel
  3. @{
  4. ViewData["Title"] = "折扣報表";
  5. }
  6. <h2>折扣報表</h2>
  7. <div class="card mb-4">
  8. <div class="card-body">
  9. <form method="post" asp-action="Index">
  10. <div class="row">
  11. <div class="col-md-4">
  12. <div class="form-group">
  13. <label for="startDate">開始日期</label>
  14. <input type="date" class="form-control" id="startDate" name="startDate"
  15. value="@Model.StartDate?.ToString("yyyy-MM-dd")" />
  16. </div>
  17. </div>
  18. <div class="col-md-4">
  19. <div class="form-group">
  20. <label for="endDate">結束日期</label>
  21. <input type="date" class="form-control" id="endDate" name="endDate"
  22. value="@Model.EndDate?.ToString("yyyy-MM-dd")" />
  23. </div>
  24. </div>
  25. <div class="col-md-4">
  26. <label>&nbsp;</label>
  27. <div>
  28. <button type="submit" class="btn btn-primary">查詢</button>
  29. </div>
  30. </div>
  31. </div>
  32. </form>
  33. </div>
  34. </div>
  35. @if (Model.ReportItems != null && Model.ReportItems.Any())
  36. {
  37. <div class="mb-3">
  38. <a href="@Url.Action("ExportToExcel", new { startDate = Model.StartDate, endDate = Model.EndDate })"
  39. class="btn btn-success">
  40. <i class="bi bi-file-excel"></i> 匯出 Excel
  41. </a>
  42. <a href="@Url.Action("ExportToPdf", new { startDate = Model.StartDate, endDate = Model.EndDate })"
  43. class="btn btn-danger">
  44. <i class="bi bi-file-pdf"></i> 匯出 PDF
  45. </a>
  46. </div>
  47. <style>
  48. .group-row-even {
  49. background-color: #f8f9fa;
  50. }
  51. .group-row-odd {
  52. background-color: #ffffff;
  53. }
  54. </style>
  55. <div class="table-responsive">
  56. <table class="table table-bordered">
  57. <thead>
  58. <tr>
  59. <th></th>
  60. <th>店別(統編)</th>
  61. <th>車號</th>
  62. <th>發票日期</th>
  63. <th>發票號碼</th>
  64. <th>發票金額</th>
  65. <th>折扣單位</th>
  66. <th>折扣金額</th>
  67. <th>折扣時間</th>
  68. <th>入場時間</th>
  69. <th>出場時間</th>
  70. <th>停車金額</th>
  71. <th>請款金額</th>
  72. </tr>
  73. </thead>
  74. <tbody>
  75. @{
  76. int currentRowNumber = -1;
  77. int rowSpanCount = 0;
  78. int groupIndex = 0;
  79. }
  80. @foreach (var item in Model.ReportItems)
  81. {
  82. bool isNewGroup = item.RowNumber != currentRowNumber;
  83. if (isNewGroup)
  84. {
  85. // 計算這個編號有多少筆資料
  86. rowSpanCount = Model.ReportItems.Count(x => x.RowNumber == item.RowNumber);
  87. currentRowNumber = item.RowNumber;
  88. groupIndex++;
  89. }
  90. var rowClass = (groupIndex % 2 == 0) ? "group-row-even" : "group-row-odd";
  91. <tr class="@rowClass">
  92. @if (isNewGroup)
  93. {
  94. <td rowspan="@rowSpanCount" class="align-middle">@item.RowNumber</td>
  95. }
  96. <td>@item.TenantCode</td>
  97. @if (isNewGroup)
  98. {
  99. <td rowspan="@rowSpanCount" class="align-middle">@item.CarNumber</td>
  100. }
  101. <td>@item.InvoiceDate?.ToString("yyyy-MM-dd HH:mm:ss")</td>
  102. <td>@item.InvoiceNumber</td>
  103. <td class="text-end">@item.InvoiceAmount?.ToString("N0")</td>
  104. @if (isNewGroup)
  105. {
  106. <td rowspan="@rowSpanCount" class="align-middle">@item.DiscountUnit</td>
  107. <td rowspan="@rowSpanCount" class="align-middle text-end">@item.DiscountAmount?.ToString("N0")</td>
  108. <td rowspan="@rowSpanCount" class="align-middle">@item.DiscountTime?.ToString("yyyy-MM-dd HH:mm:ss")</td>
  109. <td rowspan="@rowSpanCount" class="align-middle">@item.EnterTime?.ToString("yyyy-MM-dd HH:mm:ss")</td>
  110. <td rowspan="@rowSpanCount" class="align-middle">@item.ExitTime?.ToString("yyyy-MM-dd HH:mm:ss")</td>
  111. <td rowspan="@rowSpanCount" class="align-middle text-end">@item.ParkingAmount?.ToString("N0")</td>
  112. <td rowspan="@rowSpanCount" class="align-middle text-end">@item.ClaimAmount?.ToString("N0")</td>
  113. }
  114. </tr>
  115. }
  116. </tbody>
  117. </table>
  118. </div>
  119. <div class="mt-3">
  120. <p>總筆數: <strong>@Model.ReportItems.Count</strong></p>
  121. </div>
  122. }