Browse Source

Added transaction search by invoice_no on transaction index page

pull/6/head
Nafies Luthfi 9 years ago
parent
commit
acd5db3bdf
  1. 2
      app/Http/Controllers/CartController.php
  2. 7
      app/Http/Controllers/TransactionsController.php
  3. 2
      database/factories/ModelFactory.php
  4. 1
      resources/lang/id/transaction.php
  5. 12
      resources/views/transactions/index.blade.php
  6. 36
      tests/Feature/ManageTransactionsTest.php

2
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'));

7
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'));
}

2
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,
];

1
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',

12
resources/views/transactions/index.blade.php

@ -4,7 +4,17 @@
@section('content')
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">{{ trans('transaction.list') }}</h3></div>
<div class="panel-heading">
{{ 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() }}
<h3 class="panel-title">
{{ trans('transaction.list') }} |
{{ trans('app.total') }} : {{ $transactions->total() }} {{ trans('transaction.transaction') }}
</h3><div class="clearfix"></div>
</div>
<div class="panel-body">
<table class="table table-condensed">
<thead>

36
tests/Feature/ManageTransactionsTest.php

@ -0,0 +1,36 @@
<?php
namespace Tests\Feature;
use App\Transaction;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Tests\BrowserKitTestCase;
class ManageTransactionsTest extends BrowserKitTestCase
{
use DatabaseMigrations;
/** @test */
public function user_can_see_transactions_in_transactions_index_page()
{
$transaction1 = factory(Transaction::class)->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);
}
}
Loading…
Cancel
Save