| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- @page
- @model Admin.Pages.Paper.Orders.IndexModel
- @using Domain.Entities.Paper.ValueObject
- @{
- ViewData["Title"] = "모의투자 주문 모니터";
- }
- <div class="container-fluid">
- <h3>@ViewData["Title"]</h3>
- <hr />
- <partial name="_StatusMessage" />
- <div class="row g-2 mb-2 align-items-center">
- <div class="col-auto search-form__label">
- <label class="col-form-label">주문 상태</label>
- </div>
- <div class="col-auto">
- <select id="status" class="form-select w-auto d-inline-block">
- <option value="">전체</option>
- <option value="@((int)PaperOrderStatus.Pending)" selected="@(Model.Query.Status == PaperOrderStatus.Pending)">접수</option>
- <option value="@((int)PaperOrderStatus.Filled)" selected="@(Model.Query.Status == PaperOrderStatus.Filled)">체결</option>
- <option value="@((int)PaperOrderStatus.Cancelled)" selected="@(Model.Query.Status == PaperOrderStatus.Cancelled)">취소</option>
- <option value="@((int)PaperOrderStatus.Rejected)" selected="@(Model.Query.Status == PaperOrderStatus.Rejected)">거부</option>
- </select>
- </div>
- <div class="col-auto">
- <button type="submit" id="btnSearch" class="btn btn-primary">검색</button>
- </div>
- </div>
- <hr />
- <div class="row g-2 mb-2">
- <div class="col">
- Total : @Model.Total.ToString("N0")
- </div>
- <div class="col-auto">
- <select name="perPage" id="perPage" class="form-select w-auto d-inline-block">
- <option value="10" selected="@(Model.Query.PerPage == 10)">10</option>
- <option value="20" selected="@(Model.Query.PerPage == 20)">20</option>
- <option value="50" selected="@(Model.Query.PerPage == 50)">50</option>
- <option value="100" selected="@(Model.Query.PerPage == 100)">100</option>
- </select>
- </div>
- </div>
- <div class="table-responsive">
- <table class="table table-bordered table-hover">
- <thead>
- <tr>
- <th style="width:5%">#</th>
- <th>회원</th>
- <th>종목코드</th>
- <th>구분</th>
- <th>체결가</th>
- <th class="text-end">수량</th>
- <th class="text-end">예약금</th>
- <th>체결기준일</th>
- <th>상태</th>
- <th>거부사유</th>
- <th style="width:14%">주문일</th>
- </tr>
- </thead>
- <tbody>
- @if (Model.List == null || Model.List.Count <= 0)
- {
- <tr><td colspan="11">No Data.</td></tr>
- }
- else
- {
- @foreach (var row in Model.List)
- {
- <tr>
- <td>@row.Num</td>
- <td>
- <code>@row.SID</code>
- <div class="text-muted small">@(row.Nickname ?? "-")</div>
- </td>
- <td><code>@row.StockCode</code></td>
- <td>@Admin.Pages.Paper.Orders.IndexModel.SideToText(row.Side)</td>
- <td>@Admin.Pages.Paper.Orders.IndexModel.FillRuleToText(row.FillRule)</td>
- <td class="text-end">@row.Quantity.ToString("N0")</td>
- <td class="text-end">@row.ReservedAmount.ToString("N0")</td>
- <td>@row.TargetDate</td>
- <td>@row.StatusText</td>
- <td>@(row.RejectReason ?? "-")</td>
- <td>@row.CreatedAt</td>
- </tr>
- }
- }
- </tbody>
- </table>
- <partial name="_Pagination" model="@Model.Pagination" />
- </div>
- </div>
- @section Scripts {
- <script>
- function updateQueryString() {
- let queryParams = new URLSearchParams();
- const status = document.getElementById("status").value;
- if (status !== "") {
- queryParams.set("Query.Status", status);
- }
- queryParams.set("Query.PerPage", document.getElementById("perPage").value);
- window.location.href = window.location.pathname + "?" + queryParams.toString();
- }
- $(document).on("change", "#perPage, #status", updateQueryString);
- $(document).on("click", "#btnSearch", function(e) {
- e.preventDefault();
- updateQueryString();
- });
- </script>
- }
|