Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 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;
             }
         }
     }
 }
Exemplo n.º 6
0
 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);
 }