diff --git a/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php b/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php index cc5acc1d..2f28c704 100644 --- a/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php +++ b/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php @@ -15,11 +15,19 @@ class CalculatesBookingFloatingAmount return $type === 1 ? $booking->transactions()->selectRaw('sum(amount - service_charge - tax) as sub_total') ->where('type', TransactionType::PAYMENT) - ->whereIn('status', [ApprovalStatus::PENDING_SUBMISSION, ApprovalStatus::PENDING_VERIFICATION]) - ->whereDate('expires_on', '>', Carbon::now())->get()->sum('sub_total') : - $booking->transactions()->where('type', TransactionType::PAYMENT) - ->whereIn('status', [ApprovalStatus::PENDING_SUBMISSION, ApprovalStatus::PENDING_VERIFICATION]) - ->whereDate('expires_on', '>', Carbon::now())->sum('original_amount'); + ->where(function($query){ + $query->whereIn('status', [ApprovalStatus::PENDING_SUBMISSION]) + ->whereDate('expires_on', '>=', Carbon::now()); + })->orWhere(function($query){ + $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION]); + })->get()->sum('sub_total') + : $booking->transactions()->where('type', TransactionType::PAYMENT) + ->where(function($query){ + $query->whereIn('status', [ApprovalStatus::PENDING_SUBMISSION]) + ->whereDate('expires_on', '>=', Carbon::now()); + })->orWhere(function($query){ + $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION]); + })->get()->sum('original_amount'); } } \ No newline at end of file diff --git a/app/Classes/Modules/Bookings/Services/GeneratesBookingQuotation.php b/app/Classes/Modules/Bookings/Services/GeneratesBookingQuotation.php index 0b631b54..8f40187b 100644 --- a/app/Classes/Modules/Bookings/Services/GeneratesBookingQuotation.php +++ b/app/Classes/Modules/Bookings/Services/GeneratesBookingQuotation.php @@ -7,11 +7,17 @@ use App\Classes\Modules\Bookings\DataTransferObjects\CalculationObject; use App\Http\Resources\BankResource; use App\Models\Bank; use Carbon\Carbon; +use Carbon\CarbonInterval; class GeneratesBookingQuotation { public function execute(CalculationObject $calculationObject, ?int $paymentAttemptLimit = 0){ + $date = Carbon::now(); + $days = $date->diffInDays($date->copy()->addMinutes($paymentAttemptLimit)); + $hours = $date->diffInHours($date->copy()->addMinutes($paymentAttemptLimit)->subDays($days)) ; + $minutes = $date->diffInMinutes($date->copy()->addMinutes($paymentAttemptLimit)->subDays($days)->subHours($hours)); + return [ 'bank' => new BankResource(Bank::find($calculationObject->getConfigurations()->getBankId())), 'rate' => $calculationObject->getConfigurations()->getRate(), @@ -24,7 +30,7 @@ class GeneratesBookingQuotation 'sub_total' => $calculationObject->getSubTotal(), 'total' => $calculationObject->getTotal(), 'date' => Carbon::now()->timezone('Asia/Singapore')->format('h:i a, jS M, Y \G\M\T T'), - 'payment_attempt_limit' => $paymentAttemptLimit + 'payment_attempt_limit' => CarbonInterval::days($days)->hours($hours)->minutes($minutes)->forHumans() ]; } } \ No newline at end of file diff --git a/resources/assets/vue/components/bookings/forms/ConfirmQuotationFormComponent.vue b/resources/assets/vue/components/bookings/forms/ConfirmQuotationFormComponent.vue index 0cf9cdfb..86be8e1a 100644 --- a/resources/assets/vue/components/bookings/forms/ConfirmQuotationFormComponent.vue +++ b/resources/assets/vue/components/bookings/forms/ConfirmQuotationFormComponent.vue @@ -42,7 +42,7 @@