<?xml version = "1.0" encoding = "utf-8"?>
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
  xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
	xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
  xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
  exclude-result-prefixes="cac cec cbc inv">
  <xsl:template match = "/">
    <html>
      <body>
        <style>
          body {
          font-family: Arial, sans-serif;
          margin: 0;
          padding: 0;
          background-color: #f9f9f9;
          font-size: 12px;
          line-height: 12px;
          }
          .column {
          flex: 1 1 48%;
          }
          .text-right {
          text-align: right;
          }
          .details-table {
          width: 100%;
          border-collapse: collapse;
          }
          .details-table th {
          border: 1px solid #ddd;
          padding: 8px;
          text-align: left;
          line-height: 14px;
          }
          .details-table td {
          border: 1px solid #ddd;
          padding: 8px;
          line-height: 14px;
          }
          .details-table th {
          background-color: #f4f4f4;
          }
          .total {
          text-align: right;
          margin-top: 20px;
          font-size: 18px;
          font-weight: bold;
          }
          .logo {
          width: 150px;
          height: auto;
          }
          .border-none {
          border: 0px !important;
          width:"100%";
          }
          .footer {
          font-size: 9px;

          }
        </style>
        <table width="100%">
          <tr>
            <td width="50%" style="text-align:right">
              <table align="right" class="border-none">
                <tr>
                  <td align="right" colspan="2">
                    <img src="resources/logo.png" alt="Company Logo" class="logo" />
                  </td>
                </tr>
                <tr>
                  <td>
                    <span style="color: #ec7722; margin-right: 10px">&#160;</span>
                  </td>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <span style="color: #ec7722; margin-right: 10px">&#160;</span>
                  </td>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetName"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <span style="color: #ec7722; margin-right: 10px">&#160;</span>
                  </td>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:PostalZone"/>&#160;
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <span style="color: #ec7722; margin-right: 10px">T</span>
                  </td>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:Telephone"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <span style="color: #ec7722; margin-right: 10px">E</span>
                  </td>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:ElectronicMail"/>
                  </td>
                </tr>
              </table>
            </td>
          </tr>
          <tr>
            <td width="50%">
              <table align="left"  class="border-none">
                <tr>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName"/> -
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetName"/> -
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:PostalZone"/>&#160;
                    <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyName"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:StreetName"/>
                  </td>
                </tr>
                <tr>
                  <td>
                    <xsl:value-of select = "inv:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:PostalZone"/>&#160;
                    <xsl:value-of select = "inv:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:CityName"/>
                  </td>
                </tr>
              </table>
            </td>
          </tr>
        </table>

      

        <table width="100%">
          <tr>
            <td width="50%">
              <h3 style="color: #ec7722; text-align: left">
                Rechnung - Nr. <xsl:value-of select = "inv:Invoice/cbc:ID"/>
              </h3>
            </td>
            <td align="right">
                  <table align="right">
          <tr>
            <td>Rechnungsdatum:</td>
            <td>
              <xsl:value-of select = "inv:Invoice/cbc:IssueDate"/>
            </td>
          </tr>
          <tr>
            <td>Fälligkeitsdatum:</td>
            <td>
              <xsl:value-of select = "inv:Invoice/cbc:DueDate"/>
            </td>
          </tr>
          <tr>
            <td>Leitweg-ID:</td>
            <td>
              <xsl:value-of select = "inv:Invoice/cbc:BuyerReference"/>
            </td>
          </tr>
          <tr>
            <td>Projektinfos:</td>
            <td>
              <xsl:value-of select = "inv:Invoice/cac:ProjectReference"/>
            </td>
          </tr>
          <tr>
            <td>Ansprechpartner:</td>
            <td>
              <xsl:value-of select = "inv:Invoice/cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Name"/>
            </td>
          </tr>
          <tr>
            <td>Beträge in:</td>
            <td>
              <xsl:value-of select = "inv:Invoice/cbc:DocumentCurrencyCode"/>
            </td>
          </tr>
        </table>
            </td>
          </tr>
        </table>

        <br/>
        <div style ="width: 100%;height: 680px;">
          <table class="details-table">
            <thead>
              <tr>
                <th>Pos.</th>
                <th align="left">Artikelbeschreibung</th>
                <th align="right">Menge</th>
                <th align="right">Einheit</th>
                <th align="right">Preis</th>
                <th align="right">Betrag</th>
              </tr>
            </thead>
            <tbody>
              <xsl:for-each select="inv:Invoice/cac:InvoiceLine">
                <tr>
                  <td>
                    <xsl:value-of select = "cbc:ID"/>
                  </td>
                  <td>
                    <xsl:value-of select = "cac:Item/cbc:Name"/>
                  </td>
                  <td class="column text-right">
                    <xsl:value-of select = "cbc:InvoicedQuantity"/>&#160;
                  </td>
                  <td class="column text-right">
                    <xsl:value-of select = "cbc:InvoicedQuantity/@unitCode"/>
                  </td>
                  <td class="column text-right">
                    <xsl:value-of select = "cac:Price/cbc:PriceAmount"/>
                  </td>
                  <td class="column text-right">
                    <xsl:value-of select = "cbc:LineExtensionAmount"/>
                  </td>
                </tr>
              </xsl:for-each>
              <tr>
                <td colspan="5">
                  &#160;
                </td>
                <td>&#160;</td>
              </tr>
              <tr>
                <td colspan="5" class="column text-right">Rechnungssumme netto</td>
                <td class="column text-right">
                  <xsl:value-of select = "inv:Invoice/cac:LegalMonetaryTotal/cbc:LineExtensionAmount"/>
                </td>
              </tr>
              
              <xsl:for-each select="inv:Invoice/cac:TaxTotal/cac:TaxSubtotal">
                <xsl:if test="cac:TaxCategory/cbc:Percent = 19">
                  <tr>
                    <td colspan="5" class="column text-right">zuzüglich 19% MwSt</td>
                    <td class="column text-right">
                      <xsl:value-of select = "cbc:TaxAmount"/>
                    </td>
                  </tr>
                </xsl:if>
             
                <xsl:if test="cac:TaxCategory/cbc:Percent = 7">
                  <tr>
                    <td colspan="5" class="column text-right">zuzüglich 7% MwSt</td>
                    <td class="column text-right">
                      <xsl:value-of select = "cbc:TaxAmount"/>
                    </td>
                  </tr>
                </xsl:if>
                </xsl:for-each>
             
              <tr>
                <td colspan="5" class="column text-right">Rechnungssumme brutto</td>
                <td class="column text-right">
                  <xsl:value-of select = "inv:Invoice/cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount"/>
                </td>
              </tr>
              <tr>
                <td colspan="5" class="column text-right">Bereits gezahlter Betrag</td>
                <td class="column text-right">
                  <xsl:value-of select = "inv:Invoice/cac:LegalMonetaryTotal/cbc:PrepaidAmount"/>
                </td>
              </tr>
              <tr>
                <td colspan="5" class="column text-right">Fälliger Rechnungsbetrag</td>
                <td class="column text-right">
                  <xsl:value-of select = "inv:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount"/>
                </td>
              </tr>
            </tbody>
          </table>

        </div>
      
        <footer>
        <table style="width: 100%; font-size:9px;">
          <tr>
            <td style="padding-left:20px;">
                <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName"/>
                <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetName"/>&#160;
                <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:PostalZone"/>&#160;
                <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName"/>&#160;
                <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode"/>
            </td>
            <td>
                <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:Name"/>
                Tel: &#160;<xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:Telephone"/>
                Email:&#160;<xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:ElectronicMail"/>
            </td>
            <td>
                <xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName"/>
                VAT ID:&#160;<xsl:value-of select = "inv:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID"/>
            </td>
            <td>
                <xsl:value-of select = "inv:Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:Name"/>
                BIC:&#160;<xsl:value-of select = "inv:Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:ID"/>
                IBAN:&#160;<xsl:value-of select = "inv:Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID"/>
            </td>
          </tr>


        </table>

        </footer>


      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
