fix: CRM 페이지 다이얼로그의 콤보박스 기본 고객 바인딩 수정 및 폼 유효성 검사(Validation) 보강
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m23s

This commit is contained in:
2026-06-29 16:00:42 +09:00
parent a3c81c4f70
commit a4b1234900
5 changed files with 85 additions and 5 deletions
@@ -161,7 +161,11 @@
private void OpenCreateDialog() private void OpenCreateDialog()
{ {
editingActivity = null; editingActivity = null;
activityForm = new ConsultingActivityForm { ActivityDate = DateTime.Now }; activityForm = new ConsultingActivityForm
{
ActivityDate = DateTime.Now,
ClientId = clients.FirstOrDefault()?.Id ?? 0
};
isDialogOpen = true; isDialogOpen = true;
} }
@@ -181,6 +185,16 @@
private async Task SaveActivity() private async Task SaveActivity()
{ {
if (form != null)
{
await form.Validate();
if (!form.IsValid)
{
Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning);
return;
}
}
try try
{ {
if (editingActivity == null) if (editingActivity == null)
@@ -171,12 +171,26 @@
private void OpenCreateDialog() private void OpenCreateDialog()
{ {
contractForm = new(); contractForm = new ContractForm
{
ClientId = clients.FirstOrDefault()?.Id ?? 0,
StartDate = DateTime.Today
};
isDialogOpen = true; isDialogOpen = true;
} }
private async Task SaveContract() private async Task SaveContract()
{ {
if (form != null)
{
await form.Validate();
if (!form.IsValid)
{
Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning);
return;
}
}
try try
{ {
var newId = await ContractClient.CreateAsync( var newId = await ContractClient.CreateAsync(
@@ -156,12 +156,27 @@
private void OpenCreateDialog() private void OpenCreateDialog()
{ {
revenueForm = new(); revenueForm = new RevenueForm
{
ClientId = clients.FirstOrDefault()?.Id ?? 0,
InvoiceDate = DateTime.Today,
DueDate = DateTime.Today.AddDays(14)
};
isDialogOpen = true; isDialogOpen = true;
} }
private async Task SaveRevenue() private async Task SaveRevenue()
{ {
if (form != null)
{
await form.Validate();
if (!form.IsValid)
{
Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning);
return;
}
}
try try
{ {
var newId = await RevenueClient.CreateAsync( var newId = await RevenueClient.CreateAsync(
@@ -184,12 +184,27 @@
private void OpenCreateDialog() 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; isDialogOpen = true;
} }
private async Task SaveSchedule() private async Task SaveSchedule()
{ {
if (form != null)
{
await form.Validate();
if (!form.IsValid)
{
Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning);
return;
}
}
try try
{ {
var newId = await TaxFilingClient.CreateAsync( var newId = await TaxFilingClient.CreateAsync(
@@ -154,7 +154,12 @@ else
{ {
isEditMode = false; isEditMode = false;
editingProfile = null; editingProfile = null;
profileForm = new(); profileForm = new TaxProfileForm
{
ClientId = clients.FirstOrDefault()?.Id ?? 0,
TaxRiskLevel = "normal",
NextFilingDueDate = DateTime.Today.AddMonths(1)
};
isDialogOpen = true; isDialogOpen = true;
} }
@@ -175,6 +180,16 @@ else
private async Task SaveProfile() private async Task SaveProfile()
{ {
if (form != null)
{
await form.Validate();
if (!form.IsValid)
{
Snackbar.Add("필수 항목을 입력해주세요.", Severity.Warning);
return;
}
}
try try
{ {
if (isEditMode) if (isEditMode)
@@ -194,6 +209,13 @@ else
profileForm.BusinessType); profileForm.BusinessType);
if (newId > 0) if (newId > 0)
{ {
// 생성 후 상태 업데이트 처리
await TaxProfileClient.UpdateAsync(
newId,
profileForm.BusinessType,
null,
profileForm.NextFilingDueDate,
profileForm.TaxRiskLevel);
Snackbar.Add("세무 프로필이 추가되었습니다.", Severity.Success); Snackbar.Add("세무 프로필이 추가되었습니다.", Severity.Success);
} }
} }