protected function afterSave($resultRecords, $occur_date) { // \DB::enableQueryLog(); $tankDataValue = TankDataValue::getTableName(); $tank = Tank::getTableName(); $columns = [\DB::raw("sum(BEGIN_VOL) \tas\tBEGIN_VOL"), \DB::raw("sum(END_VOL) \t\t\tas\tEND_VOL"), \DB::raw("sum(BEGIN_LEVEL) \t\tas\tBEGIN_LEVEL"), \DB::raw("sum(END_LEVEL) \t\tas\tEND_LEVEL"), \DB::raw("sum(TANK_GRS_VOL) \t\tas\tGRS_VOL"), \DB::raw("sum(TANK_NET_VOL) \t\tas\tNET_VOL"), \DB::raw("sum(AVAIL_SHIPPING_VOL) as\tAVAIL_SHIPPING_VOL")]; $attributes = ['OCCUR_DATE' => $occur_date]; $storage_ids = []; foreach ($resultRecords as $mdlName => $records) { // $mdl = "App\Models\\".$mdlName; // $mdlRecords = $mdl::with('Tank')->whereIn(); foreach ($records as $mdlRecord) { $storageID = $mdlRecord->getStorageId(); if ($storageID) { $storage_ids[] = $storageID; } } } $storage_ids = array_unique($storage_ids); foreach ($storage_ids as $storage_id) { $values = TankDataValue::join($tank, function ($query) use($tankDataValue, $tank, $storage_id) { $query->on("{$tank}.ID", '=', "{$tankDataValue}.TANK_ID")->where("{$tank}.STORAGE_ID", '=', $storage_id); })->whereDate('OCCUR_DATE', '=', $occur_date)->select($columns)->first(); $attributes['STORAGE_ID'] = $storage_id; $values = $values->toArray(); $values['STORAGE_ID'] = $storage_id; $values['OCCUR_DATE'] = $occur_date; StorageDataValue::updateOrCreate($attributes, $values); } // \Log::info(\DB::getQueryLog()); }
public function getDataSet($postData, $dcTable, $facility_id, $occur_date, $properties) { $mdlName = $postData[config("constants.tabTable")]; $mdl = "App\\Models\\{$mdlName}"; $object_id = $postData['Tank']; $date_end = $postData['date_end']; $date_end = \Helper::parseDate($date_end); $tank = Tank::getTableName(); $wheres = ['TANK_ID' => $object_id]; // \DB::enableQueryLog(); $dataSet = $mdl::join($tank, "{$dcTable}.TANK_ID", '=', "{$tank}.ID")->where($wheres)->whereBetween('OCCUR_DATE', [$occur_date, $date_end])->select("{$dcTable}.ID as {$dcTable}", "{$dcTable}.TANK_ID as OBJ_ID", "{$tank}.PRODUCT as FLOW_PHASE", "{$dcTable}.ID as DT_RowId", "{$dcTable}.OCCUR_DATE as T_OCCUR_DATE", "{$dcTable}.*")->orderBy("{$dcTable}.OCCUR_DATE")->orderBy("{$dcTable}.LOADING_TIME")->orderBy("{$dcTable}.TICKET_NO")->get(); // \Log::info(\DB::getQueryLog()); return ['dataSet' => $dataSet]; }