963 lines
No EOL
56 KiB
PHP
Executable file
963 lines
No EOL
56 KiB
PHP
Executable file
@extends('layouts.layout-2')
|
||
|
||
@section('content')
|
||
|
||
<style>
|
||
/* body {
|
||
-webkit-touch-callout: none;
|
||
-webkit-user-select: none;
|
||
-khtml-user-select: none;
|
||
-moz-user-select: none;
|
||
-ms-user-select: none;
|
||
user-select: none;
|
||
}*/
|
||
.btn-xs {
|
||
line-height: 1.3em;
|
||
}
|
||
.table tbody + tbody {
|
||
border-top: 1px solid #9c9c9c;
|
||
}
|
||
.table th, .table td {
|
||
border-top: none;
|
||
}
|
||
.table tr.border-none td, .table tr.border-none th {
|
||
border-top: none;
|
||
}
|
||
.table .thead-dark th {
|
||
color: #4E5155;
|
||
background-color: rgba(24, 28, 33, 0.1);
|
||
border-color: rgba(63, 69, 74, 0.1);
|
||
}
|
||
|
||
.input-group-text {
|
||
padding: 0.438rem 0.475rem;
|
||
}
|
||
.badge.indicator:not(.badge-dot) {
|
||
-webkit-transform: translate(20%, -30%);
|
||
transform: translate(20%, -30%);
|
||
}
|
||
|
||
|
||
</style>
|
||
<div class="float-right mt-3">
|
||
<a href="{{route('bookings')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
|
||
<a href="{{ make_old_url('/index.php/booking/'.$booking->id.'/edit') }}" class="btn btn-sm btn-default float-right">{{ __('zurück ins CRM v2') }}</a>
|
||
</div>
|
||
<h4 class="font-weight-bold py-3 mb-1">
|
||
Buchung verwalten
|
||
</h4>
|
||
|
||
{{--
|
||
<style>
|
||
[class*="nav-tabs"]
|
||
{
|
||
position: fixed;
|
||
z-index: 9;
|
||
background-color: #fff;
|
||
margin-top: -11%; // adjust according to your need
|
||
}
|
||
[class*="tab-content"]
|
||
{
|
||
margin-top: 5%;
|
||
}
|
||
</style>
|
||
|
||
--}}
|
||
<ul class="nav nav-sm nav-tabs nav-justified tabs-alt mb-3" id="top-nav-quick-jump">
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingInfo">
|
||
Kunde
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingLead">
|
||
Anfrage
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingBooking">
|
||
Buchung
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingMyJack">
|
||
MyJack
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingPrice">
|
||
Preis
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingOrganisation">
|
||
Organisation
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingMails">
|
||
E-Mails
|
||
<span class="badge badge-primary">{{$booking->customer_mails->count()}}</span>
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="javascript:void(0)" data-collapse="#collapseBookingFiles">
|
||
PDF Dateien
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
|
||
|
||
|
||
|
||
{!! Form::open(['url' => route('booking_detail', [$id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
|
||
|
||
<input type="hidden" name="id" id="id" value="{{$id}}">
|
||
|
||
<!-- Info -->
|
||
<div class="card mb-2 border-primary">
|
||
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingInfo" aria-expanded="false" aria-controls="collapseBookingInfo">
|
||
<strong style="line-height: 1.6em">Kunde</strong>
|
||
</h6>
|
||
<div class="collapse" id="collapseBookingInfo">
|
||
<div class="card-body row">
|
||
@if($booking->customer->count())
|
||
<div class="form-group col-sm-6">
|
||
<label class="form-label" for="customer_id">{{ __('Kunden ID') }}</label>
|
||
<div class="input-group">
|
||
<div class="input-group-prepend">
|
||
<span class="input-group-text">
|
||
<a class="text-primary" href="{{route('customer_detail', [$booking->customer->id])}}"><i class="fa fa-edit"></i></a></span>
|
||
</div>
|
||
{{ Form::text('customer[id]', $booking->customer->id, array('placeholder'=>__('Kunden ID'), 'class'=>'form-control', 'id'=>'customer_id', 'readonly')) }}
|
||
</div>
|
||
</div>
|
||
<div class="form-group col-sm-6">
|
||
<label class="form-label" for="customer_email">{{ __('E-Mail') }}</label>
|
||
{{ Form::text('customer[email]', $booking->customer->email, array('placeholder'=>__('E-Mail'), 'class'=>'form-control', 'id'=>'customer_email', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6">
|
||
<label class="form-label" for="customer_firstname">{{ __('Vorname') }}</label>
|
||
{{ Form::text('customer[firstname]', $booking->customer->firstname, array('placeholder'=>__('Vorname'), 'class'=>'form-control', 'id'=>'customer_firstname', 'readonly')) }}
|
||
</div>
|
||
|
||
<div class="form-group col-sm-6">
|
||
<label class="form-label" for="customer_name">{{ __('Nachname') }}</label>
|
||
{{ Form::text('customer[name]', $booking->customer->name, array('placeholder'=>__('Nachname'), 'class'=>'form-control', 'id'=>'customer_name', 'readonly')) }}
|
||
</div>
|
||
@endif
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Anfrage -->
|
||
<div class="card mb-2 border-primary">
|
||
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingLead" aria-expanded="false" aria-controls="collapseBookingLead">
|
||
<strong style="line-height: 1.6em">Anfrage</strong>
|
||
</h6>
|
||
<div class="collapse" id="collapseBookingLead">
|
||
<div class="card-body row">
|
||
@if($booking->lead->count())
|
||
<div class="form-group col-sm-6">
|
||
<label class="form-label" for="lead_id">{{ __('Anfrage ID') }}</label>
|
||
<div class="input-group">
|
||
<div class="input-group-prepend">
|
||
<span class="input-group-text">
|
||
<a class="text-primary" href="{{route('lead_detail', [$booking->lead->id])}}"><i class="fa fa-edit"></i></a></span>
|
||
</div>
|
||
{{ Form::text('lead[id]', $booking->lead->id, array('placeholder'=>__('Anfrage ID'), 'class'=>'form-control', 'id'=>'lead_id', 'readonly')) }}
|
||
</div>
|
||
</div>
|
||
<div class="form-group col-sm-6">
|
||
<label class="form-label" for="lead_status_id">{{ __('Status') }}</label>
|
||
{{ Form::text('lead[status_id]', $booking->lead->status ? $booking->lead->status->name : '', array('placeholder'=>__('Status'), 'class'=>'form-control', 'id'=>'lead_status_id', 'readonly')) }}
|
||
</div>
|
||
|
||
<div class="form-group col-sm-6">
|
||
<label class="custom-control custom-checkbox mt-2">
|
||
{!! Form::checkbox('lead[is_rebook]', 1, $booking->lead->is_rebook, ['class'=>'custom-control-input', 'readonly']) !!}
|
||
<span class="custom-control-label">{{__('Umbuchung abgeschlossen')}}</span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="form-group col-sm-6">
|
||
<label class="custom-control custom-checkbox mt-2">
|
||
{!! Form::checkbox('lead[is_closed]', 1, $booking->lead->is_closed, ['class'=>'custom-control-input', 'readonly']) !!}
|
||
<span class="custom-control-label">{{__('Vorgang abgeschlossen')}}</span>
|
||
</label>
|
||
</div>
|
||
@endif
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Buchung -->
|
||
<div class="card mb-2">
|
||
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingBooking" aria-expanded="false" aria-controls="collapseBookingBooking">
|
||
<strong style="line-height: 1.6em">Buchung</strong>
|
||
</h6>
|
||
<div class="collapse" id="collapseBookingBooking">
|
||
|
||
<div class="card-body row">
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="sf_guard_user_id">{{ __('Sachbearbeiter') }}</label>
|
||
{{ Form::text('sf_guard_user_id', $booking->sf_guard_user->first_name." ".$booking->sf_guard_user->last_name, array('placeholder'=>__('Sachbearbeiter'), 'class'=>'form-control', 'id'=>'sf_guard_user_id', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="booking_date">{{ __('Buchungsdatum') }}</label>
|
||
{{ Form::text('booking_date', _format_date($booking->booking_date), array('placeholder'=>__('Buchungsdatum'), 'class'=>'form-control', 'id'=>'booking_date', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="travel_country_id">{{ __('Reiseland') }}</label>
|
||
{{ Form::text('travel_country_id', $booking->travel_country ? $booking->travel_country->name : '', array('placeholder'=>__('Reiseland'), 'class'=>'form-control', 'id'=>'travel_country_id', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="travel_number">{{ __('Reisenummer') }}</label>
|
||
{{ Form::text('travel_number', $booking->travel_number, array('placeholder'=>__('Reisenummer'), 'class'=>'form-control', 'id'=>'travel_number', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="travelagenda_id">{{ __('Reiseprogramm') }}</label>
|
||
{{ Form::text('travelagenda_id', $booking->travel_agenda ? $booking->travel_agenda->name : '', array('placeholder'=>__('Reiseprogramm'), 'class'=>'form-control', 'id'=>'travelagenda_id', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="travel_category_id">{{ __('Reiseart') }}</label>
|
||
{{ Form::text('travel_category_id', $booking->travel_category ? $booking->travel_category->name : '', array('placeholder'=>__('Reiseart'), 'class'=>'form-control', 'id'=>'travel_category_id', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="start_date">{{ __('Aufenthalt vom') }}</label>
|
||
{{ Form::text('start_date', _format_date($booking->start_date), array('placeholder'=>__('Aufenthalt vom'), 'class'=>'form-control', 'id'=>'start_date', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="end_date">{{ __('Aufenthalt bis') }}</label>
|
||
{{ Form::text('end_date', _format_date($booking->end_date), array('placeholder'=>__('Aufenthalt bis'), 'class'=>'form-control', 'id'=>'end_date', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="title">{{ __('Reisetitel') }}</label>
|
||
{{ Form::text('title', $booking->title, array('placeholder'=>__('Reisetitel'), 'class'=>'form-control', 'id'=>'title', 'readonly')) }}
|
||
</div>
|
||
<div class="col-12">
|
||
<hr>
|
||
</div>
|
||
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="paying_out">{{ __('K-Wunsch') }}</label>
|
||
{{ Form::text('paying_out', $booking->getPayingOutType(), array('placeholder'=>__('K-Wunsch'), 'class'=>'form-control', 'id'=>'paying_out', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="paying_out_status">{{ __('KW-Status') }}</label>
|
||
{{ Form::text('paying_out_status', $booking->getPayingOutStatusType(), array('placeholder'=>__('KW-Status'), 'class'=>'form-control', 'id'=>'paying_out_status', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="refund">{{ __('Refund') }}</label>
|
||
{{ Form::text('refund', $booking->getRefundType(), array('placeholder'=>__('Refund'), 'class'=>'form-control', 'id'=>'refund', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="refund_date">{{ __('Refund Datum') }}</label>
|
||
{{ Form::text('refund_date', _format_date($booking->refund_date), array('placeholder'=>__('Refund Datum'), 'class'=>'form-control', 'id'=>'refund_date', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="xx_tkt">{{ __('XX TKT') }}</label>
|
||
{{ Form::text('xx_tkt', $booking->getXxTktType(), array('placeholder'=>__('XX TKT'), 'class'=>'form-control', 'id'=>'xx_tkt', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-6 col-md-4">
|
||
<label class="form-label" for="xx_tkt_date">{{ __('XX TKT Datum') }}</label>
|
||
{{ Form::text('xx_tkt_date', _format_date($booking->xx_tkt_date), array('placeholder'=>__('XX TKT Datum'), 'class'=>'form-control', 'id'=>'xx_tkt_date', 'readonly')) }}
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- MyJack -->
|
||
<div class="card mb-2">
|
||
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingMyJack" aria-expanded="false" aria-controls="collapseBookingMyJack">
|
||
<strong style="line-height: 1.6em">MyJack</strong>
|
||
</h6>
|
||
<div class="collapse" id="collapseBookingMyJack">
|
||
|
||
<div class="card-body row">
|
||
<div class="form-group col-sm-4">
|
||
<label class="form-label" for="ev_number">{{ __('EV Nummer') }}</label>
|
||
{{ Form::text('ev_number', $booking->ev_number, array('placeholder'=>__('EV Nummer'), 'class'=>'form-control', 'id'=>'ev_number', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-4">
|
||
<label class="form-label" for="booking_konto">{{ __('Konto') }}</label>
|
||
{{ Form::text('booking_konto', 4011, array('placeholder'=>__('Konto'), 'class'=>'form-control', 'id'=>'booking_konto', 'readonly')) }}
|
||
</div>
|
||
<div class="form-group col-sm-4">
|
||
<label class="form-label" for="merlin_order_number">{{ __('MyJack Nr.') }}</label>
|
||
{{ Form::text('merlin_order_number', $booking->merlin_order_number, array('placeholder'=>__('MyJack Nr.'), 'class'=>'form-control', 'id'=>'merlin_order_number', 'readonly')) }}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Preis -->
|
||
<div class="card mb-2">
|
||
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingPrice" aria-expanded="false" aria-controls="collapseBookingPrice">
|
||
<strong style="line-height: 1.6em">Preis</strong>
|
||
</h6>
|
||
<div class="collapse" id="collapseBookingPrice">
|
||
|
||
<div class="card-body row">
|
||
<div class="form-group col-sm-6">
|
||
<label class="form-label" for="price">{{ __('Gesamtpreis Organisation') }}</label>
|
||
<div class="input-group">
|
||
<div class="input-group-prepend">
|
||
<span class="input-group-text">€</span>
|
||
</div>
|
||
{{ Form::text('price', $booking->price, array('placeholder'=>__('Gesamtpreis'), 'class'=>'form-control', 'id'=>'price', 'readonly')) }}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{{--
|
||
<div class="text-left mt-3">
|
||
<button type="submit" name="action" value="saveAll" class="btn btn-submit">{{ __('save changes') }}</button>
|
||
<a href="{{route('bookings')}}" class="btn btn-default">{{ __('zur Übersicht') }}</a>
|
||
<a href="{{ make_old_url('/index.php/booking/'.$booking->id.'/edit') }}" class="btn btn-default float-right">{{ __('zurück ins CRM v2') }}</a>
|
||
</div>
|
||
--}}
|
||
<!-- Organisation -->
|
||
<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">
|
||
<strong style="line-height: 1.6em">Organisation</strong>
|
||
</h6>
|
||
<div class="collapse" id="collapseBookingOrganisation">
|
||
<div class="card-body px-0">
|
||
@if($booking->new_drafts )
|
||
|
||
@php($i = 1)
|
||
<div class="text-right mb-2 pr-2">
|
||
<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><br>
|
||
<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="table-responsive mb-4" style="overflow: visible">
|
||
<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">
|
||
<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>
|
||
<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, 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>
|
||
<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>
|
||
<td>
|
||
<label class="custom-control custom-checkbox mt-2" style="margin-right: 20px;">
|
||
{!! 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">{{__('in PDF')}}</span>
|
||
</label>
|
||
</td>
|
||
|
||
</tr>
|
||
</tbody>
|
||
@endforeach
|
||
</table>
|
||
</div>
|
||
|
||
<div class="float-right pr-2">
|
||
<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>
|
||
</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>
|
||
<a href="{{route('bookings')}}" class="btn btn-sm btn-default">{{ __('zur Übersicht') }}</a>
|
||
</div>
|
||
@endif
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{!! Form::close() !!}
|
||
|
||
<div class="card mb-2">
|
||
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingMails" aria-expanded="true" aria-controls="collapseBookingMails">
|
||
<strong style="line-height: 1.6em">E-Mails</strong>
|
||
</h6>
|
||
<div class="collapse show" id="collapseBookingMails">
|
||
<div class="container-fluid d-flex align-items-stretch flex-grow-1 p-0">
|
||
|
||
<!-- `.messages-wrapper` fills all available space of container -->
|
||
<div class="messages-wrapper">
|
||
<!-- Messages sidebox -->
|
||
<div class="messages-sidebox messages-scroll bg-body border-right">
|
||
|
||
<div class="py-3 px-4">
|
||
<div class="media align-items-center">
|
||
<div class="media-body text-center">
|
||
<button type="button" class="btn btn-sm btn-secondary mb-3 btn-compare-customer-mails" data-toggle="modal"
|
||
data-target="#modals-load-content"
|
||
data-id="new-send"
|
||
data-model="customerMail"
|
||
data-action="new-customer-mail"
|
||
data-url="{{route('customer_mail_send_mail')}}"
|
||
data-redirect="back"
|
||
data-booking_id="{{$booking->id}}"
|
||
data-customer_mail_dir="0"
|
||
data-customer_mail_country="0"
|
||
data-route="{{ route('booking_modal_load') }}"><i class="ion ion-md-mail-open"></i> E-Mail schreiben</button>
|
||
|
||
<button type="button" class="btn btn-sm btn-next btn-compare-customer-mails" data-toggle="modal"
|
||
data-target="#modals-load-content"
|
||
data-id="new-save"
|
||
data-model="customerMail"
|
||
data-action="reply-customer-mail"
|
||
data-url="{{route('customer_mail_reply_mail')}}"
|
||
data-redirect="back"
|
||
data-booking_id="{{$booking->id}}"
|
||
data-customer_mail_dir="0"
|
||
data-customer_mail_country="0"
|
||
data-route="{{ route('booking_modal_load') }}"><i class="ion ion-md-mail-unread"></i> Antwort speichern</button>
|
||
</div>
|
||
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block text-muted text-large font-weight-light pl-4">×</a>
|
||
</div>
|
||
</div>
|
||
<hr class="border-light mx-4 mt-0 mb-4">
|
||
|
||
<style>
|
||
.sidebox-nav-item {
|
||
color: #a3a4a6 !important;
|
||
}
|
||
.sidebox-nav-item[href]:hover,
|
||
.sidebox-nav-item[href]:focus {
|
||
color: #8c8e90 !important;
|
||
}
|
||
.sidebox-nav-item.active .item {
|
||
color: #4E5155 !important;
|
||
font-weight: 700 !important;
|
||
}
|
||
</style>
|
||
<!-- Mail boxes -->
|
||
|
||
@foreach($booking::$customer_mail_dirs as $dir_id => $customer_mail_dir)
|
||
|
||
@php($badge = $dir_id === 0 ? "badge-primary" : "badge-outline-primary")
|
||
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center py-2 px-4 sidebox-nav-item @if($dir_id === 0) active @endif"
|
||
data-dir="{{$dir_id}}" data-country="0" data-icon="{{$customer_mail_dir['icon']}}" data-name="{{$customer_mail_dir['name']}}">
|
||
<div class="item">
|
||
<i class="ion {{$customer_mail_dir['icon']}}"></i> {{$customer_mail_dir['name']}}
|
||
</div>
|
||
<div class="badge {{$badge}}">{{$booking->countCustomerMailsBy($dir_id)}}</div>
|
||
</a>
|
||
@if($dir_id === 1 && $booking->travel_country)
|
||
@foreach($booking->travel_country->getCountryLands() as $id => $name)
|
||
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center py-2 px-4 sidebox-nav-item"
|
||
data-dir="{{$dir_id}}" data-country="{{$id}}" data-icon="{{$customer_mail_dir['icon']}}" data-name="{{$name}}">
|
||
<div class="item pl-2">
|
||
<i class="ion {{$customer_mail_dir['icon']}}"></i> {{$name}}
|
||
</div>
|
||
<div class="badge {{$badge}}">{{$booking->countCustomerMailsBy($dir_id, $id)}}</div>
|
||
</a>
|
||
@endforeach
|
||
@endif
|
||
@endforeach
|
||
<hr class="border-light m-4">
|
||
</div>
|
||
<!-- / Messages sidebox -->
|
||
|
||
<!-- Messages content wrapper -->
|
||
<div class="d-flex flex-column w-100">
|
||
<!-- Header -->
|
||
<div class="flex-grow-0">
|
||
<h4 class="media align-items-center font-weight-bold container-p-x py-3 py-lg-4 m-0">
|
||
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block align-self-center text-muted px-3 mr-3"><i class="ion ion-md-more"></i></a>
|
||
<div class="media-body">
|
||
<i id="message-sidebox-title-icon" class="ion ion-ios-filing"></i> <span id="message-sidebox-title-name">Reisender</span>
|
||
</div>
|
||
<input type="text" class="form-control form-control-sm" placeholder="Suche ..." style="max-width: 10rem;" id="dataTableInputSearchField">
|
||
</h4>
|
||
<hr class="border-light m-0">
|
||
</div>
|
||
<!-- / Header -->
|
||
<style>
|
||
div.dataTables_info, div.dataTables_paginate {
|
||
padding: 10px;
|
||
}
|
||
</style>
|
||
<!-- Wrap `.messages-scroll` to properly position scroll area. Remove this wrapper if you don't need scroll -->
|
||
<div class="flex-grow-1 position-relative">
|
||
<!-- Remove `.messages-scroll` and add `.flex-grow-1` if you don't need scroll -->
|
||
<div class="messages-content flex-grow-1">
|
||
|
||
<div class="table-responsive" id="customer_mails_table">
|
||
<input type="hidden" name="booking_id" value="{{$booking->id}}">
|
||
<input type="hidden" name="customer_mail_dir" value="0">
|
||
<input type="hidden" name="customer_mail_country" value="">
|
||
|
||
<table id="datatables-customer-mails" class="table table-striped">
|
||
<thead>
|
||
<tr>
|
||
<th> </th>
|
||
{{-- <th>{{__('E-Mail')}}</th> --}}
|
||
<th>{{__('Betreff')}}</th>
|
||
<th>{{__('Datum')}}</th>
|
||
<th style="width: 100px">{{__('#')}}</th>
|
||
|
||
</tr>
|
||
</thead>
|
||
<tbody class="">
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
</div><!-- / .messages-content -->
|
||
</div>
|
||
</div>
|
||
</div><!-- / .messages-wrapper -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- Preis -->
|
||
<div class="card mb-2">
|
||
<h6 class="card-header bg-primary text-white py-2" data-toggle="collapse" data-target="#collapseBookingFiles" aria-expanded="false" aria-controls="collapseBookingFiles">
|
||
<strong style="line-height: 1.6em">PDF Dateien</strong>
|
||
</h6>
|
||
<div class="collapse" id="collapseBookingFiles">
|
||
|
||
@php($booking_files_count = 1)
|
||
<div class="card-body row">
|
||
<div class="table-responsive" id="booking_files_table">
|
||
<table class="table table-striped table-sm">
|
||
<thead>
|
||
<tr>
|
||
<th>#</th>
|
||
<th>Datei</th>
|
||
<th>Inhalt</th>
|
||
<th>Datum</th>
|
||
<th> </th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
|
||
@if($booking->booking_applications)
|
||
@foreach($booking->booking_applications as $booking_application)
|
||
<tr>
|
||
<th scope="row">{{$booking_files_count++}}</th>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['booking_application', $booking_application->id]) }}" target="_blank" class="badge badge-md badge-primary">
|
||
<i class="fa fa-file-pdf mr-1"></i> Reiseanmeldung
|
||
</a>
|
||
</td>
|
||
<td>
|
||
Gesamtpreis: {{ \App\Services\Util::_number_format($booking_application->total)}} €
|
||
</td>
|
||
<td>{{\App\Services\Util::_format_date($booking_application->updated_at, 'date')}}</td>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['booking_application', $booking_application->id, true]) }}" class="btn btn-xs btn-default"
|
||
title="Download" data-placement="left" rel="tooltip">
|
||
<i class="fa fa-download"></i>
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
@endforeach
|
||
@endif
|
||
|
||
@if($booking->booking_confirmations)
|
||
@foreach($booking->booking_confirmations as $booking_confirmation)
|
||
<tr>
|
||
<th scope="row">{{$booking_files_count++}}</th>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['booking_confirmation', $booking_confirmation->id]) }}" target="_blank" class="badge badge-md badge-success">
|
||
<i class="fa fa-file-pdf mr-1"></i> Reisebestätigung
|
||
</a>
|
||
</td>
|
||
<td>
|
||
Gesamtpreis: {{ \App\Services\Util::_number_format($booking_confirmation->total)}} € |
|
||
Anzahlung: {{ \App\Services\Util::_number_format($booking_confirmation->deposit)}} € |
|
||
Restzahlung: {{ \App\Services\Util::_number_format($booking_confirmation->final_payment)}} €
|
||
</td>
|
||
<td>{{\App\Services\Util::_format_date($booking_confirmation->updated_at, 'date')}}</td>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['booking_confirmation', $booking_confirmation->id, true]) }}" class="btn btn-xs btn-default"
|
||
title="Download" data-placement="left" rel="tooltip">
|
||
<i class="fa fa-download"></i>
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
@endforeach
|
||
@endif
|
||
|
||
@if($booking->booking_stornos)
|
||
@foreach($booking->booking_stornos as $booking_storno)
|
||
<tr>
|
||
<th scope="row">{{$booking_files_count++}}</th>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['booking_storno', $booking_storno->id]) }}" target="_blank" class="badge badge-md badge-danger">
|
||
<i class="fa fa-file-pdf mr-1"></i> Stornobestätigung
|
||
</a>
|
||
</td>
|
||
<td>
|
||
Stornobetrag: {{ \App\Services\Util::_number_format($booking_storno->total)}} €
|
||
</td>
|
||
<td>{{\App\Services\Util::_format_date($booking_storno->updated_at, 'date')}}</td>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['booking_storno', $booking_storno->id, true]) }}" class="btn btn-xs btn-default"
|
||
title="Download" data-placement="left" rel="tooltip">
|
||
<i class="fa fa-download"></i>
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
@endforeach
|
||
@endif
|
||
|
||
@if($booking->coupons)
|
||
@foreach($booking->coupons as $coupon)
|
||
<tr>
|
||
<th scope="row">{{$booking_files_count++}}</th>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['coupon', $coupon->id]) }}" target="_blank" class="badge badge-md badge-warning">
|
||
<i class="fa fa-file-pdf mr-1"></i> Gutschein {{$coupon->number}}
|
||
</a>
|
||
</td>
|
||
<td>
|
||
Wert: {{ \App\Services\Util::_number_format($coupon->value)}} € |
|
||
bis: {{\App\Services\Util::_format_date($coupon->valid_date, 'date')}} |
|
||
@if($coupon->is_redeemed) <i class="fa fa-check-circle text-success"></i> {{\App\Services\Util::_format_date($coupon->redeem_date, 'date')}} @else <i class="fa fa-times-circle text-danger"></i> @endif
|
||
</td>
|
||
<td>{{\App\Services\Util::_format_date($coupon->issue_date, 'date')}}</td>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['coupon', $coupon->id, true]) }}" class="btn btn-xs btn-default"
|
||
title="Download" data-placement="left" rel="tooltip">
|
||
<i class="fa fa-download"></i>
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
@endforeach
|
||
@endif
|
||
|
||
@if($booking->booking_vouchers)
|
||
@foreach($booking->booking_vouchers as $booking_voucher)
|
||
<tr>
|
||
<th scope="row">{{$booking_files_count++}}</th>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['booking_voucher', $booking_voucher->id]) }}" target="_blank" class="badge badge-md badge-dark">
|
||
<i class="fa fa-file-pdf mr-1"></i> Voucher-ID {{$booking_voucher->id}}
|
||
</a>
|
||
</td>
|
||
<td>
|
||
|
||
</td>
|
||
<td>{{\App\Services\Util::_format_date($booking_voucher->updated_at, 'date')}}</td>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['booking_vouchers', $booking_voucher->id, true]) }}" class="btn btn-xs btn-default"
|
||
title="Download" data-placement="left" rel="tooltip">
|
||
<i class="fa fa-download"></i>
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
@endforeach
|
||
@endif
|
||
|
||
@if($booking->insurance_certificates)
|
||
@foreach($booking->insurance_certificates as $insurance_certificate)
|
||
<tr>
|
||
<th scope="row">{{$booking_files_count++}}</th>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['insurance_certificate', $insurance_certificate->id]) }}" target="_blank" class="badge badge-md badge-next">
|
||
<i class="fa fa-file-pdf mr-1"></i> Sicherungsschein Nr. {{$insurance_certificate->internal_id}}
|
||
</a>
|
||
</td>
|
||
<td>
|
||
|
||
</td>
|
||
<td>{{\App\Services\Util::_format_date($insurance_certificate->updated_at, 'date')}}</td>
|
||
<td>
|
||
<a href="{{ route('customer_file_show', ['insurance_certificates', $insurance_certificate->id, true]) }}" class="btn btn-xs btn-default"
|
||
title="Download" data-placement="left" rel="tooltip">
|
||
<i class="fa fa-download"></i>
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
@endforeach
|
||
@endif
|
||
|
||
@if($booking->travel_insurances)
|
||
@foreach($booking->travel_insurances as $travel_insurances)
|
||
<tr>
|
||
<th scope="row">{{$booking_files_count++}}</th>
|
||
<td>
|
||
<i class="fa fa-info-circle mr-1"></i> Policennummer {{$travel_insurances->policy_number}}
|
||
</td>
|
||
<td>
|
||
Gesamtprämie: {{ \App\Services\Util::_number_format($travel_insurances->premium)}} €
|
||
</td>
|
||
<td>{{\App\Services\Util::_format_date($travel_insurances->updated_at, 'date')}}</td>
|
||
<td>
|
||
|
||
</td>
|
||
</tr>
|
||
@endforeach
|
||
@endif
|
||
|
||
|
||
|
||
</tbody>
|
||
</table>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="modal fade" id="modals-load-next">
|
||
<div class="modal-dialog modal-lg">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Modal template -->
|
||
<div class="modal fade" id="modals-change-travel-dates">
|
||
<div class="modal-dialog">
|
||
<form class="modal-content" action="{{ route('booking_action', ['change_travel_dates', $booking->id]) }}" method="post" onsubmit="return confirm('Datum wirklich ändern?');">
|
||
@csrf
|
||
<div class="modal-header">
|
||
<h5 class="modal-title">Reise verschieben</h5>
|
||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||
</div>
|
||
<div class="modal-body">
|
||
<div class="form-row mb-2">
|
||
<label for="">Neues Start-Datum von:</label>
|
||
<input type="text" class="form-control datepicker-base" name="change_travel_start_date" value="{{ \App\Services\Util::_format_date($booking->start_date)}}">
|
||
</div>
|
||
<p>Alle Einträge der Organisistion werden auf das neue Start-Datum angepasst.<br>
|
||
Neue Reiseanmeldung, Reisebestätigung vorerst im CRM v2 erstellen.</p>
|
||
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
|
||
<button type="submit" class="btn btn-primary">{{__('ändern')}}</button>
|
||
</div>
|
||
</form>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
$(document).ready(function() {
|
||
|
||
$('[rel="tooltip"]').tooltip({trigger: "hover"});
|
||
|
||
|
||
$('#top-nav-quick-jump .nav-link').on('click', function (e) {
|
||
e.preventDefault();
|
||
$('#top-nav-quick-jump .nav-link').removeClass('active');
|
||
$(this).addClass('active');
|
||
|
||
var collapse_id = $(this).data('collapse');
|
||
console.log(collapse_id);
|
||
$(collapse_id).collapse('show');
|
||
// animate
|
||
$('html, body').animate({
|
||
scrollTop: $(collapse_id).parent('.card').offset().top
|
||
}, 300, function(){
|
||
|
||
// when done, add hash to url
|
||
// (default click behaviour)
|
||
//window.location.hash = collapse_id;
|
||
});
|
||
|
||
});
|
||
|
||
var oTable = $('#datatables-customer-mails').DataTable({
|
||
"processing": true,
|
||
"serverSide": true,
|
||
"searching": false,
|
||
ajax: {
|
||
url: '{!! route( 'customer_mail_data_table' ) !!}',
|
||
data: function(d) {
|
||
d.booking_id = $('#customer_mails_table input[name=booking_id]').val();
|
||
d.customer_mail_dir = $('#customer_mails_table input[name=customer_mail_dir]').val();
|
||
d.customer_mail_country = $('#customer_mails_table input[name=customer_mail_country]').val();
|
||
d.data_table_search = $('#dataTableInputSearchField').val();
|
||
}
|
||
},
|
||
"columns": [
|
||
/* { data: 'checkbox', width: '10px', orderable: false, searchable: false}, */
|
||
{ data: 'important', width: '15px', searchable: false },
|
||
{ data: 'subject', name: 'subject', width: '', orderable: false, },
|
||
{ data: 'date', name: 'date', width: '' },
|
||
{ data: 'action', width: '100px', orderable: false, searchable: false},
|
||
],
|
||
"bLengthChange": false,
|
||
"iDisplayLength": 25,
|
||
"orderSequence": ["desc", "asc"],
|
||
"order": [[ 2, "desc" ]],
|
||
"language": {
|
||
"url": "/js/German.json"
|
||
},
|
||
"drawCallback": function( settings ) {
|
||
$('#datatables-customer-mails [rel="tooltip"]').tooltip({trigger: "hover"});
|
||
$('#datatables-customer-mails .customer-mail-ajax-action').on('click', function (event) {
|
||
ajax_object_action(event, $(this), callback_ajax);
|
||
});
|
||
}
|
||
});
|
||
|
||
$('.messages-wrapper .sidebox-nav-item').on('click', function (event) {
|
||
event.preventDefault();
|
||
if($(this).hasClass('active')){
|
||
return;
|
||
}
|
||
$('#customer_mails_table input[name=customer_mail_dir]').val($(this).data('dir'));
|
||
$('#customer_mails_table input[name=customer_mail_country]').val($(this).data('country'));
|
||
console.log($(this).data('country'));
|
||
if($(this).data('dir') <= 10){
|
||
$('.btn-compare-customer-mails').data('customer_mail_dir', $(this).data('dir'));
|
||
$('.btn-compare-customer-mails').data('customer_mail_country', $(this).data('country'));
|
||
$('.btn-compare-customer-mails').prop('disabled', false);
|
||
}else{
|
||
$('.btn-compare-customer-mails').prop('disabled', true);
|
||
}
|
||
oTable.draw();
|
||
$('.messages-wrapper .sidebox-nav-item').removeClass('active');
|
||
$(this).addClass('active');
|
||
$('#message-sidebox-title-icon').removeClass().addClass('fa ' + $(this).data('icon'));
|
||
$('#message-sidebox-title-name').html($(this).data('name'));
|
||
$('.messages-wrapper .sidebox-nav-item').find('.badge-primary').removeClass('badge-primary').addClass('badge-outline-primary');
|
||
$(this).find('.badge').removeClass('badge-outline-primary').addClass('badge-primary');
|
||
|
||
});
|
||
|
||
function callback_ajax(data) {
|
||
if(data.status === 'success'){
|
||
oTable.draw();
|
||
}
|
||
}
|
||
$('#dataTableInputSearchField').keyup(function(){
|
||
oTable.search($(this).val()).draw();
|
||
});
|
||
|
||
$.dragYScroll();
|
||
var sort_item_pos_number = function(){
|
||
var index = 1;
|
||
$('#table_dragula_tbody .draft_item_tbody').each(function () {
|
||
$(this).find('.item_pos_number').html(index);
|
||
$(this).data('rowPosition', index);
|
||
index++;
|
||
});
|
||
};
|
||
$(function() {
|
||
// Drag handle
|
||
var sortableItems = dragula([$('#table_dragula_tbody')[0]], {
|
||
moves: function (el, container, handle) {
|
||
return handle.classList.contains('handle');
|
||
}
|
||
});
|
||
sortableItems.on('dragend', function() {
|
||
//sort new
|
||
sort_item_pos_number();
|
||
});
|
||
});
|
||
|
||
$('table .move-up-btn').on('click', function () {
|
||
var thisRow = $(this).closest('tbody');
|
||
var prevRow = thisRow.prev();
|
||
if (prevRow.length) {
|
||
prevRow.before(thisRow);
|
||
sort_item_pos_number()
|
||
}
|
||
});
|
||
|
||
$('table .move-down-btn').on('click', function () {
|
||
var thisRow = $(this).closest('tbody');
|
||
var nextRow = thisRow.next();
|
||
if (nextRow.length) {
|
||
nextRow.after(thisRow);
|
||
sort_item_pos_number()
|
||
}
|
||
});
|
||
});
|
||
</script>
|
||
|
||
|
||
@endsection |