Selam.
availability_calendars veritabanından gelen veri şu şekilde;
Şu kod ile;
$prices = DB::table('availability_calendars')
->whereVehicleId($vehicle->id)
->select('start_date', 'finish_date', 'price')
->get();
$selectedStartDate = Carbon\Carbon::parse('2022-12-20');
$selectedEndDate = Carbon\Carbon::parse('2022-12-28');
$totalPrice = 0;
foreach ($prices as $price) {
$priceStartDate = Carbon\Carbon::parse($price->start_date);
$priceEndDate = Carbon\Carbon::parse($price->finish_date);
if ($selectedStartDate->between($priceStartDate, $priceEndDate) && $selectedEndDate->between($priceStartDate, $priceEndDate)) {
$days = $selectedEndDate->diffInDays($selectedStartDate) + 1;
$totalPrice += $days * $price->price;
}
elseif ($selectedStartDate->between($priceStartDate, $priceEndDate)) {
$days = $priceEndDate->diffInDays($selectedStartDate) + 1;
$totalPrice += $days * $price->price;
}
elseif ($selectedEndDate->between($priceStartDate, $priceEndDate)) {
$days = $selectedEndDate->diffInDays($priceStartDate) + 1;
$totalPrice += $days * $price->price;
}
}
echo $totalPrice;
müşterinin seçmiş olduğu tarihlerdeki fiyatları toplayıp toplamını getirmem gerekiyor.
Müşterinin seçtiği tarih aralığı 2022-12-20 ile 2022-12-28. Toplamda 9 gün yapıyor ve fiyatlar şu şekilde;
(2022-12-20 / 2022-12-22 = 3 gün * 100 TL/gün) +
(2022-12-23 / 2022-12-25 = 3 gün * 200 TL/gün) +
(2022-12-26 / 2022-12-28 = 3 gün * 300 TL/gün) = 1800 TL
Burada echo $totalPrice değeri 1800 çıkması gerekirken 1200 olarak çıkıyor. Ayrıca availability_calendars tablosundaki id'si 7 olan verideki price sütunundaki değeri değiştirdiğimde de hiç bir şey değişmiyor.
Nerede yanlış yapıyor olabilirim?