last changes since 6-2023

This commit is contained in:
Kevin Adametz 2023-07-03 10:10:09 +02:00
parent 561c5875a7
commit c1c613a4b9
53 changed files with 1351 additions and 93 deletions

View file

@ -287,7 +287,9 @@ class ReportController extends Controller
$new = false;
}
}else{
$total_price += $export->booking->isCanceled() ? $export->booking->getPriceCanceledRaw() : $export->booking->getPriceRaw();
//$total_price += $export->booking->isCanceled() ? $export->booking->getPriceCanceledRaw() : $export->booking->getPriceRaw();
$total_price += $export->isCanceled() ? $export->getPriceCanceledRaw() : $export->getPriceRaw();
$columns[] = array(
'BuchungsID' => $export->id,
'Status' => $export->lead->status->name,

View file

@ -62,6 +62,9 @@ class CMSContentController extends Controller
//store in cms old Datebase
\App\Models\Sym\CmsContent::create($data);
}else{
if($data['identifier'] === 'fewo-email-file'){
$data['integer'] = isset($data['default_travel_info']) ? 1 : 0;
}
$model = CMSContent::find($data['id']);
$model->fill($data);
$model->save();

View file

@ -232,6 +232,24 @@ class LeadController extends Controller
->addColumn('request_date', function (Lead $lead) {
return Carbon::parse($lead->request_date)->format(\Util::formatDateDB());
})
->addColumn('travel_country', function (Lead $lead) {
$out = "";
if($lead->bookings->count()){
$out = '<span class="badge badge-success">';
foreach ($lead->bookings as $booking){
if($booking->travel_country_id && $booking->travel_country) {
$out .= $booking->travel_country->destco;
}
}
$out .= '</span>';
return $out;
}
if($lead->travel_country){
return '<span class="badge badge-secondary">'.$lead->travel_country->destco.'</span>';
}
return "-";
})
->addColumn('status', function (Lead $lead) {
return $lead->getStatusBadge();
})
@ -292,7 +310,7 @@ class LeadController extends Controller
$query->where('customer_id', 'LIKE', '%'.$keyword.'%');
}
})
->rawColumns(['action_edit', 'customer_id', 'sf_guard_user_id', 'id', 'status', 'last_lead_email', 'lead_notice', 'action_delete'])
->rawColumns(['action_edit', 'customer_id', 'sf_guard_user_id', 'id', 'status', 'last_lead_email', 'travel_country', 'lead_notice', 'action_delete'])
->make(true);
}

View file

@ -18,6 +18,8 @@ class EmailsController extends Controller
protected $identifier_booking_file;
protected $identifier_fewo_file;
protected $identifier_lead_file;
public function __construct()
{

View file

@ -0,0 +1,154 @@
<?php
namespace App\Http\Controllers;
use Request;
use Carbon\Carbon;
use App\Models\Page;
class TravelContentController extends Controller
{
public function __construct()
{
$this->middleware(['admin', '2fa']);
}
public function index($step = false)
{
$data = [
'travelProgramOverviews' => Page::whereTemplate('travelProgramOverview')->get(),
'step' => $step
];
return view('travel.content.index', $data);
}
public function detail($id)
{
if($id === "new") {
$id = 'new';
}else{
$page = Page::findOrFail($id);
$id = $page->id;
}
$data = [
'model' => $page,
'id' => $id,
];
return view('travel.content.detail', $data);
}
public function store($id)
{
$data = Request::all();
if($id === "new") {
//$draft = new Draft();
}else{
$page = Page::findOrFail($id);
}
if(Page::whereSlug($data['slug'])->where('id', '!=', $page->id)->count() > 0){
$data['slug'] = "";
}
$page->title = $data['title'];
$page->title_short = $data['title_short'];
$page->pagetitle = $data['pagetitle'];
$page->slug = $data['slug'];
$page->description = $data['description'];
$page->content_new = $data['content_new'];
$page->status = $data['status'];
$page->show_in_navi = $data['show_in_navi'];
$page->save();
\Session()->flash('alert-save', '1');
return redirect(route('travel_content_detail', [$page->id]));
}
public function subDetail($id)
{
if($id === "new") {
$id = 'new';
}else{
$page = Page::findOrFail($id);
$id = $page->id;
}
$data = [
'model' => $page,
'id' => $id,
];
return view('travel.content.sub_detail', $data);
}
public function subStore($id)
{
$data = Request::all();
if($id === "new") {
//$draft = new Draft();
}else{
$page = Page::findOrFail($id);
}
if(Page::whereSlug($data['slug'])->where('id', '!=', $page->id)->count() > 0){
$data['slug'] = "";
}
$page->title = $data['title'];
$page->pagetitle = $data['pagetitle'];
$page->slug = $data['slug'];
$page->description = $data['description'];
$page->status = $data['status'];
$page->show_in_navi = $data['show_in_navi'];
$page->order = $data['order'];
$page->travel_program = $data['travel_program'] > 0 ? $data['travel_program'] : null;
$page->save();
\Session()->flash('alert-save', '1');
return redirect(route('travel_content_sub_detail', [$page->id]));
}
public function load(){
$data = Request::all();
$ret = "";
if(Request::ajax()) {
if($data['action'] === "modal-copy-page") {
if($data['id'] > 0){
$value = Page::findOrFail($data['id']);
$ret = view('travel.content.modal_copy', compact('value'))->render();
}
}
}
return response()->json(['response' => $data, 'html'=>$ret]);
}
public function update(){
$data = Request::all();
if($data['action'] === 'page-copy'){
if($data['page_copy_id'] > 0){
$model = Page::findOrFail($data['page_copy_id']);
$newModel = $model->replicate();
$newModel->date = null;
//slug unique
// $newModel->slug
$newModel->created_at = now();
$newModel->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('travel_content_detail', [$data['id']]));
}
}
}

View file

@ -3,21 +3,23 @@
namespace App\Http\Controllers;
use App\Mail\MailSendFeWoInvoice;
use App\Mail\MailSendFeWoService;
use App\Mail\MailSendFeWoInfo;
use Request;
use App\Services\Util;
use App\Models\CMSContent;
use App\Models\FewoLodging;
use App\Mail\MailSendFeWoInfo;
use App\Models\FewoReservation;
use App\Models\TravelBookingFewoChannel;
use App\Models\TravelUserBookingFewo;
use App\Models\TravelUserBookingFewoNotice;
use App\Models\TravelUserBookingFile;
use App\Repositories\BookingFewoFileRepository;
use App\Repositories\TravelUserBookingFewoRepository;
use App\Services\Util;
use App\Models\CustomerFewoFile;
use App\Mail\MailSendFeWoInvoice;
use App\Mail\MailSendFeWoService;
use Illuminate\Support\Facades\Mail;
use Request;
use App\Models\TravelUserBookingFewo;
use App\Models\TravelUserBookingFile;
use App\Models\TravelBookingFewoChannel;
use App\Models\TravelUserBookingFewoNotice;
use App\Repositories\BookingFewoFileRepository;
use App\Repositories\CustomerFewoFileRepository;
use App\Repositories\TravelUserBookingFewoRepository;
class TravelUserBookingFewoController extends Controller
{
@ -147,8 +149,12 @@ class TravelUserBookingFewoController extends Controller
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_files = [];
if(isset($data['info_mail_files'])){
$mail_files = $this->setMailInfoFiles($data['info_mail_files'], $travel_user_booking_fewo);
}
$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));
Mail::to($travel_user_booking_fewo->travel_user->email)->bcc($mail_bbc)->send(new MailSendFeWoInfo($travel_user_booking_fewo, $mail_files));
$send_info_mail = $travel_user_booking_fewo->send_info_mail;
$send_info_mail[] = [date('H:i d.m.Y') => $travel_user_booking_fewo->travel_user->email];
$travel_user_booking_fewo->send_info_mail = $send_info_mail;
@ -195,6 +201,51 @@ class TravelUserBookingFewoController extends Controller
}
}
private function setMailInfoFiles($info_mail_files, $travel_user_booking_fewo)
{
$files = [];
$ret = [];
//read files
foreach($info_mail_files as $mail_file){
if($mail_file === 'fewo_instruction_pdf'){
$files[] = [
'target' => route('customer_file_show', ['fewo_instruction_pdf', $travel_user_booking_fewo->fewo_lodging->id, 'stream']),
'name' => \App\Services\BookingFewo::getFeWoInstructionPDFName($travel_user_booking_fewo->fewo_lodging)
];
}else{
if($file = \App\Models\CMSContent::getModelBySlug($mail_file)){
$files[] = [
'target' => $file->getURL(),
'name' => $file->name
];
}
}
}
//store files
foreach($files as $file){
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$contents = file_get_contents($file['target'], false, stream_context_create($arrContextOptions));
$mine = Util::getMimeFromHeader($http_response_header);
$extension = Util::getExtensionFromMime($mine);
$fileRepo = new CustomerFewoFileRepository(new CustomerFewoFile());
$fileRepo->_set('disk', 'travel_user');
$fileRepo->_set('dir', '/attachment/'.date('Y/m').'/');
$fileRepo->_set('travel_user_id', $travel_user_booking_fewo->travel_user_id);
$fileRepo->_set('customer_fewo_mail_id', NULL);
$fileRepo->_set('identifier', 'fewo_info_mail_user');
$fileRepo->_set('originalName', $file['name']);
$fileRepo->_set('mine', $mine);
$fileRepo->_set('extension', $extension);
$ret[] = $fileRepo->storeReturnFile($contents);
}
return $ret;
}
public function getAjaxRequests(){