Files
exchange-2.0/app/Classes/Modules/Bookings/Services/GeneratesBookingQuotation.php
T
omair saleh 23a191d1f7 fixing bugs
2021-03-30 02:10:14 +08:00

36 lines
1.6 KiB
PHP

<?php
namespace App\Classes\Modules\Bookings\Services;
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(),
'local_total' => $calculationObject->getLocalTotal(),
'foreign_total' => $calculationObject->getForeignTotal(),
'conversion_amount' => $calculationObject->getConversionTotal(),
'service_charge' => $calculationObject->getServiceCharge(),
'tax_total' => $calculationObject->getTax(),
'tax' => $calculationObject->getConfigurations()->getTax(),
'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' => CarbonInterval::days($days)->hours($hours)->minutes($minutes)->forHumans()
];
}
}