<?xml version="1.0" encoding="UTF-8"?>
<!-- ===== Copyright Notice ===== -->
<!--  
 Copyright (C) Elektronički Računi d.o.o 2019. All Rights Reserved.

Elektronički Računi d.o.o  takes no position regarding the validity or scope of any 
  intellectual property or other rights that might be claimed to pertain 
  to the implementation or use of the technology described in this 
  document or the extent to which any license under such rights 
  might or might not be available; neither does it represent that it has 
  made any effort to identify any such rights. 

This document and translations of it may be copied and furnished to 
  others, in whole or in part, for the purpose of integration with
  Moj eRačun network, provided that the above copyright notice and this 
  paragraph are included on all such copies and derivative works. 
  Other usages of the document or its translations are prohibited.
  However, this document itself may not be modified in any way, 
  such as by removing the copyright notice or references to 
  OASIS or Elektronički računi d.o.o., 
 -->
 
<!-- V2019-12-09-v7
*** Kreira IssuePlace ako ne postoji CityName
-->
 
 
 <!-- V2019-12-04-v6
*** Kreira Delivery ako ne postoji

*** Kreira ActualDeliveryDate i stavlja IssueDate ako ne postoji

*** TaxScheme je uvijek VAT
-->
 
 <!-- V2019-11-26-v4
*** Izbacuje sve ekstenzije osim mjesta izdavanja i vizualizacije

-->
 <!-- V2019-11-23-v3
*** AdditionalDocumentReference/ID - oni u navedeno polje zapisuju interni broj računa. Znači ono što stoji u polju ID  treba upisati i u ovo polje.


-->




<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://fina.hr/eracun/erp/OutgoingInvoicesData/v3.2" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:ns1="urn:oasis:names:specification:ubl:schema:xsd:AttachedDocument-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ns2="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" 
xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" 
xmlns:sig="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2" 
xmlns:a="urn:oasis:names:specification:ubl:schema:xsd:AttachedDocument-2"
xmlns:ihi="urn:invoice:hr:issueplace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="ns0 xs ns1 ns2 sig ihi">
	<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
	
	<xsl:variable name="isOutsideVAT">false</xsl:variable>
	<xsl:template match="/">
		<xsl:choose>
			<xsl:when test="/ns2:Invoice"><xsl:copy-of select="/ns2:Invoice" /></xsl:when>
			<xsl:otherwise><xsl:apply-templates select="//ns2:Invoice" /></xsl:otherwise>
		</xsl:choose>
		
		
	</xsl:template>
	
	<xsl:template match="ns2:Invoice">
		<xsl:copy>
<!--		<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" 
			xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" 
			xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
			xmlns:xsd="http://www.w3.org/2001/XMLSchema"			xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" 
			xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" 
			xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" 
			xmlns:n0="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2" 
			xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2" 
			xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" 
			xmlns:sbc="urn:oasis:names:specification:ubl:schema:xsd:SignatureBasicComponents-2" 
			xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2" 
			xmlns:ccts-cct="urn:un:unece:uncefact:data:specification:CoreComponentTypeSchemaModule:2"  
			xmlns:sig="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2" 
		>-->
			
			
			
			<ext:UBLExtensions>
			
				<!--<xsl:apply-templates select="ext:UBLExtensions/ext:UBLExtension[not(.//sig:UBLDocumentSignatures)]" />-->
				<xsl:call-template name="UBLExtensionPlace" />
				
				<xsl:apply-templates select="//a:AttachedDocument/cac:Attachment" mode="Attachment" />

			</ext:UBLExtensions>

			<cbc:UBLVersionID>2.0</cbc:UBLVersionID>
			<cbc:CustomizationID>HRUBL-1.0</cbc:CustomizationID>
			<!--<xsl:apply-templates select="cbc:ProfileID" />-->
			<!--<cbc:ProfileID>MojEracunInvoice</cbc:ProfileID>-->
			<xsl:apply-templates select="cbc:ID" mode="FiscalNumber" />
			<xsl:apply-templates select="cbc:CopyIndicator" />
			<xsl:apply-templates select="cbc:IssueDate" />
			<xsl:apply-templates select="cbc:IssueTime" />
			

			<xsl:apply-templates select="cbc:InvoiceTypeCode" />
			<xsl:apply-templates select="cbc:Note" />
			<xsl:apply-templates select="cbc:TaxPointDate" />
			<xsl:copy-of select="cbc:DocumentCurrencyCode" />
			<xsl:copy-of select="cbc:TaxCurrencyCode" />
			<xsl:apply-templates select="cbc:AccountingCost" />
			<xsl:apply-templates select="cbc:BuyerReference" />
			<xsl:apply-templates select="cac:InvoicePeriod" />
			
			<xsl:apply-templates select="cac:OrderReference" />
			<xsl:apply-templates select="cac:BillingReference" />
			<xsl:copy-of select="cac:DespatchDocumentReference" />			
			<xsl:copy-of select="cac:ReceiptDocumentReference" />
			<xsl:copy-of select="cac:OriginatorDocumentReference" />
			<xsl:copy-of select="cac:ContractDocumentReference" />
			<xsl:apply-templates select="cac:AdditionalDocumentReference[cbc:DocumentType != 'SAPTypeID']" />
			<xsl:apply-templates select="cbc:ID" mode="AdditionalDocumentReference" />
						
			<xsl:apply-templates select="cac:AccountingSupplierParty" />
			<xsl:apply-templates select="cac:AccountingCustomerParty" />
			
			<xsl:copy-of select="cac:PayeeParty" />
			<xsl:copy-of select="cac:TaxRepresentativeParty" />
			
			<!--<xsl:apply-templates select="cac:Delivery" />-->
			<xsl:call-template name="cac:Delivery" />
			
			<xsl:apply-templates select="cac:PaymentMeans" />
			<xsl:apply-templates select="cac:PaymentTerms" />
			
			<xsl:apply-templates select="cac:AllowanceCharge" />
			
			<xsl:apply-templates select="cac:TaxTotal" />
			<xsl:apply-templates select="cac:LegalMonetaryTotal" />

			<xsl:apply-templates select="cac:InvoiceLine" />
		</xsl:copy>
<!--		</Invoice>-->
	
	</xsl:template>
	
	<xsl:template match="cac:Attachment" mode="Attachment">
		<ext:UBLExtension>
			<cbc:Name>
				<xsl:choose>
					<xsl:when test="normalize-space(cbc:EmbeddedDocumentBinaryObject/@mimeCode) != ''">
						<xsl:value-of select="normalize-space(cbc:EmbeddedDocumentBinaryObject/@mimeCode)" />
					</xsl:when>
					<xsl:otherwise>application/pdf</xsl:otherwise>
				</xsl:choose>
			</cbc:Name>
			<ext:ExtensionContent>
				<xsl:value-of select="cbc:EmbeddedDocumentBinaryObject" />
			</ext:ExtensionContent>
		</ext:UBLExtension>
	</xsl:template>
	
	<xsl:template name="UBLExtensionPlace">
		<ext:UBLExtension>
			<cbc:ID>HRINVOICE1</cbc:ID>
			<cbc:Name>InvoiceIssuePlaceData</cbc:Name>
			<ext:ExtensionAgencyID>hr</ext:ExtensionAgencyID>
			<ext:ExtensionAgencyName>Hrvatska</ext:ExtensionAgencyName>
			<ext:ExtensionReasonCode>MandatoryField</ext:ExtensionReasonCode>
			<ext:ExtensionReason> Mjesto izdavanja racun prema Pravilniku o PDV-u</ext:ExtensionReason>
			<ext:ExtensionContent>
				<ihi:IssuePlace xmlns:ihi="urn:invoice:hr:issueplace">
					<xsl:choose>
						<xsl:when test=".//ihi:IssuePlace"><xsl:value-of select=".//ihi:IssuePlace" /></xsl:when>
						<xsl:when test=".//ext:InvoiceIssuePlace and normalize-space(.//ext.InvoiceIssuePlace) != ''"><xsl:value-of select=".//ext:InvoiceIssuePlace" /></xsl:when>
						<xsl:when test="//cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName and (normalize-space(//cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName) != '') "><xsl:value-of select="//cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName" /></xsl:when>
						<xsl:otherwise><xsl:value-of select="//cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:AddressLine/cbc:Line" /></xsl:otherwise>
					</xsl:choose>
				</ihi:IssuePlace>
				<ihc:ChannelID xmlns:ihc="urn:invoice:hr:channelID">1</ihc:ChannelID>
				<xsl:if test="//ns2:Invoice/cac:AdditionalDocumentReference[cbc:DocumentType='SAPTypeID']/cbc:ID != ''">
					<iht:SAPTypeID xmlns:iht="urn:invoice:hr:saptypeID"><xsl:value-of select="//ns2:Invoice/cac:AdditionalDocumentReference[cbc:DocumentType='SAPTypeID']/cbc:ID"/></iht:SAPTypeID>
				</xsl:if>
			</ext:ExtensionContent>
		</ext:UBLExtension>	
	</xsl:template>
	
	<xsl:template match="cac:InvoiceLine">
		<cac:InvoiceLine>
			<xsl:copy-of select="cbc:ID" />
			<xsl:copy-of select="cbc:Note" />
			<xsl:copy-of select="cbc:InvoicedQuantity" />
			<xsl:copy-of select="cbc:LineExtensionAmount" />
			<xsl:copy-of select="cbc:AccountingCost" />
			<xsl:copy-of select="cac:InvoicePeriod" />
			<xsl:copy-of select="cac:OrderLineReference" />
			<xsl:copy-of select="cac:DocumentReference"/>
			<xsl:copy-of select="cac:DespatchLineReference" />
			<xsl:apply-templates select="cac:AllowanceCharge" mode="InvoiceLine" />
			<xsl:apply-templates select="cac:TaxTotal" mode="InvoiceLine" />
			<xsl:copy-of select="cac:Item" />
			<xsl:copy-of select="cac:Price"  />
			

		</cac:InvoiceLine>
		
	</xsl:template>	
	

	
	<xsl:template match="cac:AllowanceCharge" mode="InvoiceLine" >
		<cac:AllowanceCharge>
			<xsl:apply-templates select="cbc:ChargeIndicator" />
			<xsl:apply-templates select="cbc:AllowanceChargeReasonCode" />
			<xsl:apply-templates select="cbc:AllowanceChargeReason" />
			<xsl:apply-templates select="cbc:MultiplierFactorNumeric" />
			<xsl:apply-templates select="cbc:Amount" />
			<xsl:apply-templates select="cbc:BaseAmount" />

			</cac:AllowanceCharge>
			

	</xsl:template>
	
	
	<xsl:template match="cac:TaxTotal" mode="InvoiceLine">
		<cac:TaxTotal>
			<xsl:apply-templates select="cbc:TaxAmount" />
			<xsl:apply-templates select="cac:TaxSubtotal" mode="InvoiceLine" />
		</cac:TaxTotal>
	
	</xsl:template>

	<xsl:template match="cac:TaxSubtotal" mode="InvoiceLine" >
		<cac:TaxSubtotal>
			<xsl:apply-templates select="cbc:TaxableAmount" />
			<xsl:apply-templates select="cbc:TaxAmount" />
			<xsl:apply-templates select="cbc:CalculationSequenceNumeric" />
			<xsl:apply-templates select="cac:TaxCategory" />
		
		</cac:TaxSubtotal>
	
	</xsl:template>
	
	<xsl:template match="cac:TaxCategory">
		<cac:TaxCategory>
			<xsl:copy-of select="cbc:ID" />
			<xsl:copy-of select="cbc:Name" />
			<xsl:copy-of select="cbc:Percent" />
			<xsl:apply-templates select="cbc:TaxExemptionReason"/>
			<xsl:call-template name="HRTaxScheme">
				<xsl:with-param name="percent" select="cbc:Percent" />			
			
			</xsl:call-template>
		
		</cac:TaxCategory>
	
	</xsl:template>
	
	
	
	<xsl:template name="HRTaxScheme">
		<xsl:param name="percent" select="0"/>
		<cac:TaxScheme>
			 <cbc:ID>VAT</cbc:ID>
		</cac:TaxScheme>	 
<!--			<xsl:choose>
				<xsl:when test="number($percent) = 0">
					<cac:TaxScheme>
						<cbc:Name>FRE</cbc:Name>
						<cbc:TaxTypeCode listAgencyName="RH" listName="taxtypecode" listVersionID="1.1" listURI="http://cv.eracun.hr/ubl/os-ubl-2.0/cl/gc/taxtypecode" listSchemeURI="urn:hrubl:codelist:taxtypecode-1.1">ZeroRated</cbc:TaxTypeCode>
					</cac:TaxScheme>		
				</xsl:when>
				<xsl:when test="string(number($percent)) = 'NaN'">
					<cac:TaxScheme>
						<cbc:Name>FRE</cbc:Name>
						<cbc:TaxTypeCode listAgencyName="RH" listName="taxtypecode" listVersionID="1.1" listURI="http://cv.eracun.hr/ubl/os-ubl-2.0/cl/gc/taxtypecode" listSchemeURI="urn:hrubl:codelist:taxtypecode-1.1">ZeroRated</cbc:TaxTypeCode>
					</cac:TaxScheme>		
				</xsl:when>
				<xsl:otherwise>
					<cac:TaxScheme>
						<cbc:Name>VAT</cbc:Name>
						<cbc:TaxTypeCode listAgencyName="RH" listName="taxtypecode" listVersionID="1.1" listURI="http://cv.eracun.hr/ubl/os-ubl-2.0/cl/gc/taxtypecode" listSchemeURI="urn:hrubl:codelist:taxtypecode-1.1">StandardRated</cbc:TaxTypeCode>
					</cac:TaxScheme>
				
				</xsl:otherwise>
			</xsl:choose>
-->	
	</xsl:template>

	
	<xsl:template match="cac:DocumentReference" mode="InvoiceLine">
		<xsl:if test="cbc:ID and (normalize-space(cbc:ID) != '')" >
			<cac:DocumentReference>
				<xsl:apply-templates select="cbc:ID" mode="SchemeID"/>
			</cac:DocumentReference>
		</xsl:if>
	</xsl:template>
	
	<xsl:template match="cac:DespatchLineReference" mode="InvoiceLine">
	
	<!--TODO: vidjeti da li staviti neko drugo mapiranje - Vindija navodi Order/cbc:ID-->
		<xsl:if test="cbc:LineID and (normalize-space(cbc:LineID) != '')" >
			<cac:DocumentReference>
				<cbc:ID schemeID="AAK">
					<xsl:value-of select="cbc:LineID" />
				</cbc:ID>
			</cac:DocumentReference>
		</xsl:if>
	</xsl:template>
	
	
	<xsl:template match="cac:OrderLineReference" mode="InvoiceLine">
	
	<!--TODO: vidjeti da li staviti neko drugo mapiranje - Vindija navodi Order/cbc:ID-->
		<xsl:if test="cbc:LineID and (normalize-space(cbc:LineID) != '')" >
			<cac:OrderLineReference>
				<xsl:apply-templates select="cbc:LineID" />
			</cac:OrderLineReference>
		</xsl:if>
	</xsl:template>
	
	<xsl:template match="cac:InvoicePeriod" mode="InvoiceLine">
		<cac:InvoicePeriod>
			<xsl:apply-templates select="cbc:StartDate" />
			<xsl:apply-templates select="cbc:EndDate" />
		
		</cac:InvoicePeriod>
	
	</xsl:template>

	
	<xsl:template match="cbc:InvoicedQuantity">
		<cbc:InvoicedQuantity>
			<xsl:attribute name="unitCode" namespace="">
				<xsl:value-of select="@unitCode" />
			</xsl:attribute>
			<xsl:value-of select="number(.)" />
			
		</cbc:InvoicedQuantity>
	</xsl:template>



	<xsl:template match="cac:LegalMonetaryTotal">
		<cac:LegalMonetaryTotal>
			<xsl:choose>
				<xsl:when test="cbc:LineExtensionAmount"><xsl:apply-templates select="cbc:LineExtensionAmount" /></xsl:when>
				<xsl:otherwise>
					<cbc:LineExtensionAmount>
						<xsl:copy-of select="cbc:TaxExclusiveAmount/@currencyID" />
						<xsl:value-of select="cbc:TaxExclusiveAmount" />
					</cbc:LineExtensionAmount>
				</xsl:otherwise>
			</xsl:choose>
			
			<xsl:apply-templates select="cbc:TaxExclusiveAmount" />
			<xsl:apply-templates select="cbc:TaxInclusiveAmount" />
			<xsl:apply-templates select="cbc:AllowanceTotalAmount" />
			<xsl:apply-templates select="cbc:ChargeTotalAmount" />
			<xsl:apply-templates select="cbc:PrepaidAmount" />
			<xsl:apply-templates select="cbc:PayableRoundingAmount" />
			<xsl:apply-templates select="cbc:PayableAmount" />
		
		</cac:LegalMonetaryTotal>
	
	</xsl:template>
	
	
	<xsl:template match="cac:TaxTotal">
	
		<cac:TaxTotal>
			<xsl:apply-templates select="cbc:TaxAmount" />
			<xsl:apply-templates select="cac:TaxSubtotal" mode="TaxTotal" />
		
		</cac:TaxTotal>
	
	
	</xsl:template>
	
	
	
	<xsl:template match="cac:TaxSubtotal" mode="TaxTotal" >
		<cac:TaxSubtotal>
			<xsl:apply-templates select="cbc:TaxableAmount" />
			<xsl:apply-templates select="cbc:TaxAmount" />
			<xsl:apply-templates select="cac:TaxCategory" mode="TaxTotal" />
		
		</cac:TaxSubtotal>
	
	</xsl:template>
	
	<xsl:template match="cac:TaxCategory" mode="TaxTotal" >
		<cac:TaxCategory>
			
			<xsl:copy-of select="cbc:ID" />
			<xsl:apply-templates select="cbc:Name" />
			<xsl:apply-templates select="cbc:Percent" />
			
			<xsl:apply-templates select="cbc:TaxExemptionReasonCode" />
			<xsl:apply-templates select="cbc:TaxExemptionReason" />
			
			<xsl:call-template name="HRTaxScheme">
				<xsl:with-param name="percent" select="cbc:Percent" />			
			
			</xsl:call-template>
		</cac:TaxCategory>

	</xsl:template>
	
	<xsl:template match="cbc:TaxExemptionReason">
		<cbc:TaxExemptionReason>
			<xsl:choose>
				<xsl:when test="normalize-space(.) !=''">
					<xsl:value-of select="."/>
				</xsl:when>
				<xsl:otherwise>Porez 0</xsl:otherwise>
			</xsl:choose>
		</cbc:TaxExemptionReason>
	</xsl:template>
	
	<xsl:template match="cbc:TaxExemptionReasonCode" >
		<xsl:if test="normalize-space(../cbc:TaxExemptionReason) = ''">
			<cbc:TaxExemptionReasonCode>
				<xsl:value-of select="." />
			</cbc:TaxExemptionReasonCode>
		</xsl:if>
	</xsl:template>
	

	
	<xsl:template match="cac:AllowanceCharge">
		<cac:AllowanceCharge>
			<xsl:apply-templates select="cbc:ChargeIndicator" />
			<xsl:apply-templates select="cbc:AllowanceChargeReasonCode" />
			<!--<xsl:apply-templates select="cbc:AllowanceChargeReason" />-->
			<xsl:call-template name="AllowanceChargeReason" />
			<xsl:apply-templates select="cbc:MultiplierFactorNumeric" />
			<xsl:apply-templates select="cbc:Amount" />
			<xsl:apply-templates select="cbc:BaseAmount" />
			
			<xsl:choose>
				<xsl:when test="cac:TaxCategory">
					<xsl:apply-templates select="cac:TaxCategory" mode="AllowanceCharge" />
				</xsl:when>
				<xsl:when test="cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory">
					<xsl:apply-templates select="cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory" mode="AllowanceCharge" />
				</xsl:when>
			</xsl:choose>
			
		
		</cac:AllowanceCharge>
	
	</xsl:template>
	
	<xsl:template name="AllowanceChargeReason">
		<xsl:choose>
			<xsl:when test="not(cbc:AllowanceChargeReason) or (normalize-space(cbc:AllowanceChargeReason) = '')">
				<xsl:choose>
					<xsl:when test="cbc:ChargeIndicator = 'false'">
						<cbc:AllowanceChargeReason>POPUST</cbc:AllowanceChargeReason>
					</xsl:when>
					<xsl:otherwise>
						<cbc:AllowanceChargeReason>TROŠAK</cbc:AllowanceChargeReason>
					</xsl:otherwise>
				</xsl:choose>
			</xsl:when>
			<xsl:otherwise>
				<xsl:apply-templates select="cbc:AllowanceChargeReason" />
			</xsl:otherwise>
		</xsl:choose>
	
	</xsl:template>
	
		
	<xsl:template match="cac:TaxCategory" mode="AllowanceCharge">
		<cac:TaxCategory>
			<xsl:copy-of select="cbc:ID" />
			<xsl:copy-of select="cbc:Name" />
			<xsl:apply-templates select="cbc:Percent" />
					
			<xsl:call-template name="HRTaxScheme">
				<xsl:with-param name="percent" select="cbc:Percent" />			
			
			</xsl:call-template>
		
		</cac:TaxCategory>
	
	</xsl:template>
	
	
	<xsl:template match="cbc:ChargeIndicator" >
		<xsl:variable name="chargeIndicatorValue"><xsl:value-of select="normalize-space(.)" /></xsl:variable>
		<cbc:ChargeIndicator>
			<xsl:choose>
				<xsl:when test="$chargeIndicatorValue = 'true'">true</xsl:when>
				<xsl:when test="$chargeIndicatorValue = 'TRUE'">true</xsl:when>
				<xsl:when test="$chargeIndicatorValue = '1'">true</xsl:when>
				<xsl:when test="$chargeIndicatorValue = 'false'">false</xsl:when>
				<xsl:when test="$chargeIndicatorValue = 'FALSE'">false</xsl:when>
				<xsl:when test="$chargeIndicatorValue = '0'">false</xsl:when>
			</xsl:choose>
		</cbc:ChargeIndicator>
	</xsl:template>
	
	<xsl:template match="cac:PaymentTerms" >
		<cac:PaymentTerms>
			<xsl:apply-templates select="cbc:Note" />
		</cac:PaymentTerms>
	
	</xsl:template>
	
	<xsl:template match="cac:PaymentMeans" >
		<cac:PaymentMeans>
			<xsl:copy-of select="cbc:PaymentMeansCode" />
			<xsl:apply-templates select="cbc:PaymentDueDate" mode="PaymentMeans"/>
			<!--<xsl:copy-of select="cbc:PaymentChannelCode" />-->
			<xsl:apply-templates select="cbc:PaymentChannelCode" />
			<xsl:call-template name="PaymentID" />
			<xsl:apply-templates select="cbc:InstructionNote" />
			<xsl:call-template name="InstructionID" />			
			<xsl:apply-templates select="cac:CardAccount" />
			<xsl:apply-templates select="cac:PayeeFinancialAccount" mode="PaymentMeans" />
			<xsl:apply-templates select="cac:PaymentMandate" />
			
		
		</cac:PaymentMeans>
	
	</xsl:template>
	
	<xsl:template match="cbc:PaymentChannelCode">
		<cbc:PaymentChannelCode listID="Payment Channel" listAgencyID="BII"><xsl:value-of select="." /></cbc:PaymentChannelCode>
	</xsl:template>
	
	<xsl:template match="cac:PaymentMandate" >
		<cac:PaymentMandate>
			<xsl:apply-templates select="cbc:ID" />
			<xsl:apply-templates select="cac:PayeeFinancialAccount" mode="PaymentMandate" />
		
		</cac:PaymentMandate>	
	
	</xsl:template>
	
	<xsl:template match="cac:PayeeFinancialAccount" mode="PaymentMandate" >
		<cac:PayeeFinancialAccount>
			<xsl:apply-templates select="cbc:ID" />
		</cac:PayeeFinancialAccount>
	
	</xsl:template>
	
	<xsl:template match="cac:PayeeFinancialAccount" mode="PaymentMeans">
		<cac:PayeeFinancialAccount>
			<xsl:apply-templates select="cbc:ID" />
			<xsl:apply-templates select="cbc:Name" />
			<xsl:apply-templates select="cac:FinancialInstitutionBranch" />
		
		</cac:PayeeFinancialAccount>
	
	</xsl:template>
	
	<xsl:template match="cac:FinancialInstitutionBranch">
		<cac:FinancialInstitutionBranch>
			<xsl:choose>
				<xsl:when test="cbc:ID and (normalize-space(cbc:ID) != '')">
					<xsl:apply-templates select="cbc:ID" />
				</xsl:when>
				<xsl:when test="cac:FinancialInstitution/cbc:ID and (normalize-space(cac:FinancialInstitution/cbc:ID) != '')" >
					<xsl:apply-templates select="cac:FinancialInstitution/cbc:ID" />
				</xsl:when>
			</xsl:choose>
		
		</cac:FinancialInstitutionBranch>
	
	</xsl:template>
	
	<xsl:template match="cac:CardAccount" >
		<cac:CardAccount>
			<xsl:apply-templates select="cbc:PrimaryAccountNumberID" />
			<xsl:apply-templates select="cbc:NetworkID" />
			<xsl:apply-templates select="cbc:HolderName" />
		
		</cac:CardAccount>
	
	</xsl:template>
	
	<xsl:template name="PaymentID" >
		<xsl:variable name="instructionID"><xsl:value-of select="normalize-space(substring-after(cbc:PaymentID, 'HR'))" /></xsl:variable>
		<cbc:InstructionID>
			<xsl:choose>
				<xsl:when test="string($instructionID) != ''"><xsl:value-of select="$instructionID" /></xsl:when>
				<xsl:otherwise><xsl:value-of select="normalize-space(cbc:PaymentID)" /></xsl:otherwise>
			</xsl:choose>
		
		</cbc:InstructionID>
	
	</xsl:template>

	
	<xsl:template name="InstructionID" >
		<cbc:PaymentID>
			<xsl:value-of select="normalize-space(cbc:InstructionID)" />
		</cbc:PaymentID>
	
	</xsl:template>
	
	
	
	<xsl:template name="cac:Delivery" >
		<cac:Delivery>
			<xsl:choose>
				<xsl:when test="//ns2:Invoice/cac:Delivery/cbc:ActualDeliveryDate"><xsl:apply-templates select="//ns2:Invoice/cac:Delivery/cbc:ActualDeliveryDate" /></xsl:when>
				<xsl:otherwise>
					<cbc:ActualDeliveryDate>
						<xsl:value-of select="//ns2:Invoice/cbc:IssueDate" />
					</cbc:ActualDeliveryDate>
				
				</xsl:otherwise>
			</xsl:choose>
			
			<xsl:choose>
				<xsl:when test="//ns2:Invoice/cac:Delivery/cac:DeliveryLocation">
					<xsl:apply-templates select="//ns2:Invoice/cac:Delivery/cac:DeliveryLocation" />
				</xsl:when>
				<xsl:when test="//ns2:Invoice/cac:Delivery/cac:DeliveryAddress">
					<xsl:apply-templates select="cac:DeliveryAddress" />
				</xsl:when>
			</xsl:choose>
			
			<xsl:apply-templates select="//ns2:Invoice/cac:Delivery/cac:DeliveryParty" />
		
		</cac:Delivery>
	
	</xsl:template>
	
	<xsl:template match="cac:DeliveryParty" >
		<cac:DeliveryParty>
			<xsl:apply-templates select="cac:PartyName" />
		
		</cac:DeliveryParty>
	
	</xsl:template>
	
	<xsl:template match="cac:DeliveryAddress">
		<cac:DeliveryLocation>
			<cac:Address>
				<!--<xsl:apply-templates select="cbc:StreetName" />-->
				<xsl:call-template name="StreetName" />
				<xsl:apply-templates select="cbc:AdditionalStreetName" />
				<xsl:apply-templates select="cbc:CityName" />
				<xsl:apply-templates select="cbc:PostalZone" />
				<xsl:apply-templates select="cbc:CountrySubentity" />
				<xsl:apply-templates select="cac:AddressLine" />
				<!--<xsl:apply-templates select="cac:Country" />-->
				<xsl:call-template name="Country">
					<xsl:with-param name="countryCode" select="cac:Country/cbc:IdentificationCode" />
				</xsl:call-template>

			
			</cac:Address>
		</cac:DeliveryLocation>
	
	</xsl:template>
	
	<xsl:template match="cac:DeliveryLocation" >
		<cac:DeliveryLocation>
			<xsl:apply-templates select="cbc:ID" mode="SchemeID" />
			<xsl:apply-templates select="cac:Address" />
			<xsl:apply-templates select="cac:DeliveryParty" />
			
		</cac:DeliveryLocation>
	
	</xsl:template>
	
	<xsl:template match="cac:DeliveryParty" >
		<cac:DeliveryParty>
			<xsl:apply-templates select="cac:PartyName" />
		
		</cac:DeliveryParty>
	
	</xsl:template>
	
	<xsl:template match="cac:Address">
		<cac:Address>
			<!--<xsl:apply-templates select="cbc:StreetName" />-->
			<cbc:AddressFormatCode listID="UN/ECE 3477" listAgencyID="6">1</cbc:AddressFormatCode>
			<xsl:apply-templates select="cbc:StreetName" />
			<xsl:apply-templates select="cbc:BuildingNumber" />
			<xsl:apply-templates select="cbc:CityName" />
			<xsl:apply-templates select="cbc:PostalZone" />
			<xsl:apply-templates select="cbc:CountrySubentity" />
			<xsl:call-template name="AddressLine" />
			<!--<xsl:apply-templates select="cac:Country" />-->
			<xsl:copy-of select="cac:Country" />
		
		</cac:Address>	
	</xsl:template>
	
	
	
	<xsl:template match="cac:AccountingCustomerParty">
		<cac:AccountingCustomerParty>
		
			<xsl:apply-templates select="cac:Party" mode="AccountingCustomerParty" />
			<xsl:apply-templates select="cac:AccountingContact" />
		
		</cac:AccountingCustomerParty>
	
	</xsl:template>
	
		<xsl:template match="cac:Party" mode="AccountingCustomerParty" >
		<cac:Party>
			<!--<xsl:apply-templates select="cac:PartyLegalEntity/cbc:CompanyID" mode="EndpointID" />-->
			<xsl:copy-of select="cbc:EndpointID" />
			<xsl:copy-of select="cac:PartyIdentification" />
			<xsl:copy-of select="cac:PartyName" />
			<xsl:apply-templates select="cac:PostalAddress" />
			<!--<xsl:call-template name="PartyTaxScheme" />-->
			<xsl:copy-of select="cac:PartyLegalEntity" />
			<xsl:copy-of select="cac:Contact" />
		
		</cac:Party>
	
	</xsl:template>
	
	<xsl:template match="cac:PartyLegalEntity" mode="AccountingCustomerParty" >
		<cac:PartyLegalEntity>
			<xsl:apply-templates select="cbc:RegistrationName" />
			<xsl:apply-templates select="cbc:CompanyID" mode="SchemeID" />
		
		</cac:PartyLegalEntity>
	
	</xsl:template>

	
	<xsl:template match="cac:AccountingSupplierParty" >
		<cac:AccountingSupplierParty>
			<xsl:apply-templates select="cac:Party" mode="AccountingSupplierParty" />
			<xsl:apply-templates select="cac:AccountingContact" mode="InaSupplierContact"/>
		
		</cac:AccountingSupplierParty>
	
	</xsl:template>
	
	<xsl:template match="cac:Party" mode="AccountingSupplierParty" >
		<cac:Party>
			<!--<xsl:apply-templates select="cac:PartyLegalEntity/cbc:CompanyID" mode="EndpointID" />-->
			<xsl:copy-of select="cbc:EndpointID" />
			<xsl:copy-of select="cac:PartyIdentification" />
			<xsl:copy-of select="cac:PartyName" />
			<xsl:apply-templates select="cac:PostalAddress" />
			<!--<xsl:call-template name="PartyTaxScheme" />-->
			<xsl:copy-of select="cac:PartyLegalEntity" />
			<xsl:copy-of select="cac:Contact" />
		
		</cac:Party>
	
	</xsl:template>
	
	<xsl:template match="cac:AccountingContact" mode="InaSupplierContact">
		<cac:AccountingContact>
			<cbc:Name>
				<xsl:choose>
					<xsl:when test="cbc:Name and (normalize-space(cbc:Name) != '')"><xsl:value-of select="cbc:Name" /></xsl:when>
					<xsl:otherwise><xsl:value-of select="cbc:Note" /></xsl:otherwise>
				</xsl:choose>
			
			</cbc:Name>

			<xsl:apply-templates select="cbc:ElectronicMail" />

			<cbc:Note>
				<xsl:choose>
					<xsl:when test="cbc:Note and (normalize-space(cbc:Note) != '')"><xsl:value-of select="cbc:Note" /></xsl:when>
					<xsl:otherwise><xsl:value-of select="cbc:Name" /></xsl:otherwise>
				</xsl:choose>
			
			</cbc:Note>
		</cac:AccountingContact>
	
	
	</xsl:template>
	
	<xsl:template match="cac:AccountingContact">
		<cac:AccountingContact>
			<xsl:apply-templates select="cbc:Name" />
			<xsl:apply-templates select="cbc:ElectronicMail" />
			<xsl:apply-templates select="cbc:Note" />
		</cac:AccountingContact>
	
	
	</xsl:template>
	
	<xsl:template match="cac:PostalAddress" >
		<cac:PostalAddress>
			<cbc:AddressFormatCode listID="UN/ECE 3477" listAgencyID="6">1</cbc:AddressFormatCode>
			<xsl:apply-templates select="cbc:StreetName" />
			<xsl:apply-templates select="cbc:BuildingNumber" />
			<xsl:apply-templates select="cbc:CityName" />
			<xsl:apply-templates select="cbc:PostalZone" />
			<xsl:apply-templates select="cbc:CountrySubentity" />
			<xsl:call-template name="AddressLine" />
			<!--<xsl:apply-templates select="cac:Country" />-->
			<xsl:copy-of select="cac:Country" />
				
		</cac:PostalAddress>
	
	</xsl:template>
	
	<xsl:template match="cac:Country" >
		<cac:Country>
			<xsl:apply-templates select="cbc:IdentificationCode" />
		
		</cac:Country>
	
	</xsl:template>
	
	<xsl:template name="AddressLine">
		<xsl:choose>
			<xsl:when test="cac:AddressLine"><xsl:copy-of select="cac:AddressLine" /></xsl:when>
			<xsl:otherwise>
				<cac:AddressLine>
					<cbc:Line>
						<xsl:value-of select="normalize-space(concat(cbc:StreetName, ' ', cbc:BuildingNumber))" />
					</cbc:Line>
				</cac:AddressLine>
			</xsl:otherwise>
		
		</xsl:choose>
	
	</xsl:template>
	
	<xsl:template match="cac:AddressLine">
		<cac:AddressLine>
			<xsl:apply-templates select="cbc:Line" />
		</cac:AddressLine>
	
	</xsl:template>
	
	<xsl:template name="StreetName">
		<xsl:choose>
			<xsl:when test="cbc:StreetName and (normalize-space(cbc:StreetName) != '')">
				<cbc:StreetName>
					<xsl:value-of select="cbc:StreetName" />
					<xsl:if test="cbc:BuildingNumber and (normalize-space(cbc:BuildingNumber) != '')" >
						<xsl:value-of select="concat(' ', normalize-space(cbc:BuildingNumber))" />
					</xsl:if>
				</cbc:StreetName>
			</xsl:when>
			<xsl:when test="cbc:AddressLine and (normalize-space(cbc:AddressLine) != '')">
				<cbc:StreetName>
					<xsl:value-of select="cbc:AddressLine" />
				</cbc:StreetName>
			</xsl:when>
		</xsl:choose>
	</xsl:template>
	
	<xsl:template match="cac:PartyName" >
		<cac:PartyName>
			<xsl:choose>
				<xsl:when test="cbc:Name and (normalize-space(cbc:Name) != '')">
					<cbc:Name><xsl:value-of select="cbc:Name" /></cbc:Name>
				</xsl:when>
				<xsl:when test="../cac:PartyLegalEntity/cbc:RegistrationName and (normalize-space(../cac:PartyLegalEntity/cbc:RegistrationName) != '')">
					<cbc:Name><xsl:value-of select="../cac:PartyLegalEntity/cbc:RegistrationName" /></cbc:Name>
				
				</xsl:when>
			</xsl:choose>
		</cac:PartyName>
	
	</xsl:template>
	
	
	<xsl:template match="cac:ProjectReference" >
		<cac:ProjectReference>
			<xsl:apply-templates select="cbc:ID" mode="ID" />
		</cac:ProjectReference>
	
	</xsl:template>
	<xsl:template match="cac:AdditionalDocumentReference">
		<cac:AdditionalDocumentReference>
			<xsl:apply-templates select="cbc:ID" mode="FiscalAdditionalDocumentReference" />
			<xsl:apply-templates select="cbc:IssueDate"/>
			<xsl:apply-templates select="cbc:DocumentType" />
			<xsl:apply-templates select="cac:Attachment" />
			
		</cac:AdditionalDocumentReference>
		
	</xsl:template>
	<xsl:template match="cbc:ID" mode="FiscalAdditionalDocumentReference">
		<cbc:ID>
			<xsl:choose>
				<xsl:when test="//cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID = '15538072333'">
					<xsl:choose>
						<xsl:when test="contains(.,'RIZ')">
							<xsl:value-of select="."/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:choose>
								<xsl:when test="contains(../../cbc:ID,'RIZ')">
									<xsl:value-of select="../../cbc:ID"/>
								</xsl:when>	
								<xsl:otherwise>
									<xsl:value-of select="."/>
								</xsl:otherwise>
							</xsl:choose>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="//cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID = '99172175603'">
					<xsl:choose>
						<xsl:when test="contains(.,'STSI')">
							<xsl:value-of select="."/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:choose>
								<xsl:when test="contains(../../cbc:ID,'STSI')">
									<xsl:value-of select="../../cbc:ID"/>
								</xsl:when>	
								<xsl:otherwise>
									<xsl:value-of select="."/>
								</xsl:otherwise>
							</xsl:choose>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:otherwise>
					<xsl:value-of select="."/>
				</xsl:otherwise>
			</xsl:choose>
		</cbc:ID>
	</xsl:template>
	
	
	<xsl:template match="cbc:ID" mode="AdditionalDocumentReference">
		<cac:AdditionalDocumentReference>
			<cbc:ID><xsl:value-of select="." /></cbc:ID>
					
		</cac:AdditionalDocumentReference>
	
	</xsl:template>
	

	<xsl:template match="cbc:ID" mode="FiscalNumber">
		<cbc:ID>
			<xsl:choose>
				<xsl:when test="//cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID = '15538072333'">
					<xsl:choose>
						<xsl:when test="not(contains(.,'RIZ'))">
							<xsl:value-of select="."/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:choose>
								<xsl:when test="not(contains(../cac:AdditionalDocumentReference/cbc:ID,'RIZ'))">
									<xsl:value-of select="../cac:AdditionalDocumentReference/cbc:ID"/>
								</xsl:when>	
								<xsl:otherwise>
									<xsl:value-of select="."/>
								</xsl:otherwise>
							</xsl:choose>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="//cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID = '99172175603'">
					<xsl:choose>
						<xsl:when test="not(contains(.,'STSI'))">
							<xsl:value-of select="."/>
						</xsl:when>
						<xsl:otherwise>
							<xsl:choose>
								<xsl:when test="not(contains(../cac:AdditionalDocumentReference/cbc:ID,'STSI'))">
									<xsl:value-of select="../cac:AdditionalDocumentReference/cbc:ID"/>
								</xsl:when>	
								<xsl:otherwise>
									<xsl:value-of select="."/>
								</xsl:otherwise>
							</xsl:choose>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:otherwise>
					<xsl:value-of select="."/>
				</xsl:otherwise>
			</xsl:choose>
		</cbc:ID>
	</xsl:template>
	


	
	<xsl:template match="cac:ExternalReference" >
		<cac:ExternalReference>
			<xsl:apply-templates select="cbc:URI" />
		
		</cac:ExternalReference>
	
	</xsl:template>
	
	
	<xsl:template match="cbc:EmbeddedDocumentBinaryObject">
		<cbc:EmbeddedDocumentBinaryObject>
			<xsl:attribute name="mimeCode" namespace="">
				<xsl:value-of select="@mimeCode"/>
			</xsl:attribute>
		
			<xsl:attribute name="filename" namespace="">
				<xsl:value-of select="translate(@filename, ':/\&amp;', '-__ ')"/>
			</xsl:attribute>

			<xsl:value-of select="."/>
			
		</cbc:EmbeddedDocumentBinaryObject>
	
	</xsl:template>
	
	<xsl:template match="cac:ContractDocumentReference" >
		<cac:ContractDocumentReference>
			<xsl:apply-templates select="cbc:ID" mode="ID" />
		</cac:ContractDocumentReference>
	
	</xsl:template>

	<xsl:template match="cac:OriginatorDocumentReference" >
		<cac:OriginatorDocumentReference>
			<xsl:apply-templates select="cbc:ID" mode="ID" />
		</cac:OriginatorDocumentReference>
	
	</xsl:template>
	
	<xsl:template match="cac:ReceiptDocumentReference" >
		<cac:ReceiptDocumentReference>
			<xsl:apply-templates select="cbc:ID" mode="ID" />
		</cac:ReceiptDocumentReference>
	
	</xsl:template>
	
	<xsl:template match="cac:DespatchDocumentReference" >
		<cac:DespatchDocumentReference>
			<xsl:apply-templates select="cbc:ID" mode="ID" />
		</cac:DespatchDocumentReference>
	
	</xsl:template>
	
	<xsl:template match="cac:BillingReference" >
		<cac:BillingReference>
			<xsl:apply-templates select="cac:InvoiceDocumentReference" />
		
		</cac:BillingReference>	
	
	</xsl:template>
	
	<xsl:template match="cac:InvoiceDocumentReference" >
	<!--ISPRAVAK: V3 15.07.2019-->
		<cac:InvoiceDocumentReference>
			<xsl:apply-templates select="cbc:ID" mode="ID" />
			<xsl:apply-templates select="cbc:IssueDate" />
		</cac:InvoiceDocumentReference>
	
	</xsl:template>
	
	<xsl:template match="cac:OrderReference" >
		<cac:OrderReference>
			<xsl:apply-templates select="cbc:ID" mode="OrderReferenceID" />
			<xsl:apply-templates select="cbc:SalesOrderID" />		
			<xsl:apply-templates select="cbc:IssueDate"/>
			<xsl:apply-templates select="cbc:IssueTime"/>
		</cac:OrderReference>
	
	</xsl:template>
	
	
	<xsl:template match="cac:InvoicePeriod" >
		<cac:InvoicePeriod>
			<xsl:apply-templates select="cbc:StartDate" />
			<xsl:apply-templates select="cbc:EndDate" />
			<xsl:apply-templates select="cbc:DescriptionCode" />
		
		</cac:InvoicePeriod>
	
	</xsl:template>
	<xsl:template match="cbc:IssueDate">
		<cbc:IssueDate>
			<xsl:value-of select="."/>
		</cbc:IssueDate>
	</xsl:template>
	<xsl:template match="cbc:IssueTime">
		<cbc:IssueTime>
			<xsl:value-of select="."/>
		</cbc:IssueTime>
	</xsl:template>
	<xsl:template match="cbc:SalesOrderID">
		<cbc:IssueTime>
			<xsl:value-of select="."/>
		</cbc:IssueTime>
	</xsl:template>
	
	<xsl:template match="cbc:DescriptionCode">
	<!-- Vidjeti da li trebaju atributti - iskoristiti Copy-of u tom slučaju-->
		<cbc:DescriptionCode>
			<xsl:value-of select="." />
		</cbc:DescriptionCode>
		
	
	</xsl:template>
	

	<xsl:template match="cbc:InvoiceTypeCode">
		<cbc:InvoiceTypeCode>
			<xsl:choose>
				<xsl:when test="normalize-space(.) != '394'">
					<xsl:value-of select="."/></xsl:when>
				<xsl:otherwise>380</xsl:otherwise>
			</xsl:choose>
		</cbc:InvoiceTypeCode>
	</xsl:template>
	
	<xsl:template match="cac:PaymentMeans/cbc:PaymentDueDate">
		<cbc:DueDate>
			<xsl:value-of select="."/>
		</cbc:DueDate>
	</xsl:template>
	
	<xsl:template match="cbc:PaymentDueDate" mode="PaymentMeans">
		<cbc:PaymentDueDate>
			<xsl:value-of select="."/>
		</cbc:PaymentDueDate>
	</xsl:template>
	
	
	
	<!-- GENERIC TEMPLATES-->
	
	<xsl:template match="cbc:ElectronicMail">
		<cbc:ElectronicMail>
			<xsl:if test="not((normalize-space(.) = 'fina@moj-eracun.hr') or (normalize-space(.) = 'adresar@moj-eracun.hr'))" >
				<xsl:value-of select="." />
			</xsl:if>
		</cbc:ElectronicMail>
	</xsl:template>
	
	<xsl:template name="EndpointID">
		<xsl:choose>
			<xsl:when test="cbc:EndpointID and (normalize-space(cbc:EndpointID) != '')">
				<xsl:apply-templates select="cbc:EndpointID" mode="SchemeID" />
			</xsl:when>
			<xsl:otherwise>
				<xsl:apply-templates select="cac:PartyLegalEntity/cbc:CompanyID" mode="EndpointID" />
			</xsl:otherwise>
		</xsl:choose>
	
	</xsl:template>

	<xsl:template match="cbc:IssueTime">
		<cbc:IssueTime>
			<xsl:choose>
				<xsl:when test="normalize-space(.) = '00:00:00'"><xsl:value-of select="'00:00:01'" /></xsl:when>
				<xsl:when test="normalize-space(.) = '24:00:00'"><xsl:value-of select="'00:00:01'" /></xsl:when>
				<xsl:otherwise><xsl:value-of select="." /></xsl:otherwise>
			</xsl:choose>
		</cbc:IssueTime>

	</xsl:template>
	

	<!-- GENERIC ELEMENTS-->
	
	<xsl:template name="Country">
		<xsl:param name="countryCode" select="'HR'" />
		<cac:Country>
			<xsl:choose>
				<xsl:when test="normalize-space($countryCode) != ''">
					<cbc:IdentificationCode><xsl:value-of select="$countryCode" /></cbc:IdentificationCode>			
				</xsl:when>
				<xsl:otherwise>
					<cbc:IdentificationCode>HR</cbc:IdentificationCode>
				</xsl:otherwise>
			</xsl:choose>
			

		</cac:Country>
		
	
	</xsl:template>
	
	<xsl:template match="cbc:Amount | cbc:BaseAmount | cbc:TaxAmount | cbc:TaxableAmount
		| cbc:LineExtensionAmount | cbc:TaxExclusiveAmount | cbc:TaxInclusiveAmount
		| cbc:AllowanceTotalAmount | cbc:ChargeTotalAmount | cbc:PrepaidAmount
		| cbc:PayableRoundingAmount | cbc:PayableAmount " >
		<xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
			<xsl:attribute name="currencyID" namespace="">
				<xsl:value-of select="@currencyID" />
			</xsl:attribute>
			<xsl:choose>
				<xsl:when test="number(.) = 0">0.00</xsl:when>
				<xsl:when test="string(number(.))='NaN'">0.00</xsl:when>
				<xsl:otherwise><xsl:value-of select="format-number(number(.), '#.00')" /></xsl:otherwise>
			</xsl:choose>
			
		</xsl:element>
	
	</xsl:template>
	
	<xsl:template match="cbc:PriceAmount" >
		<xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
			<xsl:attribute name="currencyID" namespace="">
				<xsl:value-of select="@currencyID" />
			</xsl:attribute>
			<xsl:choose>
				<xsl:when test="number(.) = 0">0.00</xsl:when>
				<xsl:when test="string(number(.))='NaN'">0.00</xsl:when>
				<xsl:otherwise>
					<xsl:variable name="priceAmount">
						<xsl:value-of select="format-number(number(.), '#0.00')" />
					</xsl:variable>
					<xsl:choose>
						<xsl:when test="string-length(string(.)) &gt; string-length(string($priceAmount))">
							<xsl:value-of select="." />
						</xsl:when>
						<xsl:otherwise>
							<xsl:value-of select="$priceAmount" />
						</xsl:otherwise>
					</xsl:choose>
				
				</xsl:otherwise>
			</xsl:choose>
			
		</xsl:element>
	
	</xsl:template>
	
	<xsl:template match="cbc:CopyIndicator">
		<cbc:CopyIndicator>
			<xsl:value-of select="translate(., 'falseFALSEtrueTRUE', 'falsefalsetruetrue')" />
		</cbc:CopyIndicator>
	
	</xsl:template>

	
	<xsl:template match="cbc:MultiplierFactorNumeric">
		<cbc:MultiplierFactorNumeric>
			<xsl:value-of select="number(.)" />
		</cbc:MultiplierFactorNumeric>
	
	</xsl:template>

	<xsl:template match="cbc:Percent">
		<cbc:Percent>
			<xsl:value-of select="number(.)" />
		</cbc:Percent>
	
	</xsl:template>
	
	<xsl:template match="cbc:CompanyID" mode="PartyIdentification">
		<cac:PartyIdentification>
			<cbc:ID>
				<xsl:value-of select="concat('9934:', .)"/>
			</cbc:ID>
		
		</cac:PartyIdentification>
	
	</xsl:template>
	
	<xsl:template match="cbc:CompanyID" mode="PartyTaxID">
		<cbc:CompanyID>
			<xsl:value-of select="concat('HR', .)"/>
		</cbc:CompanyID>
	
	</xsl:template>

	
	<xsl:template match="cbc:CompanyID" mode="EndpointID" >
		<cbc:EndpointID>
			<xsl:attribute name="schemeID" namespace="">9934</xsl:attribute>
			<xsl:value-of select="." />
		
		</cbc:EndpointID>
	
	</xsl:template>
	
	<xsl:template match="cbc:EndpointID" mode="SchemeID">
		<cbc:EndpointID>
			<xsl:choose>
				<xsl:when test="@schemeID and (normalize-space(@schemeID) != '')">
					<xsl:attribute name="schemeID" namespace="">
						<xsl:choose>
							<xsl:when test="@schemeID = 'GLN'">0088</xsl:when>
							<xsl:otherwise><xsl:value-of select="@schemeID" /></xsl:otherwise>
						</xsl:choose>
						
					</xsl:attribute>
				</xsl:when>
				<xsl:otherwise>
					<xsl:attribute name="schemeID" namespace="">9934</xsl:attribute>			
				</xsl:otherwise>
			</xsl:choose>
			<xsl:value-of select="." />
		
		</cbc:EndpointID>
	
	</xsl:template>

	<xsl:template match="cbc:ID" mode="TaxCategoryID">
		<cbc:ID>
			<xsl:choose>
				<xsl:when test="normalize-space(.) = 'O'">
					<xsl:choose>
						<xsl:when test="$isOutsideVAT = 'true'">O</xsl:when>
						<xsl:otherwise>E</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:otherwise><xsl:value-of select="normalize-space(.)" /></xsl:otherwise>
			</xsl:choose>
		
		</cbc:ID>
	
	</xsl:template>
	
	<xsl:template match="cbc:ID | cbc:CompanyID " mode="SchemeID" >
		<xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
			<xsl:apply-templates select="@schemeID" />

			<xsl:value-of select="." />
		</xsl:element>
	</xsl:template>
	
	<xsl:template match="@schemeID" >
		<xsl:attribute name="schemeID" namespace="">
			<xsl:value-of select="." />
		</xsl:attribute>
	
	</xsl:template>
	
	<xsl:template match="cbc:ID" mode="ID">
		<cbc:ID><xsl:value-of select="." /></cbc:ID>
	</xsl:template>
	
	
	<xsl:template match="cbc:ID" mode="OrderReferenceID">
		<cbc:ID>
		<xsl:choose>
			<xsl:when test="normalize-space(//cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID) = '79069474349'">
				<xsl:choose>
					<xsl:when test="contains(.,'PO')">
						<xsl:value-of select="normalize-space(substring-after(normalize-space(.),'PO'))"/>
					</xsl:when>
					<xsl:otherwise><xsl:value-of select="normalize-space(.)"/></xsl:otherwise>
				</xsl:choose>
			</xsl:when>
			<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
		</xsl:choose>
		</cbc:ID>
	</xsl:template>
	
	<xsl:template match="cbc:DocumentType" >
		<cbc:DocumentType><xsl:value-of select="." /></cbc:DocumentType>
	
	</xsl:template>
	



	<xsl:template match="cbc:*" >
<!--		<xsl:copy>
			<xsl:value-of select="." />
		</xsl:copy>
-->	
		<xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
			<xsl:value-of select="." />
		</xsl:element>
		

	</xsl:template>


</xsl:stylesheet>
