From d7d50b7d3789eb5581374b29a09b348203d4974a Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sun, 3 Dec 2017 18:01:36 +0800 Subject: [PATCH] Add numberLink method on Invoice model --- app/Entities/Invoices/Invoice.php | 15 +++++++++++++++ resources/views/invoices/index.blade.php | 2 +- tests/Unit/Models/InvoiceTest.php | 24 ++++++++++++++++++++++-- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/app/Entities/Invoices/Invoice.php b/app/Entities/Invoices/Invoice.php index 997d0cb..c8f6b8a 100755 --- a/app/Entities/Invoices/Invoice.php +++ b/app/Entities/Invoices/Invoice.php @@ -6,6 +6,11 @@ use App\Entities\Projects\Project; use App\Entities\Users\User; use Illuminate\Database\Eloquent\Model; +/** + * Invoice Model. + * + * @author Nafies Luthfi + */ class Invoice extends Model { protected $guarded = ['id', 'created_at', 'updated_at']; @@ -49,4 +54,14 @@ class Invoice extends Model return count($this->items); } + + public function numberLink() + { + return link_to_route('invoices.show', $this->number, [$this->number], [ + 'title' => trans( + 'app.show_detail_title', + ['name' => $this->number, 'type' => trans('invoice.invoice')] + ), + ]); + } } diff --git a/resources/views/invoices/index.blade.php b/resources/views/invoices/index.blade.php index d38e3cc..a6ab850 100755 --- a/resources/views/invoices/index.blade.php +++ b/resources/views/invoices/index.blade.php @@ -30,7 +30,7 @@ @forelse($invoices as $key => $invoice) {{ 1 + $key }} - {{ $invoice->number }} + {{ $invoice->numberLink() }} {{ $invoice->created_at->format('Y-m-d') }} {{ $invoice->project->nameLink() }} {{ $invoice->project->customer->nameLink() }} diff --git a/tests/Unit/Models/InvoiceTest.php b/tests/Unit/Models/InvoiceTest.php index 7dada94..a49fbd9 100644 --- a/tests/Unit/Models/InvoiceTest.php +++ b/tests/Unit/Models/InvoiceTest.php @@ -7,12 +7,17 @@ use App\Entities\Projects\Project; use App\Entities\Users\User; use Tests\TestCase; +/** + * Invoice Model Test. + * + * @author Nafies Luthfi + */ class InvoiceTest extends TestCase { /** @test */ public function it_has_project_relation() { - $user = $this->adminUserSigningIn(); + $user = $this->adminUserSigningIn(); $project = factory(Project::class)->create(); $invoice = factory(Invoice::class)->create(['project_id' => $project->id]); @@ -23,7 +28,7 @@ class InvoiceTest extends TestCase /** @test */ public function it_has_creator_relation() { - $user = $this->adminUserSigningIn(); + $user = $this->adminUserSigningIn(); $invoice = factory(Invoice::class)->create(['creator_id' => $user->id]); $this->assertInstanceOf(User::class, $invoice->creator); @@ -39,4 +44,19 @@ class InvoiceTest extends TestCase $invoice2 = factory(Invoice::class)->create(); $this->assertEquals(date('ym').'002', $invoice2->number); } + + /** @test */ + public function it_has_number_link_method() + { + $invoice = factory(Invoice::class)->make(); + + $this->assertEquals( + link_to_route('invoices.show', $invoice->number, [$invoice->number], [ + 'title' => trans( + 'app.show_detail_title', + ['name' => $invoice->number, 'type' => trans('invoice.invoice')] + ), + ]), $invoice->numberLink() + ); + } }