Booking edit v3

This commit is contained in:
Kevin Adametz 2021-06-18 15:00:12 +02:00
parent 6706d28f51
commit 6880c7e989
20 changed files with 691 additions and 97 deletions

View file

@ -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'));
}