public static function get_user_startdaty() { return date('d', time_user::get_user_starttime()); }
include_once './include/class_template.php'; include_once './include/class_time.php'; include_once './include/class_month.php'; include_once './include/class_jahr.php'; include_once './include/class_feiertage.php'; include_once './include/class_filehandle.php'; include_once './include/class_rapport.php'; include_once './include/class_show.php'; include_once './include/class_settings.php'; include "./include/time_funktionen.php"; $_users = new time_filehandle("./Data/", "users.txt", ";"); $_groups = new time_filehandle("./Data/", "group.txt", ";"); $_settings = new time_settings(); $_time = new time(); $_time->set_monatsname($_settings->_array[11][1]); $_user = new time_user(); $_user->load_data_session(); $_absenz = new time_absenz($_user->_ordnerpfad, $_time->_jahr); $_monat = new time_month($_settings->_array[12][1], $_time->_letzterTag, $_user->_ordnerpfad, $_time->_jahr, $_time->_monat, $_user->_arbeitstage, $_user->_feiertage, $_user->_SollZeitProTag, $_user->_BeginnDerZeitrechnung, $_settings->_array[21][1], $_settings->_array[22][1], $_settings->_array[27][1]); $_jahr = new time_jahr($_user->_ordnerpfad, 0, $_user->_BeginnDerZeitrechnung, $_user->_Stunden_uebertrag, $_user->_Ferienguthaben_uebertrag, $_user->_Ferien_pro_Jahr, $_user->_Vorholzeit_pro_Jahr, $_user->_modell, $_time->_timestamp); // ---------------------------------------------------------------------------------------------- // Controller action - Handling // ---------------------------------------------------------------------------------------------- $_action = ""; if (isset($_GET['action'])) { $_action = $_GET['action']; } switch ($_action) { case "monat": get_statistik(); break;
} // Absenzeintrag anzeigen $_text = ""; $z = 0; if ($_user_absenzen) { foreach ($_user_absenzen as $_eintrag) { $_eintrag = explode(";", $_eintrag); if ($_eintrag[0] == $_monat->_MonatsArray[$i][0]) { $_text = $_eintrag[1]; } $z++; } } //Arbeitstag, falls nein Wochenende anzeigen $_arbeitstag = explode(";", $_userdaten_tmp[7]); $zeiten = time_user::get_user_stempelzeiten($string[0], $_time->_jahr, $_time->_monat, $i); if ($_arbeitstag[$_monat->_MonatsArray[$i][2]] == 0 or $_monat->_MonatsArray[$i][2] == 6 or $_monat->_MonatsArray[$i][5] >= 0) { echo ' class="td_background_wochenende"'; } elseif ($_text) { echo ' class="td_background_info"'; } else { $_prozent = $_arbeitstag[$_monat->_MonatsArray[$i][2]]; if ($_prozent <= 0.5) { echo ' class="td_background_tag50"'; } elseif (count($zeiten)) { // Mitarbeiter war Anwesend, es hat Stempelzeiten echo ' class="alert alert-success"'; } else { echo ' class="td_background_tag"'; } }
function erstelle_neu($_drucktime) { global $_user; global $_time; global $_settings; global $_absenz; global $_month; //Daten für die Anzeige $_sum = array(); if ($_drucktime) { $tmp_jahr = date("Y", time()); $tmp_monat = date("n", time()) - 1; if ($tmp_monat == 0) { $tmp_monat = 12; $tmp_jahr = $tmp_jahr - 1; } // Falls der Mitarbeiter Drucken darf ist das nur der letzte Monat $_monat = new time_month($_settings->_array[12][1], $_time->_letzterTag, $_user->_ordnerpfad, $tmp_jahr, $tmp_monat, $_user->_arbeitstage, $_user->_feiertage, $_user->_SollZeitProTag, $_user->_BeginnDerZeitrechnung, $_settings->_array[21][1], $_settings->_array[22][1], $_settings->_array[27][1]); $_jahr = new time_jahr($_user->_ordnerpfad, 0, $_user->_BeginnDerZeitrechnung, $_user->_Stunden_uebertrag, $_user->_Ferienguthaben_uebertrag, $_user->_Ferien_pro_Jahr, $_user->_Vorholzeit_pro_Jahr, $_user->_modell, $_drucktime); } else { $_monat = new time_month($_settings->_array[12][1], $_time->_letzterTag, $_user->_ordnerpfad, $_time->_jahr, $_time->_monat, $_user->_arbeitstage, $_user->_feiertage, $_user->_SollZeitProTag, $_user->_BeginnDerZeitrechnung, $_settings->_array[21][1], $_settings->_array[22][1], $_settings->_array[27][1]); $_jahr = new time_jahr($_user->_ordnerpfad, 0, $_user->_BeginnDerZeitrechnung, $_user->_Stunden_uebertrag, $_user->_Ferienguthaben_uebertrag, $_user->_Ferien_pro_Jahr, $_user->_Vorholzeit_pro_Jahr, $_user->_modell, $_time->_timestamp); } // PDF erstellen $pdf = new PDF(); // Schrift auf Fett stellen (B) $pdf->SetFont('Arial', 'B', 10); $pdf->SetDrawColor(150, 150, 150); $pdf->AddPage(); $pdf->SetFillColor(220, 220, 220); // ------------------------------------------------------------------------- // Mitarbeitername und Monat // ------------------------------------------------------------------------- $pdf->Cell(11, 6, '', 0, '', 'L'); $pdf->Cell(30, 6, 'Name : ', 0, 0, 'L', '1'); $pdf->Cell(59, 6, $_user->_name, 0, 0, 'L', '1'); $pdf->Cell(30, 6, 'Monat : ', 0, 0, 'L', '1'); $_monatname = iconv("UTF-8", "ISO-8859-1", $_time->_monatname); $pdf->Cell(59, 6, $_monatname . " " . $_time->_jahr, 0, 0, 'L', '1'); $pdf->Ln(); $pdf->Ln(1); // ------------------------------------------------------------------------- // Monatsveränderungen - Berechnungen und anzeigen // ------------------------------------------------------------------------- // Hintergrund weiss setzten und Schriftart Arial, normal, 10px $_ferien = 0; $_absenzenvorhanden = 0; $_ftxt = ""; $_ftxtA = ""; $_ftxtE = ""; foreach ($_monat->get_calc_absenz() as $werte) { if ($werte[1] == "F") { $_ferien = trim($werte[3]); if ($_ferien == 1) { $_ftxt = " Tag"; } else { $_ftxt = " Tage"; } } if ($werte[3] > 0 & $_absenzenvorhanden == 0) { $_absenzenvorhanden = 1; } } // $_ferienstart = $_jahr->_saldo_F + $_ferien; $_ferienstart = 0; $_ferienstart = round($_jahr->_saldo_F, 2); $_ferienstart = $_ferienstart + round($_ferien, 2); $_ferienstart = round($_ferienstart, 2); if ($_ferienstart == 1) { $_ftxtA = " Tag"; } elseif ($_ferienstart > 1) { $_ftxtA = " Tage"; } if ($_jahr->_saldo_F == 1) { $_ftxtE = " Tag"; } else { $_ftxtE = " Tage"; } $_saldo_start = 0; $_sum['zeit']['monat_ende'] = $_jahr->_saldo_t; $_sum['zeit']['vorholzeit'] = round($_jahr->_Vorholzeit_pro_Jahr / 12, 2); $ausz = new auszahlung($_time->_monat, $_time->_jahr); $wert = trim($ausz->get_auszahlung($_time->_monat, $_time->_jahr)); $_sum['zeit']['auszahlung'] = $wert; $_sum['zeit']['summe'] = $_monat->_SummeSaldoProMonat; $_sum['ferien']['monat_ende'] = $_jahr->_saldo_F; $_sum['ferien']['bezug'] = $_ferien; if ($_time->_jahr == time_user::get_user_startyear() && $_time->_monat == time_user::get_user_startmonth()) { $_sum['zeit']['monat_start'] = 0; $_sum['zeit']['uebertrag'] = $_user->_Stunden_uebertrag; $_sum['ferien']['uebertrag'] = $_user->_Ferienguthaben_uebertrag; } else { $_sum['zeit']['monat_start'] = $_sum['zeit']['monat_ende']; $_sum['zeit']['monat_start'] += $_sum['zeit']['vorholzeit']; $_sum['zeit']['monat_start'] += $_sum['zeit']['auszahlung']; $_sum['zeit']['monat_start'] -= $_sum['zeit']['summe']; $_sum['zeit']['uebertrag'] = 0; $_sum['ferien']['uebertrag'] = 0; } $_sum['ferien']['monat_start'] = $_sum['ferien']['monat_ende'] - $_sum['ferien']['uebertrag'] + $_sum['ferien']['bezug']; $pdf->SetFont('Arial', '', 10); //$pdf->Line(21, 44, 199, 44); //$pdf->Line(21, 64, 199, 64); $pdf->SetFillColor(240, 240, 240); $pdf->Cell(11, 6, '', 0, '', 'L'); $pdf->Cell(30, 6, 'Monatsanfang :', 0, 0, 'L', '1'); $pdf->Cell(30, 6, 'Zeit Saldo : ', 0, 0, 'L', '1'); $pdf->Cell(30, 6, $_sum['zeit']['monat_start'] . ' Std.', 0, 0, 'L', '1'); $pdf->Cell(30, 6, 'Feriensaldo : ', 0, 0, 'L', '1'); $pdf->Cell(30, 6, $_sum['ferien']['monat_start'] . $_ftxtA, 0, 0, 'L', '1'); $pdf->Cell(28, 6, '', 0, 0, 'L', '1'); $pdf->Ln(); if ($_sum['zeit']['uebertrag'] != 0 or $_sum['ferien']['uebertrag'] != 0) { $pdf->Cell(11, 6, '', 0, '', 'L'); $txt = iconv("UTF-8", "ISO-8859-1", 'Übertrag'); $pdf->Cell(30, 6, $txt . ' : ', 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(30, 6, $_sum['zeit']['uebertrag'] . " Std.", 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(30, 6, $_sum['ferien']['uebertrag'] . ' Tage', 0, 0, 'L'); $pdf->Cell(28, 6, '', 0, 0, 'L'); $pdf->Ln(); } $pdf->Cell(11, 6, '', 0, '', 'L'); $txt = iconv("UTF-8", "ISO-8859-1", 'Veränderung'); $pdf->Cell(30, 6, $txt . ' : ', 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(30, 6, $_sum['zeit']['summe'] . " Std.", 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(30, 6, '- ' . $_sum['ferien']['bezug'] . $_ftxt, 0, 0, 'L'); $pdf->Cell(28, 6, '', 0, 0, 'L'); $pdf->Ln(); if ($_sum['zeit']['auszahlung'] != 0) { $pdf->Cell(11, 6, '', 0, '', 'L'); $pdf->Cell(30, 6, 'Auszahlung : ', 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(30, 6, $_sum['zeit']['auszahlung'] . " Std.", 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(28, 6, '', 0, 0, 'L'); $pdf->Ln(); } if ($_sum['zeit']['vorholzeit'] != 0) { $pdf->Cell(11, 6, '', 0, '', 'L'); $pdf->Cell(30, 6, 'Vorholzeit : ', 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(30, 6, $_sum['zeit']['vorholzeit'] . " Std.", 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(30, 6, '', 0, 0, 'L'); $pdf->Cell(28, 6, '', 0, 0, 'L'); $pdf->Ln(); } $pdf->SetFont('Arial', 'B', 10); $pdf->Cell(11, 6, '', 0, '', 'L'); $pdf->Cell(30, 6, 'Monatsende :', 0, 0, 'L', '1'); $pdf->Cell(30, 6, '', 0, 0, 'L', '1'); $pdf->Cell(30, 6, $_sum['zeit']['monat_ende'] . " Std.", 0, 0, 'L', '1'); $pdf->Cell(30, 6, '', 0, 0, 'L', '1'); $pdf->Cell(30, 6, $_sum['ferien']['monat_ende'] . $_ftxtE, 0, 0, 'L', '1'); $pdf->Cell(28, 6, '', 0, 0, 'L', '1'); $pdf->Ln(); $pdf->Ln(2); $pdf->SetFont('Arial', '', 10); // ------------------------------------------------------------------------- // Monatstabelle // ------------------------------------------------------------------------- $pdf->SetFont('Arial', 'B', 10); $pdf->SetFillColor(200, 200, 200); $pdf->Cell(11, 5, '', 0, '', 'C'); $pdf->Cell(18, 5, "Datum", 1, '', 'C', '1'); //$pdf->Cell(7,5,"T",1,'','C', '1'); $pdf->Cell(72, 5, "Stempelzeiten", 1, '', 'L', '1'); $pdf->Cell(13, 5, "Summe", 1, '', 'C', '1'); $pdf->Cell(13, 5, "Saldo", 1, '', 'C', '1'); $pdf->Cell(14, 5, "Abw.", 1, '', 'L', '1'); $pdf->Cell(48, 5, "Bemerkung", 1, '', 'L', '1'); $pdf->Ln(); $pdf->SetFont('Arial', '', 10); $i = 0; foreach ($_monat->_MonatsArray as $zeile) { if ($i != 0) { if ($zeile[4] > 0 and $zeile[5] < 0) { $pdf->SetFillColor(255, 255, 255); } else { $pdf->SetFillColor(220, 220, 220); } $pdf->Cell(11, 5, '', 0, '', 'C'); $pdf->SetFont('Arial', 'B', 10); $pdf->Cell(11, 5, $zeile[1], 1, '', 'C', '1'); $pdf->SetFont('Arial', '', 10); $pdf->Cell(7, 5, $zeile[3], 1, '', 'C', '1'); $tmp = ""; $trenn = ""; for ($x = 0; $x < count($zeile[12]) and count($zeile[12]) > 0; $x++) { // Trennzeichen bei Stempelzeiten als $trenn if ($x == 0) { $trenn = ""; } elseif ($x % 2 and $x != 0) { $trenn = " - "; } else { $trenn = " / "; } $tmp = $tmp . $trenn; $tmp = $tmp . $zeile[12][$x]; } $pdf->Cell(72, 5, $tmp, 1, '', 'L', '1'); // Stempelzeiten in einer Schleife.... if ($zeile[13] == 0) { $zeile[13] = ""; } $pdf->Cell(13, 5, $zeile[13], 1, '', 'C', '1'); if ($zeile[20] == 0 && $zeile[13] == 0) { $zeile[20] = ""; } $pdf->Cell(13, 5, $zeile[20], 1, '', 'C', '1'); $pdf->Cell(14, 5, $zeile[14], 1, '', 'L', '1'); $_txt = iconv("UTF-8", "ISO-8859-1", $zeile[34]); $zeile[6] = iconv("UTF-8", "ISO-8859-1", $zeile[6]); $zeile[16] = iconv("UTF-8", "ISO-8859-1", $zeile[16]); $pdf->MultiCell(48, 5, $zeile[6] . $zeile[16] . $_txt, 1, '', 'L', '1'); //$pdf->MultiCell(48,5,'',1,'','L','1'); } $i++; } // -------------------------------------------------------------------------- // Summen in der Tabelle // -------------------------------------------------------------------------- $pdf->SetFont('Arial', 'B', 10); $pdf->SetFillColor(200, 200, 200); $pdf->Cell(11, 5, '', 0, '', 'C'); $pdf->Cell(18, 5, "", 1, '', 'C', '1'); $pdf->Cell(72, 5, "Sollstunden :" . $_monat->_SummeSollProMonat . " Std.", 1, '', 'L', '1'); $pdf->Cell(13, 5, $_monat->_SummeWorkProMonat, 1, '', 'C', '1'); $pdf->Cell(13, 5, $_monat->_SummeSaldoProMonat, 1, '', 'C', '1'); $pdf->Cell(14, 5, $_monat->_SummeAbsenzProMonat, 1, '', 'C', '1'); $pdf->Cell(48, 5, "", 1, '', 'C', '1'); $pdf->SetFillColor(255, 255, 255); $pdf->Ln(); $pdf->Ln(2); // ------------------------------------------------------------------------- // Absenzen anzeigen wenn Einträge vorhanden sind // ------------------------------------------------------------------------- if ($_absenzenvorhanden) { $pdf->SetFillColor(240, 240, 240); $pdf->Cell(11, 6, '', 0, '', 'L'); $pdf->Cell(30, 6, 'Absenzen:', 0, 0, 'L', '1'); $pdf->Cell(60, 6, "", 0, 0, 'L', '1', '1'); $pdf->Ln(); $pdf->SetFont('Arial', '', 10); // ------------------------------------------------------------------------- // Summen der Absenzen anzeigen (ab 0.87 erweiterbar pro Mitarbeiter) // ------------------------------------------------------------------------- foreach ($_monat->get_calc_absenz() as $werte) { if ($werte[3] != 0) { $pdf->Cell(11, 6, '', 0, '', 'L'); $pdf->Cell(30, 6, $werte[0] . " : ", 0, 0, 'L', '1'); $pdf->Cell(60, 6, $werte[3] . " Tage (" . $werte[1] . ")", 0, 0, 'L', '1'); $pdf->Ln(); } } $pdf->Ln(2); } // -------------------------------------------------------------------------- // Druckdatum und User anzeigen // -------------------------------------------------------------------------- $pdf->SetFont('Arial', '', 7); $pdf->SetFillColor(255, 255, 255); $datum = 'Print : '; $datum .= date("j", time()) . '.'; $datum .= date("n", time()) . '.'; $datum .= date("Y", time()); $datum .= ' / '; $datum .= date("H", time()) . ':'; $datum .= date("i", time()); $datum .= ' / von : '; $datum .= $_user->_name; $pdf->Cell(11, 5, '', 0, '', 'C'); $pdf->Cell(178, 5, $datum, 0, '', 'L'); $pdf->Ln(); //$pdf->_checkoutput(); $pdf->Output("./Data/" . $_user->_ordnerpfad . "/Dokumente/" . date("Y.m", $_time->_timestamp) . ".pdf"); }