@using TaxBaik.Web.Services @using TaxBaik.Domain.Entities @inject ITaxFilingBrowserClient FilingClient @inject ISnackbar Snackbar @if (Filings == null || Filings.Count == 0) { 항목이 없습니다. } else { 고객 신고 유형 기한 D-day 메모 처리 @context.ClientName @context.FilingType @context.DueDate.ToString("yyyy-MM-dd") @{ var dday = (context.DueDate.Date - DateTime.Today).Days; } @if (dday < 0) { D+@(-dday) } else if (dday <= 7) { D-@dday } else { D-@dday } @(context.Memo ?? "") @if (context.Status == "pending") { 완료 } else if (context.Status == "filed") { 완료 } } @code { [Parameter] public List? Filings { get; set; } [Parameter] public EventCallback OnStatusChange { get; set; } private async Task MarkFiled(TaxFiling filing) { try { filing.Status = "filed"; var result = await FilingClient.UpdateAsync(filing.Id, filing); if (result != null) { Snackbar.Add("신고 완료 처리되었습니다.", Severity.Success); await OnStatusChange.InvokeAsync(); } else { Snackbar.Add("처리 실패", Severity.Error); } } catch (Exception ex) { Snackbar.Add($"오류: {ex.Message}", Severity.Error); } } private async Task DeleteFiling(int id) { try { var success = await FilingClient.DeleteAsync(id); if (success) { Snackbar.Add("삭제되었습니다.", Severity.Info); await OnStatusChange.InvokeAsync(); } else { Snackbar.Add("삭제 실패", Severity.Error); } } catch (Exception ex) { Snackbar.Add($"오류: {ex.Message}", Severity.Error); } } }