Kalender, Terminliste, Terminformular und Terminzettel laufen ueber db_abfrage() mit Platzhaltern; das Anlegen einer mehrtaegigen Terminreihe liegt in einer Transaktion. Die Logik steckt jetzt in incs/termin.php, sites/termin*.php rufen sie nur noch auf. Dabei behoben: - SQL-Injektion ueber die Suchbegriffe der Terminliste, ueber die Mehrfachauswahl (Ankreuzfelder del<N>/erl<N> gingen roh in DELETE bzw. UPDATE), ueber die Wiedervorlage-Tage (INTERVAL $folgedays DAY) und ueber ?action=terminshow&id=... in maketerminarray(), maketerminadresse(), maketelnrn() und makegooglestring() - gespeichertes XSS: Beschreibung, Notiz, Termintyp, Ort, Kundenname und Mitarbeiterfarbe im Kalender, in der Terminliste und im Formular - "or $err=error(...)" stand innerhalb des Abfrage-Strings, dadurch wurden die Nebenzeilen einer Terminreihe beim Loeschen nie entfernt - die Abfrage zum Folgetermin las eine Spalte typ_id, die es in termin nicht gibt; Typ und Wiedervorlage fehlten deshalb beim Bearbeiten - ein Folgetermin wurde mit termtime='' und termdauer='' angelegt, ein Termin ohne Folgetermin mit followed_by='' - im strikten Modus Fehler - ein Termin ohne Datum landete auf dem 01.01.1970 und gab dabei "NICHTTERMINIERT!!" mitten in die Seite aus - die Ueberschneidungspruefung verglich ab dem zweiten Tag gegen das Ende des ersten Tages - eine unbekannte Registerkarte der Terminliste ergab ein leeres WHERE und damit einen SQL-Fehler; jetzt gilt die Standardansicht - terminshow.php pruefte den Typ mit = statt == - der Kalender haengt nicht mehr an der Locale de_DE (strftime) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2056 lines
60 KiB
PHP
2056 lines
60 KiB
PHP
<?php
|
|
|
|
require_once(__DIR__."/db.php");
|
|
require_once('tcpdf/tcpdf.php');
|
|
|
|
// Unicode-Schriften statt der eingebauten PDF-Schriften Times/Helvetica: Die kennen
|
|
// nur westeuropäische Zeichen, aus ř, ł, č usw. würde ein "?". FreeSerif und
|
|
// FreeSans (bei TCPDF dabei) sind im Schriftbild und in der Breite nahezu gleich.
|
|
define("PDF_SCHRIFT_SERIF", "freeserif");
|
|
define("PDF_SCHRIFT_SANS", "freesans");
|
|
|
|
// Temporäre PDFs und Vorschaubilder in temp/ werden beim Erzeugen neuer Dateien
|
|
// aufgeräumt, wenn sie älter sind als dies (Sekunden). Früher stand hier 20 -
|
|
// gemeint waren Minuten: Bei 20 Sekunden konnte ein PDF verschwinden, bevor der
|
|
// Browser es geladen hatte, sobald jemand anderes eins erzeugte.
|
|
define("PDF_TEMP_MAX_ALTER", 20 * 60);
|
|
function makerawPDF($ajax)
|
|
{
|
|
|
|
if($ajax)
|
|
define("PICPATH", "../pics/");
|
|
else
|
|
define("PICPATH", "./pics/");
|
|
//$pdf=new TCPDF();
|
|
//$fontname = $pdf->addTTFfont('../incs/font/arialuni.ttf', 'TrueTypeUnicode', '', 32);
|
|
//echo "newfont->".$fontname."<-newfont";
|
|
|
|
switch($_SESSION["firma"])
|
|
{
|
|
case "LSG Oberallgäu":
|
|
class PDF extends TCPDF
|
|
{
|
|
|
|
//Kopfzeile
|
|
public function Header()
|
|
{
|
|
global $picpath;
|
|
$this->SetDrawColor(150,150,150);
|
|
$this->line(0,93,5,93);
|
|
$this->line(0,205,5,205);
|
|
//Logo
|
|
$this->Image(PICPATH.'logolsg.png',0,0,210);
|
|
//Arial fett 15
|
|
$this->SetDrawColor(0,0,0);
|
|
//nach rechts gehen
|
|
//Zeilenumbruch
|
|
$this->Ln(50);
|
|
|
|
}
|
|
|
|
//Fusszeile
|
|
public function Footer()
|
|
{
|
|
global $picpath;
|
|
//Logo
|
|
//$this->Image(PICPATH."logo2.png",15,273,17);
|
|
//Position 1,5 cm von unten
|
|
$this->SetY(-16.5);
|
|
$linepos=$this->GetY();
|
|
$this->setX(30);
|
|
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
|
$this->SetTextColor(20,47,119);
|
|
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
|
$this->SetY(-16.3);
|
|
$this->setX(15);
|
|
//Arial fett 6
|
|
$this->SetFont(PDF_SCHRIFT_SANS,'B',7);
|
|
|
|
//Seitenzahl
|
|
$this->SetDrawColor(20,47,119);
|
|
$this->line(15,$linepos,195,$linepos);
|
|
$this->Cell(180,7,'Luftsportgemeinschaft Oberallgäu am Alpensegelflugplatz Agathazell e.V.',0,0,'C');
|
|
$this->Ln(3);
|
|
$this->setX(15);
|
|
$this->Cell(180,7,'Bankverbindung: Sparkasse Allgäu (BLZ 733 500 00) Konto-Nr. 320007032',0,0,'C');
|
|
$this->Ln(3);
|
|
$this->setX(15);
|
|
$this->Cell(180,7,'Steuernummer: 127/109/70511',0,0,'C');
|
|
$this->Ln(5.2);
|
|
$this->setX(15);
|
|
$this->Cell(180,7,'Vorstandschaft: 1.Vorstand Bernhard Göhl • 2.Vorstand Christian Schneider • Kassier Philipp Wagner',0,0,'C');
|
|
|
|
}
|
|
}
|
|
break;
|
|
case "Wagner Markisen":
|
|
class PDF extends TCPDF
|
|
{
|
|
|
|
//Kopfzeile
|
|
public function Header()
|
|
{
|
|
global $picpath;
|
|
$this->SetDrawColor(150,150,150);
|
|
$this->line(0,93,5,93);
|
|
$this->line(0,205,5,205);
|
|
//Logo
|
|
$this->Image(PICPATH.'logo1.png',0,0,210);
|
|
//Arial fett 15
|
|
$this->SetDrawColor(0,0,0);
|
|
//nach rechts gehen
|
|
//Zeilenumbruch
|
|
$this->Ln(50);
|
|
|
|
}
|
|
|
|
//Fusszeile
|
|
public function Footer()
|
|
{
|
|
global $picpath;
|
|
//Logo
|
|
$this->Image(PICPATH."logo2.png",15,268,17);
|
|
//Position 1,5 cm von unten
|
|
$this->SetY(-23);
|
|
$this->setX(30);
|
|
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
|
$this->SetTextColor(0,0,0);
|
|
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
|
$this->SetY(-19);
|
|
//Arial fett 6
|
|
$this->SetFont(PDF_SCHRIFT_SANS,'B',8);
|
|
$this->SetTextColor(124,124,138);
|
|
//Seitenzahl
|
|
$this->setX(15);
|
|
$this->Cell(200,7,'DIE GELIEFERTE WARE BLEIBT BIS ZUR VOLLSTÄNDIGEN BEZAHLUNG EIGENTUM DES HAUSES',0,0,'C');
|
|
$this->Ln(3.5);
|
|
$this->setX(5);
|
|
$this->Cell(80,7,'WAGNER MARKISEN GMBH · TEL. 08323-6863 · FAX: 08323-3755',0,0,'L');
|
|
$this->setX(97);
|
|
$this->Cell(120,7,'SPARKASSE ALLGÄU IBAN: DE63 7335 0000 0000 1065 26 · BIC: BYLADEM1ALG',0,0,'L');
|
|
$this->Ln(3);
|
|
$this->setX(5);
|
|
$this->Cell(80,7,'UST-ID. NR. DE811623391 · ST.-NR. 127/142/00117',0,0,'L');
|
|
$this->setX(97);
|
|
$this->Cell(120,7,'VR BANK KE-OA EG IBAN: DE16 7336 9920 0007 2328 29· BIC: GENODEF1SFO',0,0,'L');
|
|
|
|
$this->Ln(3);
|
|
$this->setX(5);
|
|
$this->Cell(80,7,'GESCHÄFTSFÜHRER: PHILIPP WAGNER',0,0,'L');
|
|
$this->setX(97);
|
|
$this->Cell(120,7,'VOBA IMMENSTADT IBAN: DE93 7339 2000 0000 4142 04 · BIC: GENODEF1IMV',0,0,'L');
|
|
$this->Ln(3);
|
|
$this->setX(5);
|
|
$this->Cell(80,7,'HRB-NR. 5098 KEMPTEN',0,0,'L');
|
|
|
|
|
|
}
|
|
}
|
|
break;
|
|
case "Ingenieurbüro Wagner":
|
|
class PDF extends TCPDF
|
|
{
|
|
|
|
//Kopfzeile
|
|
public function Header()
|
|
{
|
|
global $picpath;
|
|
$this->SetDrawColor(150,150,150);
|
|
$this->line(0,93,5,93);
|
|
$this->line(0,205,5,205);
|
|
//Logo
|
|
$this->Image(PICPATH.'logoingwa1.png',0,0,210);
|
|
//Arial fett 15
|
|
$this->SetDrawColor(0,0,0);
|
|
//nach rechts gehen
|
|
//Zeilenumbruch
|
|
$this->Ln(50);
|
|
|
|
}
|
|
|
|
//Fusszeile
|
|
public function Footer()
|
|
{
|
|
global $picpath;
|
|
//Logo
|
|
$this->Image(PICPATH."logoingwa2.png",15,273,17);
|
|
//Position 1,5 cm von unten
|
|
$this->SetY(-17);
|
|
$this->setX(30);
|
|
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
|
$this->SetTextColor(0,0,0);
|
|
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
|
$this->SetY(-10);
|
|
$this->setX(15);
|
|
//Arial fett 6
|
|
$this->SetFont(PDF_SCHRIFT_SANS,'B',6);
|
|
$this->SetTextColor(124,124,138);
|
|
//Seitenzahl
|
|
|
|
$this->Cell(0,7,'INGENIEURBÜRO WAGNER MORITZ · IM ENGELFELD 13 · 87509 IMMENSTADT · TEL. 08323 4735 · MOBIL: 0176 22522937',0,0,'L');
|
|
$this->Ln(2.3);
|
|
$this->setX(15);
|
|
$this->Cell(0,7,'ST.-NR. 123/746/00174 · UST-ID. Nr. DE286840927 · BANK: RAIBA KEMPTEN-OA IBAN: DE61 7336 9920 0000 7214 76 · BIC: GENODEF1SFO',0,0,'L');
|
|
$this->Ln(2.3);
|
|
$this->setX(15);
|
|
//$this->Cell(0,7,'DIE GELIEFERTE WARE BLEIBT BIS ZUR VOLLSTÄNDIGEN BEZAHLUNG EIGENTUM DES HAUSES',0,0,'L');
|
|
|
|
}
|
|
}
|
|
break;
|
|
default:
|
|
error("Für diese Firma ist kein Briefkopf definiert, die Anzeige kann nicht generiert werden.");
|
|
break;
|
|
}
|
|
|
|
//Instanciation of inherited class
|
|
$pdf=new PDF();
|
|
$pdf->SetMargins(PDF_MARGIN_LEFT, 52, PDF_MARGIN_RIGHT);
|
|
$pdf->SetAutoPageBreak(true,25);
|
|
$pdf->AddPage("P");
|
|
return $pdf;
|
|
}
|
|
|
|
function makeumschlagAddress($ajax, $address){
|
|
|
|
if($ajax)
|
|
define("PICPATH", "../pics/");
|
|
else
|
|
define("PICPATH", "./pics/");
|
|
|
|
|
|
//Instanciation of inherited class
|
|
$pagelayout = array(220, 110); // or array($height, $width)
|
|
$pdf=new TCPDF('l', 'mm', $pageLayout, true, 'UTF-8', false);
|
|
$pdf->setPrintHeader(false);
|
|
$pdf->setPrintFooter(false);
|
|
$pdf->SetAutoPageBreak(true,5);
|
|
$pdf->AddPage("L",$pagelayout);
|
|
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->setY(55);
|
|
$pdf->setX(140);
|
|
$pdf->MultiCell(75,50,str_replace("<br />","\n",$address["adresse"]),0,"L",0);
|
|
/*$pdf->cell(15,5,"Firma");
|
|
$pdf->ln(4);
|
|
$pdf->setX(135);
|
|
$pdf->cell(15,5,"Fifi hosenscheißer");
|
|
$pdf->ln(4);
|
|
$pdf->setX(135);
|
|
$pdf->cell(15,5,"Am arsch der Welt 25");
|
|
$pdf->ln(4);
|
|
$pdf->setX(135);
|
|
$pdf->cell(15,5,"12345 Hintertupfingen");
|
|
$pdf->ln(4);
|
|
$pdf->setX(135);
|
|
$pdf->cell(15,5,"schbätzlehobl");*/
|
|
return $pdf;
|
|
}
|
|
|
|
function makerawPDFcopy($ajax)
|
|
{
|
|
|
|
if($ajax)
|
|
define("PICPATH", "../pics/");
|
|
else
|
|
define("PICPATH", "./pics/");
|
|
//$pdf=new TCPDF();
|
|
//$fontname = $pdf->addTTFfont('../incs/font/arialuni.ttf', 'TrueTypeUnicode', '', 32);
|
|
//echo "newfont->".$fontname."<-newfont";
|
|
class PDF2 extends TCPDF
|
|
{
|
|
|
|
//Kopfzhttps://192.168.147.2/kunden/temp/pdfpreview/0_52324000_1432118691/0_52324000_1432118691-0.pngeile
|
|
public function Header()
|
|
{
|
|
$this->SetDrawColor(150,150,150);
|
|
$this->line(0,93,5,93);
|
|
$this->line(0,205,5,205);
|
|
|
|
}
|
|
|
|
//Fusszeile
|
|
public function Footer()
|
|
{
|
|
$this->SetY(-17);
|
|
$this->setX(30);
|
|
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
|
$this->SetTextColor(0,0,0);
|
|
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
|
$this->SetY(-10);
|
|
$this->setX(15);
|
|
}
|
|
}
|
|
//Instanciation of inherited class
|
|
$pdf=new PDF2();
|
|
$pdf->SetMargins(PDF_MARGIN_LEFT, 52, PDF_MARGIN_RIGHT);
|
|
$pdf->SetAutoPageBreak(true,25);
|
|
$pdf->AddPage("P");
|
|
return $pdf;
|
|
}
|
|
|
|
function makerawPDFanfahrt($ajax)
|
|
{
|
|
|
|
if($ajax)
|
|
define("PICPATH", "../pics/");
|
|
else
|
|
define("PICPATH", "./pics/");
|
|
//$pdf=new TCPDF();
|
|
//$fontname = $pdf->addTTFfont('../incs/font/arialuni.ttf', 'TrueTypeUnicode', '', 32);
|
|
//echo "newfont->".$fontname."<-newfont";
|
|
class PDF3 extends TCPDF
|
|
{
|
|
|
|
//Kopfzeile
|
|
public function Header()
|
|
{
|
|
$this->SetDrawColor(150,150,150);
|
|
$this->line(0,93,5,93);
|
|
$this->line(0,205,5,205);
|
|
|
|
}
|
|
|
|
//Fusszeile
|
|
public function Footer()
|
|
{
|
|
$this->SetY(-17);
|
|
$this->setX(30);
|
|
$this->SetFont(PDF_SCHRIFT_SERIF,'',9);
|
|
$this->SetTextColor(0,0,0);
|
|
$this->Cell(180,5,'Seite '.$this->getAliasNumPage().' von '.$this->getAliasNbPages(),0,0,'R');
|
|
$this->SetY(-10);
|
|
$this->setX(15);
|
|
}
|
|
}
|
|
//Instanciation of inherited class
|
|
$pdf=new PDF3();
|
|
$pdf->SetMargins(PDF_MARGIN_LEFT, 52, PDF_MARGIN_RIGHT);
|
|
$pdf->SetAutoPageBreak(true,25);
|
|
$pdf->AddPage("P");
|
|
return $pdf;
|
|
}
|
|
|
|
function makefirstpage($pdf,$adresse,$rechnung,$ajax)
|
|
{
|
|
if($ajax)
|
|
$picpath = "../pics/";
|
|
else
|
|
$picpath = "./pics/";
|
|
//$pdf->SetDrawColor(150,150,150);
|
|
//$pdf->roundedRect(169, 54, 41, 25,1.5,'1111', 'DF', array(), array(245, 245, 245));
|
|
//$pdf->SetDrawColor(0,0,0);
|
|
if($_SESSION["firma"] == "Wagner Markisen")
|
|
{
|
|
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',10);
|
|
$pdf->setY(52);
|
|
$pdf->setX(165);
|
|
$pdf->cell(40,5,"Öffnungszeiten:",0,0);
|
|
$pdf->ln(5);
|
|
$pdf->setX(165);
|
|
$pdf->SetFont(PDF_SCHRIFT_SANS,'',9);
|
|
$pdf->cell(12,4,"Mo.:");
|
|
$pdf->cell(20,4," 8:00 bis 12:00",0,0);
|
|
$pdf->ln(3.8);
|
|
$pdf->setX(165);
|
|
$pdf->cell(12,4,"Di.:");
|
|
$pdf->cell(20,4," 8:00 bis 12:00",0,0);
|
|
$pdf->ln(3.2);
|
|
$pdf->setX(165);
|
|
$pdf->cell(12,4,"");
|
|
$pdf->cell(20,4," 13:00 bis 17:00",0,0);
|
|
$pdf->ln(3.8);
|
|
$pdf->setX(165);
|
|
$pdf->cell(12,4,"Mi. Do.:");
|
|
$pdf->cell(20,4," Nach Absprache",0,0);
|
|
$pdf->ln(3.8);
|
|
$pdf->setX(165);
|
|
$pdf->cell(12,4,"Fr.:");
|
|
$pdf->cell(20,4," 8:00 bis 12:00",0,0);
|
|
$pdf->ln(3.8);
|
|
$pdf->setX(165);
|
|
$pdf->cell(12,4,"Sa.:");
|
|
$pdf->cell(20,4," Nach Absprache",0,1);
|
|
}
|
|
//STORNO!!!
|
|
if($rechnung["storno"] == 1){
|
|
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',75);
|
|
$pdf->setY(135);
|
|
$pdf->setX(70);
|
|
$pdf->SetTextColor(200,0,0);
|
|
$pdf->StartTransform();
|
|
$pdf->Rotate(50);
|
|
$pdf->Cell(0,3,'STORNO',0,0,'L');
|
|
$pdf->StopTransform();
|
|
|
|
}
|
|
//ADRESSE!!!!
|
|
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',6);
|
|
$pdf->setY(35);
|
|
$pdf->setX(25);
|
|
|
|
if($_SESSION["firma"] == "Wagner Markisen")
|
|
{
|
|
$pdf->SetTextColor(124,124,138);
|
|
$pdf->Cell(0,3,'WAGNER MARKISEN GMBH · IM ENGELFELD 13 · 87509 IMMENSTADT',0,0,'L');
|
|
}
|
|
elseif($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
|
{
|
|
$pdf->SetTextColor(124,124,138);
|
|
$pdf->Cell(0,3,'INGENIEURBÜRO WAGNER · IM ENGELFELD 13 · 87509 IMMENSTADT',0,0,'L');
|
|
}
|
|
else
|
|
{
|
|
$pdf->SetTextColor(20,47,119);
|
|
$pdf->Cell(0,3,'LSG OBERALLGÄU e.V. PHILIPP WAGNER IM ENGELFELD 13 87509 IMMENSTADT TEL.: 0176/21938558',0,0,'L');
|
|
}
|
|
$pdf->SetTextColor(0,0,0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->setY(40);
|
|
$pdf->setX(25);
|
|
$pdf->MultiCell(75,45,str_replace("<br />","\n",$adresse),0,"L",0);
|
|
//DATUM
|
|
$pdf->sety(80);
|
|
$pdf->setX(170);
|
|
$datum=strftime("%d.%m.%Y",strtotime($rechnung["datetime"]));
|
|
$pdf->Cell(0,5,$datum,0,0,'L');
|
|
//typ
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',18);
|
|
$pdf->sety(80);
|
|
$pdf->setX(20);
|
|
if($rechnung["typ"] != "Brief")
|
|
$pdf->Cell(0,5,$rechnung["typ"],0,'C',0);
|
|
//rechnr kdnr
|
|
$currY = 94;
|
|
|
|
if($rechnung["typ"] != "Brief")
|
|
{
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
|
$pdf->sety(95);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(0,5,$rechnung["typ"].": ",0,0,'L');
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->sety(95);
|
|
$pdf->setX(60);
|
|
$pdf->Cell(0,5,$rechnung["drechnr"],0,0,'L');
|
|
if($_SESSION["firma"] == "LSG Oberallgäu")
|
|
{
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
|
$pdf->Cell(0,5,"Bitte bei der Überweisung angeben!!",0,0,'L');
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
}
|
|
$currY = 100;
|
|
}
|
|
else
|
|
{
|
|
$currY = 95;
|
|
}
|
|
|
|
|
|
if($_SESSION["firma"] == "Wagner Markisen")
|
|
{
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
|
$pdf->sety(100);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(0,5,"Kundennummer: ",0,0,'L');
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->sety(100);
|
|
$pdf->setX(60);
|
|
$pdf->Cell(0,5,$rechnung["partner_id"],0,0,'L');
|
|
$currY = 110;
|
|
}
|
|
else
|
|
{
|
|
$currY = 110;
|
|
}
|
|
|
|
|
|
|
|
//Begrüßung
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
|
$pdf->setY($currY);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(0,5,$rechnung["anrede1"],0,0,'L');
|
|
$currY += 5;
|
|
if ($rechnung["anrede2"] != "")
|
|
{
|
|
$pdf->sety($currY);
|
|
$pdf->setX(30);
|
|
$pdf->Cell(0,5,$rechnung["anrede2"],0,0,'L');
|
|
$currY += 5;
|
|
}
|
|
//Vielen Dank,gerne bierten wir an...
|
|
if ($rechnung["typ"] == "Rechnung")
|
|
{
|
|
// $currY += 5;
|
|
// $pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
// $pdf->sety($currY);
|
|
// $pdf->setX(20);
|
|
// $pdf->Cell(0,5,"Wir bedanken uns für Ihr Vertrauen.",0,0,'L');
|
|
}
|
|
elseif ($rechnung["typ"] == "Auftragsbestätigung")
|
|
{
|
|
$currY += 5;
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->sety($currY);
|
|
$pdf->setX(20);
|
|
if($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
|
$pdf->Cell(0,5,"Hiermit bestätige ich Ihren Auftrag.",0,0,'L');
|
|
else
|
|
$pdf->Cell(0,5,"Hiermit bestätigen wir Ihren Auftrag.",0,0,'L');
|
|
}
|
|
elseif ($rechnung["typ"] == "Angebot")
|
|
{
|
|
$currY += 5;
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->sety($currY);
|
|
$pdf->setX(20);
|
|
if($rechnung["anrede1"] || $rechnung["anrede2"])
|
|
if($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
|
$pdf->Cell(0,5,"ich freue mich über Ihr Interesse an meinen Leistungen und unterbreite gerne folgendes Angebot:",0,1,'L');
|
|
else
|
|
$pdf->Cell(0,5,"wir freuen uns über Ihr Interesse an unseren Produkten und unterbreiten gerne folgendes Angebot:",0,1,'L');
|
|
else
|
|
if($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
|
$pdf->Cell(0,5,"Ich freue mich über Ihr Interesse an meinen Leistungen und unterbreite gerne folgendes Angebot:",0,1,'L');
|
|
else
|
|
$pdf->Cell(0,5,"Wir freuen uns über Ihr Interesse an unseren Produkten und unterbreiten gerne folgendes Angebot:",0,1,'L');
|
|
$currY += 5;
|
|
}
|
|
|
|
//intro
|
|
if (rtrim($rechnung["intro"])!="" )
|
|
{
|
|
$currY += 5;
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->sety($currY);
|
|
$pdf->setX(20);
|
|
if($rechnung["typ"] == "Brief")
|
|
{
|
|
$pdf->writeHTMLCell(0,0,20,$pdf->GetY(),$rechnung["intro"]);
|
|
$pdf->Ln();
|
|
$pdf->SetY($pdf->GetY()+10);
|
|
}
|
|
else
|
|
$pdf->MultiCell(0,5,$rechnung["intro"],0,'L',0,1);
|
|
}
|
|
else
|
|
{
|
|
$pdf->Ln();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
function maketable($pdf,$artikel,$rechnung,$ajax)
|
|
{
|
|
if($ajax)
|
|
$picpath = "../pics/";
|
|
else
|
|
$picpath = "./pics/";
|
|
$mixedmwst = 0;
|
|
foreach($artikel as $art)
|
|
{
|
|
if($art["art"]["artmwst"] > 0 && $art["art"]["artmwst"] != 999 && $art["art"]["artmwst"] != $rechnung["mwst"])
|
|
{
|
|
$mixedmwst = 1;
|
|
break;
|
|
}
|
|
}
|
|
$wahrung = $rechnung["wahrung"];
|
|
$currY = $pdf->GetY();
|
|
$newpdf = new PDF();
|
|
$newpdf->SetAutoPageBreak(true,40);
|
|
$newpdf->AddPage("P");
|
|
$calculatedHeight = 0;
|
|
$newpdf->setX(20);
|
|
$newcurrY=3;
|
|
$newpdf->setY($newcurrY);
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
$newpdf->setX(20);
|
|
$newpdf->MultiCell(100-$mixedmwst*15,5,$artikel[0]["art"]["bezeichn"],0,'L',0,1);
|
|
$newpdf->setX(120-$mixedmwst*15);
|
|
$newpdf->Cell(15,5,number_format($artikel[0]["art"]["menge"],2,",","")." ".$artikel[0]["art"]["einheit"],0,0,'C');
|
|
$newpdf->setX(135-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format($artikel[0]["art"]["preis"],2,",",".")." ".$wahrung,0,0,'R');
|
|
$newpdf->setX(165-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format($artikel[0]["art"]["preis"]*$artikel[0]["art"]["menge"],2,",",".")." ".$wahrung,0,0,'R');
|
|
if($mixedmwst)
|
|
{
|
|
$newpdf->setX(180);
|
|
$newpdf->Cell(15,5,$artikel[0]["art"]["artmwst"]."%",0,0,'R');
|
|
}
|
|
$newpdf->setY($newcurrY+2);
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
foreach($artikel[0]["eig"] as $eig)
|
|
{
|
|
$newpdf->Cell(100, 3, $eig["bezeichn"], 0, 1, "L", 0);
|
|
}
|
|
$artheight = $newpdf->GetY();
|
|
unset($newpdf);
|
|
if (($artheight+$currY > 210 && $artheight < 219) || $artikel[0]["art"]["pagebreak"])
|
|
{
|
|
$pdf->AddPage("P");
|
|
$wholetablebreak = 1;
|
|
}
|
|
|
|
//Table-HEAD
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->sety($pdf->GetY()+5);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(100-$mixedmwst*15,5,'Bezeichnung',0,0,'L');
|
|
$pdf->setX(120-$mixedmwst*15);
|
|
$pdf->Cell(15,5,'Menge',0,0,'C');
|
|
$pdf->setX(135-$mixedmwst*15);
|
|
$pdf->Cell(30,5,'Einzelpreis',0,0,'R');
|
|
$pdf->setX(165-$mixedmwst*15);
|
|
$pdf->Cell(30,5,'Gesamtpreis',0,0,'R');
|
|
if($mixedmwst)
|
|
{
|
|
$pdf->setX(180);
|
|
$pdf->Cell(20,5,'USt.',0,0,'R');
|
|
}
|
|
$pdf->Ln();
|
|
$pdf->Line(18 , $pdf->GetY(), 200, $pdf->GetY());
|
|
$currY = $pdf->GetY();
|
|
$ubertr = array();
|
|
foreach($artikel as $art)
|
|
{
|
|
for($i=0;$i<2;$i++)
|
|
{
|
|
if(!$i)
|
|
{
|
|
$newpdf = new PDF();
|
|
$currY = 0;
|
|
$newpdf->SetAutoPageBreak(true,40);
|
|
$newpdf->AddPage("P");
|
|
}
|
|
else
|
|
{
|
|
unset($newpdf);
|
|
$newpdf = $pdf;
|
|
$currY = $newpdf->GetY();
|
|
if (($currY+$artheight > 255 && $artheight < 219) || ($art["art"]["pagebreak"] && !$wholetablebreak))
|
|
{
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$newpdf->Line(18 , $currY+4.3, 200, $currY+4.3);
|
|
$newpdf->setY($currY+7);
|
|
$newpdf->setX(130-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,'Übertrag:',0,0,'R');
|
|
$newpdf->setX(165-$mixedmwst*15);
|
|
$ubertr_all = 0;
|
|
foreach($ubertr as $ubertr_mwst)
|
|
$ubertr_all += $ubertr_mwst;
|
|
$newpdf->Cell(30,5,number_format($ubertr_all,2,",",".")." ".$wahrung,0,0,'R');
|
|
$newpdf->AddPage("P");
|
|
//Table-re-HEAD
|
|
$currY = $pdf->GetY();
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(100-$mixedmwst*15,5,'Bezeichnung',0,0,'L');
|
|
$pdf->setX(120-$mixedmwst*15);
|
|
$pdf->Cell(15,5,'Menge',0,0,'C');
|
|
$pdf->setX(135-$mixedmwst*15);
|
|
$pdf->Cell(30,5,'Einzelpreis',0,0,'R');
|
|
$pdf->setX(165-$mixedmwst*15);
|
|
$pdf->Cell(30,5,'Gesamtpreis',0,0,'R');
|
|
if($mixedmwst)
|
|
{
|
|
$pdf->setX(180);
|
|
$pdf->Cell(20,5,'USt.',0,0,'R');
|
|
}
|
|
$pdf->Ln();
|
|
$pdf->Line(18 , $pdf->GetY(), 200, $pdf->GetY());
|
|
$currY = $pdf->GetY();
|
|
|
|
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
}
|
|
$currY = $newpdf->GetY();
|
|
}
|
|
|
|
$newpdf->setY($currY);
|
|
$newpdf->setX(20);
|
|
if($art["art"]["artmwst"] == 999 || !$art["art"]["artmwst"])
|
|
$art["art"]["artmwst"] = $rechnung["mwst"];
|
|
$artmwst=$art["art"]["artmwst"];
|
|
if($i && $rechnung["sub_mwst"])
|
|
$art["art"]["preis"] = round(100*$art["art"]["preis"]/(100+$artmwst),2);
|
|
|
|
if ($art["art"]["angtyp"] < 2){ //STD ARTIKEL
|
|
|
|
if($art["art"]["einheit"] == "keine")
|
|
$art["art"]["einheit"] = "";
|
|
|
|
$currY= $newpdf->GetY()+5;
|
|
$newpdf->setY($currY);
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
$newpdf->setX(120-$mixedmwst*15);
|
|
$newpdf->Cell(15,5,number_significant($art["art"]["menge"], 3)." ".$art["art"]["einheit"],0,0,'C');
|
|
$newpdf->setX(135-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format($art["art"]["preis"],2,",",".")." ".$wahrung,0,0,'R');
|
|
$newpdf->setX(165-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format($art["art"]["preis"]*$art["art"]["menge"],2,",",".")." ".$wahrung,0,0,'R');
|
|
if($mixedmwst)
|
|
{
|
|
$newpdf->setX(180);
|
|
$newpdf->Cell(20,5,$art["art"]["artmwst"]."%",0,0,'R');
|
|
}
|
|
$newpdf->Ln();
|
|
if(!isset($ubertr[$artmwst])){
|
|
$ubertr[$artmwst]=0;
|
|
}
|
|
if($art["art"]["rabatt"])
|
|
{
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'I',14);
|
|
$newpdf->setX(110-$mixedmwst*15);
|
|
if(!$art["art"]["rabatttyp"])
|
|
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Rabatt",0,0,'L');
|
|
else
|
|
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Winterrabatt",0,0,'L');
|
|
$newpdf->setX(165-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format(-1*$art["art"]["preis"]*$art["art"]["menge"]*($art["art"]["rabatt"]/100),2,",",".")." ".$wahrung,0,1,'R');
|
|
if($i)
|
|
$ubertr[$artmwst] += round(-1*$art["art"]["preis"]*$art["art"]["menge"]*($art["art"]["rabatt"]/100),2);
|
|
//$newpdf->setY($nextY);
|
|
}
|
|
|
|
if($i)
|
|
$ubertr[$artmwst] += $art["art"]["preis"]*$art["art"]["menge"];
|
|
|
|
$newpdf->setY($currY);
|
|
$newpdf->setX(20);
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$newpdf->MultiCell(90-$mixedmwst*15,5,$art["art"]["bezeichn"],0,'L',0,1);
|
|
$currY = $newpdf->GetY();
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
foreach($art["eig"] as $eig)
|
|
{
|
|
if($eig["einheit"] == "keine")
|
|
$eig["einheit"] = "";
|
|
$newpdf->setX(20);
|
|
$newpdf->Cell(100-$mixedmwst*15, 4, $eig["bezeichn"]." ".$eig["wert"]." ".$eig["einheit"], 0, 1, "L", 0,0,0,1);
|
|
$nextY = $newpdf->GetY();
|
|
}
|
|
|
|
|
|
}
|
|
elseif ($art["art"]["angtyp"]==2){ //OPTIONAL
|
|
if($art["art"]["einheit"] == "keine")
|
|
$art["art"]["einheit"] = "";
|
|
|
|
$currY= $newpdf->GetY()+3;
|
|
$newpdf->setY($currY);
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
$newpdf->setX(120-$mixedmwst*15);
|
|
$newpdf->Cell(15,5,number_significant($art["art"]["menge"], 3)." ".$art["art"]["einheit"],0,0,'C');
|
|
$newpdf->setX(135-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format($art["art"]["preis"],2,",",".")." ".$wahrung,0,0,'R');
|
|
$newpdf->setX(165-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format($art["art"]["preis"]*$art["art"]["menge"],2,",",".")." ".$wahrung,0,0,'R');
|
|
if($mixedmwst)
|
|
{
|
|
$newpdf->setX(180);
|
|
$newpdf->Cell(20,5,$art["art"]["artmwst"]."%",0,0,'R');
|
|
}
|
|
$newpdf->Ln();
|
|
if($art["art"]["rabatt"])
|
|
{
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'I',14);
|
|
$newpdf->setX(110-$mixedmwst*15);
|
|
if(!$art["art"]["rabatttyp"])
|
|
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Rabatt",0,0,'L');
|
|
else
|
|
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Winterrabatt",0,0,'L');
|
|
$newpdf->setX(165-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format(-1*$art["art"]["preis"]*$art["art"]["menge"]*($art["art"]["rabatt"]/100),2,",",".")." ".$wahrung,0,1,'R');
|
|
//if($i)
|
|
// $ubertr[$artmwst] += round(-1*$art["art"]["preis"]*$art["art"]["menge"]*($art["art"]["rabatt"]/100),2);
|
|
$newpdf->setY($nextY);
|
|
}
|
|
|
|
//if($i)
|
|
// $ubertr[$artmwst] += $art["art"]["preis"]*$art["art"]["menge"];
|
|
|
|
$newpdf->setY($currY);
|
|
$newpdf->setX(25);
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
$newpdf->MultiCell(85-$mixedmwst*15,5,"(Optional: " .$art["art"]["bezeichn"].")",0,'L',0,1);
|
|
$currY = $newpdf->GetY();
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
foreach($art["eig"] as $eig)
|
|
{
|
|
if($eig["einheit"] == "keine")
|
|
$eig["einheit"] = "";
|
|
$newpdf->setX(25);
|
|
$newpdf->Cell(85-$mixedmwst*15, 4,$eig["bezeichn"]." ".$eig["wert"]." ".$eig["einheit"], 0, 1, "L", 0,0,0,1);
|
|
$nextY = $newpdf->GetY();
|
|
}
|
|
}
|
|
elseif ($art["art"]["angtyp"]==3){ //ALTERNATIV
|
|
if($art["art"]["einheit"] == "keine")
|
|
$art["art"]["einheit"] = "";
|
|
|
|
$currY= $newpdf->GetY()+3;
|
|
$newpdf->setY($currY);
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
$newpdf->setX(120-$mixedmwst*15);
|
|
$newpdf->Cell(15,5,number_significant($art["art"]["menge"], 3)." ".$art["art"]["einheit"],0,0,'C');
|
|
$newpdf->setX(135-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format($art["art"]["preis"],2,",",".")." ".$wahrung,0,0,'R');
|
|
$newpdf->setX(165-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format($art["art"]["preis"]*$art["art"]["menge"],2,",",".")." ".$wahrung,0,0,'R');
|
|
if($mixedmwst)
|
|
{
|
|
$newpdf->setX(180);
|
|
$newpdf->Cell(20,5,$art["art"]["artmwst"]."%",0,0,'R');
|
|
}
|
|
$newpdf->Ln();
|
|
|
|
if($art["art"]["rabatt"])
|
|
{
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'I',14);
|
|
$newpdf->setX(110-$mixedmwst*15);
|
|
if(!$art["art"]["rabatttyp"])
|
|
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Rabatt",0,0,'L');
|
|
else
|
|
$newpdf->Cell(100,5,"Abzüglich ".$art["art"]["rabatt"]."% Winterrabatt",0,0,'L');
|
|
$newpdf->setX(165-$mixedmwst*15);
|
|
$newpdf->Cell(30,5,number_format(-1*$art["art"]["preis"]*$art["art"]["menge"]*($art["art"]["rabatt"]/100),2,",",".")." ".$wahrung,0,1,'R');
|
|
// if($i)
|
|
// $ubertr[$artmwst] += round(-1*$art["art"]["preis"]*$art["art"]["menge"]*($art["art"]["rabatt"]/100),2);
|
|
$newpdf->setY($nextY);
|
|
}
|
|
|
|
//if($i)
|
|
// $ubertr[$artmwst] += $art["art"]["preis"]*$art["art"]["menge"];
|
|
|
|
$newpdf->setY($currY);
|
|
$newpdf->setX(25);
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
$newpdf->MultiCell(85-$mixedmwst*15,5,"(Alternativ: " .$art["art"]["bezeichn"].")",0,'L',0,1);
|
|
$currY = $newpdf->GetY();
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
foreach($art["eig"] as $eig)
|
|
{
|
|
if($eig["einheit"] == "keine")
|
|
$eig["einheit"] = "";
|
|
$newpdf->setX(25);
|
|
$newpdf->Cell(85-$mixedmwst*15, 4,$eig["bezeichn"]." ".$eig["wert"]." ".$eig["einheit"], 0, 1, "L", 0,0,0,1);
|
|
$nextY = $newpdf->GetY();
|
|
}
|
|
}
|
|
if($art["art"]["rabatt"] && count($art["eig"]) == 0)
|
|
$newpdf->Ln(5);
|
|
$artheight = $newpdf->GetY();
|
|
}
|
|
$wholetablebreak = 0;
|
|
}
|
|
if($mixedmwst == 0 && $rechnung["mwst"] == 0)
|
|
{
|
|
$currY = $pdf->GetY();
|
|
//Endbetrag
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->Line(18 , $currY+2, 200, $currY+2);
|
|
$pdf->setY($currY+2);
|
|
|
|
//RABATT
|
|
if ($rechnung["rabatt"] == "0") {
|
|
$currY=$currY+7;
|
|
}
|
|
else {
|
|
$currY=$currY+7;
|
|
$pdf->setY($currY);
|
|
|
|
$pdf->setX(130-$mixedmwst*15);
|
|
$pdf->Cell(30,6,$rechnung["rabattdesc"]." (".$rechnung["rabatt"]."%):",0,0,'R');
|
|
$pdf->setX(165-$mixedmwst*15);
|
|
$multi=$rechnung["rabatt"]/100;
|
|
$pdf->Cell(30,6,"-".number_format(round($ubertr_all*$multi,2),2,",",".")." ".$wahrung,0,0,'R');
|
|
foreach($ubertr AS $mwst => $ubertr_mwst)
|
|
{
|
|
$ubertr[$mwst]=$ubertr[$mwst]-$ubertr[$mwst]*$multi;
|
|
}
|
|
$currY=$currY+5;
|
|
}
|
|
|
|
//Mwst ausweisen
|
|
$pdf->setY($currY);
|
|
$ubertr_all = 0;
|
|
foreach($ubertr as $ubertr_mwst)
|
|
$ubertr_all += $ubertr_mwst;
|
|
//komplettpreis ausgeben
|
|
$pdf->setX(130-$mixedmwst*15);
|
|
$pdf->Cell(30,6,'Gesamtbetrag:',0,0,'R');
|
|
$pdf->setX(165-$mixedmwst*15);
|
|
|
|
$pdf->Cell(30,6,number_format($ubertr_all,2,",",".")." ".$wahrung,0,1,'R');
|
|
$currY=$pdf->GetY()+10;
|
|
$pdf->setY($currY);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->setX(20);
|
|
$currY=$currY;
|
|
}
|
|
|
|
else
|
|
{
|
|
$currY = $pdf->GetY();
|
|
//Endbetrag
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->Line(18 , $currY+2, 200, $currY+2);
|
|
$pdf->setY($currY+2);
|
|
$pdf->setX(130-$mixedmwst*15);
|
|
$pdf->Cell(30,6,'Gesamtbetrag Netto:',0,0,'R');
|
|
$pdf->setX(165-$mixedmwst*15);
|
|
$ubertr_all = 0;
|
|
foreach($ubertr AS $ubertr_mwst)
|
|
$ubertr_all += $ubertr_mwst;
|
|
$pdf->Cell(30,6,number_format($ubertr_all,2,",",".")." ".$wahrung,0,0,'R');
|
|
//RABATT
|
|
if ($rechnung["rabatt"] == "0") {
|
|
$currY=$currY+7;
|
|
}
|
|
else {
|
|
$currY=$currY+7;
|
|
$pdf->setY($currY);
|
|
|
|
$pdf->setX(130-$mixedmwst*15);
|
|
$pdf->Cell(30,6,$rechnung["rabattdesc"]." (".$rechnung["rabatt"]."%):",0,0,'R');
|
|
$pdf->setX(165-$mixedmwst*15);
|
|
$multi=$rechnung["rabatt"]/100;
|
|
$pdf->Cell(30,6,"-".number_format(round($ubertr_all*$multi,2),2,",",".")." ".$wahrung,0,0,'R');
|
|
foreach($ubertr AS $mwst => $ubertr_mwst)
|
|
{
|
|
$ubertr[$mwst]=$ubertr[$mwst]-$ubertr[$mwst]*$multi;
|
|
}
|
|
$currY=$currY+5;
|
|
}
|
|
|
|
//Mwst ausweisen
|
|
$pdf->setY($currY);
|
|
|
|
foreach($ubertr AS $mwst => $ubertr_mwst)
|
|
{
|
|
$pdf->setX(130-$mixedmwst*15);
|
|
$pdf->Cell(30,6,'Zuzüglich '.$mwst.'% USt.:',0,0,'R');
|
|
$pdf->setX(165-$mixedmwst*15);
|
|
$multi=$mwst/100;
|
|
$pdf->Cell(30,6,number_format(round($ubertr[$mwst]*$multi,2),2,",",".")." ".$wahrung,0,1,'R');
|
|
$ubertr[$mwst] = $ubertr[$mwst]+round($ubertr[$mwst]*$multi,2);
|
|
}
|
|
$ubertr_all = 0;
|
|
foreach($ubertr as $ubertr_mwst)
|
|
$ubertr_all += $ubertr_mwst;
|
|
//komplettpreis ausgeben
|
|
$pdf->setX(130-$mixedmwst*15);
|
|
$pdf->Cell(30,6,'Gesamtbetrag Brutto:',0,0,'R');
|
|
$pdf->setX(165-$mixedmwst*15);
|
|
|
|
$pdf->Cell(30,6,number_format($ubertr_all,2,",",".")." ".$wahrung,0,1,'R');
|
|
$currY=$pdf->GetY()+10;
|
|
$pdf->setY($currY);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->setX(20);
|
|
$currY=$currY;
|
|
}
|
|
return $ubertr_all;
|
|
}
|
|
|
|
function makeEndPage($pdf,$rechnung,$gesamtpreis,$ajax)
|
|
{
|
|
if($ajax)
|
|
$signpath = "../".UPLOADS_PATH;
|
|
else
|
|
$signpath = "./".UPLOADS_PATH;
|
|
if($pdf->getY() > 270)
|
|
{
|
|
$pdf->AddPage("P");
|
|
}
|
|
|
|
for($i=0;$i<2;$i++)
|
|
{
|
|
if(!$i)
|
|
{
|
|
//outro höhe berechnen!!
|
|
$newpdf=new PDF();
|
|
$newpdf->SetAutoPageBreak(true,40);
|
|
$newpdf->AddPage("P");
|
|
$newpdf->setY(0);
|
|
$newpdf->setX(20);
|
|
}
|
|
else
|
|
{
|
|
$outroheight = $newpdf->getY();
|
|
unset($newpdf);
|
|
/*
|
|
if ($currY+$txt2height > 420 and $txt2height < 239)
|
|
{
|
|
$pdf->AddPage("P");
|
|
}*/
|
|
$newpdf = $pdf;
|
|
}
|
|
if (rtrim($rechnung["outro"]) != "")
|
|
{
|
|
$newpdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$newpdf->setX(20);
|
|
$newpdf->MultiCell(0,5,rtrim($rechnung["outro"]),0,'L',0);
|
|
//ENDE!!
|
|
$currY=$newpdf->getY();
|
|
$newpdf->setY($currY+5);
|
|
}
|
|
if($rechnung["typ"] != "Rechnung" && $rechnung["typ"] != "Gutschrift")
|
|
{
|
|
$newpdf->setX(20);
|
|
if($_SESSION["firma"] == "Wagner Markisen")
|
|
$newpdf->Cell(0,5,"Mit freundlichen Grüßen",0,0,'L',0);
|
|
elseif($_SESSION["firma"] == "LSG Oberallgäu")
|
|
$newpdf->Cell(0,5,"Mit freundlichen Grüßen",0,0,'L',0);
|
|
elseif($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
|
$newpdf->Cell(0,5,"Mit freundlichen Grüßen",0,0,'L',0);
|
|
//unterschrift
|
|
if(is_file($signpath."signs/".$rechnung["user_id"].".png"))
|
|
$newpdf->Image($signpath."signs/".$rechnung["user_id"].".png",20,$newpdf->getY()+5,0,20);
|
|
else
|
|
$newpdf->Image($signpath."signs/default.png",20,$newpdf->getY()+5,0,20);
|
|
|
|
$newpdf->sety($newpdf->getY()+25);
|
|
$newpdf->setX(20);
|
|
if($_SESSION["firma"] == "Wagner Markisen")
|
|
$newpdf->Cell(0,5,"WAGNER MARKISEN",0,1,'L',0);
|
|
$newpdf->setX(20);
|
|
$newpdf->Cell(0,5,$rechnung["uvname"]." ".$rechnung["unname"],0,0,'L',0);
|
|
if($_SESSION["firma"] == "LSG Oberallgäu" && $rechnung["uvname"]." ".$rechnung["unname"] == "Philipp Wagner")
|
|
{
|
|
$newpdf->ln();
|
|
$newpdf->setX(20);
|
|
$newpdf->Cell(0,5,"(Kassier)",0,0,'L',0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(!isset($rechnung["sks"])){
|
|
$rechnung["sks"] = 0;
|
|
}
|
|
if(!$rechnung["sks"] && $rechnung["typ"] != "Gutschrift")
|
|
{
|
|
if(!isset($rechnung["ktonr"])){
|
|
$rechnung["ktonr"] = "";
|
|
}
|
|
$newpdf->ln();
|
|
$newpdf->setX(20);
|
|
$newpdf->MultiCell(0,5,writeZahlziel($rechnung["ktonr"],$rechnung["zahlziel"],$gesamtpreis,$rechnung["wahrung"],strtotime($rechnung["datetime"]),$rechnung["partner_id"]),0,'L',0,1);
|
|
}
|
|
$newpdf->setX(20);
|
|
$newpdf->Cell(0,5,$rechnung["lieferdatum"],0,1,'L',0);
|
|
$newpdf->ln();
|
|
$newpdf->setX(20);
|
|
if(!$rechnung["sks"] && $rechnung["typ"] != "Gutschrift")
|
|
{
|
|
if($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
|
$newpdf->Cell(0,5,"Ich bedanke mich für die gute Zusammenarbeit!",0,1,'L',0);
|
|
else
|
|
$newpdf->Cell(0,5,"Wir bedanken uns für die gute Zusammenarbeit!",0,1,'L',0);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
function writeZahlziel($ktonr,$zahlziel,$gespreis,$wahrung,$rechdate,$kundeid)
|
|
{
|
|
$ret = "Zahlbar";
|
|
$skontodate = "";
|
|
$date = "";
|
|
if(stristr($zahlziel,"sofort ohne Abzug"))
|
|
{
|
|
$date = "sofort";
|
|
}
|
|
else if(preg_match("!([0-9]+)\sTage\sohne\sAbzug!",$zahlziel,$match))
|
|
{
|
|
$date .= date("d.m.Y",strtotime("+".$match[1]." days",$rechdate));
|
|
}
|
|
if(stristr($zahlziel,"Skonto sofort"))
|
|
{
|
|
$skontodate = "sofort";
|
|
}
|
|
if(preg_match("!Skonto\s([0-9]+)\sTage!",$zahlziel,$match) )
|
|
{
|
|
$skontodate .= date("d.m.Y",strtotime("+".$match[1]." days",$rechdate));
|
|
}
|
|
if(preg_match("!([0-9]+)\%!",$zahlziel,$match))
|
|
{
|
|
$skonto = $match[1];
|
|
}else{
|
|
$skonto ="";
|
|
}
|
|
if($date != $skontodate)
|
|
{
|
|
$ret = "Zahlbar";
|
|
if($date == "sofort")
|
|
$ret .= " sofort";
|
|
else
|
|
$ret .= " bis zum ".$date;
|
|
$ret .= " ohne Abzug";
|
|
if($skonto && $skontodate)
|
|
{
|
|
$ret .= "\noder";
|
|
if($skontodate == "sofort")
|
|
$ret .= " sofort";
|
|
else
|
|
$ret .= " bis zum ".$skontodate;
|
|
$ret .= " abzüglich ".$skonto."% Skonto (abziehbarer Betrag ".number_format(($gespreis/100)*$skonto,2,",",".")." ".$wahrung.")";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$ret = "Zahlbar";
|
|
if($skontodate == "sofort")
|
|
$ret .= " sofort";
|
|
else
|
|
$ret .= " bis zum ".$date;
|
|
$ret .= " abzüglich ".$skonto."% Skonto (abziehbarer Betrag ".number_format(($gespreis/100)*$skonto,2,",",".")." ".$wahrung.")";
|
|
}
|
|
if(stristr($zahlziel,"Betrag wird von Konto abgebucht"))
|
|
{
|
|
$ret = "Der Betrag von ".number_format($gespreis,2,",",".")." ".$wahrung." wird von Ihren Konto (Nr.: ".$ktonr.") abgebucht.";
|
|
}
|
|
return $ret;
|
|
|
|
}
|
|
|
|
function savePDF($pdf,$PDFpath)
|
|
{
|
|
// TCPDF stellt beim Schreiben file:// voran und braucht deshalb einen
|
|
// absoluten Pfad. Aufgelöst wird relativ zum Arbeitsverzeichnis, also in
|
|
// der Installation, aus der der Aufruf kommt - früher stand hier fest
|
|
// DOCUMENT_ROOT."kunden".
|
|
$PDFpathpart = realpath(dirname($PDFpath));
|
|
if($PDFpathpart === false || !is_dir($PDFpathpart))
|
|
die("PDF-Verzeichnis nicht gefunden: ".dirname($PDFpath));
|
|
$PDFpathpart = str_replace("\\", "/", $PDFpathpart)."/";
|
|
$handle=opendir($PDFpathpart);
|
|
while ($file = readdir($handle))
|
|
{
|
|
if (preg_match("=^\.=", $file))
|
|
continue; # ., .. und versteckte Dateien (.gitkeep) ignorieren
|
|
elseif(is_file($PDFpathpart.$file))
|
|
{ #Dateien löschen, wenn älter als PDF_TEMP_MAX_ALTER
|
|
$lastTime = ceil((time() - filemtime($PDFpathpart.$file)));
|
|
if($lastTime > PDF_TEMP_MAX_ALTER){
|
|
unlink($PDFpathpart.$file);
|
|
}
|
|
}
|
|
}
|
|
closedir($handle);
|
|
$pdf->Output($PDFpathpart.basename($PDFpath),"F");
|
|
}
|
|
|
|
function outputPDF($pdf)
|
|
{
|
|
$pdf->Output($path,"I");
|
|
}
|
|
|
|
function makeImageFromPDF($PDFpath)
|
|
{
|
|
$PDFpathpart = dirname($PDFpath)."/";
|
|
$PDFfilepart = basename($PDFpath,".pdf");
|
|
$handle=opendir($PDFpathpart);
|
|
while ($file = readdir($handle))
|
|
{
|
|
if (preg_match("=^\.=", $file))
|
|
continue; # ., .. und versteckte Dateien (.gitkeep) ignorieren
|
|
|
|
if (is_dir($PDFpathpart.$file))
|
|
{
|
|
$lastTime = ceil((time() - filemtime($PDFpathpart.$file)));
|
|
if($lastTime > PDF_TEMP_MAX_ALTER){
|
|
rrmdir($PDFpathpart.$file."/");
|
|
}
|
|
}
|
|
else
|
|
{ #Dateien löschen, wenn älter als PDF_TEMP_MAX_ALTER
|
|
$lastTime = ceil((time() - filemtime($PDFpathpart.$file)));
|
|
if($lastTime > PDF_TEMP_MAX_ALTER){
|
|
unlink($PDFpathpart.$file);
|
|
}
|
|
}
|
|
}
|
|
mkdir(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/");
|
|
//exec('');
|
|
exec("export PATH=\"/opt/bin\";/opt/bin/convert ".escapeshellarg($PDFpath)." ".escapeshellarg(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png"));
|
|
$i="0";
|
|
$ret = "";
|
|
if(is_file(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png"))
|
|
$ret .= "<img src='".str_replace("..",".",dirname($PDFpath))."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf").".png' alt='Seite 1' class='pdfpreviewimg' />";
|
|
while(is_file(dirname($PDFpath)."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf")."-$i.png"))
|
|
{
|
|
$ret .= "<img src='".str_replace("..",".",dirname($PDFpath))."/".basename($PDFpath,".pdf")."/".basename($PDFpath,".pdf")."-$i.png' alt='Seite ".($i+1)."' class='pdfpreviewimg' />";
|
|
$i++;
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
function makezettel($pdf,$termine,$anfahrt,$googleadressen='')
|
|
{
|
|
if($ajax)
|
|
$picpath = "../pics/";
|
|
else
|
|
$picpath = "./pics/";
|
|
$mixedmwst = 0;
|
|
foreach($termine as $termin=>$key)
|
|
{
|
|
$googleadresse=$googleadressen[$key];
|
|
$dauersplit = explode(":",$termin["termdauer"]);
|
|
if($dauersplit[0] > 0)
|
|
{
|
|
$dauer = ltrim($dauersplit[0],"0")." Std";
|
|
if($dauersplit[1] > 0)
|
|
{
|
|
$dauer .= ", ";
|
|
}
|
|
}
|
|
if($dauersplit[1] > 0)
|
|
{
|
|
$dauer .= ltrim($dauersplit[1],"0")." Min";
|
|
}
|
|
|
|
$pdf->SetTextColor(0,0,0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
$pdf->setY(20);
|
|
$pdf->setX(25);
|
|
$pdf->MultiCell(85,0,str_replace("<br />","\n",$adresse["adresse"]),0,"L",0);
|
|
$pdf->Ln(10);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'BU',14);
|
|
$pdf->Cell(0,5,strtoupper($termin["typ"])." - ".$termin["head"],0,1,"C",0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
//$pdf->Line(35,$pdf->GetY(),180,$pdf->GetY());
|
|
$notespos = $pdf->GetY();
|
|
$pdf->setY(20);
|
|
$pdf->Cell(0,5,date("d.m.Y, H:i",strtotime($termin["termtime"]))." Uhr",0,1,"R",0);
|
|
$pdf->Cell(0,5,"(".$dauer." geplant)",0,1,"R",0);
|
|
$pdf->SetY($notespos);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->MultiCell(0,0,$termin["text"],0,"C",0);
|
|
$pdf->Ln();
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
|
$pdf->Cell(0,5,"Notizen:",0,1,"C",0);
|
|
$pdf->Ln(12);
|
|
$pdf->SetDrawColor(100,100,100);
|
|
while($pdf->GetY() < 260)
|
|
{
|
|
$pdf->line(10,$pdf->GetY(),200,$pdf->GetY());
|
|
$pdf->Ln(12);
|
|
}
|
|
}
|
|
}
|
|
|
|
function makesingleterminpage($pdf,$termin,$adresse,$telnrn,$anfahrt,$googleadresse='')
|
|
{
|
|
if($ajax)
|
|
$picpath = "../pics/";
|
|
else
|
|
$picpath = "./pics/";
|
|
|
|
$dauersplit = explode(":",$termin["termdauer"]);
|
|
if($dauersplit[0] > 0)
|
|
{
|
|
$dauer = $dauersplit[0]." Std";
|
|
if($dauersplit[1] > 0)
|
|
{
|
|
$dauer .= ", ";
|
|
}
|
|
}
|
|
if($dauersplit[1] > 0)
|
|
{
|
|
$dauer .= $dauersplit[1]." Min";
|
|
}
|
|
|
|
$mitarbeiter = $termin["uservname"]." ".$termin["usernname"];
|
|
if($termin["uservname2"] || $termin["usernname2"])
|
|
$mitarbeiter .= ", ".$termin["uservname2"]." ".$termin["usernname2"];
|
|
if($termin["uservname3"] || $termin["usernname3"])
|
|
$mitarbeiter .= ",\n".$termin["uservname3"]." ".$termin["usernname3"];
|
|
if($termin["uservname4"] || $termin["usernname4"])
|
|
$mitarbeiter .= ", ".$termin["uservname4"]." ".$termin["usernname4"];
|
|
|
|
$pdf->SetTextColor(0,0,0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',14);
|
|
$pdf->setY(20);
|
|
$pdf->setX(25);
|
|
$pdf->MultiCell(85,0,str_replace("<br />","\n",$adresse["adresse"]),0,"L",0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',12);
|
|
$pdf->ln(5);
|
|
$pdf->MultiCell(0,0,$telnrn,0,"L",0);
|
|
$pdf->Ln(10);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'BU',16);
|
|
$pdf->Cell(0,5,strtoupper($termin["typ"])." - ".$termin["head"],0,1,"C",0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
|
//$pdf->Line(35,$pdf->GetY(),180,$pdf->GetY());
|
|
$notespos = $pdf->GetY();
|
|
$pdf->setY(10);
|
|
$pdf->Cell(0,5,date("d.m.Y, H:i",strtotime($termin["termtime"]))." Uhr",0,1,"R",0);
|
|
$pdf->Cell(0,5,"(".$dauer." geplant)",0,1,"R",0);
|
|
$pdf->MultiCell(0,0,"(".$mitarbeiter.")",0,"R",0);
|
|
$pdf->SetY($notespos);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->MultiCell(0,0,$termin["text"],0,"C",0);
|
|
$pdf->Ln();
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
|
$pdf->Cell(0,5,"Notizen:",0,1,"C",0);
|
|
$pdf->Ln(12);
|
|
$pdf->SetDrawColor(100,100,100);
|
|
if(!$googleadresse)
|
|
{
|
|
while($pdf->GetY() < 230)
|
|
{
|
|
$pdf->line(10,$pdf->GetY(),200,$pdf->GetY());
|
|
$pdf->Ln(12);
|
|
}
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',16);
|
|
$pdf->Cell(0,5,"Ankunft:______________________ Abfahrt:_____________________",0,1,"L",0);
|
|
$pdf->Ln(12);
|
|
$pdf->Cell(0,5,"Unterschrift Kunde:_____________________",0,1,"C",0);
|
|
|
|
}
|
|
else
|
|
{
|
|
while($pdf->GetY() < 135)
|
|
{
|
|
$pdf->line(10,$pdf->GetY(),200,$pdf->GetY());
|
|
$pdf->Ln(12);
|
|
}
|
|
//$pdf->Image("@".file_get_contents($googleadresse),0,128,0,110,'PNG');
|
|
while($pdf->GetY() < 230)
|
|
{
|
|
$pdf->line(120,$pdf->GetY(),200,$pdf->GetY());
|
|
$pdf->Ln(12);
|
|
}
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',16);
|
|
$pdf->Cell(0,5,"Ankunft:______________________ Abfahrt:_____________________",0,1,"L",0);
|
|
$pdf->Ln(10);
|
|
$pdf->Cell(0,5,"Unterschrift Kunde:_____________________",0,1,"C",0);
|
|
//$pdf->Image("./pics/icons/weather/fog.png",100,200,60,60,'PNG');
|
|
}
|
|
}
|
|
|
|
/* Die Daten eines Termins fuer den Terminzettel */
|
|
function maketerminarray($dbconn,$id)
|
|
{
|
|
$res = db_zeile($dbconn,"SELECT head, user, text, termin.id, termtime, termtyp.typ AS typ, termdauer, str, ort, hnr, plz, partner_id, land,
|
|
adresse.vname AS vname, adresse.nname AS nname, titel_id, titel2_id, anrede_id, anrede2_id, vname2, nname2, zusatz,
|
|
user.vname as uservname, user.nname as usernname,
|
|
user2.vname as uservname2, user2.nname as usernname2,
|
|
user3.vname as uservname3, user3.nname as usernname3,
|
|
user4.vname as uservname4, user4.nname as usernname4
|
|
FROM termin
|
|
LEFT JOIN adresse ON adresse_id = adresse.id
|
|
LEFT JOIN strasse ON str_id = strasse.id
|
|
LEFT JOIN termtyp ON termin.typ = termtyp.id
|
|
LEFT JOIN ort ON ort_id = ort.id
|
|
LEFT JOIN land ON land_id = land.id
|
|
LEFT JOIN user ON user = user.id
|
|
LEFT JOIN user AS user2 ON termin.user2 = user2.id
|
|
LEFT JOIN user AS user3 ON termin.user3 = user3.id
|
|
LEFT JOIN user AS user4 ON termin.user4 = user4.id
|
|
WHERE termin.id = ?", array($id));
|
|
if(!$res)
|
|
{
|
|
error("Fehler beim ermitteln der Termindaten<br />".mysqli_error($dbconn));
|
|
return array();
|
|
}
|
|
$anrs = db_zuordnung($dbconn, "SELECT id, anrede FROM anrede") ?: array();
|
|
$titels = db_zuordnung($dbconn, "SELECT id, titel FROM titel") ?: array();
|
|
$res["anrede"] = $anrs[$res["anrede_id"]] ?? "";
|
|
$res["anrede2"] = $anrs[$res["anrede2_id"]] ?? "";
|
|
$res["titel"] = $titels[$res["titel_id"]] ?? "";
|
|
$res["titel2"] = $titels[$res["titel2_id"]] ?? "";
|
|
return $res;
|
|
}
|
|
|
|
function maketerminadresse($dbconn,$termid)
|
|
{
|
|
|
|
$adresse = db_zeile($dbconn,"SELECT nname, titel_id, titel2_id, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id, partner_id, adresse_id
|
|
FROM termin
|
|
JOIN adresse ON termin.adresse_id = adresse.id
|
|
JOIN strasse ON strasse.id = str_id
|
|
JOIN ort ON ort.id = ort_id JOIN land ON land.id = land_id
|
|
WHERE termin.id = ?", array($termid));
|
|
if(!$adresse)
|
|
{
|
|
error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
|
$adresse = array();
|
|
}
|
|
// ADRFIELD_* stehen in incs/constants.php
|
|
$anrs = db_zuordnung($dbconn, "SELECT id, anrede FROM anrede") ?: array();
|
|
$titels = db_zuordnung($dbconn, "SELECT id, titel FROM titel") ?: array();
|
|
|
|
$adressfields = "";
|
|
if($adresse["firma"])
|
|
$adressfields .= "11";
|
|
else
|
|
$adressfields .= "00";
|
|
|
|
if($anrs[$adresse["anrede_id"]])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($titels[$adresse["titel_id"]])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($adresse["vname"] || $adresse["nname"])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($anrs[$adresse["anrede2_id"]])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($titels[$adresse["titel2_id"]])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($adresse["vname2"] || $adresse["nname2"])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
$adressfields .= "110";
|
|
|
|
|
|
|
|
$firmaanr = substr($adressfields,ADRFIELD_FIRMAANR,1);
|
|
$firma = substr($adressfields,ADRFIELD_FIRMA,1);
|
|
$anr1 = substr($adressfields,ADRFIELD_ANR1,1);
|
|
$titel1 = substr($adressfields,ADRFIELD_TITEL1,1);
|
|
$name1 = substr($adressfields,ADRFIELD_NAME1,1);
|
|
$anr2 = substr($adressfields,ADRFIELD_ANR2,1);
|
|
$titel2 = substr($adressfields,ADRFIELD_TITEL2,1);
|
|
$name2 = substr($adressfields,ADRFIELD_NAME2,1);
|
|
$str = substr($adressfields,ADRFIELD_STR,1);
|
|
$ort = substr($adressfields,ADRFIELD_ORT,1);
|
|
$land = substr($adressfields,ADRFIELD_LAND,1);
|
|
|
|
if($firmaanr)
|
|
{
|
|
$adrstr .= "Firma";
|
|
}
|
|
if($firma)
|
|
{
|
|
$adrstr .= "<br />".trim($adresse["firma"]);
|
|
}
|
|
|
|
if($anr1 && $anr2 && $name1 && !$name2)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]];
|
|
if($titel1)
|
|
$adrstr .= " ".$titels[$adresse["titel_id"]];
|
|
$adrstr .= " und ";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]];
|
|
if($titel2)
|
|
$adrstr .= " ".$titels[$adresse["titel2_id"]];
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname"])
|
|
$adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname"]);
|
|
}
|
|
elseif($anr1 && $anr2 && $name2 && !$name1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]];
|
|
if($titel1)
|
|
$adrstr .= " ".$titels[$adresse["titel_id"]];
|
|
$adrstr .= " und ";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]];
|
|
if($titel2)
|
|
$adrstr .= " ".$titels[$adresse["titel2_id"]];
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname2"])
|
|
$adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname2"]);
|
|
}
|
|
else
|
|
{
|
|
if($anr1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]]." ";
|
|
}
|
|
|
|
if($titel1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $titels[$adresse["titel_id"]]." ";
|
|
}
|
|
if($name1)
|
|
{
|
|
if(!$titel1 && !$firma && !$firmaanr && !$name2 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if(!$anr1 && !$titel1 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname"])
|
|
$adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname"]);
|
|
}
|
|
if($anr2)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]]." ";
|
|
}
|
|
if($titel2)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $titels[$adresse["titel2_id"]]." ";
|
|
}
|
|
if($name2)
|
|
{
|
|
if(!$titel2 && !$firma && !$firmaanr && !$name1 && !$anr1 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if(!$anr2 && !$titel2 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname2"])
|
|
$adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname2"]);
|
|
}
|
|
}
|
|
if($str)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= trim($adresse["str"])." ".trim($adresse["hnr"]);
|
|
}
|
|
if($ort)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
if($land)
|
|
$adresse["ort"] = strtoupper($adresse["ort"]);
|
|
$adrstr .= trim($adresse["plz"])." ".trim($adresse["ort"]);
|
|
}
|
|
if($land)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= trim(strtoupper($adresse["land"]));
|
|
}
|
|
|
|
$lines=explode("<br />",$adrstr);
|
|
$lines = count($lines);
|
|
return array("lines"=>$lines,"adresse"=>$adrstr);
|
|
|
|
}
|
|
|
|
function makeadradresse($dbconn,$partnerid)
|
|
{
|
|
|
|
$qry=mysqli_query($dbconn,"SELECT nname, titel_id, titel2_id, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id, partner_id, adresse.id AS adresse_id
|
|
FROM adresse
|
|
JOIN strasse ON strasse.id = str_id
|
|
JOIN ort ON ort.id = ort_id JOIN land ON land.id = land_id
|
|
JOIN partner ON partner.id = partner_id
|
|
WHERE adresse.typ_id = 1 AND partner_id= $partnerid") or $err= error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
|
|
|
|
|
$adresse = mysqli_fetch_assoc($qry);
|
|
|
|
$qry = mysqli_query($dbconn,"SELECT * FROM anrede");
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$anrs[$res["id"]] = $res["anrede"];
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn,"SELECT * FROM titel");
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$titels[$res["id"]] = $res["titel"];
|
|
}
|
|
|
|
define("ADRFIELD_FIRMAANR", 0);
|
|
define("ADRFIELD_FIRMA", 1);
|
|
define("ADRFIELD_ANR1", 2);
|
|
define("ADRFIELD_TITEL1", 3);
|
|
define("ADRFIELD_NAME1", 4);
|
|
define("ADRFIELD_ANR2", 5);
|
|
define("ADRFIELD_TITEL2", 6);
|
|
define("ADRFIELD_NAME2", 7);
|
|
define("ADRFIELD_STR", 8);
|
|
define("ADRFIELD_ORT", 9);
|
|
define("ADRFIELD_LAND", 10);
|
|
|
|
$adressfields = "";
|
|
if($adresse["firma"])
|
|
$adressfields .= "11";
|
|
else
|
|
$adressfields .= "00";
|
|
|
|
if($anrs[$adresse["anrede_id"]])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($titels[$adresse["titel_id"]])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($adresse["vname"] || $adresse["nname"])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($anrs[$adresse["anrede2_id"]])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($titels[$adresse["titel2_id"]])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
if($adresse["vname2"] || $adresse["nname2"])
|
|
$adressfields .= "1";
|
|
else
|
|
$adressfields .= "0";
|
|
|
|
$adressfields .= "110";
|
|
|
|
|
|
|
|
$firmaanr = substr($adressfields,ADRFIELD_FIRMAANR,1);
|
|
$firma = substr($adressfields,ADRFIELD_FIRMA,1);
|
|
$anr1 = substr($adressfields,ADRFIELD_ANR1,1);
|
|
$titel1 = substr($adressfields,ADRFIELD_TITEL1,1);
|
|
$name1 = substr($adressfields,ADRFIELD_NAME1,1);
|
|
$anr2 = substr($adressfields,ADRFIELD_ANR2,1);
|
|
$titel2 = substr($adressfields,ADRFIELD_TITEL2,1);
|
|
$name2 = substr($adressfields,ADRFIELD_NAME2,1);
|
|
$str = substr($adressfields,ADRFIELD_STR,1);
|
|
$ort = substr($adressfields,ADRFIELD_ORT,1);
|
|
$land = substr($adressfields,ADRFIELD_LAND,1);
|
|
|
|
if($firmaanr)
|
|
{
|
|
$adrstr .= "Firma";
|
|
}
|
|
if($firma)
|
|
{
|
|
$adrstr .= "<br />".trim($adresse["firma"]);
|
|
}
|
|
|
|
if($anr1 && $anr2 && $name1 && !$name2)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]];
|
|
if($titel1)
|
|
$adrstr .= " ".$titels[$adresse["titel_id"]];
|
|
$adrstr .= " und ";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]];
|
|
if($titel2)
|
|
$adrstr .= " ".$titels[$adresse["titel2_id"]];
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname"])
|
|
$adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname"]);
|
|
}
|
|
elseif($anr1 && $anr2 && $name2 && !$name1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]];
|
|
if($titel1)
|
|
$adrstr .= " ".$titels[$adresse["titel_id"]];
|
|
$adrstr .= " und ";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]];
|
|
if($titel2)
|
|
$adrstr .= " ".$titels[$adresse["titel2_id"]];
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname2"])
|
|
$adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname2"]);
|
|
}
|
|
else
|
|
{
|
|
if($anr1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]]." ";
|
|
}
|
|
|
|
if($titel1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $titels[$adresse["titel_id"]]." ";
|
|
}
|
|
if($name1)
|
|
{
|
|
if(!$titel1 && !$firma && !$firmaanr && !$name2 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if(!$anr1 && !$titel1 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname"])
|
|
$adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname"]);
|
|
}
|
|
if($anr2)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]]." ";
|
|
}
|
|
if($titel2)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $titels[$adresse["titel2_id"]]." ";
|
|
}
|
|
if($name2)
|
|
{
|
|
if(!$titel2 && !$firma && !$firmaanr && !$name1 && !$anr1 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if(!$anr2 && !$titel2 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname2"])
|
|
$adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname2"]);
|
|
}
|
|
}
|
|
if($str)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= trim($adresse["str"])." ".trim($adresse["hnr"]);
|
|
}
|
|
if($ort)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
if($land)
|
|
$adresse["ort"] = strtoupper($adresse["ort"]);
|
|
$adrstr .= trim($adresse["plz"])." ".trim($adresse["ort"]);
|
|
}
|
|
if($land)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= trim(strtoupper($adresse["land"]));
|
|
}
|
|
|
|
$lines=explode("<br />",$adrstr);
|
|
$lines = count($lines);
|
|
return array("lines"=>$lines,"adresse"=>$adrstr);
|
|
|
|
}
|
|
|
|
function maketelnrn($dbconn,$termid)
|
|
{
|
|
$telstr = "";
|
|
$adresse = db_zeile($dbconn,"SELECT partner_id, adresse_id
|
|
FROM termin
|
|
JOIN adresse ON termin.adresse_id = adresse.id
|
|
WHERE termin.id = ?", array($termid));
|
|
if($adresse)
|
|
{
|
|
$zeilen = db_zeilen($dbconn,"SELECT name, typ, tel.id, nr, ort, ortsteil, plz, vwahl FROM tel
|
|
LEFT JOIN teltyp ON tel.typ_id = teltyp.id
|
|
LEFT JOIN ort ON tel.ort_id = ort.id
|
|
WHERE partner_id = ? AND (tel.adresse_id = 0 OR tel.adresse_id = ?)
|
|
ORDER BY tel.typ_id ASC", array($adresse["partner_id"], $adresse["adresse_id"]));
|
|
foreach((array)$zeilen as $res)
|
|
$telstr .= trim($res["typ"]).": "." (".$res["vwahl"].") ".$res["nr"]." in ".$res["ort"]."(".$res["name"].")\\n";
|
|
$zeilen = db_zeilen($dbconn,"SELECT kontakt, typ FROM kontakt
|
|
LEFT JOIN kontakttyp ON kontakt.typ_id = kontakttyp.id
|
|
WHERE partner_id = ? ORDER BY kontakt.typ_id ASC", array($adresse["partner_id"]));
|
|
foreach((array)$zeilen as $res)
|
|
$telstr .= trim($res["typ"]).": ".$res["kontakt"]."\\n";
|
|
}
|
|
return $telstr;
|
|
}
|
|
|
|
function makeadrtelnrn($dbconn,$partnerid)
|
|
{
|
|
$telstr = "";
|
|
$zeilen = db_zeilen($dbconn,"SELECT name, typ, tel.id, nr, ort, ortsteil, plz, vwahl FROM tel
|
|
LEFT JOIN teltyp ON tel.typ_id = teltyp.id
|
|
LEFT JOIN ort ON tel.ort_id = ort.id
|
|
WHERE partner_id = ? ORDER BY tel.typ_id ASC", array($partnerid));
|
|
foreach((array)$zeilen as $res)
|
|
$telstr .= trim($res["typ"]).": "."(".$res["vwahl"].")".$res["nr"].",".$res["ort"]."(".$res["name"].")\\n";
|
|
return $telstr;
|
|
}
|
|
|
|
function makegooglestring($dbconn,$termid)
|
|
{
|
|
|
|
$googlestr = "";
|
|
$adresse = db_zeile($dbconn,"SELECT nname, titel_id, titel2_id, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id
|
|
FROM termin
|
|
JOIN adresse ON termin.adresse_id = adresse.id
|
|
JOIN strasse ON strasse.id = str_id
|
|
JOIN ort ON ort.id = ort_id JOIN land ON land.id = land_id
|
|
WHERE termin.id = ?", array($termid));
|
|
if($adresse)
|
|
{
|
|
$googlestr = "http://maps.googleapis.com/maps/api/staticmap";
|
|
$googlestr .= "?markers=color:blue|label:A|";
|
|
$googlestr .= str_replace(" ","+",trim($adresse["plz"])." ".trim($adresse["ort"])." ".trim($adresse["str"])." ".trim($adresse["hnr"]));
|
|
$googlestr .= "&zoom=15&size=400x400&scale=2&sensor=false&maptype=roadmap";
|
|
//maptype: roadmap, hybrid, terrain, satellite
|
|
}
|
|
else
|
|
message("Adresse nicht gefunden");
|
|
return $googlestr;
|
|
|
|
}
|
|
|
|
function makeprojectpage($pdf,$adresse,$telnrn,$project,$work)
|
|
{
|
|
if($ajax)
|
|
$picpath = "../pics/";
|
|
else
|
|
$picpath = "./pics/";
|
|
|
|
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',6);
|
|
$pdf->setY(35);
|
|
$pdf->setX(25);
|
|
|
|
if($_SESSION["firma"] == "Wagner Markisen")
|
|
{
|
|
$pdf->SetTextColor(124,124,138);
|
|
$pdf->Cell(0,3,'WAGNER MARKISEN GMBH · IM ENGELFELD 13 · 87509 IMMENSTADT',0,0,'L');
|
|
}
|
|
elseif($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
|
{
|
|
$pdf->SetTextColor(20,47,119);
|
|
$pdf->Cell(0,3,'INGENIEURBÜRO MORITZ WAGNER IM ENGELFELD 13 87509 IMMENSTADT TEL.: 0176 22522937',0,0,'L');
|
|
}
|
|
else
|
|
{
|
|
$pdf->SetTextColor(124,124,138);
|
|
$pdf->Cell(0,3,'LSG OBERALLGÄU e.V. PHILIPP WAGNER IM ENGELFELD 13 87509 IMMENSTADT TEL.: 0176/21938558',0,0,'L');
|
|
}
|
|
$pdf->SetTextColor(0,0,0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->setY(40);
|
|
$pdf->setX(25);
|
|
$pdf->MultiCell(85,0,str_replace("<br />","\n",$adresse["adresse"]),0,"L",0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',10);
|
|
$tmpY = $pdf->getY();
|
|
$pdf->setY(40);
|
|
$pdf->setX(110);
|
|
$pdf->MultiCell(0,0,"Telefon:\n".$telnrn,0,"L",0);
|
|
if($pdf->getY() > $tmpY)
|
|
$tmpY = $pdf->getY();
|
|
$pdf->setY($tmpY);
|
|
$pdf->Ln(5);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'BU',16);
|
|
$pdf->Cell(0,5,$project["name"],0,1,"C",0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
|
$pdf->Ln(12);
|
|
//Table-re-HEAD
|
|
$currY = $pdf->GetY();
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(135,5,'Arbeit',0,0,'C');
|
|
$pdf->setX(155);
|
|
$pdf->Cell(25,5,'Datum',0,0,'C');
|
|
$pdf->setX(180);
|
|
$pdf->Cell(20,5,'Zeit',0,0,'C');
|
|
$pdf->Ln();
|
|
$pdf->Line(18 , $pdf->GetY(), 200, $pdf->GetY());
|
|
$pdf->Line(180 , $pdf->GetY()-5, 180, 270);
|
|
$pdf->Line(155 , $pdf->GetY()-5, 155, 270);
|
|
|
|
$currY = $pdf->GetY();
|
|
$pdf->SetDrawColor(100,100,100);
|
|
//while($pdf->GetY() < 260)
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$gesstd = 0;
|
|
foreach($work as $workline)
|
|
{
|
|
$i++;
|
|
if($i%2)
|
|
{
|
|
$pdf->rect(20,$pdf->GetY(),176,5,'F',Array("all"=>0),array(230,230,230));
|
|
}
|
|
$pdf->setX(20);
|
|
$pdf->Cell(135,5,$workline["bezeichn"],0,0,'L');
|
|
$pdf->setX(155);
|
|
$pdf->Cell(25,5,$workline["datetime"],0,0,'C');
|
|
$pdf->setX(180);
|
|
$pdf->Cell(20,5,number_format($workline["std"],1,",",".")." Std.",0,0,'C');
|
|
$pdf->Ln();
|
|
$gesstd += $workline["std"];
|
|
if($pdf->GetY()>255)
|
|
{
|
|
$pdf->AddPage("P");
|
|
//Table-re-HEAD
|
|
$currY = $pdf->GetY();
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(135,5,'Arbeit',0,0,'C');
|
|
$pdf->setX(155);
|
|
$pdf->Cell(25,5,'Datum',0,0,'C');
|
|
$pdf->setX(180);
|
|
$pdf->Cell(20,5,'Zeit',0,0,'C');
|
|
$pdf->Ln();
|
|
$pdf->Line(18 , $pdf->GetY(), 200, $pdf->GetY());
|
|
$pdf->Line(180 , $pdf->GetY()-5, 180, 270);
|
|
$pdf->Line(155 , $pdf->GetY()-5, 155, 270);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
}
|
|
}
|
|
$pdf->Line(18 , $pdf->GetY()+1, 200, $pdf->GetY());
|
|
$pdf->Line(18 , $pdf->GetY()+2, 200, $pdf->GetY()+1);
|
|
$pdf->SetY($pdf->GetY()+3);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(135,5,'Arbeitsstunden Summe:',0,0,'C');
|
|
$pdf->setX(155);
|
|
$pdf->Cell(25,5,'',0,0,'C');
|
|
$pdf->setX(180);
|
|
$pdf->Cell(20,5,number_format($gesstd,1,",",".")." Std.",0,0,'C');
|
|
}
|
|
|
|
function makezeitpage($pdf,$name,$daymins,$zeiten)
|
|
{
|
|
if($ajax)
|
|
$picpath = "../pics/";
|
|
else
|
|
$picpath = "./pics/";
|
|
|
|
$pdf->SetFont(PDF_SCHRIFT_SANS,'B',6);
|
|
$pdf->setY(35);
|
|
$pdf->setX(25);
|
|
|
|
if($_SESSION["firma"] == "Wagner Markisen")
|
|
{
|
|
$pdf->SetTextColor(124,124,138);
|
|
$pdf->Cell(0,3,'WAGNER MARKISEN GMBH · IM ENGELFELD 13 · 87509 IMMENSTADT',0,0,'L');
|
|
}
|
|
elseif($_SESSION["firma"] == "Ingenieurbüro Wagner")
|
|
{
|
|
$pdf->SetTextColor(20,47,119);
|
|
$pdf->Cell(0,3,'INGENIEURBÜRO MORITZ WAGNER IM ENGELFELD 13 87509 IMMENSTADT TEL.: 0176 22522937',0,0,'L');
|
|
}
|
|
else
|
|
{
|
|
$pdf->SetTextColor(124,124,138);
|
|
$pdf->Cell(0,3,'LSG OBERALLGÄU e.V. PHILIPP WAGNER IM ENGELFELD 13 87509 IMMENSTADT TEL.: 0176/21938558',0,0,'L');
|
|
}
|
|
$pdf->SetTextColor(0,0,0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$pdf->setY(40);
|
|
$pdf->setX(25);
|
|
$pdf->MultiCell(85,0,str_replace("<br />","\n",$name),0,"L",0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',10);
|
|
$tmpY = $pdf->getY();
|
|
$pdf->setY(40);
|
|
$pdf->setX(110);
|
|
$pdf->MultiCell(0,0,"Arbeitsstunden pro Tag:\n".$daymins/60,0,"L",0);
|
|
if($pdf->getY() > $tmpY)
|
|
$tmpY = $pdf->getY();
|
|
$pdf->setY($tmpY);
|
|
$pdf->Ln(5);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'BU',16);
|
|
$pdf->Cell(0,5,$project["name"],0,1,"C",0);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',16);
|
|
$pdf->Ln(12);
|
|
//Table-re-HEAD
|
|
$currY = $pdf->GetY();
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(35,5,'Kommen',0,0,'C');
|
|
$pdf->setX(55);
|
|
$pdf->Cell(35,5,'Gehen',0,0,'C');
|
|
$pdf->setX(90);
|
|
$pdf->Cell(20,5,'Pause',0,0,'C');
|
|
$pdf->setX(110);
|
|
$pdf->Cell(20,5,'Zeit',0,0,'C');
|
|
$pdf->Ln();
|
|
$pdf->Line(18 , $pdf->GetY(), 200, $pdf->GetY());
|
|
$pdf->Line(53 , $pdf->GetY()-5, 53, 270);
|
|
$pdf->Line(88 , $pdf->GetY()-5, 88, 270);
|
|
|
|
$currY = $pdf->GetY();
|
|
$pdf->SetDrawColor(100,100,100);
|
|
//while($pdf->GetY() < 260)
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
$gesstd = 0;
|
|
foreach($zeiten as $zeit)
|
|
{
|
|
$i++;
|
|
if($i%2)
|
|
{
|
|
$pdf->rect(20,$pdf->GetY(),176,5,'F',Array("all"=>0),array(230,230,230));
|
|
}
|
|
$pdf->setX(20);
|
|
$pdf->Cell(35,5,$zeit["kommen"],0,0,'L');
|
|
$pdf->setX(55);
|
|
$pdf->Cell(35,5,$zeit["gehen"],0,0,'C');
|
|
$pdf->setX(90);
|
|
$pdf->Cell(20,5,$zeit["pause_mins"]." Min.",0,0,'C');
|
|
$pdf->setX(110);
|
|
$pdf->Cell(20,5,floor($zeit["dauer_mins"]/60)." h ".round($zeit["dauer_mins"]-floor($zeit["dauer_mins"]/60)*60,0)."min",0,0,'C');
|
|
$pdf->Ln();
|
|
if($pdf->GetY()>255)
|
|
{
|
|
$pdf->AddPage("P");
|
|
//Table-re-HEAD
|
|
$currY = $pdf->GetY();
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(35,5,'Kommen',0,0,'C');
|
|
$pdf->setX(55);
|
|
$pdf->Cell(35,5,'Gehen',0,0,'C');
|
|
$pdf->setX(90);
|
|
$pdf->Cell(20,5,'Pause',0,0,'C');
|
|
$pdf->setX(110);
|
|
$pdf->Cell(20,5,'Zeit',0,0,'C');
|
|
$pdf->Ln();
|
|
$pdf->Line(18 , $pdf->GetY(), 200, $pdf->GetY());
|
|
$pdf->Line(180 , $pdf->GetY()-5, 180, 270);
|
|
$pdf->Line(155 , $pdf->GetY()-5, 155, 270);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'',12);
|
|
}
|
|
}
|
|
$pdf->Line(18 , $pdf->GetY()+1, 200, $pdf->GetY());
|
|
$pdf->Line(18 , $pdf->GetY()+2, 200, $pdf->GetY()+1);
|
|
$pdf->SetY($pdf->GetY()+3);
|
|
$pdf->SetFont(PDF_SCHRIFT_SERIF,'B',14);
|
|
$pdf->setX(20);
|
|
$pdf->Cell(35,5,'Arbeitsstunden Summe:',0,0,'C');
|
|
$pdf->setX(55);
|
|
$pdf->Cell(35,5,'',0,0,'C');
|
|
$pdf->setX(90);
|
|
$pdf->Cell(20,5,number_format($gesstd,1,",",".")." Min.",0,0,'C');
|
|
$pdf->setX(110);
|
|
$pdf->Cell(20,5,number_format($gesstd,1,",",".")." Min.",0,0,'C');
|
|
}
|
|
|
|
?>
|