akaunting 3.0 (the last dance)
This commit is contained in:
@ -24,7 +24,7 @@ class Categories extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$categories = Category::collect();
|
||||
$categories = Category::with('sub_categories')->collect();
|
||||
|
||||
$transfer_id = Category::transfer();
|
||||
|
||||
@ -52,7 +52,21 @@ class Categories extends Controller
|
||||
{
|
||||
$types = $this->getCategoryTypes();
|
||||
|
||||
return view('settings.categories.create', compact('types'));
|
||||
$categories = [];
|
||||
|
||||
foreach (config('type.category') as $type => $config) {
|
||||
$categories[$type] = [];
|
||||
}
|
||||
|
||||
Category::enabled()->orderBy('name')->get()->each(function ($category) use (&$categories) {
|
||||
$categories[$category->type][] = [
|
||||
'id' => $category->id,
|
||||
'title' => $category->name,
|
||||
'level' => $category->level,
|
||||
];
|
||||
});
|
||||
|
||||
return view('settings.categories.create', compact('types', 'categories'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -120,7 +134,25 @@ class Categories extends Controller
|
||||
|
||||
$type_disabled = (Category::where('type', $category->type)->count() == 1) ?: false;
|
||||
|
||||
return view('settings.categories.edit', compact('category', 'types', 'type_disabled'));
|
||||
$edited_category_id = $category->id;
|
||||
|
||||
$categories = [];
|
||||
|
||||
foreach (config('type.category') as $type => $config) {
|
||||
$categories[$type] = [];
|
||||
}
|
||||
|
||||
Category::enabled()->orderBy('name')->get()->each(function ($category) use (&$categories, $edited_category_id) {
|
||||
if ($edited_category_id != $category->id) {
|
||||
$categories[$category->type][] = [
|
||||
'id' => $category->id,
|
||||
'title' => $category->name,
|
||||
'level' => $category->level,
|
||||
];
|
||||
}
|
||||
});
|
||||
|
||||
return view('settings.categories.edit', compact('category', 'types', 'type_disabled', 'categories'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -131,8 +163,10 @@ class Categories extends Controller
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Category $category, Request $request)
|
||||
public function update($category_id, Request $request)
|
||||
{
|
||||
$category = $this->getCategoryWithoutChildren($category_id);
|
||||
|
||||
$response = $this->ajaxDispatch(new UpdateCategory($category, $request));
|
||||
|
||||
if ($response['success']) {
|
||||
@ -142,7 +176,7 @@ class Categories extends Controller
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('categories.edit', $category->id);
|
||||
$response['redirect'] = route('categories.edit', $category_id);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
@ -159,8 +193,10 @@ class Categories extends Controller
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function enable(Category $category)
|
||||
public function enable($category_id)
|
||||
{
|
||||
$category = $this->getCategoryWithoutChildren($category_id);
|
||||
|
||||
$response = $this->ajaxDispatch(new UpdateCategory($category, request()->merge(['enabled' => 1])));
|
||||
|
||||
if ($response['success']) {
|
||||
@ -177,8 +213,10 @@ class Categories extends Controller
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function disable(Category $category)
|
||||
public function disable($category_id)
|
||||
{
|
||||
$category = $this->getCategoryWithoutChildren($category_id);
|
||||
|
||||
$response = $this->ajaxDispatch(new UpdateCategory($category, request()->merge(['enabled' => 0])));
|
||||
|
||||
if ($response['success']) {
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Abstracts\Http\SettingController;
|
||||
|
||||
class Company extends Controller
|
||||
class Company extends SettingController
|
||||
{
|
||||
public function edit()
|
||||
{
|
||||
|
@ -2,26 +2,19 @@
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Models\Banking\Account;
|
||||
use App\Abstracts\Http\SettingController;
|
||||
use App\Models\Setting\Category;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Models\Setting\Tax;
|
||||
use App\Utilities\Modules;
|
||||
|
||||
class Defaults extends Controller
|
||||
class Defaults extends SettingController
|
||||
{
|
||||
public function edit()
|
||||
{
|
||||
$accounts = Account::enabled()->orderBy('name')->pluck('name', 'id');
|
||||
|
||||
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code');
|
||||
|
||||
$sales_categories = Category::income()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
|
||||
$sales_categories = Category::income()->enabled()->orderBy('name')->take(setting('default.select_limit'))->get();
|
||||
|
||||
$sale_category_id = setting('default.income_category');
|
||||
|
||||
if ($sale_category_id && !$sales_categories->has($sale_category_id)) {
|
||||
if ($sale_category_id && !$sales_categories->pluck('id')->flip()->has($sale_category_id)) {
|
||||
$category = Category::find($sale_category_id);
|
||||
|
||||
if ($category) {
|
||||
@ -29,11 +22,11 @@ class Defaults extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$purchases_categories = Category::expense()->enabled()->orderBy('name')->take(setting('default.select_limit'))->pluck('name', 'id');
|
||||
$purchases_categories = Category::expense()->enabled()->orderBy('name')->take(setting('default.select_limit'))->get();
|
||||
|
||||
$expense_category_id = setting('default.expense_category');
|
||||
|
||||
if ($expense_category_id && !$purchases_categories->has($expense_category_id)) {
|
||||
if ($expense_category_id && !$purchases_categories->pluck('id')->flip()->has($expense_category_id)) {
|
||||
$category = Category::find($expense_category_id);
|
||||
|
||||
if ($category) {
|
||||
@ -43,15 +36,10 @@ class Defaults extends Controller
|
||||
|
||||
$taxes = Tax::enabled()->orderBy('name')->get()->pluck('title', 'id');
|
||||
|
||||
$payment_methods = Modules::getPaymentMethods();
|
||||
|
||||
return view('settings.default.edit', compact(
|
||||
'accounts',
|
||||
'currencies',
|
||||
'sales_categories',
|
||||
'purchases_categories',
|
||||
'taxes',
|
||||
'payment_methods'
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@ -2,50 +2,15 @@
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Abstracts\Http\SettingController;
|
||||
use App\Http\Requests\Setting\Setting as Request;
|
||||
use App\Jobs\Setting\UpdateEmailTemplate;
|
||||
use App\Models\Common\Company;
|
||||
use App\Models\Common\EmailTemplate;
|
||||
use App\Traits\Modules;
|
||||
use App\Utilities\Installer;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Email extends Controller
|
||||
class Email extends SettingController
|
||||
{
|
||||
use Modules;
|
||||
|
||||
public $skip_keys = ['company_id', '_method', '_token', '_prefix'];
|
||||
|
||||
/**
|
||||
* Instantiate a new controller instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// No need to check for permission in console
|
||||
if (app()->runningInConsole()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Add CRUD permission check
|
||||
$this->middleware('permission:create-settings-settings')->only('create', 'store', 'duplicate', 'import');
|
||||
$this->middleware('permission:read-settings-email')->only('index', 'show', 'edit', 'export');
|
||||
$this->middleware('permission:update-settings-settings')->only('update', 'enable', 'disable');
|
||||
$this->middleware('permission:delete-settings-settings')->only('destroy');
|
||||
}
|
||||
|
||||
public function edit()
|
||||
{
|
||||
$templates = EmailTemplate::all()->reject(function($template) {
|
||||
if (Str::startsWith($template->class, 'App')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$class = explode('\\', $template->class);
|
||||
|
||||
return $this->moduleIsDisabled(Str::kebab($class[1]));
|
||||
})->all();
|
||||
|
||||
$email_protocols = [
|
||||
'mail' => trans('settings.email.php'),
|
||||
'smtp' => trans('settings.email.smtp.name'),
|
||||
@ -53,105 +18,6 @@ class Email extends Controller
|
||||
'log' => trans('settings.email.log'),
|
||||
];
|
||||
|
||||
return view('settings.email.edit', compact(
|
||||
'templates',
|
||||
'email_protocols'
|
||||
));
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$fields = $request->all();
|
||||
$prefix = $request->get('_prefix', 'email');
|
||||
|
||||
$total_companies = Company::count();
|
||||
|
||||
foreach ($fields as $key => $value) {
|
||||
$real_key = $prefix . '.' . $key;
|
||||
|
||||
// Don't process unwanted keys
|
||||
if (in_array($key, $this->skip_keys)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (Str::startsWith($key, 'template_')) {
|
||||
$this->updateEmailTemplate($key, $fields);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($total_companies == 1) {
|
||||
$this->oneCompany($real_key, $value);
|
||||
}
|
||||
|
||||
setting()->set($real_key, $value);
|
||||
}
|
||||
|
||||
// Save all settings
|
||||
setting()->save();
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]);
|
||||
|
||||
$response = [
|
||||
'status' => null,
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'message' => $message,
|
||||
'data' => null,
|
||||
'redirect' => route('settings.index'),
|
||||
];
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
public function updateEmailTemplate($key, &$fields)
|
||||
{
|
||||
$alias = str_replace(['template_', '_subject', '_body'], '', $key);
|
||||
$subject_key = 'template_' . $alias . '_subject';
|
||||
$body_key = 'template_' . $alias . '_body';
|
||||
|
||||
if (empty($fields[$subject_key]) || empty($fields[$body_key])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$template = EmailTemplate::alias($alias)->first();
|
||||
|
||||
$this->dispatch(new UpdateEmailTemplate($template, [
|
||||
'subject' => $fields[$subject_key],
|
||||
'body' => $fields[$body_key],
|
||||
]));
|
||||
|
||||
unset($fields[$subject_key]);
|
||||
unset($fields[$body_key]);
|
||||
}
|
||||
|
||||
protected function oneCompany($real_key, $value)
|
||||
{
|
||||
if (empty($value)) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch ($real_key) {
|
||||
case 'email.protocol':
|
||||
Installer::updateEnv(['MAIL_MAILER' => '"' . $value . '"']);
|
||||
break;
|
||||
case 'email.smtp_host':
|
||||
Installer::updateEnv(['MAIL_HOST' => '"' . $value . '"']);
|
||||
break;
|
||||
case 'email.smtp_port':
|
||||
Installer::updateEnv(['MAIL_PORT' => '"' . $value . '"']);
|
||||
break;
|
||||
case 'email.smtp_username':
|
||||
Installer::updateEnv(['MAIL_USERNAME' => '"' . $value . '"']);
|
||||
break;
|
||||
case 'email.smtp_password':
|
||||
Installer::updateEnv(['MAIL_PASSWORD' => '"' . $value . '"']);
|
||||
break;
|
||||
case 'email.smtp_encryption':
|
||||
Installer::updateEnv(['MAIL_ENCRYPTION' => '"' . $value . '"']);
|
||||
break;
|
||||
}
|
||||
return view('settings.email.edit', compact('email_protocols'));
|
||||
}
|
||||
}
|
||||
|
84
app/Http/Controllers/Settings/EmailTemplates.php
Normal file
84
app/Http/Controllers/Settings/EmailTemplates.php
Normal file
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Http\Requests\Setting\EmailTemplate as Request;
|
||||
use App\Jobs\Setting\UpdateEmailTemplate;
|
||||
use App\Models\Setting\EmailTemplate;
|
||||
use App\Traits\Modules;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class EmailTemplates extends Controller
|
||||
{
|
||||
use Modules;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$templates = [];
|
||||
|
||||
EmailTemplate::all()->reject(function($template) {
|
||||
if (Str::startsWith($template->class, 'App')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$class = explode('\\', $template->class);
|
||||
|
||||
return $this->moduleIsDisabled(Str::kebab($class[1]));
|
||||
})->each(function ($template) use (&$templates) {
|
||||
$templates[$template->group][$template->id] = $template;
|
||||
});
|
||||
|
||||
ksort($templates);
|
||||
|
||||
return view('settings.email-templates.edit', compact('templates'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$template = EmailTemplate::find($request->id);
|
||||
|
||||
$response = $this->ajaxDispatch(new UpdateEmailTemplate($template, $request));
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = url()->previous();;
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans($template->name)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = url()->previous();;
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
public function get()
|
||||
{
|
||||
$template = EmailTemplate::find(request()->id);
|
||||
|
||||
$template->tags = trans('settings.email.templates.tags', ['tag_list'=> implode(', ', app($template->class)->getTags())]);
|
||||
|
||||
return response()->json([
|
||||
'errors' => false,
|
||||
'success' => true,
|
||||
'data' => $template,
|
||||
]);
|
||||
}
|
||||
}
|
@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Abstracts\Http\SettingController;
|
||||
|
||||
class Invoice extends Controller
|
||||
class Invoice extends SettingController
|
||||
{
|
||||
public function edit()
|
||||
{
|
||||
$item_names = [
|
||||
'hide' => trans('settings.invoice.hide.item_name'),
|
||||
'settings.invoice.item' => trans('settings.invoice.item'),
|
||||
'settings.invoice.product' => trans('settings.invoice.product'),
|
||||
'settings.invoice.service' => trans('settings.invoice.service'),
|
||||
@ -16,12 +17,14 @@ class Invoice extends Controller
|
||||
];
|
||||
|
||||
$price_names = [
|
||||
'hide' => trans('settings.invoice.hide.price'),
|
||||
'settings.invoice.price' => trans('settings.invoice.price'),
|
||||
'settings.invoice.rate' => trans('settings.invoice.rate'),
|
||||
'custom' => trans('settings.invoice.custom'),
|
||||
];
|
||||
|
||||
$quantity_names = [
|
||||
'hide' => trans('settings.invoice.hide.quantity'),
|
||||
'settings.invoice.quantity' => trans('settings.invoice.quantity'),
|
||||
'custom' => trans('settings.invoice.custom'),
|
||||
];
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Abstracts\Http\SettingController;
|
||||
use App\Traits\DateTime;
|
||||
|
||||
class Localisation extends Controller
|
||||
class Localisation extends SettingController
|
||||
{
|
||||
use DateTime;
|
||||
|
||||
|
@ -72,7 +72,7 @@ class Modules extends Controller
|
||||
'error' => false,
|
||||
'message' => $message,
|
||||
'data' => null,
|
||||
'redirect' => route('settings.index')//('settings/apps/' . $alias),
|
||||
'redirect' => route('settings.module.edit', $alias)//('settings/apps/' . $alias),
|
||||
];
|
||||
|
||||
flash($message)->success();
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Abstracts\Http\SettingController;
|
||||
|
||||
class Schedule extends Controller
|
||||
class Schedule extends SettingController
|
||||
{
|
||||
public function edit()
|
||||
{
|
||||
|
@ -1,186 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Http\Requests\Setting\Setting as Request;
|
||||
use App\Models\Common\Company;
|
||||
use App\Models\Module\Module;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Traits\DateTime;
|
||||
use App\Traits\Uploads;
|
||||
use App\Utilities\Installer;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Settings extends Controller
|
||||
{
|
||||
use DateTime, Uploads;
|
||||
|
||||
public $skip_keys = ['company_id', '_method', '_token', '_prefix'];
|
||||
|
||||
public $file_keys = ['company.logo', 'invoice.logo'];
|
||||
|
||||
public $uploaded_file_keys = ['company.uploaded_logo', 'invoice.uploaded_logo'];
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$modules = new \stdClass();
|
||||
$modules->settings = [];
|
||||
|
||||
// Get enabled modules
|
||||
$enabled_modules = Module::enabled()->get();
|
||||
|
||||
foreach ($enabled_modules as $module) {
|
||||
$m = module($module->alias);
|
||||
|
||||
// Check if the module exists and has settings
|
||||
if (!$m || empty($m->get('settings'))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$modules->settings[$m->getAlias()] = [
|
||||
'name' => $m->getName(),
|
||||
'description' => $m->getDescription(),
|
||||
'url' => route('settings.module.edit', ['alias' => $m->getAlias()]),
|
||||
'icon' => $m->get('icon', 'fa fa-cog'),
|
||||
];
|
||||
}
|
||||
|
||||
event(new \App\Events\Module\SettingShowing($modules));
|
||||
|
||||
$settings = [];
|
||||
|
||||
foreach ($modules->settings as $alias => $setting) {
|
||||
$permission = !empty($setting['permission']) ? $setting['permission'] : 'read-' . $alias . '-settings';
|
||||
|
||||
if (!user()->can($permission)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$settings[$alias] = $setting;
|
||||
}
|
||||
|
||||
return $this->response('settings.settings.index', ['modules' => $settings]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$fields = $request->all();
|
||||
$prefix = $request->get('_prefix', 'general');
|
||||
$company_id = $request->get('company_id');
|
||||
|
||||
if (empty($company_id)) {
|
||||
$company_id = company_id();
|
||||
}
|
||||
|
||||
$company = Company::find($company_id);
|
||||
|
||||
$total_companies = Company::count();
|
||||
|
||||
foreach ($fields as $key => $value) {
|
||||
$real_key = $prefix . '.' . $key;
|
||||
|
||||
// Don't process unwanted keys
|
||||
if (in_array($key, $this->skip_keys)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// change dropzone middleware already uploaded file
|
||||
if (in_array($real_key, $this->uploaded_file_keys)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Process file uploads
|
||||
if (in_array($real_key, $this->file_keys)) {
|
||||
// Upload attachment
|
||||
if ($request->file($key)) {
|
||||
$media = $this->getMedia($request->file($key), 'settings');
|
||||
|
||||
$company->attachMedia($media, Str::snake($real_key));
|
||||
|
||||
$value = $media->id;
|
||||
}
|
||||
|
||||
// Prevent reset
|
||||
if (empty($value)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ($real_key == 'default.locale') {
|
||||
if (!in_array($value, config('language.allowed'))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
user()->setAttribute('locale', $value)->save();
|
||||
}
|
||||
|
||||
if ($real_key == 'default.currency') {
|
||||
$currencies = Currency::enabled()->pluck('code')->toArray();
|
||||
|
||||
if (!in_array($value, $currencies)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$currency = Currency::code($value)->first();
|
||||
$currency->rate = '1';
|
||||
$currency->save();
|
||||
}
|
||||
|
||||
// If only 1 company
|
||||
if ($total_companies == 1) {
|
||||
$this->oneCompany($real_key, $value);
|
||||
}
|
||||
|
||||
setting()->set($real_key, $value);
|
||||
}
|
||||
|
||||
// Save all settings
|
||||
setting()->save();
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]);
|
||||
|
||||
$response = [
|
||||
'status' => null,
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'message' => $message,
|
||||
'data' => null,
|
||||
'redirect' => route('settings.index'),
|
||||
];
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
protected function oneCompany($real_key, $value)
|
||||
{
|
||||
switch ($real_key) {
|
||||
case 'company.name':
|
||||
Installer::updateEnv(['MAIL_FROM_NAME' => '"' . $value . '"']);
|
||||
break;
|
||||
case 'company.email':
|
||||
Installer::updateEnv(['MAIL_FROM_ADDRESS' => '"' . $value . '"']);
|
||||
break;
|
||||
case 'default.locale':
|
||||
Installer::updateEnv(['APP_LOCALE' => '"' . $value . '"']);
|
||||
break;
|
||||
case 'schedule.time':
|
||||
Installer::updateEnv(['APP_SCHEDULE_TIME' => '"' . $value . '"']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
@ -3,7 +3,10 @@
|
||||
namespace App\Http\Controllers\Settings;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Exports\Settings\Taxes as Export;
|
||||
use App\Http\Requests\Common\Import as ImportRequest;
|
||||
use App\Http\Requests\Setting\Tax as Request;
|
||||
use App\Imports\Settings\Taxes as Import;
|
||||
use App\Jobs\Setting\CreateTax;
|
||||
use App\Jobs\Setting\DeleteTax;
|
||||
use App\Jobs\Setting\UpdateTax;
|
||||
@ -11,7 +14,6 @@ use App\Models\Setting\Tax;
|
||||
|
||||
class Taxes extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
@ -94,6 +96,30 @@ class Taxes extends Controller
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
* @param ImportRequest $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
$response = $this->importExcel(new Import, $request, trans_choice('general.taxes', 2));
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('taxes.index');
|
||||
|
||||
flash($response['message'])->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['settings', 'taxes']);
|
||||
|
||||
flash($response['message'])->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
@ -210,4 +236,14 @@ class Taxes extends Controller
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Export the specified resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function export()
|
||||
{
|
||||
return $this->exportExcel(new Export, trans_choice('general.taxes', 2));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user