Tuesday, January 7, 2020

X++ code for Customer Ageing through Job

static void CustomerAgeingCode(Args _args)
{
    CustAgingReportTmp          custAgingReportTmp;
    GH_CustAgingReportTmp       _ageingMaster;
    Query                       query        = new Query();
    QueryBuildDataSource        queryBuildDataSource;
    QueryBuildRange             queryBuildRange;
    int                         i;
   // CustTable                   _custTable = CustTable::find("C-00001");
    CustAgingReportController   controller   = new CustAgingReportController();
    CustAgingReportContract     rdpContract  = new CustAgingReportContract ();
    CustAgingReportDP           dataProvider = new CustAgingReportDP();
    ;
    //contract class name
     rdpContract.parmZeroDate(today()); // Balance as of
     rdpContract.parmZeroDate(today()); // Start date
     rdpContract.parmDateTransactionDuedate(DateTransactionDuedate::TransactionDate);
     rdpContract.parmDetailed(NoYes::No); // Is Detail;
     rdpContract.parmAgingBuckets("0-30-60-90-120-120 plus days" );  // Aging period
     rdpContract.parmExcludeZeroBalanceCustomer(NoYes::Yes);
     rdpContract.parmDirection(ForwardBackwardPrinting::Forward);
     rdpContract.parmPeriod(DayMonth::Day);
    //Get data contract instance.
    controller.parmReportName(ssrsReportStr(CustAgingReport, DesignWithNoDetailAndWithTransactionCur));

    query = controller.parmReportContract().parmQueryContracts().lookup('CustAgingReportDP_DynamicParameter');
    query.dataSourceNo(1).clearRanges();
   // query.dataSourceNo(1).addRange(fieldNum(CustTable, AccountNum)).Value(SysQuery::value('C-00061')); //  GIVE CUSTOMER ACCOUNT

    //parameter that you passing in contract class
    query = dataProvider.parmQuery();
    query.dataSourceNo(1).addRange(fieldNum(CustTable, AccountNum)).Value(SysQuery::value('C-00061'));
    dataProvider.parmDataContract(rdpContract);
    dataProvider.processReport();
    custAgingReportTmp = dataProvider.getCustAgingReportTmp();

    while select custAgingReportTmp
     {
        // print(custAgingReportTmp.CustAccount);
        // Just print the filed that you want see the output
        // print(custAgingReportTmp.Name);
        info(strFmt("customer         - %1", custAgingReportTmp.CustAccount));
        info(strFmt("name             - %1", custAgingReportTmp.Name));
        info(strFmt("Total Receiable  - %1", custAgingReportTmp.Balance01));
        info(strFmt("Current Balance  - %1", custAgingReportTmp.Balance02));
        info(strFmt("30days           - %1", custAgingReportTmp.Balance03));
        info(strFmt("60days           - %1", custAgingReportTmp.Balance04));
        info(strFmt("90days           - %1", custAgingReportTmp.Balance05));
        info(strFmt("120days          - %1", custAgingReportTmp.Balance06));
        info(strFmt("+120days         - %1", custAgingReportTmp.Balance07));
     }


}

No comments:

Post a Comment