From bf30fad8af2d32f70a41d22c0ca647df3bd85fd4 Mon Sep 17 00:00:00 2001 From: cuneytsenturk Date: Sat, 7 Jul 2018 18:23:31 +0300 Subject: [PATCH] close #272 Enhancement: Newest Expenses - Payments: Recent payments not showing on the top --- app/Http/Kernel.php | 4 ++ app/Http/Middleware/BillDateFormat.php | 42 ++++++++++++++ app/Http/Middleware/InvoiceDateFormat.php | 42 ++++++++++++++ app/Http/Middleware/PaymentDateFormat.php | 36 ++++++++++++ app/Http/Middleware/RevenueDateFormat.php | 36 ++++++++++++ app/Listeners/Updates/Version1211.php | 30 ++++++++++ app/Providers/EventServiceProvider.php | 2 + .../2018_07_07_000000_modify_date_column.php | 55 +++++++++++++++++++ routes/web.php | 12 ++-- 9 files changed, 253 insertions(+), 6 deletions(-) create mode 100644 app/Http/Middleware/BillDateFormat.php create mode 100644 app/Http/Middleware/InvoiceDateFormat.php create mode 100644 app/Http/Middleware/PaymentDateFormat.php create mode 100644 app/Http/Middleware/RevenueDateFormat.php create mode 100644 app/Listeners/Updates/Version1211.php create mode 100644 database/migrations/2018_07_07_000000_modify_date_column.php diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index bd958e4b6..d46d3d533 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -91,5 +91,9 @@ class Kernel extends HttpKernel 'install' => \App\Http\Middleware\CanInstall::class, 'company.settings' => \App\Http\Middleware\LoadSettings::class, 'company.currencies' => \App\Http\Middleware\LoadCurrencies::class, + 'bill.dateformat' => \App\Http\Middleware\BillDateFormat::class, + 'invoice.dateformat' => \App\Http\Middleware\InvoiceDateFormat::class, + 'payment.dateformat' => \App\Http\Middleware\PaymentDateFormat::class, + 'revenue.dateformat' => \App\Http\Middleware\RevenueDateFormat::class, ]; } diff --git a/app/Http/Middleware/BillDateFormat.php b/app/Http/Middleware/BillDateFormat.php new file mode 100644 index 000000000..959410ddf --- /dev/null +++ b/app/Http/Middleware/BillDateFormat.php @@ -0,0 +1,42 @@ +path(); + $method = Request::method(); + + if (($method == 'POST') || ($method == 'PATCH')) { + $time = Date::now()->format('H:i:s'); + + if (basename($uri) == 'payment') { + $request['paid_at'] = $request['paid_at'] . ' ' . $time; + } else { + $request['billed_at'] = $request['billed_at'] . ' ' . $time; + $request['due_at'] = $request['due_at'] . ' ' . $time; + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/InvoiceDateFormat.php b/app/Http/Middleware/InvoiceDateFormat.php new file mode 100644 index 000000000..4f3e2b436 --- /dev/null +++ b/app/Http/Middleware/InvoiceDateFormat.php @@ -0,0 +1,42 @@ +path(); + $method = Request::method(); + + if (($method == 'POST') || ($method == 'PATCH')) { + $time = Date::now()->format('H:i:s'); + + if (basename($uri) == 'payment') { + $request['paid_at'] = $request['paid_at'] . ' ' . $time; + } else { + $request['invoiced_at'] = $request['invoiced_at'] . ' ' . $time; + $request['due_at'] = $request['due_at'] . ' ' . $time; + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/PaymentDateFormat.php b/app/Http/Middleware/PaymentDateFormat.php new file mode 100644 index 000000000..20ac67278 --- /dev/null +++ b/app/Http/Middleware/PaymentDateFormat.php @@ -0,0 +1,36 @@ +format('H:i:s'); + + $request['paid_at'] = $request['paid_at'] . ' ' . $time; + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/RevenueDateFormat.php b/app/Http/Middleware/RevenueDateFormat.php new file mode 100644 index 000000000..ca63e4680 --- /dev/null +++ b/app/Http/Middleware/RevenueDateFormat.php @@ -0,0 +1,36 @@ +format('H:i:s'); + + $request['paid_at'] = $request['paid_at'] . ' ' . $time; + } + + return $next($request); + } +} diff --git a/app/Listeners/Updates/Version1211.php b/app/Listeners/Updates/Version1211.php new file mode 100644 index 000000000..5cf012565 --- /dev/null +++ b/app/Listeners/Updates/Version1211.php @@ -0,0 +1,30 @@ +check($event)) { + return; + } + + // Update database + Artisan::call('migrate', ['--force' => true]); + } +} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 53e8b0379..9c1cb6664 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -26,6 +26,8 @@ class EventServiceProvider extends ServiceProvider 'App\Listeners\Updates\Version126', 'App\Listeners\Updates\Version127', 'App\Listeners\Updates\Version129', + 'App\Listeners\Updates\Version1210', + 'App\Listeners\Updates\Version1211', ], 'Illuminate\Auth\Events\Login' => [ 'App\Listeners\Auth\Login', diff --git a/database/migrations/2018_07_07_000000_modify_date_column.php b/database/migrations/2018_07_07_000000_modify_date_column.php new file mode 100644 index 000000000..0e0125a93 --- /dev/null +++ b/database/migrations/2018_07_07_000000_modify_date_column.php @@ -0,0 +1,55 @@ +dateTime('billed_at')->change(); + $table->dateTime('due_at')->change(); + }); + + Schema::table('bill_payments', function (Blueprint $table) { + $table->dateTime('paid_at')->change(); + }); + + Schema::table('invoices', function (Blueprint $table) { + $table->dateTime('invoiced_at')->change(); + $table->dateTime('due_at')->change(); + }); + + Schema::table('invoice_payments', function (Blueprint $table) { + $table->dateTime('paid_at')->change(); + }); + + Schema::table('payments', function (Blueprint $table) { + $table->dateTime('paid_at')->change(); + }); + + Schema::table('revenues', function (Blueprint $table) { + $table->dateTime('paid_at')->change(); + }); + + Schema::table('recurring', function (Blueprint $table) { + $table->dateTime('started_at')->change(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + + } +} diff --git a/routes/web.php b/routes/web.php index 3686bd0cb..f5e82a608 100644 --- a/routes/web.php +++ b/routes/web.php @@ -53,15 +53,15 @@ Route::group(['middleware' => 'language'], function () { Route::get('invoices/{invoice}/print', 'Incomes\Invoices@printInvoice'); Route::get('invoices/{invoice}/pdf', 'Incomes\Invoices@pdfInvoice'); Route::get('invoices/{invoice}/duplicate', 'Incomes\Invoices@duplicate'); - Route::post('invoices/payment', 'Incomes\Invoices@payment'); + Route::post('invoices/payment', 'Incomes\Invoices@payment')->middleware('invoice.dateformat')->name('invoice.payment'); Route::delete('invoices/payment/{payment}', 'Incomes\Invoices@paymentDestroy'); Route::post('invoices/import', 'Incomes\Invoices@import')->name('invoices.import'); Route::get('invoices/export', 'Incomes\Invoices@export')->name('invoices.export'); - Route::resource('invoices', 'Incomes\Invoices'); + Route::resource('invoices', 'Incomes\Invoices', ['middleware' => ['invoice.dateformat']]); Route::get('revenues/{revenue}/duplicate', 'Incomes\Revenues@duplicate'); Route::post('revenues/import', 'Incomes\Revenues@import')->name('revenues.import'); Route::get('revenues/export', 'Incomes\Revenues@export')->name('revenues.export'); - Route::resource('revenues', 'Incomes\Revenues'); + Route::resource('revenues', 'Incomes\Revenues', ['middleware' => ['revenue.dateformat']]); Route::get('customers/currency', 'Incomes\Customers@currency'); Route::get('customers/{customer}/duplicate', 'Incomes\Customers@duplicate'); Route::post('customers/customer', 'Incomes\Customers@customer'); @@ -78,15 +78,15 @@ Route::group(['middleware' => 'language'], function () { Route::get('bills/{bill}/print', 'Expenses\Bills@printBill'); Route::get('bills/{bill}/pdf', 'Expenses\Bills@pdfBill'); Route::get('bills/{bill}/duplicate', 'Expenses\Bills@duplicate'); - Route::post('bills/payment', 'Expenses\Bills@payment'); + Route::post('bills/payment', 'Expenses\Bills@payment')->middleware('bill.dateformat')->name('bill.payment'); Route::delete('bills/payment/{payment}', 'Expenses\Bills@paymentDestroy'); Route::post('bills/import', 'Expenses\Bills@import')->name('bills.import'); Route::get('bills/export', 'Expenses\Bills@export')->name('bills.export'); - Route::resource('bills', 'Expenses\Bills'); + Route::resource('bills', 'Expenses\Bills', ['middleware' => ['bill.dateformat']]); Route::get('payments/{payment}/duplicate', 'Expenses\Payments@duplicate'); Route::post('payments/import', 'Expenses\Payments@import')->name('payments.import'); Route::get('payments/export', 'Expenses\Payments@export')->name('payments.export'); - Route::resource('payments', 'Expenses\Payments'); + Route::resource('payments', 'Expenses\Payments', ['middleware' => ['payment.dateformat']]); Route::get('vendors/currency', 'Expenses\Vendors@currency'); Route::get('vendors/{vendor}/duplicate', 'Expenses\Vendors@duplicate'); Route::post('vendors/vendor', 'Expenses\Vendors@vendor');