fix lỗi có phép được duyệt trong thời gian được chọn khi tạo ticket
This commit is contained in:
parent
5f8b03f558
commit
e05e92b96b
|
|
@ -238,10 +238,24 @@ class TicketController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lấy thông tin tickets nghỉ phép đang ở trạng thái CONFIRMED
|
// Lấy thông tin tickets nghỉ phép đang ở trạng thái CONFIRMED
|
||||||
$ticketsConfirmed = Ticket::where('user_id', $user->id)->where('status', 'CONFIRMED')
|
$ticketsConfirmed = Ticket::where('user_id', $user->id)
|
||||||
|
->where('status', 'CONFIRMED')
|
||||||
->whereIn('type', ['ONLEAVE'])
|
->whereIn('type', ['ONLEAVE'])
|
||||||
->where(DB::raw('DATE(start_date)'), '>=', $start_date->toDateString())
|
->where(function($query) use ($start_date, $end_date) {
|
||||||
->where(DB::raw('DATE(end_date)'), '<=', $end_date->toDateString())
|
$query->where(function($q) use ($start_date, $end_date) {
|
||||||
|
// Trường hợp 1: start_date nằm trong khoảng
|
||||||
|
$q->whereBetween(DB::raw('DATE(start_date)'), [$start_date->toDateString(), $end_date->toDateString()]);
|
||||||
|
})
|
||||||
|
->orWhere(function($q) use ($start_date, $end_date) {
|
||||||
|
// Trường hợp 2: end_date nằm trong khoảng
|
||||||
|
$q->whereBetween(DB::raw('DATE(end_date)'), [$start_date->toDateString(), $end_date->toDateString()]);
|
||||||
|
})
|
||||||
|
->orWhere(function($q) use ($start_date, $end_date) {
|
||||||
|
// Trường hợp 3: Khoảng thời gian được chọn nằm trong khoảng của ticket
|
||||||
|
$q->where(DB::raw('DATE(start_date)'), '<=', $start_date->toDateString())
|
||||||
|
->where(DB::raw('DATE(end_date)'), '>=', $end_date->toDateString());
|
||||||
|
});
|
||||||
|
})
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
$dataListPeriodConfirmed = [];
|
$dataListPeriodConfirmed = [];
|
||||||
|
|
@ -250,7 +264,7 @@ class TicketController extends Controller
|
||||||
$dataListPeriodConfirmed = array_merge($dataListPeriodConfirmed, $this->getAllPeriodNew($ticket->start_date, $ticket->start_period, $ticket->end_date, $ticket->end_period));
|
$dataListPeriodConfirmed = array_merge($dataListPeriodConfirmed, $this->getAllPeriodNew($ticket->start_date, $ticket->start_period, $ticket->end_date, $ticket->end_period));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// dd($dataListPeriodConfirmed,$ticketsConfirmed,$start_date->toDateString(),$end_date->toDateString());
|
||||||
// Chuyển đổi mảng đa chiều thành mảng chuỗi để có thể so sánh
|
// Chuyển đổi mảng đa chiều thành mảng chuỗi để có thể so sánh
|
||||||
$periodStrings = [];
|
$periodStrings = [];
|
||||||
$waitingPeriodStrings = [];
|
$waitingPeriodStrings = [];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue