diff --git a/app/Http/Controllers/Banking/Transactions.php b/app/Http/Controllers/Banking/Transactions.php index 016060669..d108eb7fa 100644 --- a/app/Http/Controllers/Banking/Transactions.php +++ b/app/Http/Controllers/Banking/Transactions.php @@ -37,13 +37,13 @@ class Transactions extends Controller $type = $request->get('type'); if ($type != 'income') { - $this->addTransactions(Payment::collect('paid_at'), trans_choice('general.expenses', 1)); - $this->addTransactions(BillPayment::collect('paid_at'), trans_choice('general.expenses', 1), trans_choice('general.bills', 1)); + $this->addTransactions(Payment::collect(['paid_at'=> 'desc']), trans_choice('general.expenses', 1)); + $this->addTransactions(BillPayment::collect(['paid_at'=> 'desc']), trans_choice('general.expenses', 1), trans_choice('general.bills', 1)); } if ($type != 'expense') { - $this->addTransactions(Revenue::collect('paid_at'), trans_choice('general.incomes', 1)); - $this->addTransactions(InvoicePayment::collect('paid_at'), trans_choice('general.incomes', 1), trans_choice('general.invoices', 1)); + $this->addTransactions(Revenue::collect(['paid_at'=> 'desc']), trans_choice('general.incomes', 1)); + $this->addTransactions(InvoicePayment::collect(['paid_at'=> 'desc']), trans_choice('general.incomes', 1), trans_choice('general.invoices', 1)); } $transactions = $this->getTransactions($request); diff --git a/app/Http/Controllers/Banking/Transfers.php b/app/Http/Controllers/Banking/Transfers.php index 8135119e3..958aaee36 100644 --- a/app/Http/Controllers/Banking/Transfers.php +++ b/app/Http/Controllers/Banking/Transfers.php @@ -11,6 +11,7 @@ use App\Models\Expense\Payment; use App\Models\Income\Revenue; use App\Models\Setting\Category; use App\Models\Setting\Currency; +use Date; use App\Utilities\Modules; @@ -26,7 +27,7 @@ class Transfers extends Controller { $request = request(); - $items = Transfer::with(['payment', 'payment.account', 'revenue', 'revenue.account'])->collect('payment.paid_at'); + $items = Transfer::with(['payment', 'payment.account', 'revenue', 'revenue.account'])->collect(['payment.paid_at' => 'desc']); $accounts = collect(Account::enabled()->orderBy('name')->pluck('name', 'id')) ->prepend(trans('general.all_type', ['type' => trans_choice('general.accounts', 2)]), ''); @@ -118,42 +119,59 @@ class Transfers extends Controller $payment_currency_code = Account::where('id', $request['from_account_id'])->pluck('currency_code')->first(); $revenue_currency_code = Account::where('id', $request['to_account_id'])->pluck('currency_code')->first(); - $request['account_id'] = $request['from_account_id']; - $request['paid_at'] = $request['transferred_at']; - $request['currency_code'] = $payment_currency_code; - $request['currency_rate'] = $currencies[$payment_currency_code]; - $request['vendor_id'] = '0'; - $request['category_id'] = Category::transfer(); // Transfer Category ID - $request['attachment'] = ''; + $payment_request = [ + 'company_id' => $request['company_id'], + 'account_id' => $request['from_account_id'], + 'paid_at' => $request['transferred_at'], + 'amount' => $request['amount'], + 'currency_code' => $payment_currency_code, + 'currency_rate' => $currencies[$payment_currency_code], + 'vendor_id' => 0, + 'description' => $request['description'], + 'category_id' => Category::transfer(), // Transfer Category ID + 'payment_method' => $request['payment_method'], + 'reference' => $request['reference'], + ]; - $payment = Payment::create($request->all()); + $payment = Payment::create($payment_request); // Convert amount if not same currency if ($payment_currency_code != $revenue_currency_code) { - $transfer = new Transfer(); + $transfer_amount = new Transfer(); - $transfer->default_currency_code = $payment_currency_code; - $transfer->amount = $request['amount']; - $transfer->currency_code = $revenue_currency_code; - $transfer->currency_rate = $currencies[$revenue_currency_code]; + $transfer_amount->default_currency_code = $payment_currency_code; + $transfer_amount->amount = $request['amount']; + $transfer_amount->currency_code = $revenue_currency_code; + $transfer_amount->currency_rate = $currencies[$revenue_currency_code]; - $amount = $transfer->getDynamicConvertedAmount(); + $amount = $transfer_amount->getDynamicConvertedAmount(); } else { $amount = $request['amount']; } - $request['account_id'] = $request['to_account_id']; - $request['amount'] = $amount; - $request['currency_code'] = $revenue_currency_code; - $request['currency_rate'] = $currencies[$revenue_currency_code]; - $request['customer_id'] = '0'; + $revenue_request = [ + 'company_id' => $request['company_id'], + 'account_id' => $request['to_account_id'], + 'paid_at' => $request['transferred_at'], + 'amount' => $amount, + 'currency_code' => $revenue_currency_code, + 'currency_rate' => $currencies[$revenue_currency_code], + 'customer_id' => 0, + 'description' => $request['description'], + 'category_id' => Category::transfer(), // Transfer Category ID + 'payment_method' => $request['payment_method'], + 'reference' => $request['reference'], + ]; - $revenue = Revenue::create($request->all()); + $revenue = Revenue::create($revenue_request); - $request['payment_id'] = $payment->id; - $request['revenue_id'] = $revenue->id; + $transfer_request = [ + 'company_id' => $request['company_id'], + 'payment_id' => $payment->id, + 'revenue_id' => $revenue->id, + ]; - Transfer::create($request->all()); + Transfer::create($transfer_request); $message = trans('messages.success.added', ['type' => trans_choice('general.transfers', 1)]); @@ -176,11 +194,11 @@ class Transfers extends Controller $transfer['from_account_id'] = $payment->account_id; $transfer['to_account_id'] = $revenue->account_id; - $transfer['transferred_at'] = $revenue->deposited_at; - $transfer['description'] = $revenue->description; - $transfer['amount'] = $revenue->amount; - $transfer['payment_method'] = $revenue->payment_method; - $transfer['reference'] = $revenue->reference; + $transfer['transferred_at'] = Date::parse($payment->paid_at)->format('Y-m-d'); + $transfer['description'] = $payment->description; + $transfer['amount'] = $payment->amount; + $transfer['payment_method'] = $payment->payment_method; + $transfer['reference'] = $payment->reference; $accounts = Account::enabled()->orderBy('name')->pluck('name', 'id'); @@ -207,42 +225,59 @@ class Transfers extends Controller $payment = Payment::findOrFail($transfer->payment_id); $revenue = Revenue::findOrFail($transfer->revenue_id); - $request['account_id'] = $request['from_account_id']; - $request['paid_at'] = $request['transferred_at']; - $request['currency_code'] = $payment_currency_code; - $request['currency_rate'] = $currencies[$payment_currency_code]; - $request['vendor_id'] = '0'; - $request['category_id'] = Category::transfer(); // Transfer Category ID - $request['attachment'] = ''; + $payment_request = [ + 'company_id' => $request['company_id'], + 'account_id' => $request['from_account_id'], + 'paid_at' => $request['transferred_at'], + 'amount' => $request['amount'], + 'currency_code' => $payment_currency_code, + 'currency_rate' => $currencies[$payment_currency_code], + 'vendor_id' => 0, + 'description' => $request['description'], + 'category_id' => Category::transfer(), // Transfer Category ID + 'payment_method' => $request['payment_method'], + 'reference' => $request['reference'], + ]; - $payment->update($request->all()); + $payment->update($payment_request); // Convert amount if not same currency if ($payment_currency_code != $revenue_currency_code) { - $transfer = new Transfer(); + $transfer_amount = new Transfer(); - $transfer->default_currency_code = $payment_currency_code; - $transfer->amount = $request['amount']; - $transfer->currency_code = $revenue_currency_code; - $transfer->currency_rate = $currencies[$revenue_currency_code]; + $transfer_amount->default_currency_code = $payment_currency_code; + $transfer_amount->amount = $request['amount']; + $transfer_amount->currency_code = $revenue_currency_code; + $transfer_amount->currency_rate = $currencies[$revenue_currency_code]; - $amount = $transfer->getDynamicConvertedAmount(); + $amount = $transfer_amount->getDynamicConvertedAmount(); } else { $amount = $request['amount']; } - $request['account_id'] = $request['to_account_id']; - $request['amount'] = $amount; - $request['currency_code'] = $revenue_currency_code; - $request['currency_rate'] = $currencies[$revenue_currency_code]; - $request['customer_id'] = '0'; - - $revenue->update($request->all()); + $revenue_request = [ + 'company_id' => $request['company_id'], + 'account_id' => $request['to_account_id'], + 'paid_at' => $request['transferred_at'], + 'amount' => $amount, + 'currency_code' => $revenue_currency_code, + 'currency_rate' => $currencies[$revenue_currency_code], + 'customer_id' => 0, + 'description' => $request['description'], + 'category_id' => Category::transfer(), // Transfer Category ID + 'payment_method' => $request['payment_method'], + 'reference' => $request['reference'], + ]; - $request['payment_id'] = $payment->id; - $request['revenue_id'] = $revenue->id; + $revenue->update($revenue_request); - $transfer->update($request->all()); + $transfer_request = [ + 'company_id' => $request['company_id'], + 'payment_id' => $payment->id, + 'revenue_id' => $revenue->id, + ]; + + $transfer->update($transfer_request); $message = trans('messages.success.updated', ['type' => trans_choice('general.transfers', 1)]); @@ -263,9 +298,9 @@ class Transfers extends Controller $payment = Payment::findOrFail($transfer->payment_id); $revenue = Revenue::findOrFail($transfer->revenue_id); - $transfer->delete(); $payment->delete(); $revenue->delete(); + $transfer->delete(); $message = trans('messages.success.deleted', ['type' => trans_choice('general.transfers', 1)]); diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index d46d3d533..a5a177e71 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -95,5 +95,6 @@ class Kernel extends HttpKernel 'invoice.dateformat' => \App\Http\Middleware\InvoiceDateFormat::class, 'payment.dateformat' => \App\Http\Middleware\PaymentDateFormat::class, 'revenue.dateformat' => \App\Http\Middleware\RevenueDateFormat::class, + 'transfer.dateformat' => \App\Http\Middleware\TransferDateFormat::class, ]; } diff --git a/app/Http/Middleware/TransferDateFormat.php b/app/Http/Middleware/TransferDateFormat.php new file mode 100644 index 000000000..4295942b6 --- /dev/null +++ b/app/Http/Middleware/TransferDateFormat.php @@ -0,0 +1,36 @@ +format('H:i:s'); + + $request['transferred_at'] = $request['transferred_at'] . ' ' . $time; + } + + return $next($request); + } +} diff --git a/resources/views/banking/transfers/edit.blade.php b/resources/views/banking/transfers/edit.blade.php index 616507215..11ebad5a1 100644 --- a/resources/views/banking/transfers/edit.blade.php +++ b/resources/views/banking/transfers/edit.blade.php @@ -18,7 +18,7 @@ {{ Form::textGroup('amount', trans('general.amount'), 'money') }} - {{ Form::textGroup('transferred_at', trans('general.date'), 'calendar',['id' => 'transferred_at', 'required' => 'required', 'data-inputmask' => '\'alias\': \'yyyy-mm-dd\'', 'data-mask' => ''], Date::now()->toDateString()) }} + {{ Form::textGroup('transferred_at', trans('general.date'), 'calendar',['id' => 'transferred_at', 'required' => 'required', 'data-inputmask' => '\'alias\': \'yyyy-mm-dd\'', 'data-mask' => 'yyyy-mm-dd']) }} {{ Form::textareaGroup('description', trans('general.description')) }} diff --git a/routes/web.php b/routes/web.php index f5e82a608..3b3cd4cce 100644 --- a/routes/web.php +++ b/routes/web.php @@ -103,7 +103,7 @@ Route::group(['middleware' => 'language'], function () { Route::get('accounts/{account}/disable', 'Banking\Accounts@disable')->name('accounts.disable'); Route::resource('accounts', 'Banking\Accounts'); Route::resource('transactions', 'Banking\Transactions'); - Route::resource('transfers', 'Banking\Transfers'); + Route::resource('transfers', 'Banking\Transfers', ['middleware' => ['transfer.dateformat']]); }); Route::group(['prefix' => 'reports'], function () {