<?xml version=”1.0″ encoding=”utf-8″?>
<!– +======================================================================+ –>
<!– | Copyright (c) 2005, 2014 Oracle and/or its affiliates. | –>
<!– | All rights reserved. | –>
<!– | Version 12.0.0 | –>
<!– +======================================================================+ –>
<!– $Header: IBY_SEPA_DD_CORE_v7_STD.xsl 120.0.12010000.2 2014/12/18 07:45:02 gmamidip noship $ –>
<!– dbdrv: exec java oracle/apps/xdo/oa/util XDOLoader.class java &phase=dat checkfile:~PROD:patch/115/publisher/templates:IBY_SEPA_DD_CORE_v7_STD.xsl UPLOAD -DB_USERNAME &un_apps -DB_PASSWORD &pw_apps -JDBC_CONNECTION &jdbc_db_addr -LOB_TYPE TEMPLATE -APPS_SHORT_NAME IBY -LOB_CODE IBY_SEPA_DIRDEB_CORE_INIT_v7_STRD_TEMPLATE -LANGUAGE en -XDO_FILE_TYPE XSL-XML -FILE_NAME &fullpath:~PROD:patch/115/publisher/templates:IBY_SEPA_DD_CORE_v7_STD.xsl –>
<xsl:stylesheet xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” version=”1.0″>
<xsl:output omit-xml-declaration=”no” />
<xsl:output method=”xml” encoding=”utf-8″/>
<xsl:key name=”contacts-by-LogicalGroupReference” match=”PayeeAccount/FundsCaptureOrder” use=”OrderNumber/LogicalGroupReference” />
<xsl:variable name=”batchBooking” select=”translate(FundsCaptureInstruction/PayeeAccount/PaymentSystemAccount/AccountOption[Name=’SEPA_BATCH_BOOKING’]/Value,’ABCDEFGHIJKLMNOPQRSTUVWXYZ’,’abcdefghijklmnopqrstuvwxyz’)” />
<xsl:variable name=”numTrxn” select=”FundsCaptureInstruction/PayeeAccount/OrderCount/text()” />
<xsl:template match=”FundsCaptureInstruction”>
<Document xmlns=”urn:iso:std:iso:20022:tech:xsd:pain.008.001.02″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<CstmrDrctDbtInitn>
<GrpHdr>
<MsgId>
<xsl:value-of select=”InstructionInfo/InstructionInternalID” />
</MsgId>
<CreDtTm>
<xsl:value-of select=”InstructionInfo/InstructionCreationDate” />
</CreDtTm>
<NbOfTxs>
<xsl:value-of select=”PayeeAccount/OrderCount” />
</NbOfTxs>
<CtrlSum>
<xsl:value-of select=”sum(//PayeeAccount/FundsCaptureOrder/OrderAmount/Value)” />
</CtrlSum>
<InitgPty>
<Id>
<OrgId>
<Othr>
<Id>
<xsl:value-of select=”PayeeAccount/PaymentSystemAccount/AccountOption[Name=’SEPA_INITIATING_PARTY_ID’]/Value” />
</Id>
</Othr>
</OrgId>
</Id>
</InitgPty>
</GrpHdr>
<xsl:for-each select=”PayeeAccount/FundsCaptureOrder[count(. | key(‘contacts-by-LogicalGroupReference’, OrderNumber/LogicalGroupReference)[1]) = 1]”>
<xsl:sort select=”OrderNumber/LogicalGroupReference” />
<PmtInf>
<PmtInfId>
<xsl:value-of select=”OrderNumber/LogicalGroupReference” />
</PmtInfId>
<PmtMtd>DD</PmtMtd>
<PmtTpInf>
<SvcLvl>
<Cd>SEPA</Cd>
</SvcLvl>
<xsl:if test=”not(BankAccountTransaction/LocalInstrument = ”)”>
<LclInstrm>
<Cd>
<xsl:value-of select=”BankAccountTransaction/LocalInstrument” />
</Cd>
</LclInstrm>
</xsl:if>
<xsl:if test=”BankAccountTransaction/LocalInstrument=””>
<LclInstrm>
<Cd>CORE</Cd>
</LclInstrm>
</xsl:if>
<SeqTp>
<xsl:value-of select=”BankAccountTransaction/SeqType” />
</SeqTp>
</PmtTpInf>
<ReqdColltnDt>
<xsl:value-of select=”substring(BankAccountTransaction/SettlementDueDate,1,10)” />
</ReqdColltnDt>
<Cdtr>
<Nm>
<xsl:value-of select=”substring(PayeeLegalEntity/LegalEntityName,1,70)” />
</Nm>
<PstlAdr>
<StrtNm>
<xsl:value-of select=”substring-before(PayeeLegalEntity/Address/AddressLine1,’,’)” />
</StrtNm>
<PstCd>
<xsl:value-of select=”substring-after(PayeeLegalEntity/Address/AddressLine1,’, ‘)” />
</PstCd>
<TwnNm>
<xsl:value-of select=”PayeeLegalEntity/Address/City” />
</TwnNm>
<xsl:if test=”not(PayeeLegalEntity/Address/State=”)”>
<CtrySubDvsn>
<xsl:value-of select=”PayeeLegalEntity/Address/State” />
</CtrySubDvsn>
</xsl:if>
<Ctry>
<xsl:value-of select=”PayeeLegalEntity/Address/Country” />
</Ctry>
</PstlAdr>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>
<xsl:value-of select=”PayeeBankAccount/IBANNumber” />
</IBAN>
</Id>
</CdtrAcct>
<CdtrAgt>
<FinInstnId>
<xsl:if test=”not(PayeeBankAccount/SwiftCode=”)”>
<BIC>
<xsl:value-of select=”PayeeBankAccount/SwiftCode” />
</BIC>
</xsl:if>
<PstlAdr>
<xsl:if test=”not(PayeeBankAccount/BankAddress/Countryac=”)”>
<Ctry><xsl:value-of select=”PayeeBankAccount/BankAddress/Countryac” /></Ctry>
</xsl:if>
</PstlAdr>
</FinInstnId>
</CdtrAgt>
<ChrgBr>SLEV</ChrgBr>
<CdtrSchmeId>
<Id>
<PrvtId>
<Othr>
<Id>
<xsl:value-of select=”MandateDetails/CreditorIdentifier” />
</Id>
<SchmeNm>
<Prtry>SEPA</Prtry>
</SchmeNm>
</Othr>
</PrvtId>
</Id>
</CdtrSchmeId>
<xsl:for-each select=”key(‘contacts-by-LogicalGroupReference’, OrderNumber/LogicalGroupReference)”>
<DrctDbtTxInf>
<PmtId>
<EndToEndId>
<xsl:value-of select=”OrderNumber/PayeeOrderNumber” />
</EndToEndId>
</PmtId>
<InstdAmt Ccy=”EUR”>
<xsl:value-of select=”OrderAmount/Value” />
</InstdAmt>
<DrctDbtTx>
<MndtRltdInf>
<MndtId>
<xsl:value-of select=”MandateDetails/AuthorizationReference” />
</MndtId>
<DtOfSgntr>
<xsl:value-of select=”MandateDetails/AuthorizationSignDate” />
</DtOfSgntr>
<AmdmntInd>
<xsl:value-of select=”translate(MandateDetails/AmendmentIndicator,’ABCDEFGHIJKLMNOPQRSTUVWXYZ’,’abcdefghijklmnopqrstuvwxyz’)” />
</AmdmntInd>
<xsl:if test=”(translate(MandateDetails/AmendmentIndicator,’ABCDEFGHIJKLMNOPQRSTUVWXYZ’,’abcdefghijklmnopqrstuvwxyz’)=’true’)”>
<AmdmntInfDtls>
<xsl:if test=”not(MandateDetails/OrgnlAuthReference=”)”>
<OrgnlMndtId>
<xsl:value-of select=”MandateDetails/OrgnlAuthReference” />
</OrgnlMndtId>
</xsl:if>
<xsl:if test=”not(MandateDetails/OrgnlCreditor=”)”>
<OrgnlCdtrSchmeId>
<Nm>
<xsl:value-of select=”substring(MandateDetails/OrgnlCreditor,1,70)” />
</Nm>
<Id>
<PrvtId>
<Othr>
<Id>
<xsl:value-of select=”MandateDetails/OrgnlCreditorId” />
</Id>
<SchmeNm>
<Prtry>SEPA</Prtry>
</SchmeNm>
</Othr>
</PrvtId>
</Id>
</OrgnlCdtrSchmeId>
</xsl:if>
<OrgnlDbtrAcct>
<Id>
<IBAN>
<xsl:value-of select=”MandateDetails/IBAN” />
</IBAN>
</Id>
</OrgnlDbtrAcct>
<OrgnlDbtrAgt>
<FinInstnId>
<Othr>
<Id>SMNDA</Id>
</Othr>
</FinInstnId>
</OrgnlDbtrAgt>
</AmdmntInfDtls>
</xsl:if>
</MndtRltdInf>
</DrctDbtTx>
<DbtrAgt>
<FinInstnId>
<xsl:if test=”not(PayerBankAccount/SwiftCode=”)”>
<BIC>
<xsl:value-of select=”PayerBankAccount/SwiftCode” />
</BIC>
</xsl:if>
<PstlAdr>
<xsl:if test=”not(PayerBankAccount/BankAddress/Country=”)”>
<Ctry> <xsl:value-of select=”PayerBankAccount/BankAddress/Country” /></Ctry>
</xsl:if>
</PstlAdr>
</FinInstnId>
</DbtrAgt>
<Dbtr>
<Nm>
<xsl:value-of select=”substring(Payer/Name,1,70)” />
</Nm>
<PstlAdr>
<StrtNm>
<xsl:value-of select=”Payer/Address/AddressLine1″ />
</StrtNm>
<PstCd>
<xsl:value-of select=”Payer/Address/PostalCode” />
</PstCd>
<TwnNm>
<xsl:value-of select=”Payer/Address/City” />
</TwnNm>
<xsl:if test=”not(Payer/Address/State=”)”>
<CtrySubDvsn>
<xsl:value-of select=”Payer/Address/State” />
</CtrySubDvsn>
</xsl:if>
<Ctry>
<xsl:value-of select=”Payer/Address/Country” />
</Ctry>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>
<xsl:value-of select=”PayerBankAccount/IBANNumber” />
</IBAN>
</Id>
</DbtrAcct>
<RmtInf>
<Ustrd>
<xsl:value-of select=”DocumentReceivable/DocumentID” />
</Ustrd>
</RmtInf>
</DrctDbtTxInf>
</xsl:for-each>
</PmtInf>
</xsl:for-each>
</CstmrDrctDbtInitn>
</Document>
</xsl:template>
</xsl:stylesheet>