Travel Group / Programms
This commit is contained in:
parent
9baa1a6233
commit
a718baf971
23 changed files with 808 additions and 89 deletions
|
|
@ -6,6 +6,8 @@ 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 {
|
||||
|
|
@ -17,6 +19,78 @@ class TravelRepository extends BaseRepository {
|
|||
}
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue