/** * Store a newly created lead in storage * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $entity = new Entity(); $entity->email = $request->email; $entity->family_name = $request->family_name; $entity->given_name = $request->given_name; $entity->title = $request->title; $entity->street_address = $request->street_address; $entity->extended_address = $request->extended_address; $entity->region = $request->region; $entity->postal_code = $request->postal_code; $entity->country_name = $request->country_name; $entity->locality = $request->locality; $entity->kind_id = $request->kind_id; $entity->save(); $lead = new Lead(); $lead->description = $request->description; $lead->email_opt_out = $request->input('email_opt_out', 'off'); $lead->include_packing = $request->input('include_packing', 'off'); $lead->lead_sources_id = $request->lead_sources_id; $lead->lead_statuses_id = $request->lead_statuses_id; $lead->entity_id = $entity->id; $lead->save(); return redirect()->route('leads.index')->with('message', 'Lead created successfully.'); }
/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update(Entity $entity, Request $request) { $input = array_except($request->all(), ['_method', '_token']); $entity->update($input); Cache::flush(); return redirect()->route('entities.show', $entity->id)->with('message', 'Entity updated.'); }
/** * Register any other events for your application. * * @param \Illuminate\Contracts\Events\Dispatcher $events * @return void */ public function boot(DispatcherContract $events) { parent::boot($events); AttributeType::deleting(function ($attr) { $sub_attrs = Attribute::where('type_id', '=', $attr->id)->get(); foreach ($sub_attrs as $sa) { $sa->delete(); } }); EntityType::deleting(function ($entity) { $entities = $entity->entities; foreach ($entities as $e) { $e->delete(); } }); Entity::deleting(function ($entity) { $alarms = $entity->alarms; foreach ($alarms as $a) { $a->delete(); } }); Alarm::deleting(function ($alarm) { $reminders = $alarm->history; foreach ($reminders as $r) { $r->delete(); } }); }
public function update(Request $request) { $row = json_decode($request->input()['models'])[0]; $entity = Entity::find($row->id); $entity->name = $row->name; $entity->save(); return 'true'; }
/** * สร้าง record(document) ของ document ใหม่ จากข้อมูลที่ระบุ * @param int $entity * @param string $refId * @param string $documentPath path ของไฟล์ต้นทาง * @param string $mode รูปแบบการ move file [upload, cp] * @return void|Document */ public function newItem($entity, $refId, $documentPath, $documentName, $mode = 'upload') { if (!file_exists($documentPath)) { return; } $model = Entity::getInstance($entity, $refId); if ($model == null) { return; } $itemNo = \yii::$app->db->createCommand("select max(itemNo) from Document\n \t\t\twhere type=:type and refId=:id", ['type' => $entity, 'id' => $refId])->queryScalar(); $itemNo++; $finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension $mime = finfo_file($finfo, $documentPath); finfo_close($finfo); $document = new Document(); $document->type = $entity; $document->refId = $refId; $document->itemNo = $itemNo; $document->status = Workflow::STATUS_PUBLISHED; $document->mime = $mime; $document->fileName = $documentName; $arr = explode(".", $documentName); $extension = $arr[count($arr) - 1]; $document->srcPath = date('Y/m/d', strtotime($model->createTime)) . "/{$refId}_{$itemNo}.{$extension}"; $retries = 0; do { try { if ($document->save()) { break; } } catch (Exception $ex) { $document->itemNo++; $document->srcPath = date('Y/m/d', strtotime($model->createTime)) . "/{$refId}_{$document->itemNo}.{$extension}"; $retries++; usleep(1000); } } while ($retries < 10); if ($retries >= 10) { $document = null; } if (!empty($document)) { $destination = $document->getFullPath(); if (!is_readable(dirname($destination))) { mkdir(dirname($destination), 0755, true); } if ($mode == 'cp') { copy($documentPath, $destination); } elseif ($mode == 'mv') { rename($documentPath, $destination); } else { move_uploaded_file($documentPath, $destination); } } return $document; }
/** * Display the specified resource. * * @param int $id * @return Response */ public function show(Variable $variable, Request $request) { if ($request->ajax()) { //use query builder instead of eloquent $rawData = DB::table('data_values')->join('entities', 'data_values.fk_ent_id', '=', 'entities.id')->join('times', 'data_values.fk_time_id', '=', 'times.id')->where('data_values.fk_var_id', $variable->id)->get(); $data = []; $index = 1; foreach ($rawData as $d) { if (!array_key_exists($d->name, $data)) { $obj = new \StdClass(); $obj->id = $index; $obj->key = $d->name; $obj->values = []; $data[$d->name] = $obj; $index++; } $data[$d->name]->values[] = ["x" => intval($d->label), "y" => intval($d->value)]; } return ['success' => true, 'data' => ['variable' => $variable, 'data' => $data]]; } else { //data /*$source = DB::table( 'data_values' ) ->leftJoin( 'entities', 'data_values.fk_ent_id', '=', 'entities.id' ) ->leftJoin( 'times', 'data_values.fk_time_id', '=', 'times.id' ) ->select( DB::raw( 'data_values.*, times.label, entities.name' ) );*/ $source = DataValue::grid()->where('fk_var_id', '=', $variable->id); //$source = DataValue::with( array('Entity','Time') )->where( 'fk_var_id', '=', $variable->id ); $entityList = DataValue::where('fk_var_id', '=', $variable->id)->lists('fk_var_id'); $entities = Entity::whereIn('id', $entityList); //datagrid & filter $filter = \DataFilter::source($source); $filter->attributes(array('class' => 'form-inline')); $filter->add('value', 'Value', 'text'); $entitiesList = Entity::lists('name', 'name'); $entitiesList[''] = 'All'; $filter->add('Entities.name', 'Entity', 'select')->options($entitiesList); $filter->add('Times.label', 'Time', 'text'); $filter->submit('search'); $filter->build(); $grid = \App\Components\BatchDataGrid::source($filter); $grid->add('id', 'ID', true)->style('width:100px'); $grid->add('value', 'Value', true); $grid->add('name', 'Entity', true); $grid->add('label', 'Time', true); $grid->add('description', 'Description'); $grid->add('<a href="' . route('values.index') . '/{{$id}}/edit">Edit</a>', 'Edit'); $grid->paginate(50); //is csv export? if (Input::has('export') && Input::get('export') == 'csv') { return $grid->buildCSV('export_variable', 'Y-m-d.His'); } //construct csv export url $exportUrl = $request->fullUrl() . '&export=csv'; return view('variables.show', compact('variable', 'values', 'grid', 'filter', 'exportUrl')); } }
public function edit($id) { $view = Auth::user()->getView(); $resolutions = Resolution::all(); $files = File::all(); $fileTypes = Filetype::all(); $viabilities = Viability::all(); $entities = Entity::getEntities(); $concession = Concession::findOrFail($id); return view('concessions.edit', compact('resolutions', 'files', 'fileTypes', 'viabilities', 'concession', 'view', 'entities')); }
public function edit($id) { $sql = \DB::select("select s.id,s.consecutive, s.label, s.level, w.watersource_name as name, s.created_at from sampling s\n inner join watersource w on w.id = s.watersource_id\n inner join concession_watersource cw on cw.watersource_id = w.id\n inner join concession c on c.id = cw.concession_id\n inner join entity e on e.id = c.agent_id \n where s.analysis_id = " . $id); if (COUNT($sql) < 0) { $sql = \DB::select("select s.id, s.consecutive, s.label, s.level, ss.name, s.created_at from sampling s\n inner join sampling_site ss on ss.id = s.sampling_site_id\n inner join entity e on e.id = ss.agent_id\n where s.analysis_id = " . $id); } $view = Auth::user()->getView(); $analysis = Analysis::findOrFail($id); $entities = Entity::getEntities(); return view('analysis.edit', compact('view', 'analysis', 'entities', 'sql')); }
/** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $entityName = $this->request->input('entityName'); $entityWebsite = $this->request->input('entityWebsite'); $found = Entity::where('title', $entityName)->get(); $num = count($found); if ($num >= 1) { $resp['code'] = 0; $resp['message'] = "We're sorry but that entity has already been submitted."; } elseif ($num === 0) { $new_entity = new Entity(); $new_entity->title = $entityName; $new_entity->website = $entityWebsite; $new_entity->save(); if (count(Entity::where('title', $entityName)->get() === 1)) { $resp['code'] = 1; $resp['message'] = "Enity successfully submitted."; } } return $resp; }
public function getPreview($options = array()) { if (empty($this->previewEntity)) { $model = new Media(); $media = $model->findByParams(array(Media::ENCODE_ENTITY => Entity::TYPE_WIDGET, Media::ENCODE_ID => $this->id, Media::ENCODE_ITEMNO => $this->previewRefId)); if ($media == null) { return null; } $imgTag = Html::img(\Yii::getAlias('@web') . '/media/' . $media->getPublishUri($options), array()); return $imgTag; } else { $model = Entity::getInstance($this->previewEntity, $this->previewRefId); if ($model != null) { return $model->getPreview($options); } } }
public function edit() { $user = User::findOrFail(Auth::user()->id); $entity = Entity::where('user_id', Auth::user()->id)->firstOrFail(); $about = About::where('user_id', Auth::user()->id)->firstOrFail(); $contact = Contact::where('user_id', Auth::user()->id)->firstOrFail(); $home = Home::where('user_id', Auth::user()->id)->firstOrFail(); $quote = Quote::where('user_id', Auth::user()->id)->get(); $quote_count = $quote->count(); $skill = Skill::where('user_id', Auth::user()->id)->get(); $skill_count = $skill->count(); $skill_slider = SkillSlider::where('user_id', Auth::user()->id)->get(); $skill_slider_count = $skill_slider->count(); $portfolio_piece = PortfolioPiece::where('user_id', Auth::user()->id)->get(); $portfolio_piece_count = $portfolio_piece->count(); return view('edit')->with('user', $user)->with('home', $home)->with('entity', $entity)->with('contact', $contact)->with('about', $about)->with('skill', $skill)->with('skill_count', $skill_count)->with('quote', $quote)->with('quote_count', $quote_count)->with('skill_slider', $skill_slider)->with('skill_slider_count', $skill_slider_count)->with('portfolio_piece', $portfolio_piece)->with('portfolio_piece_count', $portfolio_piece_count); }
private static function _mediaDecoder($attributes) { $baseUrl = \Yii::$app->homeUrl; $id = $attributes['id']; $type = Entity::mapType($attributes['object']); $itemNo = $attributes['itemno']; $items = array(); $output = ''; /* $criteria = new CDbCriteria(); $criteria->addColumnCondition(array('refId'=> $id, 'type'=> $type, 'itemNo'=>$itemNo)); */ $query = Media::find(); $query->andWhere(['refId' => $id, 'type' => $type, 'itemNo' => $itemNo]); $options = array(Media::ENCODE_WIDTH => 100); $lst = Media::getItems($query, $options); $items = array_shift($lst); $output .= "<media id=\"{$items['refId']}\" object=\"{$attributes['object']}\" itemno=\"{$items['itemNo']}\">"; $output .= '<img src="' . $baseUrl . 'media/' . $items['fullPath'] . '">'; $output .= '<p class="caption">' . $items['caption'] . '</p></media>'; return $output; }
/** * Run the migrations. * * @return void */ public function up() { DB::transaction(function () { DataValue::where('fk_ent_id', 341)->update(array('fk_ent_id' => 355)); Entity::where('id', 341)->delete(); $charts = Chart::all(); foreach ($charts as $chart) { $config = json_decode($chart->config); $countries = $config->{'selected-countries'}; if (empty($countries)) { continue; } foreach ($countries as $country) { if ($country->id == "341") { echo "Updating chart config for " . $chart->id . "\n"; $country->id = "355"; $country->name = "World"; } } $chart->config = json_encode($config); $chart->save(); } }); }
private static function _mediaDecoder($attributes, $content) { if (isset($attributes['itemno'])) { $itemNo = (int) $attributes['itemno']; } else { $itemNo = null; } $entityType = isset($attributes['object']) ? Entity::mapType($attributes['object']) : null; $refId = isset($attributes['id']) ? $attributes['id'] : null; if (empty($itemNo) || empty($entityType) || empty($itemNo)) { return null; } $params = array(Media::ENCODE_ENTITY => $entityType, Media::ENCODE_ID => $refId, Media::ENCODE_ITEMNO => $itemNo); if (isset($attributes['width'])) { $params[Media::ENCODE_WIDTH] = $attributes['width']; } else { $params[Media::ENCODE_WIDTH] = 770; } if (isset($attributes['height'])) { $params[Media::ENCODE_HEIGHT] = $attributes['height']; } $query = Media::find(); $query->andWhere(['type' => $entityType, 'refId' => $refId, 'itemNo' => $itemNo]); $media = $query->one(); if (empty($media)) { return; } $encoded = $media->getPublishUri($params); $mediaUrl = Url::toRoute(['/media/' . $encoded]); $imgTag = "<img src=\"{$mediaUrl}\" class=\"img-responsive\">"; /* if (!empty($media->caption)) $captionTag = "<figcaption>{$media->caption}</figcaption>"; else $captionTag = ''; */ $str = <<<EOT {$imgTag} EOT; return $str; }
" method="POST" enctype="multipart/form-data" class="fileupload-processing"> <?php } ?> <div class="row"> <div class="col-md-12"> <?php if (empty($this->arrMedia)) { ?> <label>ตั้งภาพจั่วอัตโนมัติ</label> <?php echo Html::checkbox('autoHighlight', 1, array('checked' => 'checked')); } ?> <?php echo FileUpload::widget(['useForm' => false, 'params' => ['entity' => Entity::mapType($entity), 'id' => $refId] + $fileUploadParams]); ?> </div> </div> <?php if ($useForm) { echo '</form>'; } ?> <div class="row"> <div id="media-list" class="col-md-6"> <div class="row" style="padding-left:15px"> <?php echo Html::a(Html::img('') . '<p class="margin-top-10"><span class="width-height pull-right"></span>' . '<span class="orderNo" style="padding-left:10px"></span>' . 'No.<input class="orderNo form-control" style="width:50px; padding-left:10px">' . '</p>' . '<div class="btn-group btn-group-xs btn-group-solid" style="position: absolute;top:0;width:40px;padding-top:5px;">' . '<button type="button" id ="highlightButton" class="btn green selectHighlight circleHighlight" style="display:none;" ><i class="fa fa-camera"></i></button>' . '<button type="button" id ="panoramaButton" class="btn red selectPanorama circleHighlight" style="display:none;"><i class="fa fa-picture-o"></i></button>' . '</div>', 'javascript:;', array('class' => 'col-md-4 col-sm-6 thumbnail', 'data-itemno' => 0, 'style' => 'display: none')); if (is_array($arrMedia)) {
/** * Show the form for editing the specified resource. * * @param int $id * @return Response */ public function edit(DataValue $dataValue) { $entities = Entity::lists('name', 'id'); $datasources = Datasource::lists('name', 'id'); return view('values.edit', compact('dataValue', 'entities', 'datasources')); }
public function existEntity($name) { $status = False; $entities = Entity::all(); foreach ($entities as $entity) { if (strtolower($entity->name) == strtolower($name)) { $status = True; } } return $status; }
public function entities() { $item = new Entity(); $item->type = $this->faker->randomElement($array = array('company', 'person')); if ($item->type == 'company') { $item->name = $this->faker->company; } else { $item->name = $this->faker->name; } $item->save(); $this->entity_data(8, $item->id); $this->contacts($this->faker->numberBetween(1, 3), $item->id); return $item; }
public function edit($id) { $view = Auth::user()->getView(); $name = "Administrador"; $view = Auth::user()->getView(); if (Auth::user()->getRol() == "Institución") { $entities = Entity::getEntityRol(Auth::user()->extractIdRol($name)); $users = User::getUsersRol(Auth::user()->extractIdRol($name)); } else { $users = User::all(); $entities = Entity::all(); } $userEntity = UserEntity::findOrFail($id); return view('usersEntities.edit', compact('userEntity', 'users', 'entities', 'view')); }
public function updateSocialMedia() { $user = User::find(Auth::user()->id); $entity = Entity::where('user_id', Auth::user()->id)->firstOrFail(); if (isset($user) && $entity != NULL) { if (Input::get('facebook') != '') { $entity->facebook = Input::get('facebook'); } if (Input::get('instagram') != '') { $entity->instagram = Input::get('instagram'); } if (Input::get('linkedin') != '') { $entity->linkedin = Input::get('linkedin'); } if (Input::get('twitter') != '') { $entity->twitter = Input::get('twitter'); } if (Input::get('github') != '') { $entity->github = Input::get('github'); } if (Input::get('behance') != '') { $entity->behance = Input::get('behance'); } if (Input::get('dribble') != '') { $entity->dribble = Input::get('dribble'); } if (Input::get('extra_1') != '') { $entity->extra_1 = Input::get('extra_1'); } if (Input::get('extra_2') != '') { $entity->extra_1 = Input::get('extra_2'); } $entity->save(); return redirect('home')->with('status', 'success'); } else { return 'An error has occured'; } }
" data-id="<?php echo $refId; ?> "> <?php if ($useForm) { ?> <form id="documentfileupload" action="" method="POST" enctype="multipart/form-data" class="fileupload-processing"> <?php } ?> <div class="row"> <div class="col-md-12"> <?php echo DocumentFileUpload::widget(['useForm' => false, 'params' => ['entity' => Entity::mapType($entity), 'id' => $refId]]); ?> </div> </div> <?php if ($useForm) { echo '</form>'; } ?> <div class="row"> <div id="document-list" class="col-md-6"> <?php echo Html::a('<div class="col-md-4">' . Html::img('', ['width' => '50', "height" => '50']) . '</div>' . '<div class="col-md-6">' . '<p class="text-center margin-top-10"></p>' . '</div>', 'javascript:;', array('class' => 'col-md-9 col-sm-6 thumbnail', 'data-itemno' => 0, 'style' => 'display: none')); if (is_array($arrDocument) && !empty($arrDocument)) { foreach ($arrDocument as $documentFields) {
public function entity(Request $request) { try { $name = $request->get('name'); $entityCheck = $request->has('entityCheck') ? $request->get('entityCheck') : false; $inputFileDataId = $request->has('inputFileId') ? $request->get('inputFileId') : ''; $datasourceId = $request->has('datasourceId') ? $request->get('datasourceId') : ''; $variableId = $request->has('variableId') ? $request->get('variableId') : ''; $entityData = ['name' => $name, 'fk_ent_t_id' => 5, 'validated' => 0]; if ($entityCheck) { //entity validation (only if not multivariant dataset) //find corresponding iso code $entityIsoName = EntityIsoName::match($entityData['name'])->first(); if (!$entityIsoName) { return redirect()->route('import')->with('message', 'Error non-existing entity in dataset.')->with('message-class', 'error'); } //enter standardized info $entityData['name'] = $entityIsoName->name; $entityData['code'] = $entityIsoName->code; $entityData['validated'] = 1; } //find try finding entity in db if (isset($entityIsoName)) { $entity = Entity::where('code', $entityIsoName->code)->first(); } else { //not standardized data $entity = Entity::where('code', $entityData['name'])->orWhere('name', $entityData['name'])->first(); } if (!$entity) { //entity haven't found in database, so insert it $entity = Entity::create($entityData); } //check to override validation if stored in db not validated and now is validate if ($entity->validated == 0 && $entityData['validated'] === 1) { $entity->validated = 1; $entity->save(); } $entityId = $entity->id; $countryValues = $request->get("values"); //$countryValue->values; //prepare vars for mass insert $times = []; $values = []; //TODO - get latest time for base timeId $lastTime = Time::orderBy('id', 'desc')->first(); $timeId = !empty($lastTime) ? $lastTime->id : 0; foreach ($countryValues as $value) { if (isset($value['x']) && isset($value['y']) && $this->hasValue($value['x']) && $this->hasValue($value['y'])) { $timeId++; //create time $timeObj = $value['x']; $timeValue = ['startDate' => isset($timeObj['sd']) ? $timeObj['sd'] : "", 'endDate' => isset($timeObj['ed']) ? $timeObj['ed'] : "", 'date' => isset($timeObj['d']) ? $timeObj['d'] : "", 'label' => isset($timeObj['l']) ? $timeObj['l'] : ""]; //convert timedomain $fk_ttype_id = 1; if (!empty($timeObj['td'])) { $ttQuery = TimeType::query(); $fk_ttype_id = $ttQuery->whereRaw('LOWER(`name`) like ?', [$timeObj['td']])->first()->id; } $timeValue['fk_ttype_id'] = $fk_ttype_id; //using mass insert instead //$time = Time::create( $timeValue ); //$timeId = $time->id; $times[] = $timeValue; //create value $dataValueData = ['value' => $value['y'], 'fk_time_id' => $timeId, 'fk_input_files_id' => $inputFileDataId, 'fk_var_id' => $variableId, 'fk_ent_id' => $entityId, 'fk_dsr_id' => $datasourceId]; //using mass insert instead //$dataValue = DataValue::create( $dataValueData ); $values[] = $dataValueData; } } //mass insertion Time::insert($times); DataValue::insert($values); return ['success' => true]; } catch (Exception $e) { return ['success' => false]; } }
public function index() { return view('home', ['entities' => Entity::all()]); }
public function attachEntity($lead_id, $data) { $item = new Entity(); $item->name = $data->name; $item->lead_id = $lead_id; $item->type = $data->type; $item->save(); return \Response::make('OK', 200); }
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function get($id) { return Entity::find($id); }
/** * Remove the specified entity from storage. * * @param int $id * @return Response */ public function destroy($id) { $entity = Entity::findOrFail($id); $entity->delete(); return redirect()->route('entities.index')->with('message', 'Item deleted successfully.'); }
public function destroy($id) { try { $n = Entity::findOrFail($id); $n->delete(); Session::flash('message_type', 'success'); Session::flash('message', 'Elemento rimosso correttamente. <a class="undo-button" href="/entity/' . $id . '">Undo</a>'); } catch (\Exception $e) { Session::flash('message_type', 'danger'); Session::flash('message', 'Elemento non rimosso correttamente.'); } return ""; }
public function addLeadWithSelectedEntity(Request $request) { $lead = new Lead(); $lead->name = $request->name; $lead->activity_setting = $request->setting; $lead->active = 1; $lead->progress = 0; $lead->level = 0; if ($request->next_action) { $lead->next_action = Carbon::createFromFormat('m/d/Y g:i A', $request->next_action)->toDateTimeString(); } else { $lead->next_action = null; } $lead->entity_id = $request->entity_id; $lead->save(); $user = User::find($request->userId); $user->leads()->attach($lead); $account = Account::find($user->account_id); $entity = Entity::find($request->entity_id); $account->entities()->attach($entity); $activity = new Activity(); $activity->lead_id = $lead->id; $activity->user_id = $user->id; $activity->type = 'info'; $activity->status = 'done'; $activity->name = 'Created'; $activity->visible = 1; $activity->note = $request->note; $activity->schedule_time = Carbon::now()->toDateTimeString(); $activity->save(); }
public function actionView() { $request = \Yii::$app->request; $enc = new TrEnc(\Yii::$app->params['crypto'][0][0], \Yii::$app->params['crypto'][0][1]); $encrypted = substr($request->get('key'), 0, strrpos($request->get('key'), '.')); $params = $enc->decode($encrypted); $flag = $request->get('falg', ''); if ($flag) { switch ($flag) { case '@': $this->displayParams($params); break; } return; } $model = new Document(); $document = $model->findByParams($params); // check for view permission if ($document == null) { throw new HttpException(404); } $entity = Entity::getInstance($document->type, $document->refId); if ($entity == null) { throw new HttpException(404); } $filePath = \Yii::$app->params['document.basePath'] . Entity::$arrType[$document->type] . '/' . $document->srcPath; if (!is_readable($filePath)) { $filePath = \Yii::$app->params['document.basePath2'] . Entity::$arrType[$document->type] . '/' . $document->srcPath; } if (!file_exists($filePath)) { throw new HttpException(404); } $response = \Yii::$app->getResponse(); $response->headers->set('Content-Type', $document->mime); $response->format = \yii\web\Response::FORMAT_RAW; echo file_get_contents($filePath); }
/** * Execute the command. * * @return void */ public function handle() { //set_time_limit( 600 ); //ini_set('memory_limit', '256M'); //bump up limits set_time_limit(600); ini_set('memory_limit', '256M'); return; //will we be checking entities $entityCheck = $this->validate_entities == 'on' ? false : true; //create new file $inputFileData = ['raw_data' => $this->data, 'fk_user_id' => $this->userId]; $inputFile = InputFile::create($inputFileData); $inputFileDataId = $inputFile->id; $multivariantDataset = $this->multivariant_dataset; $variables = $this->variables; if (!empty($variables)) { $entityData = []; //creating new datasource, if there is some $sourceName = $this->source_name; if (!empty($sourceName)) { $datasourceData = ['name' => $this->source_name, 'link' => $this->source_link, 'description' => $this->source_description]; $datasource = Datasource::create($datasourceData); } else { //fake datasoure $datasource = new \stdClass(); $datasource->id = null; } //create new dataset or pick existing one $datasetName = $this->new_dataset_name; $datasetData = ['name' => $datasetName, 'fk_dst_cat_id' => $this->category_id, 'fk_dst_subcat_id' => $this->subcategory_id, 'description' => $this->new_dataset_description, 'fk_dsr_id' => $datasource->id]; $dataset = Dataset::create($datasetData); $datasetId = $dataset->id; //process possible tags $tagsInput = $this->new_dataset_tags; if (!empty($tagsInput)) { $tagsArr = explode(',', $tagsInput); foreach ($tagsArr as $tag) { $tag = DatasetTag::create(['name' => $tag]); $tagId = $tag->id; $datasetTagLink = LinkDatasetsTags::create(['fk_dst_id' => $datasetId, 'fk_dst_tags_id' => $tagId]); } } //store inserted variables, for case of rolling back $inserted_variables = array(); foreach ($variables as $variableJsonString) { //convert back single out to actual single quote //$variableJsonString = str_replace( "'", "‘", $variableJsonString ); //setting json_decode second param to false, to try to save memory $variableObj = json_decode($variableJsonString, false); $variableData = ['name' => $variableObj->name, 'fk_var_type_id' => $this->variable_type, 'fk_dst_id' => $datasetId, 'unit' => $variableObj->unit, 'description' => $variableObj->description, 'fk_dsr_id' => $datasource->id]; //update of existing variable or new variable if (!isset($variableObj->id)) { //new variable $variable = Variable::create($variableData); } else { //update variable $variable = Variable::find($variableObj->id); $variable->fill($variableData); $variable->save(); } $variableId = $variable->id; $inserted_variables[] = $variable; $variableValues = $variableObj->values; foreach ($variableValues as $countryValue) { $entityData = ['name' => $countryValue->key, 'fk_ent_t_id' => 5, 'validated' => 0]; if ($entityCheck) { //entity validation (only if not multivariant dataset) //find corresponding iso code $entityIsoName = EntityIsoName::match($entityData['name'])->first(); if (!$entityIsoName) { //!haven't found corresponding country, throw an error! //rollback everything first foreach ($inserted_variables as $inserted_var) { $inserted_var->data()->delete(); $inserted_var->delete(); } //is new dataset if ($this->new_dataset === '1') { $dataset = Dataset::find($datasetId); //delete itself $dataset->delete(); } \Log::error('Error non-existing entity in dataset.'); \Log::error($entityData['name']); return redirect()->route('import')->with('message', 'Error non-existing entity in dataset.')->with('message-class', 'error'); } //enter standardized info $entityData['name'] = $entityIsoName->name; $entityData['code'] = $entityIsoName->code; $entityData['validated'] = 1; } //find try finding entity in db if (isset($entityIsoName)) { $entity = Entity::where('code', $entityIsoName->code)->first(); } else { //not standardized data $entity = Entity::where('code', $entityData['name'])->orWhere('name', $entityData['name'])->first(); } if (!$entity) { //entity haven't found in database, so insert it $entity = Entity::create($entityData); } //check to override validation if stored in db not validated and now is validate if ($entity->validated == 0 && $entityData['validated'] === 1) { $entity->validated = 1; $entity->save(); } $entityId = $entity->id; $countryValues = $countryValue->values; //prepare vars for mass insert $times = []; $values = []; //TODO - get latest time for base timeId $lastTime = Time::orderBy('id', 'desc')->first(); $timeId = !empty($lastTime) ? $lastTime->id : 0; foreach ($countryValues as $value) { if ($this->hasValue($value->x) && $this->hasValue($value->y)) { $timeId++; //create time $timeObj = $value->x; $timeValue = ['startDate' => isset($timeObj->sd) ? $timeObj->sd : "", 'endDate' => isset($timeObj->ed) ? $timeObj->ed : "", 'date' => isset($timeObj->d) ? $timeObj->d : "", 'label' => isset($timeObj->l) ? $timeObj->l : ""]; //convert timedomain $fk_ttype_id = 1; if (!empty($timeObj->td)) { $ttQuery = TimeType::query(); $fk_ttype_id = $ttQuery->whereRaw('LOWER(`name`) like ?', [$timeObj->td])->first()->id; } $timeValue['fk_ttype_id'] = $fk_ttype_id; //using mass insert instead //$time = Time::create( $timeValue ); //$timeId = $time->id; $times[] = $timeValue; //create value $dataValueData = ['value' => $value->y, 'fk_time_id' => $timeId, 'fk_input_files_id' => $inputFileDataId, 'fk_var_id' => $variableId, 'fk_ent_id' => $entityId, 'fk_dsr_id' => $datasource->id]; //using mass insert instead //$dataValue = DataValue::create( $dataValueData ); $values[] = $dataValueData; } } //mass insertion Time::insert($times); DataValue::insert($values); } } } }