diff --git a/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor b/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor index 09be9c4..3df5d10 100644 --- a/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor +++ b/TaxBaik.Web/Components/Admin/Pages/ConsultingActivities.razor @@ -161,7 +161,11 @@ private void OpenCreateDialog() { editingActivity = null; - activityForm = new ConsultingActivityForm { ActivityDate = DateTime.Now }; + activityForm = new ConsultingActivityForm + { + ActivityDate = DateTime.Now, + ClientId = clients.FirstOrDefault()?.Id ?? 0 + }; isDialogOpen = true; } @@ -181,6 +185,16 @@ private async Task SaveActivity() { + if (form != null) + { + await form.Validate(); + if (!form.IsValid) + { + Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning); + return; + } + } + try { if (editingActivity == null) diff --git a/TaxBaik.Web/Components/Admin/Pages/Contracts.razor b/TaxBaik.Web/Components/Admin/Pages/Contracts.razor index 6187d4a..2587a32 100644 --- a/TaxBaik.Web/Components/Admin/Pages/Contracts.razor +++ b/TaxBaik.Web/Components/Admin/Pages/Contracts.razor @@ -171,12 +171,26 @@ private void OpenCreateDialog() { - contractForm = new(); + contractForm = new ContractForm + { + ClientId = clients.FirstOrDefault()?.Id ?? 0, + StartDate = DateTime.Today + }; isDialogOpen = true; } private async Task SaveContract() { + if (form != null) + { + await form.Validate(); + if (!form.IsValid) + { + Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning); + return; + } + } + try { var newId = await ContractClient.CreateAsync( diff --git a/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor b/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor index abb772a..6642373 100644 --- a/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor +++ b/TaxBaik.Web/Components/Admin/Pages/RevenueTrackings.razor @@ -156,12 +156,27 @@ private void OpenCreateDialog() { - revenueForm = new(); + revenueForm = new RevenueForm + { + ClientId = clients.FirstOrDefault()?.Id ?? 0, + InvoiceDate = DateTime.Today, + DueDate = DateTime.Today.AddDays(14) + }; isDialogOpen = true; } private async Task SaveRevenue() { + if (form != null) + { + await form.Validate(); + if (!form.IsValid) + { + Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning); + return; + } + } + try { var newId = await RevenueClient.CreateAsync( diff --git a/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor b/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor index d1a3d93..d3037f0 100644 --- a/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor +++ b/TaxBaik.Web/Components/Admin/Pages/TaxFilingSchedules.razor @@ -184,12 +184,27 @@ private void OpenCreateDialog() { - scheduleForm = new TaxFilingScheduleForm { FilingYear = DateTime.Now.Year }; + scheduleForm = new TaxFilingScheduleForm + { + FilingYear = DateTime.Now.Year, + DueDate = DateTime.Today, + ClientId = clients.FirstOrDefault()?.Id ?? 0 + }; isDialogOpen = true; } private async Task SaveSchedule() { + if (form != null) + { + await form.Validate(); + if (!form.IsValid) + { + Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning); + return; + } + } + try { var newId = await TaxFilingClient.CreateAsync( diff --git a/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor b/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor index ee850a9..407d357 100644 --- a/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor +++ b/TaxBaik.Web/Components/Admin/Pages/TaxProfiles.razor @@ -154,7 +154,12 @@ else { isEditMode = false; editingProfile = null; - profileForm = new(); + profileForm = new TaxProfileForm + { + ClientId = clients.FirstOrDefault()?.Id ?? 0, + TaxRiskLevel = "normal", + NextFilingDueDate = DateTime.Today.AddMonths(1) + }; isDialogOpen = true; } @@ -175,6 +180,16 @@ else private async Task SaveProfile() { + if (form != null) + { + await form.Validate(); + if (!form.IsValid) + { + Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning); + return; + } + } + try { if (isEditMode) @@ -194,6 +209,13 @@ else profileForm.BusinessType); if (newId > 0) { + // 생성 후 상태 업데이트 처리 + await TaxProfileClient.UpdateAsync( + newId, + profileForm.BusinessType, + null, + profileForm.NextFilingDueDate, + profileForm.TaxRiskLevel); Snackbar.Add("세무 프로필이 추가되었습니다.", Severity.Success); } }