feat:납입일 입력 시 수당지급일 자동 계산 (익월 10일)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-07 08:23:35 +09:00
parent a337b7afb4
commit 71065ca91a
2 changed files with 60 additions and 8 deletions

View File

@@ -292,16 +292,37 @@ public function updateCommissionDate(int $id, Request $request)
$field = $request->input('field');
$date = $request->input('date') ?: now()->format('Y-m-d');
$commission->update([
$field => $date,
]);
$updateData = [$field => $date];
return response()->json([
// 납입일 입력 시 수당지급일 자동 계산 (익월 10일)
$autoFields = [
'first_payment_at' => 'first_partner_paid_at',
'second_payment_at' => 'second_partner_paid_at',
];
$autoField = null;
$autoDate = null;
if (isset($autoFields[$field])) {
$autoField = $autoFields[$field];
$autoDate = \Carbon\Carbon::parse($date)->addMonth()->day(10)->format('Y-m-d');
$updateData[$autoField] = $autoDate;
}
$commission->update($updateData);
$response = [
'success' => true,
'field' => $field,
'date' => $commission->$field?->format('Y-m-d'),
'date_display' => $commission->$field?->format('m/d'),
]);
];
if ($autoField) {
$response['auto_field'] = $autoField;
$response['auto_date'] = $autoDate;
}
return response()->json($response);
}
/**
@@ -352,11 +373,26 @@ public function clearCommissionDate(int $id, Request $request)
}
$field = $request->input('field');
$commission->update([$field => null]);
$updateData = [$field => null];
// 납입일 삭제 시 수당지급일도 함께 초기화
$autoFields = [
'first_payment_at' => 'first_partner_paid_at',
'second_payment_at' => 'second_partner_paid_at',
];
$autoField = null;
if (isset($autoFields[$field])) {
$autoField = $autoFields[$field];
$updateData[$autoField] = null;
}
$commission->update($updateData);
return response()->json([
'success' => true,
'field' => $field,
'auto_field' => $autoField,
]);
}
}

View File

@@ -266,8 +266,16 @@ function saveCommissionDate(prospectId, field, date) {
.then(response => response.json())
.then(result => {
if (result.success && input) {
// 입력 스타일 업데이트
updateInputStyle(input, field, true);
// 납입일 저장 시 수당지급일 자동 반영
if (result.auto_field && result.auto_date) {
const autoInput = document.querySelector(`input[data-prospect-id="${prospectId}"][data-field="${result.auto_field}"]`);
if (autoInput) {
autoInput.value = result.auto_date;
updateInputStyle(autoInput, result.auto_field, true);
}
}
} else {
alert(result.message || '날짜 저장에 실패했습니다.');
}
@@ -292,8 +300,16 @@ function clearCommissionDate(prospectId, field, input) {
.then(response => response.json())
.then(result => {
if (result.success && input) {
// 입력 스타일 업데이트
updateInputStyle(input, field, false);
// 납입일 삭제 시 수당지급일도 함께 초기화
if (result.auto_field) {
const autoInput = document.querySelector(`input[data-prospect-id="${prospectId}"][data-field="${result.auto_field}"]`);
if (autoInput) {
autoInput.value = '';
updateInputStyle(autoInput, result.auto_field, false);
}
}
} else if (!result.success) {
alert(result.message || '날짜 삭제에 실패했습니다.');
}