From acd5db3bdf5f5f95ccbec406b3445dcdef772b10 Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Fri, 26 May 2017 19:49:32 +0800 Subject: [PATCH] Added transaction search by invoice_no on transaction index page --- app/Http/Controllers/CartController.php | 2 +- app/Http/Controllers/TransactionsController.php | 7 ++++- database/factories/ModelFactory.php | 2 +- resources/lang/id/transaction.php | 1 + resources/views/transactions/index.blade.php | 12 ++++++++- tests/Feature/ManageTransactionsTest.php | 36 +++++++++++++++++++++++++ 6 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 tests/Feature/ManageTransactionsTest.php diff --git a/app/Http/Controllers/CartController.php b/app/Http/Controllers/CartController.php index d592ada..a777d77 100644 --- a/app/Http/Controllers/CartController.php +++ b/app/Http/Controllers/CartController.php @@ -126,7 +126,7 @@ class CartController extends Controller 'notes' => 'nullable|string|max:100', ], [ 'payment.min' => 'Pembayaran minimal ' . formatRp($request->get('total')) . '.', - 'payment.max' => 'Pembayaran terlalu besar.' + 'payment.max' => 'Pembayaran terlalu besar ' . formatRp($request->get('payment')) . '.' ]); $draft = $this->cart->updateDraftAttributes($draftKey, $request->only('customer', 'notes', 'payment')); diff --git a/app/Http/Controllers/TransactionsController.php b/app/Http/Controllers/TransactionsController.php index f23d3f9..2695ed7 100644 --- a/app/Http/Controllers/TransactionsController.php +++ b/app/Http/Controllers/TransactionsController.php @@ -10,7 +10,12 @@ class TransactionsController extends Controller { public function index(Request $request) { - $transactions = Transaction::orderBy('invoice_no', 'desc')->paginate(24); + $q = $request->get('q'); + $transactions = Transaction::orderBy('invoice_no', 'desc') + ->where(function($query) use ($q) { + if ($q) + $query->where('invoice_no', 'like', '%' . $q . '%'); + })->paginate(25); return view('transactions.index', compact('transactions')); } diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index c85a8bd..83a836d 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -37,7 +37,7 @@ $factory->define(App\Transaction::class, function (Faker\Generator $faker) { }, 'invoice_no' => str_random(5), 'items' => [], - 'customer' => [], + 'customer' => ['name' => $faker->name, 'phone' => $faker->phoneNumber], 'payment' => 1000, 'total' => 1000, ]; diff --git a/resources/lang/id/transaction.php b/resources/lang/id/transaction.php index 64b53d9..ce1fd57 100644 --- a/resources/lang/id/transaction.php +++ b/resources/lang/id/transaction.php @@ -22,6 +22,7 @@ return [ 'draft_not_found' => 'Draft transaksi tidak ditemukan.', 'items_count' => 'Jumlah Item', 'cashier' => 'Kasir', + 'search' => 'Cari Invoice', // Actions 'proccess' => 'Proses Transaksi', diff --git a/resources/views/transactions/index.blade.php b/resources/views/transactions/index.blade.php index 7e2a7ee..0dee3e6 100644 --- a/resources/views/transactions/index.blade.php +++ b/resources/views/transactions/index.blade.php @@ -4,7 +4,17 @@ @section('content')
-

{{ trans('transaction.list') }}

+
+ {{ Form::open(['method' => 'get','class' => 'form-inline pull-right']) }} + {!! FormField::text('q', ['value' => request('q'), 'label' => trans('transaction.search'), 'class' => 'input-sm']) !!} + {{ Form::submit(trans('transaction.search'), ['class' => 'btn btn-sm']) }} + {{ link_to_route('transactions.index', trans('app.reset')) }} + {{ Form::close() }} +

+ {{ trans('transaction.list') }} | + {{ trans('app.total') }} : {{ $transactions->total() }} {{ trans('transaction.transaction') }} +

+
diff --git a/tests/Feature/ManageTransactionsTest.php b/tests/Feature/ManageTransactionsTest.php new file mode 100644 index 0000000..5bda0c7 --- /dev/null +++ b/tests/Feature/ManageTransactionsTest.php @@ -0,0 +1,36 @@ +create(); + $transaction2 = factory(Transaction::class)->create(); + + $this->loginAsUser(); + $this->visit(route('transactions.index')); + $this->see($transaction1->invoice_no); + $this->see($transaction2->invoice_no); + } + + /** @test */ + public function user_can_see_search_transactions_by_invoice_number() + { + $transaction1 = factory(Transaction::class)->create(); + $transaction2 = factory(Transaction::class)->create(); + + $this->loginAsUser(); + $this->visit(route('transactions.index', ['q' => $transaction2->invoice_no])); + $this->dontSee($transaction1->invoice_no); + $this->see($transaction2->invoice_no); + } +}