Zeiterfassung Update
* Fixed Header bei Auswertung und Verrechnung
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
|
||||
<link href="<?= self::getResourcePath() ?>assets/css/datatables-std.css?<?= date('U') ?>" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
<link href="<?= self::getResourcePath() ?>datatables/DataTables-2x/datatables.min.css" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
<style>
|
||||
.fa-arrow-right-from-bracket {
|
||||
margin-top: 3px;
|
||||
@@ -37,7 +39,7 @@
|
||||
|
||||
.filler-left {
|
||||
display: inline-block;
|
||||
margin-right: 10px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.filler-0 {
|
||||
@@ -72,7 +74,8 @@
|
||||
font-size: 12px;
|
||||
margin-left: 5px;
|
||||
position: absolute;
|
||||
top: 18px;
|
||||
top: 21px;
|
||||
right: 30px;
|
||||
|
||||
color: #008b0b;
|
||||
}
|
||||
@@ -91,7 +94,7 @@
|
||||
font-size: 12px;
|
||||
margin-left: 5px;
|
||||
position: absolute;
|
||||
top: 18px;
|
||||
top: 21px;
|
||||
right: 30px;
|
||||
color: #f1556c;
|
||||
}
|
||||
@@ -125,10 +128,10 @@
|
||||
</div>
|
||||
<table id="datatable" class="table table-hover table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<tr class="bg-white">
|
||||
<th class="text-center">Mitarbeiter/PersNr.</th>
|
||||
<th class="text-center">Leistungszeiten</th>
|
||||
<th class="text-center">Nichtleistungszeiten</th>
|
||||
<th class="text-center">LZ</th>
|
||||
<th class="text-center">NLZ</th>
|
||||
<th class="text-center">NLZ+LZ</th>
|
||||
<th class="text-center">Sollst.</th>
|
||||
<th class="text-center">Sollabweichung</th>
|
||||
@@ -200,20 +203,20 @@
|
||||
</td>
|
||||
<td data-order="<?= $timerecording->plushours_all ?>"
|
||||
data-transfer="<?= round($timerecording->transfer_plushours / 3600, 2) ?>"
|
||||
class="text-center transfer_plushours_info position-relative"><?= '<span class="filler-left">' . number_format(round($timerecording->plushours_all / 3600, 2), "2", ",", ".") ?></span><?= ($timerecording->plushours_all > 0) ? '<i class="fas fa-arrow-from-left change-difference" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->plushours_all / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?><?= ($timerecording->transfer_plushours) ? '<span class="sm-text-right ">' . round($timerecording->transfer_plushours * -1 / 3600, 2) . '</span>' : '' ?></td>
|
||||
class="text-center transfer_plushours_info position-relative"><?= '<span class="filler-left">' . number_format(round($timerecording->plushours_all / 3600, 2), "2", ",", ".") ?></span><?= ($timerecording->plushours_all > 0) ? '<i class="fas fa-arrow-from-left change-difference" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->plushours_all / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?><?= ($timerecording->transfer_plushours) ? '<span class="ignore-export sm-text-right ">' . round($timerecording->transfer_plushours * -1 / 3600, 2) . '</span>' : '' ?></td>
|
||||
<td data-transfer="<?= round($timerecording->transfer_overtime / 3600, 2) ?>"
|
||||
data-order="<?= $timerecording->timerecordingEmployee->overtime_now ?>"
|
||||
class="text-center position-relative transfer_overtime_info"><?= '<span class="filler-left">' . number_format(round($timerecording->timerecordingEmployee->overtime_now / 3600, 2), "2", ",", ".") ?></span><?= ($timerecording->timerecordingEmployee->overtime_now > 0) ? '<i class="fas fa-arrow-from-left change-overtime" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->timerecordingEmployee->overtime_now / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?><?= ($timerecording->transfer_overtime) ? '<span class=" ' . $overtimeclass . '">' . round($timerecording->transfer_overtime * -1 / 3600, 2) . '</span>' : '' ?></span></td>
|
||||
<?php if ($me->superexpertEnabled()): ?>
|
||||
<td data-order="<?= $timerecording->timerecordingEmployee->bpahours ?>"
|
||||
class="text-center position-relative"><?= ($timerecording->transfer_bpahours * -1 > 0) ? '<i class="fas fa-arrow-to-left change-bpa" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->transfer_bpahours * -1 / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?> <?= '<span class="filler-left">' . number_format(round($timerecording->timerecordingEmployee->bpahours / 3600, 2), "2", ",", ".") ?><?= ($timerecording->transfer_bpahours) ? '<span class="sm-text-left">' . (round($timerecording->transfer_bpahours * -1 / 3600, 2)) . '</span>' : '' ?> </span></td>
|
||||
class="text-center position-relative"><?= ($timerecording->transfer_bpahours * -1 > 0) ? '<i class="fas fa-arrow-to-left change-bpa" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->transfer_bpahours * -1 / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?> <?= '<span class="filler-left">' . number_format(round($timerecording->timerecordingEmployee->bpahours / 3600, 2), "2", ",", ".") ?><?= ($timerecording->transfer_bpahours) ? '<span class="ignore-export sm-text-left">' . (round($timerecording->transfer_bpahours * -1 / 3600, 2)) . '</span>' : '' ?> </span></td>
|
||||
<?php endif; ?>
|
||||
<td data-order="<?= $timerecording->plushours25 ?>"
|
||||
class="text-center position-relative"><?= ($timerecording->plushours25 > 0) ? '<i class="fas fa-arrow-to-left change-overtime-25" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->plushours25 / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?> <?= '<span class="filler-left">' . number_format(round($timerecording->plushours25 / 3600, 2), "2", ",", ".") ?></span></td>
|
||||
class="text-center position-relative "><?= ($timerecording->plushours25 > 0) ? '<i class="fas fa-arrow-to-left change-overtime-25" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->plushours25 / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?> <?= '<span class="filler-left">' . number_format(round($timerecording->plushours25 / 3600, 2), "2", ",", ".") ?></span></td>
|
||||
<td data-order="<?= $timerecording->overtime50free ?>"
|
||||
class="text-center position-relative"><?= ($timerecording->overtime50free > 0) ? '<i class="fas fa-arrow-to-left change-overtime-50" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->overtime50free / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?> <?= '<span class="filler-left">' . number_format(round($timerecording->overtime50free / 3600, 2), "2", ",", ".") ?></span></td>
|
||||
class="text-center position-relative "><?= ($timerecording->overtime50free > 0) ? '<i class="fas fa-arrow-to-left change-overtime-50" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->overtime50free / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?> <?= '<span class="filler-left">' . number_format(round($timerecording->overtime50free / 3600, 2), "2", ",", ".") ?></span></td>
|
||||
<td data-order="<?= $timerecording->overtime100free ?>"
|
||||
class="text-center position-relative"><?= ($timerecording->overtime100free > 0) ? '<i class="fas fa-arrow-to-left change-overtime-100" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->overtime100free / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?> <?= '<span class="filler-left">' . number_format(round($timerecording->overtime100free / 3600, 2), "2", ",", ".") ?></span></td>
|
||||
class="text-center position-relative "><?= ($timerecording->overtime100free > 0) ? '<i class="fas fa-arrow-to-left change-overtime-100" data-toggle="modal" data-target="#overtimeModal" data-hours="' . number_format(round($timerecording->overtime100free / 3600, 2), "2", ",", ".") . '" data-id="' . $timerecording->id . '"></i>' : '' ?> <?= '<span class="filler-left">' . number_format(round($timerecording->overtime100free / 3600, 2), "2", ",", ".") ?></span></td>
|
||||
<td data-order="<?= $timerecording->diet ?>"
|
||||
class="text-center"><?= number_format($timerecording->diet, 2, ',', '.') . " €" ?></td>
|
||||
<td class="text-center"><?= $timerecording->homeoffice ?> T</td>
|
||||
@@ -300,7 +303,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>datatables/DataTables-2x/datatables.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var hidesearch = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
||||
@@ -493,7 +497,8 @@
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>assets/js/datatables-std.js?<?= date('U') ?>"></script>
|
||||
src="<?= self::getResourcePath() ?>assets/js/datatables-std2.js?<?= date('U') ?>"></script>
|
||||
|
||||
|
||||
|
||||
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>
|
||||
@@ -2,6 +2,8 @@
|
||||
?>
|
||||
<link href="<?= self::getResourcePath() ?>assets/css/datatables-std.css?<?= date('U') ?>" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
<link href="<?= self::getResourcePath() ?>datatables/DataTables-2x/datatables.min.css" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
@@ -78,17 +80,19 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>datatables/DataTables-2x/datatables.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var hidesearch = [7];
|
||||
|
||||
var cstmbuttons=['<a href="<?= self::getUrl("TimerecordingBilling/Overview") ?>" class="btn btn-info margina">Monats Detail Übersicht</a>'];
|
||||
$(document).ready(function () {
|
||||
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>assets/js/datatables-std.js?<?= date('U') ?>"></script>
|
||||
src="<?= self::getResourcePath() ?>assets/js/datatables-std2.js?<?= date('U') ?>"></script>
|
||||
|
||||
|
||||
|
||||
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>
|
||||
134
Layout/default/TimerecordingBilling/Overview.php
Normal file
134
Layout/default/TimerecordingBilling/Overview.php
Normal file
@@ -0,0 +1,134 @@
|
||||
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/header.php");
|
||||
?>
|
||||
|
||||
|
||||
<link href="<?= self::getResourcePath() ?>assets/css/datatables-std.css?<?= date('U') ?>" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
<link href="<?= self::getResourcePath() ?>datatables/DataTables-2x/datatables.min.css" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="page-title-box">
|
||||
<div class="page-title-right">
|
||||
<ol class="breadcrumb m-0">
|
||||
<li class="breadcrumb-item"><a href="<?= self::getUrl("Dashboard") ?>"><?= MFAPPNAME_SLUG ?></a>
|
||||
</li>
|
||||
<li class="breadcrumb-item active">Monatsdetail Übersicht</li>
|
||||
</ol>
|
||||
</div>
|
||||
<h4 class="page-title">Zeiterfassung Monatsdetail Übersicht</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end page title -->
|
||||
<div id="demo_info"></div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="float-left">
|
||||
<h4 class="header-title">Übersicht aller Monate zum Monatsletzten</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table id="datatable" class="table table-hover table-sm">
|
||||
<thead>
|
||||
<tr class="bg-white">
|
||||
<th class="text-center">Monat</th>
|
||||
<th class="text-center">Mitarbeiter</th>
|
||||
<th class="text-center">LZ</th>
|
||||
<th class="text-center">NLZ</th>
|
||||
<th class="text-center">LZ + NLZ</th>
|
||||
<th class="text-center">Sollst.</th>
|
||||
<th class="text-center">Sollabweichung</th>
|
||||
<th class="text-center">Mehrstunden</th>
|
||||
<th class="text-center">Gutstunden</th>
|
||||
<?php if ($me->superexpertEnabled()): ?>
|
||||
<th class="text-center min-w-70">Black P. St.</th>
|
||||
<?php endif; ?>
|
||||
|
||||
</tr>
|
||||
<tr id="filterrow">
|
||||
<th class="text-center edit-width-large">Monat</th>
|
||||
<th class="text-center">Mitarbeiter</th>
|
||||
<th class="text-center"></th>
|
||||
<th class="text-center"></th>
|
||||
<th class="text-center"></th>
|
||||
<th class="text-center"></th>
|
||||
<th class="text-center"></th>
|
||||
<th class="text-center"></th>
|
||||
<th class="text-center"></th>
|
||||
<?php if ($me->superexpertEnabled()): ?>
|
||||
<th></th>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<?php foreach ($timerecordingbillingsemployees as $timerecordingbillingsemployee):
|
||||
$user = new User($timerecordingbillingsemployee->timerecordingEmployee->user->id);
|
||||
$employee_number = (string)$user->getFlag('employee_number');
|
||||
unset ($nlz);
|
||||
if ($timerecordingbillingsemployee->nlz) {
|
||||
$nlz_details = json_decode($timerecordingbillingsemployee->nlz, true);
|
||||
foreach ($nlz_details as $key => $nlz_detail) {
|
||||
if ($nlz_detail < 100) {
|
||||
$nlz .= $key . ": " . $nlz_detail . " Tag(e)<br>";
|
||||
} else {
|
||||
$nlz .= $key . ": " . round($nlz_detail / 3600, 2) . " Stunden<br>";
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$nlz = "";
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<td class="text-center"><?= $timerecordingbillingsemployee->timerecordingBilling->month ?></td>
|
||||
<td data-order="<?= $timerecordingbillingsemployee->timerecordingEmployee->user->name . $timerecordingbillingsemployee->timerecordingBilling->month ?>"><?= "(" . $employee_number . ") " . $timerecordingbillingsemployee->timerecordingEmployee->user->name ?></td>
|
||||
<td class="text-center"><?= number_format(round($timerecordingbillingsemployee->ishours / 3600, 2), "2", ",", ".") ?></td>
|
||||
<td class="text-center"><?= $nlz ?></td>
|
||||
<td class="text-center"><?= number_format(round($timerecordingbillingsemployee->ishourssum / 3600, 2), "2", ",", ".") ?></td>
|
||||
<td class="text-center"><?= number_format(round($timerecordingbillingsemployee->musthours / 3600, 2), "2", ",", ".") ?></td>
|
||||
<td class="text-center"><?= number_format(round(($timerecordingbillingsemployee->ishourssum - $timerecordingbillingsemployee->musthours) / 3600, 2), "2", ",", ".") ?></td>
|
||||
<td class="text-center"
|
||||
data-order="<?= $timerecordingbillingsemployee->plushours_all + $timerecordingbillingsemployee->transfer_plushours ?>"><?= number_format(round(($timerecordingbillingsemployee->plushours_all + $timerecordingbillingsemployee->transfer_plushours) / 3600, 2), "2", ",", ".") ?></td>
|
||||
<td class="text-center"
|
||||
data-order="<?= $timerecordingbillingsemployee->timerecordingEmployee->overtime_now + $timerecordingbillingsemployee->transfer_overtime ?>"><?= number_format(round(($timerecordingbillingsemployee->timerecordingEmployee->overtime_now + $timerecordingbillingsemployee->transfer_overtime) / 3600, 2), "2", ",", ".") ?></td>
|
||||
<?php if ($me->superexpertEnabled()): ?>
|
||||
<td class="text-center"
|
||||
data-order="<?= $timerecordingbillingsemployee->timerecordingEmployee->bpahours ?>"><?= number_format(round($timerecordingbillingsemployee->timerecordingEmployee->bpahours / 3600, 2), "2", ",", ".") ?></td>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>datatables/DataTables-2x/datatables.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var hidesearch = [2, 3, 4, 5, 6, 7, 8, 9];
|
||||
|
||||
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>assets/js/datatables-std2.js?<?= date('U') ?>"></script>
|
||||
|
||||
<?php include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/footer.php"); ?>
|
||||
@@ -44,8 +44,11 @@ $years[time() - 31536000] = date('Y', time() - 31536000);
|
||||
?>
|
||||
<link href="<?= self::getResourcePath() ?>assets/css/select2-cstm.css?<?= date('U') ?>" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
<link href="<?= self::getResourcePath() ?>datatables/DataTables-2x/datatables.min.css" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
<link href="<?= self::getResourcePath() ?>assets/css/datatables-std.css?<?= date('U') ?>" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
|
||||
<style>
|
||||
.edit-button {
|
||||
color: #007bff;
|
||||
@@ -343,33 +346,14 @@ $years[time() - 31536000] = date('Y', time() - 31536000);
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="col-lg-3">-->
|
||||
<!-- <div class="form-row">-->
|
||||
<!-- <div class="col text-center">-->
|
||||
<!-- <div class="input-group ">-->
|
||||
<!-- <label class="col-form-label form-control fixed-state"><span-->
|
||||
<!-- class="text-bold">Urlaubstage: </span><span id="holidays"-->
|
||||
<!-- class="ml-1 text-normal"></span></label>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col text-center">-->
|
||||
<!-- <div class="input-group ">-->
|
||||
<!-- <label class="col-form-label form-control fixed-state"><span-->
|
||||
<!-- class="text-bold">Gutzeit: </span><span-->
|
||||
<!-- id="plushours"-->
|
||||
<!-- class="ml-1 text-normal"></span></label>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
|
||||
|
||||
<table id="datatable" class="table table-hover table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<tr class="bg-white">
|
||||
<th style="min-width: 250px;" class="text-center text-nowrap ">Mitarbeiter</th>
|
||||
<th style="width: 200px;" class="text-center text-nowrap ">Datum</th>
|
||||
<th style="width: 200px;max-width: 200px;" class="text-center ">Datum</th>
|
||||
<th class="text-nowrap edit-width text-center">Von</th>
|
||||
<th class="text-nowrap edit-width text-center">Bis</th>
|
||||
<th class="text-nowrap edit-width text-center">Summe</th>
|
||||
@@ -398,7 +382,8 @@ $years[time() - 31536000] = date('Y', time() - 31536000);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>datatables/DataTables-2x/datatables.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
var hidesearch = [2, 3, 4, 7];
|
||||
var pageLength = 100;
|
||||
|
||||
Reference in New Issue
Block a user