Commit c33e1a24 authored by vbhosale's avatar vbhosale

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@176769 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 21d5731a
......@@ -6,7 +6,6 @@ import ibase.utility.CommonConstants;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.ITMException;
import java.io.File;
import java.rmi.RemoteException;
import org.json.simple.JSONObject;
......@@ -72,7 +71,9 @@ public class PlanVsActual extends ValidatorEJB implements PlanVsActualLocal,Plan
toDate = e12GenericUtility.getValidDateString(toDate, "dd/MM/yyyy", "dd-MMM-yy");
}
sql = "(SELECT TO_CHAR(SM.EVENT_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS ,SP.SP_NAME ,SM.STRG_CODE ,INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )AS DOCTORNAME ,L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY FROM SALES_PERS SP INNER JOIN STRG_MEET SM ON SP.SALES_PERS=SM.SALES_PERS INNER JOIN STRG_CUSTOMER SC ON SC.SC_CODE=SM.STRG_CODE INNER JOIN LOCALITY L ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL ON SPL.SPL_CODE=SS.SPL_CODE WHERE SM.EVENT_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"'"+appendSQL+" INTERSECT (SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS , SP.SP_NAME ,SPC.SC_CODE ,INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )AS DOCTORNAME , L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH ON SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN SPRS_PLAN_CUST SPC ON SPH.PLAN_ID=SPC.PLAN_ID INNER JOIN STRG_CUSTOMER SC ON SC.SC_CODE=SPC.SC_CODE INNER JOIN LOCALITY L ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL ON SPL.SPL_CODE=SS.SPL_CODE WHERE SPH.PLAN_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"'"+appendSQL+"";
sql = "(SELECT TO_CHAR(SM.EVENT_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS ,SP.SP_NAME ,SM.STRG_CODE ,INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )AS DOCTORNAME ,L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY FROM SALES_PERS SP INNER JOIN STRG_MEET SM ON SP.SALES_PERS=SM.SALES_PERS INNER JOIN STRG_CUSTOMER SC ON SC.SC_CODE=SM.STRG_CODE INNER JOIN LOCALITY L ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL ON SPL.SPL_CODE=SS.SPL_CODE " +
"WHERE SM.EVENT_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"'" +
""+appendSQL+" INTERSECT (SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE , SP.SALES_PERS , SP.SP_NAME ,SPC.SC_CODE ,INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )AS DOCTORNAME , L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH ON SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN SPRS_PLAN_CUST SPC ON SPH.PLAN_ID=SPC.PLAN_ID INNER JOIN STRG_CUSTOMER SC ON SC.SC_CODE=SPC.SC_CODE INNER JOIN LOCALITY L ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL ON SPL.SPL_CODE=SS.SPL_CODE WHERE SPH.PLAN_DATE BETWEEN '"+fromDate+"' AND '"+toDate+"'"+appendSQL+"";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
String docName = "",locality = "", speciality = "";
......@@ -203,6 +204,7 @@ public class PlanVsActual extends ValidatorEJB implements PlanVsActualLocal,Plan
pstmt.close();
pstmt=null;
int count = 0;
for (Map.Entry<String, HashMap<String, ArrayList<String>>> entry : finalMap.entrySet())
{
rawJson = new JSONObject();
......@@ -452,10 +454,12 @@ public class PlanVsActual extends ValidatorEJB implements PlanVsActualLocal,Plan
int currentDOW = cal.get(Calendar.DAY_OF_WEEK);
cal.add(Calendar.DAY_OF_YEAR, (currentDOW * -1)+7);
}
System.out.println("formatter.format(cal.getTime(): "+formatter.format(cal.getTime()));
return formatter.format(cal.getTime());
}
public ArrayList<String> getStrgCodeList(String dataSourceName,String loginId,String salePersons) throws ITMException{
public ArrayList<String> getStrgCodeList(String dataSourceName,String loginId,String salePersons) throws ITMException
{
String todayDate = getDateString("",new SimpleDateFormat("dd-MMM-yy"));
String appendSQL = "",sql = null;
ResultSet rs = null;
......@@ -466,7 +470,8 @@ public class PlanVsActual extends ValidatorEJB implements PlanVsActualLocal,Plan
try {
if(!salePersons.contains(",")){
if(!salePersons.contains(","))
{
appendSQL = " AND SP.SALES_PERS IN (SELECT EMP_CODE FROM EMPLOYEE START WITH EMP_CODE = (SELECT EMP_CODE FROM USERS WHERE CODE='"+loginId+"') connect by prior emp_code = report_to))";
}
else {
......@@ -521,4 +526,538 @@ public class PlanVsActual extends ValidatorEJB implements PlanVsActualLocal,Plan
return strgCodeList;
}
/*@SuppressWarnings("unchecked")
@Override
public JSONObject getTodaysCalls(String dataSourceName,String loginId,String salePersons) throws RemoteException, ITMException
{
JSONObject rawDataPlanDtlJson = new JSONObject();
JSONObject rawJson = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
String appendSQL = "";
DashboardUtility dashboardUtility = null;
SimpleDateFormat formatter = null;
E12GenericUtility e12GenericUtility = null;
int count = 0;
double plannedRowCount=0, unplannedRowCount=0, missedRowCount=0, listedRowCount=0, unlistedRowCount=0;
try
{
salePersons = salePersons == null ? "": salePersons.trim();
dashboardUtility = new DashboardUtility();
salePersons = dashboardUtility.getCommaSeparated(salePersons);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
formatter = new SimpleDateFormat("dd-MMM-yy");
----------Planned doctors visited-----Planned--------
sql = "(SELECT TO_CHAR(SM.EVENT_DATE,'DD-MON-YYYY') AS EVENTDATE , " +
"SP.SALES_PERS ,SP.SP_NAME ,SM.STRG_CODE ," +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME ,L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY " +
"FROM SALES_PERS SP INNER JOIN STRG_MEET SM " +
"ON SP.SALES_PERS=SM.SALES_PERS INNER JOIN STRG_CUSTOMER SC " +
"ON SC.SC_CODE=SM.STRG_CODE INNER JOIN LOCALITY L " +
"ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS " +
"ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL " +
"ON SPL.SPL_CODE=SS.SPL_CODE " +
"WHERE SM.EVENT_DATE <= sysdate) INTERSECT " +
"(SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE , " +
"SP.SALES_PERS , SP.SP_NAME ,SPC.SC_CODE ," +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME , L.DESCR AS LOCALITY ,SPL.DESCR AS " +
"SPECIALITY FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH " +
"ON SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN " +
"SPRS_PLAN_CUST SPC ON SPH.PLAN_ID=SPC.PLAN_ID INNER JOIN " +
"STRG_CUSTOMER SC ON SC.SC_CODE=SPC.SC_CODE INNER JOIN " +
"LOCALITY L ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN " +
"STRG_SERIES SS ON SS.SC_CODE=SC.SC_CODE INNER JOIN " +
"SPECIALITY SPL ON SPL.SPL_CODE=SS.SPL_CODE " +
"WHERE SPH.PLAN_DATE <= sysdate) ";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
plannedRowCount = 0;
rs.last();
plannedRowCount = rs.getRow();
rs.beforeFirst();
rs.close();
rs=null;
pstmt.close();
pstmt=null;
System.out.println(" Planned doctors visited :"+plannedRowCount);
----------Planned doctors not visited-----Missed-------
sql = "(SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE ," +
"SP.SALES_PERS ,SP.SP_NAME ,SPC.SC_CODE , " +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME ,L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY " +
"FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH ON " +
"SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN " +
"SPRS_PLAN_CUST SPC ON SPH.PLAN_ID=SPC.PLAN_ID INNER JOIN " +
"STRG_CUSTOMER SC ON SC.SC_CODE=SPC.SC_CODE INNER JOIN " +
"LOCALITY L ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN " +
"STRG_SERIES SS ON SS.SC_CODE=SC.SC_CODE INNER JOIN " +
"SPECIALITY SPL ON SPL.SPL_CODE=SS.SPL_CODE " +
"WHERE SPH.PLAN_DATE = sysdate) MINUS (SELECT " +
"TO_CHAR(SM.EVENT_DATE,'DD-MON-YYYY') AS EVENTDATE ," +
"SP.SALES_PERS , SP.SP_NAME ,SM.STRG_CODE ," +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME ,L.DESCR AS LOCALITY ,SPL.DESCR AS " +
"SPECIALITY FROM SALES_PERS SP INNER JOIN STRG_MEET SM " +
"ON SP.SALES_PERS=SM.SALES_PERS INNER JOIN STRG_CUSTOMER SC " +
"ON SC.SC_CODE=SM.STRG_CODE INNER JOIN LOCALITY L " +
"ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS " +
"ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL " +
"ON SPL.SPL_CODE=SS.SPL_CODE WHERE " +
"SM.EVENT_DATE = sysdate)";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
missedRowCount = 0;
rs.last();
missedRowCount = rs.getRow();
rs.beforeFirst();
System.out.println(" Planned doctors not visited :"+missedRowCount);
rs.close();
rs=null;
pstmt.close();
pstmt=null;
----------Unplanned doctors visited----Unplanned--------
sql = "(SELECT TO_CHAR(SM.EVENT_DATE,'DD-MON-YYYY') AS EVENTDATE ," +
"SP.SALES_PERS ,SP.SP_NAME ,SM.STRG_CODE , " +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME ,L.DESCR AS LOCALITY , SPL.DESCR AS SPECIALITY " +
"FROM SALES_PERS SP INNER JOIN STRG_MEET SM ON " +
"SP.SALES_PERS=SM.SALES_PERS INNER JOIN STRG_CUSTOMER SC " +
"ON SC.SC_CODE=SM.STRG_CODE INNER JOIN LOCALITY L " +
"ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS " +
"ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL " +
"ON SPL.SPL_CODE=SS.SPL_CODE WHERE " +
"SM.EVENT_DATE <= sysdate) MINUS " +
"(SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE ," +
"SP.SALES_PERS ,SP.SP_NAME ,SPC.SC_CODE , " +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME ,L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY " +
"FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH ON " +
"SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN SPRS_PLAN_CUST SPC " +
"ON SPH.PLAN_ID=SPC.PLAN_ID INNER JOIN STRG_CUSTOMER SC " +
"ON SC.SC_CODE=SPC.SC_CODE INNER JOIN LOCALITY L " +
"ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS " +
"ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL " +
"ON SPL.SPL_CODE=SS.SPL_CODE WHERE " +
"SPH.PLAN_DATE <= sysdate)";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
unplannedRowCount = 0;
rs.last();
unplannedRowCount = rs.getRow();
rs.beforeFirst();
System.out.println(" Unplanned doctors visited :"+unplannedRowCount);
rs.close();
rs=null;
pstmt.close();
pstmt=null;
---------Listed -------------------------
sql="SELECT * FROM STRG_MEET SM INNER JOIN STRG_SERIES SS ON SS.SALES_PERS = SM.SALES_PERS WHERE SM.EVENT_DATE=sysdate";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
listedRowCount = 0;
rs.last();
listedRowCount = rs.getRow();
rs.beforeFirst();
System.out.println("Listed------> :"+listedRowCount);
rs.close();
rs=null;
pstmt.close();
pstmt=null;
-----------Unlisted----------------------
sql="SELECT * FROM STRG_MEET SM INNER JOIN STRG_SERIES SS ON SS.SC_CODE != SM.STRG_CODE WHERE SM.EVENT_DATE=sysdate";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
unlistedRowCount = 0;
rs.last();
unlistedRowCount = rs.getRow();
rs.beforeFirst();
System.out.println("Unlisted------> :"+unlistedRowCount);
rs.close();
rs=null;
pstmt.close();
pstmt=null;
rawJson = new JSONObject();
rawJson.put("plannedRowCount", plannedRowCount);
rawJson.put("unplannedRowCount", unplannedRowCount);
//rawJson.put("missedRowCount", missedRowCount);
rawJson.put("listedRowCount", listedRowCount);
rawJson.put("unlistedRowCount", unlistedRowCount);
System.out.println("plannedRowCount======= : "+plannedRowCount);
double totalCount = plannedRowCount+unplannedRowCount;
System.out.println("TotalCount======= : "+totalCount);
double planDashArray = (plannedRowCount/totalCount)*302;
System.out.println("planDashArray ====== : "+planDashArray);
double listedDashArray = (240/listedRowCount);
System.out.println("listedDashArray == : "+listedDashArray);
double unlistedDashArray = (240/unlistedRowCount)/listedRowCount;
System.out.println("unlistedDashArray == : "+unlistedDashArray);
rawJson.put("planDashArray", (unplannedRowCount/(plannedRowCount+unplannedRowCount))*302);
//rawJson.put("missedDashArray", 240);
rawJson.put("listedDashArray", (unlistedDashArray/(listedDashArray+unlistedDashArray))*240);
rawJson.put("total", (int)(plannedRowCount+unplannedRowCount+missedRowCount));
rawDataPlanDtlJson.put(count, rawJson);
System.out.println("rawDataPlanDtlJson :"+rawDataPlanDtlJson);
}
catch (Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in PlanVsActual:getPlanVsActualTreeStructure()" + d.getMessage());
throw new ITMException(d);
}
}
return rawDataPlanDtlJson;
}*/
// This is new requirement for circular bar chart added on dated :18-12-17
@SuppressWarnings("unchecked")
public JSONObject getTodaysCalls(String dataSourceName,String loginCode,String salePersons) throws RemoteException, ITMException
{
System.out.println("inside getTodaysCalls");
JSONObject rawDataPlanDtlJson = new JSONObject();
JSONObject rawJson = new JSONObject();
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
DashboardUtility dashboardUtility = null;
int count = 0;
String salesPersonCode = "", salesPersonName = "", salesPerson_image = "";
StringBuffer rowBuffer = new StringBuffer();
int planned=0, unplanned=0,listed=0, unListed=0;
int totalCalls=0;
String localSQL="";
try
{
rowBuffer.append("<div>");
salePersons = salePersons == null ? "": salePersons.trim();
dashboardUtility = new DashboardUtility();
salePersons = dashboardUtility.getCommaSeparated(salePersons);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
System.out.println(" >>>>>>>> SQL FOR PLANNED DOCTORS >>>>>>> ");
if("".equalsIgnoreCase(salePersons) && loginCode != null)
{
localSQL = " AND SP.SALES_PERS IN (SELECT EMP_CODE FROM EMPLOYEE START WITH EMP_CODE = (SELECT EMP_CODE FROM USERS WHERE CODE='"+loginCode+"') connect by prior emp_code = report_to)";
}
else {
localSQL = " AND sp.sales_pers in ("+salePersons+") ";
}
/*----------Planned doctors visited-----Planned--------*/
sql = "(SELECT TO_CHAR(SM.EVENT_DATE,'DD-MON-YYYY') AS EVENTDATE , " +
"SP.SALES_PERS ,SP.SP_NAME ,SM.STRG_CODE ," +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME ,L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY " +
"FROM SALES_PERS SP INNER JOIN STRG_MEET SM " +
"ON SP.SALES_PERS=SM.SALES_PERS INNER JOIN STRG_CUSTOMER SC " +
"ON SC.SC_CODE=SM.STRG_CODE INNER JOIN LOCALITY L " +
"ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS " +
"ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL " +
"ON SPL.SPL_CODE=SS.SPL_CODE " +
"WHERE SM.EVENT_DATE <= sysdate) INTERSECT " +
"(SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE , " +
"SP.SALES_PERS , SP.SP_NAME ,SPC.SC_CODE ," +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME , L.DESCR AS LOCALITY ,SPL.DESCR AS " +
"SPECIALITY FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH " +
"ON SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN " +
"SPRS_PLAN_CUST SPC ON SPH.PLAN_ID=SPC.PLAN_ID INNER JOIN " +
"STRG_CUSTOMER SC ON SC.SC_CODE=SPC.SC_CODE INNER JOIN " +
"LOCALITY L ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN " +
"STRG_SERIES SS ON SS.SC_CODE=SC.SC_CODE INNER JOIN " +
"SPECIALITY SPL ON SPL.SPL_CODE=SS.SPL_CODE " +
"WHERE SPH.PLAN_DATE <= sysdate "+localSQL+")";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
rs.last();
planned = rs.getRow();
String plannedDocImagePath = "";
System.out.println("get planned visited count" + planned);
rs.beforeFirst();
if(planned > 0)
{
rowBuffer.append("<table cellspacing='0' cellpadding='0' width='100%' ><tr rowspan='2'><td class='defaultTitle'>Planned</td></tr>");
while(rs.next())
{
salesPersonCode = checkNull(rs.getString("SALES_PERS"));
salesPersonName = checkNull(rs.getString("SP_NAME"));
String object = "images"+ File.separator + "users";
plannedDocImagePath = "/ibase/CustomMenuImageServlet?fldValue="+salesPersonCode+"&object="+object+"&objName="+object+"&ALT_FLD_VALUE="+salesPersonName;
salesPerson_image = "<img class='cardProdImg2' src='"+plannedDocImagePath+"'/>";
rowBuffer.append("<tr><td><table cellspacing='0' cellpadding='0' " +
"style='border-bottom:1px solid #E8E8E8;' width='100%'><tr>" +
"<td width='2%'>"+salesPerson_image+"</td>" +
"<td>"+salesPersonName.toUpperCase()+"</td></tr></table></td></tr>");
}
rowBuffer.append("</table>");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
/*----------Unplanned doctors visited.Pleas replace the SQL Jaffer--*/
sql = "(SELECT TO_CHAR(SM.EVENT_DATE,'DD-MON-YYYY') AS EVENTDATE , " +
"SP.SALES_PERS ,SP.SP_NAME ,SM.STRG_CODE ," +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME ,L.DESCR AS LOCALITY ,SPL.DESCR AS SPECIALITY " +
"FROM SALES_PERS SP INNER JOIN STRG_MEET SM " +
"ON SP.SALES_PERS=SM.SALES_PERS INNER JOIN STRG_CUSTOMER SC " +
"ON SC.SC_CODE=SM.STRG_CODE INNER JOIN LOCALITY L " +
"ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN STRG_SERIES SS " +
"ON SS.SC_CODE=SC.SC_CODE INNER JOIN SPECIALITY SPL " +
"ON SPL.SPL_CODE=SS.SPL_CODE " +
"WHERE SM.EVENT_DATE <= sysdate) INTERSECT " +
"(SELECT TO_CHAR(SPH.PLAN_DATE,'DD-MON-YYYY') AS EVENTDATE , " +
"SP.SALES_PERS , SP.SP_NAME ,SPC.SC_CODE ," +
"INITCAP(SC.FIRST_NAME||' '||SC.MIDDLE_NAME||' '||SC.LAST_NAME )" +
"AS DOCTORNAME , L.DESCR AS LOCALITY ,SPL.DESCR AS " +
"SPECIALITY FROM SALES_PERS SP INNER JOIN SPRS_PLAN_HDR SPH " +
"ON SP.SALES_PERS=SPH.SPRS_CODE__PLAN INNER JOIN " +
"SPRS_PLAN_CUST SPC ON SPH.PLAN_ID=SPC.PLAN_ID INNER JOIN " +
"STRG_CUSTOMER SC ON SC.SC_CODE=SPC.SC_CODE INNER JOIN " +
"LOCALITY L ON L.LOCALITY_CODE=SC.LOCALITY_CODE INNER JOIN " +
"STRG_SERIES SS ON SS.SC_CODE=SC.SC_CODE INNER JOIN " +
"SPECIALITY SPL ON SPL.SPL_CODE=SS.SPL_CODE " +
"WHERE SPH.PLAN_DATE <= sysdate "+localSQL+")";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
rs.last();
unplanned = rs.getRow();
System.out.println("get unplanned doctor visited count" + unplanned);
rs.beforeFirst();
String unplannedDocImagePath = "";// Please define proper variable name
if(unplanned > 0)
{
rowBuffer.append("<table cellspacing='0' cellpadding='0' width='100%' ><tr rowspan='2'><td class='defaultTitle'>Unplanned</td></tr>");
while(rs.next())
{
salesPersonCode = checkNull(rs.getString("SALES_PERS"));
salesPersonName = checkNull(rs.getString("SP_NAME"));
String object = "images"+ File.separator + "users";
unplannedDocImagePath = "/ibase/CustomMenuImageServlet?fldValue="+salesPersonCode+"&object="+object+"&objName="+object+"&ALT_FLD_VALUE="+salesPersonName;
salesPerson_image = "<img class='cardProdImg2' src='"+unplannedDocImagePath+"'/>";
rowBuffer.append("<tr><td><table cellspacing='0' cellpadding='0' " +
"style='border-bottom:1px solid #E8E8E8;' width='100%'><tr>" +
"<td width='2%'>"+salesPerson_image+"</td>" +
"<td>"+salesPersonName.toUpperCase()+"</td></tr></table></td></tr>");
}
rowBuffer.append("</table>");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
/*----------Listed doctors visited.Please replace the SQL Jaffer--*/
sql = "SELECT sm.tran_id, TO_CHAR(sm.event_date, 'dd-mon-yyyy') AS Event_Date, "
+ "sm.strg_code, sm.sales_pers, sp.sc_code, SS.SP_NAME "
+ "FROM SALES_PERS SS INNER JOIN STRG_MEET SM ON SS.SALES_PERS=SM.SALES_PERS "
+ "INNER JOIN strg_series SP ON sp.sales_pers = sm.sales_pers "
+ "WHERE sm.strg_code =sp.sc_code AND sm.event_date <= sysdate "+localSQL+" and ROWNUM <10 ";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
rs.last();
listed = rs.getRow();
String listedDocImagePath = "";// Please define proper variable name
System.out.println("get listed doctor visited count" + listed);
rs.beforeFirst();
if(listed > 0)
{
rowBuffer.append("<table cellspacing='0' cellpadding='0' width='100%' ><tr rowspan='2'><td class='defaultTitle'>Listed</td></tr>");
while(rs.next())
{
salesPersonCode = checkNull(rs.getString("SALES_PERS")) ;
salesPersonName = checkNull(rs.getString("SP_NAME")) ;
String object = "images"+ File.separator + "users";
listedDocImagePath = "/ibase/CustomMenuImageServlet?fldValue="+salesPersonCode+"&object="+object+"&objName="+object+"&ALT_FLD_VALUE="+salesPersonName;
salesPerson_image = "<img class='cardProdImg2' src='"+listedDocImagePath+"'/>";
rowBuffer.append("<tr><td><table cellspacing='0' cellpadding='0' " +
"style='border-bottom:1px solid #E8E8E8;' width='100%'><tr>" +
"<td width='2%'>"+salesPerson_image+"</td>" +
"<td>"+salesPersonName.toUpperCase()+"</td></tr></table></td></tr>");
}
rowBuffer.append("</table>");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
/*----------Unlisted doctors visited.Please replace the SQL Jaffer--*/
sql = "SELECT sm.tran_id, TO_CHAR(sm.event_date, 'dd-mon-yyyy') AS Event_Date, "
+ "sm.strg_code, sm.sales_pers, sp.sc_code, SS.SP_NAME "
+ "FROM SALES_PERS SS INNER JOIN STRG_MEET SM ON SS.SALES_PERS=SM.SALES_PERS "
+ "INNER JOIN strg_series SP ON sp.sales_pers = sm.sales_pers "
+ "WHERE sm.strg_code !=sp.sc_code AND sm.event_date <= sysdate "+localSQL+" and ROWNUM <10 ";
pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
rs.last();
unListed = rs.getRow();
String unlistedDocImagePath = "";// Please define proper variable name
System.out.println("get listed doctor visited count" + listed);
rs.beforeFirst();
if(unListed > 0)
{
rowBuffer.append("<table cellspacing='0' cellpadding='0' width='100%' ><tr rowspan='2'><td class='defaultTitle'>Unlisted</td></tr>");
while(rs.next())
{
salesPersonCode = checkNull(rs.getString("SALES_PERS")) ;
salesPersonName = checkNull(rs.getString("SP_NAME")) ;
String object = "images"+ File.separator + "users";
unlistedDocImagePath = "/ibase/CustomMenuImageServlet?fldValue="+salesPersonCode+"&object="+object+"&objName="+object+"&ALT_FLD_VALUE="+salesPersonName;
salesPerson_image = "<img class='cardProdImg2' src='"+unlistedDocImagePath+"'/>";
rowBuffer.append("<tr><td><table cellspacing='0' cellpadding='0' " +
"style='border-bottom:1px solid #E8E8E8;' width='100%'><tr>" +
"<td width='2%'>"+salesPerson_image+"</td>" +
"<td>"+salesPersonName.toUpperCase()+"</td></tr></table></td></tr>");
}
rowBuffer.append("</table>");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
rowBuffer.append("</div>");
System.out.println("rowbuffer ======> "+rowBuffer);
rawJson.put("todaystatus", rowBuffer.toString());
double totalCount = planned+unplanned;
System.out.println("TotalCount======= : "+totalCount);
double planDashArray = (planned/totalCount)*342;
System.out.println("planDashArray ====== : "+planDashArray);
totalCount = listed+unListed;
double listedDashArray = (listed/totalCount)*280;
System.out.println("listedDashArray ====== : "+listedDashArray);
rawJson.put("planDashArray", planDashArray);
rawJson.put("listedDashArray", listedDashArray);
rawJson.put("total", planned+unplanned+listed+unListed);
rawDataPlanDtlJson.put(count, rawJson);
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception in PlanVsActual.getTodaysStatus() " + e.getMessage());
throw new ITMException(e);
}
finally
{
try
{
if (conn != null)
{
if (rs != null)
rs.close();
rs = null;
if (pstmt != null)
pstmt.close();
pstmt = null;
conn.close();
conn = null;
}
conn = null;
} catch (Exception d)
{
d.printStackTrace();
System.out.println("Exception in PlanVsActual.getTodaysStatus() " + d.getMessage());
throw new ITMException(d);
}
}
return rawDataPlanDtlJson;
}
private String checkNull(String input)
{
if (input == null)
{
input = "";
} else
{
input = input.trim();
}
return input;
}
}
......@@ -12,5 +12,7 @@ public interface PlanVsActualLocal extends ValidatorLocal
{
public abstract JSONObject getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons)throws RemoteException,ITMException;
public JSONObject getTodayAgenda(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
//public JSONObject getTodaysCalls(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
public JSONObject getTodaysCalls(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
}
......@@ -12,5 +12,7 @@ public interface PlanVsActualRemote extends ValidatorRemote
{
public abstract JSONObject getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons) throws RemoteException, ITMException;
public JSONObject getTodayAgenda(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
//public JSONObject getTodaysCalls(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
public JSONObject getTodaysCalls(String dataSourceName,String loginId,String salePersons)throws RemoteException,ITMException;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment