From f53f17f9c1f424f40d063044f223bf764be1147d Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Thu, 12 Mar 2020 09:37:01 +0100 Subject: [PATCH] Customer Mail, Mails, Views Lead Customer --- .env | 1 + .idea/workspace.xml | 173 ++-- .phpstorm.meta.php | 2 +- _ide_helper.php | 2 +- _ide_helper_models.php | 91 +++ app/Http/Controllers/CustomerController.php | 86 ++ .../Controllers/CustomerMailController.php | 114 +++ app/Http/Controllers/LeadController.php | 100 +++ app/Http/Controllers/RequestController.php | 73 +- app/Mail/MailSendInfo.php | 34 + app/Models/CMSAuthor.php | 11 +- app/Models/Customer.php | 8 - app/Models/CustomerMail.php | 109 +++ app/Models/Keyword.php | 11 +- app/Models/TravelGuide.php | 5 +- app/Models/TravelProgram.php | 2 + app/Repositories/CustomerMailRepository.php | 89 ++ app/Repositories/CustomerRepository.php | 21 + app/Repositories/LeadRepository.php | 21 + config/mail.php | 4 +- config/permissions.php | 5 +- ..._11_131408_create_customer_mails_table.php | 61 ++ public/css/application.css | 355 ++++++++ public/js/custom.js | 42 + .../views/cms/content/all/index.blade.php | 5 - .../views/cms/content/country/index.blade.php | 5 - resources/views/customer/detail.blade.php | 72 ++ resources/views/customer/index.blade.php | 52 ++ .../views/customer/mail/detail.blade.php | 286 +++++++ resources/views/customer/mail/index.blade.php | 65 ++ resources/views/emails/___auth.blade.php | 237 ------ resources/views/emails/_auth.blade.php | 766 ------------------ resources/views/emails/auth.blade.php | 47 +- resources/views/emails/auth_plain.blade.php | 24 +- resources/views/emails/content.blade.php | 47 +- resources/views/emails/footer.blade.php | 37 + resources/views/emails/header.blade.php | 22 + resources/views/emails/info.blade.php | 46 +- resources/views/emails/invoice.blade.php | 46 +- resources/views/layouts/application.blade.php | 2 +- .../layouts/includes/layout-sidenav.blade.php | 38 +- resources/views/lead/detail.blade.php | 79 ++ resources/views/lead/index.blade.php | 58 ++ resources/views/request/index.blade.php | 274 ++++--- resources/views/request/modal-mail.blade.php | 40 + routes/web.php | 38 +- 46 files changed, 2217 insertions(+), 1489 deletions(-) create mode 100755 app/Http/Controllers/CustomerController.php create mode 100755 app/Http/Controllers/CustomerMailController.php create mode 100755 app/Http/Controllers/LeadController.php create mode 100644 app/Mail/MailSendInfo.php create mode 100644 app/Models/CustomerMail.php create mode 100644 app/Repositories/CustomerMailRepository.php create mode 100644 app/Repositories/CustomerRepository.php create mode 100644 app/Repositories/LeadRepository.php create mode 100644 database/migrations/2020_03_11_131408_create_customer_mails_table.php create mode 100755 resources/views/customer/detail.blade.php create mode 100755 resources/views/customer/index.blade.php create mode 100755 resources/views/customer/mail/detail.blade.php create mode 100755 resources/views/customer/mail/index.blade.php delete mode 100644 resources/views/emails/___auth.blade.php delete mode 100644 resources/views/emails/_auth.blade.php create mode 100644 resources/views/emails/footer.blade.php create mode 100644 resources/views/emails/header.blade.php create mode 100755 resources/views/lead/detail.blade.php create mode 100755 resources/views/lead/index.blade.php create mode 100644 resources/views/request/modal-mail.blade.php diff --git a/.env b/.env index 76f561d..330163d 100755 --- a/.env +++ b/.env @@ -54,6 +54,7 @@ MAIL_FEWO_EMPLOYEE=kevin@adametz.media #MAIL_FEWO_EMPLOYEE=katrin.nikolai@stern-tours.de,gerda.fritsch@stern-tours.de #MAIL_BBC=kontakt@stern-tours.de,thomas.stern@stern-tours.de MAIL_FROM_ADDRESS=info@mein.sterntours.de +MAIL_FROM_NAME=Mein Reisebüro STERN TOURS MAIL_DRIVER=smtp MAIL_HOST=mail.your-server.de MAIL_PORT=587 diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8c66a24..de6e0d3 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,15 +2,15 @@ - - - - - - - - - + + + + + + + + + @@ -30,100 +30,27 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - + - - - @@ -132,7 +59,6 @@ - @@ -174,24 +100,19 @@ - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + @@ -406,13 +334,6 @@ - - - - - - - @@ -754,10 +679,10 @@ - + - + @@ -778,15 +703,15 @@ - + - + - + - + \ No newline at end of file diff --git a/.phpstorm.meta.php b/.phpstorm.meta.php index 16c0b9d..ba502bf 100644 --- a/.phpstorm.meta.php +++ b/.phpstorm.meta.php @@ -5,7 +5,7 @@ namespace PHPSTORM_META { /** * PhpStorm Meta file, to provide autocomplete information for PhpStorm - * Generated on 2020-02-26 13:37:45. + * Generated on 2020-03-11 14:36:00. * * @author Barry vd. Heuvel * @see https://github.com/barryvdh/laravel-ide-helper diff --git a/_ide_helper.php b/_ide_helper.php index d5e503c..c2d2989 100644 --- a/_ide_helper.php +++ b/_ide_helper.php @@ -3,7 +3,7 @@ /** * A helper file for Laravel 5, to provide autocomplete information to your IDE - * Generated for Laravel 6.17.0 on 2020-02-26 13:37:45. + * Generated for Laravel 6.17.0 on 2020-03-11 14:36:00. * * This file should not be included in your code, only analyzed by your IDE! * diff --git a/_ide_helper_models.php b/_ide_helper_models.php index a4f2771..160319c 100644 --- a/_ide_helper_models.php +++ b/_ide_helper_models.php @@ -318,6 +318,27 @@ namespace App\Models{ class TravelProgramDraft extends \Eloquent {} } +namespace App\Models{ +/** + * Class Keyword + * + * @property int $id + * @property string $name + * @property Carbon $created_at + * @property Carbon $updated_at + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword whereUpdatedAt($value) + * @mixin \Eloquent + */ + class Keyword extends \Eloquent {} +} + namespace App\Models{ /** * App\Models\TravelNationality @@ -785,6 +806,27 @@ namespace App\Models{ class Offer extends \Eloquent {} } +namespace App\Models{ +/** + * Class CMSAuthor + * + * @property int $id + * @property string $name + * @property Carbon $created_at + * @property Carbon $updated_at + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor whereUpdatedAt($value) + * @mixin \Eloquent + */ + class CMSAuthor extends \Eloquent {} +} + namespace App\Models{ /** * Class Website @@ -830,6 +872,50 @@ namespace App\Models{ class CMSInfoHoliday extends \Eloquent {} } +namespace App\Models{ +/** + * Class CustomerMail + * + * @property int $id + * @property int $booking_id + * @property int $customer_id + * @property int $lead_id + * @property string $subject + * @property string $message + * @property bool $send + * @property bool $fail + * @property string $error + * @property Carbon $sent_at + * @property Carbon $scheduled_at + * @property Carbon $delivered_at + * @property Carbon $created_at + * @property Carbon $updated_at + * @property Booking $booking + * @property Customer $customer + * @property Lead $lead + * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereBookingId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereCustomerId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereDeliveredAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereError($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereFail($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereLeadId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereScheduledAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSend($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSentAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereSubject($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CustomerMail whereUpdatedAt($value) + * @mixin \Eloquent + */ + class CustomerMail extends \Eloquent {} +} + namespace App\Models{ /** * Class Searchengine @@ -1605,6 +1691,9 @@ namespace App\Models{ * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide whereBoxImageUrl($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide whereCountryId($value) * @property-read int|null $iq_content_sites_count + * @property int|null $author_id + * @property-read \App\Models\CMSAuthor|null $author + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide whereAuthorId($value) */ class TravelGuide extends \Eloquent {} } @@ -2680,6 +2769,8 @@ namespace App\Models{ * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram query() * @property-read int|null $classes_count * @property-read int|null $travel_program_drafts_count + * @property string|null $keywords + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram whereKeywords($value) */ class TravelProgram extends \Eloquent {} } diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php new file mode 100755 index 0000000..a9ad289 --- /dev/null +++ b/app/Http/Controllers/CustomerController.php @@ -0,0 +1,86 @@ +middleware('admin'); + $this->customerRepo = $customerRepo; + } + + public function index($step = false) + { + $data = [ + 'step' => $step + ]; + return view('customer.index', $data); + } + + public function detail($id) + { + if($id === "new") { + $customer = new Customer(); + $id = 'new'; + + }else{ + $customer = Customer::findOrFail($id); + $id = $customer->id; + } + $data = [ + 'customer' => $customer, + 'id' => $id, + ]; + return view('customer.detail', $data); + + } + + public function store($id) + { + return back(); + /* $data = Request::all(); + + \Session()->flash('alert-save', '1'); + return redirect(route('lead_detail', [$lead->id]));*/ + + } + + public function delete($id){ + /* + \Session()->flash('alert-success', __('Eintrag gelöscht')); + return redirect(route('lead_detail', [$lead->id]));*/ + } + + public function getCustomers() + { + $query = Customer::with('salutation'); + + return \DataTables::eloquent($query) + ->addColumn('action_edit', function (Customer $customer) { + return ''; + }) + ->addColumn('id', function (Customer $customer) { + return ''.$customer->id.''; + }) + + ->orderColumn('id', 'id $1') + ->filterColumn('id', function($query, $keyword) { + if($keyword != ""){ + $query->where('id', 'LIKE', '%'.$keyword.'%'); + } + }) + ->rawColumns(['action_edit', 'id']) + ->make(true); + } +} + + diff --git a/app/Http/Controllers/CustomerMailController.php b/app/Http/Controllers/CustomerMailController.php new file mode 100755 index 0000000..8decf16 --- /dev/null +++ b/app/Http/Controllers/CustomerMailController.php @@ -0,0 +1,114 @@ +middleware('admin'); + $this->customerMailRepo = $customerMailRepo; + } + + public function index() + { + $data = [ + + ]; + return view('customer.mail.index', $data); + } + + public function detail($id) + { + if($id === "new") { + $customer_mail = new CustomerMail(); + $id = 'new'; + + }else{ + $customer_mail = CustomerMail::findOrFail($id); + $id = $customer_mail->id; + } + $data = [ + 'customer_mail' => $customer_mail, + 'id' => $id, + ]; + return view('customer.mail.detail', $data); + + } + + public function store($id) + { + return back(); + /* $data = Request::all(); + + \Session()->flash('alert-save', '1'); + return redirect(route('lead_detail', [$lead->id]));*/ + + } + + public function delete($id){ + /* + \Session()->flash('alert-success', __('Eintrag gelöscht')); + return redirect(route('lead_detail', [$lead->id]));*/ + } + + public function getCustomerMails() + { + $query = CustomerMail::with('booking')->with('customer'); + + return \DataTables::eloquent($query) + ->addColumn('action_edit', function (CustomerMail $customer_mail) { + return ''; + }) + ->addColumn('id', function (CustomerMail $customer_mail) { + return ''.$customer_mail->id.''; + }) + ->addColumn('booking', function (CustomerMail $customer_mail) { + $out = $customer_mail->booking->travel_country_id ? $customer_mail->booking->travel_country->name." | " : "- | "; + $out .= $customer_mail->booking->travelagenda_id ? $customer_mail->booking->travel_agenda->name."" : "-"; + return $out; + }) + ->addColumn('booking_id', function (CustomerMail $customer_mail) { + return ''.$customer_mail->booking_id.''; + }) + ->addColumn('customer_id', function (CustomerMail $customer_mail) { + return ''.$customer_mail->customer_id.''; + }) + ->addColumn('send', function (CustomerMail $customer_mail) { + return $customer_mail->send ? '' : ''; + }) + ->orderColumn('id', 'id $1') + ->orderColumn('booking_id', 'booking_id $1') + ->orderColumn('customer_id', 'customer_id $1') + ->orderColumn('send', 'send $1') + + ->filterColumn('id', function($query, $keyword) { + if($keyword != ""){ + $query->where('id', 'LIKE', '%'.$keyword.'%'); + } + }) + ->filterColumn('customer_id', function($query, $keyword) { + if($keyword != ""){ + $query->where('customer_id', 'LIKE', '%'.$keyword.'%'); + } + }) + ->filterColumn('booking_id', function($query, $keyword) { + if($keyword != ""){ + $query->where('booking_id', 'LIKE', '%'.$keyword.'%'); + } + }) + ->rawColumns(['action_edit', 'send', 'customer_id', 'booking_id', 'id']) + ->make(true); + } +} + + diff --git a/app/Http/Controllers/LeadController.php b/app/Http/Controllers/LeadController.php new file mode 100755 index 0000000..f5808d1 --- /dev/null +++ b/app/Http/Controllers/LeadController.php @@ -0,0 +1,100 @@ +middleware('admin'); + $this->leadRepo = $leadRepo; + } + + public function index($step = false) + { + $data = [ + 'step' => $step + ]; + return view('lead.index', $data); + } + + public function detail($id) + { + if($id === "new") { + $lead = new Lead(); + $id = 'new'; + + }else{ + $lead = Lead::findOrFail($id); + $id = $lead->id; + } + $data = [ + 'lead' => $lead, + 'id' => $id, + ]; + return view('lead.detail', $data); + + } + + public function store($id) + { + return back(); + /* $data = Request::all(); + + \Session()->flash('alert-save', '1'); + return redirect(route('lead_detail', [$lead->id]));*/ + + } + + public function delete($id){ + /* + \Session()->flash('alert-success', __('Eintrag gelöscht')); + return redirect(route('lead_detail', [$lead->id]));*/ + } + + public function getLeads() + { + $query = Lead::with('customer')->with('sf_guard_user')->with('status'); + + return \DataTables::eloquent($query) + ->addColumn('action_edit', function (Lead $lead) { + return ''; + }) + ->addColumn('id', function (Lead $lead) { + return ''.$lead->id.''; + }) + ->addColumn('customer_id', function (Lead $lead) { + return ''.$lead->customer_id.''; + }) + ->addColumn('request_date', function (Lead $lead) { + return Carbon::parse($lead->request_date)->format(\Util::formatDateDB()); + }) + ->orderColumn('id', 'id $1') + ->orderColumn('customer_id', 'customer_id $1') + ->filterColumn('id', function($query, $keyword) { + if($keyword != ""){ + $query->where('id', 'LIKE', '%'.$keyword.'%'); + } + }) + ->filterColumn('customer_id', function($query, $keyword) { + if($keyword != ""){ + $query->where('customer_id', 'LIKE', '%'.$keyword.'%'); + } + }) + ->rawColumns(['action_edit', 'customer_id', 'sf_guard_user_id', 'id']) + ->make(true); + } + + + +} + + diff --git a/app/Http/Controllers/RequestController.php b/app/Http/Controllers/RequestController.php index 7fd97e7..0619b5f 100755 --- a/app/Http/Controllers/RequestController.php +++ b/app/Http/Controllers/RequestController.php @@ -5,7 +5,9 @@ namespace App\Http\Controllers; use App\Models\Booking; use App\Models\Sym\TravelCountry; use App\Models\TravelAgenda; +use App\Repositories\CustomerMailRepository; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Collection; use Request; use DataTables; @@ -21,7 +23,6 @@ class RequestController extends Controller public function index($step = false) { - $d = Booking::join('travel_country', 'travel_country_id', '=', 'travel_country.id')->get()->pluck('name', 'travel_country_id')->unique()->toArray(); $data = [ @@ -31,6 +32,17 @@ class RequestController extends Controller return view('request.index', $data); } + public function detail($id) + { + + $d = Booking::join('travel_country', 'travel_country_id', '=', 'travel_country.id')->get()->pluck('name', 'travel_country_id')->unique()->toArray(); + + $data = [ + 'travel_countries' => $d, + ]; + return view('request.index', $data); + } + /* wirte old where has state to new has travel_documents @@ -70,7 +82,6 @@ class RequestController extends Controller } // $query->where('end_date', '<=', $now); - if(Request::get('travel_option_search')){ $now = Carbon::now(); @@ -146,8 +157,6 @@ class RequestController extends Controller } } - - if(Request::get('sort_travel_country_id') != ""){ $query->where('travel_country_id', '=', Request::get('sort_travel_country_id')); } @@ -172,6 +181,7 @@ class RequestController extends Controller } return $query; } + public function getAjaxRequests(){ $query = $this->getSearchRequests(); @@ -179,14 +189,58 @@ class RequestController extends Controller return TravelAgenda::whereIn('id', $ret)->get()->pluck('name', 'id'); } + + public function loadModal(){ + $data = Request::all(); + $ret = ""; + if(Request::ajax()){ + + $customers = []; + $query = $this->getSearchRequests(); + $bookings = $query->orderBy('id', 'DESC')->limit(50)->get(); + foreach ($bookings as $booking){ + $tmp = ""; + $tmp .= $booking->customer ? $booking->customer->email." | " : "- | "; + $tmp .= $booking->customer ? $booking->customer->firstname." ".$booking->customer->name." | " : "- | "; + $tmp .= $booking->travel_country_id ? $booking->travel_country->name." | " : "- | "; + $tmp .= $booking->travelagenda_id ? $booking->travel_agenda->name."" : "-"; + + $customers[$booking->id] = $tmp; + } + + // return TravelAgenda::whereIn('id', $ret)->get()->pluck('name', 'id'); + + if($data['action'] === "send-customer-mail"){ + $value = new Collection(); + $value->id = "add"; + $value->customers = $customers; + $value->message = "Sehr #geehrte/r# #Anrede# #Vorname# #Nachname#,\n\nText ...."; + $data['title'] = "E-Mail-Nachricht an Auswahl"; + $url = route('requests_send_customer_mail'); + $ret = view("request.modal-mail", compact('data','value', 'url') )->render(); + } + + } + return response()->json(['response' => $data, 'html'=>$ret]); + } + + public function sendCustomerMail(CustomerMailRepository $customerMailRepository){ + $data = Request::all(); + + $customerMailRepository->sendAndStore($data); + \Session()->flash('alert-success', "Mails gesendet!"); + + return back(); + } + public function getRequests() { $query = $this->getSearchRequests(); return \DataTables::eloquent($query) - ->addColumn('action_edit', function (Booking $booking) { - return ''; //''; + ->addColumn('action_lead_edit', function (Booking $booking) { + return ''; }) ->addColumn('lead_id', function (Booking $booking) { return ''.$booking->lead_id.''; @@ -200,6 +254,9 @@ class RequestController extends Controller ->addColumn('id', function (Booking $booking) { return ''.$booking->id.''; }) + ->addColumn('action_booking_edit', function (Booking $booking) { + return ''; + }) ->addColumn('travel_country_id', function (Booking $booking) { return ''.($booking->travel_country_id ? $booking->travel_country->name : "-").''; }) @@ -245,11 +302,9 @@ class RequestController extends Controller ->orderColumn('start_date', 'start_date $1') ->orderColumn('end_date', 'end_date $1') ->orderColumn('travel_documents', 'travel_documents $1') - ->rawColumns(['action_edit', 'lead_id', 'participant_firstname', 'participant_name', 'travel_country_id', 'travelagenda_id', 'sf_guard_user_id', 'lead.status_id', 'id', 'travel_documents']) + ->rawColumns(['action_lead_edit', 'lead_id', 'participant_firstname', 'participant_name', 'action_booking_edit', 'travel_country_id', 'travelagenda_id', 'sf_guard_user_id', 'lead.status_id', 'id', 'travel_documents']) ->make(true); } - - } diff --git a/app/Mail/MailSendInfo.php b/app/Mail/MailSendInfo.php new file mode 100644 index 0000000..55c89bd --- /dev/null +++ b/app/Mail/MailSendInfo.php @@ -0,0 +1,34 @@ +subject = $subject; + $this->content = $content; + } + + + public function build() + { + return $this->view('emails.content')->with([ + 'content' => $this->content, + 'greetings' => __('Best regards'), + ]); + } +} \ No newline at end of file diff --git a/app/Models/CMSAuthor.php b/app/Models/CMSAuthor.php index 609db3a..cfa3232 100644 --- a/app/Models/CMSAuthor.php +++ b/app/Models/CMSAuthor.php @@ -11,13 +11,20 @@ use Reliese\Database\Eloquent\Model; /** * Class CMSAuthor - * + * * @property int $id * @property string $name * @property Carbon $created_at * @property Carbon $updated_at - * * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSAuthor whereUpdatedAt($value) + * @mixin \Eloquent */ class CMSAuthor extends Model { diff --git a/app/Models/Customer.php b/app/Models/Customer.php index b029384..1286e1c 100644 --- a/app/Models/Customer.php +++ b/app/Models/Customer.php @@ -121,39 +121,32 @@ class Customer extends Model 'participants_remarks', 'miscellaneous_remarks', 'country_id', - ]; public function travel_country() { return $this->belongsTo(TravelCountry::class, 'country_id'); } - public function credit_card_type() { return $this->belongsTo(CreditCardType::class); } - public function salutation() { return $this->belongsTo(Salutation::class); } - public function bookings() { return $this->hasMany(Booking::class); } - public function coupons() { return $this->hasMany(Coupon::class); } - public function leads() { return $this->hasMany(Lead::class); } - public function fullName() { if ($this->firstname) { @@ -161,7 +154,6 @@ class Customer extends Model } return $this->name; } - } diff --git a/app/Models/CustomerMail.php b/app/Models/CustomerMail.php new file mode 100644 index 0000000..b081be0 --- /dev/null +++ b/app/Models/CustomerMail.php @@ -0,0 +1,109 @@ + 'int', + 'customer_id' => 'int', + 'lead_id' => 'int', + 'send' => 'bool', + 'fail' => 'bool' + ]; + + protected $dates = [ + 'sent_at', + 'scheduled_at', + 'delivered_at' + ]; + + protected $fillable = [ + 'booking_id', + 'customer_id', + 'lead_id', + 'email', + 'subject', + 'message', + 'send', + 'fail', + 'error', + 'sent_at', + 'scheduled_at', + 'delivered_at' + ]; + + public function booking() + { + return $this->belongsTo(Booking::class); + } + + public function customer() + { + return $this->belongsTo(Customer::class); + } + + public function lead() + { + return $this->belongsTo(Lead::class); + } + + public function getSentAtAttribute(){ + if(!$this->attributes['sent_at']){ return ""; } + return Carbon::parse($this->attributes['sent_at'])->format(\Util::formatDateTimeDB()); + } + + public function getCreatedAtAttribute(){ + if(!$this->attributes['created_at']){ return ""; } + return Carbon::parse($this->attributes['created_at'])->format(\Util::formatDateTimeDB()); + } +} diff --git a/app/Models/Keyword.php b/app/Models/Keyword.php index f590d5d..e82eb9a 100644 --- a/app/Models/Keyword.php +++ b/app/Models/Keyword.php @@ -11,13 +11,20 @@ use Reliese\Database\Eloquent\Model; /** * Class Keyword - * + * * @property int $id * @property string $name * @property Carbon $created_at * @property Carbon $updated_at - * * @package App\Models + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword query() + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Keyword whereUpdatedAt($value) + * @mixin \Eloquent */ class Keyword extends Model { diff --git a/app/Models/TravelGuide.php b/app/Models/TravelGuide.php index 9d77dd1..637ad01 100644 --- a/app/Models/TravelGuide.php +++ b/app/Models/TravelGuide.php @@ -48,6 +48,9 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide whereBoxImageUrl($value) * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide whereCountryId($value) * @property-read int|null $iq_content_sites_count + * @property int|null $author_id + * @property-read \App\Models\CMSAuthor|null $author + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide whereAuthorId($value) */ class TravelGuide extends Model { @@ -98,7 +101,7 @@ class TravelGuide extends Model public function author() { - return $this->belongsTo('App\Models\Author', 'author_id', 'id'); + return $this->belongsTo('App\Models\CMSAuthor', 'author_id', 'id'); } public static function getScopeOptions($setKey = false){ diff --git a/app/Models/TravelProgram.php b/app/Models/TravelProgram.php index d7b0a74..9d059ff 100644 --- a/app/Models/TravelProgram.php +++ b/app/Models/TravelProgram.php @@ -111,6 +111,8 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram query() * @property-read int|null $classes_count * @property-read int|null $travel_program_drafts_count + * @property string|null $keywords + * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram whereKeywords($value) */ class TravelProgram extends Model { diff --git a/app/Repositories/CustomerMailRepository.php b/app/Repositories/CustomerMailRepository.php new file mode 100644 index 0000000..2d6849c --- /dev/null +++ b/app/Repositories/CustomerMailRepository.php @@ -0,0 +1,89 @@ +model = $model; + } + + public function update($data) + { + return $this->model; + } + + public function sendAndStore($data){ + if(isset($data['send_mail_to']) && is_array($data['send_mail_to'])) { + foreach ($data['send_mail_to'] as $booking_id => $on) { + $booking = Booking::find($booking_id); + if ($booking->customer) { + $message = $this->prepareContent($booking, $data['message']); + $subject = $this->prepareContent($booking, $data['subject']); + $customer_mail = $this->store($booking, $subject, $message); + $this->sendMail($customer_mail); + } + } + } + } + + public function store($booking, $subject, $message){ + + $customer_mail = CustomerMail::create([ + 'booking_id' => $booking->id, + 'customer_id' => $booking->customer_id, + 'lead_id' => $booking->lead_id, + 'email' => $booking->customer->email, + 'subject' => $subject, + 'message' => $message, + + ]); + return $customer_mail; + } + + private function sendMail($customer_mail){ + + try{ + Mail::to($customer_mail->email)->send(new MailSendInfo($customer_mail->subject, $customer_mail->message)); + } + catch(\Exception $e){ + // Never reached + $customer_mail->fail = true; + $customer_mail->error = $e->getMessage(); + $customer_mail->save(); + return false; + } + $customer_mail->send = true; + $customer_mail->sent_at = now(); + $customer_mail->save(); + return true; + } + private function prepareContent($booking, $content){ + + $first_name = $booking->customer->firstname; + $last_name = $booking->customer->name; + $country = $booking->travel_country_id ? $booking->travel_country->name : "-"; + $program = $booking->travelagenda_id ? $booking->travel_agenda->name : "-"; + $salutation = $booking->customer->salutation->name; + + + $dear = $booking->customer->salutation_id == 1 ? 'geehrter' : 'geehrte'; + $search = ['#geehrte/r#', '#Anrede#', '#Vorname#', '#Nachname#', '#Reiseland#', '#Programm#']; + $replace = [$dear, $salutation, $first_name, $last_name, $country, $program, $salutation]; + $content = str_replace($search, $replace, $content); + + return $content; + + } + +} \ No newline at end of file diff --git a/app/Repositories/CustomerRepository.php b/app/Repositories/CustomerRepository.php new file mode 100644 index 0000000..4b54124 --- /dev/null +++ b/app/Repositories/CustomerRepository.php @@ -0,0 +1,21 @@ +model = $model; + } + + public function update($data) + { + return $this->model; + } + +} \ No newline at end of file diff --git a/app/Repositories/LeadRepository.php b/app/Repositories/LeadRepository.php new file mode 100644 index 0000000..0f8de18 --- /dev/null +++ b/app/Repositories/LeadRepository.php @@ -0,0 +1,21 @@ +model = $model; + } + + public function update($data) + { + return $this->model; + } + +} \ No newline at end of file diff --git a/config/mail.php b/config/mail.php index 09b3546..f909655 100755 --- a/config/mail.php +++ b/config/mail.php @@ -56,8 +56,8 @@ return [ */ 'from' => [ - 'address' => env('MAIL_FROM_ADDRESS', 'stern@stern-tours.de'), - 'name' => env('MAIL_FROM_NAME', 'Mein Stern-Tours'), + 'address' => env('MAIL_FROM_ADDRESS', 'stern@sterntours.de'), + 'name' => env('MAIL_FROM_NAME', 'Mein Reisebüro STERN TOURS'), ], 'mail_bbc' => explode(',', env('MAIL_BBC', 'kontakt@stern-tours.de')), 'mail_fewo_employee' => env('MAIL_FEWO_EMPLOYEE', 'kontakt@stern-tours.de'), diff --git a/config/permissions.php b/config/permissions.php index 092e457..294de3f 100755 --- a/config/permissions.php +++ b/config/permissions.php @@ -11,8 +11,11 @@ return [ 'crm-tp-pr' => ['name' => 'ADMIN CRM > Reiseprogramme > Programme' , 'color' => 'admin'], 'crm-tp-dr' => ['name' => 'ADMIN CRM > Reiseprogramme > Vorlagen' , 'color' => 'admin'], 'crm-bo' => ['name' => 'ADMIN CRM > Buchungen' , 'color' => 'admin'], - 'crm-bo-re' => ['name' => 'ADMIN CRM > Buchungen > Anfragen' , 'color' => 'admin'], + 'crm-bo-re' => ['name' => 'ADMIN CRM > Buchungen > Übersicht' , 'color' => 'admin'], 'crm-bo-bo' => ['name' => 'ADMIN CRM > Buchungen > Buchungen' , 'color' => 'admin'], + 'crm-bo-le' => ['name' => 'ADMIN CRM > Buchungen > Anfragen' , 'color' => 'admin'], + 'crm-bo-cu' => ['name' => 'ADMIN CRM > Buchungen > Kunden' , 'color' => 'admin'], + 'crm-bo-ma' => ['name' => 'ADMIN CRM > Buchungen > Kunden Mails' , 'color' => 'admin'], 'crm-cm' => ['name' => 'ADMIN CRM > Kundenverwaltung' , 'color' => 'admin'], 'crm-cm-cf' => ['name' => 'ADMIN CRM > Kundenverwaltung > Kunden (FeWo)' , 'color' => 'admin'], 'crm-cm-bf' => ['name' => 'ADMIN CRM > Kundenverwaltung > Buchungen (FeWo)' , 'color' => 'admin'], diff --git a/database/migrations/2020_03_11_131408_create_customer_mails_table.php b/database/migrations/2020_03_11_131408_create_customer_mails_table.php new file mode 100644 index 0000000..755375e --- /dev/null +++ b/database/migrations/2020_03_11_131408_create_customer_mails_table.php @@ -0,0 +1,61 @@ +bigIncrements('id'); + + $table->bigInteger('booking_id'); + $table->bigInteger('customer_id'); + $table->bigInteger('lead_id')->nullable(); + + $table->string('email', 255); + $table->string('subject', 255); + $table->text('message')->nullable(); + + $table->boolean('send')->default(false); + $table->boolean('fail')->default(false); + $table->text('error')->nullable(); + + $table->timestamp('sent_at')->nullable(); + $table->timestamp('scheduled_at')->nullable(); + $table->timestamp('delivered_at')->nullable(); + + $table->timestamps(); + + $table->foreign('booking_id') + ->references('id') + ->on('booking'); + + $table->foreign('customer_id') + ->references('id') + ->on('customer'); + + $table->foreign('lead_id') + ->references('id') + ->on('lead'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('customer_mails'); + } +} diff --git a/public/css/application.css b/public/css/application.css index e2af3e1..e61effd 100644 --- a/public/css/application.css +++ b/public/css/application.css @@ -341,3 +341,358 @@ figcaption { margin: 0; width: auto; } + +.messages-wrapper { + position: relative; + display: -ms-flexbox; + display: flex; + overflow: hidden; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + width: 100% +} + +.messages-card { + overflow: hidden +} + +.messages-wrapper, +.messages-sidebox { + transition: all .2s +} + +.messages-sidebox { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -ms-flex-positive: 0; + flex-grow: 0 +} + +.messages-wrapper .messages-sidebox, +.messages-card .messages-sidebox { + position: fixed; + left: calc(-14rem - 1px); + z-index: 10; + -ms-flex-preferred-size: auto; + flex-basis: auto; + -ms-flex-positive: 1; + flex-grow: 1; + width: 14rem +} + +[dir=rtl] .messages-wrapper .messages-sidebox, +[dir=rtl] .messages-card .messages-sidebox { + right: calc(-14rem - 1px); + left: auto +} + +.layout-sidenav-100vh .messages-wrapper .messages-sidebox { + height: 100vh +} + +.messages-card .messages-sidebox { + position: absolute; + bottom: 0 +} + +.messages-scroll { + position: absolute; + top: 0; + bottom: 0; + height: 100% +} + +.messages-scroll.messages-content { + position: absolute; + right: 0; + left: 0; + width: 100% +} + +.messages-list .list-group-item { + z-index: auto !important; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-top: .375rem; + padding-bottom: .375rem; + width: 100%; + border-right: 0; + border-left: 0; + border-radius: 0 +} + +.messages-list .list-group-item:first-child { + border-top: 0 +} + +.messages-list .list-group-item:last-child { + border-bottom: 0 +} + +.messages-list .list-group-item>* { + padding-top: .375rem; + padding-bottom: .375rem +} + +.message-checkbox .custom-control { + display: block !important; + margin: 0; + margin-top: -1px +} + +.message-sender { + min-width: 10rem +} + +.message-subject { + width: 100% +} + +.message-date { + white-space: nowrap +} + +.message-attachment { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + width: 100% +} + +.message-attachment>.media-body { + min-width: 0 +} + +.message-attachment-file, +.message-attachment-img { + display: block; + -ms-flex-positive: 0; + flex-grow: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + width: 4rem; + height: 4rem +} + +.message-attachment-file { + display: inline-block; + text-align: center; + line-height: 4rem +} + +.message-attachment-img { + background-color: transparent; + background-position: center center; + background-size: cover +} + +.message-attachment-filename { + display: block; + overflow: hidden; + width: 100%; + text-overflow: ellipsis; + white-space: nowrap +} + +.default-style .messages-wrapper .messages-sidebox { + z-index: 1081 +} + +.default-style .messages-sidebox-open .messages-sidebox { + left: 0 +} + +.default-style .messages-card .messages-sidebox { + background: #fff; + box-shadow: 0 0 0 1px rgba(24, 28, 33, 0.075) +} + +@media (min-width: 576px) { + .default-style .messages-list .list-group-item { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + + .default-style .message-subject { + width: auto + } + + .default-style .message-date { + margin-left: auto + } +} + +@media (min-width: 768px) { + .default-style .messages-sidebox { + -ms-flex-preferred-size: 14rem; + flex-basis: 14rem + } + + .default-style .messages-wrapper .messages-sidebox { + -ms-flex-preferred-size: auto; + flex-basis: auto + } +} + +@media (min-width: 992px) { + + .default-style .messages-wrapper, + .default-style .messages-sidebox { + transition: none !important + } + + .default-style .messages-wrapper { + padding-left: 14rem + } + + .default-style .messages-sidebox { + z-index: auto !important + } + + .default-style .messages-wrapper .messages-sidebox { + position: absolute; + left: 0; + z-index: auto + } + + .default-style .messages-wrapper .messages-sidebox { + height: 100% !important + } + + .default-style .messages-card .messages-sidebox { + position: static; + right: auto; + left: auto; + -ms-flex-positive: 0; + flex-grow: 0; + height: auto + } +} + +.default-style[dir=rtl] .messages-sidebox-open .messages-sidebox { + right: 0; + left: auto +} + +@media (min-width: 576px) { + .default-style[dir=rtl] .message-date { + margin-right: auto; + margin-left: 0 + } +} + +@media (min-width: 992px) { + .default-style[dir=rtl] .messages-wrapper { + padding-right: 14rem; + padding-left: 0 + } + + .default-style[dir=rtl] .messages-wrapper .messages-sidebox { + right: 0; + left: auto + } +} + +.material-style .messages-wrapper .messages-sidebox { + z-index: 1081 +} + +.material-style .messages-sidebox-open .messages-sidebox { + left: 0 +} + +.material-style .messages-card .messages-sidebox { + background: #fff; + box-shadow: 0 0 0 1px rgba(24, 28, 33, 0.075) +} + +@media (min-width: 576px) { + .material-style .messages-list .list-group-item { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + + .material-style .message-subject { + width: auto + } + + .material-style .message-date { + margin-left: auto + } +} + +@media (min-width: 768px) { + .material-style .messages-sidebox { + -ms-flex-preferred-size: 14rem; + flex-basis: 14rem + } + + .material-style .messages-wrapper .messages-sidebox { + -ms-flex-preferred-size: auto; + flex-basis: auto + } +} + +@media (min-width: 992px) { + + .material-style .messages-wrapper, + .material-style .messages-sidebox { + transition: none !important + } + + .material-style .messages-wrapper { + padding-left: 14rem + } + + .material-style .messages-sidebox { + z-index: auto !important + } + + .material-style .messages-wrapper .messages-sidebox { + position: absolute; + left: 0; + z-index: auto + } + + .material-style .messages-wrapper .messages-sidebox { + height: 100% !important + } + + .material-style .messages-card .messages-sidebox { + position: static; + right: auto; + left: auto; + -ms-flex-positive: 0; + flex-grow: 0; + height: auto + } +} + +.material-style[dir=rtl] .messages-sidebox-open .messages-sidebox { + right: 0; + left: auto +} + +@media (min-width: 576px) { + .material-style[dir=rtl] .message-date { + margin-right: auto; + margin-left: 0 + } +} + +@media (min-width: 992px) { + .material-style[dir=rtl] .messages-wrapper { + padding-right: 14rem; + padding-left: 0 + } + + .material-style[dir=rtl] .messages-wrapper .messages-sidebox { + right: 0; + left: auto + } +} diff --git a/public/js/custom.js b/public/js/custom.js index 21b4656..c3cec68 100644 --- a/public/js/custom.js +++ b/public/js/custom.js @@ -367,3 +367,45 @@ $(function() { }); }); + +$(function() { + + // Collapse sidenav by default + window.layoutHelpers.setCollapsed(true, false); + + // Enable tooltips + $('.messages-tooltip').tooltip(); + + $('.messages-scroll').each(function() { + new PerfectScrollbar(this, { + suppressScrollX: true, + wheelPropagation: true + }); + }); + + $('.messages-sidebox-toggler').click(function(e) { + e.preventDefault(); + $('.messages-wrapper, .messages-card').toggleClass('messages-sidebox-open'); + }); + + // New message + // { + + if (!window.Quill) { + $('#message-editor,#message-editor-toolbar').remove(); + $('#message-editor-fallback').removeClass('d-none'); + } else { + $('#message-editor-fallback').remove(); + new Quill('#message-editor', { + modules: { + toolbar: '#message-editor-toolbar' + }, + placeholder: 'Type your message...', + theme: 'snow' + }); + } + + // } + +}); + diff --git a/resources/views/cms/content/all/index.blade.php b/resources/views/cms/content/all/index.blade.php index 2b23eb6..90708d2 100755 --- a/resources/views/cms/content/all/index.blade.php +++ b/resources/views/cms/content/all/index.blade.php @@ -128,12 +128,7 @@ - - @endsection \ No newline at end of file diff --git a/resources/views/cms/content/country/index.blade.php b/resources/views/cms/content/country/index.blade.php index 96dab4c..3e406a1 100755 --- a/resources/views/cms/content/country/index.blade.php +++ b/resources/views/cms/content/country/index.blade.php @@ -87,12 +87,7 @@ - - @endsection \ No newline at end of file diff --git a/resources/views/customer/detail.blade.php b/resources/views/customer/detail.blade.php new file mode 100755 index 0000000..5de4888 --- /dev/null +++ b/resources/views/customer/detail.blade.php @@ -0,0 +1,72 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ Kunden verwalten +

+ + {!! Form::open(['url' => route('customer_detail', [$id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + + + + +
+
+
+ + {{ Form::text('id', $customer->id, array('placeholder'=>__('Nr.'), 'class'=>'form-control', 'id'=>'customer_id', 'readonly')) }} +
+
+
+ + +
+   + {{ __('zur Übersicht') }} + {{ __('zurück ins CRM v2') }} + +
+ + {!! Form::close() !!} + + + + +@endsection \ No newline at end of file diff --git a/resources/views/customer/index.blade.php b/resources/views/customer/index.blade.php new file mode 100755 index 0000000..3a94ea3 --- /dev/null +++ b/resources/views/customer/index.blade.php @@ -0,0 +1,52 @@ +@extends('layouts.layout-2') + +@section('content') + +

+ {{ __('Kunden') }} +

+ +
+
+ + + + + + + + + + + + +
 {{__('KundenID')}}{{__('Vorname')}}{{__('Nachname')}}{{__('E-Mail')}}
+
+
+ + + + + +@endsection \ No newline at end of file diff --git a/resources/views/customer/mail/detail.blade.php b/resources/views/customer/mail/detail.blade.php new file mode 100755 index 0000000..a122260 --- /dev/null +++ b/resources/views/customer/mail/detail.blade.php @@ -0,0 +1,286 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ Kunden verwalten +

+ + + +
+
+ + + + + +
+ + +
+ + + +
+ +
+ <{{$customer_mail->email}}> {{$customer_mail->created_at }} +
+ + +
{{$customer_mail->subject}}
+
+
+
+ + + {{-- +
+
+ + + + + +
+ +
+ +
|
+ +
+
+
+ + --}} + + +
+ {!! nl2br($customer_mail->message) !!} +
+
+ + + + + +
+ @if($customer_mail->customer) +

Kunde: + {{ $customer_mail->customer->salutation->name }} {{ $customer_mail->customer->firstname }} {{ $customer_mail->customer->name }} +

+ @endif + + @if($customer_mail->booking) +

Buchung: + {{ $customer_mail->booking_id }} + @if($customer_mail->booking->travel_country_id) + {{ " | ".$customer_mail->booking->travel_country->name }} + @endif + @if($customer_mail->booking->travelagenda_id) + {{ " | ".$customer_mail->booking->travel_agenda->name }} + @endif +

+ @endif + + @if($customer_mail->send) + Mail gesendet +

Datum: {{$customer_mail->sent_at}}

+ @endif + @if($customer_mail->fail) + Mail Fehler +

{{$customer_mail->error }}

+ @endif +
+ + + + + {{--
+
Fehler
+ +
+
+ +
+
+
+ image_1.jpg +
527KB
+
+ View   + Download +
+
+
+ +
+
+ +
+
+
+ image_2.jpg +
269KB
+
+ View   + Download +
+
+
+ +
+
+ +
+
+
+ assignment_letter.pdf +
156KB
+
+ View   + Download +
+
+
+ +
+
+ +
+
+
+ app_update.zip +
1.35MB
+
+ Download +
+
+
+ +
+
+

+ + + +
+ +   + +
+ --}} + + +
+ +
+
+ + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/customer/mail/index.blade.php b/resources/views/customer/mail/index.blade.php new file mode 100755 index 0000000..493f896 --- /dev/null +++ b/resources/views/customer/mail/index.blade.php @@ -0,0 +1,65 @@ +@extends('layouts.layout-2') + +@section('content') + +

+ {{ __('Kunden Mails') }} +

+ +
+
+ + + + + + + + + + + + + + + + + + +
 {{__('Mail-ID')}}{{__('Kunden-ID')}}{{__('Vorname')}}{{__('Nachname')}}{{__('E-Mail')}}{{__('Betreff')}}{{__('Buchung-ID')}}{{__('Buchung')}}{{__('gesendet')}}{{__('Datum')}}
+
+
+ + + + + +@endsection \ No newline at end of file diff --git a/resources/views/emails/___auth.blade.php b/resources/views/emails/___auth.blade.php deleted file mode 100644 index bddcb51..0000000 --- a/resources/views/emails/___auth.blade.php +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - mein STERN TOURS - - - - - - - - - - - - -
- {{ $copy1line }} -
- - - - - -
-
-
- - - - -
- - - - -
-
- - - - - - - - - -
- - STERN TOURS - - -

-
-
- - - - - - - - - - - - - -
-

- {{ $salutation }} -
-
- - - - -
-
- {{ $copy1line }} -
-
-
-
-
-
- - - - - - -
- - - - - - -
-

- {{ $button }} -

-
-
-
-
- - - - - - - -
-
- {{ $copy2line }}
- {{ $url }} -

- {{ $greetings }}
Ihr Team von STERN TOURS -
-
-

-
- -
- - - - - - - -
-
- STERN TOURS GmbH | Emser Straße 3 | 10719 Berlin
- Tel: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 1044 | stern@sterntours.de
-
- www.sterntours.de -
-
- Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111
- Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf
- Datenschutzerklärung
- © 2018 All Rights Reserved
-
-
-
-
-
- - diff --git a/resources/views/emails/_auth.blade.php b/resources/views/emails/_auth.blade.php deleted file mode 100644 index 3a6c12d..0000000 --- a/resources/views/emails/_auth.blade.php +++ /dev/null @@ -1,766 +0,0 @@ - - - - - - - - - -
- - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
  -
Wenn diese Nachricht nicht korrekt angezeigt wird, klicken Sie -bitte hier -
  -
-
  -
 Telekom - Erleben, was verbindet. 
 
   
 

- HERZLICH WILLKOMMEN BEI MAIL S FÜR KUNDEN DER TELEKOM

 
 
 

- Hallo Herr Adametz,

 
 
 

- Herzlich Willkommen bei Telekom Mail S!

Mail S ist der kostenlose - E-Mail-Dienst für Kunden der Telekom und - bietet Ihnen exklusive Produktvorteile – egal ob auf dem - Smartphone, Tablet oder Computer.

Mit Sync-Plus haben Sie Ihre E-Mails, - Kontakte und Termine immer - dort verfügbar, wo Sie sie brauchen. Richten - Sie Sync-Plus am besten gleich ein!

Für Ihre Ablage senden wir - Ihnen die Informationen, die Sie uns - während der Registrierung mitgeteilt haben:

 
  -
  - - - - - - - - - - - - - - -
  -
  - - - - - - - - - - - - - - - - - - - - - -
- Name: - - Kevin Adametz -
  -
- E-Mail-Adresse: - kevin.adametz@t-online.de -
  -
- Gebuchter Dienst: - - Mail S
-
 
  -
-
 
  -
 

- Ihre gebuchten Produkte und Services können Sie jederzeit im Kundencenter - ändern. Verwalten Sie in den Anmeldeeinstellungen - bequem Ihre Benutzerdaten und Passwörter.

-

- Wir wünschen Ihnen viel Spaß mit Mail S
Ihre Telekom -

 
 
   
 

- So kommen Sie zu E-Mail!

 
   
  - - - - - - -
- - - - - - - - - - - - - - - - -
 

- Rufen Sie Ihr E-Mail-Postfach von zu Hause über Ihren - Internet-Browser auf.

  -
Zum - E-Mail Center
-
- - - - - - -
- - - - - - - - - - - - - - - - -
 

- Nutzen Sie E-Mail mit der Telekom Mail App auch - unterwegs auf Ihrem - Smartphone oder Tablet.

  -
- - - - - - -
-
- - - - - - -
-
-
-
-
 
 
  - - - - - - -
- - - - - - - - - - - - - - - - -
 

- Sie nutzen ein E-Mail-Programm wie z. B. Outlook oder - Thunderbird? - Richten Sie sich dieses hier ein.

  -
Jetzt - einrichten
-
- - - - - - -
- - - - - - - - - - - - - - - - -
 

- Mit Sync-Plus haben Sie Ihre E-Mails, Kontakte und - Termine immer - dort verfügbar, wo Sie sie brauchen.

  -
Sync-Plus - einrichten
-
-
 
 
   
 

- Alles für den erfolgreichen Start!

 
   
  - - - - - - -
- - - - - - - - -
 

- Verbinden Sie E-Mail Postfächer von anderen - E-Mail-Anbietern mit - Ihrem Telekom Mail Postfach.
E-Mail - Postfach verbinden.

-
- - - - - - -
- - - - - - - - -
 

- Konfigurieren Sie die individuelle Speicherdauer - Ihrer E-Mails jederzeit und bequem im E-Mail Center.

-
-
-
 
 
  - - - - - - - - - - - - - - -
  -
- - - - - - -
- - - - - - - - -
 

- Alles rund um unser E-Mail Center finden Sie - in unserem praktischen
E-Mail-Handbuch - im PDF-Format zum Herunterladen.

-
-
  -
-
 
 
  
  -
   
  - - - - - - - - -
 

- E-Mail made in Germany

-
 
  -
  
 
-
- -
 
\ No newline at end of file diff --git a/resources/views/emails/auth.blade.php b/resources/views/emails/auth.blade.php index c310e01..0d0229b 100644 --- a/resources/views/emails/auth.blade.php +++ b/resources/views/emails/auth.blade.php @@ -77,29 +77,7 @@
- - - - -
-
- - - - - - - - - -
- - STERN TOURS - - -

-
-
+ @include('emails.header') @@ -172,28 +150,7 @@
- - - - - - - -
-
- STERN TOURS GmbH | Emser Straße 3 | 10719 Berlin
- Tel: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 1044 | stern@sterntours.de
-
- www.sterntours.de -
-
- Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111
- Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf
- Datenschutzerklärung
- © 2018 All Rights Reserved
-
-
+ @include('emails.footer')
diff --git a/resources/views/emails/auth_plain.blade.php b/resources/views/emails/auth_plain.blade.php index 496d259..b284384 100644 --- a/resources/views/emails/auth_plain.blade.php +++ b/resources/views/emails/auth_plain.blade.php @@ -16,16 +16,18 @@ Ihr Team von STERN TOURS --------------- STERN TOURS GmbH -Emser Straße 3 -10719 Berlin -Tel: +49 (0) 30 700 94 100 -Fax: +49 (0) 30 700 94 1044 -stern@sterntours.de -www.sterntours.de +Emser Straße 3 | 10719 Berlin +Fon: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 10-44 +e-Mail: stern@sterntours.de | Internet: www.sterntours.de ---------------- +Handelsregister: Amtsgericht Charlottenburg | HRB 67111 +Steuer-Nr.: 27/545/30703 | UStId: DE192609253 +Geschäftsführung: Thomas Stern -Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111 -Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf -Datenschutzerklärung -{{route('data_protected')}} \ No newline at end of file +Unsere vollständige Datenschutzerklärung finden Sie auf unserer Webseite unter {{route('data_protected')}} + +Hinweis nach § 37 VSBG: Anschrift Verbraucherschlichtungsstelle: Allgemeine +Verbraucherschlichtungsstelle des Zentrums für Schlichtung e.V., +Straßburger Str. 8, 77694 Kehl, www.verbraucher-schlichter.de +Unser Unternehmen ist zur Teilnahme an einem Streitbeilegungsverfahren bei dieser +Verbraucherschlichtungsstelle nicht verpflichtet und nimmt auch nicht freiwillig daran teil. diff --git a/resources/views/emails/content.blade.php b/resources/views/emails/content.blade.php index 16e28fb..54f5e16 100644 --- a/resources/views/emails/content.blade.php +++ b/resources/views/emails/content.blade.php @@ -69,29 +69,7 @@
- - - - -
-
- - - - - - - - - -
- - STERN TOURS - - -

-
-
+ @include('emails.header') @@ -108,28 +86,7 @@
- - - - - - - -
-
- STERN TOURS GmbH | Emser Straße 3 | 10719 Berlin
- Tel: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 1044 | stern@sterntours.de
-
- www.sterntours.de -
-
- Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111
- Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf
- Datenschutzerklärung
- © 2018 All Rights Reserved
-
-
+ @include('emails.footer')
diff --git a/resources/views/emails/footer.blade.php b/resources/views/emails/footer.blade.php new file mode 100644 index 0000000..2be7648 --- /dev/null +++ b/resources/views/emails/footer.blade.php @@ -0,0 +1,37 @@ + + + + + + + +
+
+ STERN TOURS GmbH
+ Emser Straße 3 | 10719 Berlin
+ Fon: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 10-44
+ e-Mail: stern@sterntours.de | Internet: www.sterntours.de
+
+
+ Handelsregister: Amtsgericht Charlottenburg | HRB 67111
+ Steuer-Nr.: 27/545/30703 | UStId: DE192609253
+ Geschäftsführung: Thomas Stern
+
+ Unsere vollständige Datenschutzerklärung finden Sie auf unserer Webseite unter www.sterntours.de/datenschutz
+
+ Hinweis nach § 37 VSBG: Anschrift Verbraucherschlichtungsstelle: Allgemeine + Verbraucherschlichtungsstelle des Zentrums für Schlichtung e.V., + Straßburger Str. 8, 77694 Kehl, www.verbraucher-schlichter.de + Unser Unternehmen ist zur Teilnahme an einem Streitbeilegungsverfahren bei dieser + Verbraucherschlichtungsstelle nicht verpflichtet und nimmt auch nicht freiwillig daran teil. +

+ © 2020 alle Rechte vorbehalten +
+
+
+ + + + + diff --git a/resources/views/emails/header.blade.php b/resources/views/emails/header.blade.php new file mode 100644 index 0000000..675af77 --- /dev/null +++ b/resources/views/emails/header.blade.php @@ -0,0 +1,22 @@ + + + + +
+
+ + + + + + + + + +
+ + STERN TOURS + +

+
+
\ No newline at end of file diff --git a/resources/views/emails/info.blade.php b/resources/views/emails/info.blade.php index dd12233..edc9208 100644 --- a/resources/views/emails/info.blade.php +++ b/resources/views/emails/info.blade.php @@ -81,28 +81,7 @@
- - - - -
-
- - - - - - - - - -
- - STERN TOURS - -

-
-
+ @include('emails.header') @@ -117,28 +96,7 @@
- - - - - - - -
-
- STERN TOURS GmbH | Emser Straße 3 | 10719 Berlin
- Tel: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 1044 | stern@sterntours.de
-
- www.sterntours.de -
-
- Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111
- Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf
- Datenschutzerklärung
- © 2018 All Rights Reserved -

-
+ @include('emails.footer')
diff --git a/resources/views/emails/invoice.blade.php b/resources/views/emails/invoice.blade.php index d200e52..f94aaeb 100644 --- a/resources/views/emails/invoice.blade.php +++ b/resources/views/emails/invoice.blade.php @@ -69,28 +69,7 @@
- - - - -
-
- - - - - - - - - -
- - STERN TOURS - -

-
-
+ @include('emails.header') @@ -204,28 +183,7 @@
- - - - - - - -
-
- STERN TOURS GmbH | Emser Straße 3 | 10719 Berlin
- Tel: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 1044 | stern@sterntours.de
-
- www.sterntours.de -
-
- Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111
- Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf
- Datenschutzerklärung
- © 2018 All Rights Reserved -

-
+ @include('emails.footer')
diff --git a/resources/views/layouts/application.blade.php b/resources/views/layouts/application.blade.php index 3c85b47..d4de6b7 100755 --- a/resources/views/layouts/application.blade.php +++ b/resources/views/layouts/application.blade.php @@ -154,7 +154,7 @@ - + @include('asset.js') diff --git a/resources/views/layouts/includes/layout-sidenav.blade.php b/resources/views/layouts/includes/layout-sidenav.blade.php index 2a33ee5..eeae7b8 100755 --- a/resources/views/layouts/includes/layout-sidenav.blade.php +++ b/resources/views/layouts/includes/layout-sidenav.blade.php @@ -9,7 +9,7 @@