Fewo Mail MA, optimation Fewo, view User Fewos
This commit is contained in:
parent
e537e47a82
commit
346a7427a5
30 changed files with 915 additions and 963 deletions
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-6">
|
||||
<label class="form-label" for="invoice_number">{{ __('Rechnungsnummer') }}</label>
|
||||
<label class="form-label" for="invoice_number">{{ __('Rechnungsnummer') }} (unique)</label>@if($travel_user_booking_fewo->isInvoice()) <em class="small">Rechnungsnummer ist PDF-Name der Mietbestätigung</em> @endif
|
||||
{{ Form::text('invoice_number', $travel_user_booking_fewo->invoice_number, array('placeholder'=>__('Rechnungsnummer'), 'class'=>'form-control')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-6">
|
||||
|
|
@ -68,6 +68,10 @@
|
|||
<label class="form-label" for="to_date">{{ __('Datum bis') }}*</label>
|
||||
{{ Form::text('to_date', $travel_user_booking_fewo->to_date, array('placeholder'=>__('Datum bis'), 'class'=>'form-control datepicker-base', 'required'=>true)) }}
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<em><small>Bei Datumsänderungen wird die Verfügbarkeit gerüft sowie die Berechnung der Preise neu ausgeführt.</small></em>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
|
@ -75,34 +79,50 @@
|
|||
@if(isset($travel_user_booking_fewo->daily_prices))
|
||||
@foreach($travel_user_booking_fewo->daily_prices as $s => $d)
|
||||
<div class="form-group col-sm-12">
|
||||
{{$s}} | {{$d['fromDay']}} - {{$d['toDay']}} | {{$d['numberDays']}} Tage x {{$d['perNight']}} € / pro Nacht | <strong>{{$d['price']}} € Gesamt</strong>
|
||||
{{$s}} | {{$d['fromDay']}} - {!! Carbon::parse($d['toDay'])->modify('+1 day')->format("d.m.Y") !!} | {{$d['numberDays']}} Nächte x {{$d['perNight']}} € / pro Nacht | <strong>{{$d['price']}} € Gesamt</strong>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
<div class="form-group col-sm-4 col-md-2">
|
||||
<label class="form-label" for="price_travel">{{ __('Mitpreis alle Tage') }}</label>
|
||||
{{ Form::text('price_travel', $travel_user_booking_fewo->price_travel, array('placeholder'=>__('Preis Übernachtungen'), 'class'=>'form-control input-auto-calc')) }}
|
||||
<div class="form-group col-sm-4 col-md-4 col-lg-3">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<label class="form-label" for="price_travel">{{ __('Mietpreis alle Tage') }}</label>
|
||||
|
||||
{{ Form::text('price_travel', $travel_user_booking_fewo->price_travel, array('placeholder'=>__('Preis Übernachtungen'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label class="form-label" for="price_travel">{{ __('Mietp. zus. P.') }}</label>
|
||||
{{ Form::text('price_extra', $travel_user_booking_fewo->price_extra, array('placeholder'=>__('zusätzliche Personen'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-4 col-md-2">
|
||||
<label class="form-label" for="price_service">{{ __('Preis Service-Gebühr') }}</label>
|
||||
|
||||
<div class="form-group col-sm-8 col-md-8 col-lg-3">
|
||||
<label class="form-label" for="price_balance">{{ __('Provisionsausgleich durch Vertriebskanal') }}</label>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
{{ Form::text('price_balance', $travel_user_booking_fewo->price_balance, array('placeholder'=>__(' Provisionsausgleich durch Vertriebskanal'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
<div class="col-6">
|
||||
{{ Form::text('price_travel_total', $travel_user_booking_fewo->price_travel_total, array('placeholder'=>__('Gesamt'), 'class'=>'form-control', 'readonly')) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-6 col-sm-4 col-md-4 col-lg-2">
|
||||
<label class="form-label" for="price_service">{{ __('Service-Gebühr') }}</label>
|
||||
{{ Form::text('price_service', $travel_user_booking_fewo->price_service, array('placeholder'=>__('Preis Service-Gebühr'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-4 col-md-2">
|
||||
<label class="form-label" for="price_deposit">{{ __('Preis Kaution') }}</label>
|
||||
<div class="form-group col-6 col-sm-4 col-md-4 col-lg-2">
|
||||
<label class="form-label" for="price_deposit">{{ __('Kaution') }}</label>
|
||||
{{ Form::text('price_deposit', $travel_user_booking_fewo->price_deposit, array('placeholder'=>__('Preis Kaution'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<label class="form-label" for="price_balance">{{ __('Provisionsausgleich durch Vertriebskanal') }}</label>
|
||||
{{ Form::text('price_balance', $travel_user_booking_fewo->price_balance, array('placeholder'=>__(' Provisionsausgleich durch Vertriebskanal'), 'class'=>'form-control input-auto-calc')) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-6 col-md-3">
|
||||
<div class="form-group col-sm-4 col-md-4 col-lg-2">
|
||||
<label class="form-label" for="price_total">{{ __('Preis Gesamt') }}*</label>
|
||||
{{ Form::text('price_total', $travel_user_booking_fewo->price_total, array('placeholder'=>__('Preis Gesamt'), 'class'=>'form-control')) }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
<div class="form-row">
|
||||
<div class="col-sm-12">
|
||||
|
|
@ -154,8 +174,6 @@
|
|||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="notice">{{ __('Bemerkung Kunde') }}</label>
|
||||
|
|
@ -169,9 +187,9 @@
|
|||
<div class="card mb-2">
|
||||
<div class="card-body">
|
||||
@if($travel_user_booking_fewo->isInvoice())
|
||||
<h4>Mietbestätigung / Rechnung
|
||||
<h4>Mietbestätigung / Rechnung <em style="font-size:60%">bei Preis-/Änderungen überschreiben</em>
|
||||
<div class="text-right float-right">
|
||||
<button type="submit" name="action" value="createInvoice" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Rechnung überschreiben?')}}');">{{ __('Mietbestätigung / Rechnung PDF erstellen') }}</button>
|
||||
<button type="submit" name="action" value="createInvoice" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Rechnung überschreiben?')}}');">{{ __('Mietbestätigung / Rechnung PDF überschreiben') }}</button>
|
||||
</div>
|
||||
</h4>
|
||||
<a class="btn btn-secondary btn-sm" target="_blank" href="{{$travel_user_booking_fewo->getInvoiceUrlFile()}}/file"><i class="fa fa-file-pdf"></i> Mietbestätigung / Rechnung: {{$travel_user_booking_fewo->getInvoiceFileName()}}</a>
|
||||
|
|
@ -197,26 +215,24 @@
|
|||
</table>
|
||||
@endif
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="form-label" for="send_mail_user_notice">{{ __('Wichtige Hinweise in E-Mail ') }}</label>
|
||||
{{ Form::textarea('send_mail_user_notice', '', ['class' => 'form-control autoExpand', 'rows'=>1]) }}
|
||||
<div class="form-group col-sm-12 mt-2">
|
||||
{{ Form::textarea('send_mail_user_notice', '', ['placeholder'=>'Wichtige Hinweise in E-Mail, werden nur in die aktuelle E-Mail übernommen', 'class' => 'form-control autoExpand', 'rows'=>1]) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-right mt-2">
|
||||
<button type="submit" name="action" value="sendMailtoUser" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Mail an Mieter versenden?')}}');">{{ __('E-Mail mit Mietbestätigung / Rechnung und Mietbedingungen an Kunden versenden') }}</button>
|
||||
<div class="text-right mt-0">
|
||||
<button type="submit" name="action" value="sendMailtoUser" class="btn btn-primary btn-sm" onclick="return confirm('{{__('E-Mail Mietbestätigung an Mieter versenden?')}}');">{{ __('E-Mail mit Mietbestätigung / Rechnung und Mietbedingungen an Kunden versenden') }}</button>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($travel_user_booking_fewo->isInvoice())
|
||||
|
||||
<div class="card mb-2">
|
||||
<div class="card-body">
|
||||
@if($travel_user_booking_fewo->isTravelInfo())
|
||||
<h4>Anreiseinfo
|
||||
<h4>Anreiseinfo <em style="font-size:60%">bei Änderungen überschreiben</em>
|
||||
<div class="text-right float-right">
|
||||
<button type="submit" name="action" value="createTravelInfo" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Anreiseinfo überschreiben?')}}');">{{ __('Anreiseinfo speichern und PDF erstellen') }}</button>
|
||||
<button type="submit" name="action" value="createTravelInfo" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Anreiseinfo überschreiben?')}}');">{{ __('Anreiseinfo speichern und PDF überschreiben') }}</button>
|
||||
</div>
|
||||
</h4>
|
||||
<p><a class="btn btn-secondary btn-sm" target="_blank" href="{{$travel_user_booking_fewo->getTravelInfoUrlFile()}}/file"><i class="fa fa-file-pdf"></i> {{$travel_user_booking_fewo->getTravelInfoFileName()}}</a>
|
||||
|
|
@ -236,6 +252,8 @@
|
|||
<div class="collapse mt-2" id="collapseTravelInfo">
|
||||
{{ Form::textarea('info_mail_text', $travel_user_booking_fewo->info_mail_text, ['class' => 'form-control autoExpand', 'rows'=>1, 'id'=>'travel_info_user_text']) }}
|
||||
<em>Grundtext in ADMIN CMS > <a href="{{route('cms_content')}}">Inhalte</a> > PDF Vorlage Anreiseinfo FeWo</em>
|
||||
<em class="small">(Änderungen werden hier gespeichert.)</em>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -253,7 +271,7 @@
|
|||
</table>
|
||||
@endif
|
||||
|
||||
<div class="text-right mt-2">
|
||||
<div class="text-right mt-0">
|
||||
<button type="submit" name="action" value="sendInfosMailtoUser" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Mail an Mieter versenden?')}}');">{{ __('E-Mail mit Anreiseinfo an Kunden versenden') }}</button>
|
||||
</div>
|
||||
@endif
|
||||
|
|
@ -279,17 +297,18 @@
|
|||
</table>
|
||||
@endif
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-6">
|
||||
<label class="form-label" for="send_mail_service_subject">{{ __('Betreff E-Mail ') }}</label>
|
||||
{{ Form::text('send_mail_service_subject', $travel_user_booking_fewo->getServiceMailSubject(), ['class' => 'form-control']) }}
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
<label class="form-label" for="send_mail_service_mail">{{ __('E-Mail Adresse Dienstleister') }}</label>
|
||||
{{ Form::text('send_mail_service_mail', 'langosch.birgit@web.de', array('class'=>'form-control')) }}
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
<label class="form-label" for="send_mail_service_subject">{{ __('Betreff E-Mail ') }}</label>
|
||||
{{ Form::text('send_mail_service_subject', $travel_user_booking_fewo->getServiceMailSubject(), ['class' => 'form-control']) }}
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label class="form-label" for="send_mail_service_content">{{ __('Inhalt E-Mail ') }}</label>
|
||||
{{ Form::textarea('send_mail_service_content', $travel_user_booking_fewo->getServiceMailContent(), ['class' => 'form-control autoExpand', 'rows'=>1]) }}
|
||||
<em class="small">(Änderungen gelten nur für das senden der aktuellen E-Mail, werden nicht gespeichert.)</em>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-right mt-2">
|
||||
|
|
@ -299,8 +318,49 @@
|
|||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
@if($travel_user_booking_fewo->id > 0)
|
||||
<div class="card mb-2">
|
||||
<div class="card-body">
|
||||
<h4>Mitarbeiter Mail</h4>
|
||||
@if($travel_user_booking_fewo->send_employee_mail)
|
||||
<table class="table table-striped border-bottom">
|
||||
<tbody>
|
||||
@foreach($travel_user_booking_fewo->send_employee_mail as $send_employee_mail)
|
||||
<tr>
|
||||
<td style="width: 25%"><strong>{!! $send_employee_mail['d'] !!}</strong><br>
|
||||
@if(is_array($send_employee_mail['m']))
|
||||
{!! implode(",", $send_employee_mail['m']) !!}
|
||||
@else
|
||||
{{$send_employee_mail['m']}}
|
||||
@endif</td>
|
||||
<td>{{$send_employee_mail['s']}}<br>
|
||||
<span class="small">{!! nl2br($send_employee_mail['c']) !!}</span></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-6">
|
||||
<label class="form-label" for="send_mail_employee_mail">{{ __('E-Mail Adresse Mitarbeiter') }}</label>
|
||||
{{ Form::text('send_mail_employee_mail', $send_mail_employee_mail, array('class'=>'form-control')) }}
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
<label class="form-label" for="send_mail_employee_subject">{{ __('Betreff E-Mail ') }}</label>
|
||||
{{ Form::text('send_mail_employee_subject', $travel_user_booking_fewo->getEmployeeMailSubject(), ['class' => 'form-control']) }}
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label class="form-label" for="send_mail_employee_content">{{ __('Inhalt E-Mail ') }}</label>
|
||||
{{ Form::textarea('send_mail_employee_content', $travel_user_booking_fewo->getEmployeeMailContent(), ['class' => 'form-control autoExpand', 'rows'=>1]) }}
|
||||
<em class="small">(Änderungen gelten nur für das senden der aktuellen E-Mail, werden nicht gespeichert.)</em>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-right mt-2">
|
||||
<button type="submit" name="action" value="sendMailtoEmployee" class="btn btn-primary btn-sm" onclick="return confirm('{{__('Mail an Mitarbeiter versenden?')}}');">{{ __('E-Mail an Mitarbeiter versenden') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<script>
|
||||
function floatNumber(n) {
|
||||
|
|
@ -313,29 +373,53 @@
|
|||
function formatNumber(obj) {
|
||||
n = obj.val();
|
||||
n = n.replace(/\./g, '').replace(',', '.');
|
||||
if(isNaN(parseFloat(n))){
|
||||
obj.val(0);
|
||||
n = parseFloat(n).toFixed(2);
|
||||
console.log(n);
|
||||
if(isNaN(n)){
|
||||
return obj.val(0);
|
||||
}
|
||||
obj.val(parseFloat(n).toFixed(2).replace(".", ","));
|
||||
return obj.val(n.replace(".", ","));
|
||||
}
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
|
||||
@if($travel_user_booking_fewo->isInvoice())
|
||||
$("input[name='invoice_number']").on('focus', function () {
|
||||
if (!$(this).data('focused')) {
|
||||
$(this).data('focused', true);
|
||||
alert('Mietbestätigung/Anreiseinfo sind der Rechnungsnummer zugeordnet, bei Änderungen mussen die PDFs neu erstellt werden.');
|
||||
}
|
||||
});
|
||||
$("input[name='invoice_number']").on('onblur', function () {
|
||||
$(this).data('focused', false);
|
||||
});
|
||||
@endif
|
||||
|
||||
$('#collapseTravelInfo').on('shown.bs.collapse', function () {
|
||||
$('#travel_info_user_text').keyup();
|
||||
});
|
||||
$('input.input-auto-calc').on('change', function () {
|
||||
|
||||
formatNumber($("input[name='price_travel']"));
|
||||
formatNumber($("input[name='price_balance']"));
|
||||
formatNumber($("input[name='price_extra']"));
|
||||
formatNumber($("input[name='price_travel_total']"));
|
||||
formatNumber($("input[name='price_service']"));
|
||||
formatNumber($("input[name='price_deposit']"));
|
||||
formatNumber($("input[name='price_balance']"));
|
||||
|
||||
|
||||
price_travel = floatNumber($("input[name='price_travel']").val());
|
||||
price_balance =floatNumber($("input[name='price_balance']").val());
|
||||
price_extra =floatNumber($("input[name='price_extra']").val());
|
||||
price_service = floatNumber($("input[name='price_service']").val());
|
||||
price_deposit = floatNumber($("input[name='price_deposit']").val());
|
||||
price_balance =floatNumber($("input[name='price_balance']").val());
|
||||
price_total = parseFloat(price_travel + price_service + price_deposit + price_balance);
|
||||
|
||||
price_travel_total = parseFloat(price_travel + price_balance + price_extra);
|
||||
price_travel_total = parseFloat((Math.round(price_travel_total * 100) / 100)).toFixed(2).replace(".", ",");
|
||||
$("input[name='price_travel_total']").val(price_travel_total);
|
||||
|
||||
price_total = parseFloat(price_travel + price_balance + price_extra + price_service + price_deposit);
|
||||
price_total = parseFloat((Math.round(price_total * 100) / 100)).toFixed(2).replace(".", ",");
|
||||
$("input[name='price_total']").val(price_total);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue