101 lines
3.3 KiB
PHP
101 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace Modules\Crm\Http\Controllers;
|
|
|
|
use App\Business;
|
|
use App\Utils\ModuleUtil;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\Crm\Utils\CrmUtil;
|
|
|
|
class CrmSettingsController extends Controller
|
|
{
|
|
/**
|
|
* All Utils instance.
|
|
*/
|
|
protected $crmUtil;
|
|
|
|
protected $moduleUtil;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct(CrmUtil $crmUtil, ModuleUtil $moduleUtil)
|
|
{
|
|
$this->crmUtil = $crmUtil;
|
|
$this->moduleUtil = $moduleUtil;
|
|
}
|
|
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function index()
|
|
{
|
|
$business_id = request()->session()->get('user.business_id');
|
|
|
|
$is_admin = $this->moduleUtil->is_admin(auth()->user());
|
|
|
|
if (! (auth()->user()->can('superadmin') || ($this->moduleUtil->hasThePermissionInSubscription($business_id, 'crm_module')) && $is_admin)) {
|
|
abort(403, 'Unauthorized action.');
|
|
}
|
|
|
|
$crm_settings = \Modules\Crm\Utils\TelemarketingUtil::mergeSettings($this->crmUtil->getCrmSettings($business_id));
|
|
|
|
return view('crm::settings.index')
|
|
->with(compact('crm_settings'));
|
|
}
|
|
|
|
/**
|
|
* Show the form for creating a new resource.
|
|
*
|
|
* @return Response
|
|
*/
|
|
public function updateSettings(Request $request)
|
|
{
|
|
$business_id = request()->session()->get('user.business_id');
|
|
|
|
$is_admin = $this->moduleUtil->is_admin(auth()->user());
|
|
|
|
if (! (auth()->user()->can('superadmin') || ($this->moduleUtil->hasThePermissionInSubscription($business_id, 'crm_module')) && $is_admin)) {
|
|
abort(403, 'Unauthorized action.');
|
|
}
|
|
|
|
try {
|
|
$input = $request->only([
|
|
'order_request_prefix', 'phone_list_reminder_days',
|
|
'call_lock_minutes', 'daily_call_target_per_agent', 'followup_days_after_interested',
|
|
]);
|
|
|
|
$crm_settings = $this->crmUtil->getCrmSettings($business_id);
|
|
$input = array_merge(\Modules\Crm\Utils\TelemarketingUtil::mergeSettings($crm_settings), $input);
|
|
|
|
$input['enable_order_request'] = $request->has('enable_order_request') ? 1 : 0;
|
|
$input['enable_phone_list_reminder'] = $request->has('enable_phone_list_reminder') ? 1 : 0;
|
|
$input['enable_telemarketing'] = $request->has('enable_telemarketing') ? 1 : 0;
|
|
$input['auto_create_followup_on_interested'] = $request->has('auto_create_followup_on_interested') ? 1 : 0;
|
|
$input['enable_call_recording'] = $request->has('enable_call_recording') ? 1 : 0;
|
|
$input['enable_ai_sentiment'] = $request->has('enable_ai_sentiment') ? 1 : 0;
|
|
|
|
Business::where('id', $business_id)
|
|
->update(['crm_settings' => json_encode($input)]);
|
|
|
|
$output = ['success' => true,
|
|
'msg' => __('lang_v1.updated_success'),
|
|
];
|
|
} catch (\Exception $e) {
|
|
\Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage());
|
|
|
|
$output = ['success' => false,
|
|
'msg' => __('messages.something_went_wrong'),
|
|
];
|
|
}
|
|
|
|
return redirect()->back()->with(['status' => $output]);
|
|
}
|
|
}
|