diff --git a/app/Classes/Modules/ControllersLogic/FreightForwarder/DeleteServiceFeesLogic.php b/app/Classes/Modules/ControllersLogic/FreightForwarder/DeleteServiceFeesLogic.php new file mode 100644 index 0000000..21a4c2b --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/FreightForwarder/DeleteServiceFeesLogic.php @@ -0,0 +1,36 @@ +deletesServiceFees = $deletesServiceFees; + } + + public function execute(String $serviceId){ + + try{ + return $this->deletesServiceFees->execute($serviceId); + return new JsonResponse([],HttpStatus::REQUEST_ACCEPTED); + + }catch(\Exception $exception){ + + throw new InternalServerErrorException("Failed to delete Customer Relation because{$exception->getMessage()}"); + } + } +} \ No newline at end of file diff --git a/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateCustomerRelationLogic.php b/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateCustomerRelationLogic.php new file mode 100644 index 0000000..c2d417a --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateCustomerRelationLogic.php @@ -0,0 +1,38 @@ +updatesCustomerRelation = $updatesCustomerRelation; + } + + public function execute(Request $request){ + + try{ + + $object = new CustomerRelationObject($request->input('forwarder_id'), $request->input('company_id'), $request->input('customer_rate'), $request->input('wave')); + return $this->updatesCustomerRelation->execute($object); + return new JsonResponse([], HttpStatus::REQUEST_ACCEPTED); + + }catch(\Exception $exception){ + throw new InternalServerErrorException("Failed to update Customer Relation because{$exception->getMessage()}"); + } + } +} \ No newline at end of file diff --git a/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateFreightForwarderLogic.php b/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateFreightForwarderLogic.php new file mode 100644 index 0000000..0bb4a49 --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateFreightForwarderLogic.php @@ -0,0 +1,39 @@ +updatesFreightForwarder = $updatesFreightForwarder; + } + + + public function execute(String $forwarderId, Request $request){ + + try{ + $object = new FreightForwarderObject(null, null, null, null, null, null,null, null, $request->input('shipping_rate'), $request->input('overdue_days'), $request->input('markup_percentage'), $request->input('minimum_cbm')); + return $this->updatesFreightForwarder->execute($forwarderId, $object); + return new JsonResponse([],HttpStatus::REQUEST_ACCEPTED); + + }catch(\Exception $exception){ + + throw new InternalServerErrorException("Failed to update Freight Forwarder because{$exception->getMessage()}"); + } + } +} \ No newline at end of file diff --git a/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateServiceFeesLogic.php b/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateServiceFeesLogic.php new file mode 100644 index 0000000..08d9bd9 --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateServiceFeesLogic.php @@ -0,0 +1,45 @@ +updatesServiceFees = $updatesServiceFees; + } + + + public function execute(Request $request){ + try{ + $object = new ServiceObject($request->input('type'), $request->input('forwarder_id'), $request->input('name'), $request->input('description'), $request->input('cost')); + return $this->updatesServiceFees->execute($request->input('id'), $object); + return new JsonResponse([],HttpStatus::REQUEST_ACCEPTED); + + }catch (\Exception $exception){ + throw new InternalServerErrorException("Failed to update Service Fees because{$exception->getMessage()}"); + } + + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/ControllersLogic/Orders/DeleteOrderScheduleLogic.php b/app/Classes/Modules/ControllersLogic/Orders/DeleteOrderScheduleLogic.php new file mode 100644 index 0000000..04e33c3 --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/Orders/DeleteOrderScheduleLogic.php @@ -0,0 +1,43 @@ +deletesOrderSchedule = $deletesOrderSchedule; + } + + + public function execute(String $scheduleId){ + + try{ + return $this->deletesOrderSchedule->execute($scheduleId); + return new JsonResponse([],HttpStatus::REQUEST_ACCEPTED); + + }catch(\Exception $exception){ + throw new InternalServerErrorException("Failed to delete schedule because {$exception->getMessage()}"); + } + + } +} \ No newline at end of file diff --git a/app/Classes/Modules/ControllersLogic/Orders/UpdateOrderScheduleLogic.php b/app/Classes/Modules/ControllersLogic/Orders/UpdateOrderScheduleLogic.php new file mode 100644 index 0000000..77da48e --- /dev/null +++ b/app/Classes/Modules/ControllersLogic/Orders/UpdateOrderScheduleLogic.php @@ -0,0 +1,48 @@ +updateOrderSchedule = $updateOrderSchedule; + } + + public function execute(String $scheduleId, Request $request){ + + try{ + $scheduleObject = new ScheduleObject($request->input('ETA'), $request->input('ETD'), + $request->input('type'), $request->input('issue_remark')); + + return $this->updateOrderSchedule->execute($scheduleId,$scheduleObject); + return new JsonResponse([],HttpStatus::REQUEST_ACCEPTED); + + }catch(\Exception $exception){ + throw new InternalServerErrorException("Failed to update schedule because {$exception->getMessage()}"); + } + + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php b/app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php new file mode 100644 index 0000000..9585691 --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php @@ -0,0 +1,70 @@ +forwarderId = $forwarderId; + $this->companyId = $companyId; + $this->customer_rate = $customer_rate; + $this->wave = $wave; + } + + /** + * @return int|null + */ + public function getForwarderId(): ?int + { + return $this->forwarderId; + } + + /** + * @return int|null + */ + public function getCompanyId(): ?int + { + return $this->companyId; + } + + /** + * @return float|null + */ + public function getCustomerRate(): ?float + { + return $this->customer_rate; + } + + /** + * @return bool|null + */ + public function getWave(): ?bool + { + return $this->wave; + } + + + + +} \ No newline at end of file diff --git a/app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php b/app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php new file mode 100644 index 0000000..a5c4c77 --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php @@ -0,0 +1,174 @@ +name = $name; + $this->email = $email; + $this->street_one = $street_one; + $this->street_two = $street_two; + $this->city = $city; + $this->state = $state; + $this->post_code = $post_code; + $this->country = $country; + $this->shipping_rate = $shipping_rate; + $this->overdue_days = $overdue_days; + $this->markup_percentage = $markup_percentage; + $this->minimum_cbm = $minimum_cbm; + } + + /** + * @return null|string + */ + public function getName(): ?string + { + return $this->name; + } + + /** + * @return null|string + */ + public function getEmail(): ?string + { + return $this->email; + } + + /** + * @return null|string + */ + public function getStreetOne(): ?string + { + return $this->street_one; + } + + /** + * @return null|string + */ + public function getStreetTwo(): ?string + { + return $this->street_two; + } + + /** + * @return null|string + */ + public function getCity(): ?string + { + return $this->city; + } + + /** + * @return null|string + */ + public function getState(): ?string + { + return $this->state; + } + + /** + * @return null|string + */ + public function getPostCode(): ?string + { + return $this->post_code; + } + + /** + * @return null|string + */ + public function getCountry(): ?string + { + return $this->country; + } + + /** + * @return float|null + */ + public function getShippingRate(): ?float + { + return $this->shipping_rate; + } + + /** + * @return int|null + */ + public function getOverdueDays(): ?int + { + return $this->overdue_days; + } + + /** + * @return float|null + */ + public function getMarkupPercentage(): ?float + { + return $this->markup_percentage; + } + + /** + * @return float|null + */ + public function getMinimumCbm(): ?float + { + return $this->minimum_cbm; + } + + + + + +} \ No newline at end of file diff --git a/app/Classes/Modules/FreightForwarder/DataTransferObjects/ServiceObject.php b/app/Classes/Modules/FreightForwarder/DataTransferObjects/ServiceObject.php new file mode 100644 index 0000000..514ab43 --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/DataTransferObjects/ServiceObject.php @@ -0,0 +1,89 @@ +type = $type; + $this->forwarderId = $forwarderId; + $this->name = $name; + $this->description = $description; + $this->cost = $cost; + } + + /** + * @return null|int + */ + public function getType(): ?int + { + return $this->type; + } + + /** + * @return int|null + */ + public function getForwarderId(): ?int + { + return $this->forwarderId; + } + + /** + * @return null|String + */ + public function getName(): ?string + { + return $this->name; + } + + /** + * @return null|String + */ + public function getDescription(): ?string + { + return $this->description; + } + + /** + * @return float|null + */ + public function getCost(): ?float + { + return $this->cost; + } + + + + +} \ No newline at end of file diff --git a/app/Classes/Modules/FreightForwarder/Services/DeletesServiceFees.php b/app/Classes/Modules/FreightForwarder/Services/DeletesServiceFees.php new file mode 100644 index 0000000..b65c40f --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/Services/DeletesServiceFees.php @@ -0,0 +1,33 @@ +repository = $repository; + } + + public function execute(String $serviceId){ + try{ + + $repository = $this->repository->findOrFail($serviceId); + $repository->delete(); + + }catch(\Exception $exception){ + throw new InternalServerErrorException("Failed to delete Customer Relation because{$exception->getMessage()}"); + } + } +} \ No newline at end of file diff --git a/app/Classes/Modules/FreightForwarder/Services/UpdatesCustomerRelation.php b/app/Classes/Modules/FreightForwarder/Services/UpdatesCustomerRelation.php new file mode 100644 index 0000000..5de1e5b --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/Services/UpdatesCustomerRelation.php @@ -0,0 +1,45 @@ +repository = $repository; + } + + public function execute(CustomerRelationObject $customerRelationObject){ + + try{ + $this->repository->updateOrCreate( + [ + 'forwarder_id' => $customerRelationObject->getForwarderId(), + 'company_id' => $customerRelationObject->getCompanyId(), + ], + [ + 'customer_rate' => $customerRelationObject->getCustomerRate(), + 'wave' => $customerRelationObject->getWave(), + ]); + + return new JsonResponse([],HttpStatus::OK); + + }catch(\Exception $exception){ + throw new InternalServerErrorException("Failed to update Customer Relation because {$exception->getMessage()}"); + } + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php b/app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php new file mode 100644 index 0000000..f2184ed --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php @@ -0,0 +1,42 @@ +repository = $repository; + } + + + public function execute(String $forwarderId, FreightForwarderObject $forwarderObject){ + + try{ + $repository = $this->repository->findOrFail($forwarderId); + $repository->shipping_rate = $forwarderObject->getShippingRate(); + $repository->overdue_days = $forwarderObject->getOverdueDays(); + $repository->markup_percentage = $forwarderObject->getMarkupPercentage(); + $repository->minimum_cbm = $forwarderObject->getMinimumCbm(); + $repository->save(); + return new JsonResponse([],HttpStatus::OK); + + }catch(\Exception $exception){ + throw new InternalServerErrorException("Failed to update Freight Forwarder because {$exception->getMessage()}"); + } + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php b/app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php new file mode 100644 index 0000000..7d382d4 --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php @@ -0,0 +1,54 @@ +repository = $repository; + } + + + public function execute(?String $serviceId = null, ServiceObject $serviceObject){ + try{ + $this->repository->updateOrCreate( + [ + 'id' => $serviceId, + ], + [ + 'name' => $serviceObject->getName(), + 'type' => $serviceObject->getType(), + 'description' => $serviceObject->getDescription(), + 'cost' => $serviceObject->getCost(), + 'forwarder_id' => $serviceObject->getForwarderId(), + ]); + + return new JsonResponse([],HttpStatus::OK); + + }catch(\Exception $exception){ + + throw new InternalServerErrorException("Failed to update Service Fees because {$exception->getMessage()}"); + } + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Orders/Services/DeletesOrderSchedule.php b/app/Classes/Modules/Orders/Services/DeletesOrderSchedule.php new file mode 100644 index 0000000..c7dd7f1 --- /dev/null +++ b/app/Classes/Modules/Orders/Services/DeletesOrderSchedule.php @@ -0,0 +1,44 @@ +repository = $repository; + } + + public function execute(String $scheduleId){ + + try{ + $schedule = $this->repository->findOrfail($scheduleId); + $schedule -> delete(); + return new JsonResponse([],HttpStatus::OK); + + }catch(\Exception $exception){ + throw new InternalServerErrorException("Failed to delete schedule because {$exception->getMessage()}"); + } + + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/Orders/Services/UpdateOrderSchedule.php b/app/Classes/Modules/Orders/Services/UpdateOrderSchedule.php new file mode 100644 index 0000000..353cbae --- /dev/null +++ b/app/Classes/Modules/Orders/Services/UpdateOrderSchedule.php @@ -0,0 +1,50 @@ +repository = $repository; + } + + public function execute(String $scheduleId, ScheduleObject $schedule){ + try{ + + $repository = $this->repository->findOrFail($scheduleId); + $repository->ETD = $schedule->getETD(); + $repository->ETA = $schedule->getETA(); + $repository->issue_remark = $schedule->getIssue(); + $repository->save(); + return new JsonResponse([],HttpStatus::OK); + + }catch(\Exception $exception){ + throw new InternalServerErrorException("Failed to update schedule because {$exception->getMessage()}"); + } + + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/FreightForwarder/DeleteServiceFeesController.php b/app/Http/Controllers/FreightForwarder/DeleteServiceFeesController.php new file mode 100644 index 0000000..6584407 --- /dev/null +++ b/app/Http/Controllers/FreightForwarder/DeleteServiceFeesController.php @@ -0,0 +1,13 @@ +execute($serviceId); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/FreightForwarder/UpdateCustomerRelationController.php b/app/Http/Controllers/FreightForwarder/UpdateCustomerRelationController.php new file mode 100644 index 0000000..40426fe --- /dev/null +++ b/app/Http/Controllers/FreightForwarder/UpdateCustomerRelationController.php @@ -0,0 +1,13 @@ +execute($request); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/FreightForwarder/UpdateFreightForwarderController.php b/app/Http/Controllers/FreightForwarder/UpdateFreightForwarderController.php new file mode 100644 index 0000000..78511e1 --- /dev/null +++ b/app/Http/Controllers/FreightForwarder/UpdateFreightForwarderController.php @@ -0,0 +1,14 @@ +execute($forwarderId, $request); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/FreightForwarder/UpdateServiceFeesController.php b/app/Http/Controllers/FreightForwarder/UpdateServiceFeesController.php new file mode 100644 index 0000000..9bc6940 --- /dev/null +++ b/app/Http/Controllers/FreightForwarder/UpdateServiceFeesController.php @@ -0,0 +1,21 @@ +execute($request); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Orders/DeleteOrderScheduleController.php b/app/Http/Controllers/Orders/DeleteOrderScheduleController.php new file mode 100644 index 0000000..1d4a84b --- /dev/null +++ b/app/Http/Controllers/Orders/DeleteOrderScheduleController.php @@ -0,0 +1,20 @@ +execute($scheduleId); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Orders/UpdateOrderScheduleController.php b/app/Http/Controllers/Orders/UpdateOrderScheduleController.php new file mode 100644 index 0000000..4791529 --- /dev/null +++ b/app/Http/Controllers/Orders/UpdateOrderScheduleController.php @@ -0,0 +1,21 @@ +execute($scheduleId,$request); + } + +} \ No newline at end of file diff --git a/app/Http/Resources/Schedule.php b/app/Http/Resources/Schedule.php index f343b2e..2957282 100644 --- a/app/Http/Resources/Schedule.php +++ b/app/Http/Resources/Schedule.php @@ -16,6 +16,7 @@ class Schedule extends JsonResource public function toArray($request) { return [ + 'id' => (int)$this->id, 'ETD' => carbon::parse($this->ETD)->format('d-m-Y'), 'ETA' => carbon::parse($this->ETA)->format('d-m-Y'), 'status' => (int)$this->status, diff --git a/app/Models/CustomerRelation.php b/app/Models/CustomerRelation.php new file mode 100644 index 0000000..0365401 --- /dev/null +++ b/app/Models/CustomerRelation.php @@ -0,0 +1,18 @@ +belongsTo(Forwarder::class, 'forwarder_id'); + } + +} diff --git a/app/Models/Forwarder.php b/app/Models/Forwarder.php new file mode 100644 index 0000000..74827c7 --- /dev/null +++ b/app/Models/Forwarder.php @@ -0,0 +1,28 @@ +hasMany(CustomerRelation::class, 'forwarder_id'); + } + + public function locationFees() + { + return $this->hasMany(LocationFees::class, 'forwarder_id'); + } + + public function serviceFees() + { + return $this->hasMany(ServiceFees::class, 'forwarder_id'); + } + +} diff --git a/app/Models/LocationFees.php b/app/Models/LocationFees.php new file mode 100644 index 0000000..a334f97 --- /dev/null +++ b/app/Models/LocationFees.php @@ -0,0 +1,17 @@ +belongsTo(Forwarder::class, 'forwarder_id'); + } +} \ No newline at end of file diff --git a/app/Models/ServiceFees.php b/app/Models/ServiceFees.php new file mode 100644 index 0000000..af3c5f4 --- /dev/null +++ b/app/Models/ServiceFees.php @@ -0,0 +1,18 @@ +belongsTo(Forwarder::class, 'forwarder_id'); + } + +} \ No newline at end of file diff --git a/database/migrations/2019_07_12_155048_create_forwarder_table.php b/database/migrations/2019_07_12_155048_create_forwarder_table.php new file mode 100644 index 0000000..6c4ae0a --- /dev/null +++ b/database/migrations/2019_07_12_155048_create_forwarder_table.php @@ -0,0 +1,62 @@ +increments('id'); + $table->string('name', 50); + $table->string('email', 80)->nullable(); + $table->string('street_one', 80)->nullable(); + $table->string('street_two', 80)->nullable(); + $table->string('city', 50)->nullable(); + $table->string('state', 50)->nullable(); + $table->string('post_code', 10)->nullable(); + $table->string('country')->nullable(); + $table->decimal('shipping_rate', 7, 2)->default(0); + $table->integer('overdue_days')->default(0); + $table->decimal('markup_percentage', 7, 2)->default(0); + $table->decimal('minimum_cbm', 5, 2)->default(0); + $table->timestamps(); + }); + DB::table('forwarder')->insert( + [ + 'name' => 'CIEF Worldwide SDN BHD', + 'email' => 'infociefworldwide@gmail.com', + 'street_one' => 'Malaysian Global Innovation & Creativity Centre(MaGIC)', + 'street_two' => ' CWS Block, 3730, Persiaran Apec', + 'city' => 'Cyberjaya', + 'state' => 'Selangor', + 'post_code' => '63000', + 'country' => 'Malaysia', + 'shipping_rate' => '300', + 'overdue_days' => '0', + 'markup_percentage' => '0', + 'minimum_cbm' =>'0.3', + 'created_at' => \Carbon\Carbon::now(), + 'updated_at' => \Carbon\Carbon::now() + ] + ); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('forwarder'); + } +} diff --git a/database/migrations/2019_07_12_155112_create_location_fees_table.php b/database/migrations/2019_07_12_155112_create_location_fees_table.php new file mode 100644 index 0000000..7dc46bd --- /dev/null +++ b/database/migrations/2019_07_12_155112_create_location_fees_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('forwarder_id')->unsigned()->nullable(); + $table->string('state')->nullable(); + $table->decimal('rate', 7, 2)->default(0); + $table->decimal('outstation_rate', 7, 2)->default(0); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('location_fees'); + } +} diff --git a/database/migrations/2019_07_12_155124_create_service_fees_table.php b/database/migrations/2019_07_12_155124_create_service_fees_table.php new file mode 100644 index 0000000..ddd1477 --- /dev/null +++ b/database/migrations/2019_07_12_155124_create_service_fees_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->string('name')->nullable(); + $table->integer('type')->nullable(); + $table->string('description')->nullable(); + $table->decimal('cost', 7, 2)->nullable(); + $table->integer('forwarder_id')->unsigned()->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('service_fees'); + } +} diff --git a/database/migrations/2019_07_12_155143_create_customer_relation_table.php b/database/migrations/2019_07_12_155143_create_customer_relation_table.php new file mode 100644 index 0000000..bb64077 --- /dev/null +++ b/database/migrations/2019_07_12_155143_create_customer_relation_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('forwarder_id')->unsigned()->nullable(); + $table->integer('company_id')->unsigned()->nullable(); + $table->float('customer_rate')->default(0); + $table->boolean('wave')->default(0); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('customer_relation'); + } +} diff --git a/routes/api.php b/routes/api.php index 57bc99e..461366e 100644 --- a/routes/api.php +++ b/routes/api.php @@ -138,12 +138,13 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function Route::post('/{orderId}/delivery-arrangement', 'UpdateDeliveryArrangementController@update')->name('delivery.update'); }); - - Route::post('/{orderId}/address','UpdateOrderAddressController@update')->name('address.order.update'); Route::post('/{orderId}/update-receive-note', 'UpdateReceiveNoteController@update')->name('receive.update'); + Route::post('/{scheduleId}/update-order-schedule','UpdateOrderScheduleController@update')->name('schedule.update'); + + Route::delete('/{scheduleId}/delete-order-schedule','DeleteOrderScheduleController@delete')->name('schedule.delete'); }); // Service Routes @@ -160,4 +161,15 @@ Route::group(['middleware' => 'api', 'prefix' => 'v1', 'as' => 'api.'], function Route::get('/order/status', 'OrdersStatusReportController@index')->name('order.status'); }); + // Freight Forwarder Routes + Route::group(['prefix' => 'forwarder', 'as' => 'forwarder.', 'namespace' => 'FreightForwarder'], function () { + + // Update Freight Forwarder Settings + Route::put('/{forwarderId}/update', 'UpdateFreightForwarderController@update')->name('update.freight.forwarder'); + Route::put('/update/customer-relation', 'UpdateCustomerRelationController@update')->name('update.customer.relation'); + Route::put('/update/services', 'UpdateServiceFeesController@update')->name('update.service.fees'); + Route::delete('/{serviceId}/delete/services', 'DeleteServiceFeesController@delete')->name('delete.service.fees'); + + }); + }); \ No newline at end of file