@using TaxBaik.Domain.Entities @inject ITaxFilingBrowserClient FilingClient @inject IJSRuntime JS @if (Filings == null || Filings.Count == 0) {
항목이 없습니다.
} else {
@foreach (var filing in Filings) { var dday = (filing.DueDate.Date - DateTime.Today).Days; }
고객 신고 유형 기한 D-day 메모 처리
@filing.ClientName @filing.FilingType @filing.DueDate.ToString("yyyy-MM-dd") @if (dday < 0) { D+@(-dday) } else if (dday <= 7) { D-@dday } else { D-@dday } @(filing.Memo ?? "")
@if (filing.Status == "pending") { } else { 완료 }
} @code { [Parameter] public List? Filings { get; set; } [Parameter] public EventCallback OnStatusChange { get; set; } private async Task MarkFiled(TaxFiling filing) { filing.Status = "filed"; var result = await FilingClient.UpdateAsync(filing.Id, filing); if (result != null) { await JS.InvokeVoidAsync("alert", "신고 완료 처리되었습니다."); await OnStatusChange.InvokeAsync(); } else { await JS.InvokeVoidAsync("alert", "처리 실패"); } } private async Task DeleteFiling(int id) { var confirmed = await JS.InvokeAsync("confirm", "이 항목을 삭제하시겠습니까?"); if (!confirmed) return; var success = await FilingClient.DeleteAsync(id); if (success) { await JS.InvokeVoidAsync("alert", "삭제되었습니다."); await OnStatusChange.InvokeAsync(); } else { await JS.InvokeVoidAsync("alert", "삭제 실패"); } } }