File Controller, Booking Organisation, import Draft, old arrangements

This commit is contained in:
Kevin Adametz 2025-09-04 10:35:45 +02:00
parent 4eb83def39
commit 8fd1f4d451
289 changed files with 36649 additions and 10877 deletions

View file

@ -1,178 +1,396 @@
<div class="card mb-2">
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingOrganisation" aria-expanded="false" aria-controls="collapseBookingOrganisation">
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingOrganisation"
aria-expanded="false" aria-controls="collapseBookingOrganisation">
<strong style="line-height: 1.6em">Organisation</strong>
</h6>
<div class="collapse" id="collapseBookingOrganisation">
<div class="card-body px-0">
@if($booking->new_drafts )
<div class="card-body px-2 py-2">
{{-- Wenn keine Organisation vorhanden ist --}}
@if (
(!$booking->booking_draft_items || $booking->booking_draft_items->count()) == 0 &&
(!$booking->arrangements || $booking->arrangements->count() == 0))
<div class="alert alert-warning mb-4">
<div class="d-flex justify-content-between align-items-center">
<div>
<i class="fa fa-info-circle"></i>
<strong>Keine Organisation vorhanden</strong>
<br>
<small>Laden Sie eine Vorlage, um schnell mit der Organisation zu beginnen.</small>
</div>
<div class="d-flex align-items-center">
<select class="custom-select custom-select-sm mr-2" name="draft_id" id="draft_selector"
style="min-width: 200px;">
<option value="">Vorlage auswählen...</option>
@php
$drafts = \App\Models\Draft::where('active', true)->orderBy('name')->get();
@endphp
@foreach ($drafts as $draft)
<option value="{{ $draft->id }}">{{ $draft->name }}</option>
@endforeach
</select>
<button type="submit" name="action" value="loadDraftToBooking"
class="btn btn-sm btn-primary" id="load_draft_btn" disabled
onclick="return confirm('{{ __('Vorlage laden? Bestehende Organisation wird überschrieben.') }}');">
<i class="fa fa-download"></i> Vorlage laden
</button>
</div>
</div>
</div>
<hr>
<div class="alert alert-info">
<div>
<i class="fa fa-info-circle"></i>
<strong>Leitungen hinzufügen</strong>
<br>
<small>Alternativ können Sie die Leitungen individualisiert hinzufügen.</small>
</div>
</div>
<script>
// Handler für neue Buchungen ohne Organisation
var draftSelectorNew = document.getElementById('draft_selector');
var loadBtnNew = document.getElementById('load_draft_btn');
if (draftSelectorNew && loadBtnNew) {
draftSelectorNew.addEventListener('change', function() {
loadBtnNew.disabled = !this.value;
});
}
</script>
{{-- <div class="float-right pr-2 pb-2">
<div class="mb-2">
<select class="custom-select custom-select-sm" name="draft_id" id="draft_selector_existing"
style="min-width: 150px; display: inline-block;">
<option value="">Vorlage laden...</option>
@php
$drafts = \App\Models\Draft::where('active', true)->orderBy('name')->get();
@endphp
@if (isset($drafts))
@foreach ($drafts as $draft)
<option value="{{ $draft->id }}">{{ $draft->name }}</option>
@endforeach
@endif
</select>
<button type="submit" name="action" value="loadDraftToBooking"
class="btn btn-sm btn-outline-secondary ml-1" id="load_draft_existing_btn" disabled
onclick="return confirm('{{ __('Vorlage laden? Bestehende Organisation wird überschrieben.') }}');">
<i class="fa fa-download"></i>
</button>
</div>
</div>
// Handler für bestehende Buchungen
<script>
var draftSelectorExisting = document.getElementById('draft_selector_existing');
var loadBtnExisting = document.getElementById('load_draft_existing_btn');
if (draftSelectorExisting && loadBtnExisting) {
draftSelectorExisting.addEventListener('change', function() {
loadBtnExisting.disabled = !this.value;
});
}
</script>
--}}
@endif
@if ($booking->arrangements && $booking->arrangements->count() > 0)
<div class="mb-4">
<div class="d-flex justify-content-between align-items-center mb-3">
<h6 class="text-muted mb-0">
<i class="fa fa-history"></i> Alte Arrangements
<span class="badge badge-info">{{ $booking->arrangements->count() }}</span>
</h6>
@if ($booking->arrangements->count() > 0)
<button type="submit" name="action" value="convertArrangementsToDrafts"
class="btn btn-sm btn-outline-primary"
onclick="return confirm('{{ __('Alle ' . $booking->arrangements->count() . ' Arrangements in die neue Draft-Struktur übernehmen? Dies kann nicht rückgängig gemacht werden.') }}');">
<i class="fa fa-exchange-alt"></i> In neue Struktur übernehmen
</button>
@endif
</div>
<div class="table-responsive">
<table class="table table-sm mb-0" style="min-width: 1080px">
<thead class="thead-light">
<tr>
<th style="width: 1em">#</th>
<th>Typ</th>
<th style="width: 9em">Datum von</th>
<th style="width: 9em">Datum bis</th>
<th>Daten</th>
<th style="width: 8em">Status</th>
</tr>
</thead>
@php($arr_i = 1)
@foreach ($booking->arrangements->sortByDesc('view_position') as $arrangement)
<tbody style="background-color: rgba(248, 249, 250, 1)">
<tr
@if ($arrangement->arrangement_type && $arrangement->arrangement_type->color) style="background-color: {{ $arrangement->arrangement_type->color }}" @endif>
<td>{{ $arr_i++ }}</td>
<td>
@if ($arrangement->arrangement_type)
{{ $arrangement->arrangement_type->name ?? $arrangement->type_s }}
@else
{{ $arrangement->type_s }}
@endif
</td>
<td>
@if ($arrangement->begin)
{{ $arrangement->begin->format('d.m.Y') }}
@endif
</td>
<td>
@if ($arrangement->end)
{{ $arrangement->end->format('d.m.Y') }}
@endif
</td>
<td>
@if ($arrangement->data_s)
<small class="text-muted">{{ $arrangement->getDataS() }}</small>
@endif
</td>
<td>
@if ($arrangement->in_pdf)
<span class="badge badge-success">Im PDF</span>
@else
<span class="badge badge-secondary">Nicht im PDF</span>
@endif
</td>
</tr>
</tbody>
@endforeach
</table>
</div>
</div>
@endif
@if (!$booking->arrangements || $booking->arrangements->count() == 0)
@php($i = 1)
<div class="float-right pr-2 pb-2">
<div class="input-group">
<select class="custom-select small-select" name="add_draft_items_up_number">
{!! HTMLHelper::getRangeOptions(1, 30, '') !!}
{!! HTMLHelper::getRangeOptions(1, 30, '') !!}
</select>
<span class="input-group-append">
<button type="submit" name="action" value="addItemUp" class="btn btn-sm btn-primary"><i class="fa fa-plus"></i> Neue Leistung hinzufügen <i class="fa fa-arrow-up"></i></button>
<button type="submit" name="action" value="addItemUp" class="btn btn-sm btn-primary"><i
class="fa fa-plus"></i> Neue Leistung hinzufügen <i
class="fa fa-arrow-up"></i></button>
</span>
</div>
<button type="button" name="" class="btn btn-sm btn-info mt-2" data-toggle="modal" data-target="#modals-change-travel-dates"><i class="fa fa-sync"></i> Datum der Reise ändern </button>
<button type="button" name="" class="btn btn-sm btn-info mt-2" data-toggle="modal"
data-target="#modals-change-travel-dates"><i class="fa fa-sync"></i> Datum der Reise ändern
</button>
</div>
<div class="text-left pl-2">
<button type="submit" name="action" value="saveAll" class="btn btn-sm btn-secondary">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('requests')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
<button type="submit" name="action" value="saveAll"
class="btn btn-sm btn-secondary">{{ __('save changes') }}</button>&nbsp;
<a href="{{ route('requests') }}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
</div>
<div class="table-responsive mb-4">
<table class="table mb-0" id="table_dragula_tbody" style="min-width: 1080px">
<thead class="thead-dark">
<tr>
<th style="width: 1em"></th>
<th style="width: 1em">#</th>
<th>Leistung</th>
<th style="width: 9em">Datum von</th>
<th style="width: 9em">Datum bis</th>
<th style="width: 15em">Teilnehmer/EP</th>
<th style="width: 15em">Kinder/EP</th>
<th style="width: 8em">#</th>
</tr>
</thead >
@foreach($booking->booking_draft_items as $booking_draft_item)
<tbody class="draft_item_tbody" style="background-color: rgba(218, 218, 229, 1)">
<tr @if($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif>
<td>
<span class="handle ion ion-ios-move d-inline-block bg-primary text-white p-1"></span>
</td>
<td><span class="item_pos_number">{{ $i++ }}</span></td>
<td>
<select class="selectpicker" data-style="btn-light" name="draft_item[{{$booking_draft_item->id}}][draft_type_id]" id="draft_item_{{$booking_draft_item->id }}_draft_type_id" data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($booking_draft_item->draft_type_id) !!}
</select>
</td>
<td>
{{ Form::text('draft_item['.$booking_draft_item->id.'][start_date]', $booking_draft_item->start_date, array('placeholder'=>__('Start Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_start_dat')) }}
</td>
<td>
{{ Form::text('draft_item['.$booking_draft_item->id.'][end_date]', $booking_draft_item->end_date, array('placeholder'=>__('End Datum'), 'class'=>'form-control datepicker-base', 'id'=>'draft_item_'.$booking_draft_item->id.'_end_date')) }}
</td>
@if(in_array($booking_draft_item->draft_type_id, [24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42]))
<td>
<div class="input-group">
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][adult]" id="draft_item_{{$booking_draft_item->id }}_adult">
<option value="">0</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->adult, 10, '') !!}
</select>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_adult]', $booking_draft_item->price_adult, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_adult', 'maxlength'=>10)) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
</td>
<td>
<div class="input-group">
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][children]" id="draft_item_{{$booking_draft_item->id}}_children">
<option value="">0</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->children, 10, '') !!}
</select>
{{ Form::text('draft_item['.$booking_draft_item->id.'][price_children]', $booking_draft_item->price_children, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price_children')) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
</td>
@else
<td>-</td>
<td>-</td>
@endif
<td>
<button type="button" name="" value="up_{{$booking_draft_item->id}}" class="btn btn-xs btn-primary py-0 move-up-btn"><i class="fa fa-arrow-up"></i> </button>
<button type="button" name="" value="down_{{$booking_draft_item->id}}" class="btn btn-xs btn-primary mr-2 move-down-btn"><i class="fa fa-arrow-down"></i> </button>
<a class="text-danger" href="{{ route('booking_draft_item_delete', [$booking_draft_item->id]) }}" onclick="return confirm('{{__('Wirklich löschen?')}}');"><i class="fa fa-trash-alt"></i></a>
</td>
<tr>
<th style="width: 1em"></th>
<th style="width: 1em">#</th>
<th>Leistung</th>
<th style="width: 9em">Datum von</th>
<th style="width: 9em">Datum bis</th>
<th style="width: 15em">Teilnehmer/EP</th>
<th style="width: 15em">Kinder/EP</th>
<th style="width: 8em">#</th>
</tr>
<tr @if($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif class="border-none">
@if(in_array($booking_draft_item->draft_type_id, [36, 37]))
<td colspan="3">
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][days_duration]" id="draft_item_{{$booking_draft_item->id }}_days_duration">
<option value="">0 Tage</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->days_duration, 40, ' Tage') !!}
</thead>
@foreach ($booking->booking_draft_items as $booking_draft_item)
<tbody class="draft_item_tbody" style="background-color: rgba(218, 218, 229, 1)">
<tr
@if ($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif>
<td>
<span
class="handle ion ion-ios-move d-inline-block bg-primary text-white p-1"></span>
</td>
<td><span class="item_pos_number">{{ $i++ }}</span></td>
<td>
<select class="selectpicker" data-style="btn-light"
name="draft_item[{{ $booking_draft_item->id }}][draft_type_id]"
id="draft_item_{{ $booking_draft_item->id }}_draft_type_id"
data-live-search="true" required>
<option value="" disabled>Vorlagen-Typ*</option>
{!! HTMLHelper::getDraftTypes($booking_draft_item->draft_type_id) !!}
</select>
</td>
<td colspan="4">
@elseif(in_array($booking_draft_item->draft_type_id, [38, 39,40]))
<td colspan="3">
<div class="input-group">
@if(in_array($booking_draft_item->draft_type_id, [38]))
<select class="custom-select" name="draft_item[{{$booking_draft_item->id}}][days_duration]" id="draft_item_{{$booking_draft_item->id }}_days_duration">
<option value="">0 Tage</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->days_duration, 40, ' T.') !!}
</select>
@endif
{{ Form::text('draft_item['.$booking_draft_item->id.'][price]', $booking_draft_item->price, array('placeholder'=>__('Preis in €'), 'class'=>'form-control', 'id'=>'draft_item_'.$booking_draft_item->id.'_price',)) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
<td>
{{ Form::text('draft_item[' . $booking_draft_item->id . '][start_date]', $booking_draft_item->start_date, ['placeholder' => __('Start Datum'), 'class' => 'form-control datepicker-base', 'id' => 'draft_item_' . $booking_draft_item->id . '_start_dat']) }}
</td>
<td colspan="4">
@else
<td colspan="7">
@endif
{{ Form::textarea('draft_item['.$booking_draft_item->id.'][service]', $booking_draft_item->service, array('placeholder'=>__('Leistungen'), 'class'=>'form-control autoExpand', 'id'=>'draft_item_'.$booking_draft_item->id.'_service', 'rows'=>'1', 'data-min-rows'=>'1')) }}
<td>
{{ Form::text('draft_item[' . $booking_draft_item->id . '][end_date]', $booking_draft_item->end_date, ['placeholder' => __('End Datum'), 'class' => 'form-control datepicker-base', 'id' => 'draft_item_' . $booking_draft_item->id . '_end_date']) }}
</td>
@if (in_array($booking_draft_item->draft_type_id, [24, 26, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42]))
<td>
<div class="input-group">
<select class="custom-select"
name="draft_item[{{ $booking_draft_item->id }}][adult]"
id="draft_item_{{ $booking_draft_item->id }}_adult">
<option value="">0</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->adult, 10, '') !!}
</select>
{{ Form::text('draft_item[' . $booking_draft_item->id . '][price_adult]', $booking_draft_item->price_adult, ['placeholder' => __('Preis in €'), 'class' => 'form-control', 'id' => 'draft_item_' . $booking_draft_item->id . '_price_adult', 'maxlength' => 10]) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
</td>
<td>
<div class="input-group">
<select class="custom-select"
name="draft_item[{{ $booking_draft_item->id }}][children]"
id="draft_item_{{ $booking_draft_item->id }}_children">
<option value="">0</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->children, 10, '') !!}
</select>
{{ Form::text('draft_item[' . $booking_draft_item->id . '][price_children]', $booking_draft_item->price_children, ['placeholder' => __('Preis in €'), 'class' => 'form-control', 'id' => 'draft_item_' . $booking_draft_item->id . '_price_children']) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
</td>
@else
<td>-</td>
<td>-</td>
@endif
<td>
<button type="button" name=""
value="up_{{ $booking_draft_item->id }}"
class="btn btn-xs btn-primary py-0 move-up-btn"><i
class="fa fa-arrow-up"></i> </button>
<button type="button" name=""
value="down_{{ $booking_draft_item->id }}"
class="btn btn-xs btn-primary mr-2 move-down-btn"><i
class="fa fa-arrow-down"></i> </button>
<a class="text-danger"
href="{{ route('booking_draft_item_delete', [$booking_draft_item->id]) }}"
onclick="return confirm('{{ __('Wirklich löschen?') }}');"><i
class="fa fa-trash-alt"></i></a>
</td>
</tr>
<tr @if ($booking_draft_item->draft_type) style="background-color: {{ $booking_draft_item->draft_type->color }}" @endif
class="border-none">
@if (in_array($booking_draft_item->draft_type_id, [36, 37]))
<td colspan="3">
<select class="custom-select"
name="draft_item[{{ $booking_draft_item->id }}][days_duration]"
id="draft_item_{{ $booking_draft_item->id }}_days_duration">
<option value="">0 Tage</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->days_duration, 40, ' Tage') !!}
</select>
</td>
<td colspan="4">
@elseif(in_array($booking_draft_item->draft_type_id, [38, 39, 40]))
<td colspan="3">
<div class="input-group">
@if (in_array($booking_draft_item->draft_type_id, [38]))
<select class="custom-select"
name="draft_item[{{ $booking_draft_item->id }}][days_duration]"
id="draft_item_{{ $booking_draft_item->id }}_days_duration">
<option value="">0 Tage</option>
{!! HTMLHelper::getRangeOptions($booking_draft_item->days_duration, 40, ' T.') !!}
</select>
@endif
{{ Form::text('draft_item[' . $booking_draft_item->id . '][price]', $booking_draft_item->price, ['placeholder' => __('Preis in €'), 'class' => 'form-control', 'id' => 'draft_item_' . $booking_draft_item->id . '_price']) }}
<span class="input-group-append">
<span class="input-group-text"></span>
</span>
</div>
</td>
<td colspan="4">
@else
<td colspan="7">
@endif
{{ Form::textarea('draft_item[' . $booking_draft_item->id . '][service]', $booking_draft_item->service, ['placeholder' => __('Leistungen'), 'class' => 'form-control autoExpand', 'id' => 'draft_item_' . $booking_draft_item->id . '_service', 'rows' => '1', 'data-min-rows' => '1']) }}
</td>
<td>
<div style="display: inline-flex">
<label class="custom-control custom-checkbox mt-2" style="margin-right: 10px;">
{!! Form::checkbox('draft_item['.$booking_draft_item->id.'][in_pdf]', 1, $booking_draft_item->in_pdf, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('PDF')}}</span>
</label>
</div>
<div style="display: inline-flex">
<label class="custom-control custom-checkbox mt-2" style="">
{!! Form::checkbox('draft_item_delete['.$booking_draft_item->id.']', 1, 0, ['class'=>'custom-control-input color-danger']) !!}
<span class="custom-control-label">&nbsp;</span>
</label>
</div>
<label class="custom-control custom-checkbox mt-2"
style="margin-right: 10px;">
{!! Form::checkbox('draft_item[' . $booking_draft_item->id . '][in_pdf]', 1, $booking_draft_item->in_pdf, [
'class' => 'custom-control-input',
]) !!}
<span class="custom-control-label">{{ __('PDF') }}</span>
</label>
</div>
<div style="display: inline-flex">
<label class="custom-control custom-checkbox mt-2" style="">
{!! Form::checkbox('draft_item_delete[' . $booking_draft_item->id . ']', 1, 0, [
'class' => 'custom-control-input color-danger',
]) !!}
<span class="custom-control-label">&nbsp;</span>
</label>
</div>
</td>
</tr>
</tr>
</tbody>
@endforeach
</table>
</div>
<div class="float-right pr-2 text-right pb-2">
<div class="input-group">
<select class="custom-select small-select" name="add_draft_items_down_number">
{!! HTMLHelper::getRangeOptions(1, 30, '') !!}
</select>
<span class="input-group-append">
<button type="submit" name="action" value="addItemDown" class="btn btn-sm btn-primary"><i class="fa fa-plus"></i> Neue Leistung hinzufügen <i class="fa fa-arrow-down"></i></button>
</span>
<div class="d-block float-right">
<div class="input-group">
<select class="custom-select small-select" name="add_draft_items_down_number">
{!! HTMLHelper::getRangeOptions(1, 30, '') !!}
</select>
<span class="input-group-append">
<button type="submit" name="action" value="addItemDown"
class="btn btn-sm btn-primary"><i class="fa fa-plus"></i> Neue Leistung hinzufügen
<i class="fa fa-arrow-down"></i></button>
</span>
</div>
</div>
<button type="submit" name="action" value="deleteAllChecked" class="mt-2 btn btn-sm btn-danger" onclick="return confirm('{{__('Wirklich alle ausgewählten Leistungen löschen?')}}');">
<i class="fa fa-check-circle"></i> alle ausgewählten Leistungen löschen <i class="fa fa-trash"></i></button>
<div class="d-block">
<button type="button" name="" value="" class="mt-2 btn btn-sm btn-warning"
onclick="selectAllForDeletion()">
<i class="fa fa-check-square"></i> Alle Leistungen zum Löschen markieren <i
class="fa fa-trash"></i></button>
<button type="submit" name="action" value="deleteAllChecked"
class="mt-2 btn btn-sm btn-danger"
onclick="return confirm('{{ __('Wirklich alle ausgewählten Leistungen löschen?') }}');">
<i class="fa fa-check-circle"></i> alle ausgewählten Leistungen löschen <i
class="fa fa-trash"></i></button>
</div>
</div>
<div class="text-left mt-3 pl-2">
<button type="submit" name="action" value="saveAll" class="btn btn-sm btn-secondary">{{ __('save changes') }}</button>&nbsp;
<a href="{{route('requests')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
<button type="submit" name="action" value="saveAll"
class="btn btn-sm btn-secondary">{{ __('save changes') }}</button>&nbsp;
<a href="{{ route('requests') }}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
</div>
@endif
</div>
</div>
</div>
</div>
<script>
function selectAllForDeletion() {
// Alle Checkboxes mit dem Namen draft_item_delete[...] finden und markieren
const checkboxes = document.querySelectorAll('input[name^="draft_item_delete["]');
checkboxes.forEach(function(checkbox) {
checkbox.checked = true;
});
// Optional: Eine Bestätigungsnachricht anzeigen
alert('Alle Leistungen wurden zum Löschen markiert.');
}
</script>

View file

@ -1,39 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<base href="{{ url('/') }}">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>STERN TOURS</title>
<style>
/*DIN LANG*/
@font-face {
font-family: "Source Sans 3";
src: url("fonts/source-sans-3-v15-latin-regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Source Sans 3';
font-style: normal;
font-weight: 500;
src: url('fonts/source-sans-3-v15-latin-500.ttf') format('truetype');
}
@font-face {
font-family: 'Source Sans 3';
font-style: normal;
font-weight: 600;
src: url('fonts/source-sans-3-v15-latin-600.ttf') format('truetype');
}
@font-face {
font-family: 'Source Sans 3';
font-style: normal;
font-weight: 700;
src: url('fonts/source-sans-3-v15-latin-700.ttf') format('truetype');
}
/* Source Sans 3 - wird von DomPDF automatisch aus storage/fonts/ geladen */
html {
width: 100%;
height: 100%;
}
body {
position: relative;
width: 100%;
@ -43,30 +22,33 @@
color: #000;
font-size: 8.5pt;
line-height: 1.1em;
font-weight: 400 ;
font-family: "Source Sans 3", serif;
font-weight: 400;
font-family: "source sans 3", sans-serif;
}
table {
border: none;
}
strong {
font-weight: bold;
}
@page {
margin: 20mm 15mm 22mm 15mm;
color:#000;
color: #000;
}
header {
position: fixed;
top:-20mm;
top: -20mm;
right: 0mm;
width: 100mm;
height: 20mm;
text-align: right;
}
header img {
padding-top: 6mm;
height: 10mm;
@ -98,12 +80,15 @@
height: 100%;
}
u {
text-decoration: none;
font-weight: bold
}
.page_break { page-break-before: always; }
.page_break {
page-break-before: always;
}
#pdf-page {
position: relative;
@ -113,84 +98,100 @@
color: #648859 !important;
text-decoration: none;
}
h1 {
font-weight: 400;
}
h2 {
margin-bottom: 0;
}
ul,
ol {
padding-left: 2rem;
}
li {
padding-bottom: 0.5rem;
}
.booking-table {
width: 180mm;
border-collapse: collapse;
margin-bottom: 2rem;
text-align: left;
}
.booking-table tr {
}
.booking-table tr {}
.booking-table th {
padding: 0.2rem 0.4rem;
color:#ffffff;
color: #ffffff;
background: #648859;
font-weight: bold;
border: 0.25pt solid #648859;
text-align: left;
}
.booking-table h3 {
padding: 0.2rem 0rem;
line-height: 1rem;
margin:0;
margin: 0;
text-align: left;
}
.booking-table td {
padding: 0.15rem 0.4rem;
color: #000;
color: #000;
border: 0.25pt solid #000;
font-size: 8.5pt;
}
.pdf-input-content {
margin-bottom: 2rem;
}
.pdf-break-block {
page-break-inside: avoid;
}
.text-center, .booking-table th.text-center, .booking-table td.text-center {
.text-center,
.booking-table th.text-center,
.booking-table td.text-center {
text-align: center;
}
.text-right, .booking-table th.text-right, .booking-table td.text-right{
.text-right,
.booking-table th.text-right,
.booking-table td.text-right {
text-align: right;
}
.no-border-table{
padding: 0;
.no-border-table {
padding: 0;
margin: 0;
border-collapse: collapse;
border: none;
}
.no-border-table tr, .no-border-table td, .no-border-table th{
.no-border-table tr,
.no-border-table td,
.no-border-table th {
border: none;
padding: 0;
padding: 0;
margin: 0;
}
.small {
font-size: 0.9em;
}
</style>
</head>
<body>
<script type="text/php">
<script type="text/php">
if (isset($pdf)) {
$font = null;
$size = 8;
@ -204,15 +205,16 @@
$pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);
}
</script>
<header>
</header>
<footer>
</footer>
<main>
<div id="pdf-page">
@yield('content')
</div>
</main>
<header>
</header>
<footer>
</footer>
<main>
<div id="pdf-page">
@yield('content')
</div>
</main>
</body>
</html>
</html>

View file

@ -15,9 +15,11 @@
<li class="nav-item">
<a class="nav-link @if($step == false) active show @endif" data-toggle="tab" href="#navs-site">Allgemein</a>
</li>
@if($id != 'new')
<li class="nav-item">
<a class="nav-link @if($step === 'services') active show @endif" data-toggle="tab" href="#navs-services">Leistungen</a>
</li>
@endif
</ul>

View file

@ -15,7 +15,7 @@
<li class="nav-item">
<a class="nav-link @if($step == false) active show @endif" data-toggle="tab" href="#navs-site">Seite</a>
</li>
@if($id > 0)
@if($id != 'new')
<li class="nav-item">
<a class="nav-link @if($step === 'form') active show @endif" data-toggle="tab" href="#navs-form">Formular</a>
</li>