Fewo/ PDFs / Mails v3

This commit is contained in:
Kevin Adametz 2019-05-06 20:21:40 +02:00
parent 7abfe3f700
commit e537e47a82
44 changed files with 2112 additions and 527 deletions

View file

@ -3,12 +3,15 @@
namespace App\Http\Controllers;
use App\Models\FewoPrice;
use App\Mail\MailSendFeWoInvoice;
use App\Mail\MailSendFeWoService;
use App\Mail\MailSendFeWoInfo;
use App\Models\CMSContent;
use App\Models\FewoReservation;
use App\Models\FewoSeason;
use App\Models\TravelUserBookingFewo;
use App\Repositories\TravelUserBookingFewoRepository;
use Carbon\Carbon;
use App\Services\Util;
use Illuminate\Support\Facades\Mail;
use Input;
class TravelUserBookingFewoController extends Controller
@ -35,6 +38,9 @@ class TravelUserBookingFewoController extends Controller
{
$max_adults = 10;
$max_children = 10;
$replace_info_text = [];
if($id == "new") {
$travel_user_booking_fewo = new TravelUserBookingFewo();
$id = 'new';
@ -43,13 +49,21 @@ class TravelUserBookingFewoController extends Controller
$max_adults = isset($travel_user_booking_fewo->fewo_lodging->maximum_adults) ? $travel_user_booking_fewo->fewo_lodging->maximum_adults : 10;
$max_children = isset($travel_user_booking_fewo->fewo_lodging->maximum_childs) ? $travel_user_booking_fewo->fewo_lodging->maximum_childs : 10;;
$id = $travel_user_booking_fewo->id;
$replace_info_text['fewo_user_anrede'] = $travel_user_booking_fewo->getUserSalutation();
$replace_info_text['fewo_adresse'] = $travel_user_booking_fewo->getNameAddressLocation(", ");
}
$data = [
'travel_user_booking_fewo' => $travel_user_booking_fewo,
'max_adults' => $max_adults,
'max_children' => $max_children,
'id' => $id,
];
if(!$travel_user_booking_fewo->info_mail_text) {
$travel_user_booking_fewo->info_mail_text = CMSContent::getContentBySlug('pdf-vorlage-anreiseinfo-fewo');
$travel_user_booking_fewo->info_mail_text = Util::replacePlaceholders($travel_user_booking_fewo->info_mail_text, $replace_info_text);
}
$data = [
'travel_user_booking_fewo' => $travel_user_booking_fewo,
'max_adults' => $max_adults,
'max_children' => $max_children,
'id' => $id,
];
return view('travel.user.booking.detail', $data);
}
@ -59,27 +73,92 @@ class TravelUserBookingFewoController extends Controller
if($data['action'] == 'saveAll'){
return $this->userBookingFewoRepo->update($id, $data);
}
if($data['action'] == 'createInvoice'){
if(!TravelUserBookingFewo::find($id)){
\Session()->flash('alert-error', __('Buchung nicht gefunden.'));
return back()->withInput(Input::all());
}
return $this->userBookingFewoRepo->createInvoicePDF($id, $data);
$ret = $this->userBookingFewoRepo->check($id, $data);
if($ret['success'] == false){
return back()->withInput(Input::all())->withErrors($ret['error']);
}
if($ret['success'] == true){
$this->userBookingFewoRepo->createInvoicePDF($id);
\Session()->flash('alert-success', __('Mietbestätigung / Rechnung wurde erstellt.'));
return redirect(route('travel_user_booking_fewo_detail', [$ret['id']]));
}
}
if($data['action'] == 'createTravelInfo'){
if(!TravelUserBookingFewo::find($id)){
\Session()->flash('alert-error', __('Buchung nicht gefunden.'));
return back()->withInput(Input::all());
}
$ret = $this->userBookingFewoRepo->check($id, $data);
if($ret['success'] == false){
return back()->withInput(Input::all())->withErrors($ret['error']);
}
if($ret['success'] == true){
$this->userBookingFewoRepo->createTravelInfoPDF($id, $data['info_mail_text']);
\Session()->flash('alert-success', __('Anreiseinfo wurde erstellt/gespeichert.'));
return redirect(route('travel_user_booking_fewo_detail', [$ret['id']]));
}
}
if($data['action'] == 'sendMailtoUser') {
$travel_user_booking_fewo = TravelUserBookingFewo::findOrFail($id);
if($travel_user_booking_fewo->travel_user_id && $travel_user_booking_fewo->travel_user->email){
$mail_bbc = config('mail.mail_bbc');
Mail::to($travel_user_booking_fewo->travel_user->email)->bcc($mail_bbc)->send(new MailSendFeWoInvoice($travel_user_booking_fewo, Input::get('send_mail_user_notice')));
$send_user_mail = $travel_user_booking_fewo->send_user_mail;
$send_user_mail[] = [date('H:i d.m.Y') => Input::get('send_mail_user_notice')];
$travel_user_booking_fewo->send_user_mail = $send_user_mail;
$travel_user_booking_fewo->save();
\Session()->flash('alert-success', __('E-mail wurde an den Mieter versendet.'));
return redirect(route('travel_user_booking_fewo_detail', [$travel_user_booking_fewo->id]));
}
}
if($data['action'] == 'sendInfosMailtoUser') {
$travel_user_booking_fewo = TravelUserBookingFewo::findOrFail($id);
if($travel_user_booking_fewo->travel_user_id && $travel_user_booking_fewo->travel_user->email){
$mail_bbc = config('mail.mail_bbc');
Mail::to($travel_user_booking_fewo->travel_user->email)->bcc($mail_bbc)->send(new MailSendFeWoInfo($travel_user_booking_fewo));
$send_info_mail = $travel_user_booking_fewo->send_info_mail;
$send_info_mail[] = [date('H:i d.m.Y') => ''];
$travel_user_booking_fewo->send_info_mail = $send_info_mail;
$travel_user_booking_fewo->save();
\Session()->flash('alert-success', __('E-mail wurde an den Mieter versendet.'));
return redirect(route('travel_user_booking_fewo_detail', [$travel_user_booking_fewo->id]));
}
}
if($data['action'] == 'sendMailtoService') {
$travel_user_booking_fewo = TravelUserBookingFewo::findOrFail($id);
if($travel_user_booking_fewo){
$mail_bbc = config('mail.mail_bbc');
Mail::to(Input::get('send_mail_service_mail'))->bcc($mail_bbc)->send(new MailSendFeWoService($travel_user_booking_fewo, Input::get('send_mail_service_subject'), Input::get('send_mail_service_content')));
$send_service_mail = $travel_user_booking_fewo->send_service_mail;
$send_service_mail[] = ['d' => date('H:i d.m.Y'),
'm'=>Input::get('send_mail_service_mail'),
's'=>Input::get('send_mail_service_subject'),
'c'=>Input::get('send_mail_service_content')];
$travel_user_booking_fewo->send_service_mail = $send_service_mail;
$travel_user_booking_fewo->save();
\Session()->flash('alert-success', __('E-mail wurde an den Dienstleister versendet.'));
return redirect(route('travel_user_booking_fewo_detail', [$travel_user_booking_fewo->id]));
}
}
}
public function delete($id){
$model = TravelUserBookingFewo::findOrFail($id);
$FewoReservations = FewoReservation::where('lodging_id', $model->fewo_lodging_id)->where('from_date', $model->getFromDateRaw())->where('to_date', $model->getToDateRaw())->get();