﻿<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

	<xsl:output method="html"/>

	<xsl:template match="/TimesheetPrint">

		<html>
			<head>

				<title><xsl:value-of select="/TimesheetPrint/Terminology/Timesheet" /></title>
				
				<style type="text/css" media="all">

					body {
					margin: 1cm;
					font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";;
					font-size: 12pt;
					font-weight: 400;
					line-height:  1.5;
					color: #212529;
					background-color: #fff;
					}

					hr {
					margin: 12pt 0;
					color: inherit;
					border: 0;
					border-top: 1px solid;
					opacity: .25
					}

					.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
					margin-top: 0;
					margin-bottom: 6pt;
					font-weight: 500;
					line-height: 1.2;
					color: #212529
					}

					.border {
					border: 1px solid #dee2e6 !important
					}
					.border-1 {
					border-width: 1px !important,

					}
					.w-100 {
					width: 100% !important
					}

					.mt-0 {
					margin-top: 0 !important
					}

					.mt-1 {
					margin-top: 3pt !important
					}

					.mt-2 {
					margin-top: 6pt !important
					}

					.mt-3 {
					margin-top: 12pt !important
					}

					.mt-4 {
					margin-top: 18pt !important
					}

					.mt-5 {
					margin-top: 36pt !important
					}

					.mt-auto {
					margin-top: auto !important
					}

					.mb-0 {
					margin-bottom: 0 !important
					}

					.mb-1 {
					margin-bottom: 3pt !important
					}

					.mb-2 {
					margin-bottom: 6pt !important
					}

					.mb-3 {
					margin-bottom: 12pt !important
					}

					.mb-4 {
					margin-bottom: 18pt !important
					}

					.mb-5 {
					margin-bottom: 36pt !important
					}

					.ms-1 {
					margin-left: 3pt !important;
					}

					.ms-2 {
					margin-left: 6pt !important;
					}

					.ms-3 {
					margin-left: 12pt !important;
					}

					.ms-4 {
					margin-left: 18pt !important;
					}

					.ms-5 {
					margin-left: 36pt !important;
					}

					.p-0 {
					padding: 0 !important
					}

					.p-1 {
					padding: 3pt !important
					}

					.p-2 {
					padding: 6pt !important
					}

					.p-3 {
					padding: 12pt !important
					}

					.p-4 {
					padding: 18pt !important
					}

					.p-5 {
					padding: 36pt !important
					}


					.px-0 {
					padding-right: 0 !important;
					padding-left: 0 !important
					}

					.px-1 {
					padding-right: 3pt !important;
					padding-left: 3pt !important
					}

					.px-2 {
					padding-right: 6pt !important;
					padding-left: 6pt !important
					}

					.px-3 {
					padding-right: 12pt !important;
					padding-left: 12pt !important
					}

					.px-4 {
					padding-right: 18pt !important;
					padding-left: 18pt !important
					}

					.px-5 {
					padding-right: 36pt !important;
					padding-left: 36pt !important
					}

					.py-0 {
					padding-top: 0 !important;
					padding-bottom: 0 !important
					}

					.py-1 {
					padding-top: 3pt !important;
					padding-bottom: 3pt !important
					}

					.py-2 {
					padding-top: 6pt !important;
					padding-bottom: 6pt !important
					}

					.py-3 {
					padding-top: 12pt !important;
					padding-bottom: 12pt !important
					}

					.py-4 {
					padding-top: 18pt !important;
					padding-bottom: 18pt !important
					}

					.py-5 {
					padding-top: 36pt !important;
					padding-bottom: 36pt !important
					}

					.fs-1 {
					font-size: 22pt !important
					}

					.fs-2 {
					font-size: 20pt !important
					}

					.fs-3 {
					font-size: 18pt !important
					}

					.fs-4 {
					font-size: 16pt !important
					}

					.fs-5 {
					font-size: 14pt !important
					}

					.fs-6 {
					font-size: 11pt !important
					}

					.fs-7 {
					font-size: 9pt !important
					}

					.fst-italic {
					font-style: italic !important
					}

					.fst-normal {
					font-style: normal !important
					}

					.fw-lighter {
					font-weight: lighter !important
					}

					.fw-light {
					font-weight: 300 !important
					}

					.fw-normal {
					font-weight: 400 !important
					}

					.fw-medium {
					font-weight: 500 !important
					}

					.fw-semibold {
					font-weight: 600 !important
					}

					.fw-bold {
					font-weight: 700 !important
					}

					.fw-bolder {
					font-weight: bolder !important
					}

					.table-borderless, .th-borderless, .td-borderless {
					border: 0;
					border-collapse: collapse
					}

					.table {
					width: 100%;
					margin-bottom: 12pt;
					vertical-align: top;
					}

					.table, th, td {
					border: 1px solid #dee2e6;
					border-collapse: collapse;
					}

					.table > :not(caption) > * > * {
					padding: 6pt 6pt;
					}

					.table > tbody {
					vertical-align: inherit
					}

					.table > thead {
					vertical-align: bottom
					}

					.d-flex {
					display: flex !important
					}

					.justify-content-between {
					justify-content: space-between !important
					}

					.text-start {
					text-align: left !important
					}

					.text-end {
					text-align: right !important
					}

					.text-center {
					text-align: center !important
					}

					.align-bottom {
					vertical-align: bottom !important;
					}

				</style>
				
			</head>

			<body>

				<xsl:for-each select="CustomersPrint/CustomerPrint">

					<xsl:for-each select="EndCustomersPrint/EndCustomerPrint">
					
						<div class="mb-2">
							<h3><xsl:value-of select="/TimesheetPrint/Terminology/Timesheet" /></h3>
						</div>


						<div class="mb-2 w-100">
							<table class="table-borderless w-100 fs-7">
								<tr>
									<td class="text-start td-borderless">
										<span>
											für
										</span>
										<span class="fw-bold">
											<xsl:value-of disable-output-escaping="yes" select="/TimesheetPrint/ContributorPrint/Name"/>
										</span>
									</td>
									<td class="text-end td-borderless">
										<div>
											<span>
												Zeitraum:
											</span>
											<span>
												<xsl:value-of disable-output-escaping="yes" select="/TimesheetPrint/StartDate"/> - <xsl:value-of disable-output-escaping="yes" select="/TimesheetPrint/EndDate"/>
											</span>
										</div>
									</td>
								</tr>
							</table>
						</div>
					
						<div class="mb-3 w-100">
					
							<table class="table w-100 fs-7">
								<tr>
								
									<td class="text-start align-bottom td-borderless p-2">
									
										<div>
											<span>
												<xsl:value-of select="/TimesheetPrint/Terminology/Customer"/>:
											</span>
											<span class="fw-bold">
												<xsl:value-of select="..//..//Name"/>
											</span>
										</div>

										<xsl:if test="Name != ''">
											<div>
												<span>
													<xsl:value-of select="/TimesheetPrint/Terminology/EndCustomer"/>:
												</span>
												<span class="fw-bold">
													<xsl:value-of select="Name"/>
												</span>
											</div>
										</xsl:if>
									
										<xsl:for-each select="ProjectsPrint/ProjectPrint">
										
											<xsl:choose>
												<xsl:when test="BillingType = '1'">
													<div>

														<xsl:choose>
															<xsl:when test="SumHours !=  '0,00'">
																<span class="me-4">
																	<xsl:value-of select="Name"/>:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumHours"/> Std.
																</span>
															</xsl:when>
														</xsl:choose>
													
														<xsl:choose>
															<xsl:when test="SumHoursBillable !=  '0,00'">
																<span class="ms-4">
																	Abrechenbar:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumHoursBillable"/> Std.
																</span>
															</xsl:when>
														</xsl:choose>
													
														<xsl:choose>
															<xsl:when test="SumHoursNonBillable !=  '0,00'">
																<span class="ms-4">
																	Nicht abrechenbar:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumHoursNonBillable"/> Std.
																</span>
															</xsl:when>
														</xsl:choose>
													
													</div>
												</xsl:when>
											</xsl:choose>
										</xsl:for-each>


										<xsl:for-each select="ProjectsPrint/ProjectPrint">
											<xsl:choose>
												<xsl:when test="BillingType = '2'">
													<div>

														<xsl:choose>
															<xsl:when test="SumAmount !=  '0,00'">
																<span class="me-4">
																	<xsl:value-of select="Name"/>:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumAmount"/>
																</span>
															</xsl:when>
														</xsl:choose>
															
														<xsl:choose>
															<xsl:when test="SumAmountBillable !=  '0,00'">
																<span class="ms-4">
																	Abrechenbar:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumAmountBillable"/>
																</span>
															</xsl:when>
														</xsl:choose>
													
														<xsl:choose>
															<xsl:when test="SumAmountNonBillable !=  '0,00'">
																<span class="ms-4">
																	Nicht abrechenbar:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumAmountNonBillable"/>
																</span>
															</xsl:when>
														</xsl:choose>
													
													</div>
												</xsl:when>
											</xsl:choose>
										</xsl:for-each>


										<xsl:for-each select="ProjectsPrint/ProjectPrint">
											<xsl:choose>
												<xsl:when test="BillingType = '3'">
													<div>

														<xsl:choose>
															<xsl:when test="SumAmount !=  '0,00'">
																<span class="me-4">
																	<xsl:value-of select="Name"/>:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumAmount"/>
																</span>
															</xsl:when>
														</xsl:choose>

														<xsl:choose>
															<xsl:when test="SumAmountBillable !=  '0,00'">
																<span class="ms-4">
																	Abrechenbar:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumAmountBillable"/>
																</span>
															</xsl:when>
														</xsl:choose>

														<xsl:choose>
															<xsl:when test="SumAmountNonBillable !=  '0,00'">
																<span class="ms-4">
																	Nicht abrechenbar:
																</span>
																<span class="fw-bold">
																	<xsl:value-of select="SumAmountNonBillable"/>
																</span>
															</xsl:when>
														</xsl:choose>

													</div>
												</xsl:when>
											</xsl:choose>
										</xsl:for-each>
									
									</td>

								</tr>
							</table>
						
						</div>

						
						<xsl:variable name="showBreaks" select="count(.//TimeRecordingsPrint/TimeRecordingPrint[Project/BillingType = '1' and normalize-space(BreakHours) != '']) &gt; 0"/>

						<xsl:choose>
							<xsl:when test="count(.//TimeRecordingsPrint/TimeRecordingPrint[Project/BillingType = '1']) != 0">
					
								<table class="table fs-7">

									<thead>
										<tr>
											<th class="px-1 py-1">Datum</th>
											<th class="px-1 py-1"><xsl:value-of select="/TimesheetPrint/Terminology/Project"/></th>
											<th class="px-1 py-1"><xsl:value-of select="/TimesheetPrint/Terminology/Contributor" /></th>
											<th class="px-1 py-1">Beginn</th>
											<th class="px-1 py-1">Ende</th>
											<th class="px-1 py-1">Stunden</th>
											<xsl:if test="$showBreaks">
												<th class="px-1 py-1">Pausen</th>
											</xsl:if>
											<th class="px-1 py-1">Beschreibung</th>
										</tr>

									</thead>

									<tbody>
							
										<xsl:for-each select=".//TimeRecordingsPrint/TimeRecordingPrint">
											
											<xsl:choose>
												<xsl:when test="Project/BillingType = '1'">
													<tr>
														<td class="px-1 py-1 text-center">
															<xsl:value-of select="Date"/>
														</td>
														<td class="px-1 py-1">
															<xsl:value-of select="Project/Name"/>
														</td>
														<td class="px-1 py-1">
															<xsl:value-of select="Contributor/Name"/>
														</td>
												<td class="px-1 py-1 text-center">
													<xsl:value-of select="StartTime"/>
												</td>
												<td class="px-1 py-1 text-center">
													<xsl:value-of select="EndTime"/>
												</td>
												<td class="px-1 py-1 text-end">
													<xsl:value-of select="Hours"/>
												</td>
												<xsl:if test="$showBreaks">
													<td class="px-1 py-1 text-end">
														<xsl:value-of select="BreakHours"/>
													</td>
												</xsl:if>
														<td class="px-1 py-1">
															<xsl:value-of select="Description"/>
														</td>
													</tr>
												</xsl:when>
											</xsl:choose>
								
										</xsl:for-each>

									</tbody>

								</table>

							</xsl:when>
						</xsl:choose>

						<div class="mb-3">
						</div>

						<xsl:choose>
							<xsl:when test="count(.//TimeRecordingsPrint/TimeRecordingPrint[Project/BillingType = '2']) != 0">

								<table class="table fs-7">

									<thead>
										<tr>
											<th class="px-1 py-1">Datum</th>
											<th class="px-1 py-1"><xsl:value-of select="/TimesheetPrint/Terminology/Project"/></th>
											<th class="px-1 py-1"><xsl:value-of select="/TimesheetPrint/Terminology/Contributor" /></th>
											<th class="px-1 py-1">Anzahl</th>
											<th class="px-1 py-1">Beschreibung</th>
										</tr>

									</thead>

									<tbody>

										<xsl:for-each select=".//TimeRecordingsPrint/TimeRecordingPrint">
											
											<xsl:choose>
												<xsl:when test="Project/BillingType = '2'">
													<tr>
														<td class="px-1 py-1 text-center">
															<xsl:value-of select="Date"/>
														</td>
														<td class="px-1 py-1">
															<xsl:value-of select="Project/Name"/>
														</td>
														<td class="px-1 py-1">
															<xsl:value-of select="Contributor/Name"/>
														</td>
														<td class="px-1 py-1 text-end">
															<xsl:value-of select="Amount"/>
														</td>
														<td class="px-1 py-1">
															<xsl:value-of select="Description"/>
														</td>
													</tr>
												</xsl:when>
											</xsl:choose>

										</xsl:for-each>

									</tbody>

								</table>

							</xsl:when>
						</xsl:choose>

						<div class="mb-3">
						</div>

						<xsl:choose>
							<xsl:when test="count(.//TimeRecordingsPrint/TimeRecordingPrint[Project/BillingType = '3']) != 0">

								<table class="table fs-7">

									<thead>
										<tr>
											<th class="px-1 py-1">Datum</th>
											<th class="px-1 py-1"><xsl:value-of select="/TimesheetPrint/Terminology/Project"/></th>
											<th class="px-1 py-1"><xsl:value-of select="/TimesheetPrint/Terminology/Contributor" /></th>
											<th class="px-1 py-1">Personentage</th>
											<th class="px-1 py-1">Beschreibung</th>
										</tr>

									</thead>

									<tbody>

										<xsl:for-each select=".//TimeRecordingsPrint/TimeRecordingPrint">

											<xsl:choose>
												<xsl:when test="Project/BillingType = '3'">
													<tr>
														<td class="px-1 py-1 text-center">
															<xsl:value-of select="Date"/>
														</td>
														<td class="px-1 py-1">
															<xsl:value-of select="Project/Name"/>
														</td>
														<td class="px-1 py-1">
															<xsl:value-of select="Contributor/Name"/>
														</td>
														<td class="px-1 py-1 text-end">
															<xsl:value-of select="Amount"/>
														</td>
														<td class="px-1 py-1">
															<xsl:value-of select="Description"/>
														</td>
													</tr>
												</xsl:when>
											</xsl:choose>

										</xsl:for-each>

									</tbody>

								</table>

							</xsl:when>
						</xsl:choose>
						
						<div class="mb-5 mt-5">

							<table class="table-borderless w-100  fs-7">
								<tr>
									<td class="text-start td-borderless">
										<div class="fw-light">
											________________________________________
										</div>
										<div class="fw-light">
											Unterschrift <xsl:value-of disable-output-escaping="yes" select="..//..//Name"/>
										</div>
									</td>
									<td class="text-end td-borderless">
										<div class="fw-light">
											________________________________________
										</div>
										<div class="fw-light">
											Unterschrift <xsl:value-of disable-output-escaping="yes" select="/TimesheetPrint/ContributorPrint/Name"/>
										</div>
									</td>
								</tr>
								<xsl:if test="Name != ''">
									<tr>
										<td class="text-start td-borderless">
											<div class="fw-light mt-5">
												________________________________________
											</div>
											<div class="fw-light">
												Unterschrift <xsl:value-of disable-output-escaping="yes" select="Name"/>
											</div>
										</td>
										<td class="text-end td-borderless">
											<span> </span>
										</td>
									</tr>
								</xsl:if>
							</table>
						</div>
					
						
						
						<div>

							<table class="table-borderless w-100 fs-7">
								<tr>
									<td class="text-start td-borderless">
										<div class="fw-light">
											<xsl:value-of disable-output-escaping="yes" select="/TimesheetPrint/ClientPrint/Name"/>
										</div>
									</td>
									<td class="text-end td-borderless">
										<div class="fw-light">
											Erstellt durch <xsl:value-of disable-output-escaping="yes" select="/TimesheetPrint/ContributorPrint/Name"/> am <xsl:value-of disable-output-escaping="yes" select="/TimesheetPrint/PrintDate"/>
										</div>
									</td>
								</tr>
							</table>
						</div>
					
						<xsl:if test="following::EndCustomerPrint">
							<div style="page-break-before: always;"></div>
						</xsl:if>

					</xsl:for-each>
						
				</xsl:for-each>
				
			</body>
			
		</html>

	</xsl:template>
	

</xsl:stylesheet>
