Thursday, August 10, 2023

Open Sales Order Clouse Custom Form in Ax 2012 X++

 

Open Sales Order Clouse Custom Form in Ax 2012 X++




Form Methods:

public class FormRun extends ObjectRun
{
    QueryBuildRange         headerVoided;
    QueryBuildRange         headerType;
    QueryBuildRange         headerProjId;
    QueryBuildRange         lineVoided;

    TransDate               toDate;

    InventDimCtrl_Frm_Mov   inventDimFormSetup;

    SalesLine               salesLinelocal;
}

void checkSelectAllBox()
{
    ;

    if(!Salesline_CheckSelected.Value())
    {
        SelectAll.checked(False);
    }
}

public Common docCursor()
{
    Common docCursor;

    docCursor = super();

    if (docCursor.TableId == tablenum(InventDim))
    {
        docCursor = salesLine;
    }

    return docCursor;
}
void init()
{
    super();

    toDate = mkDate(1, (mthOfYr(systemDateget())), year(systemDateget()));

    salesTable_ds.query().dataSourceTable(tablenum(SalesTable)).addRange(fieldnum(SalesTable, SalesStatus)).value(queryValue(SalesStatus::Backorder));
    salesLine_ds.query().dataSourceTable(tablenum(SalesLine)).addRange(fieldnum(SalesLine, SalesType)).value(queryValue(SalesType::ReturnItem));
    salesLine_ds.query().dataSourceTable(tablenum(SalesLine)).addRange(fieldnum(SalesLine, SalesType)).value(queryValue(SalesType::Sales));
    salesLine_ds.query().dataSourceTable(tablenum(SalesLine)).addRange(fieldnum(SalesLine, SalesType)).value(queryValue(SalesType::Subscription));
    salesLine_ds.query().dataSourceTable(tablenum(SalesLine)).addRange(fieldnum(SalesLine, SalesStatus)).value(queryValue(SalesStatus::Backorder));

    //salesLine_ds.query().dataSourceTable(tablenum(SalesLine)).addRange(fieldnum(SalesLine, ConfirmedDlv)).value(queryValue(strFmt("<%1", toDate)));

    element.updateDesign(InventDimFormDesignUpdate::Init);

    if (element.args().record())
    {
        salesLine_ds.object(fieldnum(SalesLine, CustAccount)).visible(False);
    }
}

Object inventDimSetupObject()
{
    return inventDimFormSetup;
}

void selectAllRecord()
{
    SalesIdBase salesIdBase;
    LineNum     lineNumberLoc;
    ;

    ttsbegin;

    for (salesLineLocal = SalesLine_ds.getFirst(); salesLineLocal != null; salesLineLocal = salesLine_ds.getNext())
    {
        salesIdBase = salesLineLocal.SalesId;
        lineNumberLoc = salesLinelocal.LineNum;
        salesLinelocal = SalesLine::find(salesIdBase, lineNumberLoc);
        salesLinelocal.selectForUpdate(true);

        if (SelectAll.value() == NoYes::Yes)
        {
            salesLinelocal.CheckSelected = NoYes::Yes;
        }
        else
        {
            salesLinelocal.CheckSelected = NoYes::No;
        }

        salesLinelocal.Update();
    }

    ttscommit;
}

void updateDesign(InventDimFormDesignUpdate mode)
{
    InventMovement movement = InventMovement::construct(salesLine);

    switch (mode)
    {
        case InventDimFormDesignUpdate::Init :
            if (!inventDimFormSetup)
            {
                inventDimFormSetup  = InventDimCtrl_Frm_Mov::newFromFormMovement(element, movement);
            }

        case InventDimFormDesignUpdate::Active :
          //  inventDimFormSetup.formActiveSetup(movement.inventTable().DimGroupId,movement);
            inventDimFormSetup.formSetControls(true);
            break;

        case InventDimFormDesignUpdate::FieldChange :
           // inventDimFormSetup.formActiveSetup(movement.inventTable().DimGroupId,movement);
            inventDimFormSetup.formSetControls(false);
            break;

        default : throw error(strfmt("@SYS54195",funcname()));
    }
}

void updateSelectedRecord()
{

    DialogButton dialogButton;
    int countSelected;
    ;

    dialogButton = box::yesNo("Do you want to short close deliver remainders for the selected lines", dialogButton::Yes, "@SYS116321");

    if (dialogButton == dialogButton::Yes)
    {
        ttsbegin;

        for (salesLineLocal = salesLine_ds.getFirst(); salesLineLocal != null ;salesLineLocal = salesLine_ds.getNext())
        {
            if (salesLineLocal.CheckSelected == NoYes::Yes)
            {
                salesLinelocal = SalesLine::find(salesLinelocal.SalesId, salesLinelocal.LineNum);
                salesLinelocal.selectForUpdate(true);

                salesLinelocal.RemainSalesPhysical = 0;
                salesLinelocal.RemainInventPhysical = 0;
                salesLinelocal.CheckSelected = NoYes::No;

                salesLinelocal.Update();

                countSelected++;
            }
        }

        ttscommit;

        if (countSelected)
        {
            info(strfmt("%1 seleted rows updated",countSelected));
        }
        else
        {
            info(strfmt("No rows were selected"));
        }
    }
}

FormDataSource salesTable_ds()
{
    return salesTable_ds;
}

public void modified()
{
    super();

    element.checkSelectAllBox();
}

public void clicked()
{
    super();

    element.selectAllRecord();

    SalesLine_ds.reread();
    SalesLine_ds.research();
    SalesLine_ds.refresh();
}

void clicked()
{
    super();

    element.updateSelectedRecord();

    SalesLine_ds.reread();
    SalesLine_ds.research();
    SalesLine_ds.refresh();
}

No comments:

Post a Comment