Tuesday, January 8, 2019

Dialog Based Parameter With Cust Account and Sales id selection Multiple

class ASAP_VATDocumentationDialogFields extends RunBase
{
    Dialog                dialog;

    DialogField           dialogCustId;
    DialogField           dialogSalesId;

    DialogRunbase         dialogRunBase;
    CustAccount           custId;
    Str1260               salesId;

    ASAP_VATHeader        headerTable;
    ASAP_VATLine          lineTable;
    NumberSeq             numberSeq;
    ASAPG_VATDocuNumber   newDocuNumber;
}
-----------
public void CustIdLookup(FormStringControl control)
{
    boolean ret;
    SysTableLookup          sysTableLookup =  SysTableLookup::newParameters(tablenum(CustTable), control);
    Query                   query = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;
    ;

   queryBuildDataSource = query.addDataSource(tablenum(CustTable));
   sysTableLookup.addLookupfield(fieldnum(CustTable, AccountNum));
   sysTableLookup.addLookupfield(fieldnum(CustTable, party ));


    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}

-------
 public Object Dialog()
{
    FormRun             formRun;
    FormStringControl   ctrlSalesId, ctrlCustId;

     ;
    super();
    dialog  =super();

    dialog.caption("VAT Documentation Creation ");
    dialogCustId   = dialog.addField(extendedTypeStr(CustAccount));
    //dialogSalesId  = dialog.addField(extendedTypeStr(SalesId));
    dialogSalesId  = dialog.addField (extendedTypeStr(Str1260),"Sales ID");


    ctrlCustId = dialogCustId.control();
    ctrlCustId.registerOverrideMethod(methodStr(FormStringControl,lookup), methodStr(ASAP_VATDocumentationDialogFields, custIdLookup),this);

    ctrlSalesId = dialogSalesId.control();
    ctrlSalesId.registerOverrideMethod(methodStr(FormStringControl,lookup), methodStr(ASAP_VATDocumentationDialogFields, salesIdLookup),this);



    return dialog;
}

--------------
public void run()
{
    Query                       query = new query();
    QueryRun                    queryRun;
    QueryBuildDataSource        salesTableBuildDataSource;
    QueryBuildRange             salesLineRange;
    boolean                     recordFound = false;
    SalesLine                   salesLine;
    CustTable                   custTable;

    CustAccount                 previousCustAccount;

    QueryBuildDataSource        invemtDimBuildDataSource;

    SalesTable                  salesTable, _salesTable;

    ;

    custId      = dialogCustId.value();
    salesId     = dialogSalesId.value();
    salesId     = strReplace(salesId,";",",");

    if(!salesId || !custId)
        throw error("Sales id and Customer id must be filled");

    custTable = CustTable::find(custId);

    salesTableBuildDataSource = query.addDataSource(tablenum(SalesTable));

    salesTableBuildDataSource.addRange(fieldNum(SalesTable,SalesId)).value(salesId);


    numberSeq     = NumberSeq::newGetNum(SalesParameters::numRefVATDocumentation());
    newDocuNumber = numberSeq.num();
    numberSeq.used();

    queryRun = new QueryRun(query);

        while(queryRun.next())
        {
             salesTable          = queryRun.get(tableNum(SalesTable));

            // added for non repeating the salesid in dropdown --start
                ttsBegin;
                 select forUpdate _salesTable
                   where _salesTable.SalesId == salesTable.SalesId;
                {
                   _salesTable.ASAPG_VAT_IsGenerated = NoYes::Yes;
                   _salesTable.update();
                }
                ttsCommit;
               //  -- end

            if(previousCustAccount != custId)
            {

               headerTable.AllSalesId         = salesId;

                headerTable.DocumentNum       = newDocuNumber;

                headerTable.GeneratedDate     = today();

               // info(strFmt("header % 1",headerTable.AllSalesId ));

                headerTable.CustAccount       = salesTable.CustAccount;

                custTable = CustTable::find(salesTable.CustAccount);

                headerTable.CustName          = custTable.name();


                headerTable.insert();

                lineTable.DocumentNum         = newDocuNumber;

                lineTable.IsGenerated         = NoYes::Yes;


                lineTable.insert();

                previousCustAccount = headerTable.CustAccount ;
            }

        }

    if(headerTable)
    {
        info(strFmt("New PackingSlip %1", newDocuNumber));
        info(strFmt("SalesIds are %1: ",salesId));
    }

    }

---------------
public void salesIdLookup(FormStringControl SalesOrderLookup)
{
    Query                           query = new Query(Querystr(ASAP_VATDocumentation));
    QueryBuildDataSource            qbdsSO;
    container                       cnt;
    SysLookupMultiSelectGrid        SysLookupMultiSelectGrid;
    ;

    if(dialogCustId.value())
    {
        query.dataSourceTable(tableNum(SalesTable)).addRange(fieldNum(SalesTable, CustAccount)).value(dialogCustId.value());
        query.dataSourceTable(tableNum(SalesTable)).addRange(RangeStatus::Locked);

        if (SalesOrderLookup != null)
        {
            SysLookupMultiSelectGrid::lookup(query, SalesOrderLookup, SalesOrderLookup, cnt);

        }
    }
}

------------
public static void main(Args args)
{
    ASAP_VATDocumentationDialogFields      vatDocumentationDialogFields = new ASAP_VATDocumentationDialogFields();
    ;
    vatDocumentationDialogFields.prompt();

    vatDocumentationDialogFields.run();

}

No comments:

Post a Comment