feat:계약일 date input 입력 가능하게 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -323,6 +323,30 @@ public function updateHqStatus(int $id, Request $request)
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 계약일 변경
|
||||
*/
|
||||
public function updateContractedDate(int $id, Request $request)
|
||||
{
|
||||
$this->checkAdminAccess();
|
||||
|
||||
$request->validate([
|
||||
'contracted_at' => 'nullable|date',
|
||||
]);
|
||||
|
||||
$prospect = TenantProspect::findOrFail($id);
|
||||
$management = SalesTenantManagement::findOrCreateByProspect($prospect->id);
|
||||
|
||||
$management->update([
|
||||
'contracted_at' => $request->input('contracted_at') ?: null,
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'contracted_at' => $management->contracted_at?->format('Y-m-d'),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 인계일 수동 변경
|
||||
*/
|
||||
|
||||
@@ -350,6 +350,35 @@ function confirmDelete() {
|
||||
});
|
||||
}
|
||||
|
||||
// 계약일 저장
|
||||
function saveContractedDate(prospectId, date, inputEl) {
|
||||
fetch(`/sales/admin-prospects/${prospectId}/contracted-date`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content,
|
||||
'Accept': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({ contracted_at: date || null })
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(result => {
|
||||
if (result.success && inputEl) {
|
||||
if (date) {
|
||||
inputEl.className = 'w-28 h-7 text-xs px-1 border-2 border-blue-400 rounded cursor-pointer hover:border-blue-400 focus:outline-none focus:border-blue-500 text-blue-600 font-medium bg-blue-50';
|
||||
} else {
|
||||
inputEl.className = 'w-28 h-7 text-xs px-1 border-2 border-gray-300 rounded cursor-pointer hover:border-blue-400 focus:outline-none focus:border-blue-500 text-gray-500 bg-gray-50';
|
||||
}
|
||||
} else if (!result.success) {
|
||||
alert(result.message || '계약일 저장에 실패했습니다.');
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
alert('계약일 저장 중 오류가 발생했습니다.');
|
||||
});
|
||||
}
|
||||
|
||||
// 인계일 저장
|
||||
function saveHandoverDate(prospectId, date) {
|
||||
if (!date) return;
|
||||
|
||||
@@ -148,8 +148,11 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none foc
|
||||
$disabledClass = $commissionDisabled ? 'opacity-40 cursor-not-allowed bg-gray-100' : '';
|
||||
@endphp
|
||||
{{-- 계약일 --}}
|
||||
<td class="px-4 py-3 whitespace-nowrap text-center text-sm text-gray-500">
|
||||
{{ $prospect->contracted_at ? \Carbon\Carbon::parse($prospect->contracted_at)->format('Y-m-d') : '-' }}
|
||||
<td class="px-1 py-2 whitespace-nowrap text-center">
|
||||
<input type="date"
|
||||
class="w-28 h-7 text-xs px-1 border-2 border-gray-300 rounded cursor-pointer hover:border-blue-400 focus:outline-none focus:border-blue-500 {{ $prospect->contracted_at ? 'text-blue-600 font-medium bg-blue-50 border-blue-400' : 'text-gray-500 bg-gray-50' }}"
|
||||
value="{{ $prospect->contracted_at ? \Carbon\Carbon::parse($prospect->contracted_at)->format('Y-m-d') : '' }}"
|
||||
onchange="saveContractedDate({{ $prospect->id }}, this.value, this)">
|
||||
</td>
|
||||
{{-- 1차 납입완료 --}}
|
||||
<td class="px-1 py-2 whitespace-nowrap text-center">
|
||||
|
||||
@@ -1253,6 +1253,7 @@
|
||||
Route::get('admin-prospects/refresh', [\App\Http\Controllers\Sales\AdminProspectController::class, 'refresh'])->name('admin-prospects.refresh');
|
||||
Route::get('admin-prospects/{id}/modal-show', [\App\Http\Controllers\Sales\AdminProspectController::class, 'modalShow'])->name('admin-prospects.modal-show');
|
||||
Route::post('admin-prospects/{id}/hq-status', [\App\Http\Controllers\Sales\AdminProspectController::class, 'updateHqStatus'])->name('admin-prospects.update-hq-status');
|
||||
Route::post('admin-prospects/{id}/contracted-date', [\App\Http\Controllers\Sales\AdminProspectController::class, 'updateContractedDate'])->name('admin-prospects.update-contracted-date');
|
||||
Route::post('admin-prospects/{id}/handover-date', [\App\Http\Controllers\Sales\AdminProspectController::class, 'updateHandoverDate'])->name('admin-prospects.update-handover-date');
|
||||
Route::post('admin-prospects/{id}/commission-date', [\App\Http\Controllers\Sales\AdminProspectController::class, 'updateCommissionDate'])->name('admin-prospects.update-commission-date');
|
||||
Route::delete('admin-prospects/{id}/commission-date', [\App\Http\Controllers\Sales\AdminProspectController::class, 'clearCommissionDate'])->name('admin-prospects.clear-commission-date');
|
||||
|
||||
Reference in New Issue
Block a user