Feedback / Draft + extra days

This commit is contained in:
Kevin Adametz 2019-01-03 12:02:06 +01:00
parent 6e0c7e8706
commit f9fcaac838
13 changed files with 453 additions and 395 deletions

View file

@ -61,6 +61,7 @@ class DraftController extends Controller
$start_date = Carbon::parse($data['startDateStr']);
$end_date = Carbon::parse($data['endDateStr']);
if($draft){
//------------------------------------------------------------------------------
@ -72,7 +73,9 @@ class DraftController extends Controller
$room_children = 0;
$room_price_adult = 0;
$room_price_children = 0;
$data['rooms'] = array_reverse($data['rooms']);
foreach ($data['rooms'] as $room){
$room_adult += $room['adult'];
@ -112,12 +115,82 @@ class DraftController extends Controller
];
}
$this->room_str = "";
foreach ($room_names as $name=>$count){
$this->room_str .= $count.' x '.$name.', ';
}
$this->room_str = rtrim($this->room_str, ', ');
//before & after days
$price_info_rooms_before = [];
$price_info_rooms_after = [];
if(isset($data['booking_before']) && is_array($data['booking_before'])){
foreach ($data['booking_before'] as $booking_before){
$start_date_before = clone $start_date;
if(isset($booking_before['days']) && $booking_before['days'] > 0){
$start_date_before->modify('-'.$booking_before['days'].' day');
}
$price_info_rooms_before[] = [
'booking_id' => $data['booking_id'],
'travel_program_id' => $data['travel_program_id'],
'travel_class_id' => null,
'draft_item_id' => null,
'draft_type_id' => 36,
'request_date' => $data['request_date'],
'days_start' => null,
'days_duration' => $booking_before['days'],
'start_date' => $start_date_before->format("Y-m-d"),
'end_date' => $data['startDateStr'],
'service' => $booking_before['name'],
'price_adult' => $booking_before['price'],
'adult' => $booking_before['adults'],
'price_children' => $booking_before['price_children'],
'children' => $booking_before['children'],
'pos' => 0,
'in_pdf' => true,
'comfort' => $data['comfort']
];
}
}
if(isset($data['booking_after']) && is_array($data['booking_after'])){
foreach ($data['booking_after'] as $booking_after){
$end_date_after = clone $end_date;
if(isset($booking_after['days']) && $booking_after['days'] > 0){
$end_date_after->modify('+'.$booking_after['days'].' day');
}
$price_info_rooms_after[] = [
'booking_id' => $data['booking_id'],
'travel_program_id' => $data['travel_program_id'],
'travel_class_id' => null,
'draft_item_id' => null,
'draft_type_id' => 37,
'request_date' => $data['request_date'],
'days_start' => null,
'days_duration' => $booking_after['days'],
'start_date' => $data['endDateStr'],
'end_date' => $end_date_after->format("Y-m-d"),
'service' => $booking_after['name'],
'price_adult' => $booking_after['price'],
'adult' => $booking_after['adults'],
'price_children' => $booking_after['price_children'],
'children' => $booking_after['children'],
'pos' => 0,
'in_pdf' => true,
'comfort' => $data['comfort']
];
}
}
//------------------------------------------------------------------------------
//prepare extra_charge
$price_info_extra_charge = [];
@ -307,6 +380,27 @@ class DraftController extends Controller
BookingDraftItem::create($price_info_room);
}
}
//set room prices before
if(count($price_info_rooms_before)){
foreach ($price_info_rooms_before as $price_info_room){
$last_post ++;
$price_info_room['pos'] = $last_post;
BookingDraftItem::create($price_info_room);
}
}
//set room prices after
if(count($price_info_rooms_after)){
foreach ($price_info_rooms_after as $price_info_room){
$last_post ++;
$price_info_room['pos'] = $last_post;
BookingDraftItem::create($price_info_room);
}
}
//set extra charge price
if(count($price_info_extra_charge)){
foreach ($price_info_extra_charge as $price_info_extra){
@ -397,6 +491,13 @@ class DraftController extends Controller
}
}
}
//found non get first
foreach ($travel_program->travel_program_drafts as $travel_program_draft) {
return $travel_program_draft->draft;
}
}
return null;
}

View file

@ -103,6 +103,9 @@ class BookingController extends Controller
$di->draft_type_id = $draft_item['draft_type_id'];
$di->start_date = $draft_item['start_date'];
$di->end_date = $draft_item['end_date'];
if(isset($draft_item['days_duration'])){
$di->days_duration = $draft_item['days_duration'];
}
$di->service = $draft_item['service'];
$di->in_pdf = isset($draft_item['in_pdf']) ? true : false;
$di->pos = $i++;
@ -174,7 +177,7 @@ class BookingController extends Controller
$boking_draft_item = BookingDraftItem::findOrFail($id);
$booking_id = $boking_draft_item->booking_id;
$boking_draft_item->delete();
\Session()->flash('alert-success', 'Eintrag gelöscht');
\Session()->flash('alert-success', __('Eintrag gelöscht'));
return redirect(route('booking_detail', [$booking_id]));
}

View file

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Models\Feedback;
use Carbon\Carbon;
use Input;
class CMSFeedbackController extends Controller
@ -38,6 +39,7 @@ class CMSFeedbackController extends Controller
if($id == "new") {
$feedback = new Feedback();
$id = 'new';
$feedback->status = 1;
}else{
$feedback = Feedback::findOrFail($id);
@ -56,7 +58,17 @@ class CMSFeedbackController extends Controller
{
$data = Input::all();
if($id == "new") {
if(!isset($data['feedback_parent']) && !$data['feedback_parent']) {
abort(404);
die();
}
$feedback = new Feedback();
$feedback->model = 'feedback';
$feedback->owner_second = 0;
$feedback->show_in_navi = 1;
$feedback->catalog_id = 1;
}else{
$feedback = Feedback::findOrFail($id);
}
@ -70,13 +82,53 @@ class CMSFeedbackController extends Controller
$feedback->pagetitle = $data['pagetitle'];
$feedback->keywords = $data['keywords'];
//parent
$feedback->save();
$feedback->order = (new Carbon($feedback->date))->format('Ymd')*-1;
//parent -- lvl
if(isset($data['feedback_parent']) && $data['feedback_parent']){
$feedback->lvl = 2;
if($feedback->parent_id != $data['feedback_parent']){
$feedback->owner = $data['feedback_parent'];
$feedback->parent_id = $data['feedback_parent'];
$parent_feedback = Feedback::findOrFail($data['feedback_parent']);
if($first_feedback = $parent_feedback->children->first()){
$feedback->lft = $first_feedback->lft;
$feedback->rgt = $first_feedback->rgt;
}
$feedback->tree_root = $parent_feedback->tree_root;
}
$feedback->parent_id = $data['feedback_parent'];
}else{
// $feedback->lvl = 1;
//TODO need real parent from Navi tree
// $feedback->parent_id = 0;
}
$feedback->save();
\Session()->flash('alert-save', '1');
return redirect(route('cms_feedback_detail', [$feedback->id]));
}
public function delete($id){
$feedback = Feedback::findOrFail($id);
//TODO
//check for delete, only delete lvl 2 .,...?
if ($feedback->lvl != 2){
abort(404);
die();
}
$feedback->delete();
\Session()->flash('alert-success', __('Feedback gelöscht'));
return redirect(route('cms_feedback'));
}
}

View file

@ -127,17 +127,15 @@ class DraftController extends Controller
$draft->delete();
\Session()->flash('alert-save', '1');
\Session()->flash('alert-success', __('Vorlage gelöscht'));
return redirect(route('drafts'));
}
public function itemDelete($id){
$draft_item = DraftItem::findOrFail($id);
$draft_id = $draft_item->draft_id;
$draft_item->delete();
\Session()->flash('alert-success', 'Eintrag gelöscht');
\Session()->flash('alert-success', __('Eintrag gelöscht'));
return redirect(route('draft_detail', [$draft_id]));
}