@page @using Domain.Entities.Developers.ValueObject @model Admin.Pages.Developers.Purchases.IndexModel @{ ViewData["Title"] = "결제 보고 내역"; static string MarketLabel(ApiPurchaseMarketplace m) => m switch { ApiPurchaseMarketplace.GooglePlay => "구글", ApiPurchaseMarketplace.AppStore => "애플", ApiPurchaseMarketplace.Microsoft => "MS", ApiPurchaseMarketplace.GalaxyStore => "갤럭시", ApiPurchaseMarketplace.OneStore => "원스토어", _ => "기타" }; }
| ID | 등록일 | 앱 | 게임 | 채널 (후원코드) | 마켓 | orderID | SKU | 보고액 | 수수료 (율) | 상태 | 확정 예정/일시 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| No Data. | |||||||||||
| @row.ID | @row.CreatedAt.ToString("yyyy-MM-dd HH:mm") | @row.AppName | @row.GameName | @row.ChannelName (@(row.ChannelCode ?? "-")) | @MarketLabel(row.Marketplace) | @row.OrderID |
@(row.ProductID ?? "-") @if (row.PriceMismatched) { 불일치 } | @row.OrderPrice.ToString("N0")원 | @row.CommissionAmount.ToString("N0")원 (@row.CommissionRate%) | @switch (row.Status) { case ApiPurchaseStatus.Pending: 보류 break; case ApiPurchaseStatus.Confirmed: 확정 break; case ApiPurchaseStatus.Canceled: 취소 if (row.CancelWasConfirmed == true) { 회수 @(row.RecoveredAmount?.ToString("N0") ?? "0")원 } if (row.ShortfallAmount > 0) { 미회수 @(row.ShortfallAmount?.ToString("N0"))원 } break; } | @if (row.Status == ApiPurchaseStatus.Pending) { @row.ConfirmDueAt.ToString("yyyy-MM-dd") 예정 } else if (row.ConfirmedAt != null) { @row.ConfirmedAt.Value.ToString("yyyy-MM-dd HH:mm") } else if (row.CanceledAt != null) { @row.CanceledAt.Value.ToString("yyyy-MM-dd HH:mm") 취소 } |