From 46e0467f710453a58dae568a7cdccd51574e37db Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sat, 6 May 2017 20:58:01 +0700 Subject: [PATCH] Added transactions index and show page Added redirection to transaction show page after transaction has created Prepared for transaction print (A4 PDF) --- app/Helpers/helpers.php | 2 +- app/Http/Controllers/CartController.php | 2 +- app/Http/Controllers/TransactionsController.php | 20 ++++++ app/Transaction.php | 19 ++++++ ...2017_04_27_121204_create_transactions_table.php | 2 +- resources/lang/id/product.php | 4 ++ resources/lang/id/transaction.php | 4 ++ resources/views/layouts/partials/top-nav.blade.php | 9 ++- resources/views/transactions/index.blade.php | 41 ++++++++++++ resources/views/transactions/show.blade.php | 78 ++++++++++++++++++++++ routes/web.php | 7 ++ tests/Feature/TransactionEntryTest.php | 2 +- tests/Unit/Integration/TransactionTest.php | 54 +++++++++++++++ 13 files changed, 238 insertions(+), 6 deletions(-) create mode 100644 app/Http/Controllers/TransactionsController.php create mode 100644 resources/views/transactions/index.blade.php create mode 100644 resources/views/transactions/show.blade.php create mode 100644 tests/Unit/Integration/TransactionTest.php diff --git a/app/Helpers/helpers.php b/app/Helpers/helpers.php index f0e2c46..5cc0924 100755 --- a/app/Helpers/helpers.php +++ b/app/Helpers/helpers.php @@ -8,7 +8,7 @@ function formatNo($number) function formatRp($number) { if ($number == 0) { - return '-'; + return 0; } return 'Rp. '.formatNo($number); diff --git a/app/Http/Controllers/CartController.php b/app/Http/Controllers/CartController.php index 11d3062..8a78d78 100644 --- a/app/Http/Controllers/CartController.php +++ b/app/Http/Controllers/CartController.php @@ -139,6 +139,6 @@ class CartController extends Controller $draft->destroy(); flash(trans('transaction.created', ['invoice_no' => $transaction->invoice_no]), 'success')->important(); - return redirect()->route('cart.index'); + return redirect()->route('transactions.show', $transaction->invoice_no); } } diff --git a/app/Http/Controllers/TransactionsController.php b/app/Http/Controllers/TransactionsController.php new file mode 100644 index 0000000..af5558d --- /dev/null +++ b/app/Http/Controllers/TransactionsController.php @@ -0,0 +1,20 @@ +paginate(24); + return view('transactions.index', compact('transactions')); + } + + public function show(Transaction $transaction) + { + return view('transactions.show', compact('transaction')); + } +} diff --git a/app/Transaction.php b/app/Transaction.php index 246cd7d..ecafd02 100644 --- a/app/Transaction.php +++ b/app/Transaction.php @@ -10,4 +10,23 @@ class Transaction extends Model 'items' => 'array', 'customer' => 'array', ]; + + public function getRouteKeyName() + { + return 'invoice_no'; + } + + public function getItemsCountAttribute($value) + { + $pcsCount = 0; + foreach ($this->items as $item) { + $pcsCount += $item['qty']; + } + return count($this->items) . ' Item, ' . $pcsCount . ' Pcs'; + } + + public function getExchange() + { + return $this->payment - $this->total; + } } diff --git a/database/migrations/2017_04_27_121204_create_transactions_table.php b/database/migrations/2017_04_27_121204_create_transactions_table.php index ca30206..bc9b09a 100644 --- a/database/migrations/2017_04_27_121204_create_transactions_table.php +++ b/database/migrations/2017_04_27_121204_create_transactions_table.php @@ -15,7 +15,7 @@ class CreateTransactionsTable extends Migration { Schema::create('transactions', function (Blueprint $table) { $table->increments('id'); - $table->char('invoice_no', 8); + $table->char('invoice_no', 8)->unique(); $table->text('items'); $table->string('customer'); $table->unsignedInteger('payment'); diff --git a/resources/lang/id/product.php b/resources/lang/id/product.php index cb88aaa..33bb148 100644 --- a/resources/lang/id/product.php +++ b/resources/lang/id/product.php @@ -10,6 +10,10 @@ return [ 'price' => 'Harga', 'unit' => 'Satuan', 'back_to_index' => 'Kembali ke daftar Produk', + 'item_price' => 'Harga Satuan', + 'item_discount' => 'Diskon Item', + 'item_qty' => 'Qty', + 'item_subtotal' => 'Subtotal', // Actions 'create' => 'Input Produk Baru', diff --git a/resources/lang/id/transaction.php b/resources/lang/id/transaction.php index 7ad8a6d..24dfc59 100644 --- a/resources/lang/id/transaction.php +++ b/resources/lang/id/transaction.php @@ -2,6 +2,8 @@ return [ // Labels + 'transaction' => 'Transaksi', + 'list' => 'List Transaksi', 'create' => 'Buat Transaksi', 'create_cash' => 'Buat Transaksi Tunai', 'create_credit' => 'Buat Transaksi Kredit', @@ -18,6 +20,7 @@ return [ 'draft_removed' => 'Draft transaksi telah dihapus.', 'draft_destroyed' => 'Seluruh Draft transaksi telah dihapus.', 'draft_not_found' => 'Draft transaksi tidak ditemukan.', + 'items_count' => 'Jumlah Item', // Actions 'proccess' => 'Proses Transaksi', @@ -27,6 +30,7 @@ return [ 'created' => 'Transaksi berhasil disimpan, No. Invoice: :invoice_no', // Attributes + 'invoice_no' => 'No. Invoice', 'customer' => 'Customer', 'customer_name' => 'Nama Customer', 'customer_phone' => 'Hp/Telp.', diff --git a/resources/views/layouts/partials/top-nav.blade.php b/resources/views/layouts/partials/top-nav.blade.php index 36cce71..0c68821 100644 --- a/resources/views/layouts/partials/top-nav.blade.php +++ b/resources/views/layouts/partials/top-nav.blade.php @@ -19,7 +19,12 @@