cash back ref

This commit is contained in:
glovetleong
2022-04-05 22:57:53 +08:00
parent 4deb5845e3
commit 01ddfb6282
3 changed files with 17 additions and 3 deletions
@@ -42,6 +42,9 @@ class CallbackBillplzLogic
/** @var UpdatesWalletBalance */
private $updatesWalletBalance;
/** @var CreateCashBackTransactionProcessor */
private $createCashBackTransactionProcessor;
/**
* CallbackBillplzLogic constructor.
* @param GetBillplzBill $getBillplzBill
@@ -20,6 +20,9 @@ use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PaymentMethodType;
use App\Classes\ValueObjects\Constants\TransactionType;
use App\Http\Resources\TransactionResource;
use App\Classes\Modules\Transactions\Processors\CreateCashBackTransactionProcessor;
use App\Models\Booking;
use App\Models\Transaction;
use App\Models\Wallet;
@@ -64,6 +67,9 @@ class CreateBookingPaymentLogic extends AbstractControllerLogic
/** @var UpdatesTransactionStatus */
private $updatesTransactionStatus;
/** @var CreateCashBackTransactionProcessor */
private $createCashBackTransactionProcessor;
/**
* CreateBookingPaymentLogic constructor.
* @param FetchesBookingQuotation $fetchBookingQuotation
@@ -74,8 +80,9 @@ class CreateBookingPaymentLogic extends AbstractControllerLogic
* @param CreatesBillplzBill $createsBillplzBill
* @param UpdatesWalletBalance $updatesWalletBalance
* @param UpdatesTransactionStatus $updatesTransactionStatus
* @param CreateCashBackTransactionProcessor $createCashBackTransactionProcessor
*/
public function __construct(FetchesBookingQuotation $fetchBookingQuotation, FetchesCompanyPaymentAttemptLimit $fetchesCompanyPaymentAttemptLimit, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CreatesTransaction $createsTransaction, CalculatesBookingOutstanding $calculatesBookingOutstanding, CreatesBillplzBill $createsBillplzBill, UpdatesWalletBalance $updatesWalletBalance, UpdatesTransactionStatus $updatesTransactionStatus)
public function __construct(FetchesBookingQuotation $fetchBookingQuotation, FetchesCompanyPaymentAttemptLimit $fetchesCompanyPaymentAttemptLimit, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CreatesTransaction $createsTransaction, CalculatesBookingOutstanding $calculatesBookingOutstanding, CreatesBillplzBill $createsBillplzBill, UpdatesWalletBalance $updatesWalletBalance, UpdatesTransactionStatus $updatesTransactionStatus, CreateCashBackTransactionProcessor $createCashBackTransactionProcessor)
{
$this->fetchBookingQuotation = $fetchBookingQuotation;
$this->fetchesCompanyPaymentAttemptLimit = $fetchesCompanyPaymentAttemptLimit;
@@ -85,6 +92,7 @@ class CreateBookingPaymentLogic extends AbstractControllerLogic
$this->createsBillplzBill = $createsBillplzBill;
$this->updatesWalletBalance = $updatesWalletBalance;
$this->updatesTransactionStatus = $updatesTransactionStatus;
$this->createCashBackTransactionProcessor = $createCashBackTransactionProcessor;
}
/**
@@ -126,12 +134,13 @@ class CreateBookingPaymentLogic extends AbstractControllerLogic
}
$transaction_object = new TransactionObject($billNumber, TransactionType::PAYMENT, 1, $booking->company->id, 1, PaymentMethodType::WALLET, $amount, $amount, 1, 1, 1, 0, 0, null, ApprovalStatus::APPROVED, [], '');
$this->createsTransaction->execute($wallet, $transaction_object);
$transaction = $this->createsTransaction->execute($wallet, $transaction_object);
$paymentReference = $billNumber;
$this->updatesWalletBalance->execute($wallet, ($amount * -1));
$cash_back_transaction = $this->createCashBackTransactionProcessor->execute($transaction);
}
$billNumber = $this->generatesTransactionBillNumber->execute('PYMT-');
@@ -118,12 +118,14 @@ class CreateCashBackTransactionProcessor
0,
null,
ApprovalStatus::APPROVED,
null,
'cash back ' . $transaction->bill_no
);
$cash_back_transaction = $this->createsTransaction->execute($transaction, $object);
$company = $transaction->owner()->first()->company;
$credit = $this->creditWalletProcessor->execute($company, $transaction->type, $cash_back_transaction->amount, '');
$credit = $this->creditWalletProcessor->execute($company, $transaction->type, $cash_back_transaction->amount, 'cash back ' . $transaction->bill_no);
}
}
}