diff --git a/app/Filters/Banking/Transactions.php b/app/Filters/Banking/Transactions.php index 8c64cb979..89a0f33d0 100644 --- a/app/Filters/Banking/Transactions.php +++ b/app/Filters/Banking/Transactions.php @@ -28,4 +28,13 @@ class Transactions extends ModelFilter return $this->where('category_id', $category_id); } + + public function date($date) + { + $dates = explode('_', $date); + $dates[0] .= ' 00:00:00'; + $dates[1] .= ' 23:59:59'; + + return $this->whereBetween('paid_at', $dates); + } } \ No newline at end of file diff --git a/app/Filters/Banking/Transfers.php b/app/Filters/Banking/Transfers.php index 594d4ee01..18dbb6a90 100644 --- a/app/Filters/Banking/Transfers.php +++ b/app/Filters/Banking/Transfers.php @@ -23,4 +23,13 @@ class Transfers extends ModelFilter { return $this->related('revenue', 'revenues.account_id', '=', $account_id); } + + public function date($date) + { + $dates = explode('_', $date); + $dates[0] .= ' 00:00:00'; + $dates[1] .= ' 23:59:59'; + + return $this->whereBetween('paid_at', $dates); + } } diff --git a/app/Filters/Expenses/Bills.php b/app/Filters/Expenses/Bills.php index 7055a1ef7..d626f1a33 100644 --- a/app/Filters/Expenses/Bills.php +++ b/app/Filters/Expenses/Bills.php @@ -28,4 +28,13 @@ class Bills extends ModelFilter { return $this->where('bill_status_code', $status); } + + public function billDate($date) + { + $dates = explode('_', $date); + $dates[0] .= ' 00:00:00'; + $dates[1] .= ' 23:59:59'; + + return $this->whereBetween('billed_at', $dates); + } } \ No newline at end of file diff --git a/app/Filters/Expenses/Payments.php b/app/Filters/Expenses/Payments.php index a9345d428..54a786c37 100644 --- a/app/Filters/Expenses/Payments.php +++ b/app/Filters/Expenses/Payments.php @@ -33,4 +33,13 @@ class Payments extends ModelFilter { return $this->where('account_id', $account); } + + public function date($date) + { + $dates = explode('_', $date); + $dates[0] .= ' 00:00:00'; + $dates[1] .= ' 23:59:59'; + + return $this->whereBetween('paid_at', $dates); + } } \ No newline at end of file diff --git a/app/Filters/Incomes/Invoices.php b/app/Filters/Incomes/Invoices.php index 79e3ef639..7e1acabc4 100644 --- a/app/Filters/Incomes/Invoices.php +++ b/app/Filters/Incomes/Invoices.php @@ -28,4 +28,13 @@ class Invoices extends ModelFilter { return $this->where('invoice_status_code', $status); } -} \ No newline at end of file + + public function invoiceDate($date) + { + $dates = explode('_', $date); + $dates[0] .= ' 00:00:00'; + $dates[1] .= ' 23:59:59'; + + return $this->whereBetween('invoiced_at', $dates); + } +} diff --git a/app/Filters/Incomes/Revenues.php b/app/Filters/Incomes/Revenues.php index f61bcfa35..93aede017 100644 --- a/app/Filters/Incomes/Revenues.php +++ b/app/Filters/Incomes/Revenues.php @@ -33,4 +33,13 @@ class Revenues extends ModelFilter { return $this->where('account_id', $account); } + + public function date($date) + { + $dates = explode('_', $date); + $dates[0] .= ' 00:00:00'; + $dates[1] .= ' 23:59:59'; + + return $this->whereBetween('paid_at', $dates); + } } \ No newline at end of file diff --git a/app/Providers/FormServiceProvider.php b/app/Providers/FormServiceProvider.php index 39e66eb40..47c07b08e 100644 --- a/app/Providers/FormServiceProvider.php +++ b/app/Providers/FormServiceProvider.php @@ -66,6 +66,10 @@ class FormServiceProvider extends ServiceProvider Form::component('recurring', 'partials.form.recurring', [ 'page', 'model' => null, ]); + + Form::component('dateRange', 'partials.form.date_range', [ + 'name', 'text', 'icon', 'attributes' => ['required' => 'required'], 'value' => null, 'col' => 'col-md-6', + ]); } /** diff --git a/public/css/app.css b/public/css/app.css index 60b091985..312a63455 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -46,6 +46,7 @@ .btn-filter { margin-bottom: 1px; + vertical-align: top; } .setting-buttons { @@ -729,3 +730,9 @@ input[type="number"] { #role-permissions .nav-tabs-custom .tab-content .form-group.col-md-12 .col-md-3 .input-checkbox { font-weight: normal; } + +.btn-filter.date-range-btn { + background-color: inherit; + border-radius: 0px; + vertical-align: top; +} diff --git a/public/js/app.js b/public/js/app.js index 85aceef44..5a05259d0 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -291,3 +291,22 @@ $(document).on('change', '.input-group-recurring #recurring_frequency', function recurring_count.removeClass('hidden'); } }); + +function convertDateFormat(date, split_character) { + var result = []; + var formats = { + 'd': 'DD', + 'M': 'MMM', + 'Y': 'YYYY', + 'F': 'MMMM', + 'm': 'MM' + }; + + dates = date.split(split_character); + + dates.forEach(function(value) { + result.push(formats[value]); + }); + + return result.join(split_character); +} diff --git a/resources/views/banking/transactions/index.blade.php b/resources/views/banking/transactions/index.blade.php index d25de5eb3..667331f73 100644 --- a/resources/views/banking/transactions/index.blade.php +++ b/resources/views/banking/transactions/index.blade.php @@ -12,6 +12,7 @@ {!! Form::select('account', $accounts, request('account'), ['class' => 'form-control input-filter input-sm']) !!} {!! Form::select('type', $types, request('type'), ['class' => 'form-control input-filter input-sm']) !!} {!! Form::select('category', $categories, request('category'), ['class' => 'form-control input-filter input-sm']) !!} + {!! Form::dateRange('date', trans('general.date'), 'calendar', []) !!} {!! Form::button(' ' . trans('general.filter'), ['type' => 'submit', 'class' => 'btn btn-sm btn-default btn-filter']) !!}