authorizeIe('ie.revisions.view'); $businessId = $this->businessId(); if ($request->ajax()) { $query = LineRevision::forBusiness($businessId) ->with('lineTemplate.productPlatform'); return DataTables::of($query) ->addColumn('template_name', fn ($row) => $row->lineTemplate?->name ?? '—') ->addColumn('platform_name', fn ($row) => $row->lineTemplate?->productPlatform?->name ?? '—') ->addColumn('action', fn ($row) => '') ->rawColumns(['action']) ->make(true); } return view('industrialengineering::line_revisions.index'); } public function create() { $this->authorizeIe('ie.revisions.create'); $templates = \Modules\IndustrialEngineering\Models\LineTemplate::forBusiness($this->businessId())->pluck('name', 'id'); return view('industrialengineering::line_revisions.create', compact('templates')); } public function store(Request $request) { $this->authorizeIe('ie.revisions.create'); $data = $request->validate([ 'line_template_id' => 'required|exists:ie_line_templates,id', 'revision_code' => 'required|string|max:50', 'name' => 'nullable|string|max:255', 'description' => 'nullable|string', ]); $data['business_id'] = $this->businessId(); $revision = LineRevision::create($data); return redirect()->action([self::class, 'show'], $revision->id) ->with('status', ['success' => true, 'msg' => __('industrialengineering::lang.saved')]); } public function show($id) { $this->authorizeIe('ie.revisions.view'); $revision = LineRevision::forBusiness($this->businessId()) ->with(['lineTemplate.productPlatform', 'boms', 'costScenarios', 'releasePackages']) ->findOrFail($id); return view('industrialengineering::line_revisions.show', compact('revision')); } }