Files
exchange-2.0/app/Classes/Modules/Bookings/Services/CalculatesBookingFloatingAmount.php
T
omair saleh 05401f6bbc large commit
2021-03-11 13:06:40 +08:00

25 lines
984 B
PHP

<?php
namespace App\Classes\Modules\Bookings\Services;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Models\Booking;
use Carbon\Carbon;
class CalculatesBookingFloatingAmount
{
public function execute(Booking $booking, int $type){
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');
}
}