diff --git a/app/Classes/General/Eloquent/Filters/PendingPurchaseOrder.php b/app/Classes/General/Eloquent/Filters/PendingPurchaseOrder.php index d3fa28f9..4097cbe0 100644 --- a/app/Classes/General/Eloquent/Filters/PendingPurchaseOrder.php +++ b/app/Classes/General/Eloquent/Filters/PendingPurchaseOrder.php @@ -23,6 +23,8 @@ class PendingPurchaseOrder implements Filter }); })->whereDoesntHave('transactions', function($transaction){ return $transaction->where('type', TransactionType::PURCHASE_ORDER)->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + })->whereHas('transactions', function($transaction){ + return $transaction->where('type', TransactionType::PAYMENT)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); }); } diff --git a/app/Classes/Modules/Transactions/Processors/CreateCashBackTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateCashBackTransactionProcessor.php index af9d646c..738cb2b7 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateCashBackTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateCashBackTransactionProcessor.php @@ -24,71 +24,48 @@ use Carbon\Carbon; class CreateCashBackTransactionProcessor { - /** @var UpdatesTransactionStatus */ - private $updatesTransactionStatus; - /** @var CreatesTransaction */ private $createsTransaction; - /** @var CreatesTransactionDetail */ - private $createsTransactionDetail; - - /** @var UpdatesTransaction */ - private $updatesTransaction; - - /** @var DeletesTransactionDetails */ - private $deletesTransactionDetails; /** @var GeneratesTransactionBillNumber */ private $generatesTransactionBillNumber; - /** @var CreatesWallet */ - private $createsWallet; - - /** @var GeneratesWalletCode */ - private $generatesWalletCode; /** @var CreditWalletProcessor */ private $creditWalletProcessor; /** * CreateCashBackTransactionProcessor constructor. - * @param UpdatesTransactionStatus $updatesTransactionStatus * @param CreatesTransaction $createsTransaction - * @param CreatesTransactionDetail $createsTransactionDetail - * @param UpdatesTransaction $updatesTransaction - * @param DeletesTransactionDetails $deletesTransactionDetails * @param GeneratesTransactionBillNumber $generatesTransactionBillNumber + * @param CreditWalletProcessor $creditWalletProcessor */ - public function __construct(UpdatesTransactionStatus $updatesTransactionStatus, CreatesTransaction $createsTransaction, CreatesTransactionDetail $createsTransactionDetail, UpdatesTransaction $updatesTransaction, DeletesTransactionDetails $deletesTransactionDetails, GeneratesTransactionBillNumber $generatesTransactionBillNumber, GeneratesWalletCode $generatesWalletCode, CreditWalletProcessor $creditWalletProcessor) + public function __construct(CreatesTransaction $createsTransaction, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CreditWalletProcessor $creditWalletProcessor) { $this->createsTransaction = $createsTransaction; - $this->createsTransactionDetail = $createsTransactionDetail; - $this->updatesTransaction = $updatesTransaction; - $this->deletesTransactionDetails = $deletesTransactionDetails; $this->generatesTransactionBillNumber = $generatesTransactionBillNumber; - - $this->generatesWalletCode = $generatesWalletCode; - $this->creditWalletProcessor = $creditWalletProcessor; } /** - * @param Booking $booking - * @param TransactionObject $object + * @param Transaction $transaction * @return Transaction|\Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(Transaction $transaction) { + // leave this disabled until ready to launch to production + return; + // ((MYR) * (cash back %)) * (1/conversion rate) $current_total_cash_back = Transaction:: where('type', TransactionType::CASH_BACK) ->whereMonth('created_at', Carbon::now()->month)->sum('amount'); if ( $current_total_cash_back < CashBack::MAX && - $transaction->owner()->first()->transactions()->where('type', TransactionType::PURCHASE_ORDER)->count() > 0 + $transaction->owner()->first()->transactions()->where('type', TransactionType::PURCHASE_ORDER)->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED])->count() > 0 ) { $cash_back_segemnt = CashBack::SEGMENT; diff --git a/app/Http/Controllers/Wallets/WalletReportController.php b/app/Http/Controllers/Wallets/WalletReportController.php new file mode 100644 index 00000000..998bba53 --- /dev/null +++ b/app/Http/Controllers/Wallets/WalletReportController.php @@ -0,0 +1,29 @@ + [ + 'walletSum' => (float) Wallet::all()->sum('amount'), + 'outgoingSum' => (float) Transaction::where('type', TransactionType::PAYMENT)->where('owner_type', Wallet::class)->sum('amount'), + 'incomingSum' => (float) Transaction::whereIn('type', [TransactionType::TOP_UP, TransactionType::CREDIT_NOTE])->where('owner_type', Wallet::class)->sum('amount'), + ]] + ))->handler(); + } +} diff --git a/resources/assets/vue/components/banks/elements/BankAccountComponent.vue b/resources/assets/vue/components/banks/elements/BankAccountComponent.vue index 380080e3..0585e4aa 100644 --- a/resources/assets/vue/components/banks/elements/BankAccountComponent.vue +++ b/resources/assets/vue/components/banks/elements/BankAccountComponent.vue @@ -26,7 +26,7 @@
{{item.holder_name}}
-
{{item.bank.type === 3 ? item.bank.account_no : item.bank.account_no.replace(/[^\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim() }}
+
{{item.type === 3 ? item.account_no : item.account_no.replace(/[^\dA-Z]/g, '').replace(/(.{4})/g, '$1 ').trim() }}
diff --git a/resources/assets/vue/components/wallets/elements/WalletsComponent.vue b/resources/assets/vue/components/wallets/elements/WalletsComponent.vue index 8f0daa9c..49a99f0d 100644 --- a/resources/assets/vue/components/wallets/elements/WalletsComponent.vue +++ b/resources/assets/vue/components/wallets/elements/WalletsComponent.vue @@ -1,122 +1,127 @@