From 6880c7e9895324735f249e6bf90009ebe2f3ec40 Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Fri, 18 Jun 2021 15:00:12 +0200 Subject: [PATCH] Booking edit v3 --- app/Http/Controllers/AjaxController.php | 32 +++++ app/Http/Controllers/BookingController.php | 116 ++++++++++++++++-- app/Models/Booking.php | 5 +- app/Models/BookingServiceItem.php | 36 +++++- app/Models/Branch.php | 41 +++++++ app/Models/ServiceProviderEntry.php | 23 +++- app/Repositories/BookingRepository.php | 77 +++++++++++- app/Services/Model.php | 47 ++++++- app/Services/Passolution.php | 1 - app/Services/Util.php | 4 +- .../2021_06_09_114811_create_branch_table.php | 32 +++++ public/js/custom.js | 18 ++- .../views/booking/_detail_booking.blade.php | 49 +++++++- .../views/booking/_detail_company.blade.php | 86 +++++++------ .../booking/_detail_participant.blade.php | 92 ++++++++++++++ .../views/booking/_detail_provider.blade.php | 104 +++++++++++----- resources/views/booking/detail.blade.php | 8 ++ resources/views/layouts/application.blade.php | 2 +- .../mail/modal-show-mail-inner.blade.php | 9 +- routes/web.php | 6 +- 20 files changed, 691 insertions(+), 97 deletions(-) create mode 100644 app/Http/Controllers/AjaxController.php create mode 100644 app/Models/Branch.php create mode 100644 database/migrations/2021_06_09_114811_create_branch_table.php create mode 100644 resources/views/booking/_detail_participant.blade.php diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php new file mode 100644 index 0000000..55f780f --- /dev/null +++ b/app/Http/Controllers/AjaxController.php @@ -0,0 +1,32 @@ +middleware('auth'); + } + + public function load(){ + $data = Request::all(); + $ret = ""; + $status = false; + if(Request::ajax()){ + + if($data['action'] === 'load_travelagenda_by_country' && isset($data['travel_country_id'])){ + $ret = Model::getTravelAgendaArray(true, $data['travel_country_id']); + $status = true; + } + } + return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 7a03a21..f425340 100755 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -7,7 +7,12 @@ use App\Models\Booking; use App\Models\Customer; use App\Models\BookingFile; use App\Models\BookingNotice; +use App\Models\ServiceProvider; use App\Models\BookingDraftItem; +use App\Models\BookingServiceItem; +use App\Models\Participant; +use App\Models\ServiceProviderEntry; +use App\Models\TravelCompany; use App\Repositories\DraftRepository; use App\Repositories\BookingRepository; use App\Repositories\BookingFileRepository; @@ -100,6 +105,27 @@ class BookingController extends Controller return redirect(route('booking_detail', [$booking->id])."#collapseBookingPrice"); } + if($data['action'] === 'update_service_provider_entry'){ + $booking = $this->bookingRepo->updateServiceProviderEntry($id, $data); + \Session()->flash('alert-save', '1'); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingProvider"); + } + + if($data['action'] === 'update_booking_service_item'){ + $booking = $this->bookingRepo->updateBookingServiceItem($id, $data); + \Session()->flash('alert-save', '1'); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingProvider"); + } + + + if($data['action'] === 'update_booking_participant'){ + $booking = $this->bookingRepo->updateBookingParticipant($id, $data); + \Session()->flash('alert-save', '1'); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingParticipant"); + } + + + @@ -230,7 +256,6 @@ class BookingController extends Controller return redirect(route('booking_detail', [$booking->id])); } - public function loadModal(){ $data = Request::all(); $ret = ""; @@ -283,16 +308,63 @@ class BookingController extends Controller public function action($action, $id=false){ + if(!$booking = Booking::find($id)){ + abort(404); + } + if($action === 'change_travel_dates'){ - if($booking = Booking::find($id)){ $draftRepo = new DraftRepository($booking); $draftRepo->change_dates_drafts_from_booking(Request::get('change_travel_start_date')); \Session()->flash('alert-success', __('Datum der Reise wurde geändert')); - return redirect(route('booking_detail', [$booking->id])); - } + return redirect(route('booking_detail', [$booking->id])."#collapseBookingOrganisation"); } - } + if($action === 'service_provider_entry_add_discount'){ + $ServiceProvider = ServiceProvider::where('type', 'discount')->where('active',true)->first(); + ServiceProviderEntry::create([ + 'booking_id' => $booking->id, + 'service_provider_id' => $ServiceProvider->id, + 'type' => 'discount', + ]); + \Session()->flash('alert-success', __('Leistungsträger neuer Rabatt hinzugefügt')); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingProvider"); + } + + if($action === 'service_provider_entry_add_payment'){ + $ServiceProvider = ServiceProvider::where('type', 'payment')->where('active',true)->first(); + ServiceProviderEntry::create([ + 'booking_id' => $booking->id, + 'service_provider_id' => $ServiceProvider->id, + 'type' => 'payment', + ]); + \Session()->flash('alert-success', __('Leistungsträger neue Zahlung hinzugefügt')); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingProvider"); + } + + if($action === 'booking_service_item_add'){ + $TravelCompany = TravelCompany::where('active',true)->first(); + BookingServiceItem::create([ + 'booking_id' => $booking->id, + 'travel_company_id' => $TravelCompany->id, + 'travel_date' => now(), + ]); + \Session()->flash('alert-success', __('Reiseveranstalter neue Leistung hinzugefügt')); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingCompany"); + } + + if($action === 'booking_participant_add'){ + Participant::create([ + 'booking_id' => $booking->id, + 'nationality_id' => 1, + 'participant_salutation_id' => 1, + + ]); + \Session()->flash('alert-success', __('Neuen Teilnehmer hinzugefügt')); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingParticipant"); + } + + + } public function delete($id, $del="booking"){ @@ -309,22 +381,50 @@ class BookingController extends Controller $fileRepo->delete(); $booking_file->delete(); \Session()->flash('alert-success', 'Datei gelöscht'); - return redirect(route('booking_detail', [$booking->id])); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingFiles"); } if($del === 'booking_notice'){ $booking_notice = BookingNotice::findOrFail($id); $booking = $booking_notice->booking; $booking_notice->delete(); \Session()->flash('alert-success', 'Notiz gelöscht'); - return redirect(route('booking_detail', [$booking->id])); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingNotice"); + } if($del === 'passolution_file'){ $booking = Booking::findOrFail($id); $booking->resyncPassolutionPDF(); \Session()->flash('alert-success', 'Passolution erneuert'); - return redirect(route('booking_detail', [$booking->id])); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingFiles"); + } + + if($del === 'service_provider_entry'){ + $ServiceProviderEntry = ServiceProviderEntry::findOrFail($id); + $booking = $ServiceProviderEntry->booking; + $ServiceProviderEntry->delete(); + \Session()->flash('alert-success', 'Leistungsträger gelöscht'); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingProvider"); + + } + + if($del === 'booking_service_item'){ + $BookingServiceItem = BookingServiceItem::findOrFail($id); + $booking = $BookingServiceItem->booking; + $BookingServiceItem->delete(); + \Session()->flash('alert-success', 'Reiseveranstalter gelöscht'); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingCompany"); + } + + if($del === 'participant'){ + $Participant = Participant::findOrFail($id); + $booking = $Participant->booking; + $Participant->delete(); + \Session()->flash('alert-success', 'Teilnehmer gelöscht'); + return redirect(route('booking_detail', [$booking->id])."#collapseBookingParticipant"); + } + return redirect(route('requests')); } diff --git a/app/Models/Booking.php b/app/Models/Booking.php index 2b6227f..dbb1068 100644 --- a/app/Models/Booking.php +++ b/app/Models/Booking.php @@ -590,8 +590,7 @@ class Booking extends Model if(empty($nats)){ $nats['de'] = 'de'; - } - + } foreach ($nats as $nat){ $data = [ 'nat' => $nat, @@ -778,7 +777,7 @@ class Booking extends Model { $total = 0; foreach ($this->service_provider_entries as $entry){ - $total += $entry->getAmountRaw() / $entry->factor; + $total += $entry->getAmountRaw() / $entry->getFactortRaw(); } return $raw ? $total : Util::_number_format($total); } diff --git a/app/Models/BookingServiceItem.php b/app/Models/BookingServiceItem.php index c6aab4d..5972329 100644 --- a/app/Models/BookingServiceItem.php +++ b/app/Models/BookingServiceItem.php @@ -83,7 +83,10 @@ class BookingServiceItem extends Model return $this->belongsTo(TravelCompany::class); } - + public function setServicePriceAttribute($value) + { + $this->attributes['service_price'] = Util::_clean_float($value); + } public function getServicePriceAttribute() { return Util::_number_format($this->attributes['service_price']); @@ -92,4 +95,35 @@ class BookingServiceItem extends Model { return $this->attributes['service_price']; } + + public function setCommissionAttribute($value) + { + $this->attributes['commission'] = Util::_clean_float($value); + } + public function getCommissionAttribute() + { + return Util::_number_format($this->attributes['commission']); + } + public function getCommissionRaw() + { + return $this->attributes['commission']; + } + + public function setServicePriceRefundAttribute($value) + { + $this->attributes['service_price_refund'] = Util::_clean_float($value); + } + public function getServicePriceRefundAttribute() + { + return Util::_number_format($this->attributes['service_price_refund']); + } + public function getServicePriceRefundRaw() + { + return $this->attributes['service_price_refund']; + } + + public function setServicePriceRefundRaw($value) + { + return $this->attributes['service_price_refund'] = $value; + } } diff --git a/app/Models/Branch.php b/app/Models/Branch.php new file mode 100644 index 0000000..d1f0406 --- /dev/null +++ b/app/Models/Branch.php @@ -0,0 +1,41 @@ +hasMany(Booking::class); + } + + public function sf_guard_users() + { + return $this->hasMany(SfGuardUser::class); + } +} diff --git a/app/Models/ServiceProviderEntry.php b/app/Models/ServiceProviderEntry.php index 56550a0..07ee5a2 100644 --- a/app/Models/ServiceProviderEntry.php +++ b/app/Models/ServiceProviderEntry.php @@ -97,6 +97,23 @@ class ServiceProviderEntry extends Model } } + public function setFactorAttribute($value) + { + $this->attributes['factor'] = floatval(preg_replace("/[^0-9.-]/", "", str_replace(',', '.', $value))); + } + public function getFactorAttribute() + { + return Util::_number_format($this->attributes['factor'], 4); + } + public function getFactortRaw() + { + return $this->attributes['factor']; + } + + public function setAmountAttribute($value) + { + $this->attributes['amount'] = Util::_clean_float($value); + } public function getAmountAttribute() { return Util::_number_format($this->attributes['amount']); @@ -105,7 +122,10 @@ class ServiceProviderEntry extends Model { return $this->attributes['amount']; } - + public function setAmountEurAttribute($value) + { + $this->attributes['amount_eur'] = Util::_clean_float($value); + } public function getAmountEurAttribute() { return Util::_number_format($this->attributes['amount_eur']); @@ -135,4 +155,5 @@ class ServiceProviderEntry extends Model if(!$this->attributes['payment_date']){ return ""; } return Carbon::parse($this->attributes['payment_date'])->format(\Util::formatDateDB()); } + } diff --git a/app/Repositories/BookingRepository.php b/app/Repositories/BookingRepository.php index 4b33f3b..853d80b 100644 --- a/app/Repositories/BookingRepository.php +++ b/app/Repositories/BookingRepository.php @@ -7,7 +7,10 @@ use Auth; use App\Models\Lead; use App\Services\Util; use App\Models\Booking; +use App\Models\Participant; use App\Models\BookingNotice; +use App\Models\BookingServiceItem; +use App\Models\ServiceProviderEntry; use App\Models\BookingCompanyService; use App\Models\BookingCountryService; use App\Models\BookingProviderService; @@ -79,8 +82,12 @@ class BookingRepository extends BaseRepository { 'start_date' => $data['start_date'] ? _reformat_date($data['start_date']) : null, 'end_date' => $data['end_date'] ? _reformat_date($data['end_date']) : null, 'title' => $data['title'], + 'pax' => $data['pax'], + 'travel_documents' => $data['travel_documents'], 'paying_out' => $data['paying_out'], 'paying_out_status' => $data['paying_out_status'], + 'branch_id' => $data['branch_id'], + 'travel_company_id' => $data['travel_company_id'], 'airline_id' => $data['airline_id'], 'refund' => $data['refund'], 'refund_date' => _reformat_date($data['refund_date']), @@ -140,9 +147,77 @@ class BookingRepository extends BaseRepository { $this->model->save(); return $this->model; } + + public function updateServiceProviderEntry($id, $data){ + $this->model = Booking::findOrFail($id); + if(isset($data['service_provider_entry'])){ + foreach($data['service_provider_entry'] as $spe_id => $fill){ + $ServiceProviderEntry = ServiceProviderEntry::findOrFail($spe_id); + if($ServiceProviderEntry->booking_id !== $this->model->id){ + abort(500); + } + $fill['is_cleared'] = isset($fill['is_cleared']) ? true : false; + $fill['payment_date'] = isset($fill['payment_date']) ? _reformat_date($fill['payment_date']) : null; + $ServiceProviderEntry->fill($fill); + $ServiceProviderEntry->save(); + } + } + return $this->model; + } - + public function updateBookingServiceItem($id, $data){ + $this->model = Booking::findOrFail($id); + if(isset($data['booking_service_item'])){ + foreach($data['booking_service_item'] as $bsi_id => $fill){ + $BookingServiceItem = BookingServiceItem::findOrFail($bsi_id); + if($BookingServiceItem->booking_id !== $this->model->id){ + abort(500); + } + $fill['is_commission_locked'] = isset($fill['is_commission_locked']) ? true : false; + $fill['travel_date'] = isset($fill['travel_date']) ? _reformat_date($fill['travel_date']) : now(); + $BookingServiceItem->fill($fill); + $BookingServiceItem->save(); + if($fill['is_commission_locked'] === true){ + $service_price_refund = 0; + if($BookingServiceItem->getServicePriceRaw() > 0){ + $service_price_refund = $BookingServiceItem->getServicePriceRaw() / 100 * $BookingServiceItem->travel_company->getPercentageRaw(); + } + $BookingServiceItem->setServicePriceRefundRaw($service_price_refund); + $BookingServiceItem->save(); + } + } + } + return $this->model; + } + + public function updateBookingParticipant($id, $data){ + $this->model = Booking::findOrFail($id); + if(isset($data['participant'])){ + foreach($data['participant'] as $p_id => $fill){ + $Participant = Participant::findOrFail($p_id); + if($Participant->booking_id !== $this->model->id){ + abort(500); + } + $fill['participant_child'] = isset($fill['participant_child']) ? true : false; + $fill['participant_birthdate'] = isset($fill['participant_birthdate']) ? _reformat_date($fill['participant_birthdate']) : null; + $Participant->fill($fill); + $Participant->save(); + } + } + //main + $this->model->participant_salutation_id = isset($data['participant_salutation_id']) ? $data['participant_salutation_id'] : 1; + $this->model->participant_name = isset($data['participant_name']) ? $data['participant_name'] : ""; + $this->model->participant_firstname = isset($data['participant_firstname']) ? $data['participant_firstname'] : ""; + $this->model->nationality_id = isset($data['nationality_id']) ? $data['nationality_id'] : 1; + $this->model->participant_birthdate = isset($data['participant_birthdate']) ? _reformat_date($data['participant_birthdate']) : 1; + $this->model->save(); + return $this->model; + } + + + + private function updateCountryService($country_services){ foreach ($country_services as $country_service_id=>$val){ diff --git a/app/Services/Model.php b/app/Services/Model.php index 78a7efe..cc973a1 100644 --- a/app/Services/Model.php +++ b/app/Services/Model.php @@ -1,12 +1,17 @@ get()->pluck('name', 'id'); + public static function getTravelAgendaArray($emtpy = false, $travelcountry_id = false){ + if($travelcountry_id){ + $TravelAgenda = TravelAgenda::where('travelcountry_id', $travelcountry_id)->where('active', true)->orderBy('name')->get()->pluck('name', 'id'); + }else{ + $TravelAgenda = TravelAgenda::orderBy('name')->get()->pluck('name', 'id'); + } return $emtpy ? $TravelAgenda->prepend('-', 0) : $TravelAgenda; } public static function getSymTravelCountryArray($emtpy = false){ - $TravelAgenda = SymTravelCountry::orderBy('name')->get()->pluck('name', 'id'); - return $emtpy ? $TravelAgenda->prepend('-', 0) : $TravelAgenda; + $SymTravelCountry = SymTravelCountry::orderBy('name')->get()->pluck('name', 'id'); + return $emtpy ? $SymTravelCountry->prepend('-', 0) : $SymTravelCountry; } public static function getStatusArray($emtpy = false){ @@ -42,5 +51,33 @@ class Model return $emtpy ? $Status->prepend('-', 0) : $Status; } + public static function getTravelCompanyArray($emtpy = false){ + $TravelCompany = TravelCompany::where('active', true)->orderBy('name')->get()->pluck('name', 'id'); + return $emtpy ? $TravelCompany->prepend('-', 0) : $TravelCompany; + } + + public static function getBranchArray($emtpy = false){ + $Branch = Branch::orderBy('name')->get()->pluck('name', 'id'); + return $emtpy ? $Branch->prepend('-', 0) : $Branch; + } + + public static function getServiceProviderArray($emtpy = false, $type='payment'){ + $ServiceProvider = ServiceProvider::where('type', $type)->orderBy('name')->get()->pluck('name', 'id'); + return $emtpy ? $ServiceProvider->prepend('-', 0) : $ServiceProvider; + } + + public static function getSalutationArray($emtpy = false){ + $Salutation = Salutation::orderBy('name')->get()->pluck('name', 'id'); + return $emtpy ? $Salutation->prepend('-', 0) : $Salutation; + } + + public static function getTravelNationalityArray($emtpy = false){ + $TravelNationality = TravelNationality::where('active', true)->orderBy('name')->get()->pluck('name', 'id'); + return $emtpy ? $TravelNationality->prepend('-', 0) : $TravelNationality; + } + + + + } \ No newline at end of file diff --git a/app/Services/Passolution.php b/app/Services/Passolution.php index fccb632..008d5b6 100644 --- a/app/Services/Passolution.php +++ b/app/Services/Passolution.php @@ -95,7 +95,6 @@ class Passolution $client = new Client(); $res = $client->get($url, [ ]); - if($res->getStatusCode() == 200){ $body = $res->getBody(); $body = json_decode($body); diff --git a/app/Services/Util.php b/app/Services/Util.php index 4ba4fb9..4e2245d 100644 --- a/app/Services/Util.php +++ b/app/Services/Util.php @@ -45,8 +45,8 @@ class Util } - public static function _number_format($value){ - return number_format(($value), 2, ',', '.'); + public static function _number_format($value, $dec=2){ + return number_format(($value), $dec, ',', '.'); } diff --git a/database/migrations/2021_06_09_114811_create_branch_table.php b/database/migrations/2021_06_09_114811_create_branch_table.php new file mode 100644 index 0000000..7b30d8e --- /dev/null +++ b/database/migrations/2021_06_09_114811_create_branch_table.php @@ -0,0 +1,32 @@ +bigIncrements('id'); + $table->string('name', 255); + $table->primary('id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('branch'); + } +} diff --git a/public/js/custom.js b/public/js/custom.js index d19e512..2668aee 100644 --- a/public/js/custom.js +++ b/public/js/custom.js @@ -7,6 +7,20 @@ $('.iq-save-bar').closest('form').find(':input, select, textarea').keydown(funct showIqSaveBar($(this).closest('form')); }); +function _floatNumber(n) { + 'use strict'; + n = n.replace(/\./g, '').replace(',', '.'); + return parseFloat(n); +} + +function _formatNumber(n) { + n = parseFloat(n).toFixed(2); + if(isNaN(n)){ + return 0; + } + return n.replace(".", ","); +} + CookiesAddJSONValue = function(name, value) { var elements = []; if(Cookies.get(name)){ @@ -193,7 +207,9 @@ $(function () { }); function ajax_object_action(event, object, callback) { - event.preventDefault(); + if(event){ + event.preventDefault(); + } var data = {}; $.each(object.data(), function(index, value){ if(typeof value !== 'object'){ diff --git a/resources/views/booking/_detail_booking.blade.php b/resources/views/booking/_detail_booking.blade.php index 4b17a48..25bb44f 100755 --- a/resources/views/booking/_detail_booking.blade.php +++ b/resources/views/booking/_detail_booking.blade.php @@ -30,7 +30,7 @@
- {{ Form::select('travelagenda_id', \App\Services\Model::getTravelAgendaArray(true) , $booking->travelagenda_id, array('class'=>'custom-select', 'id'=>'travelagenda_id')) }} + {{ Form::select('travelagenda_id', \App\Services\Model::getTravelAgendaArray(true, $booking->travel_country_id) , $booking->travelagenda_id, array('class'=>'custom-select', 'id'=>'travelagenda_id')) }}
@@ -60,6 +60,26 @@ {{ Form::text('title', $booking->title, array('placeholder'=>__('Reisetitel'), 'class'=>'form-control', 'id'=>'title')) }}
+
+ + {{ Form::select('pax', range(0, 80) , $booking->pax, array('class'=>'custom-select', 'id'=>'pax')) }} +
+ +
+ + {{ Form::select('travel_documents', [0=>'nicht vollständig', 1=>'vollständig'], $booking->travel_documents, array('class'=>'custom-select', 'id'=>'travel_documents')) }} +
+ +
+ + {{ Form::select('branch_id', \App\Services\Model::getBranchArray(false) , $booking->branch_id, array('class'=>'custom-select', 'id'=>'branch_id')) }} +
+ +
+ + {{ Form::select('travel_company_id', \App\Services\Model::getTravelCompanyArray(false) , $booking->travel_company_id, array('class'=>'custom-select', 'id'=>'travel_company_id')) }} +
+
Status

@@ -138,9 +158,32 @@   {{ __('zur Übersicht') }}
- - \ No newline at end of file + + + + \ No newline at end of file diff --git a/resources/views/booking/_detail_company.blade.php b/resources/views/booking/_detail_company.blade.php index 641b605..1c93ef0 100755 --- a/resources/views/booking/_detail_company.blade.php +++ b/resources/views/booking/_detail_company.blade.php @@ -10,61 +10,77 @@ Veranstalter Bezeichnung - Abreisedatum - Reisepreis inkl. MwSt - Rabatt - Erzielte Provision + Datum + Preis inkl. MwSt € + Rabatt € + Erzielte Provision € + Lock   -   - - @if($booking->booking_service_items) @foreach($booking->booking_service_items as $item) - {{$item->travel_company->name}} - + {{ Form::select('booking_service_item['.$item->id.'][travel_company_id]', \App\Services\Model::getTravelCompanyArray(false) , $item->travel_company_id, array('class'=>'custom-select', 'id'=>'booking_service_item_'.$item->id.'_travel_company_id')) }} - {{$item->name}} - {{\App\Services\Util::_format_date($item->travel_data, 'date')}} - {{$item->service_price}} - {{$item->commission}} - {{$item->service_price_refund}} + + {{ Form::text('booking_service_item['.$item->id.'][name]', $item->name, array('placeholder'=>__('Bezeichnung'), 'class'=>'form-control', 'id'=>'booking_service_item_'.$item->id.'_name')) }} + + + {{ Form::text('booking_service_item['.$item->id.'][travel_date]', _format_date($item->travel_date), array('placeholder'=>__('Datum'), 'class'=>'form-control datepicker-base', 'id'=>'booking_service_item_'.$item->id.'_travel_date')) }} + + + + {{ Form::text('booking_service_item['.$item->id.'][service_price]', $item->service_price, array('placeholder'=>__('in Euro'), 'class'=>'form-control calculate_refund_service_price', 'data-bsi-id'=>$item->id, 'data-bsi-percentage'=>$item->travel_company->getPercentageRaw(), 'id'=>'booking_service_item_'.$item->id.'_service_price')) }} + + + {{ Form::text('booking_service_item['.$item->id.'][commission]', $item->commission, array('placeholder'=>__('in Euro'), 'class'=>'form-control', 'id'=>'booking_service_item_'.$item->id.'_commission')) }} + + + {{ Form::text('booking_service_item['.$item->id.'][service_price_refund]', $item->service_price_refund, array('placeholder'=>__('in Euro'), 'class'=>'form-control', 'id'=>'booking_service_item_'.$item->id.'_service_price_refund')) }} + - - {{-- --}} + @endforeach @endif - - - {{-- -
- -
- --}} +
+
+
+   + {{ __('zur Übersicht') }} + {{ __('Neue Leistung') }} +
+
- \ No newline at end of file + + + diff --git a/resources/views/booking/_detail_participant.blade.php b/resources/views/booking/_detail_participant.blade.php new file mode 100644 index 0000000..753d1a8 --- /dev/null +++ b/resources/views/booking/_detail_participant.blade.php @@ -0,0 +1,92 @@ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + @if($booking->participants) + @foreach($booking->participants as $item) + + + + + + + + + + @endforeach + @endif + +
AnredeVornameNachnameGeburtsdatumNationalitätKind 
+ {{ Form::select('participant_salutation_id', \App\Services\Model::getSalutationArray(false) , $booking->participant_salutation_id, array('class'=>'custom-select', 'id'=>'participant_salutation_id')) }} + + {{ Form::text('participant_firstname', $booking->participant_firstname, array('placeholder'=>__('Vorname'), 'class'=>'form-control', 'id'=>'participant_firstname')) }} + + {{ Form::text('participant_name', $booking->participant_name, array('placeholder'=>__('Nachname'), 'class'=>'form-control', 'id'=>'participant_name')) }} + + {{ Form::text('participant_birthdate', _format_date($booking->participant_birthdate), array('placeholder'=>__('Datum'), 'class'=>'form-control datepicker-base', 'id'=>'participant_birthdate')) }} + + + {{ Form::select('nationality_id', \App\Services\Model::getTravelNationalityArray(false) , $booking->nationality_id, array('class'=>'custom-select', 'id'=>'nationality_id')) }} + +   + +   +
+ {{ Form::select('participant['.$item->id.'][participant_salutation_id]', \App\Services\Model::getSalutationArray(false) , $item->participant_salutation_id, array('class'=>'custom-select', 'id'=>'participant_'.$item->id.'_participant_salutation_id')) }} + + {{ Form::text('participant['.$item->id.'][participant_firstname]', $item->participant_firstname, array('placeholder'=>__('Vorname'), 'class'=>'form-control', 'id'=>'participant_'.$item->id.'_participant_firstname')) }} + + {{ Form::text('participant['.$item->id.'][participant_name]', $item->participant_name, array('placeholder'=>__('Nachname'), 'class'=>'form-control', 'id'=>'participant_'.$item->id.'_participant_name')) }} + + {{ Form::text('participant['.$item->id.'][participant_birthdate]', _format_date($item->participant_birthdate), array('placeholder'=>__('Datum'), 'class'=>'form-control datepicker-base', 'id'=>'participant_'.$item->id.'_participant_birthdate')) }} + + + {{ Form::select('participant['.$item->id.'][nationality_id]', \App\Services\Model::getTravelNationalityArray(false) , $item->nationality_id, array('class'=>'custom-select', 'id'=>'participant_'.$item->id.'_nationality_id')) }} + + + + + +
+
+
+
+
+   + {{ __('zur Übersicht') }} + {{ __('Neuen Teilnehmer') }} +
+
+
+
+
+ diff --git a/resources/views/booking/_detail_provider.blade.php b/resources/views/booking/_detail_provider.blade.php index 2c9fab6..a2b7ee7 100755 --- a/resources/views/booking/_detail_provider.blade.php +++ b/resources/views/booking/_detail_provider.blade.php @@ -3,7 +3,6 @@ Leistungsträger
-
@@ -17,7 +16,6 @@ - @@ -26,43 +24,89 @@ @foreach($booking->service_provider_entries as $item) - - - - - + + {{ Form::text('service_provider_entry['.$item->id.'][amount_eur]', $item->amount_eur, array('placeholder'=>__('Betrag'), 'class'=>'form-control', 'id'=>'service_provider_entry_'.$item->id.'_amount_eur', 'readonly'=>true)) }} + + + + + @endforeach @endif
Re.Nr. bezahlt  
- {{$item->service_provider->name}} - + {{ Form::select('service_provider_entry['.$item->id.'][service_provider_id]', \App\Services\Model::getServiceProviderArray(false, $item->type) , $item->service_provider_id, array('class'=>'custom-select', 'id'=>'service_provider_entry_'.$item->id.'_service_provider_id')) }} {{$item->amount}}{{$item->factor}}{{$item->amount_eur}}{{\App\Services\Util::_format_date($item->payment_date, 'date')}}{{$item->invoice_number}} - + {{ Form::text('service_provider_entry['.$item->id.'][amount]', $item->amount, array('placeholder'=>__('Betrag'), 'class'=>'form-control calculate_amount_on_change', 'data-spe-id'=>$item->id, 'id'=>'service_provider_entry_'.$item->id.'_amount')) }} + + {{ Form::text('service_provider_entry['.$item->id.'][factor]', $item->factor, array('placeholder'=>__('Faktor'), 'class'=>'form-control', 'id'=>'service_provider_entry_'.$item->id.'_factor', 'readonly'=>true)) }} - - {{-- --}} + @if($item->type === 'payment') + {{ Form::text('service_provider_entry['.$item->id.'][payment_date]', _format_date($item->payment_date), array('placeholder'=>__('Datum'), 'class'=>'form-control datepicker-base', 'id'=>'service_provider_entry_'.$item->id.'_payment_date')) }} + @else +   + @endif + + {{ Form::text('service_provider_entry['.$item->id.'][invoice_number]', $item->invoice_number, array('placeholder'=>__('Re.Nr.'), 'class'=>'form-control', 'id'=>'service_provider_entry_'.$item->id.'_invoice_number')) }} + + @if($item->type === 'payment') + + @else +   + @endif + + +
- {{-- -
- -
- --}} +
- \ No newline at end of file + + + + + diff --git a/resources/views/booking/detail.blade.php b/resources/views/booking/detail.blade.php index 383f7bb..b789753 100755 --- a/resources/views/booking/detail.blade.php +++ b/resources/views/booking/detail.blade.php @@ -64,6 +64,11 @@ MyJack +