diff --git a/app/Entities/BaseRepository.php b/app/Entities/BaseRepository.php index 200fca9..9375b45 100755 --- a/app/Entities/BaseRepository.php +++ b/app/Entities/BaseRepository.php @@ -2,6 +2,7 @@ namespace App\Entities; +use App\Entities\Projects\Project; use App\Entities\Users\User; /** @@ -18,4 +19,9 @@ abstract class BaseRepository extends EloquentRepository { { return User::orderBy('name')->hasRoles(['worker'])->lists('name','id'); } + + public function getProjectsList() + { + return Project::orderBy('name')->lists('name','id'); + } } \ No newline at end of file diff --git a/app/Http/Controllers/PaymentsController.php b/app/Http/Controllers/PaymentsController.php index 32e2204..d811ece 100755 --- a/app/Http/Controllers/PaymentsController.php +++ b/app/Http/Controllers/PaymentsController.php @@ -27,14 +27,16 @@ class PaymentsController extends Controller { public function create() { - return view('payments.create'); + $projects = $this->repo->getProjectsList(); + $customers = $this->repo->getCustomersList(); + return view('payments.create',compact('projects','customers')); } public function store(CreateRequest $req) { $payment = $this->repo->create($req->except('_token')); flash()->success(trans('payment.created')); - return redirect()->route('payments.edit', $payment->id); + return redirect()->route('payments.show', $payment->id); } public function show($paymentId) @@ -46,8 +48,9 @@ class PaymentsController extends Controller { public function edit($paymentId) { $payment = $this->repo->requireById($paymentId); + $projects = $this->repo->getProjectsList(); $customers = $this->repo->getCustomersList(); - return view('payments.edit',compact('payment','customers')); + return view('payments.edit',compact('payment','projects','customers')); } public function update(UpdateRequest $req, $paymentId) diff --git a/app/Http/Requests/Payments/CreateRequest.php b/app/Http/Requests/Payments/CreateRequest.php index ca6e1bc..d4bec7a 100644 --- a/app/Http/Requests/Payments/CreateRequest.php +++ b/app/Http/Requests/Payments/CreateRequest.php @@ -1,6 +1,6 @@ user()->can('manage_masters'); + return auth()->user()->can('manage_payments'); } /** @@ -24,8 +24,12 @@ class CreateRequest extends Request { public function rules() { return [ - 'name' => 'required|max:60|unique:masters,name', - 'description' => 'max:255' + 'date' => 'required|date|date_format:Y-m-d', + 'type' => 'required|numeric', + 'amount' => 'required|numeric', + 'project_id' => 'required|numeric', + 'customer_id' => 'required|numeric', + 'description' => 'required|max:255', ]; } diff --git a/app/Http/Requests/Payments/DeleteRequest.php b/app/Http/Requests/Payments/DeleteRequest.php index b8d264c..1462f11 100644 --- a/app/Http/Requests/Payments/DeleteRequest.php +++ b/app/Http/Requests/Payments/DeleteRequest.php @@ -1,6 +1,6 @@ user()->can('manage_masters'); + return auth()->user()->can('manage_payments'); } /** @@ -24,7 +24,7 @@ class DeleteRequest extends Request { public function rules() { return [ - 'master_id' => 'required' + 'payment_id' => 'required' ]; } diff --git a/app/Http/Requests/Payments/UpdateRequest.php b/app/Http/Requests/Payments/UpdateRequest.php index 57274d8..67b99a2 100644 --- a/app/Http/Requests/Payments/UpdateRequest.php +++ b/app/Http/Requests/Payments/UpdateRequest.php @@ -24,11 +24,12 @@ class UpdateRequest extends Request { public function rules() { return [ + 'date' => 'required|date|date_format:Y-m-d', 'type' => 'required|numeric', 'amount' => 'required|numeric', - 'date' => 'required|date|date_format:Y-m-d', + 'project_id' => 'required|numeric', 'customer_id' => 'required|numeric', - 'description' => 'required|max:255' + 'description' => 'required|max:255', ]; } diff --git a/app/Services/FormField.php b/app/Services/FormField.php index ff4726e..65c27d9 100644 --- a/app/Services/FormField.php +++ b/app/Services/FormField.php @@ -101,7 +101,10 @@ class FormField if (isset($options['disabled']) && $options['disabled'] == true) { $fieldParams += ['disabled']; } if (isset($options['required']) && $options['required'] == true) { $fieldParams += ['required']; } if (isset($options['multiple']) && $options['multiple'] == true) { $fieldParams += ['multiple', 'name' => $name . '[]']; } - if (isset($options['placeholder'])) { $fieldParams += ['placeholder' => $options['placeholder']]; } + if (isset($options['placeholder'])) + $fieldParams += ['placeholder' => $options['placeholder']]; + else + $fieldParams += ['placeholder' => '-- Pilih ' . str_split_ucwords(str_replace('_id', '', $name)) . ' --']; $htmlForm .= $this->setFormFieldLabel($name, $options); diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index b87ea0d..83bcdb6 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -1,5 +1,6 @@ define(Project::class, function (Faker\Generator $faker) { 'customer_id' => $customer->id ]; }); + +$factory->define(Payment::class, function (Faker\Generator $faker) { + $projectId = factory(Project::class)->create()->id; + + $customer = factory(User::class)->create(); + $customer->assignRole('customer'); + $customerId = $customer->id; + + return [ + 'project_id' => $projectId, + 'amount' => rand(1,5) * 500000, + 'type' => rand(0,1), + 'date' => $faker->dateTimeBetween('-1 year', '-1 month')->format('Y-m-d'), + 'description' => $faker->paragraph, + 'customer_id' => $customerId, + ]; +}); \ No newline at end of file diff --git a/resources/views/payments/create.blade.php b/resources/views/payments/create.blade.php index 5f41e78..3f77680 100755 --- a/resources/views/payments/create.blade.php +++ b/resources/views/payments/create.blade.php @@ -9,9 +9,17 @@
| {{ trans('app.name') }} | {{ $master->name }} |
|---|---|
| {{ trans('app.description') }} | {{ $master->description }} |
| {{ trans('payment.date') }} | {{ $payment->date }} |
| {{ trans('payment.amount') }} | {{ formatRp($payment->amount) }} |
| {{ trans('payment.description') }} | {{ $payment->description }} |