diff --git a/app/Classes/Modules/Transactions/ControllersLogic/SuspendTransactionLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/SuspendTransactionLogic.php index e824547e..94ec6433 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/SuspendTransactionLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/SuspendTransactionLogic.php @@ -50,10 +50,10 @@ class SuspendTransactionLogic extends AbstractControllerLogic $transaction = $this->fetchesTransaction->execute(['id' => $request->route('id')]); - $this->updatesTransactionStatus->execute($transaction, ApprovalStatus::SUSPENDED); - - return $this->response([]); + $transaction = $this->updatesTransactionStatus->execute($transaction, ApprovalStatus::SUSPENDED); + return $this->resourceResponse(new TransactionResource($transaction)); + } diff --git a/app/Classes/Modules/Transactions/ControllersLogic/UpdateTransactionStatusLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/UpdateTransactionStatusLogic.php new file mode 100644 index 00000000..1f6085e4 --- /dev/null +++ b/app/Classes/Modules/Transactions/ControllersLogic/UpdateTransactionStatusLogic.php @@ -0,0 +1,66 @@ + 'Update Transaction Status', + 'message' => 'You have successfully updated the Transaction Status' + ]; + } + + /** @var FetchesTransaction */ + private $fetchesTransaction; + + /** @var UpdatesTransactionStatus */ + private $updatesTransactionStatus; + + + /** + * SuspendTransactionLogic constructor. + * @param FetchesTransaction $fetchesTransaction + * @param UpdatesTransactionStatus $updatesTransactionStatus + */ + public function __construct(FetchesTransaction $fetchesTransaction, UpdatesTransactionStatus $updatesTransactionStatus) + { + $this->fetchesTransaction = $fetchesTransaction; + $this->updatesTransactionStatus = $updatesTransactionStatus; + } + + + public function logic(Request $request) : JsonResponse + { + $approvalArray = [ + 'approve' => ApprovalStatus::APPROVED, + 'expire' => ApprovalStatus::EXPIRED, + ]; + + $approvalStatus = $approvalArray[$request->route('status')]; + + $transaction = $this->fetchesTransaction->execute(['id' => $request->route('id')]); + + $transaction = $this->updatesTransactionStatus->execute($transaction, $approvalStatus); + + return $this->resourceResponse(new TransactionResource($transaction)); + } + + + +} diff --git a/app/Http/Controllers/Transactions/UpdateTransactionStatusController.php b/app/Http/Controllers/Transactions/UpdateTransactionStatusController.php new file mode 100644 index 00000000..56ed9868 --- /dev/null +++ b/app/Http/Controllers/Transactions/UpdateTransactionStatusController.php @@ -0,0 +1,21 @@ +execute($request); + } +} diff --git a/app/Http/Resources/AddressResource.php b/app/Http/Resources/AddressResource.php index cfcd8389..70461cd6 100644 --- a/app/Http/Resources/AddressResource.php +++ b/app/Http/Resources/AddressResource.php @@ -21,11 +21,11 @@ class AddressResource extends JsonResource $centerPostcodeConstantObject = SegmentConstant::where('reference', SegmentConstants::CENTER_POSTCODE)->get(); $centerPostcodeConstant = $centerPostcodeConstantObject->isEmpty() ? [] : (array)$centerPostcodeConstantObject->first()->value; - $postcodeArea = in_array($this->postcode, $centerPostcodeConstant) ? 'CENTER_POSTCODE' : null; + $postcodeArea = in_array((String)$this->postcode, $centerPostcodeConstant) ? 'CENTER_POSTCODE' : null; $outstationPostcodeConstantObject = SegmentConstant::where('reference', SegmentConstants::OUTSTATION_POSTCODE)->get(); $outstationPostcodeConstant = $outstationPostcodeConstantObject->isEmpty() ? [] : (array)$outstationPostcodeConstantObject->first()->value; - in_array($this->postcode, $outstationPostcodeConstant) ? $postcodeArea = 'OUTSTATION_POSTCODE' : null; + in_array((String)$this->postcode, $outstationPostcodeConstant) ? $postcodeArea = 'OUTSTATION_POSTCODE' : null; return [ 'id' => $this->id, diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php index bf8d8a41..cbdaeccb 100644 --- a/app/Http/Resources/OrderResource.php +++ b/app/Http/Resources/OrderResource.php @@ -46,7 +46,7 @@ class OrderResource extends JsonResource 'received_packages' => PackingListResource::collection($this->packingLists()->where('type', PackingListType::WAREHOUSE_RECEIVE_LIST)->whereHas('packages')->get()), ]; }), - 'invoices' => TransactionResource::collection($this->transactions), + 'invoices' => TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->get()), 'remarks' => RemarkResource::collection($this->remarks), 'created_at' => $this->created_at->format('d-m-Y') ]; diff --git a/app/Http/Resources/TransactionResource.php b/app/Http/Resources/TransactionResource.php index 27840ad8..70f3c7dd 100644 --- a/app/Http/Resources/TransactionResource.php +++ b/app/Http/Resources/TransactionResource.php @@ -47,6 +47,7 @@ class TransactionResource extends JsonResource ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::COMPLETED, ApprovalStatus::REJECTED]) ->get() ), + 'remarks' => RemarkResource::collection($this->remarks), 'expires_on' => Carbon::parse($this->expires_on)->format('d-m-Y h:s:i'), 'updated_at' => Carbon::parse($this->update_at)->format('d-m-Y') ]; diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index d2432941..a0055fb1 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\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\TransactionType; @@ -13,7 +14,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\Relations\MorphTo; -class Transaction extends AbstractModel implements Documentable, Transactionable +class Transaction extends AbstractModel implements Documentable, Transactionable, Remarkable { protected $table = 'transactions'; @@ -122,4 +123,12 @@ class Transaction extends AbstractModel implements Documentable, Transactionable { return $query->whereIn('status', [ApprovalStatus::COMPLETED]); } + + /** + * @return MorphMany + */ + public function remarks(): morphMany + { + return $this->morphMany(Remark::class, 'owner'); + } } diff --git a/resources/assets/vue/components/announcements/elements/AnnouncementListComponent.vue b/resources/assets/vue/components/announcements/elements/AnnouncementListComponent.vue index 84de4bfb..0e935c50 100644 --- a/resources/assets/vue/components/announcements/elements/AnnouncementListComponent.vue +++ b/resources/assets/vue/components/announcements/elements/AnnouncementListComponent.vue @@ -22,12 +22,11 @@
Billing Question
+Status
Amount
Billing Question
{{ data }}
-Total
diff --git a/resources/views/pages/paymentAndBilling.blade.php b/resources/views/pages/paymentAndBilling.blade.php index 59acb35b..b6f5bda4 100644 --- a/resources/views/pages/paymentAndBilling.blade.php +++ b/resources/views/pages/paymentAndBilling.blade.php @@ -1,10 +1,7 @@ @extends('layouts.base_portal') @section('inner_content') -