52 lines
2.3 KiB
PHP
52 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace Modules\IndustrialEngineering\Http\Controllers;
|
|
|
|
use Illuminate\Routing\Controller;
|
|
use Modules\IndustrialEngineering\Http\Controllers\Concerns\AuthorizesIndustrialEngineering;
|
|
use Modules\IndustrialEngineering\Models\Bom;
|
|
use Modules\IndustrialEngineering\Models\CostScenario;
|
|
use Modules\IndustrialEngineering\Models\CustomerInstalledAsset;
|
|
use Modules\IndustrialEngineering\Models\ProductPlatform;
|
|
use Modules\IndustrialEngineering\Models\LineTemplate;
|
|
use Modules\IndustrialEngineering\Models\ItemMaster;
|
|
use Modules\IndustrialEngineering\Models\LineRevision;
|
|
use Modules\IndustrialEngineering\Models\ReleasePackage;
|
|
use Modules\IndustrialEngineering\Models\ResearchProject;
|
|
use Modules\IndustrialEngineering\Models\SerializedUnit;
|
|
use Modules\IndustrialEngineering\Models\SupplierSourcingCase;
|
|
use Modules\IndustrialEngineering\Services\DigitalThreadAnalyticsService;
|
|
|
|
class DashboardController extends Controller
|
|
{
|
|
use AuthorizesIndustrialEngineering;
|
|
|
|
public function __construct(protected DigitalThreadAnalyticsService $analytics)
|
|
{
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
$this->authorizeIe('ie.view');
|
|
$businessId = $this->businessId();
|
|
|
|
$stats = [
|
|
'products' => ProductPlatform::forBusiness($businessId)->count(),
|
|
'production_lines' => LineTemplate::forBusiness($businessId)->whereNull('parent_template_id')->count(),
|
|
'item_masters' => ItemMaster::forBusiness($businessId)->count(),
|
|
'line_revisions' => LineRevision::forBusiness($businessId)->count(),
|
|
'boms' => Bom::forBusiness($businessId)->count(),
|
|
'cost_scenarios' => CostScenario::forBusiness($businessId)->count(),
|
|
'release_packages' => ReleasePackage::forBusiness($businessId)->count(),
|
|
'serialized_units' => SerializedUnit::forBusiness($businessId)->count(),
|
|
'installed_assets' => CustomerInstalledAsset::forBusiness($businessId)->count(),
|
|
'sourcing_cases' => SupplierSourcingCase::forBusiness($businessId)->where('status', 'open')->count(),
|
|
'research_projects' => ResearchProject::forBusiness($businessId)->where('status', 'active')->count(),
|
|
];
|
|
|
|
$thread = $this->analytics->dashboard($businessId);
|
|
|
|
return view('industrialengineering::dashboard.index', compact('stats', 'thread'));
|
|
}
|
|
}
|