Wednesday, 7 September 2022

Email ID, File name and from address in SrsPrintDestinationSettings in D365 F&O X++

 [ExtensionOf(classStr(SrsPrintDestinationSettings))]

final class SrsPrintDestinationSettings_XXX_Extension

{

    public SysEmailId      XXXEmailId;

    public FileName        XXXFileName;


    #define.CurrentVersion(2)

    #localmacro.CurrentList

        XXXEmailId,

        XXXFileName

    #endmacro


    public str parmXXXEmailId(str _XXXEmailId = XXXEmailId)

    {

        XXXEmailId = _XXXEmailId;

        return XXXEmailId;

    }


    public str parmXXXFileName(str _XXXFileName = XXXFileName)

    {

        XXXFileName = _XXXFileName;

        return XXXFileName;

    }


    public SrsReportEMailDataContract parmEMailContract(SrsReportEMailDataContract _emailContract)

    {

        SrsReportEMailDataContract emailContract = next parmEMailContract(_emailContract);

        if (emailContract && this.parmXXXEmailId())

        {

            SysEmailTable           emailTable = SysEmailTable::find(this.parmXXXEmailId());

            SysEmailMessageTable    messageTable = SysEmailMessageTable::find(this.parmXXXEmailId(), SystemParameters::systemLanguageId());


            if (emailTable.SenderAddr)

            {

                emailContract.parmXXXFromAddress(emailTable.SenderAddr);

            }


            if (messageTable)

            {

                emailContract.parmBody(messageTable.Mail);

            }

        }


        return emailContract;

    }


    public str parmFileName(str _fileName)

    {

        FileName fileName = next parmFileName(_fileName);


        if (!_fileName && this.parmXXXFileName())

        {

            fileName = this.parmXXXFileName();

        }

  

        return fileName;

    }


    public container pack()

    {

        container packedClass = next pack();

        return SysPackExtensions::appendExtension(packedClass, classStr(SrsPrintDestinationSettings_XXX_Extension), this.XXXPack());

    }


    public boolean unpack(container _packedClass)

    {

        boolean result = next unpack(_packedClass);


        if (result)

        {

            container con = SysPackExtensions::findExtension(_packedClass, classStr(SrsPrintDestinationSettings_XXX_Extension));

            

            //Also unpack the extension

            if (!this.XXXUnpack(con))

            {

                result = false;

            }

        }


        return result;

    }


    private container XXXPack()

    {

        return [#CurrentVersion, #CurrentList];

    }


    private boolean XXXUnpack(container packedClass)

    {

        Integer version = RunBase::getVersion(packedClass);

        switch (version)

        {

            case #CurrentVersion:

                [version, #currentList] = packedClass;

                break;

            default:

                return false;

        }

        return true;

    }


}

-------------------------------------------------------------------------------------------------

[ExtensionOf(formStr(SRSPrintDestinationSettingsForm))]

final class SRSPrintDestinationSettingsForm_XXX_Extension

{

    private SRSPrintDestinationSettings XXXPrintDestinationSettings()

    {

        if (!_printDestinationSettings)

        {

            if (this.args() != null)

            {

                _printDestinationSettings = this.args().caller() as SRSPrintDestinationSettings;

            }

        }


        return _printDestinationSettings;

    }


    public void closeOk()

    {


        SRSPrintDestinationSettings printSettings;


        printSettings = new SRSPrintDestinationSettings(this.XXXPrintDestinationSettings().pack());


        printSettings.parmXXXEmailId(XXXEmailId.text());

        printSettings.parmXXXFileName(XXXFileName.text());


        this.XXXPrintDestinationSettings().unpack(printSettings.pack());


        next closeOk();

    }


    public void init()

    {

        next init();


        container                   printSettingsPack;

        SRSPrintDestinationSettings printSettings;


        printSettingsPack = this.XXXPrintDestinationSettings().pack();

        printSettings = new SRSPrintDestinationSettings(printSettingsPack);


        XXXEmailId.text(printSettings.parmXXXEmailId());

        XXXFileName.text(printSettings.parmXXXfileName());

    }


}

----------------------------------------------------------------------------------------

[ExtensionOf(classStr(SrsReportEMailDataContract))]

final class SrsReportEMailDataContract_XXX_Extension

{

    public str XXXFromAddress;


    public str parmXXXFromAddress(str _XXXFromAddress = XXXFromAddress)

    {

        XXXFromAddress = _XXXFromAddress;

        return XXXFromAddress;

    }


}

----------------------------------------------------------------------------------------

[ExtensionOf(classStr(SrsReportRunMailer))]

final class SrsReportRunMailer_XXX_Extension

{

    str parmXXXFromAddress(str _fromAddress = fromAddress)

    {

        fromAddress = _fromAddress;


        return fromAddress;

    }


    public boolean emailReport(SrsReportEMailDataContract emailContract, System.Byte[] reportBytes, str fileName)

    {

        if (emailContract.parmXXXFromAddress())

        {

            this.parmXXXFromAddress(emailContract.parmXXXFromAddress());

        }


        boolean ret = next emailReport(emailContract, reportBytes, fileName);

          

        return ret;

    }


}

No comments:

Post a Comment

validate offsetLedgerDimension in d365 FO

 /// <summary> /// This class is used to validate offsetLedgerDimension /// </summary> class PNG_InventMovValidateOffsetLedgerDi...