diff --git a/app/Http/Controllers/Wizard/Currencies.php b/app/Http/Controllers/Wizard/Currencies.php index bd4a06b35..eabad9e85 100644 --- a/app/Http/Controllers/Wizard/Currencies.php +++ b/app/Http/Controllers/Wizard/Currencies.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Wizard; +use Akaunting\Money\Currency as MoneyCurrency; use App\Http\Controllers\Controller; use App\Http\Requests\Setting\Currency as Request; use App\Models\Banking\Account; @@ -27,6 +28,70 @@ class Currencies extends Controller return view('wizard.currencies.index', compact('currencies')); } + /** + * 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('wizard.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) + { + // Force the rate to be 1 for default currency + if ($request['default_currency']) { + $request['rate'] = '1'; + } + + $currency = Currency::create($request->all()); + + // Update default currency setting + if ($request['default_currency']) { + setting()->set('general.default_currency', $request['code']); + setting()->save(); + } + + $message = trans('messages.success.added', ['type' => trans_choice('general.currencies', 1)]); + + return response()->json([ + 'success' => true, + 'error' => false, + 'message' => $message, + 'data' => $currency, + ]); + } + /** * Show the form for editing the specified resource. * @@ -40,7 +105,24 @@ class Currencies extends Controller return redirect('/'); } - $html = view('wizard.currencies.edit', compact('currency'))->render(); + // 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 (($key != $currency->code) && in_array($key, $current)) { + continue; + } + + $codes[$key] = $key; + } + + $item = $currency; + + $html = view('wizard.currencies.edit', compact('item', 'codes'))->render(); return response()->json([ 'success' => true, @@ -92,15 +174,21 @@ class Currencies extends Controller $message = trans('messages.success.updated', ['type' => trans_choice('general.currencies', 1)]); - flash($message)->success(); - - return redirect('settings/currencies'); + return response()->json([ + 'success' => true, + 'error' => false, + 'message' => $message, + 'data' => $currency, + ]); } else { $message = trans('messages.warning.disabled', ['name' => $currency->name, 'text' => implode(', ', $relationships)]); - flash($message)->warning(); - - return redirect('settings/currencies/' . $currency->id . '/edit'); + return response()->json([ + 'success' => true, + 'error' => false, + 'message' => $message, + 'data' => $currency, + ]); } } diff --git a/resources/views/layouts/wizard.blade.php b/resources/views/layouts/wizard.blade.php index 80bdc3f9a..278b51d48 100644 --- a/resources/views/layouts/wizard.blade.php +++ b/resources/views/layouts/wizard.blade.php @@ -12,7 +12,7 @@ @stack('body_end') diff --git a/resources/views/wizard/currencies/create.blade.php b/resources/views/wizard/currencies/create.blade.php new file mode 100644 index 000000000..2dd871983 --- /dev/null +++ b/resources/views/wizard/currencies/create.blade.php @@ -0,0 +1,30 @@ + + + {{ Form::textGroup('name', trans('general.name'), 'id-card-o', ['required' => 'required'], null, '') }} + + + {{ Form::selectGroup('code', trans('currencies.code'), 'code', $codes, null, ['required' => 'required'], '') }} + + + {{ Form::textGroup('rate', trans('currencies.rate'), 'money', ['required' => 'required'], null, '') }} + + + {{ Form::radioGroup('enabled', trans('general.enabled'), trans('general.yes'), trans('general.no'), [], 'col-md-12 currency-enabled-radio-group') }} + + + {!! Form::button('', ['type' => 'button', 'class' => 'btn btn-success currency-submit', 'data-loading-text' => trans('general.loading'), 'data-href' => url('wizard/currencies/'), 'style' => 'padding: 9px 14px; margin-top: 10px;']) !!} + + + {{ Form::numberGroup('precision', trans('currencies.precision'), 'bullseye') }} + + {{ Form::textGroup('symbol', trans('currencies.symbol.symbol'), 'font') }} + + {{ Form::selectGroup('symbol_first', trans('currencies.symbol.position'), 'text-width', ['1' => trans('currencies.symbol.before'), '0' => trans('currencies.symbol.after')]) }} + + {{ Form::textGroup('decimal_mark', trans('currencies.decimal_mark'), 'columns') }} + + {{ Form::textGroup('thousands_separator', trans('currencies.thousands_separator'), 'columns', []) }} + + {{ Form::radioGroup('default_currency', trans('currencies.default')) }} + + \ No newline at end of file diff --git a/resources/views/wizard/currencies/edit.blade.php b/resources/views/wizard/currencies/edit.blade.php index 1a7343eca..ad169fa8f 100644 --- a/resources/views/wizard/currencies/edit.blade.php +++ b/resources/views/wizard/currencies/edit.blade.php @@ -1,38 +1,32 @@ - - {{ $item->name }} - {{ $item->code }} - {{ $item->rate }} + + + {{ Form::textGroup('name', trans('general.name'), 'id-card-o', [], $item->name, '') }} + - @if ($item->enabled) - {{ trans('general.enabled') }} - @else - {{ trans('general.disabled') }} - @endif + {{ Form::selectGroup('code', trans('currencies.code'), 'code', $codes, $item->code, [], '') }} + + + {{ Form::textGroup('rate', trans('currencies.rate'), 'money', [], $item->rate, '') }} + + + {{ Form::radioGroup('enabled', trans('general.enabled'), trans('general.yes'), trans('general.no'), [], 'col-md-12') }} -
- - -
+ {!! Form::button('', ['type' => 'button', 'class' => 'btn btn-success currency-updated', 'data-loading-text' => trans('general.loading'), 'data-href' => url('wizard/currencies/' . $item->id), 'style' => 'padding: 9px 14px; margin-top: 10px;']) !!} + + + {{ Form::numberGroup('precision', trans('currencies.precision'), 'bullseye', [], $item->precision) }} + + {{ Form::textGroup('symbol', trans('currencies.symbol.symbol'), 'font', [], $item->symbol, '') }} + + {{ Form::selectGroup('symbol_first', trans('currencies.symbol.position'), 'text-width', ['1' => trans('currencies.symbol.before'), '0' => trans('currencies.symbol.after')], $item->symbol_first) }} + + {{ Form::textGroup('decimal_mark', trans('currencies.decimal_mark'), 'columns', [], $item->decimal_mark, '') }} + + {{ Form::textGroup('thousands_separator', trans('currencies.thousands_separator'), 'columns', [], $item->thousands_separator) }} + + {{ Form::radioGroup('default_currency', trans('currencies.default')) }} + + {{ Form::hidden('id', $item->id) }} \ No newline at end of file diff --git a/resources/views/wizard/currencies/index.blade.php b/resources/views/wizard/currencies/index.blade.php index e6ef4001b..1f1016ad1 100644 --- a/resources/views/wizard/currencies/index.blade.php +++ b/resources/views/wizard/currencies/index.blade.php @@ -34,7 +34,7 @@

{{ trans_choice('general.currencies', 1) }}

-  {{ trans('general.add_new') }} +  {{ trans('general.add_new') }}
@@ -43,17 +43,17 @@ - + - + @foreach($currencies as $item) - +
@sortablelink('name', trans('general.name'))@sortablelink('name', trans('general.name')) @sortablelink('rate', trans('currencies.rate')) {{ trans('general.actions') }}
{{ $item->name }}{{ $item->name }} {{ $item->rate }}