Wizard files permission and route, controller, view files added

This commit is contained in:
cuneytsenturk
2018-10-24 12:07:28 +03:00
parent 121f0b893e
commit 6039fcb5f1
16 changed files with 346 additions and 438 deletions

View File

@ -264,6 +264,11 @@ class Companies extends Controller
event(new CompanySwitched($company));
}
// Check wizard
if (!setting('general.wizard', false)) {
return redirect('wizard');
}
return redirect('/');
}

View File

@ -2,11 +2,15 @@
namespace App\Http\Controllers\Wizard;
use Illuminate\Routing\Controller;
use App\Http\Controllers\Controller;
use App\Http\Requests\Wizard\Company as Request;
use App\Models\Common\Company;
use App\Traits\Uploads;
class Companies extends Controller
{
use Uploads;
/**
* Show the form for creating a new resource.
*
@ -14,15 +18,15 @@ class Companies extends Controller
*/
public function edit()
{
if (setting(setting('general.wizard', false))) {
return redirect('/');
if (setting('general.wizard', false)) {
//return redirect('/');
}
$company = Company::find(session('company_id'));
$company->setSettings();
return view('wizard.companies.edit', compact('company', 'currencies'));
return view('wizard.companies.edit', compact('company'));
}
/**
@ -33,34 +37,43 @@ class Companies extends Controller
*
* @return Response
*/
public function update(Company $company, Request $request)
public function update(Request $request)
{
// Update company
$company->update($request->input());
// Company
$company = Company::find(session('company_id'));
// Get the company settings
setting()->forgetAll();
setting()->setExtraColumns(['company_id' => $company->id]);
setting()->load(true);
$fields = $request->all();
// Update settings
setting()->set('general.company_name', $request->get('company_name'));
setting()->set('general.company_email', $request->get('company_email'));
setting()->set('general.company_address', $request->get('company_address'));
$skip_keys = ['company_id', '_method', '_token'];
$file_keys = ['company_logo', 'invoice_logo'];
if ($request->file('company_logo')) {
$company_logo = $this->getMedia($request->file('company_logo'), 'settings', $company->id);
if ($company_logo) {
$company->attachMedia($company_logo, 'company_logo');
setting()->set('general.company_logo', $company_logo->id);
foreach ($fields as $key => $value) {
// Don't process unwanted keys
if (in_array($key, $skip_keys)) {
continue;
}
// Process file uploads
if (in_array($key, $file_keys)) {
// Upload attachment
if ($request->file($key)) {
$media = $this->getMedia($request->file($key), 'settings');
$company->attachMedia($media, $key);
$value = $media->id;
}
// Prevent reset
if (empty($value)) {
continue;
}
}
setting()->set('general.' . $key, $value);
}
setting()->set('general.default_payment_method', 'offlinepayment.cash.1');
setting()->set('general.default_currency', $request->get('default_currency'));
// Save all settings
setting()->save();
// Redirect
@ -68,6 +81,23 @@ class Companies extends Controller
flash($message)->success();
return redirect('common/companies');
return redirect('wizard/currencies');
}
/**
* Update the specified resource in storage.
*
* @param Request $request
*
* @return Response
*/
public function skip()
{
setting()->set('general.wizard', true);
// Save all settings
setting()->save();
return redirect('/');
}
}

View File

@ -2,7 +2,6 @@
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;
@ -17,27 +16,15 @@ class Currencies extends Controller
*
* @return Response
*/
public function edit(Currency $currency)
public function edit()
{
// 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;
if (setting('general.wizard', false)) {
//return redirect('/');
}
// Set default currency
$currency->default_currency = ($currency->code == setting('general.default_currency')) ? 1 : 0;
$currencies = Currency::all();
return view('settings.currencies.edit', compact('currency', 'codes'));
return view('wizard.currencies.edit', compact('currencies'));
}
/**

View File

@ -12,62 +12,16 @@ class Finish extends Controller
*
* @return Response
*/
public function edit()
public function index()
{
if (setting(setting('general.wizard', false))) {
return redirect('/');
//return redirect('/');
}
$company = Company::find(session('company_id'));
$company->setSettings();
return view('wizard.companies.edit', compact('company', 'currencies'));
}
/**
* Update the specified resource in storage.
*
* @param Company $company
* @param Request $request
*
* @return Response
*/
public function update(Company $company, Request $request)
{
// Update company
$company->update($request->input());
// Get the company settings
setting()->forgetAll();
setting()->setExtraColumns(['company_id' => $company->id]);
setting()->load(true);
// Update settings
setting()->set('general.company_name', $request->get('company_name'));
setting()->set('general.company_email', $request->get('company_email'));
setting()->set('general.company_address', $request->get('company_address'));
if ($request->file('company_logo')) {
$company_logo = $this->getMedia($request->file('company_logo'), 'settings', $company->id);
if ($company_logo) {
$company->attachMedia($company_logo, 'company_logo');
setting()->set('general.company_logo', $company_logo->id);
}
}
setting()->set('general.default_payment_method', 'offlinepayment.cash.1');
setting()->set('general.default_currency', $request->get('default_currency'));
setting()->save();
// Redirect
$message = trans('messages.success.updated', ['type' => trans_choice('general.companies', 1)]);
flash($message)->success();
return redirect('common/companies');
return view('wizard.finish.index', compact('company', 'currencies'));
}
}

View File

@ -8,24 +8,6 @@ use App\Models\Setting\Tax;
class Taxes extends Controller
{
/**
* Store a newly created resource in storage.
*
* @param Request $request
*
* @return Response
*/
public function store(Request $request)
{
Tax::create($request->all());
$message = trans('messages.success.added', ['type' => trans_choice('general.tax_rates', 1)]);
flash($message)->success();
return redirect('settings/taxes');
}
/**
* Show the form for editing the specified resource.
*
@ -33,9 +15,11 @@ class Taxes extends Controller
*
* @return Response
*/
public function edit(Tax $tax)
public function edit()
{
return view('settings.taxes.edit', compact('tax'));
$tax = [];
return view('wizard.taxes.edit', compact('tax'));
}
/**
@ -70,56 +54,4 @@ class Taxes extends Controller
return redirect('settings/taxes/' . $tax->id . '/edit');
}
}
/**
* Enable the specified resource.
*
* @param Tax $tax
*
* @return Response
*/
public function enable(Tax $tax)
{
$tax->enabled = 1;
$tax->save();
$message = trans('messages.success.enabled', ['type' => trans_choice('general.tax_rates', 1)]);
flash($message)->success();
return redirect()->route('taxes.index');
}
/**
* Disable the specified resource.
*
* @param Tax $tax
*
* @return Response
*/
public function disable(Tax $tax)
{
$relationships = $this->countRelationships($tax, [
'items' => 'items',
'invoice_items' => 'invoices',
'bill_items' => 'bills',
]);
if (empty($relationships)) {
$tax->enabled = 0;
$tax->save();
$message = trans('messages.success.disabled', ['type' => trans_choice('general.tax_rates', 1)]);
flash($message)->success();
} else {
$message = trans('messages.warning.disabled', ['name' => $tax->name, 'text' => implode(', ', $relationships)]);
flash($message)->warning();
return redirect()->route('taxes.index');
}
return redirect()->route('taxes.index');
}
}