From 697c02ac8acf8d44590c12496fd4526427fd7db2 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Thu, 6 Apr 2023 19:22:40 +0800 Subject: [PATCH] delete packing list by package id --- .../DeletePackingListByPackageIdLogic.php | 81 +++++++++++++++++++ ...DeletePackingListByPackageIdController.php | 20 +++++ .../orders/elements/ParcelComponent.vue | 3 +- .../forms/ChangeCustomerNameFormComponent.vue | 58 ++++++------- .../sections/OrderProfileSectionComponent.vue | 2 +- .../forms/DeleteParcelFormComponent.vue | 2 +- routes/packing_list.php | 1 + 7 files changed, 134 insertions(+), 33 deletions(-) create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListByPackageIdLogic.php create mode 100644 app/Http/Controllers/PackingLists/DeletePackingListByPackageIdController.php diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListByPackageIdLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListByPackageIdLogic.php new file mode 100644 index 00000000..a221c501 --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/DeletePackingListByPackageIdLogic.php @@ -0,0 +1,81 @@ + 'Deleted PackingList', + 'message' => 'You have successfully deleted a PackingList' + ]; + } + + + /** @var CanDeletePackingList */ + private $canDeletePackingList; + + /** @var DeletesPackingList */ + private $deletesPackingList; + + /** @var FetchesPackingList */ + private $fetchesPackingList; + + /** @var FetchesPackage */ + private $fetchesPackage; + + /** + * DeletePackingListByPackageIdLogic constructor. + * @param CanDeletePackingList $canDeletePackingList + * @param DeletesPackingList $deletesPackingList + * @param FetchesPackingList $fetchesPackingList + * @param FetchesPackage $fetchesPackage + */ + public function __construct(CanDeletePackingList $canDeletePackingList, DeletesPackingList $deletesPackingList, FetchesPackingList $fetchesPackingList, FetchesPackage $fetchesPackage) + { + $this->canDeletePackingList = $canDeletePackingList; + $this->deletesPackingList = $deletesPackingList; + $this->fetchesPackingList = $fetchesPackingList; + $this->fetchesPackage = $fetchesPackage; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + $this->canDeletePackingList->passes(); + + $package = $this->fetchesPackage->execute(['id' => $request->route('id')]); + + $packingList = $package->packingList; + + $packingList = PackingList::where('reference', $packingList->reference)->get(); + + $childPackingList = PackingList::where('owner_type', PackingList::class)->whereIn('owner_id', $packingList->pluck('id'))->get(); + + $packingList->each->delete(); + + $childPackingList->each->delete(); + + return $this->response([]); + } + +} diff --git a/app/Http/Controllers/PackingLists/DeletePackingListByPackageIdController.php b/app/Http/Controllers/PackingLists/DeletePackingListByPackageIdController.php new file mode 100644 index 00000000..53008334 --- /dev/null +++ b/app/Http/Controllers/PackingLists/DeletePackingListByPackageIdController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index 25e591a6..cef41560 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -43,10 +43,9 @@ - + - diff --git a/resources/assets/vue/components/orders/forms/ChangeCustomerNameFormComponent.vue b/resources/assets/vue/components/orders/forms/ChangeCustomerNameFormComponent.vue index 2fe80cc7..d16d5aed 100644 --- a/resources/assets/vue/components/orders/forms/ChangeCustomerNameFormComponent.vue +++ b/resources/assets/vue/components/orders/forms/ChangeCustomerNameFormComponent.vue @@ -34,37 +34,37 @@ \ No newline at end of file diff --git a/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue b/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue index a9a2b816..53e5bcc6 100644 --- a/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue +++ b/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue @@ -301,7 +301,7 @@
- +
diff --git a/resources/assets/vue/components/paymentsBilling/forms/DeleteParcelFormComponent.vue b/resources/assets/vue/components/paymentsBilling/forms/DeleteParcelFormComponent.vue index cede8f9f..bd3b62f5 100644 --- a/resources/assets/vue/components/paymentsBilling/forms/DeleteParcelFormComponent.vue +++ b/resources/assets/vue/components/paymentsBilling/forms/DeleteParcelFormComponent.vue @@ -14,7 +14,7 @@
Cancel
-
Confirm
+
Confirm
diff --git a/routes/packing_list.php b/routes/packing_list.php index fe889ddb..888155c4 100644 --- a/routes/packing_list.php +++ b/routes/packing_list.php @@ -11,6 +11,7 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' = Route::put('/update/{id}', 'UpdatePackingListController@update')->name('update'); Route::put('/status/{id}/update/{status}', 'UpdatePackingListStatusController@update')->name('status.update'); Route::delete('/delete/{id}', 'DeletePackingListController@delete')->name('delete'); + Route::delete('/delete-by-package-id/{id}', 'DeletePackingListByPackageIdController@delete')->name('delete.by_package_id'); Route::put('/reschedule/{id}', 'ReschedulePackingListController@reschedule')->name('reschedule'); Route::put('/update-dispatch-date/{id}', 'UpdateDispatchDatePackingListController@update')->name('update_dispatch_date');