From ca241c9f84e349e41c3d50b79b1ccd122696c023 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Mon, 6 Nov 2017 07:45:44 +0800 Subject: [PATCH] Add type_id attribute in subscriptions table restructure lang file --- app/Entities/Subscriptions/Subscription.php | 5 ++ app/Http/Controllers/SubscriptionsController.php | 8 ++- app/Http/Requests/Subscriptions/CreateRequest.php | 1 + database/factories/ModelFactory.php | 1 + ...016_07_08_182606_create_subscriptions_table.php | 7 ++- resources/lang/id/subscription.php | 68 ++++++++++++--------- resources/views/subscriptions/create.blade.php | 21 +++---- tests/Feature/ManageSubscriptionsTest.php | 69 +++++++++++----------- tests/Unit/Models/SubscriptionTest.php | 21 +++++-- 9 files changed, 118 insertions(+), 83 deletions(-) diff --git a/app/Entities/Subscriptions/Subscription.php b/app/Entities/Subscriptions/Subscription.php index 62968fb..5c0a52a 100755 --- a/app/Entities/Subscriptions/Subscription.php +++ b/app/Entities/Subscriptions/Subscription.php @@ -26,4 +26,9 @@ class Subscription extends Model { return $this->status_id ? trans('app.active') : trans('app.in_active'); } + + public function getTypeAttribute() + { + return $this->type_id == 1 ? trans('subscription.types.domain') : trans('subscription.types.hosting'); + } } diff --git a/app/Http/Controllers/SubscriptionsController.php b/app/Http/Controllers/SubscriptionsController.php index 524ed97..d9780b9 100755 --- a/app/Http/Controllers/SubscriptionsController.php +++ b/app/Http/Controllers/SubscriptionsController.php @@ -29,7 +29,13 @@ class SubscriptionsController extends Controller { $projects = $this->repo->getProjectsList(); $vendors = $this->repo->getVendorsList(); - return view('subscriptions.create', compact('projects', 'vendors')); + + $subscriptionTypes = [ + 1 => trans('subscription.types.domain'), + 2 => trans('subscription.types.hosting'), + ]; + + return view('subscriptions.create', compact('projects', 'vendors', 'subscriptionTypes')); } public function store(CreateRequest $request) diff --git a/app/Http/Requests/Subscriptions/CreateRequest.php b/app/Http/Requests/Subscriptions/CreateRequest.php index 0a5d550..e0a5bd0 100644 --- a/app/Http/Requests/Subscriptions/CreateRequest.php +++ b/app/Http/Requests/Subscriptions/CreateRequest.php @@ -34,6 +34,7 @@ class CreateRequest extends Request 'due_date' => 'required|date|date_format:Y-m-d', 'project_id' => 'required|numeric', 'vendor_id' => 'required|numeric', + 'type_id' => 'required|numeric', 'remark' => 'max:255', ]; } diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index fb82c06..13f1c24 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -27,6 +27,7 @@ $factory->define(Subscription::class, function (Faker\Generator $faker) { 'project_id' => function () { return factory(Project::class)->create()->id; }, + 'type_id' => 1, 'status_id' => 1, 'domain_name' => 'www.'.str_random(10).'.com', 'domain_price' => 125000, diff --git a/database/migrations/2016_07_08_182606_create_subscriptions_table.php b/database/migrations/2016_07_08_182606_create_subscriptions_table.php index 55a41f8..a04309b 100644 --- a/database/migrations/2016_07_08_182606_create_subscriptions_table.php +++ b/database/migrations/2016_07_08_182606_create_subscriptions_table.php @@ -14,11 +14,12 @@ class CreateSubscriptionsTable extends Migration { Schema::create('subscriptions', function (Blueprint $table) { $table->increments('id'); - $table->integer('project_id')->unsigned(); - $table->integer('vendor_id')->unsigned(); + $table->unsignedInteger('project_id'); + $table->unsignedInteger('vendor_id'); + $table->unsignedTinyInteger('type_id'); $table->string('domain_name', 60); $table->string('epp_code', 60)->nullable(); - $table->integer('domain_price')->unsigned(); + $table->unsignedInteger('domain_price'); $table->string('hosting_capacity', 60)->nullable(); $table->boolean('status_id')->unsigned()->default(1); $table->integer('hosting_price')->unsigned()->nullable(); diff --git a/resources/lang/id/subscription.php b/resources/lang/id/subscription.php index a22a99a..c5a2576 100644 --- a/resources/lang/id/subscription.php +++ b/resources/lang/id/subscription.php @@ -1,32 +1,44 @@ 'Langganan', - 'subscriptions' => 'Daftar Langganan', - 'domain_name' => 'Domain', - 'domain_price' => 'Harga Domain', - 'epp_code' => 'Kode EPP', + + // Labels + 'subscription' => 'Langganan', + 'subscriptions' => 'Daftar Langganan', + 'search' => 'Cari Langganan', + 'found' => 'Langganan ditemukan', + 'not_found' => 'Langganan tidak ditemukan', + 'empty' => 'Belum ada Langganan', + 'back_to_index' => 'Kembali ke daftar Langganan', + + // Actions + 'create' => 'Input Langganan Baru', + 'created' => 'Input Langganan baru telah berhasil.', + 'show' => 'Detail Langganan', + 'edit' => 'Edit Langganan', + 'update' => 'Update Langganan', + 'updated' => 'Update data Langganan telah berhasil.', + 'delete' => 'Hapus Langganan', + 'deleted' => 'Hapus data Langganan telah berhasil.', + 'undeleted' => 'Data Langganan gagal dihapus.', + + // Attributes + 'domain_name' => 'Domain', + 'domain_price' => 'Harga Domain', + 'epp_code' => 'Kode EPP', 'hosting_capacity' => 'Kapasitas Hosting', - 'hosting_price' => 'Harga Hosting', - 'start_date' => 'Mulai Sewa', - 'due_date' => 'Perpanjangan', - 'extension_price' => 'Biaya Perpanjangan', - 'create' => 'Input Langganan Baru', - 'created' => 'Input Langganan baru telah berhasil.', - 'show' => 'Detail Langganan', - 'edit' => 'Edit Langganan', - 'update' => 'Update Langganan', - 'updated' => 'Update data Langganan telah berhasil.', - 'delete' => 'Hapus Langganan', - 'deleted' => 'Hapus data Langganan telah berhasil.', - 'undeleted' => 'Data Langganan gagal dihapus.', - 'remark' => 'Catatan', - 'search' => 'Cari Langganan', - 'found' => 'Langganan ditemukan', - 'not_found' => 'Langganan tidak ditemukan', - 'empty' => 'Belum ada Langganan', - 'back_to_index' => 'Kembali ke daftar Langganan', - 'customer' => 'Customer', - 'project' => 'Project', - 'vendor' => 'Vendor', -]; \ No newline at end of file + 'hosting_price' => 'Harga Hosting', + 'start_date' => 'Mulai Sewa', + 'due_date' => 'Perpanjangan', + 'extension_price' => 'Biaya Perpanjangan', + 'project' => 'Project', + 'vendor' => 'Vendor', + 'remark' => 'Catatan', + 'type' => 'Jenis Langganan', + + // Types + 'types' => [ + 'domain' => 'Domain', + 'hosting' => 'Hosting', + ], +]; diff --git a/resources/views/subscriptions/create.blade.php b/resources/views/subscriptions/create.blade.php index 29ccbce..ddeb332 100755 --- a/resources/views/subscriptions/create.blade.php +++ b/resources/views/subscriptions/create.blade.php @@ -16,32 +16,33 @@
- {!! FormField::text('domain_name',['label'=> trans('subscription.domain_name')]) !!} + {!! FormField::text('domain_name', ['label' => trans('subscription.domain_name')]) !!}
- {!! FormField::price('domain_price',['label'=> trans('subscription.domain_price')]) !!} + {!! FormField::price('domain_price', ['label' => trans('subscription.domain_price')]) !!}
- {!! FormField::text('epp_code',['label'=> trans('subscription.epp_code')]) !!} + {!! FormField::text('epp_code', ['label' => trans('subscription.epp_code')]) !!}
- {!! FormField::text('hosting_capacity',['label'=> trans('subscription.hosting_capacity')]) !!} + {!! FormField::text('hosting_capacity', ['label' => trans('subscription.hosting_capacity')]) !!}
- {!! FormField::price('hosting_price',['label'=> trans('subscription.hosting_price')]) !!} + {!! FormField::price('hosting_price', ['label' => trans('subscription.hosting_price')]) !!}
- {!! FormField::text('start_date',['label'=> trans('subscription.start_date')]) !!} + {!! FormField::text('start_date', ['label' => trans('subscription.start_date')]) !!}
- {!! FormField::text('due_date',['label'=> trans('subscription.due_date')]) !!} + {!! FormField::text('due_date', ['label' => trans('subscription.due_date')]) !!}
- {!! FormField::select('project_id', $projects,['label'=> trans('subscription.project'),'value' => Request::get('project_id')]) !!} - {!! FormField::select('vendor_id', $vendors,['label'=> trans('subscription.vendor'),'value' => Request::get('vendor_id')]) !!} - {!! FormField::textarea('remark',['label'=> trans('subscription.remark')]) !!} + {!! FormField::select('project_id', $projects, ['label' => trans('subscription.project'), 'value' => Request::get('project_id')]) !!} + {!! FormField::select('vendor_id', $vendors, ['label' => trans('subscription.vendor'), 'value' => Request::get('vendor_id')]) !!} + {!! FormField::radios('type_id', $subscriptionTypes, ['label' => trans('subscription.type'), 'value' => Request::get('type_id')]) !!} + {!! FormField::textarea('remark', ['label' => trans('subscription.remark')]) !!}