diff --git a/app/Http/Controllers/Invoices/InvoicesController.php b/app/Http/Controllers/Invoices/InvoicesController.php
index d79ee87..63f7252 100644
--- a/app/Http/Controllers/Invoices/InvoicesController.php
+++ b/app/Http/Controllers/Invoices/InvoicesController.php
@@ -48,6 +48,22 @@ class InvoicesController extends Controller
return redirect()->route('invoices.show', $invoice);
}
+ public function destroy(Invoice $invoice)
+ {
+ $this->validate(request(), [
+ 'invoice_id' => 'required',
+ ]);
+
+ if (request('invoice_id') == $invoice->id && $invoice->delete()) {
+ flash(trans('invoice.deleted'), 'warning');
+ return redirect()->route('projects.invoices', $invoice->project_id);
+ }
+
+ flash(trans('invoice.undeleted'), 'danger');
+
+ return back();
+ }
+
public function pdf(Invoice $invoice)
{
return view('invoices.pdf', compact('invoice'));
diff --git a/resources/views/invoices/edit.blade.php b/resources/views/invoices/edit.blade.php
index 5d8e708..25b3384 100644
--- a/resources/views/invoices/edit.blade.php
+++ b/resources/views/invoices/edit.blade.php
@@ -3,6 +3,40 @@
@section('title', $invoice->number . ' - ' . trans('invoice.edit'))
@section('content')
+
+@if (request('action') == 'delete')
+
+
+
+
+
+
{{ trans('invoice.delete') }}
+ @include('invoices.partials.detail')
+
+ {{ trans('invoice.delete_confirm') }}
+
+
+
+
+
+
+@else
+
+
+ | {{ trans('invoice.number') }} | {{ $invoice->number }} |
+ | {{ trans('invoice.date') }} | {{ $invoice->date }} |
+ | {{ trans('invoice.due_date') }} | {{ $invoice->due_date }} |
+ | {{ trans('invoice.project') }} | {{ $invoice->project->nameLink() }} |
+ | {{ trans('invoice.customer') }} | {{ $invoice->project->customer->nameLink() }} |
+ | {{ trans('invoice.items_count') }} | {{ $invoice->items_count }} |
+ | {{ trans('invoice.creator') }} | {{ $invoice->creator->name }} |
+ | {{ trans('invoice.amount') }} | {{ formatRp($invoice->amount) }} |
+
+
diff --git a/resources/views/invoices/show.blade.php b/resources/views/invoices/show.blade.php
index 64de2f2..2de2e5c 100644
--- a/resources/views/invoices/show.blade.php
+++ b/resources/views/invoices/show.blade.php
@@ -14,18 +14,7 @@
{{ trans('invoice.detail') }}
-
-
- | {{ trans('invoice.number') }} | {{ $invoice->number }} |
- | {{ trans('invoice.date') }} | {{ $invoice->date }} |
- | {{ trans('invoice.due_date') }} | {{ $invoice->due_date }} |
- | {{ trans('invoice.project') }} | {{ $invoice->project->nameLink() }} |
- | {{ trans('invoice.customer') }} | {{ $invoice->project->customer->nameLink() }} |
- | {{ trans('invoice.items_count') }} | {{ $invoice->items_count }} |
- | {{ trans('invoice.creator') }} | {{ $invoice->creator->name }} |
- | {{ trans('invoice.amount') }} | {{ formatRp($invoice->amount) }} |
-
-
+ @include('invoices.partials.detail')
diff --git a/tests/Feature/Invoices/ManageInvoicesTest.php b/tests/Feature/Invoices/ManageInvoicesTest.php
index c868f5d..d8afbda 100644
--- a/tests/Feature/Invoices/ManageInvoicesTest.php
+++ b/tests/Feature/Invoices/ManageInvoicesTest.php
@@ -53,7 +53,7 @@ class ManageInvoicesTest extends TestCase
}
/** @test */
- public function user_can_add_invoice_item()
+ public function user_can_add_invoice_item_on_invoice_edit_page()
{
$this->adminUserSigningIn();
$invoice = factory(Invoice::class)->create();
@@ -84,7 +84,7 @@ class ManageInvoicesTest extends TestCase
}
/** @test */
- public function user_can_update_invoice_item()
+ public function user_can_update_invoice_item_on_invoice_edit_page()
{
$this->adminUserSigningIn();
@@ -115,7 +115,7 @@ class ManageInvoicesTest extends TestCase
}
/** @test */
- public function user_can_remove_invoice_item()
+ public function user_can_remove_invoice_item_on_invoice_edit_page()
{
$this->adminUserSigningIn();
@@ -142,4 +142,28 @@ class ManageInvoicesTest extends TestCase
'amount' => 1111,
]);
}
+
+ /** @test */
+ public function user_can_delete_an_invoice()
+ {
+ $this->adminUserSigningIn();
+ $invoice = factory(Invoice::class)->create();
+
+ $this->visit(route('invoices.edit', $invoice));
+
+ $this->click(trans('invoice.delete'));
+ $this->seePageIs(route('invoices.edit', [$invoice, 'action' => 'delete']));
+
+ $this->submitForm(trans('invoice.delete'), [
+ 'invoice_id' => $invoice->id,
+ ]);
+
+ $this->see(trans('invoice.deleted'));
+
+ $this->seePageIs(route('projects.invoices', $invoice->project_id));
+
+ $this->dontSeeInDatabase('invoices', [
+ 'id' => $invoice->id,
+ ]);
+ }
}