23-01-2026

This commit is contained in:
Kevin Adametz 2026-01-23 17:35:23 +01:00
parent a939cd51ef
commit a8b395e20d
248 changed files with 29342 additions and 4805 deletions

View file

@ -6,12 +6,23 @@
Business Points
<div class="float-right">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
data-id="new"
data-action="add_user_sales_volume"
data-back="{{url()->current()}}"
data-route="{{ route('modal_load') }}"><span class="fa fa-plus-circle"></span> Points hinzufügen
</button>
<div class="d-flex">
<form action="{{ route('admin_business_points_recalculate') }}" method="POST" style="display: none;" id="recalculate-form" onsubmit="return confirmRecalculate();" class="inline-block">
@csrf
<input type="hidden" name="points_filter_member_id" id="recalc_member_id" value="">
<input type="hidden" name="points_filter_month" id="recalc_month" value="">
<input type="hidden" name="points_filter_year" id="recalc_year" value="">
<button type="submit" class="btn btn-sm btn-warning">
<span class="fa fa-refresh"></span> Punkte neu berechnen
</button>
</form> &nbsp;
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
data-id="new"
data-action="add_user_sales_volume"
data-back="{{url()->current()}}"
data-route="{{ route('modal_load') }}"><span class="fa fa-plus-circle"></span> Points hinzufügen
</button>
</div>
</div>
</h5>
@ -65,6 +76,25 @@
</div>
{!! Form::close() !!}
<!-- Summen-Anzeige -->
<div id="points-summary" style="display: none;" class="alert alert-info mx-4 mb-3">
<h6 class="mb-3"><strong>Monatssummen für ausgewählten Berater</strong></h6>
<div class="row">
<div class="col-md-4">
<strong>KP-Punkte (Eigene):</strong> <span id="sum-kp-points">0</span><br>
<small class="text-muted">Eigenumsatz: <span id="sum-kp-net">0</span> </small>
</div>
<div class="col-md-4">
<strong>TP-Punkte (Team):</strong> <span id="sum-tp-points">0</span><br>
<small class="text-muted">Shop: <span id="sum-shop-points">0</span> Punkte</small>
</div>
<div class="col-md-4">
<strong>Gesamtumsatz:</strong> <span id="sum-total-net">0</span> <br>
<small class="text-muted">Shop-Umsatz: <span id="sum-shop-net">0</span> </small>
</div>
</div>
</div>
<div class="card-datatable table-responsive pt-0">
<table class="datatables-style table table-striped table-bordered" id="datatable-invoice">
<thead>
@ -94,6 +124,68 @@
</div>
<script>
function toggleRecalculateButton() {
var memberId = $('select[name=points_filter_member_id]').val();
var month = $('select[name=points_filter_month]').val();
var year = $('select[name=points_filter_year]').val();
if (memberId && month && year) {
$('#recalc_member_id').val(memberId);
$('#recalc_month').val(month);
$('#recalc_year').val(year);
$('#recalculate-form').show();
loadSummary();
} else {
$('#recalculate-form').hide();
$('#points-summary').hide();
}
}
function loadSummary() {
var memberId = $('select[name=points_filter_member_id]').val();
var month = $('select[name=points_filter_month]').val();
var year = $('select[name=points_filter_year]').val();
if (!memberId || !month || !year) {
$('#points-summary').hide();
return;
}
$.ajax({
url: '{!! route('admin_business_points_summary') !!}',
type: 'GET',
data: {
points_filter_member_id: memberId,
points_filter_month: month,
points_filter_year: year
},
success: function(response) {
if (response.success && response.data) {
var data = response.data;
$('#sum-kp-points').text(data.total_KP_points.toLocaleString('de-DE'));
$('#sum-tp-points').text(data.total_TP_points.toLocaleString('de-DE'));
$('#sum-shop-points').text(data.month_shop_points.toLocaleString('de-DE'));
$('#sum-kp-net').text(data.month_total_net.toLocaleString('de-DE', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
$('#sum-shop-net').text(data.month_shop_total_net.toLocaleString('de-DE', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
$('#sum-total-net').text(data.total_net.toLocaleString('de-DE', {minimumFractionDigits: 2, maximumFractionDigits: 2}));
$('#points-summary').show();
} else {
$('#points-summary').hide();
}
},
error: function() {
$('#points-summary').hide();
}
});
}
function confirmRecalculate() {
var month = $('#recalc_month').val();
var year = $('#recalc_year').val();
var monthPadded = month.toString().padStart(2, '0');
return confirm('Möchten Sie die Punkte für den ausgewählten Berater im Monat ' + monthPadded + '/' + year + ' wirklich neu berechnen?');
}
$( document ).ready(function() {
var oTable = $('#datatable-invoice').DataTable({
"processing": true,
@ -132,13 +224,27 @@
"url": "/js/datatables-{{ \App::getLocale() }}.json"
}
});
// Toggle button on filter change
$('select.on_change_select').on('change', function(){
toggleRecalculateButton();
oTable.draw();
});
$('input.on_keyup_input').on('keyup', function(){
oTable.draw();
});
// Initial toggle on page load
toggleRecalculateButton();
// Reload summary after table draw completes
oTable.on('draw', function() {
var memberId = $('select[name=points_filter_member_id]').val();
if (memberId) {
loadSummary();
}
});
});
</script>
@endsection