Dashboard: Arbeitsstunden-Widget für laufendes Jahr
- Zeigt Mitglieder erfüllt/offen, fehlende Stunden und Gesamtaufschlag - Hinweis und Link wenn keine Jahreseinstellungen hinterlegt
This commit is contained in:
@@ -781,7 +781,26 @@ class Admin {
|
||||
$meters_free = count( $this->meters->search( array( 'assignment' => 'free' ) ) );
|
||||
$meters_used = count( $this->meters->search( array( 'assignment' => 'assigned' ) ) );
|
||||
$tenants_total = count( $this->tenants->search() );
|
||||
$members_total = count( $this->assignments->get_member_users() );
|
||||
$all_members = $this->assignments->get_member_users();
|
||||
$members_total = count( $all_members );
|
||||
|
||||
// Arbeitsstunden laufendes Jahr
|
||||
$work_year = (int) current_time( 'Y' );
|
||||
$work_config = $this->work->get_year_config( $work_year );
|
||||
$work_summary = $this->work->get_member_summary( $work_year, $all_members );
|
||||
$members_ok = 0;
|
||||
$members_open = 0;
|
||||
$total_missing_h = 0.0;
|
||||
$total_surcharge = 0.0;
|
||||
foreach ( $work_summary as $ws ) {
|
||||
if ( $ws->missing_hours > 0 ) {
|
||||
$members_open++;
|
||||
$total_missing_h += $ws->missing_hours;
|
||||
$total_surcharge += $ws->surcharge;
|
||||
} else {
|
||||
$members_ok++;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<div class='wrap'>
|
||||
<h1><?php echo esc_html__( 'Kleingartenverwaltung', KGVVM_TEXT_DOMAIN ); ?></h1>
|
||||
@@ -814,6 +833,42 @@ class Admin {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php /* Arbeitsstunden-Widget */ ?>
|
||||
<div class='kgvvm-card'>
|
||||
<h2><?php echo esc_html( sprintf( __( 'Arbeitsstunden %d', KGVVM_TEXT_DOMAIN ), $work_year ) ); ?></h2>
|
||||
<?php if ( ! $work_config ) : ?>
|
||||
<p class='kgvvm-help'><?php echo esc_html__( 'Für das laufende Jahr wurden noch keine Jahreseinstellungen für Arbeitsstunden hinterlegt.', KGVVM_TEXT_DOMAIN ); ?>
|
||||
<a href='<?php echo esc_url( $this->admin_url( 'kgvvm-arbeit', array( 'year' => $work_year ) ) ); ?>'><?php echo esc_html__( 'Jetzt einrichten', KGVVM_TEXT_DOMAIN ); ?></a>
|
||||
</p>
|
||||
<?php else : ?>
|
||||
<div class='kgvvm-grid' style='margin-top:8px;'>
|
||||
<div class='kgvvm-card' style='background:#f0faf0;'>
|
||||
<h2 style='color:#2e7d32;'><?php echo esc_html( $members_ok ); ?></h2>
|
||||
<p><?php echo esc_html__( 'Mitglieder erfüllt', KGVVM_TEXT_DOMAIN ); ?></p>
|
||||
</div>
|
||||
<div class='kgvvm-card' style='background:#fff4f4;'>
|
||||
<h2 style='color:#c00;'><?php echo esc_html( $members_open ); ?></h2>
|
||||
<p><?php echo esc_html__( 'Mitglieder mit offenen Stunden', KGVVM_TEXT_DOMAIN ); ?></p>
|
||||
</div>
|
||||
<div class='kgvvm-card' style='background:#fff4f4;'>
|
||||
<h2 style='color:#c00;'><?php echo esc_html( number_format_i18n( $total_missing_h, 2 ) ); ?> Std.</h2>
|
||||
<p><?php echo esc_html__( 'Fehlende Stunden gesamt', KGVVM_TEXT_DOMAIN ); ?></p>
|
||||
</div>
|
||||
<div class='kgvvm-card' style='background:#fff4f4;'>
|
||||
<h2 style='color:#c00;'><?php echo esc_html( $this->format_currency( $total_surcharge ) ); ?></h2>
|
||||
<p><?php echo esc_html__( 'Aufschlag gesamt (Jahresrechnung)', KGVVM_TEXT_DOMAIN ); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<?php if ( $members_open > 0 ) : ?>
|
||||
<p style='margin-top:8px;'>
|
||||
<a href='<?php echo esc_url( $this->admin_url( 'kgvvm-arbeit', array( 'year' => $work_year, 'tab' => 'summary' ) ) ); ?>' class='button button-secondary'>
|
||||
<?php echo esc_html__( 'Mitgliederübersicht aufrufen', KGVVM_TEXT_DOMAIN ); ?>
|
||||
</a>
|
||||
</p>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class='kgvvm-card'>
|
||||
<h2><?php echo esc_html__( 'Fachmodell', KGVVM_TEXT_DOMAIN ); ?></h2>
|
||||
<p><?php echo esc_html__( 'Das Plugin verwendet eigene Datenbanktabellen statt Custom Post Types, weil das Fachmodell stark relational ist: Sparten, Parzellen, Zähler, Pächter und Zuordnungen müssen performant gefiltert, eindeutig verknüpft und später um Zählerstände, Verträge oder Umlagen erweitert werden können.', KGVVM_TEXT_DOMAIN ); ?></p>
|
||||
|
||||
Reference in New Issue
Block a user