61 lines
3.0 KiB
PHP
61 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\Crm\Http\Middleware;
|
|
|
|
use App\Business;
|
|
use App\Contact;
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
use Menu;
|
|
|
|
class ContactSidebarMenu
|
|
{
|
|
/**
|
|
* Handle an incoming request.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param \Closure $next
|
|
* @return mixed
|
|
*/
|
|
public function handle(Request $request, Closure $next)
|
|
{
|
|
if ($request->ajax()) {
|
|
return $next($request);
|
|
}
|
|
|
|
Menu::create('contact-sidebar-menu', function ($menu) {
|
|
//retrieve contact type
|
|
$contact = Contact::where('business_id', auth()->user()->business_id)
|
|
->findOrFail(auth()->user()->crm_contact_id);
|
|
|
|
$crm_settings = Business::where('id', auth()->user()->business_id)
|
|
->value('crm_settings');
|
|
$crm_settings = ! empty($crm_settings) ? json_decode($crm_settings, true) : [];
|
|
|
|
$menu->url(action([\Modules\Crm\Http\Controllers\DashboardController::class, 'index']), __('home.home'), ['icon' => 'fa fas fa-tachometer-alt', 'active' => request()->segment(1) == 'contact' && request()->segment(2) == 'contact-dashboard'])->order(1);
|
|
|
|
if (in_array($contact->type, ['supplier', 'both'])) {
|
|
$menu->url(action([\Modules\Crm\Http\Controllers\PurchaseController::class, 'getPurchaseList']), __('purchase.list_purchase'), ['icon' => 'fa fas fa-list', 'active' => request()->segment(1) == 'contact' && request()->segment(2) == 'contact-purchases'])->order(2);
|
|
}
|
|
|
|
if (in_array($contact->type, ['customer', 'both'])) {
|
|
$menu->url(action([\Modules\Crm\Http\Controllers\SellController::class, 'getSellList']), __('lang_v1.all_sales'), ['icon' => 'fa fas fa-list', 'active' => request()->segment(1) == 'contact' && request()->segment(2) == 'contact-sells'])->order(3);
|
|
|
|
if (! empty($crm_settings['enable_order_request'])) {
|
|
$menu->url(action([\Modules\Crm\Http\Controllers\OrderRequestController::class, 'index']), __('crm::lang.order_request'), ['icon' => 'fa fas fa-arrow-circle-up', 'active' => request()->segment(1) == 'contact' && request()->segment(2) == 'order-request'])->order(4);
|
|
}
|
|
}
|
|
|
|
$menu->url(action([\Modules\Crm\Http\Controllers\LedgerController::class, 'index']), __('lang_v1.ledger'), ['icon' => 'fas fa-scroll', 'active' => request()->segment(1) == 'contact' && request()->segment(2) == 'contact-ledger'])->order(3);
|
|
|
|
$enabled_modules = ! empty(session('business.enabled_modules')) ? session('business.enabled_modules') : [];
|
|
|
|
if (in_array('booking', $enabled_modules)) {
|
|
$menu->url(action([\Modules\Crm\Http\Controllers\ContactBookingController::class, 'index']), __('restaurant.bookings'), ['icon' => 'fas fa fa-calendar-check', 'active' => request()->segment(1) == 'contact' && request()->segment(2) == 'bookings'])->order(3);
|
|
}
|
|
});
|
|
|
|
return $next($request);
|
|
}
|
|
}
|