Tuesday, June 24, 2014

Sending an email with HTML formats

static void BKSendingMailWithHTMLFormat(Args _args)
{

    HcmWorker                   hcmworker,hcmWorkerBuffer;
    int64                               workerRecId;
    SysMailer                       mail;
    str                                  senderEmail,name;
    str                                  recipientEmail,recipientEmail2;
    str                                  messageText, leavetype,letterTemplate;
    Name                            empl, Manager;
    str                                 cc, to, body, sub;
       
    mail = new SysMailer();

    workerRecId = hcmworker::userId2Worker(curUserId());
    select hcmworker where hcmworker.RecId == workerRecId;
    cc = "unknown@gmail.com";
    recipientEmail = "unknown@gmail.com";

    Name = DirPartyTable::findRec(HcmWorker::find(global::currentWorker()).Person).Name;


    sub = strfmt("Regarding Employee Letter Request");

    body = "<html><body>"+ strfmt("Dear %1,",Manager)+ "<br/><br>"+
                        strfmt("%1 being employee Id %2 has Requested for the %3",name,hcmworker.TransferEmployeeCode,letterTemplate) + "<br/><br>";
   
    body = Body + "<html> <body><table border='1'>";

    senderEmail     =   'unknown@gmail.com';
    body= body+  "<tr><td>" +   "Date"    +"</td>";
    body= body+  "<td>" +  strfmt("%1",today())    +"</td></tr>";
    body= body+  "<tr><td>" +   "Employee Name"    +"</td>";
    body= body+  "<td>" +  strfmt("%1",Name)    +"</td></tr>";
    body= body+  "<tr><td>" +   "Letter"    +"</td>";
    body= body+  "<td>" +  strfmt("%1",letterTemplate)    +"</td></tr>";

    Body= Body + "</table>";

    Body = Body + strfmt("<br/><br/><b>Note:This is a system generated email. Please do not reply to this mail.</b> </body></html>");
    mail.quickSend(senderEmail, recipientEmail,sub, Body);


}

Sunday, June 15, 2014

General ledger Import / General Ledger opening Balance

static void GLImport(Args _args)
{
    LedgerjournalTable LedgerjournalTable;
    LedgerjournalTrans LedgerjournalTrans;
    numberSeq numberSeq;
     container  ledgerDimensions, offsetDimensions;
       CommaTextIO                     csvFile;
    container                   readCon;
    counter                     icount,inserted;
    Filename    filename;
    Name ledgerdim, offsetledgerdim;
    boolean first;
    MainAccount main;


    filename = "c:\\Test.csv";
    first  = true;

    csvFile = new CommaTextIo(filename, 'r');
        csvFile.inFieldDelimiter(',');
        readCon = csvFile.read();

        while(csvFile.status() == IO_Status::OK)
        {
            readCon = csvFile.read();

            if(readCon)
            {

               //main = MainAccount::findByMainAccountId(conPeek(readCon,1));
                //if (!main)
                //{
                   //info(strFmt("does not exist --- %1", conPeek(readCon,1))) ;
                //}
                //else{
                     //info(strFmt("exist --- %1", conPeek(readCon,1))) ;
                //}

      if (first)
      {
          LedgerjournalTable.clear();
           LedgerjournalTable.JournalName      ="OpBal";
           LedgerjournalTable.initFromLedgerJournalName();
          LedgerjournalTable.name = "Ledger opening balance";
           LedgerjournalTable.JournalNum       =  NumberSeq::newGetNum(LedgerParameters::numRefJournalNum()).num(); //JournalTableData::newTable(LedgerjournalTable).nextJournalId();
           LedgerjournalTable.insert();
          first = false;
      }



           LedgerjournalTrans.clear();
     LedgerjournalTrans.AmountCurCredit      =   0;
           LedgerjournalTrans.AmountCurDebit       =   0;
                ledgerdim = conPeek(readCon,1);
                offsetledgerdim = conpeek(readCon,4);

           LedgerjournalTrans.Voucher              =    NumberSeq::newGetVoucherFromId((LedgerJournalName::find("OpBal").NumberSequenceTable)).voucher();
           LedgerjournalTrans.JournalNum           =   LedgerjournalTable.JournalNum;
           LedgerjournalTrans.CurrencyCode         =   CompanyInfo::standardCurrency();
          LedgerjournalTrans.Txt     = "Opening Balance";
       LedgerjournalTrans.TransDate = mkDate(31,12,2013);

    ledgerDimensions = [ledgerdim, ledgerdim, 0];
            offsetDimensions = [offsetledgerdim, offsetledgerdim, 0];
      LedgerjournalTrans.DocumentDate = mkDate(31,12,2013);
    LedgerjournalTrans.AccountType = LedgerJournalACType::Ledger;
     LedgerjournalTrans.LedgerDimension       = AxdDimensionUtil::getLedgerAccountId(ledgerDimensions);
     LedgerjournalTrans.AmountCurCredit      =   conPeek(readCon,3);
           LedgerjournalTrans.AmountCurDebit       =    conPeek(readCon,2);
    LedgerjournalTrans.OffsetAccountType = LedgerJournalACType::Ledger;
     LedgerjournalTrans.OffsetLedgerDimension    = AxdDimensionUtil::getLedgerAccountId(offsetDimensions);
    LedgerjournalTrans.insert();
            }
    }

}

CSV Format :
1) Ledger Dimension
2) Debit Amount
3) Credit Amount
4) Offset Ledger Dimension