How to write a custom date function in xslt when a given date is first of the current month then the date should be first of the current month else any date other than first of the current month then first of the next month. In the given example the date is Mar 4th 2019 and the current month is Mar 2019 the output should return Apr 1st 2019 if the date is Mar 1st 2019 the output should return Mar 1st 2019.
XML:
<ad:Sale_Data xmlns:ad="urn:com.ad.report/saleslead">
<ad:Sale_Tx_Entry>
<ad:name>prominent sale</ad:name>
<ad:businessID>209320484</ad:businessID>
<ad:saleDate>20190304</ad:saleDate>
<ad:Lead_Organization ad:Descriptor="Chiéf Executive Officér Operating Officér">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
<ad:ID ad:type="Business_Model_Sale_Ref_ID">475846759</ad:ID>
</ad:Lead_Organization>
<ad:Management_Hierarchy>
<ad:Lead_Organization_ID>475847049</ad:Lead_Organization_ID>
</ad:Management_Hierarchy>
<ad:storemanager ad:Descriptor="J Loews">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
<ad:ID ad:type="S_ID">754954</ad:ID>
</ad:storemanager>
<ad:plantype ad:description="plan a">
<ad:ID ad:type="pid">29ejdbsn</ad:ID>
<ad:ID ad:type="planid">PLAN_A</ad:ID>
</ad:plantype>
<ad:plantype ad:description="plan b">
<ad:ID ad:type="pid">deije23jdie</ad:ID>
<ad:ID ad:type="planid">PLAN_B</ad:ID>
</ad:plantype>
<ad:plantype ad:description="plan c">
<ad:ID ad:type="pid">e23c70202d</ad:ID>
<ad:ID ad:type="planid">PLAN_C</ad:ID>
</ad:plantype>
<ad:SalePerson>
<ad:Sale_Ref_ID>3457578</ad:Sale_Ref_ID>
<ad:Sale_Profile ad:Descriptor="Sale Person1">
<ad:ID ad:type="AID">sadlksalfkdki23i204fdfmd9mdscdkhytt</ad:ID>
<ad:ID ad:type="Sale_Tx_ID">475847</ad:ID>
</ad:Sale_Profile>
<ad:Business_Model ad:Descriptor="3457578 Sale Person1 - Business Development Leader1">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
</ad:Business_Model>
<ad:SalePerson ad:Descriptor="Business Development Leader1">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
<ad:ID ad:type="S_ID">4782</ad:ID>
</ad:SalePerson>
<ad:StoreManager ad:Descriptor="J Loews">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
<ad:ID ad:type="S_ID">754954</ad:ID>
</ad:StoreManager>
</ad:SalePerson>
<ad:SalePerson>
<ad:Sale_Ref_ID>3457579</ad:Sale_Ref_ID>
<ad:Sale_Profile ad:Descriptor="Sale Person2">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
<ad:ID ad:type="Sale_Tx_ID">918328</ad:ID>
</ad:Sale_Profile>
<ad:Business_Model ad:Descriptor="3457579 Sale Person2 - Business Development Leader2">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
</ad:Business_Model>
<ad:SalePerson ad:Descriptor="Business Development Leader2">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
<ad:ID ad:type="S_ID">487548</ad:ID>
</ad:SalePerson>
<ad:StoreManager ad:Descriptor="J Loews">
<ad:ID ad:type="AID">sadlksalfkdki23i204urfdfmd9mdscdkhytt</ad:ID>
<ad:ID ad:type="S_ID">754954</ad:ID>
</ad:StoreManager>
</ad:SalePerson>
</ad:Sale_Tx_Entry>
</ad:Sale_Data>
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet exclude-result-prefixes="xsl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ad="urn:com.ad.report/saleslead">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="linefeed" select="'
'"></xsl:variable>
<xsl:template match="/ad:Sale_Data">
<xsl:text>"BusinessName"|"BusinessCode"|"SaleDate"|"BusinessStructure"|"BusinessStructureID"|"BusinessStructureManager"|"StoreID"|"SaleProfile"|"BusinessModel"|"SalePerson"|"StoreManager"</xsl:text>
<xsl:apply-templates select="ad:Sale_Tx_Entry/ad:SalePerson"/>
</xsl:template>
<xsl:template match="ad:SalePerson">
<xsl:value-of select="$linefeed"/>
<xsl:text>"</xsl:text>
<xsl:value-of select="ancestor::ad:Sale_Tx_Entry/ad:name"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ancestor::ad:Sale_Tx_Entry/ad:businessID"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ancestor::ad:Sale_Tx_Entry/ad:saleDate"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ancestor::ad:Sale_Tx_Entry/ad:Lead_Organization/@ad:Descriptor"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ancestor::ad:Sale_Tx_Entry/ad:Management_Hierarchy/ad:Lead_Organization_ID"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ancestor::ad:Sale_Tx_Entry/ad:storemanager/@ad:Descriptor"/>
<xsl:text>"|"</xsl:text>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ancestor::ad:Sale_Tx_Entry/ad:plantype/@ad:description" separator=", "/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ad:Sale_Ref_ID"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ad:Sale_Profile/@ad:Descriptor"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ad:Business_Model/@ad:Descriptor"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ad:SalePerson/@ad:Descriptor"/>
<xsl:text>"|"</xsl:text>
<xsl:value-of select="ad:StoreManager/@ad:Descriptor"/>
<xsl:text>"</xsl:text>
</xsl:template>
</xsl:stylesheet>