diff --git a/app/Classes/Modules/Wallets/ControllersLogic/CreditWalletLogic.php b/app/Classes/Modules/Wallets/ControllersLogic/CreditWalletLogic.php index 8ed8aa08..ef7144f1 100644 --- a/app/Classes/Modules/Wallets/ControllersLogic/CreditWalletLogic.php +++ b/app/Classes/Modules/Wallets/ControllersLogic/CreditWalletLogic.php @@ -10,6 +10,7 @@ use App\Classes\Modules\Wallets\Services\UpdatesWallet; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Companies\Services\FetchesCompany; +use App\Classes\Modules\Companies\Services\fetchesCompanyModule; use App\Classes\Modules\Wallets\Services\GeneratesWalletCode; use App\Classes\Modules\Transactions\Services\CreatesTransaction; @@ -29,6 +30,9 @@ class CreditWalletLogic extends AbstractControllerLogic } + /** @var FetchesCompanyModule */ + private $fetchesCompanyModule; + /** @var FetchesCompany */ private $fetchesCompany; @@ -62,6 +66,7 @@ class CreditWalletLogic extends AbstractControllerLogic */ public function __construct( FetchesCompany $fetchesCompany, + FetchesCompanyModule $fetchesCompanyModule, GeneratesWalletCode $generatesWalletCode, CreatesWallet $createsWallet, GeneratesTransactionBillNumber $generatesTransactionBillNumber, @@ -71,6 +76,7 @@ class CreditWalletLogic extends AbstractControllerLogic ) { $this->fetchesCompany = $fetchesCompany; + $this->fetchesCompanyModule = $fetchesCompanyModule; $this->generatesWalletCode = $generatesWalletCode; $this->createsWallet = $createsWallet; $this->generatesTransactionBillNumber = $generatesTransactionBillNumber; @@ -88,13 +94,13 @@ class CreditWalletLogic extends AbstractControllerLogic { $amount = floatval(str_replace(',', '', $request->input('amount'))); - $company = $this->fetchesCompany->execute(['id' => $request->input('company_id')]); + $companyModule = $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]); $reference = $request->input('reference'); $type = $request->input('transaction_type'); - $wallet = $this->creditWalletProcessor->execute($company, $type, $amount, $reference); + $wallet = $this->creditWalletProcessor->execute($companyModule, $type, $amount, $reference); return $this->resourceResponse(new WalletResource($wallet)); } diff --git a/app/Classes/Modules/Wallets/Processors/CreditWalletProcessor.php b/app/Classes/Modules/Wallets/Processors/CreditWalletProcessor.php index 65f3b9b6..3806f852 100644 --- a/app/Classes/Modules/Wallets/Processors/CreditWalletProcessor.php +++ b/app/Classes/Modules/Wallets/Processors/CreditWalletProcessor.php @@ -11,9 +11,11 @@ use App\Classes\ValueObjects\Constants\TransactionType; use App\Classes\ValueObjects\Constants\PaymentMethodType; use App\Classes\Modules\Wallets\Services\GeneratesWalletCode; use App\Classes\Modules\Transactions\Services\CreatesTransaction; +use App\Classes\Modules\Transactions\Services\CreatesTransactionableTransaction; use App\Classes\Modules\Wallets\DataTransferObjects\WalletObject; use App\Classes\Modules\Transactions\DataTransferObjects\TransactionObject; use App\Classes\Modules\Transactions\Services\GeneratesTransactionBillNumber; +use App\Models\CompanyModule; class CreditWalletProcessor { @@ -29,6 +31,9 @@ class CreditWalletProcessor /** @var CreatesTransaction */ private $createsTransaction; + /** @var CreatesTransactionableTransaction */ + private $createsTransactionableTransaction; + /** @var UpdatesWallet */ private $updatesWallet; @@ -38,6 +43,7 @@ class CreditWalletProcessor * @param CreatesWallet $createsWallet * @param GeneratesTransactionBillNumber $generatesTransactionBillNumber * @param CreatesTransaction $createsTransaction + * @param CreatesTransactionableTransaction $createsTransactionableTransaction * @param UpdatesWallet $updatesWallet */ public function __construct( @@ -45,6 +51,7 @@ class CreditWalletProcessor CreatesWallet $createsWallet, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CreatesTransaction $createsTransaction, + CreatesTransactionableTransaction $createsTransactionableTransaction, UpdatesWallet $updatesWallet ) { @@ -52,32 +59,33 @@ class CreditWalletProcessor $this->createsWallet = $createsWallet; $this->generatesTransactionBillNumber = $generatesTransactionBillNumber; $this->createsTransaction = $createsTransaction; + $this->createsTransactionableTransaction = $createsTransactionableTransaction; $this->updatesWallet = $updatesWallet; } /** - * @param Company $company + * @param CompanyModule $companyModule * @param int $transactionType * @param float $amount * @param string $reference * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Company $company, int $transactionType, float $amount, string $reference) + public function execute(CompanyModule $companyModule, int $transactionType, float $amount, string $reference) { - if (!$company->wallets()->first()) { - $object = new WalletObject($company->id, 1, $this->generatesWalletCode->execute()); - $this->createsWallet->execute($object, $company); + if (!$companyModule->wallets()->first()) { + $object = new WalletObject($companyModule->id, 1, $this->generatesWalletCode->execute()); + $this->createsWallet->execute($object, $companyModule); } /** @var Wallet $wallet */ - $wallet = $company->wallets()->first(); + $wallet = $companyModule->wallets()->first(); $billNumber = $this->generatesTransactionBillNumber->execute($transactionType === 2 ? 'DEBIT-NOTE-' : 'CREDIT-NOTE-'); $transaction_object = new TransactionObject($billNumber, $transactionType === 2 ? TransactionType::DEBIT_NOTE : TransactionType::CREDIT_NOTE, 1, $wallet->owner->id, 1, PaymentMethodType::CASH, $amount, $amount, 1, 1, 1, 0, 0, null, ApprovalStatus::APPROVED, [], $reference); - $transaction = $this->createsTransaction->execute($wallet, $transaction_object); + $transaction = $this->createsTransactionableTransaction->execute($wallet, $transaction_object); $updateWalletAmount = $transactionType === 2 ? ($wallet->amount - $transaction->amount) : ($wallet->amount + $transaction->amount); diff --git a/resources/assets/vue/components/companies/elements/CustomerPaymentBillingInnerComponent.vue b/resources/assets/vue/components/companies/elements/CustomerPaymentBillingInnerComponent.vue index 3403edc2..a1113c14 100644 --- a/resources/assets/vue/components/companies/elements/CustomerPaymentBillingInnerComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerPaymentBillingInnerComponent.vue @@ -17,7 +17,7 @@
- +
diff --git a/resources/assets/vue/components/paymentsBilling/forms/InvoiceItemsFormComponent.vue b/resources/assets/vue/components/paymentsBilling/forms/InvoiceItemsFormComponent.vue index e7e8f93d..5153c14a 100644 --- a/resources/assets/vue/components/paymentsBilling/forms/InvoiceItemsFormComponent.vue +++ b/resources/assets/vue/components/paymentsBilling/forms/InvoiceItemsFormComponent.vue @@ -69,7 +69,7 @@ this.canSubmitChanges = !this.canSubmitChanges; this.parameters.transaction_details = this.details; - console.log(this.parameters.transaction_details); + // console.log(this.parameters.transaction_details); this.submit(this.route('api.transaction.invoice.update', this.data.id), 'put', this.section, true, true); } diff --git a/resources/assets/vue/components/wallets/elements/CustomerTransactionSectionComponent.vue b/resources/assets/vue/components/wallets/elements/CustomerTransactionSectionComponent.vue index 50e13ed1..3350cfb5 100644 --- a/resources/assets/vue/components/wallets/elements/CustomerTransactionSectionComponent.vue +++ b/resources/assets/vue/components/wallets/elements/CustomerTransactionSectionComponent.vue @@ -21,7 +21,7 @@
{{item.created_at}}
-
+
{{[5, 9].includes(parseFloat(item.type)) ? (Math.round((parseFloat(item.amount) + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : ''}}
{{[2, 11].includes(parseFloat(item.type)) ? '- ' + (Math.round((parseFloat(item.amount) + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : ''}}
{{remainingBalance(index)}}
diff --git a/routes/web.php b/routes/web.php index 52a0146e..36fd793f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1189,4 +1189,6 @@ Route::get('/duplicate-package-clean-up', function(){ }); +Route::get('transaction/{id}/credit_note/download', 'Transactions\GenerateCreditNotePdfController@download')->name('transaction.credit_note.download'); +