From 76e76e077ac97bbc6a097c89b878b691fee63ddf Mon Sep 17 00:00:00 2001 From: JiaSheng Date: Mon, 6 May 2024 17:20:01 +0800 Subject: [PATCH 1/9] edit transfer fee functionality for individual whiteform --- .../UpdateGroupTransferFeeLogic.php | 82 +++++++++++++++++++ .../Services/CreatesTransaction.php | 7 +- .../UpdateGroupTransferFeeController.php | 20 +++++ app/Http/Resources/GroupResource.php | 8 ++ app/Models/Group.php | 8 ++ .../bookings/elements/BillGroupComponent.vue | 6 ++ .../elements/EditTransferFeeFormComponent.vue | 79 ++++++++++++++++++ .../TransactionGroupPaymentComponent.vue | 18 ++++ routes/transaction.php | 1 + 9 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 app/Classes/Modules/Transactions/ControllersLogic/UpdateGroupTransferFeeLogic.php create mode 100644 app/Http/Controllers/Transactions/UpdateGroupTransferFeeController.php create mode 100644 resources/assets/vue/components/bookings/elements/EditTransferFeeFormComponent.vue diff --git a/app/Classes/Modules/Transactions/ControllersLogic/UpdateGroupTransferFeeLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/UpdateGroupTransferFeeLogic.php new file mode 100644 index 00000000..2864eb73 --- /dev/null +++ b/app/Classes/Modules/Transactions/ControllersLogic/UpdateGroupTransferFeeLogic.php @@ -0,0 +1,82 @@ + 'Update Group Transfer Fee', + 'message' => 'You have successfully updated transfer fee for this Group Transaction' + ]; + } + + /** @var FetchesGroup */ + private $fetchesGroup; + + /** @var CreatesTransaction */ + private $createsTransaction; + + /** @var GeneratesTransactionBillNumber */ + private $generatesTransactionBillNumber; + + /** + * UpdateGroupTransferFeeLogic constructor. + * @param FetchesGroup $fetchesGroup + * @param CreatesTransaction $createsTransaction + * @param GeneratesTransactionBillNumber $generatesTransactionBillNumber + */ + public function __construct(FetchesGroup $fetchesGroup, CreatesTransaction $createsTransaction, GeneratesTransactionBillNumber $generatesTransactionBillNumber) + { + $this->fetchesGroup = $fetchesGroup; + $this->createsTransaction = $createsTransaction; + $this->generatesTransactionBillNumber = $generatesTransactionBillNumber; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\MalformedRequestException + */ + public function logic(Request $request) : JsonResponse + { + $group = $this->fetchesGroup->execute(['id' => $request->route('id')]); + $supplier = $group->issuerCompany; + $fee = $request->input('fee'); + + $transfer_fee = $group->morphTransactions()->where('type', TransactionType::TRANSFER_FEE)->first(); + + if ($transfer_fee) { + $transfer_fee->amount = $fee; + $transfer_fee->original_amount = $fee; + $transfer_fee->save(); + } else { + $transferFeeNumber = $this->generatesTransactionBillNumber->execute('TRFR-'); + $object = new TransactionObject($transferFeeNumber, TransactionType::TRANSFER_FEE, 1, $supplier->id, + $supplier->banks()->where('default', true)->first()->id, PaymentMethodType::CASH, + $fee, $fee, $group->original_currency_id, $group->original_currency_id, + 1, 0, 0, null, ApprovalStatus::APPROVED); + + $this->createsTransaction->execute($group, $object); + } + + return $this->resourceResponse(new GroupResource($group)); + } + +} diff --git a/app/Classes/Modules/Transactions/Services/CreatesTransaction.php b/app/Classes/Modules/Transactions/Services/CreatesTransaction.php index 06530564..b545c5ed 100644 --- a/app/Classes/Modules/Transactions/Services/CreatesTransaction.php +++ b/app/Classes/Modules/Transactions/Services/CreatesTransaction.php @@ -5,6 +5,7 @@ namespace App\Classes\Modules\Transactions\Services; use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\General\Interfaces\Transactionable; use App\Classes\Modules\Transactions\DataTransferObjects\TransactionObject; +use App\Models\Group; use App\Models\Transaction; class CreatesTransaction extends AbstractUpdateRelationshipRecord @@ -15,7 +16,7 @@ class CreatesTransaction extends AbstractUpdateRelationshipRecord * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Transactionable $transactionable, TransactionObject $object) { + public function execute(Transactionable|Group $transactionable, TransactionObject $object) { $model = new Transaction(); $model->bill_no = $object->getBillNo(); $model->type = $object->getTransactionType(); @@ -34,6 +35,10 @@ class CreatesTransaction extends AbstractUpdateRelationshipRecord $model->status = $object->getStatus(); $model->payment_reference = $object->getPaymentReference(); + if ($transactionable instanceof Group) { + return $this->handler($transactionable->morphTransactions(), $model); + } + return $this->handler($transactionable->transactions(), $model); } diff --git a/app/Http/Controllers/Transactions/UpdateGroupTransferFeeController.php b/app/Http/Controllers/Transactions/UpdateGroupTransferFeeController.php new file mode 100644 index 00000000..948dff39 --- /dev/null +++ b/app/Http/Controllers/Transactions/UpdateGroupTransferFeeController.php @@ -0,0 +1,20 @@ +execute($request); + } +} diff --git a/app/Http/Resources/GroupResource.php b/app/Http/Resources/GroupResource.php index abd017ec..fdddd195 100644 --- a/app/Http/Resources/GroupResource.php +++ b/app/Http/Resources/GroupResource.php @@ -21,6 +21,13 @@ class GroupResource extends JsonResource */ public function toArray($request) { + $transfer_fee = $this->morphTransactions()->where('type', TransactionType::TRANSFER_FEE)->first(); + + if ($transfer_fee) { + $transfer_fee = (float) $transfer_fee->amount; + } else { + $transfer_fee = 0; + } if(!$this->issuerCompany){ dd($this->id); @@ -36,6 +43,7 @@ class GroupResource extends JsonResource 'currency' => new CurrencyResource($this->currency), 'created_at' => Carbon::parse($this->created_at)->format('d-m-Y h:i:s A'), 'currency_rate' => (float) $this->currency_rate, + 'transfer_fee' => $transfer_fee, 'transactions' => $this->transactions()->get()->pluck('owner.owner.marking'), 'complete_transactions' => $this->transactions()->whereHasMorph('owner', [Transaction::class], function($query){ return $query->whereHas('booking', function($query){ diff --git a/app/Models/Group.php b/app/Models/Group.php index 8cb6cd8a..2b8cceae 100644 --- a/app/Models/Group.php +++ b/app/Models/Group.php @@ -21,6 +21,14 @@ class Group extends Model implements Documentable return $this->belongsToMany(Transaction::class, GroupTransaction::class); } + /** + * @return MorphMany + */ + public function morphTransactions(): MorphMany + { + return $this->MorphMany(Transaction::class, 'owner'); + } + /** * @return MorphMany */ diff --git a/resources/assets/vue/components/bookings/elements/BillGroupComponent.vue b/resources/assets/vue/components/bookings/elements/BillGroupComponent.vue index e93eb1ad..9a309cde 100644 --- a/resources/assets/vue/components/bookings/elements/BillGroupComponent.vue +++ b/resources/assets/vue/components/bookings/elements/BillGroupComponent.vue @@ -216,6 +216,12 @@ {{ group.currency.short_code }} {{formatAmount(group.amount)}} +
+
Transfer Fee
+
+ {{ group.original_currency.short_code }} {{formatAmount(group.transfer_fee)}} +
+
PO Completion
diff --git a/resources/assets/vue/components/bookings/elements/EditTransferFeeFormComponent.vue b/resources/assets/vue/components/bookings/elements/EditTransferFeeFormComponent.vue new file mode 100644 index 00000000..93b01124 --- /dev/null +++ b/resources/assets/vue/components/bookings/elements/EditTransferFeeFormComponent.vue @@ -0,0 +1,79 @@ + + diff --git a/resources/assets/vue/components/bookings/elements/TransactionGroupPaymentComponent.vue b/resources/assets/vue/components/bookings/elements/TransactionGroupPaymentComponent.vue index 7fdd579f..2696ceb5 100644 --- a/resources/assets/vue/components/bookings/elements/TransactionGroupPaymentComponent.vue +++ b/resources/assets/vue/components/bookings/elements/TransactionGroupPaymentComponent.vue @@ -36,6 +36,12 @@ {{item.original_currency.short_code}} {{(Math.round((item.original_amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}}
+
+
Transfer Fee
+
+ {{item.original_currency.short_code}} {{(Math.round((item.transfer_fee + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}} +
+
Amount
@@ -75,6 +81,18 @@
+
+
+
+ + + + +
+
+
diff --git a/routes/transaction.php b/routes/transaction.php index d20d160d..654b3fb8 100644 --- a/routes/transaction.php +++ b/routes/transaction.php @@ -32,6 +32,7 @@ Route::group(['prefix' => 'transactions', 'namespace' => 'Transactions', 'as' => Route::get('/list', 'ListGroupsController@list')->name('list'); Route::delete('/{id}/delete', 'DeleteGroupController@delete')->name('delete'); Route::put('/{id}/update', 'UpdateGroupController@update')->name('update'); + Route::put('/{id}/update/fee', 'UpdateGroupTransferFeeController@update')->name('fee.update'); Route::post('/{id}/approve', 'CreateBulkPurchaseOrderDocumentController@aprove')->name('approve'); Route::post('/bulk/po', 'CreateBulkPurchaseOrderDocumentController@create')->name('bulk.po'); From 26f8ca87cd5a5ded079e5da27d259ee67c83b148 Mon Sep 17 00:00:00 2001 From: JiaSheng Date: Wed, 8 May 2024 12:58:23 +0800 Subject: [PATCH 2/9] fix partial refund bug --- .../ControllersLogic/UpdateRefundTransactionStatusLogic.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Classes/Modules/Transactions/ControllersLogic/UpdateRefundTransactionStatusLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/UpdateRefundTransactionStatusLogic.php index cc98847a..6b755db1 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/UpdateRefundTransactionStatusLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/UpdateRefundTransactionStatusLogic.php @@ -100,7 +100,7 @@ class UpdateRefundTransactionStatusLogic extends AbstractControllerLogic $booking = $paymentTransaction->owner; - $reference = $refundTransaction->amount == $paymentTransaction->amount ? 'Fully Refund for Ref. ' . $booking->marking : 'Partially Refund for Ref. ' . $booking->marking; + $reference = $refundTransaction->amount - $paymentTransaction->amount < 0.01 ? 'Fully Refund for Ref. ' . $booking->marking : 'Partially Refund for Ref. ' . $booking->marking; $refundAmount = $this->calculatesBookingRefundAmount->calculateRefundAmount($paymentTransaction, $booking->fix_currency_id); @@ -114,7 +114,7 @@ class UpdateRefundTransactionStatusLogic extends AbstractControllerLogic $this->updatesTransactionStatus->execute($po_transaction, (float) number_format($po_transaction->amount, 2, '.', '') === (float) number_format((float)$booking->fix_amount - $refundAmount, 2, '.', '') ? ApprovalStatus::PENDING_VERIFICATION : ApprovalStatus::PENDING_SUBMISSION); } - $request['fix_amount'] = $booking->fix_amount - $refundAmount; + $request['fix_amount'] = $paidAmount; $request->route()->setParameter('id', $booking->id); $this->updateBookingAmountLogic->execute($request); } From b8d741f57ce70b4d310504d67469168a19d6c189 Mon Sep 17 00:00:00 2001 From: JiaSheng Date: Wed, 8 May 2024 20:07:06 +0800 Subject: [PATCH 3/9] fix edit transfer fee bug --- .../UpdateGroupTransferFeeLogic.php | 21 ++++++++++++++++++- .../Services/CreatesTransaction.php | 7 +------ .../elements/EditTransferFeeFormComponent.vue | 2 +- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/app/Classes/Modules/Transactions/ControllersLogic/UpdateGroupTransferFeeLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/UpdateGroupTransferFeeLogic.php index 2864eb73..b4cd4d02 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/UpdateGroupTransferFeeLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/UpdateGroupTransferFeeLogic.php @@ -11,6 +11,7 @@ use App\Classes\Modules\Transactions\Services\GeneratesTransactionBillNumber; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\PaymentMethodType; use App\Classes\ValueObjects\Constants\TransactionType; +use App\Models\Transaction; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -73,7 +74,25 @@ class UpdateGroupTransferFeeLogic extends AbstractControllerLogic $fee, $fee, $group->original_currency_id, $group->original_currency_id, 1, 0, 0, null, ApprovalStatus::APPROVED); - $this->createsTransaction->execute($group, $object); + $model = new Transaction(); + $model->bill_no = $object->getBillNo(); + $model->type = $object->getTransactionType(); + $model->issuer = $object->getIssuer(); + $model->receiver = $object->getReceiver(); + $model->recipient_bank_account_id = $object->getRecipientBankAccountId(); + $model->payment_method = $object->getPaymentMethod(); + $model->amount = $object->getAmount(); + $model->original_amount = $object->getOriginalAmount(); + $model->currency_id = $object->getCurrencyId(); + $model->original_currency_id = $object->getOriginalCurrencyId(); + $model->currency_rate = $object->getCurrencyRate(); + $model->tax = $object->getTax(); + $model->service_charge = $object->getServiceCharge(); + $model->expires_on = $object->getExpiresOn(); + $model->status = $object->getStatus(); + $model->payment_reference = $object->getPaymentReference(); + + $group->morphTransactions()->save($model); } return $this->resourceResponse(new GroupResource($group)); diff --git a/app/Classes/Modules/Transactions/Services/CreatesTransaction.php b/app/Classes/Modules/Transactions/Services/CreatesTransaction.php index b545c5ed..06530564 100644 --- a/app/Classes/Modules/Transactions/Services/CreatesTransaction.php +++ b/app/Classes/Modules/Transactions/Services/CreatesTransaction.php @@ -5,7 +5,6 @@ namespace App\Classes\Modules\Transactions\Services; use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord; use App\Classes\General\Interfaces\Transactionable; use App\Classes\Modules\Transactions\DataTransferObjects\TransactionObject; -use App\Models\Group; use App\Models\Transaction; class CreatesTransaction extends AbstractUpdateRelationshipRecord @@ -16,7 +15,7 @@ class CreatesTransaction extends AbstractUpdateRelationshipRecord * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Transactionable|Group $transactionable, TransactionObject $object) { + public function execute(Transactionable $transactionable, TransactionObject $object) { $model = new Transaction(); $model->bill_no = $object->getBillNo(); $model->type = $object->getTransactionType(); @@ -35,10 +34,6 @@ class CreatesTransaction extends AbstractUpdateRelationshipRecord $model->status = $object->getStatus(); $model->payment_reference = $object->getPaymentReference(); - if ($transactionable instanceof Group) { - return $this->handler($transactionable->morphTransactions(), $model); - } - return $this->handler($transactionable->transactions(), $model); } diff --git a/resources/assets/vue/components/bookings/elements/EditTransferFeeFormComponent.vue b/resources/assets/vue/components/bookings/elements/EditTransferFeeFormComponent.vue index 93b01124..bb82964a 100644 --- a/resources/assets/vue/components/bookings/elements/EditTransferFeeFormComponent.vue +++ b/resources/assets/vue/components/bookings/elements/EditTransferFeeFormComponent.vue @@ -60,7 +60,7 @@ return { error: '', parameters: { - fee: (Math.round((this.transfer_fee + Number.EPSILON) * 10000) / 10000).toFixed(5) + fee: (Math.round((this.transfer_fee + Number.EPSILON) * 100) / 100).toFixed(2) }, } }, From 2ad1841e54cf7fdff3f2e98d0d21bd44b2a875dc Mon Sep 17 00:00:00 2001 From: edmondlang Date: Thu, 9 May 2024 15:46:12 +0800 Subject: [PATCH 4/9] clean up web export route --- routes/web.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/routes/web.php b/routes/web.php index 861f5bdf..0d14a526 100644 --- a/routes/web.php +++ b/routes/web.php @@ -220,12 +220,6 @@ Route::post('/support', function (Request $request) { Route::get('/online_payment/redirect', 'Billplz\CallbackBillplzController@callback')->name('online_payment.redirect'); -Route::get('/export/customers/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); -Route::get('/export/transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@transactions'); -Route::get('/export/analytic/booking', 'Exports\ExportAnalyticToExcelController@bookingData'); -Route::get('/export/analytic/bills', 'Exports\ExportAnalyticToExcelController@billingData'); -Route::get('/export/customers/leads', 'Exports\ExportCustomersToExcelController@leadsData')->name('leads.export'); - Route::get('/products', function (\App\Classes\Modules\Exports\Services\ExportsProducts $exportsProducts) { return $exportsProducts->download('products.csv', Excel::CSV, ['Content-Type' => 'text/csv']); })->name('products.random'); @@ -293,6 +287,9 @@ Route::get('/export/invoice-transactions/f614e339d7058904a831aad742e24d55', 'Exp Route::get('/export/receipt-transactions/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@receiptTransactions')->name('receiptTransactions.export'); Route::get('/export/imported-invoice-mapped', 'Exports\ExportCustomersToExcelController@importedInvoiceMapped')->name('importedInvoiceMapped.export'); Route::get('/export/imported-receipt-mapped', 'Exports\ExportCustomersToExcelController@importedReceiptMapped')->name('importedReceiptMapped.export'); +Route::get('/export/analytic/booking', 'Exports\ExportAnalyticToExcelController@bookingData'); +Route::get('/export/analytic/bills', 'Exports\ExportAnalyticToExcelController@billingData'); +Route::get('/export/customers/leads', 'Exports\ExportCustomersToExcelController@leadsData')->name('leads.export'); Route::get('/products', function (\App\Classes\Modules\Exports\Services\ExportsProducts $exportsProducts) { $bookings = Booking::where(function($query){ From f03d91ba422a1e5d0f29e559b788a66dbbbb3f9d Mon Sep 17 00:00:00 2001 From: edmondlang Date: Fri, 10 May 2024 00:00:01 +0800 Subject: [PATCH 5/9] add remarks for refund --- .../General/Abstracts/AbstractRule.php | 4 +-- app/Classes/General/Interfaces/Remarkable.php | 13 ++++++++++ .../CreateBookingRefundLogic.php | 14 ++++++++++- .../Standards/Rules/CanCreateRemark.php | 2 +- .../Standards/Rules/CanDeleteRemark.php | 2 +- .../Standards/Rules/CanFetchRemark.php | 2 +- .../Standards/Rules/CanListRemarks.php | 2 +- .../Standards/Rules/CanUpdateRemark.php | 2 +- app/Http/Resources/TransactionResource.php | 1 + app/Models/Transaction.php | 3 ++- .../elements/PaymentHistoryComponent.vue | 8 ++++++ .../elements/RefundConfirmationComponent.vue | 13 +++++++++- .../general/elements/RemarkComponent.vue | 25 ++++++++++++++++--- .../general/elements/RemarkListComponent.vue | 4 +-- .../forms/RemarkCommentFormComponent.vue | 5 +++- 15 files changed, 83 insertions(+), 17 deletions(-) create mode 100644 app/Classes/General/Interfaces/Remarkable.php diff --git a/app/Classes/General/Abstracts/AbstractRule.php b/app/Classes/General/Abstracts/AbstractRule.php index d2e0568b..8a9b6f86 100644 --- a/app/Classes/General/Abstracts/AbstractRule.php +++ b/app/Classes/General/Abstracts/AbstractRule.php @@ -27,7 +27,7 @@ abstract class AbstractRule public function passes(?DataTransferObject $object = null): bool { try { if(!$this->authorized()){ - throw new AccessForbiddenException('You don\'t have permission to preform this action'); + throw new AccessForbiddenException('You don\'t have permission to perform this action'); } $this->validators($object); @@ -36,7 +36,7 @@ abstract class AbstractRule return true; } catch(AccessForbiddenException $exception){ - throw new AccessForbiddenException('You don\'t have permission to preform this action'); + throw new AccessForbiddenException('You don\'t have permission to perform this action'); } catch(\Exception $exception){ throw new RequestValidationException($exception->getMessage()); } diff --git a/app/Classes/General/Interfaces/Remarkable.php b/app/Classes/General/Interfaces/Remarkable.php new file mode 100644 index 00000000..dcbd94ce --- /dev/null +++ b/app/Classes/General/Interfaces/Remarkable.php @@ -0,0 +1,13 @@ +fetchBookingQuotation = $fetchBookingQuotation; $this->fetchesTransaction = $fetchesTransaction; @@ -69,6 +75,7 @@ class CreateBookingRefundLogic extends AbstractControllerLogic $this->generatesTransactionBillNumber = $generatesTransactionBillNumber; $this->createsTransaction = $createsTransaction; $this->updateRefundTransactionStatusLogic = $updateRefundTransactionStatusLogic; + $this->createRemarkProcessor = $createRemarkProcessor; } /** @@ -132,6 +139,11 @@ class CreateBookingRefundLogic extends AbstractControllerLogic } + if($request->input('refundRemark')){ + $remarkObject = new RemarkObject($request->input('refundRemark'), Auth()->user()->id); + $this->createRemarkProcessor->execute($this->fetchesTransaction->execute(['id' => $refund_transaction->id]), $remarkObject); + } + return $this->resourceResponse(new TransactionResource($refund_transaction)); } diff --git a/app/Classes/Modules/Remarks/Standards/Rules/CanCreateRemark.php b/app/Classes/Modules/Remarks/Standards/Rules/CanCreateRemark.php index a7d2e5b1..fc51178f 100644 --- a/app/Classes/Modules/Remarks/Standards/Rules/CanCreateRemark.php +++ b/app/Classes/Modules/Remarks/Standards/Rules/CanCreateRemark.php @@ -26,7 +26,7 @@ class CanCreateRemark extends AbstractRule /** * @return bool */ - protected function authorized($object): bool + protected function authorized(): bool { // TODO Set Authorization rules return true; diff --git a/app/Classes/Modules/Remarks/Standards/Rules/CanDeleteRemark.php b/app/Classes/Modules/Remarks/Standards/Rules/CanDeleteRemark.php index 1c61ac9d..7ddece31 100644 --- a/app/Classes/Modules/Remarks/Standards/Rules/CanDeleteRemark.php +++ b/app/Classes/Modules/Remarks/Standards/Rules/CanDeleteRemark.php @@ -13,7 +13,7 @@ class CanDeleteRemark extends AbstractRule /** * @return bool */ - protected function authorized($object): bool + protected function authorized(): bool { // TODO Set Authorization rules return true; diff --git a/app/Classes/Modules/Remarks/Standards/Rules/CanFetchRemark.php b/app/Classes/Modules/Remarks/Standards/Rules/CanFetchRemark.php index 31ae8301..6642611c 100644 --- a/app/Classes/Modules/Remarks/Standards/Rules/CanFetchRemark.php +++ b/app/Classes/Modules/Remarks/Standards/Rules/CanFetchRemark.php @@ -13,7 +13,7 @@ class CanFetchRemark extends AbstractRule /** * @return bool */ - protected function authorized($object): bool + protected function authorized(): bool { // TODO Set Authorization rules return true; diff --git a/app/Classes/Modules/Remarks/Standards/Rules/CanListRemarks.php b/app/Classes/Modules/Remarks/Standards/Rules/CanListRemarks.php index b1372049..4911a53b 100644 --- a/app/Classes/Modules/Remarks/Standards/Rules/CanListRemarks.php +++ b/app/Classes/Modules/Remarks/Standards/Rules/CanListRemarks.php @@ -13,7 +13,7 @@ class CanListRemarks extends AbstractRule /** * @return bool */ - protected function authorized($object): bool + protected function authorized(): bool { // TODO Set Authorization rules return true; diff --git a/app/Classes/Modules/Remarks/Standards/Rules/CanUpdateRemark.php b/app/Classes/Modules/Remarks/Standards/Rules/CanUpdateRemark.php index f6fd6587..8a8c10e8 100644 --- a/app/Classes/Modules/Remarks/Standards/Rules/CanUpdateRemark.php +++ b/app/Classes/Modules/Remarks/Standards/Rules/CanUpdateRemark.php @@ -26,7 +26,7 @@ class CanUpdateRemark extends AbstractRule /** * @return bool */ - protected function authorized($object): bool + protected function authorized(): bool { // TODO Set Authorization rules return true; diff --git a/app/Http/Resources/TransactionResource.php b/app/Http/Resources/TransactionResource.php index b431c854..d259d777 100644 --- a/app/Http/Resources/TransactionResource.php +++ b/app/Http/Resources/TransactionResource.php @@ -53,6 +53,7 @@ class TransactionResource extends JsonResource 'value' => $days->gt(Carbon::now()) ? '+' : '-', 'duration' => $days->diff(Carbon::now())->format('%d'), ], + 'remarks' => RemarkResource::collection($this->remarks), 'redemption' => new VoucherRedemptionResource($this->voucherRedemption) ]; } diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index aba5decc..31b67e69 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Classes\General\Interfaces\Documentable; +use App\Classes\General\Interfaces\Remarkable; use App\Classes\General\Interfaces\Transactionable; use App\Classes\General\Interfaces\Voucherifiable; use App\Classes\General\Traits\LogData; @@ -21,7 +22,7 @@ use Staudenmeir\EloquentHasManyDeep\HasTableAlias; use App\Models\StatementTransactionOwner; -class Transaction extends AbstractModel implements Documentable, Transactionable, Voucherifiable +class Transaction extends AbstractModel implements Documentable, Transactionable, Voucherifiable, Remarkable { use HasTableAlias; use SoftDeletes; diff --git a/resources/assets/vue/components/bookings/elements/PaymentHistoryComponent.vue b/resources/assets/vue/components/bookings/elements/PaymentHistoryComponent.vue index 7679b807..ac77bc06 100644 --- a/resources/assets/vue/components/bookings/elements/PaymentHistoryComponent.vue +++ b/resources/assets/vue/components/bookings/elements/PaymentHistoryComponent.vue @@ -332,6 +332,14 @@
{{ refund.status === 1 ? 'Pending Verification' : refund.status === 2 ? 'Approved' : 'Rejected'}}
+
+ + + + + + +
Amount
diff --git a/resources/assets/vue/components/bookings/elements/RefundConfirmationComponent.vue b/resources/assets/vue/components/bookings/elements/RefundConfirmationComponent.vue index c87122a5..3470891a 100644 --- a/resources/assets/vue/components/bookings/elements/RefundConfirmationComponent.vue +++ b/resources/assets/vue/components/bookings/elements/RefundConfirmationComponent.vue @@ -35,6 +35,14 @@
+
+
+ + + + +
+
Paid Amount: {{ paidAmount }}
@@ -71,6 +79,7 @@ export default { data() { return { refundAmount: (Math.round((this.data.original_amount - this.data.refunded_amount + Number.EPSILON) * 100) / 100).toFixed(2), + refundRemark: '', refundMethod: { name: 'Fully Refund', status: false }, refundMethods: [ { name: 'Fully Refund', label: 'Full Refund' }, @@ -82,7 +91,8 @@ export default { return { refundAmount: { maxValue: maxValue(this.refundMaxValue) - } + }, + refundRemark: {} } }, computed: { @@ -96,6 +106,7 @@ export default { methods: { submitForm() { this.parameters.amount = this.refundAmount; + this.parameters.refundRemark = this.refundRemark; this.submit(this.route('api.booking.refund.create', this.data.booking.id, this.data.id), 'post', this.section, true, true) }, updateRefundType(refund) { diff --git a/resources/assets/vue/components/general/elements/RemarkComponent.vue b/resources/assets/vue/components/general/elements/RemarkComponent.vue index f2f9bf30..bd96c5e8 100644 --- a/resources/assets/vue/components/general/elements/RemarkComponent.vue +++ b/resources/assets/vue/components/general/elements/RemarkComponent.vue @@ -3,17 +3,34 @@
-
- +
+

Remarks

- +
+
+
+
+
+
+
+
+
+

Nothing To + Show Here Yet!

+
+
+
+
+
+
+
-
diff --git a/resources/assets/vue/components/general/elements/RemarkListComponent.vue b/resources/assets/vue/components/general/elements/RemarkListComponent.vue index da218ea9..85d8a6a8 100644 --- a/resources/assets/vue/components/general/elements/RemarkListComponent.vue +++ b/resources/assets/vue/components/general/elements/RemarkListComponent.vue @@ -41,12 +41,12 @@

{{item.content}}

- +
- +
diff --git a/resources/assets/vue/components/general/forms/RemarkCommentFormComponent.vue b/resources/assets/vue/components/general/forms/RemarkCommentFormComponent.vue index 7da26ca8..0bada956 100644 --- a/resources/assets/vue/components/general/forms/RemarkCommentFormComponent.vue +++ b/resources/assets/vue/components/general/forms/RemarkCommentFormComponent.vue @@ -1,5 +1,5 @@