public function edit(Request $request) { $postData = $request->all(); $id = $postData['id']; // $ptype= QltyData::find($id)->get('PRODUCT_TYPE'); $dcTable = QltyData::getTableName(); $qltyDataDetail = QltyDataDetail::getTableName(); $qltyProductElementType = QltyProductElementType::getTableName(); $properties = $this->getOriginProperties($qltyDataDetail); $dataSet = QltyProductElementType::join($dcTable, function ($query) use($dcTable, $id, $qltyProductElementType) { $query->on("{$dcTable}.PRODUCT_TYPE", '=', "{$qltyProductElementType}.PRODUCT_TYPE")->where("{$dcTable}.ID", '=', $id); })->leftJoin($qltyDataDetail, function ($join) use($qltyDataDetail, $id, $qltyProductElementType) { $join->on("{$qltyDataDetail}.ELEMENT_TYPE", '=', "{$qltyProductElementType}.ID")->where("{$qltyDataDetail}.QLTY_DATA_ID", '=', $id); })->select("{$qltyProductElementType}.ID as ID", "{$qltyProductElementType}.ID as DT_RowId", "{$qltyProductElementType}.ORDER", "{$qltyProductElementType}.NAME", "{$qltyProductElementType}.PRODUCT_TYPE", "{$qltyProductElementType}.DEFAULT_UOM", "{$qltyDataDetail}.*")->get(); $datasetGroups = $dataSet->groupBy(function ($item, $key) { return $item['DEFAULT_UOM'] == 'Mole fraction' ? 'MOLE_FACTION' : 'NONE_MOLE_FACTION'; }); $results = []; if ($datasetGroups->has('NONE_MOLE_FACTION')) { $gasElementColumns = ['ELEMENT_TYPE', 'VALUE', 'UOM']; $noneMole = $properties->groupBy(function ($item, $key) use($gasElementColumns) { return in_array($item->name, $gasElementColumns) ? 'NONE_MOLE_FACTION' : 'MOLE_FACTION'; }); $results['NONE_MOLE_FACTION'] = ['properties' => $noneMole['NONE_MOLE_FACTION'], 'dataSet' => $datasetGroups['NONE_MOLE_FACTION']]; } if ($datasetGroups->has('MOLE_FACTION')) { $oilElementColumns = ['VALUE', 'UOM']; $noneMole = $properties->groupBy(function ($item, $key) use($oilElementColumns) { return in_array($item->name, $oilElementColumns) ? 'NONE_MOLE_FACTION' : 'MOLE_FACTION'; }); $results['MOLE_FACTION'] = ['properties' => $noneMole['MOLE_FACTION'], 'dataSet' => $datasetGroups['MOLE_FACTION']]; } return response()->json($results); }