public function cal(Request $request) { $postData = $request->all(); $id = $postData['id']; $isAll = isset($postData['isAll']) ? $postData['isAll'] : false; // $sql="select ID, FORMULA_ID from SHIP_CARGO_BLMR_DATA where BLMR_ID=$vid"; $where = $isAll ? ["BLMR_ID" => $id] : ["ID" => $id]; $blmrData = ShipCargoBlmrData::where($where)->select(["ID", "FORMULA_ID"])->get(); try { $ids = \DB::transaction(function () use($blmrData) { $ids = []; foreach ($blmrData as $shipCargoBlmrData) { $val = \FormulaHelpers::doEvalFormula($shipCargoBlmrData->FORMULA_ID); $shipCargoBlmrData->LAST_CALC_TIME = Carbon::now(); $shipCargoBlmrData->ITEM_VALUE = $val; $shipCargoBlmrData->save(); $ids[] = $shipCargoBlmrData->ID; } return $ids; /* $row=getOneRow("select ID, FORMULA_ID from SHIP_CARGO_BLMR_DATA where ID=$vid"); $val=evalFormula($row[FORMULA_ID],false,$vid); $sql="update SHIP_CARGO_BLMR_DATA set LAST_CALC_TIME=now(),ITEM_VALUE='$val' where ID=$vid"; */ }); } catch (\Exception $e) { // $results = "error"; $msg = $e->getMessage(); return response()->json($msg, 500); } $updatedData = ["ShipCargoBlmrData" => ShipCargoBlmrData::findManyWithConfig($ids)]; $results = ['updatedData' => $updatedData, 'postData' => $postData]; return response()->json($results); }
public function addyear(Request $request) { $postData = $request->all(); $contractId = $postData['PdContract']; $year = $postData['year']; $qltyFormulas = PdContractQtyFormula::all(); $formulaValues = \FormulaHelpers::getDataFormulaContract($qltyFormulas, $contractId, $year); $resultTransaction = \DB::transaction(function () use($qltyFormulas, $formulaValues, $contractId, $year) { $attributes = ['CONTRACT_ID' => $contractId]; $yAttributes = ['CONTRACT_ID' => $contractId, 'YEAR' => $year]; $yValues = ['CONTRACT_ID' => $contractId, 'YEAR' => $year]; // PdContractYear::where($yAttributes)->delete(); foreach ($qltyFormulas as $key => $qltyFormula) { $attributes['FORMULA_ID'] = $qltyFormula->ID; $values = $attributes; $calculation = PdContractCalculation::updateOrCreate($attributes, $values); /* $sql = "INSERT INTO pd_contract_calculation(FORMULA_ID,CONTRACT_ID) " . "VALUE(".$aryRequest['FORMULA_ID'.$id].",".$aryRequest['CONTRACT_ID'].")"; */ $formulaValue = (int) $formulaValues[$qltyFormula->ID]; $yAttributes['CALCULATION_ID'] = $calculation->ID; $yValues['CALCULATION_ID'] = $calculation->ID; $yValues['FORMULA_VALUE'] = $formulaValue; $contractYear = PdContractYear::updateOrCreate($yAttributes, $yValues); /* $val = (int) $aryValue[$formulaId[$key]]; // abc($id,$contractId) se thay bang cong thuc $sql2 = "INSERT INTO pd_contract_year(CALCULATION_ID,YEAR,FORMULA_VALUE,CONTRACT_ID) VALUE($id,$year,'$val',$contractId)"; $sql2=str_replace("''", "NULL", $sql2); */ } }); $results = $this->loadData($contractId, $postData); return response()->json($results); }
protected function getAffectedObjects($mdlName, $columns, $newData) { $mdl = "App\\Models\\" . $mdlName; $idField = $mdl::$idField; $objectId = $newData[$idField]; // $flowPhase = $newData [config ( "constants.flFlowPhase" )]; $aFormulas = \FormulaHelpers::getAffects($mdlName, $columns, $objectId); return $aFormulas; }
public static function updateDependenceFields($object_id, $values) { if (array_key_exists("BEGIN_LEVEL", $values)) { $tank_level = $values["BEGIN_LEVEL"]; if ($tank_level != "") { $values["BEGIN_VOL"] = \FormulaHelpers::calculateTankVolume($object_id, $tank_level); } } if (array_key_exists("END_LEVEL", $values)) { $tank_level = $values["END_LEVEL"]; if ($tank_level != "") { $values["END_VOL"] = \FormulaHelpers::calculateTankVolume($object_id, $tank_level); } } return $values; }
public static function updateValues(array $attributes, array &$values = [], $type, $fields) { $unnecessary = true; foreach ($fields as $field) { $unnecessary = $unnecessary && array_key_exists($field, $values) && $values[$field] != null && $values[$field] != ''; } if ($unnecessary) { return; } if (!array_key_exists(config("constants.flowPhase"), $attributes)) { return; } $flow_phase = $attributes[config("constants.flowPhase")]; // OIL or GAS if ($flow_phase == 1 || $flow_phase == 2 || $flow_phase == 21) { $fdcValues = static::getFdcValues($attributes); if (!$fdcValues) { return; } $object_id = $attributes[$fields[config("constants.keyField")]]; $occur_date = $fdcValues["OCCUR_DATE"]; $T_obs = $fdcValues["OBS_TEMP"]; $P_obs = $fdcValues["OBS_PRESS"]; $API_obs = $fdcValues["OBS_API"]; $_Bg = \FormulaHelpers::calculateBg($flow_phase, $T_obs, $P_obs, $API_obs, $occur_date, $object_id, $type); foreach ($fields as $field) { if (config("constants.keyField") == $field) { continue; } // if($ctv==1){ if (array_key_exists($field, $values)) { break; } $_vFDC = $fdcValues->{$field}; if (static::$enableCheckCondition && $_Bg == null && $_vFDC != '') { throw new DataInputException("Can not calculate conversion for {$type} ID: {$object_id} (check API, Temprature, Pressure value)"); return; } $values[$field] = $_vFDC; switch ($flow_phase) { case 1: $_v = null; if ($_vFDC && $_Bg != null) { $_v = $_vFDC * $_Bg; } $values[$field] = $_v; break; case 2: case 21: if ($_Bg == null) { $values[$field] = null; } else { if ($_Bg == 0) { if ($values[$field] != null && $values[$field] != '') { throw new DataInputException("Wrong gas conversion number (zero) for {$type} ID: {$object_id}"); } } else { $values[$field] = $values[$field] / $_Bg; } } break; default: break; } } } }
public function testformula(Request $request) { $data = $request->all(); $str = ""; $fid = $data['fid']; $occur_date = $data['occur_date']; if (!$occur_date) { $result = FoVar::where(['formula_id' => $fid])->orderBy('ORDER')->select('*')->get(); $need_occur_date = false; foreach ($result as $row) { if (strpos($row->STATIC_VALUE, '@OCCUR_DATE') !== false) { $need_occur_date = true; break; } } if ($need_occur_date) { $str = "need_occur_date"; return response()->json($str); } } if (!$occur_date) { $occur_date = Carbon::now(); } else { $occur_date = \Helper::parseDate($occur_date); } $param = Formula::find($fid); $v = \FormulaHelpers::evalFormula($param, $occur_date, true); //echo $v; return response()->json($v); }