132 lines
No EOL
5.6 KiB
PHP
Executable file
132 lines
No EOL
5.6 KiB
PHP
Executable file
<?php
|
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\BookingDraftItem;
|
|
use App\Models\Draft;
|
|
use App\Models\TravelProgram;
|
|
use Carbon\Carbon;
|
|
use HTMLHelper;
|
|
|
|
|
|
class DraftController extends Controller
|
|
{
|
|
public $successStatus = 200;
|
|
public $data = "";
|
|
public $className = "";
|
|
public $option = "";
|
|
|
|
public function draft($action)
|
|
{
|
|
|
|
|
|
if ($action === "get_draft_list") {
|
|
$drafts = Draft::where('active', true)->get()->sortByDesc("id");
|
|
return response()->json(['success' => $drafts], $this->successStatus);
|
|
}
|
|
|
|
if ($action === "get_draft_list_for_table") {
|
|
$ret = [];
|
|
if (request('program_id') && request('program_id') > 0) {
|
|
$travel_program = TravelProgram::find(request('program_id'));
|
|
if ($travel_program && count($travel_program->travel_program_drafts)) {
|
|
foreach ($travel_program->travel_program_drafts as $travel_program_draft) {
|
|
$key = $travel_program_draft->id;
|
|
$ret[$key]['name'] = $travel_program_draft->draft->name;
|
|
if ($travel_program_draft->travel_class) {
|
|
$ret[$key]['travel_class'] = $travel_program_draft->travel_class->name;
|
|
} else {
|
|
$ret[$key]['travel_class'] = "alle Kategorien";
|
|
}
|
|
$ret[$key]['weekdays'] = HTMLHelper::getWeekdaysString($travel_program_draft->weekdays);
|
|
}
|
|
}
|
|
}
|
|
return response()->json(['success' => $ret], $this->successStatus);
|
|
|
|
|
|
}
|
|
|
|
if ($action === "create_drafts_from_fewo") {
|
|
$data = \Input::all();
|
|
$start_date = Carbon::parse($data['startDateStr']);
|
|
$end_date = Carbon::parse($data['endDateStr']);
|
|
$pos = 0;
|
|
if (isset($data['priceResult']) && is_array($data['priceResult'])) {
|
|
|
|
if (isset($data['priceResult']['season']) && is_array($data['priceResult']['season'])) {
|
|
foreach ($data['priceResult']['season'] as $season => $values) {
|
|
|
|
$service = '* Saison: ' . $season . "\n" .
|
|
'* Mindestbelegung: ' . $values['minimumStay'] . ' ' . ($values['minimumStay'] < 2 ? 'Nacht' : 'Nächte') . "\n" .
|
|
'* Preis: ' . number_format($values['price'], 2, ',', '.') . ' € / ' . $values['numberDays'] . ' ' . ($values['numberDays'] < 2 ? 'Nacht' : 'Nächte') . ' x ' . number_format($values['perNight'], 2, ',', '.') . " € \n";
|
|
|
|
|
|
$from_date = Carbon::parse($values['fromDay']);
|
|
$to_date = Carbon::parse($values['toDay']);
|
|
$to_date->modify('+1 day');
|
|
|
|
BookingDraftItem::create([
|
|
'booking_id' => $data['booking_id'],
|
|
'fewo_lodging_id' => $data['fewo_lodging_id'],
|
|
'draft_type_id' => 38,
|
|
'request_date' => $data['request_date'],
|
|
'days_duration' => $values['numberDays'],
|
|
'start_date' => $from_date->format("Y-m-d"),
|
|
'end_date' => $to_date->format("Y-m-d"),
|
|
'service' => $service,
|
|
'price' => $values['perNight'],
|
|
'pos' => $pos,
|
|
'in_pdf' => true,
|
|
]);
|
|
$pos++;
|
|
|
|
}
|
|
}
|
|
if (isset($data['priceResult']['flatPrice'])) {
|
|
$service = '* Service-Gebühr: ' . number_format($data['priceResult']['deposit'], 2, ',', '.');
|
|
BookingDraftItem::create([
|
|
'booking_id' => $data['booking_id'],
|
|
'fewo_lodging_id' => $data['fewo_lodging_id'],
|
|
'draft_type_id' => 39,
|
|
'request_date' => $data['request_date'],
|
|
'days_duration' => $data['priceResult']['days'],
|
|
'start_date' => $start_date->format("Y-m-d"),
|
|
'end_date' => $end_date->format("Y-m-d"),
|
|
'service' => $service,
|
|
'price' => $data['priceResult']['flatPrice'],
|
|
'pos' => $pos,
|
|
'in_pdf' => true,
|
|
]);
|
|
$pos++;
|
|
|
|
|
|
}
|
|
if (isset($data['priceResult']['deposit'])) {
|
|
$service = '* Kaution: ' . number_format($data['priceResult']['deposit'], 2, ',', '.');
|
|
BookingDraftItem::create([
|
|
'booking_id' => $data['booking_id'],
|
|
'fewo_lodging_id' => $data['fewo_lodging_id'],
|
|
'draft_type_id' => 40,
|
|
'request_date' => $data['request_date'],
|
|
'days_duration' => $data['priceResult']['days'],
|
|
'start_date' => $start_date->format("Y-m-d"),
|
|
'end_date' => $end_date->format("Y-m-d"),
|
|
'service' => $service,
|
|
'price' => $data['priceResult']['flatPrice'],
|
|
'pos' => $pos,
|
|
'in_pdf' => true,
|
|
]);
|
|
}
|
|
|
|
|
|
}
|
|
return response()->json(['success' => $data['booking_id']], $this->successStatus);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
} |