From 8c2f109a1862a90b79732af8bad1d401f2e84277 Mon Sep 17 00:00:00 2001 From: mhmj Date: Wed, 17 Jul 2019 14:47:10 +0800 Subject: [PATCH 1/3] schedule-update-delete-backend --- app/Models/CustomerRelation.php | 18 ++++++ app/Models/Forwarder.php | 28 +++++++++ app/Models/LocationFees.php | 17 ++++++ app/Models/ServiceFees.php | 18 ++++++ ...19_07_12_155048_create_forwarder_table.php | 60 +++++++++++++++++++ ...7_12_155112_create_location_fees_table.php | 35 +++++++++++ ...07_12_155124_create_service_fees_table.php | 36 +++++++++++ ..._155143_create_customer_relation_table.php | 35 +++++++++++ 8 files changed, 247 insertions(+) create mode 100644 app/Models/CustomerRelation.php create mode 100644 app/Models/Forwarder.php create mode 100644 app/Models/LocationFees.php create mode 100644 app/Models/ServiceFees.php create mode 100644 database/migrations/2019_07_12_155048_create_forwarder_table.php create mode 100644 database/migrations/2019_07_12_155112_create_location_fees_table.php create mode 100644 database/migrations/2019_07_12_155124_create_service_fees_table.php create mode 100644 database/migrations/2019_07_12_155143_create_customer_relation_table.php diff --git a/app/Models/CustomerRelation.php b/app/Models/CustomerRelation.php new file mode 100644 index 0000000..6a13371 --- /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..922e80c --- /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..4236eb5 --- /dev/null +++ b/database/migrations/2019_07_12_155048_create_forwarder_table.php @@ -0,0 +1,60 @@ +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->float('shipping_rate'); + $table->integer('overdue_days')->nullable(); + $table->float('markup_percentage')->nullable(); + $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', + '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..fb47fac --- /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->float('rate')->nullable(); + $table->float('outstation_rate')->nullable(); + $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..8532b82 --- /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->string('type')->nullable(); + $table->string('description')->nullable(); + $table->float('cost')->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..09e21a3 --- /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->string('customer_rate')->nullable(); + $table->float('wave')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('customer_relation'); + } +} From 6c55f95229450252b769c5ddebb58ada3aa4310d Mon Sep 17 00:00:00 2001 From: mhmj Date: Thu, 18 Jul 2019 17:36:36 +0800 Subject: [PATCH 2/3] invoice-backend --- .../DeleteServiceFeesLogic.php | 36 ++++ .../UpdateCustomerRelationLogic.php | 38 +++++ .../UpdateFreightForwarderLogic.php | 39 +++++ .../UpdateServiceFeesLogic.php | 45 +++++ .../CustomerRelationObject.php | 70 ++++++++ .../FreightForwarderObject.php | 157 ++++++++++++++++++ .../DataTransferObjects/ServiceObject.php | 86 ++++++++++ .../Services/DeletesServiceFees.php | 33 ++++ .../Services/UpdatesCustomerRelation.php | 45 +++++ .../Services/UpdatesFreightForwarder.php | 41 +++++ .../Services/UpdatesServiceFees.php | 54 ++++++ .../DeleteServiceFeesController.php | 13 ++ .../UpdateCustomerRelationController.php | 13 ++ .../UpdateFreightForwarderController.php | 14 ++ .../UpdateServiceFeesController.php | 21 +++ app/Models/CustomerRelation.php | 2 +- app/Models/Forwarder.php | 2 +- ..._155143_create_customer_relation_table.php | 2 +- routes/api.php | 11 ++ 19 files changed, 719 insertions(+), 3 deletions(-) create mode 100644 app/Classes/Modules/ControllersLogic/FreightForwarder/DeleteServiceFeesLogic.php create mode 100644 app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateCustomerRelationLogic.php create mode 100644 app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateFreightForwarderLogic.php create mode 100644 app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateServiceFeesLogic.php create mode 100644 app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php create mode 100644 app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php create mode 100644 app/Classes/Modules/FreightForwarder/DataTransferObjects/ServiceObject.php create mode 100644 app/Classes/Modules/FreightForwarder/Services/DeletesServiceFees.php create mode 100644 app/Classes/Modules/FreightForwarder/Services/UpdatesCustomerRelation.php create mode 100644 app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php create mode 100644 app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php create mode 100644 app/Http/Controllers/FreightForwarder/DeleteServiceFeesController.php create mode 100644 app/Http/Controllers/FreightForwarder/UpdateCustomerRelationController.php create mode 100644 app/Http/Controllers/FreightForwarder/UpdateFreightForwarderController.php create mode 100644 app/Http/Controllers/FreightForwarder/UpdateServiceFeesController.php 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..2df4f86 --- /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')); + 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/FreightForwarder/DataTransferObjects/CustomerRelationObject.php b/app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php new file mode 100644 index 0000000..1e33e59 --- /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 float|null + */ + public function getWave(): ?float + { + 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..0c7b6b5 --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php @@ -0,0 +1,157 @@ +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; + } + + /** + * @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; + } + +} \ 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..58e0217 --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/DataTransferObjects/ServiceObject.php @@ -0,0 +1,86 @@ +type = $type; + $this->forwarderId = $forwarderId; + $this->name = $name; + $this->description = $description; + $this->cost = $cost; + } + + /** + * @return null|String + */ + public function getType(): ?string + { + 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..29296b9 --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php @@ -0,0 +1,41 @@ +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->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..976b1b9 --- /dev/null +++ b/app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php @@ -0,0 +1,54 @@ +repository = $repository; + } + + + public function execute(String $serviceId, 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/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/Models/CustomerRelation.php b/app/Models/CustomerRelation.php index 6a13371..0365401 100644 --- a/app/Models/CustomerRelation.php +++ b/app/Models/CustomerRelation.php @@ -7,7 +7,7 @@ class CustomerRelation extends AbstractModel protected $table = 'customer_relation'; protected $fillable = [ - 'forwarder_id', 'company_id', 'customer_rate' + 'forwarder_id', 'company_id', 'customer_rate', 'wave' ]; public function forwarder() diff --git a/app/Models/Forwarder.php b/app/Models/Forwarder.php index 922e80c..d168034 100644 --- a/app/Models/Forwarder.php +++ b/app/Models/Forwarder.php @@ -7,7 +7,7 @@ class Forwarder extends AbstractModel protected $table = 'forwarder'; protected $fillable = [ - 'name', 'email', 'street_one', 'street_two', 'city', 'state', 'post_code', 'country', 'shipping_rate' + 'name', 'email', 'street_one', 'street_two', 'city', 'state', 'post_code', 'country', 'shipping_rate','overdue_days','markup_percentage' ]; public function customerRelation() 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 index 09e21a3..aa258c2 100644 --- a/database/migrations/2019_07_12_155143_create_customer_relation_table.php +++ b/database/migrations/2019_07_12_155143_create_customer_relation_table.php @@ -17,7 +17,7 @@ class CreateCustomerRelationTable extends Migration $table->increments('id'); $table->integer('forwarder_id')->unsigned()->nullable(); $table->integer('company_id')->unsigned()->nullable(); - $table->string('customer_rate')->nullable(); + $table->float('customer_rate')->nullable(); $table->float('wave')->nullable(); $table->timestamps(); }); diff --git a/routes/api.php b/routes/api.php index bbb7047..d987c9d 100644 --- a/routes/api.php +++ b/routes/api.php @@ -160,4 +160,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 From 6c532dd73819ebbf5332002bd6cdc2ba3f1263d5 Mon Sep 17 00:00:00 2001 From: mhmj Date: Thu, 18 Jul 2019 22:25:16 +0800 Subject: [PATCH 3/3] invoice-backend --- .../UpdateFreightForwarderLogic.php | 2 +- .../CustomerRelationObject.php | 10 +++++----- .../FreightForwarderObject.php | 19 ++++++++++++++++++- .../DataTransferObjects/ServiceObject.php | 13 ++++++++----- .../Services/UpdatesFreightForwarder.php | 1 + .../Services/UpdatesServiceFees.php | 2 +- app/Models/Forwarder.php | 2 +- ...19_07_12_155048_create_forwarder_table.php | 8 +++++--- ...7_12_155112_create_location_fees_table.php | 4 ++-- ...07_12_155124_create_service_fees_table.php | 4 ++-- ..._155143_create_customer_relation_table.php | 4 ++-- 11 files changed, 46 insertions(+), 23 deletions(-) diff --git a/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateFreightForwarderLogic.php b/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateFreightForwarderLogic.php index 2df4f86..0bb4a49 100644 --- a/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateFreightForwarderLogic.php +++ b/app/Classes/Modules/ControllersLogic/FreightForwarder/UpdateFreightForwarderLogic.php @@ -27,7 +27,7 @@ class UpdateFreightForwarderLogic 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')); + $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); diff --git a/app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php b/app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php index 1e33e59..9585691 100644 --- a/app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php +++ b/app/Classes/Modules/FreightForwarder/DataTransferObjects/CustomerRelationObject.php @@ -14,7 +14,7 @@ class CustomerRelationObject /** @var float|null */ private $customer_rate; - /** @var float|null */ + /** @var boolean|null */ private $wave; /** @@ -22,9 +22,9 @@ class CustomerRelationObject * @param int|null $forwarderId * @param int|null $companyId * @param float|null $customer_rate - * @param float|null $wave + * @param bool|null $wave */ - public function __construct(?int $forwarderId = null, ?int $companyId = null, ?float $customer_rate = null, ?float $wave = null) + public function __construct(?int $forwarderId = null, ?int $companyId = null, ?float $customer_rate = null, ?bool $wave = null) { $this->forwarderId = $forwarderId; $this->companyId = $companyId; @@ -57,9 +57,9 @@ class CustomerRelationObject } /** - * @return float|null + * @return bool|null */ - public function getWave(): ?float + public function getWave(): ?bool { return $this->wave; } diff --git a/app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php b/app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php index 0c7b6b5..a5c4c77 100644 --- a/app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php +++ b/app/Classes/Modules/FreightForwarder/DataTransferObjects/FreightForwarderObject.php @@ -37,6 +37,9 @@ class FreightForwarderObject /** @var float|null */ private $markup_percentage; + /** @var float|null */ + private $minimum_cbm; + /** * FreightForwarderObject constructor. * @param null|string $name @@ -50,8 +53,9 @@ class FreightForwarderObject * @param float|null $shipping_rate * @param int|null $overdue_days * @param float|null $markup_percentage + * @param float|null $minimum_cbm */ - public function __construct(?string $name = null, ?string $email = null, ?string $street_one = null, ?string $street_two = null, ?string $city = null, ?string $state = null, ?string $post_code = null, ?string $country = null, ?float $shipping_rate = null, ?int $overdue_days = null, ?float $markup_percentage = null) + public function __construct(?string $name = null, ?string $email = null, ?string $street_one = null, ?string $street_two = null, ?string $city = null, ?string $state = null, ?string $post_code = null, ?string $country = null, ?float $shipping_rate = null, ?int $overdue_days = null, ?float $markup_percentage = null, ?float $minimum_cbm = null) { $this->name = $name; $this->email = $email; @@ -64,6 +68,7 @@ class FreightForwarderObject $this->shipping_rate = $shipping_rate; $this->overdue_days = $overdue_days; $this->markup_percentage = $markup_percentage; + $this->minimum_cbm = $minimum_cbm; } /** @@ -154,4 +159,16 @@ class FreightForwarderObject 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 index 58e0217..514ab43 100644 --- a/app/Classes/Modules/FreightForwarder/DataTransferObjects/ServiceObject.php +++ b/app/Classes/Modules/FreightForwarder/DataTransferObjects/ServiceObject.php @@ -11,7 +11,7 @@ namespace App\Classes\Modules\FreightForwarder\DataTransferObjects; class ServiceObject { - /** @var String|null */ + /** @var int|null */ private $type; /** @var int|null */ @@ -28,13 +28,13 @@ class ServiceObject /** * ServiceObject constructor. - * @param null|String $type + * @param null|int $type * @param int|null $forwarderId * @param null|String $name * @param null|String $description * @param float|null $cost */ - public function __construct(?string $type = null, ?int $forwarderId = null, ?string $name = null, ?string $description = null, ?float $cost = null) + public function __construct(?int $type = null, ?int $forwarderId = null, ?string $name = null, ?string $description = null, ?float $cost = null) { $this->type = $type; $this->forwarderId = $forwarderId; @@ -44,9 +44,9 @@ class ServiceObject } /** - * @return null|String + * @return null|int */ - public function getType(): ?string + public function getType(): ?int { return $this->type; } @@ -83,4 +83,7 @@ class ServiceObject return $this->cost; } + + + } \ No newline at end of file diff --git a/app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php b/app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php index 29296b9..f2184ed 100644 --- a/app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php +++ b/app/Classes/Modules/FreightForwarder/Services/UpdatesFreightForwarder.php @@ -30,6 +30,7 @@ class UpdatesFreightForwarder $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); diff --git a/app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php b/app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php index 976b1b9..7d382d4 100644 --- a/app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php +++ b/app/Classes/Modules/FreightForwarder/Services/UpdatesServiceFees.php @@ -30,7 +30,7 @@ class UpdatesServiceFees } - public function execute(String $serviceId, ServiceObject $serviceObject){ + public function execute(?String $serviceId = null, ServiceObject $serviceObject){ try{ $this->repository->updateOrCreate( [ diff --git a/app/Models/Forwarder.php b/app/Models/Forwarder.php index d168034..74827c7 100644 --- a/app/Models/Forwarder.php +++ b/app/Models/Forwarder.php @@ -7,7 +7,7 @@ class Forwarder extends AbstractModel protected $table = 'forwarder'; protected $fillable = [ - 'name', 'email', 'street_one', 'street_two', 'city', 'state', 'post_code', 'country', 'shipping_rate','overdue_days','markup_percentage' + 'name', 'email', 'street_one', 'street_two', 'city', 'state', 'post_code', 'country', 'shipping_rate','overdue_days','markup_percentage','minimum_cbm' ]; public function customerRelation() diff --git a/database/migrations/2019_07_12_155048_create_forwarder_table.php b/database/migrations/2019_07_12_155048_create_forwarder_table.php index 4236eb5..6c4ae0a 100644 --- a/database/migrations/2019_07_12_155048_create_forwarder_table.php +++ b/database/migrations/2019_07_12_155048_create_forwarder_table.php @@ -24,9 +24,10 @@ class CreateForwarderTable extends Migration $table->string('state', 50)->nullable(); $table->string('post_code', 10)->nullable(); $table->string('country')->nullable(); - $table->float('shipping_rate'); - $table->integer('overdue_days')->nullable(); - $table->float('markup_percentage')->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( @@ -42,6 +43,7 @@ class CreateForwarderTable extends Migration 'shipping_rate' => '300', 'overdue_days' => '0', 'markup_percentage' => '0', + 'minimum_cbm' =>'0.3', 'created_at' => \Carbon\Carbon::now(), 'updated_at' => \Carbon\Carbon::now() ] 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 index fb47fac..7dc46bd 100644 --- a/database/migrations/2019_07_12_155112_create_location_fees_table.php +++ b/database/migrations/2019_07_12_155112_create_location_fees_table.php @@ -17,8 +17,8 @@ class CreateLocationFeesTable extends Migration $table->increments('id'); $table->integer('forwarder_id')->unsigned()->nullable(); $table->string('state')->nullable(); - $table->float('rate')->nullable(); - $table->float('outstation_rate')->nullable(); + $table->decimal('rate', 7, 2)->default(0); + $table->decimal('outstation_rate', 7, 2)->default(0); $table->timestamps(); }); } 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 index 8532b82..ddd1477 100644 --- a/database/migrations/2019_07_12_155124_create_service_fees_table.php +++ b/database/migrations/2019_07_12_155124_create_service_fees_table.php @@ -16,9 +16,9 @@ class CreateServiceFeesTable extends Migration Schema::create('service_fees', function (Blueprint $table) { $table->increments('id'); $table->string('name')->nullable(); - $table->string('type')->nullable(); + $table->integer('type')->nullable(); $table->string('description')->nullable(); - $table->float('cost')->nullable(); + $table->decimal('cost', 7, 2)->nullable(); $table->integer('forwarder_id')->unsigned()->nullable(); $table->timestamps(); }); 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 index aa258c2..bb64077 100644 --- a/database/migrations/2019_07_12_155143_create_customer_relation_table.php +++ b/database/migrations/2019_07_12_155143_create_customer_relation_table.php @@ -17,8 +17,8 @@ class CreateCustomerRelationTable extends Migration $table->increments('id'); $table->integer('forwarder_id')->unsigned()->nullable(); $table->integer('company_id')->unsigned()->nullable(); - $table->float('customer_rate')->nullable(); - $table->float('wave')->nullable(); + $table->float('customer_rate')->default(0); + $table->boolean('wave')->default(0); $table->timestamps(); }); }