Browse Source

Remove type_id column from partners table

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
d36e26ded8
  1. 7
      app/Entities/Partners/Partner.php
  2. 1
      app/Entities/Projects/ProjectsRepository.php
  3. 16
      app/Http/Controllers/Partners/PartnersController.php
  4. 23
      database/factories/PartnerFactory.php
  5. 1
      database/migrations/2017_10_26_134455_create_partners_table.php
  6. 1
      resources/views/partners/create.blade.php
  7. 1
      resources/views/partners/edit.blade.php
  8. 2
      resources/views/partners/index.blade.php
  9. 4
      tests/Feature/ManagePartnersTest.php
  10. 12
      tests/Unit/Models/PartnerTest.php

7
app/Entities/Partners/Partner.php

@ -9,12 +9,7 @@ class Partner extends Model
{
use OwnedByAgency;
protected $fillable = ['name', 'type_id', 'email', 'phone', 'pic', 'address', 'notes', 'is_active', 'owner_id'];
public function getTypeAttribute()
{
return $this->type_id == 1 ? trans('partner.types.customer') : trans('partner.types.vendor');
}
protected $fillable = ['name', 'email', 'phone', 'pic', 'address', 'notes', 'is_active', 'owner_id'];
public function owner()
{

1
app/Entities/Projects/ProjectsRepository.php

@ -62,7 +62,6 @@ class ProjectsRepository extends BaseRepository
{
$newCustomer = new Partner;
$newCustomer->name = $customerName;
$newCustomer->type_id = 1;
$newCustomer->email = $customerEmail;
$newCustomer->owner_id = auth()->user()->agency->id;
$newCustomer->save();

16
app/Http/Controllers/Partners/PartnersController.php

@ -42,12 +42,7 @@ class PartnersController extends Controller
*/
public function create()
{
$partnerTypes = [
1 => trans('partner.types.customer'),
2 => trans('partner.types.vendor'),
];
return view('partners.create', compact('partnerTypes'));
return view('partners.create');
}
/**
@ -60,7 +55,6 @@ class PartnersController extends Controller
{
$newPartnerData = $this->validate($request, [
'name' => 'required|max:60',
'type_id' => 'required|numeric',
'email' => 'nullable|email|unique:partners,email',
'phone' => 'nullable|max:255',
'pic' => 'nullable|max:255',
@ -96,12 +90,7 @@ class PartnersController extends Controller
*/
public function edit(Partner $partner)
{
$partnerTypes = [
1 => trans('partner.types.customer'),
2 => trans('partner.types.vendor'),
];
return view('partners.edit', compact('partnerTypes', 'partner'));
return view('partners.edit', compact('partner'));
}
/**
@ -115,7 +104,6 @@ class PartnersController extends Controller
{
$partnerData = $this->validate($request, [
'name' => 'required|max:60',
'type_id' => 'required|numeric',
'email' => 'nullable|email|unique:partners,email,'.$partner->id,
'phone' => 'nullable|max:255',
'pic' => 'nullable|max:255',

23
database/factories/PartnerFactory.php

@ -8,29 +8,6 @@ $factory->define(Partner::class, function (Faker $faker) {
return [
'name' => $faker->company,
'type_id' => 1, // 1:Customer, 2:Vendor
'owner_id' => function () {
return factory(Agency::class)->create()->id;
},
];
});
$factory->defineAs(Partner::class, 'customer', function (Faker $faker) {
return [
'name' => $faker->company,
'type_id' => 1, // 1:Customer, 2:Vendor
'owner_id' => function () {
return factory(Agency::class)->create()->id;
},
];
});
$factory->defineAs(Partner::class, 'vendor', function (Faker $faker) {
return [
'name' => $faker->company,
'type_id' => 2, // 1:Customer, 2:Vendor
'owner_id' => function () {
return factory(Agency::class)->create()->id;
},

1
database/migrations/2017_10_26_134455_create_partners_table.php

@ -16,7 +16,6 @@ class CreatePartnersTable extends Migration
Schema::create('partners', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 60);
$table->unsignedTinyInteger('type_id');
$table->string('email')->nullable()->unique();
$table->string('phone')->nullable();
$table->string('pic')->nullable();

1
resources/views/partners/create.blade.php

@ -19,7 +19,6 @@
<div class="col-md-6">
<legend>@lang('partner.detail')</legend>
{!! FormField::text('name', ['required' => true]) !!}
{!! FormField::radios('type_id', $partnerTypes, ['required' => true]) !!}
{!! FormField::textarea('notes') !!}
</div>
<div class="col-md-6">

1
resources/views/partners/edit.blade.php

@ -22,7 +22,6 @@
<legend>@lang('partner.detail')</legend>
{!! FormField::text('name', ['required' => true]) !!}
<div class="row">
<div class="col-xs-6">{!! FormField::radios('type_id', $partnerTypes, ['required' => true]) !!}</div>
<div class="col-xs-6">{!! FormField::radios('is_active', ['Non Aktif', 'Aktif']) !!}</div>
</div>
{!! FormField::textarea('notes') !!}

2
resources/views/partners/index.blade.php

@ -28,7 +28,6 @@
<th>{{ trans('contact.phone') }}</th>
<th class="text-center">{{ trans('partner.projects_count') }}</th>
<th class="text-center">{{ trans('app.status') }}</th>
<th class="text-center">{{ trans('app.action') }}</th>
</tr>
</thead>
<tbody>
@ -40,7 +39,6 @@
<td>{{ $partner->phone }}</td>
<td class="text-center">{{ $partner->projects_count }}</td>
<td class="text-center">{{ $partner->is_active }}</td>
<td class="text-center"></td>
</tr>
@endforeach
</tbody>

4
tests/Feature/ManagePartnersTest.php

@ -33,7 +33,6 @@ class ManagePartnersTest extends TestCase
$this->submitForm(trans('partner.create'), [
'name' => 'Partner 1 name',
'type_id' => 1,
'email' => 'partner1@mail.com',
'phone' => '081234567890',
'pic' => 'Nama PIC Partner',
@ -45,7 +44,6 @@ class ManagePartnersTest extends TestCase
$this->seeInDatabase('partners', [
'name' => 'Partner 1 name',
'type_id' => 1,
'email' => 'partner1@mail.com',
'phone' => '081234567890',
'pic' => 'Nama PIC Partner',
@ -67,7 +65,6 @@ class ManagePartnersTest extends TestCase
$this->submitForm(trans('partner.update'), [
'name' => 'Partner 1 name',
'type_id' => 2,
'email' => 'partner1@mail.com',
'phone' => '081234567890',
'pic' => 'Nama PIC Partner',
@ -80,7 +77,6 @@ class ManagePartnersTest extends TestCase
$this->seeInDatabase('partners', [
'name' => 'Partner 1 name',
'type_id' => 2,
'email' => 'partner1@mail.com',
'phone' => '081234567890',
'pic' => 'Nama PIC Partner',

12
tests/Unit/Models/PartnerTest.php

@ -43,16 +43,4 @@ class PartnerTest extends TestCase
]), $partner->nameLink()
);
}
/** @test */
public function a_partner_has_type()
{
$partner = factory(Partner::class, 'customer')->make();
$this->assertEquals(1, $partner->type_id);
$this->assertEquals(trans('partner.types.customer'), $partner->type);
$partner = factory(Partner::class, 'vendor')->make();
$this->assertEquals(2, $partner->type_id);
$this->assertEquals(trans('partner.types.vendor'), $partner->type);
}
}
Loading…
Cancel
Save