163 lines
No EOL
5.2 KiB
PHP
163 lines
No EOL
5.2 KiB
PHP
<?php
|
|
|
|
namespace App\Repositories\IQ;
|
|
|
|
use App\Models\IQTravelGroup;
|
|
use App\Models\IQTravelGroupItem;
|
|
use App\Models\IQTravelItem;
|
|
use App\Models\IQTravelItemPlace;
|
|
use App\Models\IQTravelProgram;
|
|
use App\Models\IQTravelProgramItem;
|
|
use App\Repositories\BaseRepository;
|
|
|
|
class TravelRepository extends BaseRepository {
|
|
|
|
|
|
public function __construct()
|
|
{
|
|
$this->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;
|
|
}
|
|
|
|
} |