Browse Source

Added transaction search by customer name and customer phone

pull/6/head
Nafies Luthfi 9 years ago
parent
commit
55f395bd86
  1. 1
      app/Cart/CartCollection.php
  2. 2
      app/Http/Controllers/CartController.php
  3. 4
      app/Http/Controllers/TransactionsController.php
  4. 9
      app/Http/Controllers/UsersController.php
  5. 1
      resources/views/layouts/partials/top-nav.blade.php
  6. 10
      resources/views/transactions/index.blade.php
  7. 24
      tests/Feature/ManageTransactionsTest.php
  8. 2
      tests/Feature/ManageUsersTest.php

1
app/Cart/CartCollection.php

@ -120,7 +120,6 @@ class CartCollection
$content[$draftKey]->addItem($item);
}
$this->session->put($this->instance, $content);
return $item->product;

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 ' . formatRp($request->get('payment')) . '.'
'payment.max' => 'Pembayaran terlalu besar '.formatRp($request->get('payment')).'.',
]);
$draft = $this->cart->updateDraftAttributes($draftKey, $request->only('customer', 'notes', 'payment'));

4
app/Http/Controllers/TransactionsController.php

@ -13,8 +13,10 @@ class TransactionsController extends Controller
$q = $request->get('q');
$transactions = Transaction::orderBy('invoice_no', 'desc')
->where(function ($query) use ($q) {
if ($q)
if ($q) {
$query->where('invoice_no', 'like', '%'.$q.'%');
$query->orWhere('customer', 'like', '%'.$q.'%');
}
})->paginate(25);
return view('transactions.index', compact('transactions'));

9
app/Http/Controllers/UsersController.php

@ -29,11 +29,11 @@ class UsersController extends Controller
$newUserData = $request->only('name', 'username');
if ($request->has('password'))
if ($request->has('password')) {
$newUserData['password'] = $request->get('password');
else
} else {
$newUserData['password'] = 'rahasia';
}
$user = User::create($newUserData);
@ -51,8 +51,9 @@ class UsersController extends Controller
]);
$userData = $request->only('name', 'username');
if ($request->has('password'))
if ($request->has('password')) {
$userData['password'] = $request->get('password');
}
User::findOrFail($userId)->update($userData);

1
resources/views/layouts/partials/top-nav.blade.php

@ -54,6 +54,7 @@
<ul class="dropdown-menu" role="menu">
<li>{{ link_to_route('users.index', trans('user.list')) }}</li>
<li>{{ link_to_route('backups.index', trans('backup.list')) }}</li>
<li>
<a href="{{ route('logout') }}"
onclick="event.preventDefault();

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

@ -25,7 +25,7 @@
<th>{{ trans('transaction.customer') }}</th>
<th>{{ trans('transaction.items_count') }}</th>
<th class="text-right">{{ trans('transaction.total') }}</th>
<th>{{ trans('app.action') }}</th>
<th class="text-center">{{ trans('app.action') }}</th>
</tr>
</thead>
<tbody>
@ -34,10 +34,13 @@
<td>{{ 1 + $key }}</td>
<td>{{ $transaction->invoice_no }}</td>
<td>{{ $transaction->created_at->format('Y-m-d') }}</td>
<td>{{ $transaction->customer['name'] }}</td>
<td>
{{ $transaction->customer['name'] }}
{{ $transaction->customer['phone'] ? '(' . $transaction->customer['phone'] . ')' : '' }}
</td>
<td>{{ $transaction->items_count }}</td>
<td class="text-right">{{ formatRp($transaction->total) }}</td>
<td>
<td class="text-center">
{{ link_to_route('transactions.show', trans('app.show'), $transaction->invoice_no) }} |
{{ link_to_route('transactions.pdf', trans('app.print'), $transaction->invoice_no) }}
</td>
@ -46,6 +49,7 @@
@endforelse
</tbody>
</table>
<div>{!! str_replace('/?', '?', $transactions->appends(Request::except('page'))->render()) !!}</div>
</div>
</div>
@endsection

24
tests/Feature/ManageTransactionsTest.php

@ -33,4 +33,28 @@ class ManageTransactionsTest extends BrowserKitTestCase
$this->dontSee($transaction1->invoice_no);
$this->see($transaction2->invoice_no);
}
/** @test */
public function user_can_see_search_transactions_by_customer_name()
{
$transaction1 = factory(Transaction::class)->create(['customer' => ['name' => 'Nafies', 'phone' => '081234567890']]);
$transaction2 = factory(Transaction::class)->create();
$this->loginAsUser();
$this->visit(route('transactions.index', ['q' => 'nafies']));
$this->see($transaction1->invoice_no);
$this->dontSee($transaction2->invoice_no);
}
/** @test */
public function user_can_see_search_transactions_by_customer_phone()
{
$transaction1 = factory(Transaction::class)->create(['customer' => ['name' => 'Nafies', 'phone' => '081234567890']]);
$transaction2 = factory(Transaction::class)->create();
$this->loginAsUser();
$this->visit(route('transactions.index', ['q' => '7890']));
$this->see($transaction1->invoice_no);
$this->dontSee($transaction2->invoice_no);
}
}

2
tests/Feature/ManageUsersTest.php

@ -2,8 +2,8 @@
namespace Tests\Feature;
use App\User;
use App\Transaction;
use App\User;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Tests\BrowserKitTestCase;

Loading…
Cancel
Save