#!/usr/bin/perl
#
#
use Data::Dumper;

print("Content-type: text/html\n\n");

print("<meta charset=\"UTF-8\">");

print("<link rel=stylesheet href=\"/workers/css/bootstrap/bootstrap.min.css\" type=text/css>");
print("<link rel=stylesheet href=\"/workers/css/select2/select2.css\" type=text/css>");
print("<link rel=stylesheet href=\"/workers/css/bootstrap/icons/font/bootstrap-icons.min.css\" type=text/css>");
print("<script type=text/javascript src=\"/workers/js/jquery.js\"></script>");
print("<script type=text/javascript src=\"/workers/js/jspdf.min.js\"></script>");
print("<script type=text/javascript src=\"/workers/js/select2/select2.js\"></script>");
print("<script type=text/javascript src=\"/workers/js/select2/select2_locale_de.js\"></script>");
print("<script type=text/javascript src=\"/workers/js/wagenhuber-workers.js\"></script>");
#
# User-ID zur weiteren Verarbeitung einbinden
print("<input type=hidden id=userid value='".$ENV{REMOTE_USER}."'>");
print("<div class='container'>");

# Überschrift
print("<div class='row'><div class='col-md-12'>");
print("<div class='alert alert-success text-center'><h1 id=comp_name></h1></div>");
print("</div></div>");

# Persönliche Daten
#
print("<div class='row'><div class='col-md-12'>");
print("<div class='alert alert-success text-center'>PERSÖNLICHE DATEN</div>");
print("</div></div>");

my $pinfo = {
	"personal" => {
		"headline" => "Wohnort",
		"data" => [[ "Straße","<input type=text id=street class='form-control'>" ],[ "Postleitzahl / Ort", "<input type=text id=location class='form-control'>" ]],
		"button_id" => "personalBtn",
	},

	"steuer" => {
		"headline" => "Finanzamt",
		"data" => [[ "Kinderfreibetrag", "<select id=kfb></select>" ],[ "Steuerklasse", "<select id=stkl></select>" ],],
		"button_id" => "steuerBtn",
	},

	"drlic" => {
		"headline" => "Führerschein",
		"data" => [ [ "Führerschein-Nummer", "<input type=text id=dlnr class='form-control'>" ],[ "Führerschein gültig bis", "<input type=text id=dlvalid class='form-control'>" ] ],
		"button_id" => "drlicBtn",
	},

	"bank" => {
		"headline" => "Bank",
		#"data" => [ [ "Name der Bank", "<input type=text id=bankname class='form-control'>" ],[ "IBAN", "<input type=text id=iban class='form-control'>" ],[ "BIC", "<input type=text id=bic class='form-control'>" ] ],
		"data" => [ [ "Name der Bank", "<input type=text id=bankname class='form-control'>" ],[ "IBAN", "<input type=text id=iban class='form-control'>" ] ],
		"button_id" => "bankBtn",
	}
};

print("<div class='row'><div class='col-md-12'>");

foreach my $key ( keys %{$pinfo} ) {
	print("<fieldset>");
	print("<legend>".$pinfo->{$key}->{headline}."</legend>");
	print("<table class='table table-bordered'><thead></thead><tbody>");

	foreach my $tr ( @{$pinfo->{$key}->{data}} ) {
		print("<tr class='text-center'>");
		print("<th class='w-50 table-active'>".$tr->[0]."</th><td>".$tr->[1]."</td>");
		print("</tr>");
	}

	print("<tr><td colspan=2><div class='text-center'><button type=button class='btn btn-outline-success' id='".$pinfo->{$key}->{button_id}."'>Speichern</button></div></td></tr>");
	print("</table>");
	print("</fieldset>");
}


print("</div></div>");

# Gehaltsabrechnungen
print("<div class='row'><div class='col-md-12'>");
print("<div class='alert alert-success text-center'>GEHALTSABRECHNUNGEN</div>");
print("</div></div>");

print("<div class='row'>");
my $ROOT_PATH = "/wagenhuber/workers/".$ENV{REMOTE_USER}."/gehalt";

print STDERR $ROOT_PATH."\n";

### Gehaltsabrechnungen einlesen ###
if( opendir(my $USERDIR, $ROOT_PATH) ) {
	print("<div class='col-md-12'>");

	my @year_list;

	while( readdir $USERDIR ) {
		if( $_ !~ /\.+/ ) {
                        push(@year_list, $_);
		}
	}

	foreach my $year ( sort @year_list ) {
		if( $_ !~ /\.+/ ) {
			opendir(my $MONEYDIR, $ROOT_PATH . "/" . $year);

			print("<table class='table table-bordered' id='gehalt_".$year."'><thead><tr class='text-center'><th class='table-active'>".$year."<a href=\"\" class='show_gehalt' data-table-id=\"gehalt_".$year."\"><i class=\"bi bi-arrow-left-square-fill float-right\" style='font-size:20px'></i></a></th></thead><tbody class='d-md-none'>");

			my $file_count = 0;
			my @file_list;

			while( readdir $MONEYDIR ) {
				if( $_ !~ /^\.+$/ ) {
					my $name = $_;
					$file_count++;
					push(@file_list,$name);
				}
			}

			if( $file_count == 0 ) {
				print("<tr><td>Keine Gehaltsabrechnungen vorhanden</td></tr>");
			}

			else {
				foreach my $filename ( sort @file_list ) {
					if( $filename ne ".DAV" ) {
						print("<tr><td class='text-center'>");
						print(get_button_code($filename));
						print("<div class='float-right'>");
						print("<a class='btn btn-outline-dark' href=\"/mdata/".$ENV{REMOTE_USER}."/gehalt/".$year."/".$filename."\" download>Download</a>");
						print("<a class='btn btn-outline-dark' href=\"/mdata/".$ENV{REMOTE_USER}."/gehalt/".$year."/".$filename."\" target=_blank>Anzeige</a>");
						print("</div></td></tr>");
					}
				}
			}

			print("</tbody></table>");
			closedir $MONEYDIR;
		}
	}

	closedir $USERDIR;

	print("</div>");
}

else {
	print("<div class='col-md-12'><div class='alert alert-info text-center'>Keine Gehaltsabrechnungen für den Mitarbeiter hinterlegt</div></div>");
}

print("</div>");

# Monatsberichte
print("<div class='row'>");
print("<div class='col-md-12'>");
print("<div class='alert alert-success text-center'>MONATSBERICHTE</div>");
print("</div>");
print("</div>");
print("<div class='row'>");
print("<div class='col-md-4'>");
print("<div class='text-center'>Jahr auswählen</div>");
print("</div>");
print("<div class='col-md-4'>");
print("<select id=mb_year></select>");
print("</div>");
print("<div class='col-md-4'>");
print("<div class='text-center'><button type=button class='btn btn-outline-success' id=mbBtn>Anzeigen</button></div>");
print("</div>");
print("</div>");
print("<div class='row'>");
print("<div class='col-md-12'>");
print("<embed type=application/pdf  id=mb_frame height='500px' width='100%'>");
print("</div></div>");

sub get_button_code {
	my $filename = shift;

	my @tmp = split(/\-/,$filename);

	my $months = {
		"01" => "Januar",
		"02" => "Februar",
		"03" => "März",
		"04" => "April",
		"05" => "Mai",
		"06" => "Juni",
		"07" => "Juli",
		"08" => "August",
		"09" => "September",
		"10" => "Oktober",
		"11" => "November",
		"12" => "Dezember",
	};

	return "<span class=\"badge badge-pill badge-info font-weight-bold\" style=\"font-size:20px;width:200px\">".$months->{$tmp[2]}."</span>";
}
