116 lines
No EOL
4.6 KiB
PHP
Executable file
116 lines
No EOL
4.6 KiB
PHP
Executable file
<?php
|
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Mail\MailSendFeWoService;
|
|
use App\Models\TravelUser;
|
|
use App\Models\TravelUserBookingFewo;
|
|
use Illuminate\Support\Facades\Mail;
|
|
use Input;
|
|
use Validator;
|
|
|
|
class FewoController extends Controller
|
|
{
|
|
public $successStatus = 200;
|
|
public $errorStatus = 500;
|
|
public $data = "";
|
|
public $room_str = "";
|
|
public $room_name = "";
|
|
public $className = "";
|
|
public $option = "";
|
|
|
|
public function action($action)
|
|
{
|
|
|
|
if ($action == "create_travel_users") {
|
|
$data = \Input::all();
|
|
if(!isset($data['travel_user']) && !is_array($data['travel_user'])) {
|
|
return response()->json(['error' => 'travel_user not exist, but need'], $this->errorStatus);
|
|
}
|
|
if(!isset($data['travel_user']['email'])){
|
|
return response()->json(['error' => 'travel_user email not exist, but need'], $this->errorStatus);
|
|
}
|
|
|
|
$rules = array(
|
|
'salutation_id' => 'required',
|
|
'travel_nationality_id' => 'required',
|
|
'first_name'=>'required',
|
|
'last_name'=>'required',
|
|
'email' => 'required|string|email|max:255|'
|
|
|
|
);
|
|
$validator = Validator::make($data['travel_user'], $rules);
|
|
if ($validator->fails()) {
|
|
return response()->json($validator->messages(), $this->errorStatus);
|
|
|
|
}
|
|
|
|
$travel_user = TravelUser::where('email', trim($data['travel_user']['email']))->first();
|
|
if(!$travel_user) {
|
|
$travel_user = TravelUser::create($data['travel_user']);
|
|
}else{
|
|
$checked = [
|
|
'salutation_id',
|
|
'first_name',
|
|
'last_name',
|
|
'street',
|
|
'zipcode',
|
|
'city',
|
|
'phone',
|
|
'fax',
|
|
'travel_nationality_id'
|
|
];
|
|
|
|
$last_user_data = [];
|
|
foreach ($checked as $check){
|
|
if($travel_user->{$check} != $data['travel_user'][$check]){
|
|
$last_user_data[$check] = $travel_user->{$check};
|
|
}
|
|
}
|
|
$data['travel_user']['last_user_data'] = $last_user_data;
|
|
$travel_user->fill($data['travel_user'])->save();
|
|
}
|
|
return response()->json(['success' => ['travel_user_id' => $travel_user->id]], $this->successStatus);
|
|
}
|
|
|
|
|
|
if ($action == "create_fewo_booking") {
|
|
|
|
$data = \Input::all();
|
|
if(!isset($data['travel_user_booking_fewo']) && !is_array($data['travel_user_booking_fewo'])) {
|
|
return response()->json(['error' => 'travel_user_booking_fewo not exist, but need'], $this->errorStatus);
|
|
}
|
|
$rules = array(
|
|
'travel_user_id' => 'required',
|
|
'fewo_lodging_id' => 'required',
|
|
'from_date'=>'required',
|
|
'to_date'=>'required',
|
|
|
|
);
|
|
$validator = Validator::make($data['travel_user_booking_fewo'], $rules);
|
|
if ($validator->fails()) {
|
|
return response()->json($validator->messages(), $this->errorStatus);
|
|
|
|
}
|
|
$travel_user_booking_fewo = TravelUserBookingFewo::create($data['travel_user_booking_fewo']);
|
|
|
|
//mail
|
|
if($travel_user_booking_fewo){
|
|
$MailEmployee = explode(",", config('mail.mail_fewo_employee'));
|
|
$EmployeeMailSubject = $travel_user_booking_fewo->getEmployeeMailSubject();
|
|
$EmployeeMailContent = $travel_user_booking_fewo->getEmployeeMailContent();
|
|
Mail::to($MailEmployee)->send(new MailSendFeWoService($travel_user_booking_fewo, $EmployeeMailSubject, $EmployeeMailContent));
|
|
$send_employee_mail = $travel_user_booking_fewo->send_employee_mail;
|
|
$send_employee_mail[] = ['d' => date('H:i d.m.Y'),
|
|
'm'=>$MailEmployee,
|
|
's'=>$EmployeeMailSubject,
|
|
'c'=>$EmployeeMailContent];
|
|
$travel_user_booking_fewo->send_employee_mail = $send_employee_mail;
|
|
$travel_user_booking_fewo->save();
|
|
}
|
|
return response()->json(['success' => ['travel_user_booking_fewo_id' => $travel_user_booking_fewo->id, 'crm_url' => route('travel_user_booking_fewo_detail', [$travel_user_booking_fewo->id])]], $this->successStatus);
|
|
}
|
|
|
|
}
|
|
} |