public function getInputDataSet($postData, $occur_date) { $phase_type = $postData['ExtensionPhaseType']; $value_type = $postData['ExtensionValueType']; $data_source = $postData['ExtensionDataSource']; $objs = $this->getPostObjects($postData); $objdata = array(); $objinfo = []; foreach ($objs as $obj) { if ($obj) { $ss = explode(":", $obj); $obj_id = $ss[1]; $src = $ss[0]; $obj_name = $ss[2]; $pre = $src; $pvalue = $src; $ele = $this->getElement($obj_name); $where = ["OCCUR_DATE" => $occur_date]; if ($src == "ENERGY_UNIT") { $pre = "EU"; $pvalue = $pre; $where['FLOW_PHASE'] = $phase_type; } else { if ($src == "FLOW") { $pvalue = "FL"; } } $where["{$pre}" . "_ID"] = $obj_id; $qlty_src_type = CodeQltySrcType::where('CODE', '=', $src)->first(); $mdl = $this->getObjectTable($src, $data_source); $objectData = $mdl::where($where)->select("OBS_TEMP", "OBS_PRESS", "{$pvalue}" . "_DATA_{$value_type} as OBJ_VALUE")->orderBy('OCCUR_DATE')->first(); $qltyData = QltyData::getTableName(); $qltyProductElementType = QltyProductElementType::getTableName(); $qltyDataDetail = QltyDataDetail::getTableName(); $qlty_datas = QltyData::join($qltyDataDetail, "{$qltyData}.ID", '=', "{$qltyDataDetail}.QLTY_DATA_ID")->join($qltyProductElementType, function ($query) use($qltyDataDetail, $phase_type, $qltyProductElementType) { $query->on("{$qltyDataDetail}.ELEMENT_TYPE", '=', "{$qltyProductElementType}.ID")->where("{$qltyProductElementType}.PRODUCT_TYPE", '=', $phase_type); })->whereHas('CodeQltySrcType', function ($query) use($src) { $query->where("CODE", $src)->skip(0)->take(1); })->where("{$qltyData}.SRC_ID", $obj_id)->where("{$qltyData}.PRODUCT_TYPE", $phase_type)->where('EFFECTIVE_DATE', '=', $occur_date)->select("{$qltyProductElementType}.NAME", "{$qltyDataDetail}.MOLE_FACTION")->get(); // foreach($workingDataSet as $objectData){ if ($objectData) { foreach ($qlty_datas as $qlty) { if (array_key_exists($qlty->NAME, $ele)) { $ele[$qlty->NAME] = $qlty->MOLE_FACTION ? $qlty->MOLE_FACTION : 0; } } $ele["Pressure"] = \Helper::getRoundValue($objectData->OBS_PRESS); $ele["Temperature"] = \Helper::getRoundValue($objectData->OBS_TEMP); $ele["Volume"] = \Helper::getRoundValue($objectData->OBJ_VALUE); $objdata["{$src}" . "_{$obj_id}"] = $ele; $objinfo[] = array("src" => $src, "pre" => $pre, "obj_id" => $obj_id); } // } } } return ['data' => $objdata, 'info' => $objinfo]; }
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); }