From 01ece0f55079ed4093e8511b78cba7881d48fb1e Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:37:37 +0800 Subject: [PATCH 1/9] Remove subscription repository class --- .../Subscriptions/SubscriptionsRepository.php | 52 ---------------------- app/Http/Controllers/SubscriptionsController.php | 41 ++++++++++------- 2 files changed, 24 insertions(+), 69 deletions(-) delete mode 100755 app/Entities/Subscriptions/SubscriptionsRepository.php diff --git a/app/Entities/Subscriptions/SubscriptionsRepository.php b/app/Entities/Subscriptions/SubscriptionsRepository.php deleted file mode 100755 index ec203d1..0000000 --- a/app/Entities/Subscriptions/SubscriptionsRepository.php +++ /dev/null @@ -1,52 +0,0 @@ -model->orderBy('status_id', 'desc') - ->orderBy('due_date') - ->where(function ($query) use ($q, $customerId) { - if ($customerId) { - $query->where('customer_id', $customerId); - } - - if ($q) { - $query->where('name', 'like', '%'.$q.'%'); - } - }) - ->with('customer', 'vendor') - ->paginate($this->_paginate); - } -} diff --git a/app/Http/Controllers/SubscriptionsController.php b/app/Http/Controllers/SubscriptionsController.php index 0d767cb..86cab15 100755 --- a/app/Http/Controllers/SubscriptionsController.php +++ b/app/Http/Controllers/SubscriptionsController.php @@ -5,7 +5,6 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Entities\Subscriptions\Type; use App\Entities\Subscriptions\Subscription; -use App\Entities\Subscriptions\SubscriptionsRepository; use App\Http\Requests\SubscriptionRequest as FormRequest; /** @@ -16,21 +15,6 @@ use App\Http\Requests\SubscriptionRequest as FormRequest; class SubscriptionsController extends Controller { /** - * @var \App\Entities\Subscriptions\SubscriptionsRepository - */ - private $repo; - - /** - * Create new Subscription Controller. - * - * @param \App\Entities\Subscriptions\SubscriptionsRepository $repo - */ - public function __construct(SubscriptionsRepository $repo) - { - $this->repo = $repo; - } - - /** * Show subscription list. * * @param \Illuminate\Http\Request $request @@ -38,7 +22,7 @@ class SubscriptionsController extends Controller */ public function index(Request $request) { - $subscriptions = $this->repo->getSubscriptions( + $subscriptions = $this->getSubscriptionListing( $request->get('q'), $request->get('vendor_id') ); @@ -156,4 +140,27 @@ class SubscriptionsController extends Controller { return trans('subscription.'.$pageType).' - '.$subscription->name.' - '.$subscription->customer->name; } + + /** + * Get subscrioption list. + * + * @param string $q + * @param int $customerId + * @return \Illuminate\Pagination\LengthAwarePaginator + */ + private function getSubscriptionListing($searchQuery, $customerId) + { + $subscriptionQuery = Subscription::orderBy('status_id', 'desc') + ->orderBy('due_date') + ->with('customer', 'vendor'); + + if ($searchQuery) { + $subscriptionQuery->where('name', 'like', '%'.$searchQuery.'%'); + } + if ($customerId) { + $subscriptionQuery->where('customer_id', $customerId); + } + + return $subscriptionQuery->paginate(25); + } } From 1fe700eb2e2bef7183523352597c7ea2c4779ba6 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:39:54 +0800 Subject: [PATCH 2/9] Adjust repo method call to parent controller --- app/Http/Controllers/Controller.php | 24 ++++++++++++++++++++++++ app/Http/Controllers/SubscriptionsController.php | 8 ++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 03e02a2..d693ffb 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -2,6 +2,8 @@ namespace App\Http\Controllers; +use App\Entities\Partners\Vendor; +use App\Entities\Projects\Project; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; @@ -10,4 +12,26 @@ use Illuminate\Foundation\Auth\Access\AuthorizesRequests; class Controller extends BaseController { use AuthorizesRequests, DispatchesJobs, ValidatesRequests; + + /** + * Get collection of projects. + * + * @return \Illuminate\Database\Eloquent\Collection + */ + public function getProjectsList() + { + return Project::orderBy('name')->pluck('name', 'id'); + } + + /** + * Get collection of vendors. + * + * @return \Illuminate\Database\Eloquent\Collection + */ + public function getVendorsList() + { + return Vendor::where('is_active', 1) + ->orderBy('name') + ->pluck('name', 'id'); + } } diff --git a/app/Http/Controllers/SubscriptionsController.php b/app/Http/Controllers/SubscriptionsController.php index 86cab15..3f83e9e 100755 --- a/app/Http/Controllers/SubscriptionsController.php +++ b/app/Http/Controllers/SubscriptionsController.php @@ -37,8 +37,8 @@ class SubscriptionsController extends Controller */ public function create() { - $projects = $this->repo->getProjectsList(); - $vendors = $this->repo->getVendorsList(); + $projects = $this->getProjectsList(); + $vendors = $this->getVendorsList(); return view('subscriptions.create', compact('projects', 'vendors')); } @@ -79,8 +79,8 @@ class SubscriptionsController extends Controller */ public function edit(Subscription $subscription) { - $projects = $this->repo->getProjectsList(); - $vendors = $this->repo->getVendorsList(); + $projects = $this->getProjectsList(); + $vendors = $this->getVendorsList(); $pageTitle = $this->getPageTitle('edit', $subscription); From 294caca5a7b29e5121448612fe22f4fcc01d8a7c Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:41:47 +0800 Subject: [PATCH 3/9] Move all getProjectsList method call to parent controller --- app/Entities/BaseRepository.php | 10 ---------- app/Http/Controllers/PaymentsController.php | 4 ++-- app/Http/Controllers/Projects/JobsController.php | 2 +- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/app/Entities/BaseRepository.php b/app/Entities/BaseRepository.php index 67895bd..c513d86 100755 --- a/app/Entities/BaseRepository.php +++ b/app/Entities/BaseRepository.php @@ -65,16 +65,6 @@ abstract class BaseRepository extends EloquentRepository } /** - * Get collection of projects. - * - * @return \Illuminate\Database\Eloquent\Collection - */ - public function getProjectsList() - { - return Project::orderBy('name')->pluck('name', 'id'); - } - - /** * Get Job by it's id. * * @param int $jobId diff --git a/app/Http/Controllers/PaymentsController.php b/app/Http/Controllers/PaymentsController.php index 7f26ab5..325932d 100755 --- a/app/Http/Controllers/PaymentsController.php +++ b/app/Http/Controllers/PaymentsController.php @@ -54,7 +54,7 @@ class PaymentsController extends Controller */ public function create() { - $projects = $this->repo->getProjectsList(); + $projects = $this->getProjectsList(); $partners = $this->repo->getCustomersAndVendorsList(); $project = Project::find(request('project_id')); @@ -94,7 +94,7 @@ class PaymentsController extends Controller */ public function edit(Payment $payment) { - $projects = $this->repo->getProjectsList(); + $projects = $this->getProjectsList(); if ($payment->partner_type == 'App\Entities\Users\User') { $partners = $this->repo->getWorkersList(); diff --git a/app/Http/Controllers/Projects/JobsController.php b/app/Http/Controllers/Projects/JobsController.php index 01256d8..27a8eb9 100755 --- a/app/Http/Controllers/Projects/JobsController.php +++ b/app/Http/Controllers/Projects/JobsController.php @@ -40,7 +40,7 @@ class JobsController extends Controller { $selectedProject = null; $workers = $this->repo->getWorkersList(); - $projects = $this->repo->getProjectsList(); + $projects = $this->getProjectsList(); if ($request->has('project_id')) { $selectedProject = Project::find($request->get('project_id')); From 7380f3f5a909e0298d037a493460a24e58d8075a Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:43:57 +0800 Subject: [PATCH 4/9] Move getVendorsList method call to parent controller --- app/Entities/BaseRepository.php | 12 ------------ app/Http/Controllers/PaymentsController.php | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/app/Entities/BaseRepository.php b/app/Entities/BaseRepository.php index c513d86..bc37764 100755 --- a/app/Entities/BaseRepository.php +++ b/app/Entities/BaseRepository.php @@ -53,18 +53,6 @@ abstract class BaseRepository extends EloquentRepository } /** - * Get collection of vendors. - * - * @return \Illuminate\Database\Eloquent\Collection - */ - public function getVendorsList() - { - return Vendor::where('is_active', 1) - ->orderBy('name') - ->pluck('name', 'id'); - } - - /** * Get Job by it's id. * * @param int $jobId diff --git a/app/Http/Controllers/PaymentsController.php b/app/Http/Controllers/PaymentsController.php index 325932d..1ad1c4e 100755 --- a/app/Http/Controllers/PaymentsController.php +++ b/app/Http/Controllers/PaymentsController.php @@ -101,7 +101,7 @@ class PaymentsController extends Controller } elseif ($payment->partner_type == 'App\Entities\Partners\Customer') { $partners = [__('customer.customer') => $this->repo->getCustomersList()]; } else { - $partners = [__('vendor.vendor') => $this->repo->getVendorsList()]; + $partners = [__('vendor.vendor') => $this->getVendorsList()]; } return view('payments.edit', compact('payment', 'projects', 'partners')); From 129adc6405fa0530308b859795c9f64aea091bac Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:45:47 +0800 Subject: [PATCH 5/9] Move getCustomersAndVendorsList method call to parent controller --- app/Entities/BaseRepository.php | 16 ---------------- app/Http/Controllers/Controller.php | 14 ++++++++++++++ app/Http/Controllers/PaymentsController.php | 2 +- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/app/Entities/BaseRepository.php b/app/Entities/BaseRepository.php index bc37764..860569c 100755 --- a/app/Entities/BaseRepository.php +++ b/app/Entities/BaseRepository.php @@ -4,7 +4,6 @@ namespace App\Entities; use App\Entities\Users\User; use App\Entities\Projects\Job; -use App\Entities\Partners\Vendor; use App\Entities\Projects\Project; use App\Entities\Partners\Customer; @@ -28,21 +27,6 @@ abstract class BaseRepository extends EloquentRepository } /** - * Get list of customers and vendors. - * - * @return array - */ - public function getCustomersAndVendorsList() - { - $partners = [ - __('customer.customer') => Customer::orderBy('name')->pluck('name', 'id')->all(), - __('vendor.vendor') => Vendor::orderBy('name')->pluck('name', 'id')->all(), - ]; - - return $partners; - } - - /** * Get collection of workers. * * @return \Illuminate\Database\Eloquent\Collection diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index d693ffb..597e461 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Entities\Partners\Vendor; use App\Entities\Projects\Project; +use App\Entities\Partners\Customer; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; @@ -34,4 +35,17 @@ class Controller extends BaseController ->orderBy('name') ->pluck('name', 'id'); } + + /** + * Get list of customers and vendors. + * + * @return array + */ + public function getCustomersAndVendorsList() + { + return [ + __('customer.customer') => Customer::orderBy('name')->pluck('name', 'id')->all(), + __('vendor.vendor') => Vendor::orderBy('name')->pluck('name', 'id')->all(), + ]; + } } diff --git a/app/Http/Controllers/PaymentsController.php b/app/Http/Controllers/PaymentsController.php index 1ad1c4e..6c1bc4a 100755 --- a/app/Http/Controllers/PaymentsController.php +++ b/app/Http/Controllers/PaymentsController.php @@ -55,7 +55,7 @@ class PaymentsController extends Controller public function create() { $projects = $this->getProjectsList(); - $partners = $this->repo->getCustomersAndVendorsList(); + $partners = $this->getCustomersAndVendorsList(); $project = Project::find(request('project_id')); return view('payments.create', compact('projects', 'partners', 'project')); From 04f3e2c10b3939b69a58d8989b284d9fc82f5d25 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:52:58 +0800 Subject: [PATCH 6/9] Change FormRequest approval method call --- app/Http/Controllers/SubscriptionsController.php | 7 ++-- app/Http/Requests/SubscriptionRequest.php | 43 +++++++++++++----------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/app/Http/Controllers/SubscriptionsController.php b/app/Http/Controllers/SubscriptionsController.php index 3f83e9e..7acd077 100755 --- a/app/Http/Controllers/SubscriptionsController.php +++ b/app/Http/Controllers/SubscriptionsController.php @@ -51,8 +51,7 @@ class SubscriptionsController extends Controller */ public function store(FormRequest $subscriptionCreateRequest) { - $subscriptionCreateRequest->approveFor(new Subscription()); - + $subscriptionCreateRequest->approveToCreate(new Subscription()); flash(trans('subscription.created'), 'success'); return redirect()->route('subscriptions.index'); @@ -96,8 +95,7 @@ class SubscriptionsController extends Controller */ public function update(FormRequest $subscriptionUpdateRequest, Subscription $subscription) { - $subscriptionUpdateRequest->approveFor($subscription); - + $subscriptionUpdateRequest->approveToUpdate($subscription); flash(trans('subscription.updated'), 'success'); return redirect()->route('subscriptions.edit', $subscription->id); @@ -113,7 +111,6 @@ class SubscriptionsController extends Controller public function destroy(FormRequest $subscriptionDeleteRequest, Subscription $subscription) { $subscriptionDeleteRequest->approveToDelete($subscription); - flash(trans('subscription.deleted'), 'success'); return redirect()->route('subscriptions.index'); diff --git a/app/Http/Requests/SubscriptionRequest.php b/app/Http/Requests/SubscriptionRequest.php index 8d0695c..848607a 100644 --- a/app/Http/Requests/SubscriptionRequest.php +++ b/app/Http/Requests/SubscriptionRequest.php @@ -79,28 +79,33 @@ class SubscriptionRequest extends Request ]; } - public function approveFor(Subscription $subscription) + public function approveToCreate(Subscription $subscription) { $project = Project::findOrFail($this->get('project_id')); - if ($subscription->exists) { - $subscriptionData = $this->except(['_method', '_token']); - $subscriptionData['customer_id'] = $project->customer_id; - - $subscription->update($subscriptionData); - } else { - $subscription->project_id = $project->id; - $subscription->vendor_id = $this->get('vendor_id'); - $subscription->customer_id = $project->customer_id; - $subscription->name = $this->get('name'); - $subscription->price = $this->get('price'); - $subscription->start_date = $this->get('start_date'); - $subscription->due_date = $this->get('due_date'); - $subscription->type_id = $this->get('type_id'); - $subscription->notes = $this->get('notes'); - - $subscription->save(); - } + $subscription->project_id = $project->id; + $subscription->vendor_id = $this->get('vendor_id'); + $subscription->customer_id = $project->customer_id; + $subscription->name = $this->get('name'); + $subscription->price = $this->get('price'); + $subscription->start_date = $this->get('start_date'); + $subscription->due_date = $this->get('due_date'); + $subscription->type_id = $this->get('type_id'); + $subscription->notes = $this->get('notes'); + + $subscription->save(); + + return $subscription; + } + + public function approveToUpdate(Subscription $subscription) + { + $project = Project::findOrFail($this->get('project_id')); + + $subscriptionData = $this->except(['_method', '_token']); + $subscriptionData['customer_id'] = $project->customer_id; + + $subscription->update($subscriptionData); return $subscription; } From 9ebe42590be837ab8df51f3c54c6eaeb9812b7e9 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:53:48 +0800 Subject: [PATCH 7/9] Update trans() to __() lang helper --- app/Http/Controllers/SubscriptionsController.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/SubscriptionsController.php b/app/Http/Controllers/SubscriptionsController.php index 7acd077..ae0b3eb 100755 --- a/app/Http/Controllers/SubscriptionsController.php +++ b/app/Http/Controllers/SubscriptionsController.php @@ -52,7 +52,7 @@ class SubscriptionsController extends Controller public function store(FormRequest $subscriptionCreateRequest) { $subscriptionCreateRequest->approveToCreate(new Subscription()); - flash(trans('subscription.created'), 'success'); + flash(__('subscription.created'), 'success'); return redirect()->route('subscriptions.index'); } @@ -96,7 +96,7 @@ class SubscriptionsController extends Controller public function update(FormRequest $subscriptionUpdateRequest, Subscription $subscription) { $subscriptionUpdateRequest->approveToUpdate($subscription); - flash(trans('subscription.updated'), 'success'); + flash(__('subscription.updated'), 'success'); return redirect()->route('subscriptions.edit', $subscription->id); } @@ -111,7 +111,7 @@ class SubscriptionsController extends Controller public function destroy(FormRequest $subscriptionDeleteRequest, Subscription $subscription) { $subscriptionDeleteRequest->approveToDelete($subscription); - flash(trans('subscription.deleted'), 'success'); + flash(__('subscription.deleted'), 'success'); return redirect()->route('subscriptions.index'); } @@ -135,13 +135,13 @@ class SubscriptionsController extends Controller */ private function getPageTitle($pageType, $subscription) { - return trans('subscription.'.$pageType).' - '.$subscription->name.' - '.$subscription->customer->name; + return __('subscription.'.$pageType).' - '.$subscription->name.' - '.$subscription->customer->name; } /** * Get subscrioption list. * - * @param string $q + * @param string $searchQuery * @param int $customerId * @return \Illuminate\Pagination\LengthAwarePaginator */ From 24309126fd2b5583de245b58a8ce684c2efd70d4 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:55:00 +0800 Subject: [PATCH 8/9] Fixing invalid subscription validation rules --- app/Http/Requests/SubscriptionRequest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Requests/SubscriptionRequest.php b/app/Http/Requests/SubscriptionRequest.php index 848607a..1b2316c 100644 --- a/app/Http/Requests/SubscriptionRequest.php +++ b/app/Http/Requests/SubscriptionRequest.php @@ -52,7 +52,7 @@ class SubscriptionRequest extends Request 'project_id' => 'required|numeric|exists:projects,id', 'vendor_id' => 'required|numeric|exists:vendors,id', 'type_id' => 'required|numeric', - 'remark' => 'max:255', + 'notes' => 'nullable|max:255', ]; } @@ -66,7 +66,7 @@ class SubscriptionRequest extends Request 'project_id' => 'required|numeric|exists:projects,id', 'vendor_id' => 'required|numeric|exists:vendors,id', 'type_id' => 'required|numeric', - 'remark' => 'max:255', + 'notes' => 'nullable|max:255', ]; } From 723fbaf9a4dad6fb3d45a18a63f164049947bcf8 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 16 Feb 2019 21:55:53 +0800 Subject: [PATCH 9/9] Update form request rules switch statement --- app/Http/Requests/SubscriptionRequest.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/Http/Requests/SubscriptionRequest.php b/app/Http/Requests/SubscriptionRequest.php index 1b2316c..dc2c293 100644 --- a/app/Http/Requests/SubscriptionRequest.php +++ b/app/Http/Requests/SubscriptionRequest.php @@ -25,10 +25,6 @@ class SubscriptionRequest extends Request public function rules() { switch ($this->method()) { - case 'POST': - return $this->getCreateRules(); - break; - case 'PATCH': return $this->getUpdateRules(); break; @@ -38,6 +34,7 @@ class SubscriptionRequest extends Request break; default: + return $this->getCreateRules(); break; } }