delete packing list by package id

This commit is contained in:
edmondlang
2023-04-06 19:22:40 +08:00
parent 3dd9dfe361
commit 697c02ac8a
7 changed files with 134 additions and 33 deletions
@@ -0,0 +1,81 @@
<?php
namespace App\Classes\Modules\PackingLists\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\PackingLists\Services\DeletesPackingList;
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
use App\Classes\Modules\PackingLists\Services\Packages\FetchesPackage;
use App\Classes\Modules\PackingLists\Standards\Rules\CanDeletePackingList;
use App\Classes\ValueObjects\Constants\PackingListType;
use App\Models\PackingList;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DeletePackingListByPackageIdLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => '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([]);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\PackingLists;
use App\Classes\Modules\PackingLists\ControllersLogic\DeletePackingListByPackageIdLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class DeletePackingListByPackageIdController
{
/**
* @param Request $request
* @param DeletePackingListLogic $logic
* @return JsonResponse
*/
public function delete(Request $request, DeletePackingListByPackageIdLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
@@ -43,10 +43,9 @@
<i class="fa fa-close"></i>
</span>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="deleteParcel">
<delete-Parcel-form-component :data="item" :section="section"></delete-Parcel-form-component>
<delete-parcel-form-component :data="item" :section="section"></delete-parcel-form-component>
</modal-component>
</div>
</div>
</div>
</div>
@@ -34,37 +34,37 @@
</div>
</template>
<script>
import modalFormHandler from '../../../general/mixins/modalFormHandler';
import { required, minLength } from "vuelidate/lib/validators";
import modalFormHandler from '../../../general/mixins/modalFormHandler';
import { required, minLength } from "vuelidate/lib/validators";
export default {
data() {
return {
export default {
data() {
return {
parameters: {
id: this.data.id,
name: this.data.name,
debtor: this.data.debtor,
reference: this.data.reference,
type: this.data.type,
}
};
},
validations: {
parameters: {
id: this.data.id,
name: this.data.name,
debtor: this.data.debtor,
reference: this.data.reference,
type: this.data.type,
name: {
required,
// minLength: minLength(8)
},
debtor: {
},
}
};
},
validations: {
parameters: {
name: {
required,
// minLength: minLength(8)
},
debtor: {
},
}
},
methods: {
submitForm() {
this.submit(this.route('api.company.update.nameAndDebtor', this.data.id), 'put', this.section, true, true)
}
},
mixins: [modalFormHandler]
}
},
methods: {
submitForm() {
this.submit(this.route('api.company.update.nameAndDebtor', this.data.id), 'put', this.section, true, true)
}
},
mixins: [modalFormHandler]
}
</script>
@@ -301,7 +301,7 @@
</div>
<div class="row">
<div class="col">
<parcel-component section=" orderProfileParcelSection" v-for="parcel in order.parcels.received_packages.flatMap(packing_list => packing_list.packages)" :data="parcel" :key="parcel.id"></parcel-component>
<parcel-component :section="section" v-for="parcel in order.parcels.received_packages.flatMap(packing_list => packing_list.packages)" :data="parcel" :key="parcel.id"></parcel-component>
</div>
</div>
</div>
@@ -14,7 +14,7 @@
<div data-dismiss="modal" class="btn btn-sm btn-default bg-master-lighter btn-block b-rad-none">Cancel</div>
</div>
<div class="col p-l-5">
<div class="btn btn-danger w-100 btn-sm" @click="submit(route('api.packing_list.delete', data.id), 'delete', section, true, true)">Confirm</div>
<div class="btn btn-danger w-100 btn-sm" @click="submit(route('api.packing_list.delete.by_package_id', data.id), 'delete', section, true, true)">Confirm</div>
</div>
</div>
</div>
+1
View File
@@ -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');