Java tutorial
/* * Copyright (C) 2012 Krawler Information Systems Pvt Ltd * All rights reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package com.krawler.spring.crm.common; import com.krawler.common.admin.Company; import com.krawler.common.admin.User; import com.krawler.common.util.Constants; import com.krawler.common.util.StringUtil; import com.krawler.common.util.URLUtil; import com.krawler.crm.database.tables.CrmActivityMaster; import com.krawler.crm.database.tables.DefaultMasterItem; import com.krawler.esp.handlers.APICallHandlerService; import com.krawler.esp.handlers.Receiver; import com.krawler.esp.handlers.SendMailHandler; import com.krawler.esp.utils.ConfigReader; import com.krawler.esp.web.resource.Links; import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import com.krawler.spring.common.KwlReturnObject; import com.krawler.spring.common.kwlCommonTablesDAO; import com.krawler.spring.crm.activityModule.crmActivityDAO; import com.krawler.spring.crm.caseModule.crmCaseDAO; import com.krawler.spring.crm.opportunityModule.crmOpportunityReportDAO; import com.krawler.spring.exportFunctionality.exportDAOImpl; import com.krawler.spring.storageHandler.storageHandlerImpl; import com.krawler.utils.json.base.JSONArray; import com.krawler.utils.json.base.JSONObject; import com.lowagie.text.pdf.PdfCopyFields; import com.lowagie.text.pdf.PdfReader; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.springframework.orm.hibernate3.HibernateTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; public class sendemailnotification extends MultiActionController { private HibernateTransactionManager txnManager; private crmActivityDAO crmActivityDAOObj; private kwlCommonTablesDAO KwlCommonTablesDAOObj; private crmManagerDAO crmManagerDAOObj; private exportDAOImpl exportDAOImplObj; private crmCommonDAO crmCommonDAOObj; private crmOpportunityReportDAO opportunityReportDAOObj; private crmCaseDAO crmCaseDAOObj; private APICallHandlerService apiCallHandlerService; public void setApiCallHandlerService(APICallHandlerService apiCallHandlerService) { this.apiCallHandlerService = apiCallHandlerService; } public void setcrmOpportunityReportDAO(crmOpportunityReportDAO opportunityReportDAOObj1) { this.opportunityReportDAOObj = opportunityReportDAOObj1; } public void setcrmCommonDAO(crmCommonDAO crmCommonDAOObj1) { this.crmCommonDAOObj = crmCommonDAOObj1; } public void setexportDAOImpl(exportDAOImpl exportDAOImplObj) { this.exportDAOImplObj = exportDAOImplObj; } public void setCrmManagerDAO(crmManagerDAO crmManagerDAOObj) { this.crmManagerDAOObj = crmManagerDAOObj; } public void setKwlCommonTablesDAO(kwlCommonTablesDAO KwlCommonTablesDAOObj) { this.KwlCommonTablesDAOObj = KwlCommonTablesDAOObj; } public void setCrmActivityDAO(crmActivityDAO crmActivityDAOObj) { this.crmActivityDAOObj = crmActivityDAOObj; } public void setCrmCaseDAO(crmCaseDAO crmCaseDAOObj) { this.crmCaseDAOObj = crmCaseDAOObj; } public void setTxnManager(HibernateTransactionManager txManager) { this.txnManager = txManager; } //Overdue Activity public ModelAndView sendemailOverdueActivity(HttpServletRequest request, HttpServletResponse response) throws ServletException { try { String platformUrl = ConfigReader.getinstance().get("platformURL", null); KwlReturnObject result = crmActivityDAOObj.getOverdueactivities(); List list = result.getEntityList(); Iterator itr = list.iterator(); while (itr.hasNext()) { Object[] obj = (Object[]) itr.next(); User user = (User) KwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User", ((obj[4] == null) ? "" : obj[4].toString())); Company company = user.getCompany(); if (platformUrl == null) { String loginUrl = URLUtil.getDomainURL(company.getSubDomain(), true); sendOverDueTasksEmail(obj, loginUrl); } else { String companyid = company.getCompanyID(); JSONObject temp = new JSONObject(); temp.put("companyid", companyid); apiCallHandlerService.callApp(platformUrl, temp, companyid, "13", false, sendOverDueTasksEmailReceiver(obj)); } } } catch (Exception e) { logger.warn(e.getMessage()); e.printStackTrace(); } finally { return new ModelAndView("jsonView", "model", ""); } } private void sendOverDueTasksEmail(Object[] obj, String loginURL) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("JE_Tx"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED); TransactionStatus status = txnManager.getTransaction(def); try { User user = (User) KwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User", ((obj[4] == null) ? "" : obj[4].toString())); com.krawler.common.admin.Company company = user.getCompany(); String companyName = company.getCompanyName(); if (company.getNotificationtype() == 1 && user.getNotificationtype() == 1) { CrmActivityMaster activityObj = (CrmActivityMaster) KwlCommonTablesDAOObj .getClassObject("com.krawler.crm.database.tables.CrmActivityMaster", obj[5].toString()); String dateFormatId = user.getDateFormat().getFormatID(); String timeFormatId = String.valueOf(user.getTimeformat()); String timeZoneDiff = user.getTimeZone().getDifference(); DateFormat dateformat = KwlCommonTablesDAOObj.getUserDateFormatter(dateFormatId, timeFormatId, timeZoneDiff); SimpleDateFormat timeformat = new SimpleDateFormat("HH:mm a"); String startdate = (activityObj.getStartdate() == null ? "" : dateformat.format(activityObj.getStartdate())); String enddate = (activityObj.getEnddate() == null ? "" : dateformat.format(activityObj.getEnddate())); String starttime = (activityObj.getStartdate() == null ? "" : crmManagerDAOObj.preferenceDatejsformat(timeZoneDiff, activityObj.getStartdate(), timeformat)); String endtime = (activityObj.getEnddate() == null ? "" : crmManagerDAOObj.preferenceDatejsformat(timeZoneDiff, activityObj.getEnddate(), timeformat)); DefaultMasterItem statusobj = (DefaultMasterItem) KwlCommonTablesDAOObj.getClassObject( "com.krawler.crm.database.tables.DefaultMasterItem", ((obj[2] == null) ? "" : obj[2].toString())); DefaultMasterItem priorityobj = (DefaultMasterItem) KwlCommonTablesDAOObj.getClassObject( "com.krawler.crm.database.tables.DefaultMasterItem", ((obj[3] == null) ? "" : obj[3].toString())); loginURL = StringUtil.appendSubDomain(loginURL, company.getSubDomain(), true); String emailhtml = "Hi <b>" + ((obj[0] != null) ? obj[0] : "") + "</b>,<br><br>Following Event/Task in " + companyName + " CRM is overdue:<br>"; emailhtml += "<b>Subject: " + ((obj[1] != null) ? obj[1] : "") + "</b><br>"; emailhtml += "Start Date: " + startdate + "<br>"; emailhtml += "Start Time: " + starttime + "<br>"; emailhtml += "End Date: " + enddate + "<br>"; emailhtml += "End Time: " + endtime + "<br>"; emailhtml += "Status: " + ((statusobj != null) ? statusobj.getValue() : "") + "<br>"; emailhtml += "Priority: " + ((priorityobj != null) ? priorityobj.getValue() : "") + "<br><br>"; emailhtml += "You can log in at" + "<br>"; emailhtml += loginURL + "<br><br>"; emailhtml += "--" + companyName + " Admin"; String plaintext = "Hi " + ((obj[0] != null) ? obj[0] : "") + " ,\n\nFollowing Event/Task in " + companyName + " CRM is overdue:\n"; plaintext += "<b>Subject: " + ((obj[1] != null) ? obj[1] : "") + "</b>\n"; plaintext += "Start Date: " + startdate + "\n"; plaintext += "Start Time: " + starttime + "\n"; plaintext += "End Date: " + enddate + "\n"; plaintext += "End Time: " + endtime + "\n"; plaintext += "Status: " + ((statusobj != null) ? statusobj.getValue() : "") + "\n"; plaintext += "Priority: " + ((priorityobj != null) ? priorityobj.getValue() : "") + "\n\n"; plaintext += "You can log in at" + "\n"; plaintext += loginURL + "\n\n"; plaintext += "--" + companyName + " Admin"; String rEmail = user.getEmailID(); String sysEmailId = StringUtil.getSysEmailIdByCompanyID(company); if (!StringUtil.isNullOrEmpty(rEmail)) { SendMailHandler.postMail(new String[] { rEmail }, "[" + companyName + " CRM] Event/Task Notification", emailhtml, plaintext, sysEmailId, companyName + " Admin"); } } } catch (Exception ex) { txnManager.rollback(status); ex.printStackTrace(); } } private Receiver sendOverDueTasksEmailReceiver(Object[] obj) { return new Receiver() { private Object[] obj; public Receiver setValues(Object[] obj) { this.obj = obj; return this; } @Override public void receive(Object resultObj) { JSONObject jobj = null; if (resultObj instanceof JSONObject) { jobj = (JSONObject) resultObj; } try { String loginUrl = ConfigReader.getinstance().get("crmURL", null); if (jobj.has(com.krawler.common.util.Constants.CRMURL) && !StringUtil .isNullOrEmpty(jobj.getString(com.krawler.common.util.Constants.CRMURL))) { loginUrl = jobj.getString(com.krawler.common.util.Constants.CRMURL); } sendOverDueTasksEmail(obj, loginUrl); } catch (Exception ex) { logger.warn("Cannot store isFree: " + ex.toString()); } } }.setValues(obj); } public ModelAndView sendemailCaseSLA(HttpServletRequest request, HttpServletResponse response) throws ServletException { try { int cronDuration = 15;//Run after 15 minutes String platformUrl = ConfigReader.getinstance().get("platformURL"); if (request.getParameter("cronDuration") != null) { cronDuration = Integer.parseInt(request.getParameter("cronDuration")); } List<Object[]> caselist = crmCaseDAOObj.getCaseSLA(cronDuration); for (Object[] obj : caselist) { int cnotify = Integer.parseInt(obj[9].toString()); int unotify = Integer.parseInt(obj[10].toString()); if (cnotify == 1 && unotify == 1) { User creator = (User) KwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User", ((obj[13] == null) ? "" : obj[13].toString())); Company company = creator.getCompany(); if (platformUrl == null) { String loginUrl = URLUtil.getDomainURL(company.getSubDomain(), true); sendemailCaseSLA(obj, loginUrl); } else { String companyid = company.getCompanyID(); JSONObject temp = new JSONObject(); temp.put("companyid", companyid); apiCallHandlerService.callApp(platformUrl, temp, companyid, "13", false, sendemailCaseSLAReceiver(obj)); } } } } catch (Exception e) { logger.warn(e.getMessage()); e.printStackTrace(); } finally { return new ModelAndView("jsonView", "model", ""); } } private void sendemailCaseSLA(Object[] obj, String loginURL) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("JE_Tx"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED); TransactionStatus status = txnManager.getTransaction(def); try { String managername = obj[6] != null ? obj[6].toString() : ""; String manageremail = obj[7] != null ? obj[7].toString() : ""; String casename = obj[0] != null ? obj[0].toString() : ""; String accountname = obj[2] != null ? obj[2].toString() : ""; String username = obj[1] != null ? obj[1].toString() : ""; String sla = obj[3] != null ? obj[3].toString() : ""; String companyname = obj[11].toString(); String companyemailid = obj[12].toString(); User creator = (User) KwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User", ((obj[13] == null) ? "" : obj[13].toString())); Company company = creator.getCompany(); companyemailid = StringUtil.getSysEmailIdByCompanyID(company); String emailhtml = "Hi <b>" + managername + "</b>,<br><br>"; emailhtml += "Case - <b>" + casename + "</b>" + (!StringUtil.isNullOrEmpty(accountname) ? " for the Account - <b>" + accountname + "</b>" : "") + " assigned to <b>" + username + "</b> has exceeded the " + sla + ".<br><br>"; emailhtml += "You can log in at" + "<br>"; loginURL = StringUtil.appendSubDomain(loginURL, company.getSubDomain(), true); emailhtml += loginURL + "<br><br>"; emailhtml += "--" + companyname + " Admin"; String plaintext = "Hi <b>" + managername + "</b>,\n\n"; plaintext += "Case - <b>" + casename + "</b>" + (!StringUtil.isNullOrEmpty(accountname) ? " for the Account - <b>" + accountname : "") + "</b> assigned to <b>" + username + "</b> has exceeded the " + sla + ".\n\n"; plaintext += "You can log in at" + "\n"; plaintext += loginURL + "\n\n"; plaintext += "--" + companyname + " Admin"; if (!StringUtil.isNullOrEmpty(manageremail)) { SendMailHandler.postMail(new String[] { manageremail }, "[" + companyname + " CRM] Case SLA Notification", emailhtml, plaintext, companyemailid, companyname + " Admin"); } } catch (Exception ex) { txnManager.rollback(status); logger.warn(ex.getMessage()); ex.printStackTrace(); } } private Receiver sendemailCaseSLAReceiver(Object[] obj) { return new Receiver() { private Object[] obj; public Receiver setValues(Object[] obj) { this.obj = obj; return this; } @Override public void receive(Object resultObj) { JSONObject jobj = null; if (resultObj instanceof JSONObject) { jobj = (JSONObject) resultObj; } try { String loginUrl = ConfigReader.getinstance().get("crmURL", null); if (jobj.has(com.krawler.common.util.Constants.CRMURL) && !StringUtil .isNullOrEmpty(jobj.getString(com.krawler.common.util.Constants.CRMURL))) { loginUrl = jobj.getString(com.krawler.common.util.Constants.CRMURL); } sendemailCaseSLA(obj, loginUrl); } catch (Exception ex) { ex.printStackTrace(); logger.warn("Cannot store isFree: " + ex.toString()); } } }.setValues(obj); } public ModelAndView sendOpportunityReportsEmail(HttpServletRequest request, HttpServletResponse response) throws ServletException { try { String platformUrl = ConfigReader.getinstance().get("platformURL"); String userid = ""; ArrayList<String> filter_names = new ArrayList<String>(); ArrayList<Object> filter_values = new ArrayList<Object>(); filter_names.add("dc.emailreport"); filter_values.add(1); KwlReturnObject kr = crmCommonDAOObj.getDashboardReportConfig(filter_names, filter_values); List<Object[]> configList = kr.getEntityList(); HashMap<String, Object> requestParams = new HashMap<String, Object>(); boolean heirarchyPerm = false; requestParams.put("heirarchyPerm", heirarchyPerm); for (Object[] row : configList) { String companyid = row[0].toString(); userid = row[1].toString(); User user = (User) KwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User", userid); com.krawler.common.admin.Company company = user.getCompany(); if (company.getNotificationtype() == 1 && user.getNotificationtype() == 1) { if (platformUrl == null) { String loginUrl = URLUtil.getDomainURL(company.getSubDomain(), true); sendOpportunityReportsEmail(row, loginUrl, company.getCompanyName()); } else { JSONObject temp = new JSONObject(); temp.put("companyid", companyid); apiCallHandlerService.callApp(platformUrl, temp, companyid, "13", false, sendOpportunityReportsEmailReceiver(row, company.getCompanyName())); } } } } catch (Exception e) { logger.warn(e.getMessage()); } finally { return new ModelAndView("jsonView", "model", ""); } } private void sendOpportunityReportsEmail(Object[] row, String loginUrl, String partnerName) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("JE_Tx"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED); TransactionStatus status = txnManager.getTransaction(def); try { ByteArrayOutputStream byRegion = new ByteArrayOutputStream(); ByteArrayOutputStream byStage = new ByteArrayOutputStream(); ByteArrayOutputStream byPerson = new ByteArrayOutputStream(); HashMap<String, ByteArrayOutputStream> regionMap = new HashMap<String, ByteArrayOutputStream>(); HashMap<String, ByteArrayOutputStream> stageMap = new HashMap<String, ByteArrayOutputStream>(); HashMap<String, ByteArrayOutputStream> personMap = new HashMap<String, ByteArrayOutputStream>(); String reportname = "Opportunity Sales Reports"; String userEmailID = ""; String username = ""; String config = ""; String title = ""; String width = "285,285"; String header = "name,salesamount"; String align = "center,right"; String xtype = ""; String companyid = row[0].toString(); String userid = row[1].toString(); JSONObject jobj = new JSONObject(); User user = (User) KwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User", userid); com.krawler.common.admin.Company company = user.getCompany(); HashMap<String, StringBuffer> userListMap = new HashMap<String, StringBuffer>(); HashMap<String, User> userMap = new HashMap<String, User>(); StringBuffer usersList = new StringBuffer(); if (userListMap.containsKey(userid)) { usersList = userListMap.get(userid); } else { usersList = crmManagerDAOObj.recursiveUsers(userid); userListMap.put(userid, usersList); } int rid = Integer.parseInt(row[2].toString()); username = row[6].toString(); userEmailID = (row[7] != null) ? row[7].toString() : ""; userMap.put(userid, user); HashMap<String, Object> requestParams = new HashMap<String, Object>(); requestParams.put("companyid", companyid); List<Object[]> dataList = new ArrayList<Object[]>(); if (rid == 46) {//Opp Sales By Region requestParams.put("valueField", "c.crmCombodataByRegionid.value"); requestParams.put("groupbyField", "c.crmCombodataByRegionid"); requestParams.put("idField", "c.crmCombodataByRegionid.ID"); dataList = opportunityReportDAOObj.oppSalesamountDashboardPieChart(requestParams, usersList); title = "Region,Sales Amount"; config = "{\"landscape\":\"true\",\"pageBorder\":\"true\",\"gridBorder\":\"true\",\"title\":\"Sales By Region\",\"subtitles\":\"\",\"headNote\":\"Opportunity Report\",\"showLogo\":\"false\",\"headDate\":\"false\",\"footDate\":\"true\",\"footPager\":\"true\",\"headPager\":\"false\",\"footNote\":\"\",\"textColor\":\"000000\",\"bgColor\":\"FFFFFF\"}"; jobj = getSalesJSONdata(dataList); JSONArray gridmap = null; byRegion = exportDAOImplObj.getPdfData(gridmap, config, title, header, width, align, xtype, jobj); regionMap.put(userid, byRegion); } else if (rid == 47) {//Opp Sales By Stage requestParams.put("valueField", "c.crmCombodataByOppstageid.value"); requestParams.put("groupbyField", "c.crmCombodataByOppstageid"); requestParams.put("idField", "c.crmCombodataByOppstageid.ID"); dataList = opportunityReportDAOObj.oppSalesamountDashboardPieChart(requestParams, usersList); title = "Opportunity Stage,Sales Amount"; config = "{\"landscape\":\"true\",\"pageBorder\":\"true\",\"gridBorder\":\"true\",\"title\":\"Sales By Stage\",\"subtitles\":\"\",\"headNote\":\"Opportunity Report\",\"showLogo\":\"false\",\"headDate\":\"false\",\"footDate\":\"true\",\"footPager\":\"true\",\"headPager\":\"false\",\"footNote\":\"\",\"textColor\":\"000000\",\"bgColor\":\"FFFFFF\"}"; jobj = getSalesJSONdata(dataList); JSONArray gridmap = null; byStage = exportDAOImplObj.getPdfData(gridmap, config, title, header, width, align, xtype, jobj); stageMap.put(userid, byStage); } else if (rid == 48) {//Opp Sales By Sales Person requestParams.put("valueField", "oo.usersByUserid.firstName||' '||oo.usersByUserid.lastName as name"); requestParams.put("groupbyField", "oo.usersByUserid"); requestParams.put("idField", "oo.usersByUserid.userID"); dataList = opportunityReportDAOObj.oppSalesamountDashboardPieChart(requestParams, usersList); title = "Sales Person,Sales Amount"; config = "{\"landscape\":\"true\",\"pageBorder\":\"true\",\"gridBorder\":\"true\",\"title\":\"Sales By Person\",\"subtitles\":\"\",\"headNote\":\"Opportunity Report\",\"showLogo\":\"false\",\"headDate\":\"false\",\"footDate\":\"true\",\"footPager\":\"true\",\"headPager\":\"false\",\"footNote\":\"\",\"textColor\":\"000000\",\"bgColor\":\"FFFFFF\"}"; jobj = getSalesJSONdata(dataList); JSONArray gridmap = null; byPerson = exportDAOImplObj.getPdfData(gridmap, config, title, header, width, align, xtype, jobj); personMap.put(userid, byPerson); } Iterator ite = userMap.keySet().iterator(); while (ite.hasNext()) { userid = (String) ite.next(); User userObj = userMap.get(userid); username = StringUtil.getFullName(userObj); userEmailID = userObj.getEmailID(); if (regionMap.containsKey(userid)) { byRegion = regionMap.get(userid); } else { byRegion = new ByteArrayOutputStream(); } if (stageMap.containsKey(userid)) { byStage = stageMap.get(userid); } else { byStage = new ByteArrayOutputStream(); } if (personMap.containsKey(userid)) { byPerson = personMap.get(userid); } else { byPerson = new ByteArrayOutputStream(); } exportPDF(reportname, userid, username, userEmailID, byRegion, byStage, byPerson, partnerName, StringUtil.getSysEmailIdByCompanyID(company)); } } catch (Exception ex) { ex.printStackTrace(); txnManager.rollback(status); } } private Receiver sendOpportunityReportsEmailReceiver(Object[] obj, String companyName) { return new Receiver() { private Object[] obj; private String companyName; public Receiver setValues(Object[] obj, String companyName) { this.obj = obj; this.companyName = companyName; return this; } @Override public void receive(Object resultObj) { JSONObject jobj = null; if (resultObj instanceof JSONObject) { jobj = (JSONObject) resultObj; } try { String loginUrl = ConfigReader.getinstance().get("crmURL", null); if (jobj.has(com.krawler.common.util.Constants.CRMURL) && !StringUtil .isNullOrEmpty(jobj.getString(com.krawler.common.util.Constants.CRMURL))) { loginUrl = jobj.getString(com.krawler.common.util.Constants.CRMURL); } String partnerName = jobj.optString(Constants.SESSION_PARTNERNAME, this.companyName); if (partnerName.equals(Constants.DESKERA)) partnerName = this.companyName; sendOpportunityReportsEmail(obj, loginUrl, partnerName); } catch (Exception ex) { ex.printStackTrace(); logger.warn("Cannot store isFree: " + ex.toString()); } } }.setValues(obj, companyName); } public JSONObject getSalesJSONdata(List<Object[]> dataList) { JSONArray jarr = new JSONArray(); JSONObject jobj = new JSONObject(); try { for (Object[] datarow : dataList) { Object salesamount = (Object) datarow[0]; String mastername = ""; if (datarow[1] != null) { mastername = datarow[2].toString(); } else { mastername = "None"; } if (Double.parseDouble(String.valueOf(salesamount)) > 0) { JSONObject tmpObj = new JSONObject(); tmpObj.put("name", mastername); tmpObj.put("salesamount", salesamount); jarr.put(tmpObj); } } jobj.put("success", true); jobj.put("data", jarr); } catch (Exception e) { logger.warn(e.getMessage()); } return jobj; } public void exportPDF(String reportname, String userid, String username, String userEmailID, ByteArrayOutputStream byStage, ByteArrayOutputStream byRegion, ByteArrayOutputStream bySalesPerson, String partnerName, String sysEmailId) { try { PdfReader reader = null; PdfReader reader2 = null; PdfReader reader3 = null; // new reader with the PDF just created if (byStage.size() > 0) { reader = new PdfReader(byStage.toByteArray()); } // 2nd reader with pdf if (byRegion.size() > 0) { reader2 = new PdfReader(byRegion.toByteArray()); } // 3rd reader with pdf if (bySalesPerson.size() > 0) { reader3 = new PdfReader(bySalesPerson.toByteArray()); } PdfCopyFields copy = new PdfCopyFields(byStage); if (reader != null) copy.addDocument(reader); if (reader2 != null) copy.addDocument(reader2); if (reader3 != null) copy.addDocument(reader3); copy.close(); // response.setHeader("Content-Disposition", "attachment; filename=\"" + reportname + ".pdf\""); // response.setContentType("application/octet-stream"); // response.setContentLength(byStage.size()); // response.getOutputStream().write(byStage.toByteArray()); // response.getOutputStream().flush(); // response.getOutputStream().close(); if (byStage.size() > 0) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String GenerateDate = df.format(new Date()); String fileName = reportname + "_" + userid + "_" + GenerateDate + ".pdf"; String destinationDirectory = storageHandlerImpl.GetDocStorePath() + "opportunityreport"; java.io.File destDir = new java.io.File(destinationDirectory); if (!destDir.exists()) { //Create destination folder if not present destDir.mkdirs(); } fileName = destinationDirectory + "/" + fileName; java.io.FileOutputStream fileOut = new java.io.FileOutputStream(fileName); fileOut.write(byStage.toByteArray()); fileOut.flush(); fileOut.close(); String htmltxt = "Hi <b>" + username + "</b>,<br><br>"; htmltxt += "<br/><br/>Attachment is the pdf file containing Opportunity sales report."; htmltxt += "<br/>For queries, email us at " + sysEmailId + "<br/>"; htmltxt += "<br/>" + partnerName + " Admin"; String plainMsg = "Hi " + username + " ,\n\n"; plainMsg += "\n\nAttachment is the pdf file containing Opportunity sales report."; plainMsg += "\nFor queries, email us at " + sysEmailId + "\n"; plainMsg += "\n" + partnerName + " Admin"; if (!StringUtil.isNullOrEmpty(userEmailID)) { SendMailHandler.postMailAttachment(new String[] { userEmailID }, "[" + partnerName + " CRM] - Opportuniy sales reports.", htmltxt, plainMsg, partnerName + " Admin<" + sysEmailId + ">", fileName, reportname + ".pdf"); } } } catch (Exception e) { Logger.getLogger(sendemailnotification.class.getName()).log(Level.SEVERE, null, e); } } // public KwlReturnObject getOverdueactivities() { // List lst = null; // try { // String hql = ""; // //Convert schedule date and schedule time to server timezone not GMT. Then compare the date. // String serverTimezone = ConfigReader.getinstance().get("SERVER_TIMEZONE");//"-05:00"; // serverTimezone = "-05:00"; // hql = "select concat(fname,' ',lname) as name,subject,startdate,starttime,enddate,endtime,statusid,priorityid,companyid,users.userid from crm_activity_master as am " + // " inner join users on am.userid = users.userid " + // " inner join timezone as tz on tz.timzoneid = users.timezone where " + // " DATEDIFF(DATE_FORMAT(CONVERT_TZ(ADDTIME(am.enddate, am.endtime), '+00:00', '"+serverTimezone+"'),'%Y-%m-%d %H:%i:%S'), NOW()) = -1 "; // lst = executeNativeQuery(hql); // } catch (Exception e) // { // throw ServiceException.FAILURE("crmActivityDAOImpl.getOverdueactivities : "+e.getMessage(), e); // } finally { // return new KwlReturnObject(true, KWLErrorMsgs.S01, "", lst, lst.size()); // } // } }