mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 04:24:12 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f690584953 | |||
| e14f8ca22e | |||
| 061d7fdc94 | |||
| 4274e84b59 |
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\ControllersLogic;
|
||||
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Orders\Services\CancelsOrder;
|
||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
||||
use App\Classes\Modules\Orders\Services\FetchOwnerCompanyConnection;
|
||||
use App\Classes\Modules\Orders\Services\UpdateOwnerReference;
|
||||
use App\Http\Resources\OrderResource;
|
||||
use App\Http\Resources\PackingListResource;
|
||||
use App\Models\CompanyConnection;
|
||||
use App\Models\Order;
|
||||
use App\Models\PackingList;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ChangeOrderOwnerLogic extends AbstractControllerLogic
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
protected function notification():array {
|
||||
return [
|
||||
'title' => 'Changed order owner',
|
||||
'message' => 'You have successfully changed the owner'
|
||||
];
|
||||
}
|
||||
|
||||
/** @var Marking $marking */
|
||||
private $marking;
|
||||
|
||||
/** @param UpdateOwnerReference $updateOwnerReference*/
|
||||
private $updateOwnerReference;
|
||||
private $fetchOwnerCompanyConnection;
|
||||
|
||||
public function __construct(UpdateOwnerReference $updateOwnerReference, FetchOwnerCompanyConnection $fetchOwnerCompanyConnection)
|
||||
{
|
||||
$this->updateOwnerReference = $updateOwnerReference;
|
||||
$this->fetchOwnerCompanyConnection = $fetchOwnerCompanyConnection;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return JsonResponse
|
||||
* @throws \App\Classes\Exceptions\MalformedRequestException
|
||||
*/
|
||||
protected function logic(Request $request): JsonResponse
|
||||
{
|
||||
$reference = $request->route('reference');
|
||||
|
||||
$packing = PackingList::where('reference', $reference)->get();
|
||||
|
||||
$companyConnection = $this->fetchOwnerCompanyConnection->execute($request->marking)->invitee->orders;
|
||||
|
||||
$order = $this->updateOwnerReference->execute($reference, $companyConnection);
|
||||
|
||||
return response()->json($packing,200);
|
||||
// return $this->resourceResponse(new PackingListResource($packing));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,6 +7,7 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
||||
use App\Classes\Modules\Orders\Standards\Rules\CanFetchOrder;
|
||||
use App\Http\Resources\BookingResource;
|
||||
use App\Http\Resources\OrderProfileResource;
|
||||
use App\Http\Resources\OrderResource;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -54,8 +55,16 @@ class FetchOrderLogic extends AbstractControllerLogic
|
||||
|
||||
$query = $this->fetchesOrder->execute(['reference' => $request->route('id'), 'with_packing_lists' => true]);
|
||||
|
||||
$filter_array = (array)json_decode(($request->input('filters')));
|
||||
|
||||
if (isset($filter_array['display_without_parcel'])) {
|
||||
|
||||
if ($filter_array['display_without_parcel']) {
|
||||
return $this->collectionResponse(OrderProfileResource::collection($query));
|
||||
}
|
||||
}
|
||||
return $this->resourceResponse(new OrderResource($query));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Orders\Services\ListsOrders;
|
||||
use App\Classes\Modules\Orders\Standards\Rules\CanListOrders;
|
||||
use App\Classes\ValueObjects\Constants\OrderType;
|
||||
use App\Http\Resources\OrderProfileResource;
|
||||
use App\Http\Resources\OrderResource;
|
||||
use ErrorException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
@@ -47,6 +48,14 @@ class ListOrdersLogic extends AbstractControllerLogic
|
||||
|
||||
$query = $this->listsOrders->execute(array_merge($this->listsOrders->deserializeFilters($request->input('filters')), ['with_parcels' => true, 'type_in' => [OrderType::SHARED_CONTAINER, OrderType::DEDICATED_CONTAINER]]));
|
||||
|
||||
$filter_array = (array)json_decode(($request->input('filters')));
|
||||
|
||||
if (isset($filter_array['display_without_parcel'])) {
|
||||
if ($filter_array['display_without_parcel']) {
|
||||
return $this->collectionResponse(OrderProfileResource::collection($query));
|
||||
}
|
||||
}
|
||||
|
||||
return $this->collectionResponse(OrderResource::collection($query));
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
|
||||
use App\Models\CompanyConnection;
|
||||
class FetchOwnerCompanyConnection extends AbstractUpdateRecord
|
||||
{
|
||||
public function execute(string $marking)
|
||||
{
|
||||
return CompanyConnection::Where('invitee_reference',$marking)->first();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\Services;
|
||||
|
||||
use App\Classes\General\Eloquent\AbstractUpdateRecord;
|
||||
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
|
||||
use App\Models\PackingList;
|
||||
|
||||
class UpdateOwnerReference extends AbstractUpdateRecord
|
||||
{
|
||||
public function execute(string $reference, Object $owner)
|
||||
{
|
||||
foreach($owner as $owner) {
|
||||
PackingList::where('reference',$reference)->update(['owner_id' => $owner->id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Orders;
|
||||
|
||||
use App\Classes\Modules\Orders\ControllersLogic\ChangeOrderOwnerLogic;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\CompanyConnection;
|
||||
use App\Models\PackingList;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ChangeOrderOwnerController extends Controller
|
||||
{
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param ChangeOrderOwnerLogic $changeOrderOwnerLogic
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(Request $request, ChangeOrderOwnerLogic $logic): JsonResponse
|
||||
{
|
||||
return $logic->execute($request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
||||
use App\Classes\ValueObjects\Constants\OrderRoleTypes;
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class OrderProfileResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'reference' => $this->reference,
|
||||
'identifier' => $this->id,
|
||||
'reference_contract' => (int) $this->type,
|
||||
'type' => (int) $this->type,
|
||||
'status' => (int) $this->status,
|
||||
'company_module' => new CompanyModuleResource($this->companyModule),
|
||||
'warehouse' => new CompanyModuleResource($this->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee),
|
||||
'address' => new AddressResource($this->addresses()->where('status', '=', ApprovalStatus::APPROVED)->first()),
|
||||
'address_change_request' => new AddressResource($this->addressesPendingVerification()->first()),
|
||||
'invoices' => $this->whenLoaded('packingLists', function() {
|
||||
return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->get());
|
||||
}),
|
||||
'remarks' => RemarkResource::collection($this->remarks),
|
||||
'created_at' => $this->created_at->format('d-m-Y')
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,7 @@ class OrderResource extends JsonResource
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'reference' => $this->reference,
|
||||
'identifier' => $this->id,
|
||||
'reference_contract' => (int) $this->type,
|
||||
'type' => (int) $this->type,
|
||||
'status' => (int) $this->status,
|
||||
|
||||
@@ -23,7 +23,7 @@ use PhpParser\Node\Expr\AssignOp\Mod;
|
||||
* Class CompanyModule
|
||||
* @package App\Models
|
||||
*
|
||||
* @property \App\Models\Company company_id
|
||||
* @property \App\Models\Company company_id
|
||||
* @property integer type
|
||||
* @property integer status
|
||||
*/
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<list-component v-show="!$store.getters.isShowing('createOrderForm')" section="cancelledOrderListSection" :endpoint="route('api.order.list')" :options="item ? {per_page: 12, status_in: [4, 5, 6], company_module_id: item.company_module.id, with_packing_lists: true} : {per_page: 30, status_in: [4, 5, 6], with_packing_lists: true}" :columns=3>
|
||||
<list-component v-show="!$store.getters.isShowing('createOrderForm')" section="cancelledOrderListSection" :endpoint="route('api.order.list')" :options="item ? {per_page: 12, status_in: [4, 5, 6], company_module_id: item.company_module.id, with_packing_lists: true} : {per_page: 30, status_in: [4, 5, 6], with_packing_lists: true, display_without_parcel:true}" :columns=3>
|
||||
<template slot="list" slot-scope="{data}">
|
||||
<order-component :data="data"></order-component>
|
||||
</template>
|
||||
@@ -234,4 +234,4 @@
|
||||
export default {
|
||||
mixins: [componentHandler]
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -12,6 +12,7 @@ Route::group(['prefix' => 'order', 'as' => 'order.', 'namespace' => 'Orders'], f
|
||||
Route::post('/address/change/request', 'RequestChangeOrderAddressController@request')->name('address.change.request');
|
||||
Route::post('/update/{id}','UpdateOrderController@update')->name('reference.update');
|
||||
Route::put('/address/{id}/status/{status}', 'ApproveChangeOrderAddressController@approve')->name('address.status.update');
|
||||
Route::put('/update-marking/{reference}', 'ChangeOrderOwnerController@update')->name('orders.update.marking');
|
||||
|
||||
Route::post('/create-warehouse-packing-list', 'CreateWarehousePackingListController@create')->name('create.warehouse.packing_list');
|
||||
Route::post('/create-shipping-packing-list', 'CreateShippingPackingListController@create')->name('create.shipping.packing_list');
|
||||
|
||||
Reference in New Issue
Block a user