Currencies add new feature on account, bill, customer, invoice, vendor edit and create pages.

This commit is contained in:
Cüneyt Şentürk 2020-02-14 16:37:09 +03:00
parent b311fca666
commit 5f756454d6
14 changed files with 118 additions and 11 deletions

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers\Modals;
use App\Abstracts\Http\Controller;
use App\Jobs\Setting\CreateCategory;
use Illuminate\Http\Request as IRequest;
use App\Http\Requests\Setting\Category as Request;
class Categories extends Controller
{
@ -46,7 +47,7 @@ class Categories extends Controller
*
* @return Response
*/
public function store(IRequest $request)
public function store(Request $request)
{
$request['enabled'] = 1;
$request['type'] = $request->get('type', 'income');

View File

@ -0,0 +1,85 @@
<?php
namespace App\Http\Controllers\Modals;
use Akaunting\Money\Currency as MoneyCurrency;
use App\Abstracts\Http\Controller;
use App\Jobs\Setting\CreateCurrency;
use App\Models\Setting\Currency;
use App\Http\Requests\Setting\Currency as Request;
class Currencies extends Controller
{
/**
* Instantiate a new controller instance.
*/
public function __construct()
{
// Add CRUD permission check
$this->middleware('permission:create-settings-currencies')->only(['create', 'store', 'duplicate', 'import']);
$this->middleware('permission:read-settings-currencies')->only(['index', 'show', 'edit', 'export']);
$this->middleware('permission:update-settings-currencies')->only(['update', 'enable', 'disable']);
$this->middleware('permission:delete-settings-currencies')->only('destroy');
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function create()
{
// Get current currencies
$current = Currency::pluck('code')->toArray();
// Prepare codes
$codes = array();
$currencies = MoneyCurrency::getCurrencies();
foreach ($currencies as $key => $item) {
// Don't show if already available
if (in_array($key, $current)) {
continue;
}
$codes[$key] = $key;
}
$html = view('modals.currencies.create', compact('codes'))->render();
return response()->json([
'success' => true,
'error' => false,
'message' => 'null',
'html' => $html,
]);
}
/**
* Store a newly created resource in storage.
*
* @param Request $request
*
* @return Response
*/
public function store(Request $request)
{
$currency = config('money.' . $request->get('code'));
$request['precision'] = (int) $currency['precision'];
$request['symbol'] = $currency['symbol'];
$request['symbol_first'] = $currency['symbol_first'] ? 1 : 0;
$request['decimal_mark'] = $currency['decimal_mark'];
$request['thousands_separator'] = $currency['thousands_separator'];
$request['enabled'] = 1;
$request['default_currency'] = false;
$response = $this->ajaxDispatch(new CreateCurrency($request->all()));
if ($response['success']) {
$response['message'] = trans('messages.success.added', ['type' => trans_choice('general.currencies', 1)]);
}
return response()->json($response);
}
}

View File

@ -21,7 +21,7 @@
{{ Form::textGroup('number', trans('accounts.number'), 'pencil-alt') }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'change' => 'onChangeCurrency']) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'path' => route('modals.currencies.create'), 'change' => 'onChangeCurrency']) }}
{{ Form::moneyGroup('opening_balance', trans('accounts.opening_balance'), 'balance-scale', ['required' => 'required', 'currency' => $currency], 0) }}

View File

@ -22,7 +22,7 @@
{{ Form::textGroup('number', trans('accounts.number'), 'pencil-alt') }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $account->currency_code, ['required' => 'required', 'change' => 'onChangeCurrency']) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $account->currency_code, ['required' => 'required', 'path' => route('modals.currencies.create'), 'change' => 'onChangeCurrency']) }}
{{ Form::moneyGroup('opening_balance', trans('accounts.opening_balance'), 'balance-scale', ['required' => 'required', 'currency' => $currency], $account->opening_balance) }}

View File

@ -0,0 +1,20 @@
{!! Form::open([
'id' => 'form-create-currency',
'@submit.prevent' => 'onSubmit',
'@keydown' => 'form.errors.clear($event.target.name)',
'role' => 'form',
'class' => 'form-loading-button',
'route' => 'modals.currencies.store',
'novalidate' => true
]) !!}
<div class="row">
{{ Form::textGroup('name', trans('general.name'), 'chart-bar') }}
{{ Form::selectGroup('code', trans('currencies.code'), 'code', $codes) }}
{{ Form::textGroup('rate', trans('currencies.rate'), 'sliders-h', ['@input' => 'onChangeRate', 'required' => 'required']) }}
{!! Form::hidden('enabled', '1', []) !!}
{!! Form::hidden('default_currency', 'false', []) !!}
</div>
{!! Form::close() !!}

View File

@ -19,7 +19,7 @@
<div class="row">
{{ Form::selectAddNewGroup('contact_id', trans_choice('general.vendors', 1), 'user', $vendors, config('general.vendors'), ['required' => 'required', 'path' => route('modals.vendors.create'), 'change' => 'onChangeContact']) }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'change' => 'onChangeCurrency']) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'path' => route('modals.currencies.create'), 'change' => 'onChangeCurrency']) }}
{{ Form::dateGroup('billed_at', trans('bills.bill_date'), 'calendar', ['id' => 'billed_at', 'class' => 'form-control datepicker', 'required' => 'required', 'date-format' => 'Y-m-d', 'autocomplete' => 'off'], request()->get('billed_at', Date::now()->toDateString())) }}

View File

@ -20,7 +20,7 @@
<div class="row">
{{ Form::selectAddNewGroup('contact_id', trans_choice('general.vendors', 1), 'user', $vendors, $bill->contact_id, ['required' => 'required', 'path' => route('modals.vendors.create'), 'change' => 'onChangeContact']) }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange', $currencies, $bill->currency_code, ['required' => 'required', 'change' => 'onChangeCurrency']) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $bill->currency_code, ['required' => 'required', 'path' => route('modals.currencies.create'), 'change' => 'onChangeCurrency']) }}
{{ Form::dateGroup('billed_at', trans('bills.bill_date'), 'calendar', ['id' => 'billed_at', 'class' => 'form-control datepicker', 'required' => 'required', 'date-format' => 'Y-m-d', 'autocomplete' => 'off'], Date::parse($bill->billed_at)->toDateString()) }}

View File

@ -23,7 +23,7 @@
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', []) }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency')) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'path' => route('modals.currencies.create')]) }}
{{ Form::textGroup('phone', trans('general.phone'), 'phone', []) }}

View File

@ -24,7 +24,7 @@
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', []) }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $vendor->currency_code) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $vendor->currency_code, ['required' => 'required', 'path' => route('modals.currencies.create')]) }}
{{ Form::textGroup('phone', trans('general.phone'), 'phone', []) }}

View File

@ -24,7 +24,7 @@
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', []) }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency')) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'path' => route('modals.currencies.create')]) }}
{{ Form::textGroup('phone', trans('general.phone'), 'phone', []) }}

View File

@ -23,7 +23,7 @@
{{ Form::textGroup('tax_number', trans('general.tax_number'), 'percent', []) }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $customer->currency_code) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $customer->currency_code, ['required' => 'required', 'path' => route('modals.currencies.create')]) }}
{{ Form::textGroup('phone', trans('general.phone'), 'phone', []) }}

View File

@ -19,7 +19,7 @@
<div class="row">
{{ Form::selectAddNewGroup('contact_id', trans_choice('general.customers', 1), 'user', $customers, config('general.customers'), ['required' => 'required', 'path' => route('modals.customers.create'), 'change' => 'onChangeContact']) }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'change' => 'onChangeCurrency']) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), ['required' => 'required', 'path' => route('modals.currencies.create'), 'change' => 'onChangeCurrency']) }}
{{ Form::dateGroup('invoiced_at', trans('invoices.invoice_date'), 'calendar', ['id' => 'invoiced_at', 'class' => 'form-control datepicker', 'required' => 'required', 'date-format' => 'Y-m-d', 'autocomplete' => 'off'], request()->get('invoiced_at', Date::now()->toDateString())) }}

View File

@ -20,7 +20,7 @@
<div class="row">
{{ Form::selectAddNewGroup('contact_id', trans_choice('general.customers', 1), 'user', $customers, $invoice->contact_id, ['required' => 'required', 'path' => route('modals.customers.create'), 'change' => 'onChangeContact']) }}
{{ Form::selectGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $invoice->currency_code, ['required' => 'required', 'change' => 'onChangeCurrency']) }}
{{ Form::selectAddNewGroup('currency_code', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, $invoice->currency_code, ['required' => 'required', 'path' => route('modals.currencies.create'), 'change' => 'onChangeCurrency']) }}
{{ Form::dateGroup('invoiced_at', trans('invoices.invoice_date'), 'calendar', ['id' => 'invoiced_at', 'class' => 'form-control datepicker', 'required' => 'required', 'date-format' => 'Y-m-d', 'autocomplete' => 'off'], Date::parse($invoice->invoiced_at)->toDateString()) }}

View File

@ -214,6 +214,7 @@ Route::group(['prefix' => 'install'], function () {
Route::group(['as' => 'modals.', 'prefix' => 'modals'], function () {
Route::resource('categories', 'Modals\Categories');
Route::resource('currencies', 'Modals\Currencies');
Route::resource('customers', 'Modals\Customers');
Route::resource('vendors', 'Modals\Vendors');
Route::resource('items', 'Modals\Items');