diff --git a/app/Classes/Modules/Transactions/ControllersLogic/FetchCompanyTransactionStatementLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/FetchCompanyTransactionStatementLogic.php index c16ac453..a078a01d 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/FetchCompanyTransactionStatementLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/FetchCompanyTransactionStatementLogic.php @@ -55,6 +55,15 @@ class FetchCompanyTransactionStatementLogic extends AbstractControllerLogic ->where('owner_type', Wallet::class) ->where('type', '!=', TransactionType::PAYMENT); }) + ->orWhere(function ($query) use ($companyId) { + $query + ->where('type', TransactionType::INVOICE) + ->where('owner_type', Booking::class) + ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) + ->whereHas('booking', function ($query) use ($companyId) { + $query->where('company_id', $companyId); + }); + }) ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) ->orderBy('created_at', 'desc') ->get(); diff --git a/app/Classes/Modules/Vouchers/DataTransferObjects/CreateVoucherifyOrderObject.php b/app/Classes/Modules/Vouchers/DataTransferObjects/CreateVoucherifyOrderObject.php index 92dfd592..c483d45e 100644 --- a/app/Classes/Modules/Vouchers/DataTransferObjects/CreateVoucherifyOrderObject.php +++ b/app/Classes/Modules/Vouchers/DataTransferObjects/CreateVoucherifyOrderObject.php @@ -14,6 +14,9 @@ class CreateVoucherifyOrderObject implements DataTransferObject /** @var int */ private $companyId; + /** @var int */ + private $transactionId; + /** @var float */ private $amount; @@ -27,14 +30,16 @@ class CreateVoucherifyOrderObject implements DataTransferObject * CreateVoucherifyOrderObject constructor. * @param User $employee * @param int $companyId + * @param int $transactionId * @param float $amount * @param bool $isNoVoucher * @param bool $isTopUpWallet */ - public function __construct(User $employee, int $companyId, float $amount, bool $isNoVoucher, bool $isTopUpWallet) + public function __construct(User $employee, int $companyId, int $transactionId, float $amount, bool $isNoVoucher, bool $isTopUpWallet) { $this->employee = $employee; $this->companyId = $companyId; + $this->transactionId = $transactionId; $this->amount = $amount; $this->isNoVoucher = $isNoVoucher; $this->isTopUpWallet = $isTopUpWallet; @@ -48,6 +53,14 @@ class CreateVoucherifyOrderObject implements DataTransferObject return $this->companyId; } + /** + * @return int + */ + public function getTransactionId(): int + { + return $this->transactionId; + } + /** * @return float */ diff --git a/app/Classes/Modules/Vouchers/DataTransferObjects/RedeemVoucherifyVoucherObject.php b/app/Classes/Modules/Vouchers/DataTransferObjects/RedeemVoucherifyVoucherObject.php index 01f5431c..325df2f4 100644 --- a/app/Classes/Modules/Vouchers/DataTransferObjects/RedeemVoucherifyVoucherObject.php +++ b/app/Classes/Modules/Vouchers/DataTransferObjects/RedeemVoucherifyVoucherObject.php @@ -9,6 +9,9 @@ class RedeemVoucherifyVoucherObject implements DataTransferObject /** @var int */ private $companyId; + /** @var int */ + private $transactionId; + /** @var string */ private $promoCode; @@ -21,13 +24,15 @@ class RedeemVoucherifyVoucherObject implements DataTransferObject /** * RedeemVoucherifyVoucherObject constructor. * @param int $companyId + * @param int $transactionId * @param string $name * @param string $email * @param object $employee */ - public function __construct(int $companyId, string $promoCode, string $amount, object $employee) + public function __construct(int $companyId, int $transactionId, string $promoCode, string $amount, object $employee) { $this->companyId = $companyId; + $this->transactionId = $transactionId; $this->promoCode = $promoCode; $this->amount = $amount; $this->employee = $employee; @@ -42,6 +47,15 @@ class RedeemVoucherifyVoucherObject implements DataTransferObject } + /** + * @return int + */ + public function getTransactionId(): int + { + return $this->transactionId; + } + + /** * @return string */ diff --git a/app/Classes/Modules/Vouchers/Processors/Voucherify/BookingToVoucherifyProcessor.php b/app/Classes/Modules/Vouchers/Processors/Voucherify/BookingToVoucherifyProcessor.php index 3df08a4c..323b2eaf 100644 --- a/app/Classes/Modules/Vouchers/Processors/Voucherify/BookingToVoucherifyProcessor.php +++ b/app/Classes/Modules/Vouchers/Processors/Voucherify/BookingToVoucherifyProcessor.php @@ -82,7 +82,7 @@ class BookingToVoucherifyProcessor $voucherify_customer_id = ""; $voucherify_order_id = ""; if($voucherCode){ - $redeemVoucherifyVoucherObject = new RedeemVoucherifyVoucherObject($companyId, $voucherCode, $amount, $user); + $redeemVoucherifyVoucherObject = new RedeemVoucherifyVoucherObject($companyId, $transaction->id, $voucherCode, $amount, $user); $redeemVoucherResult = $this->redeemsVoucherifyVoucher->execute($redeemVoucherifyVoucherObject); $redeemedVoucher = $redeemVoucherResult->voucher; $redemptionId = $redeemVoucherResult->id; @@ -100,7 +100,7 @@ class BookingToVoucherifyProcessor $this->recordVoucherForUserInfo($user, $voucher); } else{ - $createVoucherifyOrderObject = new CreateVoucherifyOrderObject($user, $companyId, $amount, true, $transaction->type == TransactionType::TOP_UP); + $createVoucherifyOrderObject = new CreateVoucherifyOrderObject($user, $companyId, $transaction->id, $amount, true, $transaction->type == TransactionType::TOP_UP); $createVoucherufyOrderResult = $this->createsVoucherifyOrder->execute($createVoucherifyOrderObject); if($createVoucherufyOrderResult && isset($createVoucherufyOrderResult->id)){ diff --git a/app/Classes/Modules/Vouchers/Services/Voucherify/CreatesVoucherifyOrder.php b/app/Classes/Modules/Vouchers/Services/Voucherify/CreatesVoucherifyOrder.php index e5e6d404..90e5d682 100644 --- a/app/Classes/Modules/Vouchers/Services/Voucherify/CreatesVoucherifyOrder.php +++ b/app/Classes/Modules/Vouchers/Services/Voucherify/CreatesVoucherifyOrder.php @@ -31,6 +31,7 @@ class CreatesVoucherifyOrder { try { $orderObj = [ + "source_id" => $obj->getTransactionId(), "customer" => [ "source_id" => $obj->getEmployee()->id, "name" => $obj->getEmployee()->name, diff --git a/app/Classes/Modules/Vouchers/Services/Voucherify/RedeemsVoucherifyVoucher.php b/app/Classes/Modules/Vouchers/Services/Voucherify/RedeemsVoucherifyVoucher.php index bd12e27f..7c44889b 100644 --- a/app/Classes/Modules/Vouchers/Services/Voucherify/RedeemsVoucherifyVoucher.php +++ b/app/Classes/Modules/Vouchers/Services/Voucherify/RedeemsVoucherifyVoucher.php @@ -39,6 +39,7 @@ class RedeemsVoucherifyVoucher ] ], "order" => [ + "source_id" => $redeemVoucherifyVoucherObject->getTransactionId(), "amount" => $redeemVoucherifyVoucherObject->getAmount() * 100 //converting it to cents ] ]); diff --git a/app/Console/Commands/DeleteOrderCommand.php b/app/Console/Commands/DeleteOrderCommand.php index a4702ff0..849a0106 100644 --- a/app/Console/Commands/DeleteOrderCommand.php +++ b/app/Console/Commands/DeleteOrderCommand.php @@ -5,6 +5,7 @@ namespace App\Console\Commands; use Illuminate\Console\Command; use Carbon\Carbon; use App\Classes\ValueObjects\Constants\ApprovalStatus; +use App\Classes\ValueObjects\Constants\TransactionType; use App\Models\Booking; class DeleteOrderCommand extends Command @@ -40,7 +41,8 @@ class DeleteOrderCommand extends Command */ public function handle() { - $bookings_reference = $this->argument('bookings_reference'); + // $bookings_reference = $this->argument('bookings_reference'); + $bookings_reference = '28546,38599,44487,71086,70133,58580,42831,96028,41188,33894,95877,86732,31894,50962,44215,92894,40968,30303,89762,74693,45271,27169'; $bookings_reference = explode(',', $bookings_reference); $start = new Carbon(); @@ -52,9 +54,14 @@ class DeleteOrderCommand extends Command if (!$booking) { $this->logOutput('Booking not found: ' . $reference); } else { - $booking->status = ApprovalStatus::EXPIRED; - $booking->save(); - $this->logOutput('Booking deleted: ' . $reference); + $payment = $booking->transactions() + ->payments()->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) + ->first(); + + $payment->status = ApprovalStatus::EXPIRED; + $payment->save(); + + $this->logOutput('Booking ' . $reference . ' Payment deleted: ' . $payment->id); } } diff --git a/resources/assets/vue/components/bookings/elements/ListVouchers.vue b/resources/assets/vue/components/bookings/elements/AvailableVouchersComponent.vue similarity index 90% rename from resources/assets/vue/components/bookings/elements/ListVouchers.vue rename to resources/assets/vue/components/bookings/elements/AvailableVouchersComponent.vue index e59ff653..45722aaf 100644 --- a/resources/assets/vue/components/bookings/elements/ListVouchers.vue +++ b/resources/assets/vue/components/bookings/elements/AvailableVouchersComponent.vue @@ -1,7 +1,6 @@