Skip to content

Commit

Permalink
Merge branch 'feature/transaction_entry_form'
Browse files Browse the repository at this point in the history
  • Loading branch information
nafiesl committed May 4, 2024
2 parents 776d5ed + 032b372 commit 5e01de0
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 69 deletions.
12 changes: 12 additions & 0 deletions app/Http/Controllers/TransactionsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

namespace App\Http\Controllers;

use App\Category;
use App\Http\Requests\Transactions\CreateRequest;
use App\Http\Requests\Transactions\UpdateRequest;
use App\Transaction;
use Carbon\Carbon;
use Illuminate\Http\Request;

class TransactionsController extends Controller
{
Expand Down Expand Up @@ -46,6 +48,16 @@ public function index()
));
}

public function create(Request $request)
{
$partners = $this->getPartnerList()->prepend('-- '.__('transaction.no_partner').' --', 'null');
$categories = Category::orderBy('name')
->where('status_id', Category::STATUS_ACTIVE)
->pluck('name', 'id');

return view('transactions.create', compact('categories', 'partners'));
}

/**
* Store a newly created transaction in storage.
*
Expand Down
89 changes: 89 additions & 0 deletions resources/views/transactions/create.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
@extends('layouts.app')

@section('title', __('transaction.list'))

@section('content')
<div class="row justify-content-center">
<div class="col-md-5">
@can('create', new App\Transaction)
@if (request('action') == 'add-income')
<div class="card">
<div class="card-header">
<h5 class="card-title">{{ __('transaction.add_income') }}</h5>
<div class="card-options btn-group">
<a href="{{ route('transactions.create', array_merge(request()->only(['action', 'year','month']), ['action' => 'add-income'])) }}" class="btn btn-gray btn-sm">{{ __('transaction.income') }}</a>
<a href="{{ route('transactions.create', array_merge(request()->only(['action', 'year','month']), ['action' => 'add-spending'])) }}" class="btn btn-secondary btn-sm">{{ __('transaction.spending') }}</a>
</div>
</div>
{!! Form::open(['route' => 'transactions.store', 'autocomplete' => 'off']) !!}
{{ Form::hidden('in_out', 1) }}
<div class="card-body">
<div class="row">
<div class="col-md-6">{!! FormField::text('date', ['required' => true, 'label' => __('app.date'), 'value' => old('date', date('Y-m-d')), 'class' => 'date-select']) !!}</div>
<div class="col-md-6">{!! FormField::select('category_id', $categories, ['label' => __('category.category'), 'placeholder' => __('category.uncategorized')]) !!}</div>
</div>
{!! FormField::textarea('description', ['required' => true, 'label' => __('transaction.description')]) !!}
<div class="row">
<div class="col-md-6">{!! FormField::price('amount', ['required' => true, 'label' => __('transaction.amount'), 'type' => 'number', 'currency' => config('money.currency_code'), 'step' => '0.01']) !!}</div>
<div class="col-md-6">{!! FormField::select('partner_id', $partners, ['label' => __('partner.partner'), 'placeholder' => __('partner.no_partner')]) !!}</div>
</div>
</div>
<div class="card-footer">
{!! Form::submit(__('transaction.add_income'), ['class' => 'btn btn-success']) !!}
{{ link_to_route('transactions.index', __('app.cancel'), [], ['class' => 'btn btn-secondary']) }}
</div>
{{ Form::close() }}
</div>
@endif
@if (request('action') == 'add-spending')
<div class="card">
<div class="card-header">
<h5 class="card-title">{{ __('transaction.add_spending') }}</h5>
<div class="card-options btn-group">
<a href="{{ route('transactions.create', array_merge(request()->only(['action', 'year','month']), ['action' => 'add-income'])) }}" class="btn btn-secondary btn-sm">{{ __('transaction.income') }}</a>
<a href="{{ route('transactions.create', array_merge(request()->only(['action', 'year','month']), ['action' => 'add-spending'])) }}" class="btn btn-gray btn-sm">{{ __('transaction.spending') }}</a>
</div>
</div>
{!! Form::open(['route' => 'transactions.store', 'autocomplete' => 'off']) !!}
{{ Form::hidden('in_out', 0) }}
<div class="card-body">
<div class="row">
<div class="col-md-6">{!! FormField::text('date', ['required' => true, 'label' => __('app.date'), 'value' => old('date', date('Y-m-d')), 'class' => 'date-select']) !!}</div>
<div class="col-md-6">{!! FormField::select('category_id', $categories, ['label' => __('category.category'), 'placeholder' => __('category.uncategorized')]) !!}</div>
</div>
{!! FormField::textarea('description', ['required' => true, 'label' => __('transaction.description')]) !!}
<div class="row">
<div class="col-md-6">{!! FormField::price('amount', ['required' => true, 'label' => __('transaction.amount'), 'type' => 'number', 'currency' => config('money.currency_code'), 'step' => '0.01']) !!}</div>
<div class="col-md-6">{!! FormField::select('partner_id', $partners, ['label' => __('partner.partner'), 'placeholder' => __('partner.no_partner')]) !!}</div>
</div>
</div>
<div class="card-footer">
{!! Form::submit(__('transaction.add_spending'), ['class' => 'btn btn-danger']) !!}
{{ link_to_route('transactions.index', __('app.cancel'), [], ['class' => 'btn btn-secondary']) }}
</div>
{{ Form::close() }}
</div>
@endif
@endcan
</div>
</div>
@endsection

@section('styles')
{{ Html::style(url('css/plugins/jquery.datetimepicker.css')) }}
@endsection

@push('scripts')
{{ Html::script(url('js/plugins/jquery.datetimepicker.js')) }}
<script>
(function () {
$('.date-select').datetimepicker({
timepicker:false,
format:'Y-m-d',
closeOnDateSelect: true,
scrollInput: false,
dayOfWeekStart: 1
});
})();
</script>
@endpush
65 changes: 0 additions & 65 deletions resources/views/transactions/forms.blade.php
Original file line number Diff line number Diff line change
@@ -1,68 +1,3 @@
@can('create', new App\Transaction)
@if (request('action') == 'add-income')
<div id="transactionModal" class="modal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ __('transaction.add_income') }}</h5>
{{ link_to_route('transactions.index', '', [], ['class' => 'close']) }}
</div>
{!! Form::open(['route' => 'transactions.store', 'autocomplete' => 'off']) !!}
{{ Form::hidden('in_out', 1) }}
<div class="modal-body">
<div class="row">
<div class="col-md-6">{!! FormField::text('date', ['required' => true, 'label' => __('app.date'), 'value' => old('date', date('Y-m-d')), 'class' => 'date-select']) !!}</div>
<div class="col-md-6">{!! FormField::select('category_id', $categories, ['label' => __('category.category'), 'placeholder' => __('category.uncategorized')]) !!}</div>
</div>
{!! FormField::textarea('description', ['required' => true, 'label' => __('transaction.description')]) !!}
<div class="row">
<div class="col-md-6">{!! FormField::price('amount', ['required' => true, 'label' => __('transaction.amount'), 'type' => 'number']) !!}</div>
<div class="col-md-6">{!! FormField::select('partner_id', $partners, ['label' => __('partner.partner'), 'placeholder' => __('partner.no_partner')]) !!}</div>
</div>
</div>
<div class="modal-footer">
{!! Form::submit(__('transaction.add_income'), ['class' => 'btn btn-success']) !!}
{{ link_to_route('transactions.index', __('app.cancel'), [], ['class' => 'btn btn-secondary']) }}
</div>
{{ Form::close() }}
</div>
</div>
</div>
@endif
@if (request('action') == 'add-spending')
<div id="transactionModal" class="modal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ __('transaction.add_spending') }}</h5>
{{ link_to_route('transactions.index', '', [], ['class' => 'close']) }}
</div>
{!! Form::open(['route' => 'transactions.store', 'autocomplete' => 'off']) !!}
{{ Form::hidden('in_out', 0) }}
<div class="modal-body">
<div class="row">
<div class="col-md-6">{!! FormField::text('date', ['required' => true, 'label' => __('app.date'), 'value' => old('date', date('Y-m-d')), 'class' => 'date-select']) !!}</div>
<div class="col-md-6">{!! FormField::select('category_id', $categories, ['label' => __('category.category'), 'placeholder' => __('category.uncategorized')]) !!}</div>
</div>
{!! FormField::textarea('description', ['required' => true, 'label' => __('transaction.description')]) !!}
<div class="row">
<div class="col-md-6">{!! FormField::price('amount', ['required' => true, 'label' => __('transaction.amount'), 'type' => 'number']) !!}</div>
<div class="col-md-6">{!! FormField::select('partner_id', $partners, ['label' => __('partner.partner'), 'placeholder' => __('partner.no_partner')]) !!}</div>
</div>
</div>
<div class="modal-footer">
{!! Form::submit(__('transaction.add_spending'), ['class' => 'btn btn-danger']) !!}
{{ link_to_route('transactions.index', __('app.cancel'), [], ['class' => 'btn btn-secondary']) }}
</div>
{{ Form::close() }}
</div>
</div>
</div>
@endif
@endcan

@if (request('action') == 'edit' && $editableTransaction)
@can('update', $editableTransaction)
<div id="transactionModal" class="modal" role="dialog">
Expand Down
4 changes: 2 additions & 2 deletions resources/views/transactions/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<div class="page-options d-flex">
{{ link_to_route('transaction_search.index', __('app.search'), [], ['class' => 'btn btn-secondary mr-2']) }}
@can('create', new App\Transaction)
{{ link_to_route('transactions.index', __('transaction.add_income'), ['action' => 'add-income', 'month' => $month, 'year' => $year], ['class' => 'btn btn-success mr-2']) }}
{{ link_to_route('transactions.index', __('transaction.add_spending'), ['action' => 'add-spending', 'month' => $month, 'year' => $year], ['class' => 'btn btn-danger']) }}
{{ link_to_route('transactions.create', __('transaction.add_income'), ['action' => 'add-income', 'month' => $month, 'year' => $year], ['class' => 'btn btn-success mr-2']) }}
{{ link_to_route('transactions.create', __('transaction.add_spending'), ['action' => 'add-spending', 'month' => $month, 'year' => $year], ['class' => 'btn btn-danger']) }}
@endcan
</div>
</div>
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/Transactions/TransactionEntryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public function user_can_create_an_income_transaction()
$this->visit(route('transactions.index', ['month' => $month, 'year' => $year]));

$this->click(__('transaction.add_income'));
$this->seeRouteIs('transactions.index', ['action' => 'add-income', 'month' => $month, 'year' => $year]);
$this->seeRouteIs('transactions.create', ['action' => 'add-income', 'month' => $month, 'year' => $year]);

$this->submitForm(__('transaction.add_income'), [
'amount' => 99.99,
Expand Down Expand Up @@ -56,7 +56,7 @@ public function user_can_create_a_spending_transaction()
$this->visit(route('transactions.index', ['month' => $month, 'year' => $year]));

$this->click(__('transaction.add_spending'));
$this->seeRouteIs('transactions.index', ['action' => 'add-spending', 'month' => $month, 'year' => $year]);
$this->seeRouteIs('transactions.create', ['action' => 'add-spending', 'month' => $month, 'year' => $year]);

$this->submitForm(__('transaction.add_spending'), [
'amount' => 99.99,
Expand Down

0 comments on commit 5e01de0

Please sign in to comment.