first commit
This commit is contained in:
125
app/Http/Controllers/Settings/Categories.php
Normal file
125
app/Http/Controllers/Settings/Categories.php
Normal file
@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Setting\Category as Request;
|
||||
use App\Models\Setting\Category;
|
||||
|
||||
class Categories extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$categories = Category::collect();
|
||||
|
||||
$types = collect(['expense' => 'Expense', 'income' => 'Income', 'item' => 'Item', 'other' => 'Other'])
|
||||
->prepend(trans('categories.all_types'), '');
|
||||
|
||||
return view('settings.categories.index', compact('categories', 'types'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('settings.categories.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
Category::create($request->all());
|
||||
|
||||
$message = trans('messages.success.added', ['type' => trans_choice('general.categories', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('settings/categories');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param Category $category
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit(Category $category)
|
||||
{
|
||||
return view('settings.categories.edit', compact('category'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Category $category
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Category $category, Request $request)
|
||||
{
|
||||
$category->update($request->all());
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.categories', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('settings/categories');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param Category $category
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy(Category $category)
|
||||
{
|
||||
$canDelete = $category->canDelete();
|
||||
|
||||
if ($canDelete === true) {
|
||||
$category->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => trans_choice('general.categories', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$text = array();
|
||||
|
||||
if (isset($canDelete['items'])) {
|
||||
$text[] = '<b>' . $canDelete['items'] . '</b> ' . trans_choice('general.items', ($canDelete['items'] > 1) ? 2 : 1);
|
||||
}
|
||||
|
||||
if (isset($canDelete['payments'])) {
|
||||
$text[] = '<b>' . $canDelete['payments'] . '</b> ' . trans_choice('general.payments', ($canDelete['payments'] > 1) ? 2 : 1);
|
||||
}
|
||||
|
||||
if (isset($canDelete['revenues'])) {
|
||||
$text[] = '<b>' . $canDelete['revenues'] . '</b> ' . trans_choice('general.items', ($canDelete['revenues'] > 1) ? 2 : 1);
|
||||
}
|
||||
|
||||
$message = trans('messages.warning.deleted', ['type' => trans_choice('general.categories', 1), 'text' => implode(', ', $text)]);
|
||||
|
||||
flash($message)->warning();
|
||||
}
|
||||
|
||||
return redirect('settings/categories');
|
||||
}
|
||||
}
|
146
app/Http/Controllers/Settings/Currencies.php
Normal file
146
app/Http/Controllers/Settings/Currencies.php
Normal file
@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Setting\Currency as Request;
|
||||
use App\Models\Banking\Account;
|
||||
use App\Models\Setting\Currency;
|
||||
use ClickNow\Money\Currency as MoneyCurrency;
|
||||
|
||||
class Currencies extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$currencies = Currency::collect();
|
||||
|
||||
return view('settings.currencies.index', compact('currencies', 'codes', 'rates'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
// Prepare codes
|
||||
$codes = array();
|
||||
$currencies = MoneyCurrency::getCurrencies();
|
||||
foreach ($currencies as $key => $item) {
|
||||
$codes[$key] = $key;
|
||||
}
|
||||
|
||||
return view('settings.currencies.create', compact('codes'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
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)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('settings/currencies');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param Currency $currency
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit(Currency $currency)
|
||||
{
|
||||
// Prepare codes
|
||||
$codes = array();
|
||||
$currencies = MoneyCurrency::getCurrencies();
|
||||
foreach ($currencies as $key => $item) {
|
||||
$codes[$key] = $key;
|
||||
}
|
||||
|
||||
// Set default currency
|
||||
$currency->default_currency = ($currency->code == setting('general.default_currency')) ? 1 : 0;
|
||||
|
||||
return view('settings.currencies.edit', compact('currency', 'codes'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Currency $currency
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Currency $currency, Request $request)
|
||||
{
|
||||
$currency->update($request->all());
|
||||
|
||||
// Update default currency setting
|
||||
if ($request['default_currency']) {
|
||||
setting()->set('general.default_currency', $request['code']);
|
||||
setting()->save();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.currencies', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('settings/currencies');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param Currency $currency
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy(Currency $currency)
|
||||
{
|
||||
$currency->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => trans_choice('general.currencies', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('settings/currencies');
|
||||
}
|
||||
|
||||
public function currency()
|
||||
{
|
||||
$json = new \stdClass();
|
||||
|
||||
$account_id = request('account_id');
|
||||
|
||||
if ($account_id) {
|
||||
$currencies = Currency::enabled()->pluck('name', 'code')->toArray();
|
||||
|
||||
$json->currency_code = Account::where('id', $account_id)->pluck('currency_code')->first();
|
||||
$json->currency_name = $currencies[$json->currency_code];
|
||||
}
|
||||
|
||||
return response()->json($json);
|
||||
}
|
||||
}
|
62
app/Http/Controllers/Settings/Modules.php
Normal file
62
app/Http/Controllers/Settings/Modules.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Setting\Setting;
|
||||
use File;
|
||||
use Module;
|
||||
|
||||
class Modules extends Controller
|
||||
{
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit($alias)
|
||||
{
|
||||
/*$setting = Setting::all($alias)->pluck('value', 'key');*/
|
||||
$setting = Setting::all($alias)->map(function($s) use($alias) {
|
||||
$s->key = str_replace($alias . '.', '', $s->key);
|
||||
return $s;
|
||||
})->pluck('value', 'key');
|
||||
|
||||
$module = Module::get($alias);
|
||||
|
||||
return view('settings.modules.edit', compact('setting', 'module'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param $alias
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update($alias)
|
||||
{
|
||||
$fields = request()->all();
|
||||
|
||||
$skip_keys = ['company_id', '_method', '_token'];
|
||||
|
||||
foreach ($fields as $key => $value) {
|
||||
// Don't process unwanted keys
|
||||
if (in_array($key, $skip_keys)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
setting()->set($alias . '.' . $key, $value);
|
||||
}
|
||||
|
||||
// Save all settings
|
||||
setting()->save();
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('settings/modules/' . $alias);
|
||||
}
|
||||
|
||||
}
|
118
app/Http/Controllers/Settings/Settings.php
Normal file
118
app/Http/Controllers/Settings/Settings.php
Normal file
@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Setting\Setting as Request;
|
||||
use App\Models\Banking\Account;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Models\Setting\Tax;
|
||||
use App\Models\Setting\Setting;
|
||||
use App\Traits\DateTime;
|
||||
use App\Traits\Uploads;
|
||||
|
||||
class Settings extends Controller
|
||||
{
|
||||
use DateTime, Uploads;
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
/*$setting = Setting::all()->pluck('value', 'key');*/
|
||||
$setting = Setting::all()->map(function($s) {
|
||||
$s->key = str_replace('general.', '', $s->key);
|
||||
return $s;
|
||||
})->pluck('value', 'key');
|
||||
|
||||
$timezones = $this->getTimezones();
|
||||
|
||||
$accounts = Account::enabled()->pluck('name', 'id');
|
||||
|
||||
$currencies = Currency::enabled()->pluck('name', 'code');
|
||||
|
||||
$taxes = Tax::enabled()->pluck('name', 'id');
|
||||
|
||||
$date_formats = [
|
||||
'd M Y' => '31 Dec 2017',
|
||||
'd F Y' => '31 December 2017',
|
||||
'd m Y' => '31 12 2017',
|
||||
'm d Y' => '12 31 2017',
|
||||
'Y m d' => '2017 12 31'
|
||||
];
|
||||
|
||||
$date_separators = [
|
||||
'dash' => trans('settings.localisation.date.dash'),
|
||||
'slash' => trans('settings.localisation.date.slash'),
|
||||
'dot' => trans('settings.localisation.date.dot'),
|
||||
'comma' => trans('settings.localisation.date.comma'),
|
||||
'space' => trans('settings.localisation.date.space'),
|
||||
];
|
||||
|
||||
$email_protocols = [
|
||||
'mail' => trans('settings.email.php'),
|
||||
'smtp' => trans('settings.email.smtp.name'),
|
||||
'sendmail' => trans('settings.email.sendmail'),
|
||||
'log' => trans('settings.email.log')
|
||||
];
|
||||
|
||||
return view('settings.settings.edit', compact(
|
||||
'setting',
|
||||
'timezones',
|
||||
'accounts',
|
||||
'currencies',
|
||||
'taxes',
|
||||
'date_formats',
|
||||
'date_separators',
|
||||
'email_protocols'
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$fields = $request->all();
|
||||
$company_id = $request->get('company_id');
|
||||
|
||||
$skip_keys = ['company_id', '_method', '_token'];
|
||||
$file_keys = ['company_logo', 'invoice_logo'];
|
||||
|
||||
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)) {
|
||||
$value = $this->getUploadedFilePath($request->file($key), 'settings');
|
||||
|
||||
// Prevent reset
|
||||
if (empty($value)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
setting()->set('general.' . $key, $value);
|
||||
}
|
||||
|
||||
// Save all settings
|
||||
setting()->save();
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('settings/settings');
|
||||
}
|
||||
|
||||
}
|
122
app/Http/Controllers/Settings/Taxes.php
Normal file
122
app/Http/Controllers/Settings/Taxes.php
Normal file
@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Setting\Tax as Request;
|
||||
use App\Models\Setting\Tax;
|
||||
|
||||
class Taxes extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$taxes = Tax::collect();
|
||||
|
||||
return view('settings.taxes.index', compact('taxes', 'rates'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('settings.taxes.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* @param Tax $tax
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit(Tax $tax)
|
||||
{
|
||||
return view('settings.taxes.edit', compact('tax'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Tax $tax
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Tax $tax, Request $request)
|
||||
{
|
||||
$tax->update($request->all());
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.tax_rates', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect('settings/taxes');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param Tax $tax
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy(Tax $tax)
|
||||
{
|
||||
$canDelete = $tax->canDelete();
|
||||
|
||||
if ($canDelete === true) {
|
||||
$tax->delete();
|
||||
|
||||
$message = trans('messages.success.deleted', ['type' => trans_choice('general.taxes', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$text = array();
|
||||
|
||||
if (isset($canDelete['items'])) {
|
||||
$text[] = '<b>' . $canDelete['items'] . '</b> ' . trans_choice('general.items', ($canDelete['items'] > 1) ? 2 : 1);
|
||||
}
|
||||
|
||||
if (isset($canDelete['bills'])) {
|
||||
$text[] = '<b>' . $canDelete['bills'] . '</b> ' . trans_choice('general.bills', ($canDelete['bills'] > 1) ? 2 : 1);
|
||||
}
|
||||
|
||||
if (isset($canDelete['invoices'])) {
|
||||
$text[] = '<b>' . $canDelete['invoices'] . '</b> ' . trans_choice('general.items', ($canDelete['invoices'] > 1) ? 2 : 1);
|
||||
}
|
||||
|
||||
$message = trans('messages.warning.deleted', ['type' => trans_choice('general.taxes', 1), 'text' => implode(', ', $text)]);
|
||||
|
||||
flash($message)->warning();
|
||||
}
|
||||
|
||||
return redirect('settings/taxes');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user