feat:수당 날짜 기록/수정/삭제 기능 추가
This commit is contained in:
@@ -194,4 +194,87 @@ public function updateHqStatus(int $id, Request $request)
|
||||
'hq_status_label' => $management->hq_status_label,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 수당 날짜 기록/수정
|
||||
*/
|
||||
public function updateCommissionDate(int $id, Request $request)
|
||||
{
|
||||
$this->checkAdminAccess();
|
||||
|
||||
$request->validate([
|
||||
'field' => 'required|in:first_payment_at,first_partner_paid_at,second_payment_at,second_partner_paid_at,first_subscription_at,manager_paid_at',
|
||||
'date' => 'nullable|date',
|
||||
]);
|
||||
|
||||
$prospect = TenantProspect::findOrFail($id);
|
||||
$management = SalesTenantManagement::findOrCreateByProspect($prospect->id);
|
||||
|
||||
// Commission 레코드 조회 또는 생성
|
||||
$commission = SalesCommission::firstOrCreate(
|
||||
['management_id' => $management->id],
|
||||
[
|
||||
'tenant_id' => $prospect->tenant_id ?? 1,
|
||||
'payment_type' => 'deposit',
|
||||
'payment_amount' => 0,
|
||||
'payment_date' => now(),
|
||||
'base_amount' => 0,
|
||||
'partner_rate' => 0,
|
||||
'manager_rate' => 0,
|
||||
'partner_commission' => 0,
|
||||
'manager_commission' => 0,
|
||||
'scheduled_payment_date' => now()->addMonth()->day(10),
|
||||
'status' => SalesCommission::STATUS_PENDING,
|
||||
'partner_id' => $management->sales_partner_id ?? 0,
|
||||
'manager_user_id' => $management->manager_user_id,
|
||||
]
|
||||
);
|
||||
|
||||
$field = $request->input('field');
|
||||
$date = $request->input('date') ?: now()->format('Y-m-d');
|
||||
|
||||
$commission->update([
|
||||
$field => $date,
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'field' => $field,
|
||||
'date' => $commission->$field?->format('Y-m-d'),
|
||||
'date_display' => $commission->$field?->format('m/d'),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 수당 날짜 삭제 (초기화)
|
||||
*/
|
||||
public function clearCommissionDate(int $id, Request $request)
|
||||
{
|
||||
$this->checkAdminAccess();
|
||||
|
||||
$request->validate([
|
||||
'field' => 'required|in:first_payment_at,first_partner_paid_at,second_payment_at,second_partner_paid_at,first_subscription_at,manager_paid_at',
|
||||
]);
|
||||
|
||||
$prospect = TenantProspect::findOrFail($id);
|
||||
$management = SalesTenantManagement::where('tenant_prospect_id', $prospect->id)->first();
|
||||
|
||||
if (!$management) {
|
||||
return response()->json(['success' => false, 'message' => '관리 정보가 없습니다.']);
|
||||
}
|
||||
|
||||
$commission = SalesCommission::where('management_id', $management->id)->first();
|
||||
|
||||
if (!$commission) {
|
||||
return response()->json(['success' => false, 'message' => '수당 정보가 없습니다.']);
|
||||
}
|
||||
|
||||
$field = $request->input('field');
|
||||
$commission->update([$field => null]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'field' => $field,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user