Search This Blog

Showing posts with label Dynamics 365 FO. Show all posts
Showing posts with label Dynamics 365 FO. Show all posts

Monday, August 1, 2022

Create lookup method using x++ in Dynamics 365 FO

 void lookup(FormStringControl _control)

    {

        SysTableLookup  tableLookup = SysTableLookup::newParameters(tableNum(EntAssetObjectTable), _control);


        Query                   query           = new Query();

        QueryBuildDataSource    qbdsAssetTable  = query.addDataSource(tableNum(EntAssetObjectTable));


        tableLookup.parmQuery(query);

        tableLookup.addLookupfield(fieldNum(EntAssetObjectTable, SerialID));

        tableLookup.addLookupfield(fieldNum(EntAssetObjectTable, ObjectID));

        tableLookup.addLookupfield(fieldNum(EntAssetObjectTable, Name));        

    

        tableLookup.performFormLookup();

    }

Friday, June 17, 2022

Create hyperlink in infolog to navigate to the required form with the filter

public static void main(Args _args)

    {

        CustTable                   custTable;

        MenuItemMessageAction       messageAction;

 

        select firstonly * from custTable;

 

 

        messageAction = new MenuItemMessageAction();

 

        messageAction.MenuItemName(menuItemDisplayStr(Custtable));

        messageAction.TableName(tableStr(CustTable));

        messageAction.RecId(custTable.recid);

 

        str jsonData = FormJsonSerializer::serializeClass(messageAction);

 

        Message::AddAction(MessageSeverity::Informational,"Click on account number to check more detail ",custTable.AccountNum,MessageActionType::DisplayMenuItem,jsonData);   

    }

The output will be as per below and when you click on the account number customer detail form will going to open.









Thursday, May 26, 2022

How to calculate the GST amount using x++

 static void Job236(Args _args)

{

    TmpTaxDocument                  tmpTax;

    SalesCalcTax                    salesCalcTax;   

    SalesTotals                     salesTotals1;

    ITaxableDocument                taxableDocument;

    ITaxDocumentComponentLineEnumerator lineEnumerator;

    ITaxDocument                    taxDocumentObject;

    real                            taxTotalGTE,taxtotal,SGST,CGST,IGST;

    ITaxDocumentMeasure             taxMeasure;

    ITaxDocumentMeasureEnumerator   taxMeasureEnumerator;

    ITaxDocumentMeasureValue        partyTaxMeasureValue;

    int                             i;

    SalesLine                       salesLine;

    ITaxDocumentLine                taxDocumentLine;


    salestotals1 = SalesTotals::construct(SalesTable::find("SO-2021-122436"));

    

    

    taxableDocument = TaxableDocumentObject::construct(salestotals1.parmTaxableDocumentDescriptor());

    taxDocumentObject = TaxBusinessService::calculateTax(taxableDocument);

    salesLine = SalesLine::findInventTransId("40016597686");

    if (taxDocumentObject)

    {

        taxTotalGTE = taxDocumentObject.getTotalTax().amountTransactionCurrency();


        // Calculation of Tax amount for Tax type GST and Tax component SGST

        //lineEnumerator = taxDocumentObject.componentLines('GST','SGST');

        taxDocumentline = taxDocumentObject.findLineByOrig(salesLine.TableId,SalesLine.RecId);

        lineEnumerator = taxDocumentline.componentLines("GST","SGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasure = lineEnumerator.current().getMeasure("Rate");

            info(strFmt("SGST Rate %1",taxMeasure.value().value()));

            taxMeasure = lineEnumerator.current().getMeasure("Tax Amount");

            info(strFmt("SGST Rate %1",taxMeasure.value().value()));            

            lineEnumerator.current().

           

        }

        

        lineEnumerator = taxDocumentline.componentLines("GST","CGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasure = lineEnumerator.current().getMeasure("Rate");

            info(strFmt("CGST Rate %1",taxMeasure.value().value()));

            taxMeasure = lineEnumerator.current().getMeasure("Tax Amount");

            info(strFmt("CGST Rate %1",taxMeasure.value().value()));            

           

        }

        

        lineEnumerator = taxDocumentline.componentLines("GST","IGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasure = lineEnumerator.current().getMeasure("Rate");

            info(strFmt("IGST Rate %1",taxMeasure.value().value()));

            taxMeasure = lineEnumerator.current().getMeasure("Tax Amount");

            info(strFmt("IGST Rate %1",taxMeasure.value().value()));            

           

        }

        

        

        

       /* while (lineEnumerator.moveNext())

        {

            taxMeasureEnumerator = lineEnumerator.current().measures();

            while (taxMeasureEnumerator.moveNext())

            {

                i++;

                if (i == 3)

                {

                    partyTaxMeasureValue = taxMeasureEnumerator.current().value();

                    info(strFmt("SGST = %1",partyTaxMeasureValue.amountTransactionCurrency()));

                    SGST += partyTaxMeasureValue.amountTransactionCurrency();

                    i=0;

                    break;

                }

            }

        }


        // Calculation of Tax amount for Tax type GST and Tax component CGST

        lineEnumerator = taxDocumentObject.componentLines("GST","CGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasureEnumerator = lineEnumerator.current().measures();

            while (taxMeasureEnumerator.moveNext())

            {

                i++;

                if (i == 3)

                {

                    partyTaxMeasureValue = taxMeasureEnumerator.current().value();

                    info(strFmt("CGST = %1",partyTaxMeasureValue.amountTransactionCurrency()));

                    CGST += partyTaxMeasureValue.amountTransactionCurrency();

                    i=0;

                    break;

                }

            }

        }


        // Calculation of Tax amount for Tax type GST and Tax component IGST

        lineEnumerator = taxDocumentObject.componentLines("GST","IGST");

        while (lineEnumerator.moveNext())

        {

            taxMeasureEnumerator = lineEnumerator.current().measures();

            while (taxMeasureEnumerator.moveNext())

            {

                i++;

                if (i == 3)

                {

                    partyTaxMeasureValue = taxMeasureEnumerator.current().value();

                    info(strFmt("IGST = %1",partyTaxMeasureValue.amountTransactionCurrency()));

                    IGST += partyTaxMeasureValue.amountTransactionCurrency();

                    i=0;

                    break;

                }

            }

        }*/

    }

}