diff --git a/app/Classes/Modules/Companies/Services/ListsCompanyCompleteOrders.php b/app/Classes/Modules/Companies/Services/ListsCompanyCompleteOrders.php index 1513ee3..42d1948 100644 --- a/app/Classes/Modules/Companies/Services/ListsCompanyCompleteOrders.php +++ b/app/Classes/Modules/Companies/Services/ListsCompanyCompleteOrders.php @@ -26,7 +26,7 @@ class ListsCompanyCompleteOrders * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection * @throws CannotListCompanyOrderCategoryException */ - public function execute(int $id){ + public function execute(int $id){ try { /** @var Order $orders */ diff --git a/app/Classes/Modules/ControllersLogic/Orders/ListOrderLogic.php b/app/Classes/Modules/ControllersLogic/Orders/ListOrderLogic.php new file mode 100644 index 0000000..b7f9b45 --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/Orders/ListOrderLogic.php @@ -0,0 +1,34 @@ +ListOrder = $ListOrder; + } + + + public function execute(String $category){ + return $this->ListOrder->execute($category); + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/ControllersLogic/Orders/SearchOrderLogic.php b/app/Classes/Modules/ControllersLogic/Orders/SearchOrderLogic.php new file mode 100644 index 0000000..9b1138b --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/Orders/SearchOrderLogic.php @@ -0,0 +1,42 @@ +fetchCompanyOrderCategorySteps = $fetchCompanyOrderCategorySteps; + $this->searchesOrder = $searchesOrder; + } + + + public function execute(Request $request) + { + return $this->searchesOrder->execute($request, $request->input('status') ? $this->fetchCompanyOrderCategorySteps->execute($request->input('status')) : []); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Orders/Services/ListsOrder.php b/app/Classes/Modules/Orders/Services/ListsOrder.php new file mode 100644 index 0000000..c5a9c63 --- /dev/null +++ b/app/Classes/Modules/Orders/Services/ListsOrder.php @@ -0,0 +1,39 @@ +repository = $repository; + } + + + public function execute(String $category){ + + //$order = $this->repository->where('complete',1)->paginate(10); + + $category === 'complete' ? $order = $this->repository->where('complete',true)->paginate(10) : + $order = $this->repository->where('complete',false)->paginate(10); + return OrderResource::collection($order); + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Orders/Services/SearchesOrder.php b/app/Classes/Modules/Orders/Services/SearchesOrder.php new file mode 100644 index 0000000..fd257d8 --- /dev/null +++ b/app/Classes/Modules/Orders/Services/SearchesOrder.php @@ -0,0 +1,65 @@ +repository = $repository; + } + + + public function execute(Request $request,array $status) + { + + $order = $this->repository; + + if($request->input('marking') !== null) + { + $order = $order->where('marking','LIKE','%'.$request->input('marking').'%'); + } + + if($request->input('startDate') !== null) + { + $startDate = Carbon::createFromFormat('d-m-Y', $request->input('startDate'))->format('Y-m-d'); + $order = $order->where('created_at', '>=', $startDate); + } + + if($request->input('endDate') !== null) + { + $endDate = Carbon::createFromFormat('d-m-Y', $request->input('endDate'))->format('Y-m-d'); + $order = $order->where('created_at', '<=', $endDate); + } + + if(count($status)) + { + $order = $order->whereIn('current_step', $status); + } + + $order = $order->paginate(10); + return OrderResource::collection($order); + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Orders/ListOrderController.php b/app/Http/Controllers/Orders/ListOrderController.php new file mode 100644 index 0000000..98db3f8 --- /dev/null +++ b/app/Http/Controllers/Orders/ListOrderController.php @@ -0,0 +1,21 @@ +execute($category); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Orders/SearchOrderController.php b/app/Http/Controllers/Orders/SearchOrderController.php new file mode 100644 index 0000000..c95c2e7 --- /dev/null +++ b/app/Http/Controllers/Orders/SearchOrderController.php @@ -0,0 +1,22 @@ +execute($request); + } + +} \ No newline at end of file diff --git a/resources/assets/vue/app.js b/resources/assets/vue/app.js index 0e3e6a0..75e286e 100644 --- a/resources/assets/vue/app.js +++ b/resources/assets/vue/app.js @@ -20,6 +20,9 @@ Vue.component('slide-up-down', SlideUpDown); */ //general elements + +Vue.component('order-search-component', require('./components/common/OrdersSearchComponent.vue')); + Vue.component('loading-component', require('./components/common/LoadingComponent.vue')); Vue.component('pagination-component', require('./components/common/PaginationComponent.vue')); Vue.component('modal-component', require('./components/common/ModalComponent.vue')); @@ -34,6 +37,11 @@ Vue.component('select-component', require('./components/form_elements/SelectComp Vue.component('address-component', require('./components/form_elements/AddressComponent.vue')); //lists + +Vue.component('search-order-list-component',require('./components/order/lists/SearchOrdersComponent.vue')); + +Vue.component('invite-account-list-component',require('./components/account/lists/AccountsInviteListComponent.vue')); + Vue.component('accounts-list-component', require('./components/account/lists/AccountsListComponent.vue')); Vue.component('invite-account-list-component', require('./components/account/lists/AccountsInviteListComponent.vue')); @@ -49,6 +57,10 @@ Vue.component('orders-list-component', require('./components/order/lists/OrdersL //elements +Vue.component('search-order-component', require('./components/order/elements/SearchOrderComponent.vue')); + + +Vue.component('invite-account-component',require('./components/account/elements/AccountInviteComponent.vue')); Vue.component('account-component', require('./components/account/elements/AccountComponent.vue')); Vue.component('invite-account-component', require('./components/account/elements/AccountInviteComponent.vue')); @@ -62,6 +74,8 @@ Vue.component('warehouse-profile-component', require('./components/warehouse/ele Vue.component('warehouse-component', require('./components/warehouse/elements/WarehouseComponenet.vue')); Vue.component('warehouse-summary-component', require('./components/warehouse/elements/WarehouseSummaryComponenet.vue')); +Vue.component('order-page-component', require('./components/order/elements/OrdersPageComponent.vue')); + Vue.component('order-component', require('./components/order/elements/OrderComponenet.vue')); Vue.component('confirm-order-component', require('./components/order/elements/ConfirmOrderComponent.vue')); Vue.component('receive-step-component', require('./components/order/elements/ReceiveStepComponenet.vue')); diff --git a/resources/assets/vue/components/account/lists/AccountsListComponent.vue b/resources/assets/vue/components/account/lists/AccountsListComponent.vue index 5500fa2..014f66b 100644 --- a/resources/assets/vue/components/account/lists/AccountsListComponent.vue +++ b/resources/assets/vue/components/account/lists/AccountsListComponent.vue @@ -29,7 +29,7 @@ //turn on loading animation this.isLoading = true; - fetch(route('api.account.list') + '?page='+ page).then(response => response.json()) + fetch(route('api.account.invite.list') + '?page='+ page).then(response => response.json()) .then(response => { this.accounts = response.data; diff --git a/resources/assets/vue/components/order/elements/OrdersPageComponent.vue b/resources/assets/vue/components/order/elements/OrdersPageComponent.vue new file mode 100644 index 0000000..fcd8f0b --- /dev/null +++ b/resources/assets/vue/components/order/elements/OrdersPageComponent.vue @@ -0,0 +1,196 @@ + + \ No newline at end of file diff --git a/resources/assets/vue/components/order/lists/OrdersListComponenet.vue b/resources/assets/vue/components/order/lists/OrdersListComponenet.vue index 781d742..e1408e1 100644 --- a/resources/assets/vue/components/order/lists/OrdersListComponenet.vue +++ b/resources/assets/vue/components/order/lists/OrdersListComponenet.vue @@ -36,7 +36,7 @@ }, 'id': { type: String, - required: true + required: false }, 'category': { type: String, @@ -68,6 +68,10 @@ url = route('api.warehouse.order.list', {id: this.id, category: this.category}); } + if(this.type === 'forwarder'){ + url = route('api.order.list', {category: this.category}); + } + fetch(url + '?page='+ page) .then(response => response.json()) .then(response => { diff --git a/resources/views/pages/Orders/index.blade.php b/resources/views/pages/Orders/index.blade.php new file mode 100644 index 0000000..699c6b4 --- /dev/null +++ b/resources/views/pages/Orders/index.blade.php @@ -0,0 +1,5 @@ +@extends('layouts.base_portal') + +@section('inner_content') + +@endsection \ No newline at end of file diff --git a/resources/views/partials/general/menu.blade.php b/resources/views/partials/general/menu.blade.php index acdebb5..c97bf47 100644 --- a/resources/views/partials/general/menu.blade.php +++ b/resources/views/partials/general/menu.blade.php @@ -13,7 +13,7 @@
  • - +
    Orders Manage & Track diff --git a/routes/api.php b/routes/api.php index 7111abc..c184dce 100644 --- a/routes/api.php +++ b/routes/api.php @@ -19,6 +19,8 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function Route::group(['prefix' => 'account', 'as' => 'account.', 'namespace' => 'Account'], function () { Route::get('/list', 'ListUserController@list')->name('list'); Route::post('/create', 'RegisterAccountController@register')->name('create'); + Route::post('/update/{id}', 'UpdateUserController@update')->name('update'); + Route::group(['prefix' => 'invite', 'as' => 'invite.'], function () { Route::post('/invite', 'InviteUserController@invite')->name('create'); Route::get('/list/active', 'ListUserController@list')->name('list'); @@ -126,6 +128,9 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function Route::post('/{orderId}/shipping-arrangement', 'OrderController@orderShippingArrangement')->name('shipping.arrangement.create'); Route::post('/{orderId}/shipping-arrangement/reschedule', 'OrderController@rescheduleShipping')->name('shipping.arrangement.reschedule'); + Route::get('/list/{category}', 'ListOrderController@list')->name('list'); + + Route::post('/search','SearchOrderController@search')->name('search'); }); diff --git a/routes/web.php b/routes/web.php index ffcba5a..7cf9840 100644 --- a/routes/web.php +++ b/routes/web.php @@ -44,6 +44,10 @@ Route::group(['middleware' => ['secure', 'clearcache']], function (): void { Route::get('/order/profile', function(){ return view('pages.orders.profile'); })->name('order.profile'); + + Route::get('/order', function(){ + return view('pages.orders.index'); + })->name('order'); });