model = null; } public function updateTravelProgram($id, $data) { $data['travel_country_id'] = $data['travel_country_id'] ? $data['travel_country_id'] : null; if($id == "new"){ $this->model = IQTravelProgram::create($data); } else{ $this->model = IQTravelProgram::findOrFail($id); $this->model->fill($data); $this->model->save(); } return $this->model; } public function createTravelProgramItems($id, $data) { $this->model = IQTravelProgram::findOrFail($id); $data['pos'] = isset($data['pos']) ? intval($data['pos']) : 0; $data['typ'] = isset($data['typ']) ? intval($data['typ']) : 0; $data['i_q_travel_program_id'] = $data['iq_travel_program_id']; $pos = $this->sortPosTravelProgramItems($this->model); if($data['iq_travel_program_item_id'] == "new"){ if(isset($data['i_q_travel_item_ids']) && is_array($data['i_q_travel_item_ids'])){ foreach($data['i_q_travel_item_ids'] as $key=>$i_q_travel_item_id){ IQTravelProgramItem::create([ 'i_q_travel_program_id' => $this->model->id, 'i_q_travel_item_id' => intval($i_q_travel_item_id), 'i_q_travel_group_id' => null, 'typ' => $data['typ'], 'pos' => $pos, ]); $pos++; } } if(isset($data['i_q_travel_group_ids']) && is_array($data['i_q_travel_group_ids'])){ foreach($data['i_q_travel_group_ids'] as $key=>$i_q_travel_group_id){ $IQTravelGroup = IQTravelGroup::findOrFail($i_q_travel_group_id); if($IQTravelGroup->i_q_travel_group_items){ foreach($IQTravelGroup->i_q_travel_group_items as $IQTravelGroupItem){ IQTravelProgramItem::create([ 'i_q_travel_program_id' => $this->model->id, 'i_q_travel_item_id' => $IQTravelGroupItem->i_q_travel_item_id, 'i_q_travel_group_id' => $IQTravelGroupItem->i_q_travel_group_id, 'typ' => $data['typ'], 'pos' => $pos, ]); $pos++; } } } } } return $this->model; } public function sortPosTravelProgramItems($IQTravelProgram){ $pos = 1; if($IQTravelProgram->i_q_travel_program_items){ foreach ($IQTravelProgram->i_q_travel_program_items as $IQTravelProgramItem){ $IQTravelProgramItem->pos = $pos; $IQTravelProgramItem->save(); $pos++; } } return $pos; } public function updateTravelGroup($id, $data) { if($id == "new"){ $this->model = IQTravelGroup::create($data); } else{ $this->model = IQTravelGroup::findOrFail($id); $this->model->fill($data); $this->model->save(); } return $this->model; } public function updateTravelGroupItem($id, $data) { $data['pos'] = $data['pos'] ? intval($data['pos']) : 0; $data['i_q_travel_group_id'] = $data['iq_travel_group_id']; if($data['iq_travel_group_item_id'] == "new"){ $this->model = IQTravelGroupItem::create($data); } else{ $this->model = IQTravelGroupItem::findOrFail($data['iq_travel_group_item_id']); $this->model->fill($data); $this->model->save(); } return $this->model; } public function updateTravelItem($id, $data) { $data['draft_type_id'] = $data['draft_type_id'] ? $data['draft_type_id'] : null; $data['travel_country_id'] = $data['travel_country_id'] ? $data['travel_country_id'] : null; if($id == "new"){ $this->model = IQTravelItem::create($data); } else{ $this->model = IQTravelItem::findOrFail($id); $this->model->fill($data); $this->model->save(); } return $this->model; } public function updateTravelItemPlace($id, $data) { $data['pos'] = $data['pos'] ? intval($data['pos']) : 0; $data['i_q_travel_item_id'] = $data['iq_travel_item_id']; if($data['iq_travel_item_place_id'] == "new"){ $this->model = IQTravelItemPlace::create($data); } else{ $this->model = IQTravelItemPlace::findOrFail($data['iq_travel_item_place_id']); $this->model->fill($data); $this->model->save(); } return $this->model; } }