// Anzahl der Tage im Monat // ---------------------------------------------------------------------------- $_temp_time = new time(); $_temp_time->set_timestamp(mktime(0, 0, 0, $i + 1, 1, $_time->_jahr)); $time_month = new time_month($_settings->_array[12][1], $_temp_time->_letzterTag, $_user->_ordnerpfad, $_time->_jahr, $i + 1, $_user->_arbeitstage, $_user->_feiertage, $_user->_SollZeitProTag, $_user->_BeginnDerZeitrechnung, $_settings->_array[21][1], $_settings->_array[22][1], $_settings->_array[27][1]); $_temp_time = NULL; $_data[0][1] += $time_month->_SummeSollProMonat; $_data[1][1] += $time_month->_SummeWorkProMonat; $_data[2][1] += $time_month->_SummeAbsenzProMonat; $_data[3][1] += $time_month->_SummeSaldoProMonat; $_data[4][1] += $_jahr->get_auszahlung($i + 1, $_time->_jahr); //------------------------------------------------------------------------- // Summen der Absenzen berechnen (ab 0.87 erweiterbar pro Mitarbeiter) //------------------------------------------------------------------------- if (!$_summe_calc_absenz) { $_summe_calc_absenz = $time_month->get_calc_absenz(); } else { $tp = 0; foreach ($time_month->get_calc_absenz() as $werte) { $_summe_calc_absenz[$tp][3] = $_summe_calc_absenz[$tp][3] + $werte[3]; $tp++; } } $_jahres_berechnung[$i] = $time_month; } for ($i = 0; $i < 12; $i++) { $_SummeSollProMonat += $_jahres_berechnung[$i]->_SummeSollProMonat; $_SummeWorkProMonat += $_jahres_berechnung[$i]->_SummeWorkProMonat; $_SummeAbsenzProMonat += $_jahres_berechnung[$i]->_SummeAbsenzProMonat; $_SummeSaldoProMonat += $_jahres_berechnung[$i]->_SummeSaldoProMonat; $_SummeStempelzeiten += $_jahres_berechnung[$i]->_SummeStempelzeiten;
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"); }