| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- @page "{id:int}"
- @model Admin.Pages.Member.Wallet.List.ViewModel
- @using Domain.Entities.Wallets.ValueObject
- @{
- ViewData["Title"] = "(C) 충전 하기";
- }
- <div class="container">
- <h3>@ViewData["Title"]</h3>
- <hr />
- <partial name="_StatusMessage" />
- <div class="alert alert-warning" role="alert">
- 관리자 비밀번호 확인 후 충전 또는 차감 처리됩니다.
- </div>
- <form name="f_admin_write" id="fAdminWrite" method="post" asp-page-handler="Charge" accept-charset="utf-8" autocomplete="off">
- <div class="row mb-2">
- <label class="col-sm-2 col-form-label">회원 ID</label>
- <div class="col-sm-10">
- <input type="text" class="form-control-plaintext" value="@Model.Member.ID" readonly disabled />
- </div>
- </div>
- <div class="row mb-2">
- <label class="col-sm-2 col-form-label">회원 이메일</label>
- <div class="col-sm-10">
- <input type="text" class="form-control-plaintext" value="@Model.Member.Email" readonly disabled />
- </div>
- </div>
- <div class="row mb-2">
- <label class="col-sm-2 mb-2">회원 등급</label>
- <div class="col-sm-10">
- @(Model.Member.GradeName ?? "-")
- </div>
- </div>
- <div class="row mb-3">
- <label class="col-sm-2">보유 잔액(P)</label>
- <div class="col-sm-10">
- @Model.Wallet.Balance
- </div>
- </div>
- <div class="row mb-1">
- <label class="col-sm-2 col-form-label">잔액 유형</label>
- <div class="col-sm-10">
- <div class="form-check">
- <input class="form-check-input" type="radio" name="BalanceType" id="bt_auto" value="" checked="@(Model.BalanceType is null)" />
- <label class="form-check-label" for="bt_auto">
- 자동 (기본) — 충전: <strong>조정</strong> 잔액으로 입금 / 차감: 전체 잔액에서 정책 순서대로 분할 차감
- </label>
- </div>
- <div class="mt-2">
- @foreach (var row in Model.Wallet.Balances.Where(c => c.Type != WalletBalanceType.Locked))
- {
- var isWithdrawable = row.Type is WalletBalanceType.Donation or WalletBalanceType.StoreRevenue;
- <div class="form-check form-check-inline">
- <input class="form-check-input" type="radio" name="BalanceType" id="bt_@((int)row.Type)" value="@((int)row.Type)" checked="@(Model.BalanceType == row.Type)" />
- <label class="form-check-label" for="bt_@((int)row.Type)">
- @row.TypeName
- @if (isWithdrawable)
- {
- <span class="text-danger" title="출금 가능 금액입니다">⚠</span>
- }
- <small class="text-muted">(@row.Amount P)</small>
- </label>
- </div>
- }
- </div>
- <div class="form-text mt-3">
- <ul>
- <li>특정 유형 선택 시 해당 잔액으로만 충전/차감되며, 차감은 그 잔액이 부족하면 실패합니다.</li>
- <li><span class="text-danger">⚠</span> 표시는 출금 가능 금액이므로 신중히 조정하세요. 거래 장부에는 모두 <strong>조정</strong> 거래로 기록됩니다.</li>
- </ul>
- </div>
- </div>
- </div>
- <div class="row mb-2">
- <label asp-for="Amount" class="col-sm-2 col-form-label"><span>*</span> 충전 금액</label>
- <div class="col-sm-10">
- <div class="input-group">
- <input type="number" asp-for="Amount" class="form-control w-auto d-flex flex-grow-0" required min="-99999999" max="99999999" step="any" autofocus />
- <span class="input-group-text">P</span>
- </div>
- <span asp-validation-for="Amount" class="text-danger"></span>
- </div>
- </div>
- <div class="row mb-2">
- <label asp-for="Password" class="col-sm-2 col-form-label"><span>*</span> 비밀번호</label>
- <div class="col-sm-10">
- <input type="password" asp-for="Password" class="form-control" required maxlength="100"/>
- <span asp-validation-for="Password" class="text-danger"></span>
- </div>
- </div>
- <div class="row mb-2">
- <label asp-for="Memo" class="col-sm-2 col-form-label">메모</label>
- <div class="col-sm-10">
- <textarea asp-for="Memo" class="form-control" rows="5" maxlength="1000"></textarea>
- <span asp-validation-for="Memo" class="text-danger"></span>
- </div>
- </div>
- <hr />
- <div class="d-grid gap-2 text-center d-md-block">
- <button type="submit" class="btn btn-success">저장</button>
- <a href="/Member/Wallet/List" class="btn btn-secondary">취소</a>
- </div>
- <br />
- </form>
- </div>
- @section Scripts {
- <script>
- $("#fAdminWrite").validate({
- rules: {
- "Amount": {
- required: true
- },
- "Password": {
- required: true
- }
- },
- messages: {
- "Amount": {
- required: "충전 금액을 입력해주세요."
- },
- "Password": {
- required: "비밀번호를 입력해주세요."
- }
- },
- submitHandler: function(form) {
- form.submit();
- }
- });
- </script>
- }
|