Showing posts with label Show the data in table format while send mail in ax 2012. Show all posts
Showing posts with label Show the data in table format while send mail in ax 2012. Show all posts

Thursday, 13 September 2018

Show the data in table format while send mail in ax 2012

static void Na_SendingMailPurchRequisition(Args _args)
{
    AlertUserInfo                   alertUserInfo;
    sysUserInfo                      sysUserInfo,sysUserInfolog;
    PurchReqTableExt            purchReqTableExt;
    PurchReqTable                 purchReqTable;
    PurchReqLine                  purchReqLine;
    EcoResCategory              ecoResCategory;
    str                                    PRid,Journalno,netamt,sumAmount,Unitprice,unit;
    str                                    ItemId,Productname,procurementcategory,purchqty,postDate;
    str                                    linedetails;
    TransDate                        PostedDate;
    Amount                           netamount,amount;

    SysEmailBatch               batch = new SysEmailBatch();
    #Define.AdminMailID("joseph.waititu@cic.co.ke")
    #define.Opentablerowdiv("<tr><td>")
    #define.Closetablediv("</td><td>")
    #define.Open("<td>")
    #define.Close("</td")
    #define.Closetablerowdiv("</td></tr>")
    #define.Header1("<p> Dear ")
    #define.Header2(",</p><p>Kindly find the Payment Receipt Confirmation for the below Internal Purchase Requisition:</p>");
    #define.header3("<table width= 40% border='2'><tr><td><h5>User Id</h5></td><td>")
    #define.Header4("<tr><td><h5>User Name</h5></td><td>")
    #define.Header5("<tr><td><h5>PR Id</h5></td><td>")
    #define.Header6("<tr><td><h5>Journal no</h5></td><td>")
    #define.Header7("<tr><td><h5>Posted Date</h5></td><td>")
    #define.Header8("<tr><td><h5>Amount</h5></td><td>")
    #define.Header9("</table>")
    #define.Header10("<p>Product Details: </p><table width= 100% border='2'><tr><th>Product Code</th><th>Product Name</th><th>Procurement category</th><th>Qty</th><th>Unit</th><th>Unit Price</th><th>Net amount</th></tr>")
    #define.Subject("Payment Receipt Confirmation  ")

    try
    {
        ttsbegin;
        while select forupdate purchReqTableExt
            where purchReqTableExt.BeforeSent  == NoYes::Yes
               && purchReqTableExt.PaymentSent == NoYes::No
               && purchReqTableExt.JournalNum != ""
        join sysUserInfolog
            where sysUserInfolog.Id == purchReqTableExt.createdBy
        join purchReqTable
            where purchReqTable.RecId == purchReqTableExt.PurchReqTable
        {
            while select purchReqLine
                where purchReqLine.PurchReqTable == purchReqTable.RecId
            {
                PRid                       = purchReqTable.PurchReqId;
                Journalno               = purchReqTableExt.JournalNum;
                PostedDate            = purchReqTable.TransDate;
                netamount              = purchReqLine.LineAmount;
                amount                  += netamount;
                ItemId                     = purchReqLine.ItemId;
                Productname          = InventTable::find(purchReqLine.ItemId).NameAlias;
                Unitprice                = strFmt("%1",purchReqLine.PurchPrice);
                purchqty                 = strFmt("%1",purchReqLine.PurchQty);
                netamt                    = strFmt("%1",purchReqLine.LineAmount);
                sumAmount           = strFmt("%1",amount);
                postDate                 = strFmt("%1",purchReqTable.TransDate);
                unit                         = unitOfMeasure::find(purchReqLine.purchunitofmeasure).Symbol;
                select firstOnly name from ecoResCategory
                    where ecoResCategory.recid == purchReqLine.ProcurementCategory;
                procurementcategory = ecoResCategory.Name;
                linedetails       += strFmt(#Opentablerowdiv + purchReqLine.ItemId + #Closetablediv + Productname +#Closetablediv + procurementcategory +  #Closetablediv + purchqty +  #Closetablediv+ unit+ #Closetablediv+ Unitprice +#Closetablediv+netamt +  #Closetablerowdiv);
            }
            while select Email from sysUserInfo
            join alertUserInfo
                where alertUserInfo.PRPayment == NoYes::Yes
                    && alertUserInfo.id       == sysUserInfo.Id
            {
                batch.parmSenderAddr(#AdminMailID);
                batch.parmEmailAddr("aslam.p@dhanushinfotech.net");//sysUserInfo.Email);
                batch.parmMessageBody(#Header1 + alertUserInfo.Id + #Header2 + #Header3 + alertUserInfo.Id +#Closetablerowdiv + #Header4 + UserInfoHelp::userName(alertUserInfo.Id) +#Closetablerowdiv+ #Header5 + PRid +#Closetablerowdiv + #Header6 + Journalno +#Closetablerowdiv+ #Header7 + postDate +#Closetablerowdiv + #Header8 + sumAmount +#Closetablerowdiv+ #Header9 + #Header10 + linedetails+  #Header9);
                batch.parmSubject(#Subject + PRid);
                batch.run();
            }

            if (sysUserInfolog.Email)
            {
                batch.parmSenderAddr(#AdminMailID);
                batch.parmEmailAddr("raghava.r@dhanushinfotech.net");//sysUserInfolog.Email);
                batch.parmMessageBody(#Header1 + sysUserInfolog.Id + #Header2 + #Header3 + sysUserInfolog.Id +#Closetablerowdiv + #Header4 + UserInfoHelp::userName(sysUserInfolog.Id) +#Closetablerowdiv+ #Header5 + PRid +#Closetablerowdiv + #Header6 + Journalno +#Closetablerowdiv+ #Header7 + postDate +#Closetablerowdiv + #Header8 + sumAmount +#Closetablerowdiv+ #Header9 + #Header10 + linedetails+  #Header9);
                batch.parmSubject(#Subject + PRid);
                batch.run();
            }

            purchReqTableExt.PaymentSent = NoYes::Yes;
            purchReqTableExt.update();
        }
        amount  = 0.0;
        ttsCommit;
    }
    catch (Exception::Error)
    {
        error("An Error occur while trying to send mail");
        ttsAbort;
    }

}