Commit 0a84d2f6 authored by abibave's avatar abibave

Create new dashboard of Compliance and Plan Vs Actual .


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@103706 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 5c9468af
package ibase.dashboard.sfa.ejb;
import ibase.system.config.ConnDriver;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.GenericUtility;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import javax.ejb.Stateless;
import javax.servlet.http.HttpSession;
import org.json.simple.JSONObject;
/**
* Session Bean implementation class SalesPersonSales
*/
@Stateless
public class Compliance_Nova extends ValidatorEJB implements Compliance_NovaLocal, Compliance_NovaRemote
{
public Compliance_Nova() {
// TODO Auto-generated constructor stub
}
GenericUtility genericUtility = GenericUtility.getInstance();
@SuppressWarnings("unchecked")
@Override
public JSONObject getComplianceDetails(String loginId,String dataSourceName,String period) throws RemoteException, ITMException
{
JSONObject rawDataComplianceDtlJson = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
try
{
System.out.println(" Inside ComplianceEJB for getComplianceDetails Data Soruc Name ="+dataSourceName+" loginId=:"+ loginId+"---- month=:"+ period);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
//For Local Sql
/*sql = " Select FHCODE , FHNAME, FHDESG, NSMCODE, NSMNAME, NSMDESG, SMCODE," +
" SMNAME, SMDESG, RSECODE, RSENAME, RSEDESG, REPCODE, " +
" REPNAME, REPDESG, REP_NONREP,CNT " +
" FROM Temp_SALES_HIER_JJ_CNT ORDER BY fhcode , nsmcode ,smcode,rsecode, repcode";*/
//final sql
sql = "SELECT SHCODE , SHNAME , SHDESG , RBMCODE , RBMNAME , RBMDESG , ABMCODE , ABMNAME , ABMDESG , REPCODE , REPNAME , REPDESG , REP_NONREP , COUNT(*) CNT FROM " +
"(SELECT DISTINCT SHCODE , SHNAME , SHDESG , RBMCODE , RBMNAME , RBMDESG , ABMCODE , ABMNAME , " +
"ABMDESG , REPCODE , REPNAME , REPDESG , AVAILABLE_DY , ACTIVITY_CODE , REP_NONREP , " +
"CUSTOMER_NAME FROM (SELECT SHCODE , SHNAME , SHDESG , RBMCODE , RBMNAME , RBMDESG , " +
"ABMCODE , ABMNAME , ABMDESG , REPCODE , REPNAME , REPDESG , SALES_PERS_AV.AVAILABLE_DY , " +
"SPRS_ACT_TRAN.ACTIVITY_CODE , ( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ," +
"AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS " +
"IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS " +
"IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP , NVL(STRG_CUSTOMER.FIRST_NAME, '') || " +
"NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM " +
"(SELECT VW_SALES_HIER.REPCODE AS SALESPERS , AV_DATES.available_dy AS AVAILABLE_DY " +
"FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER ) VW_SALES_HIER , " +
"(SELECT dt AS available_dy , 'a' AS a FROM sfa_time WHERE DT BETWEEN " +
"TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') " +
"AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) " +
"AV_DATES WHERE VW_SALES_HIER.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS , " +
"holiday.hol_date AS AVAILABLE_DY FROM holiday , EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno " +
"AND holiday.hol_date BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || " +
"SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') " +
"AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) " +
"|| '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), " +
"'DD-MM-YYYY'))) AND NOT EXISTS (SELECT * FROM sprs_act_tran s " +
"WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) " +
"SALES_PERS_AV LEFT OUTER JOIN (SELECT S.* FROM SPRS_ACT_TRAN S WHERE " +
"S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN " +
"ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND " +
"SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN " +
"( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET " +
"ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE , VW_SALES_HIER WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER.REPCODE " +
"AND VW_SALES_HIER.SHCODE = '"+loginId+"' UNION ALL SELECT '' AS SHCODE , '' AS SHNAME , '' AS SHDESG , RBMCODE , RBMNAME , RBMDESG , ABMCODE , ABMNAME , ABMDESG , REPCODE , REPNAME , REPDESG , SALES_PERS_AV.AVAILABLE_DY , SPRS_ACT_TRAN.ACTIVITY_CODE , ( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP , NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM (SELECT VW_SALES_HIER.REPCODE AS SALESPERS , AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER ) VW_SALES_HIER , (SELECT dt AS available_dy , 'a' AS a FROM sfa_time WHERE dt BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS , holiday.hol_date AS AVAILABLE_DY FROM holiday , EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS (SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN (SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE , VW_SALES_HIER WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER.REPCODE " +
"AND VW_SALES_HIER.RBMCODE = '"+loginId+"' " +
"UNION ALL SELECT '' AS SHCODE , '' AS SHNAME , '' AS SHDESG , '' AS RBMCODE , '' AS RBMNAME , '' AS RBMDESG , ABMCODE , ABMNAME , ABMDESG , REPCODE , REPNAME , REPDESG , SALES_PERS_AV.AVAILABLE_DY , SPRS_ACT_TRAN.ACTIVITY_CODE , ( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP , NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM (SELECT VW_SALES_HIER.REPCODE AS SALESPERS , AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER ) VW_SALES_HIER , (SELECT dt AS available_dy , 'a' AS a FROM sfa_time WHERE dt BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS , holiday.hol_date AS AVAILABLE_DY FROM holiday , EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS (SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN (SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE , VW_SALES_HIER WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER.REPCODE " +
"AND VW_SALES_HIER.ABMCODE = '"+loginId+"' " +
"UNION ALL SELECT '' AS SHCODE , '' AS SHNAME , '' AS SHDESG , '' AS RBMCODE , '' AS RBMNAME , '' AS RBMDESG , '' AS ABMCODE , '' AS ABMNAME , '' AS ABMDESG , REPCODE , REPNAME , REPDESG , SALES_PERS_AV.AVAILABLE_DY , SPRS_ACT_TRAN.ACTIVITY_CODE , ( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP , NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM (SELECT VW_SALES_HIER.REPCODE AS SALESPERS , AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER ) VW_SALES_HIER , (SELECT dt AS available_dy , 'a' AS a FROM sfa_time WHERE dt BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS , holiday.hol_date AS AVAILABLE_DY FROM holiday , EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS (SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN (SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE , VW_SALES_HIER WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER.REPCODE " +
"AND VW_SALES_HIER.REPCODE = '"+loginId+"' " +
"UNION ALL SELECT '' AS SHCODE , '' AS SHNAME , '' AS SHDESG , '' AS RBMCODE , '' AS RBMNAME , '' AS RBMDESG , '' AS ABMCODE , '' AS ABMNAME , '' AS ABMDESG , REPCODE , REPNAME , REPDESG , SALES_PERS_AV.AVAILABLE_DY , SPRS_ACT_TRAN.ACTIVITY_CODE , ( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP , NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM (SELECT VW_SALES_HIER.REPCODE AS SALESPERS , AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER ) VW_SALES_HIER , (SELECT dt AS available_dy , 'a' AS a FROM sfa_time WHERE dt BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS , holiday.hol_date AS AVAILABLE_DY FROM holiday , EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN TRUNC(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND TRUNC(last_day(TO_DATE(TO_CHAR(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS (SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN (SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE , VW_SALES_HIER WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER.REPCODE " +
"AND VW_SALES_HIER.REPCODE = '"+loginId+"' ) " +
"WHERE REP_NONREP <> '-' ) GROUP BY SHCODE , SHNAME , SHDESG , RBMCODE , RBMNAME , RBMDESG , ABMCODE , ABMNAME , ABMDESG , REPCODE , REPNAME , REPDESG , REP_NONREP ORDER BY SHCODE , RBMCODE , ABMCODE , REPCODE , REPCODE ";
/*sql = " SELECT FHCODE ,FHNAME ,FHDESG ,NSMCODE ,NSMNAME ,NSMDESG ,SMCODE ,SMNAME ,SMDESG ,RSECODE ,RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,REP_NONREP , COUNT(*) CNT FROM (SELECT DISTINCT FHCODE ,FHNAME ,FHDESG ,NSMCODE ,NSMNAME ,NSMDESG ,SMCODE ,SMNAME ,SMDESG ,RSECODE ,RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,AVAILABLE_DY ,ACTIVITY_CODE ,REP_NONREP ,CUSTOMER_NAME FROM ( SELECT FHCODE ,FHNAME ,FHDESG ,NSMCODE ,NSMNAME ,NSMDESG ,SMCODE ,SMNAME ,SMDESG ,RSECODE ,RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP ,NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a FROM sfa_time WHERE dt BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER_JJ.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE AND VW_SALES_HIER_JJ.FHCODE = '"+loginId+"' " +
" union all SELECT '' AS FHCODE ,'' AS FHNAME ,'' AS FHDESG ,NSMCODE ,NSMNAME ,NSMDESG ,SMCODE ,SMNAME ,SMDESG ,RSECODE ,RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP ,NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a FROM sfa_time WHERE dt BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER_JJ.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE AND VW_SALES_HIER_JJ.NSMCODE = '"+loginId+"' " +
" union all SELECT '' AS FHCODE ,'' AS FHNAME ,'' AS FHDESG ,'' AS NSMCODE ,'' AS NSMNAME ,'' AS NSMDESG ,SMCODE ,SMNAME ,SMDESG ,RSECODE ,RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP ,NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a FROM sfa_time WHERE dt BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER_JJ.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE AND VW_SALES_HIER_JJ.SMCODE = '"+loginId+"' " +
" union all SELECT '' AS FHCODE ,'' AS FHNAME ,'' AS FHDESG ,'' AS NSMCODE ,'' AS NSMNAME ,'' AS NSMDESG ,'' AS SMCODE ,'' AS SMNAME ,'' AS SMDESG ,RSECODE ,RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP ,NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a FROM sfa_time WHERE dt BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER_JJ.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE AND VW_SALES_HIER_JJ.RSECODE = '"+loginId+"' " +
" UNION ALL SELECT '' AS FHCODE ,'' AS FHNAME ,'' AS FHDESG ,'' AS NSMCODE ,'' AS NSMNAME ,'' AS NSMDESG ,'' AS SMCODE ,'' AS SMNAME ,'' AS SMDESG ,'' AS RSECODE ,'' AS RSENAME ,'' AS RSEDESG ,REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ,( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP ,NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a FROM sfa_time WHERE dt BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES WHERE VW_SALES_HIER_JJ.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV LEFT OUTER JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE AND VW_SALES_HIER_JJ.REPCODE = '"+loginId+"' ) where REP_NONREP <> '-') " +
" GROUP BY FHCODE ,FHNAME ,FHDESG ,NSMCODE ,NSMNAME ,NSMDESG ,SMCODE ,SMNAME ,SMDESG ,RSECODE ,RSENAME ,RSEDESG ,REPCODE ,REPNAME ,REPDESG ,REP_NONREP " +
" ORDER BY FHCODE ,NSMCODE ,SMCODE ,RSECODE ,REPCODE ";
*/
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int count = 0;
while (rs.next())
{
rowData = new JSONObject();
rowData.put("shcode", checkNull(rs.getString("SHCODE")).trim());
rowData.put("shname", checkNull(rs.getString("SHNAME")).trim());
rowData.put("shdesg", checkNull(rs.getString("SHDESG")).trim());
rowData.put("rbmcode", checkNull(rs.getString("RBMCODE")).trim());
rowData.put("rbmname", checkNull(rs.getString("RBMNAME")).trim());
rowData.put("rbmdesg", checkNull(rs.getString("RBMDESG")).trim());
rowData.put("abmcode", checkNull(rs.getString("ABMCODE")).trim());
rowData.put("abmname", checkNull(rs.getString("ABMNAME")).trim());
rowData.put("abmdesg", checkNull(rs.getString("ABMDESG")).trim());
rowData.put("repcode", checkNull(rs.getString("REPCODE")).trim());
rowData.put("repname", checkNull(rs.getString("REPNAME")).trim());
rowData.put("repdesg", checkNull(rs.getString("REPDESG")).trim());
rowData.put("rep_nonrep", checkNull(rs.getString("REP_NONREP")).trim());
rowData.put("count", rs.getString("CNT"));
rawDataComplianceDtlJson.put(count, rowData);
count++;
}
}
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 :ComplianceEJB:" + d.getMessage());
throw new ITMException(d);
}
}
//System.out.println("ComplianceEJB JSON String======>>"+rawDataComplianceDtlJson.toString());
return rawDataComplianceDtlJson;
}
@SuppressWarnings("unchecked")
@Override
public JSONObject getComplianceCustDetails(String firstVal, String cellVal, String dataSourceName) throws RemoteException, ITMException
{
JSONObject rawDataComplianceCustDtlJson = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
try
{
System.out.println(" Inside ComplianceEJB for getComplianceCustDetails Data Soruc Name ="+dataSourceName+" firstVal=:"+ firstVal + "===cellVal :"+ cellVal);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
SimpleDateFormat gridDateFormat = new SimpleDateFormat( "dd-MMM-yy");
SimpleDateFormat convrtToTimStmDate= new SimpleDateFormat("dd/MM/yy");
if(cellVal!=null && cellVal.length()>0)
{
cellVal = gridDateFormat.format(convrtToTimStmDate.parse(cellVal));
}
System.out.println("cellVal :"+cellVal);
//sql = "Select 'DH' as STRG_TYPE, 'Dhanendra' as CUST_NAME from Dual";
sql="SELECT SM.STRG_TYPE, (SC.FIRST_NAME ||' '||SC.MIDDLE_NAME ||' '||SC.LAST_NAME) AS CUST_NAME FROM STRG_MEET SM " +
"INNER JOIN STRG_CUSTOMER SC ON SM.STRG_CODE = SC.SC_CODE INNER JOIN VW_SALES_HIER VW ON SM.SALES_PERS = VW.REPCODE " +
"WHERE SM.EVENT_DATE ='"+cellVal+"' AND VW.REPNAME = '"+firstVal.trim()+"' ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int count = 0;
while (rs.next())
{
rowData = new JSONObject();
rowData.put("customer_name", checkNull(rs.getString("CUST_NAME")));
rowData.put("strg_type", checkNull(rs.getString("STRG_TYPE")));
rawDataComplianceCustDtlJson.put(count, rowData);
count++;
}
}
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 :ComplianceEJB:" + d.getMessage());
throw new ITMException(d);
}
}
System.out.println("ComplianceEJB rawDataComplianceCustDtlJson String======>>"+rawDataComplianceCustDtlJson.toString());
return rawDataComplianceCustDtlJson;
}
@SuppressWarnings("unchecked")
@Override
public JSONObject getComplianceGrid(String period, String personName, String dataSourceName) throws RemoteException, ITMException
{
JSONObject rawDataComplianceGridJson = new JSONObject();
JSONObject rowData = null;
String sql = "";
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
ConnDriver connDriver = new ConnDriver();
try
{
System.out.println(" Inside ComplianceEJB for getComplianceCustDetails Data Soruc Name ="+dataSourceName+" period=:"+ period + "=== personName :"+ personName);
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
//sql = "Select '01/10/2015' as AVAILABLE_DY, 'FW' as ACTIVITY_CODE from Dual";
/*sql=" SELECT REPCODE ,REPNAME ,REPDESG ,REP_NONREP ,to_char(AVAILABLE_DY,'dd/mm/yy') AS AVAILABLE_DY ,ACTIVITY_CODE " +
" FROM( SELECT distinct REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ," +
" ( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 " +
" AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY " +
" ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP ," +
" NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME " +
" FROM ( SELECT VW_SALES_HIER_JJ.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY " +
" FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER_JJ ) VW_SALES_HIER_JJ ,( SELECT dt AS available_dy ,'a' AS a " +
" FROM sfa_time WHERE dt BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') " +
" AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES " +
" WHERE VW_SALES_HIER_JJ.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY " +
" FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') " +
" AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) " +
" AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV " +
" LEFT OUTER JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS " +
" AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS " +
" AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER_JJ " +
" WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER_JJ.REPCODE AND UPPER(TRIM(VW_SALES_HIER_JJ.REPNAME)) = UPPER(TRIM('"+personName+"')) ) where REP_NONREP <> '-' " +
" ORDER BY AVAILABLE_DY ";*/
sql=" SELECT REPCODE ,REPNAME ,REPDESG ,REP_NONREP ,to_char(AVAILABLE_DY,'dd/mm/yy') AS AVAILABLE_DY ,ACTIVITY_CODE " +
" FROM( SELECT distinct REPCODE ,REPNAME ,REPDESG ,SALES_PERS_AV.AVAILABLE_DY ,SPRS_ACT_TRAN.ACTIVITY_CODE ," +
" ( CASE WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY ORDER BY REPCODE ,AVAILABLE_DY ) ) = 1 " +
" AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN 'R' WHEN ( ROW_NUMBER() OVER ( PARTITION BY REPCODE ,AVAILABLE_DY " +
" ORDER BY REPCODE ,AVAILABLE_DY ) ) <> 1 AND SPRS_ACT_TRAN.SALES_PERS IS NOT NULL THEN '-' ELSE 'NR' END ) AS REP_NONREP ," +
" NVL(STRG_CUSTOMER.FIRST_NAME, '') || NVL(STRG_CUSTOMER.MIDDLE_NAME, '') || NVL(STRG_CUSTOMER.LAST_NAME, '') AS CUSTOMER_NAME " +
" FROM ( SELECT VW_SALES_HIER.REPCODE AS SALESPERS ,AV_DATES.available_dy AS AVAILABLE_DY " +
" FROM ( SELECT REPCODE ,'a' AS a FROM VW_SALES_HIER ) VW_SALES_HIER ,( SELECT dt AS available_dy ,'a' AS a " +
" FROM sfa_time WHERE dt BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') " +
" AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) ) AV_DATES " +
" WHERE VW_SALES_HIER.a = AV_DATES.a MINUS SELECT EMPLOYEE.EMP_CODE AS SALESPERS ,holiday.hol_date AS AVAILABLE_DY " +
" FROM holiday ,EMPLOYEE WHERE holiday.hol_tblno = EMPLOYEE.hol_tblno AND holiday.hol_date BETWEEN trunc(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'MM') " +
" AND trunc(last_day(TO_DATE(to_char(TO_DATE('01-' || SUBSTR('"+period+"', 5, 6) || '-' || SUBSTR('"+period+"', 1, 4), 'DD-MM-YYYY'), 'DD-MM-YYYY'), 'DD-MM-YYYY'))) " +
" AND NOT EXISTS ( SELECT * FROM sprs_act_tran s WHERE s.sales_pers = employee.emp_code AND s.event_date = holiday.hol_date ) ) SALES_PERS_AV " +
" LEFT OUTER JOIN ( SELECT S.* FROM SPRS_ACT_TRAN S WHERE S.ACTIVITY_CODE <> 'PR' AND S.CONFIRMED = 'Y' ) SPRS_ACT_TRAN ON SPRS_ACT_TRAN.SALES_PERS = SALES_PERS_AV.SALESPERS " +
" AND SPRS_ACT_TRAN.EVENT_DATE = SALES_PERS_AV.AVAILABLE_DY LEFT OUTER JOIN ( SELECT S.* FROM STRG_MEET S WHERE S.EVENT_TYPE <> 'PR' ) STRG_MEET ON SPRS_ACT_TRAN.SALES_PERS = STRG_MEET.SALES_PERS " +
" AND SPRS_ACT_TRAN.EVENT_DATE = STRG_MEET.EVENT_DATE AND SPRS_ACT_TRAN.DCR_ID = STRG_MEET.DCR_ID LEFT OUTER JOIN STRG_CUSTOMER ON STRG_MEET.STRG_CODE = STRG_CUSTOMER.SC_CODE ,VW_SALES_HIER " +
" WHERE SALES_PERS_AV.SALESPERS = VW_SALES_HIER.REPCODE AND UPPER(TRIM(VW_SALES_HIER.REPNAME)) = UPPER(TRIM('"+personName+"')) ) where REP_NONREP <> '-' " +
" ORDER BY AVAILABLE_DY ";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
int count = 0;
String activityCode = "";
while (rs.next())
{
rowData = new JSONObject();
rowData.put("repcode", checkNull(rs.getString("REPCODE")).trim());
rowData.put("repname", checkNull(rs.getString("REPNAME")).trim());
rowData.put("repdesg", checkNull(rs.getString("REPDESG")).trim());
rowData.put("rep_nonrep", checkNull(rs.getString("REP_NONREP")).trim());
rowData.put("available_dy", checkNull(rs.getString("AVAILABLE_DY")).trim());
activityCode = rs.getString("ACTIVITY_CODE");
System.out.println("activityCode :"+activityCode);
if(activityCode == null)
{
rowData.put("activity_code", "Not-Reported");
}else
{
rowData.put("activity_code", rs.getString("ACTIVITY_CODE"));
}
rawDataComplianceGridJson.put(count, rowData);
count++;
}
}
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 :ComplianceEJB: getComplianceGrid " + d.getMessage());
throw new ITMException(d);
}
}
return rawDataComplianceGridJson;
}
private String checkNull(String str)
{
if(str == null)
{
return "";
}
else
{
return str ;
}
}
}
package ibase.dashboard.sfa.ejb;
import java.rmi.RemoteException;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.utility.ITMException;
import javax.ejb.Local;
import org.json.simple.JSONObject;
@Local
public interface Compliance_NovaLocal extends ValidatorLocal
{
public JSONObject getComplianceDetails(String loginId, String dataSourceName,String month) throws RemoteException, ITMException;
public JSONObject getComplianceCustDetails(String firstVal, String cellVal, String dataSourceName) throws RemoteException, ITMException;
public JSONObject getComplianceGrid(String month, String personName, String dataSourceName) throws RemoteException, ITMException;
}
package ibase.dashboard.sfa.ejb;
import java.rmi.RemoteException;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import javax.ejb.Remote;
import org.json.simple.JSONObject;
@Remote
public interface Compliance_NovaRemote extends ValidatorRemote
{
public JSONObject getComplianceDetails(String loginId, String dataSourceName,String month) throws RemoteException, ITMException;
public JSONObject getComplianceCustDetails(String firstVal, String cellVal, String dataSourceName) throws RemoteException, ITMException;
public JSONObject getComplianceGrid(String month, String personName, String dataSourceName) throws RemoteException, ITMException;
}
package ibase.dashboard.sfa.ejb;
import ibase.system.config.ConnDriver;
import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ValidatorEJB;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import org.json.simple.JSONObject;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.Calendar;
import java.util.Date;
import javax.ejb.Stateless;
@Stateless
public class PlanVsActual extends ValidatorEJB implements PlanVsActualLocal,PlanVsActualRemote
{
@SuppressWarnings("unchecked")
@Override
public JSONObject getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,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 = "";
fromDate = fromDate == null ? "": fromDate.trim();
toDate = toDate == null ? "": toDate.trim();
salePersons = salePersons == null ? "": salePersons.trim();
SimpleDateFormat formatter = null;
E12GenericUtility e12GenericUtility = null;
try
{
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
formatter = new SimpleDateFormat("dd-MMM-yy");
HashMap<String, ArrayList<String>> planHashMap = new HashMap<String, ArrayList<String>>();
ArrayList<String> docList = new ArrayList<String>();
//HashMap<String, HashMap<String, ArrayList<String>>> finalMap = new HashMap<String, HashMap<String,ArrayList<String>>>();
TreeMap<String, HashMap<String, ArrayList<String>>> finalMap = new TreeMap<String, HashMap<String,ArrayList<String>>>();
/*----------Planned doctors visited-----Planned--------*/
if("".equalsIgnoreCase(fromDate) && "".equalsIgnoreCase(toDate)){
fromDate = getDate("firstDayOfWeek",formatter);
toDate = getDate("",formatter);
/*fromDate = "TO_CHAR(TRUNC(sysdate, 'DAY')+1,'DD-MON-RR')";
toDate = "TO_CHAR(sysdate,'DD-MON-RR')";*/
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 {
appendSQL = " AND sp.sales_pers in('"+salePersons+"')) ";
e12GenericUtility = new E12GenericUtility();
fromDate = e12GenericUtility.getValidDateString(fromDate, "dd/MM/yyyy", "dd-MMM-yy");
toDate = e12GenericUtility.getValidDateString(toDate, "dd/MM/yyyy", "dd-MMM-yy");
/*fromDate = "to_char(TO_DATE(TO_CHAR('"+fromDate+"'),'DD-MM-YYYY'),'DD-MON-RR')";
toDate = "to_char(TO_DATE(TO_CHAR('"+toDate+"'),'DD-MM-YYYY'),'DD-MON-RR')";*/
}
//sql="(SELECT TO_CHAR(sm.event_date,'dd-mm-yy') 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 '06-AUG-16' AND '16-AUG-16' AND SM.SALES_PERS='M00005') intersect (SELECT TO_CHAR(SPH.PLAN_DATE,'dd-mm-yy') 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 '06-AUG-16' AND '16-AUG-16' AND SPRS_CODE__PLAN='M00005' and sp.sales_pers in (select emp_code from employee start with emp_code = (select emp_code from users where code='M00001') connect by prior emp_code = report_to) and sp.sales_pers in ('M00005') )";
sql = "(SELECT TO_CHAR(SM.EVENT_DATE,'dd-mm-yy') 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-mm-yy') 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 = "";
String eventDate = "";
while(rs.next())
{
eventDate = rs.getString("eventdate");
docName = rs.getString("DoctorName");
locality = rs.getString("LOCALITY");
speciality = rs.getString("SPECIALITY");
planHashMap = new HashMap<String, ArrayList<String>>();
if(finalMap!=null && finalMap.containsKey(eventDate))
{
planHashMap = finalMap.get(eventDate);
docList = planHashMap.get("plan");
docList.add(docName+"@"+speciality+"@"+locality);
planHashMap.put("plan", docList);
planHashMap.put("missed", new ArrayList<String>());
planHashMap.put("unplan", new ArrayList<String>());
finalMap.put(eventDate, planHashMap);
}
else
{
docList = new ArrayList<String>();
docList.add(docName+"@"+speciality+"@"+locality);
planHashMap.put("plan", docList);
planHashMap.put("missed", new ArrayList<String>());
planHashMap.put("unplan", new ArrayList<String>());
finalMap.put(eventDate, planHashMap);
}
}
rs = null;
pstmt =null;
System.out.println(" Planned doctors visited finalMap :"+finalMap);
docList = new ArrayList<String>();
/*----------Planned doctors not visited-----Missed-------*/
//sql="(select to_char(SPH.PLAN_DATE,'dd-mm-yy') 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 '06-AUG-16' and '16-AUG-16' AND SPRS_CODE__PLAN='M00005') MINUS (select to_char(sm.event_date,'dd-mm-yy') 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 '06-AUG-16' and '16-AUG-16' AND SM.SALES_PERS='M00005' and sp.sales_pers in (select emp_code from employee start with emp_code = (select emp_code from users where code='M00001') connect by prior emp_code = report_to) and sp.sales_pers in ('M00005') )";
sql = "(SELECT TO_CHAR(SPH.PLAN_DATE,'dd-mm-yy') 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+" MINUS (SELECT TO_CHAR(SM.EVENT_DATE,'dd-mm-yy') 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+"";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next())
{
eventDate = rs.getString("eventdate");
docName = rs.getString("DoctorName");
locality = rs.getString("LOCALITY");
speciality = rs.getString("SPECIALITY");
planHashMap = new HashMap<String, ArrayList<String>>();
if(finalMap!=null && finalMap.containsKey(eventDate))
{
planHashMap = finalMap.get(eventDate);
docList = planHashMap.get("missed");
docList.add(docName+"@"+speciality+"@"+locality);
planHashMap.put("plan", planHashMap.get("plan"));
planHashMap.put("missed", docList);
planHashMap.put("unplan", new ArrayList<String>());
finalMap.put(eventDate, planHashMap);
}
else
{
docList = new ArrayList<String>();
docList.add(docName+"@"+speciality+"@"+locality);
planHashMap.put("plan", planHashMap.get("plan"));
planHashMap.put("missed", docList);
planHashMap.put("unplan", new ArrayList<String>());
finalMap.put(eventDate, planHashMap);
}
}
System.out.println(" Planned doctors not visited :"+finalMap);
rs = null;
pstmt =null;
//System.out.println(" Planned doctors not visited hashMap :"+meetHashMap);
docList = new ArrayList<String>();
/*----------Unplanned doctors visited----Unplanned--------*/
//sql="(select to_char(sm.event_date,'dd-mm-yy') 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 '06-AUG-16' and '16-AUG-16' AND SM.SALES_PERS='M00005') minus (select to_char(SPH.PLAN_DATE,'dd-mm-yy') 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 '06-AUG-16' and '16-AUG-16' AND SPRS_CODE__PLAN='M00005' and sp.sales_pers in (select emp_code from employee start with emp_code = (select emp_code from users where code='M00001') connect by prior emp_code = report_to) and sp.sales_pers in ('M00005'))";
sql = "(SELECT TO_CHAR(SM.EVENT_DATE,'dd-mm-yy') 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+" MINUS (SELECT TO_CHAR(SPH.PLAN_DATE,'dd-mm-yy') 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();
while(rs.next())
{
eventDate = rs.getString("eventdate");
docName = rs.getString("DoctorName");
locality = rs.getString("LOCALITY");
speciality = rs.getString("SPECIALITY");
planHashMap = new HashMap<String, ArrayList<String>>();
if(finalMap!=null && finalMap.containsKey(eventDate))
{
planHashMap = finalMap.get(eventDate);
docList = planHashMap.get("unplan");
docList.add(docName+"@"+speciality+"@"+locality);
planHashMap.put("plan", planHashMap.get("plan"));
planHashMap.put("missed", planHashMap.get("missed"));
planHashMap.put("unplan", docList);
finalMap.put(eventDate, planHashMap);
}
else
{
docList = new ArrayList<String>();
docList.add(docName+"@"+speciality+"@"+locality);
planHashMap.put("plan", planHashMap.get("plan"));
planHashMap.put("missed", planHashMap.get("missed"));
planHashMap.put("unplan", docList);
finalMap.put(eventDate, planHashMap);
}
}
System.out.println(" Unplanned doctors visited hashMap :"+finalMap);
rs = null;
pstmt =null;
int count = 0;
for (Map.Entry<String, HashMap<String, ArrayList<String>>> entry : finalMap.entrySet())
{
rawJson = new JSONObject();
rawJson.put("eventdate", entry.getKey());
rawJson.put("category", entry.getValue());
rawDataPlanDtlJson.put(count, rawJson);
count++;
}
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;
}
public String getDate(String dateCondition,SimpleDateFormat formatter ) {
Date curr = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(curr);
if("firstDayOfWeek".equalsIgnoreCase(dateCondition)){
int currentDOW = cal.get(Calendar.DAY_OF_WEEK);
cal.add(Calendar.DAY_OF_YEAR, (currentDOW * -1)+2);
}
String date = formatter.format(cal.getTime());
System.out.println("First day of week="+date);
return date;
}
}
package ibase.dashboard.sfa.ejb;
import ibase.webitm.ejb.ValidatorLocal;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Local;
import org.json.simple.JSONObject;
@Local
public interface PlanVsActualLocal extends ValidatorLocal
{
public abstract JSONObject getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons)throws RemoteException,ITMException;
}
package ibase.dashboard.sfa.ejb;
import ibase.webitm.ejb.ValidatorRemote;
import ibase.webitm.utility.ITMException;
import java.rmi.RemoteException;
import javax.ejb.Remote;
import org.json.simple.JSONObject;
@Remote
public interface PlanVsActualRemote extends ValidatorRemote
{
public abstract JSONObject getPlanVsActualTreeStructure(String dataSourceName,String loginId,String fromDate,String toDate,String salePersons) throws RemoteException, ITMException;
}
package ibase.dashboard.sfa.servlet;
import ibase.dashboard.sfa.ejb.Compliance_NovaRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
import javax.servlet.http.HttpSession;
public class ComplianceCustServlet_Nova extends HttpServlet
{
private static final long serialVersionUID = 1L;
JSONObject jsonObjMetaData = null;
JSONObject jsonMetaData = null;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost(request, response);
}
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
Compliance_NovaRemote complianceRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
String dataSourceName = "";
String loginId = "";
String firstIndex ="";
String cellVal = "";
try
{
response.setContentType("application/xml");
HttpSession session = request.getSession(true);
ibase.utility.UserInfoBean userInfo = (ibase.utility.UserInfoBean) session.getAttribute("USER_INFO");
loginId = userInfo.getLoginCode();
dataSourceName = request.getParameter("dataSourceName");
firstIndex = request.getParameter("salesPers");
cellVal = request.getParameter("date");
System.out.println("in ComplianceCustServlet firstIndex :"+firstIndex+"===== cellVal :"+cellVal);
context = new InitialContext(appConnectParm.getProperty());
complianceRemote = (Compliance_NovaRemote) context.lookup("ibase/Compliance_Nova/remote");
JSONObject jsonObjData = (JSONObject) complianceRemote.getComplianceCustDetails(firstIndex, cellVal, dataSourceName);
OutputStream outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
outputStream.flush();
outputStream.close();
System.out.println("Final data set for ComplianceCustServlet build the Graph is===" + jsonObjData);
} catch (Exception e)
{
System.out.println("Exception : ComplianceCustServlet :doPost(HttpServletRequest request, HttpServletResponse response) :" + e);
try
{
throw new ITMException(e);
} catch (ITMException e1)
{
e1.printStackTrace();
}
}
}
}
\ No newline at end of file
package ibase.dashboard.sfa.servlet;
import ibase.dashboard.sfa.ejb.Compliance_NovaRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
import javax.servlet.http.HttpSession;
public class ComplianceGridServlet_Nova extends HttpServlet
{
private static final long serialVersionUID = 1L;
JSONObject jsonObjMetaData = null;
JSONObject jsonMetaData = null;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost(request, response);
}
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
Compliance_NovaRemote complianceRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
String dataSourceName = "";
String personName ="";
String period = "";
try
{
response.setContentType("application/xml");
dataSourceName = request.getParameter("dataSourceName");
personName = request.getParameter("personname");
period = request.getParameter("month");
System.out.println("in ComplianceGridServlet personName :"+personName+"===== period :"+period);
context = new InitialContext(appConnectParm.getProperty());
complianceRemote = (Compliance_NovaRemote) context.lookup("ibase/Compliance_Nova/remote");
JSONObject jsonObjData = (JSONObject) complianceRemote.getComplianceGrid(period, personName, dataSourceName);
OutputStream outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
outputStream.flush();
outputStream.close();
System.out.println("Final data set for ComplianceGridServlet build the Graph is ===" + jsonObjData);
} catch (Exception e)
{
System.out.println("Exception : ComplianceGridServlet :doPost(HttpServletRequest request, HttpServletResponse response) :" + e);
try
{
throw new ITMException(e);
} catch (ITMException e1)
{
e1.printStackTrace();
}
}
}
}
\ No newline at end of file
package ibase.dashboard.sfa.servlet;
import ibase.dashboard.sfa.ejb.Compliance_NovaRemote;
import ibase.system.config.AppConnectParm;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONObject;
import javax.servlet.http.HttpSession;
public class ComplianceServlet_Nova extends HttpServlet
{
private static final long serialVersionUID = 1L;
JSONObject jsonObjMetaData = null;
JSONObject jsonMetaData = null;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doPost(request, response);
}
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
Compliance_NovaRemote complianceRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
JSONObject jsonObjData = null;
OutputStream outputStream = null;
String dataSourceName = "";
String loginId = "";
String period = "";
try
{
response.setContentType("application/xml");
HttpSession session = request.getSession(true);
ibase.utility.UserInfoBean userInfo = (ibase.utility.UserInfoBean) session.getAttribute("USER_INFO");
loginId = userInfo.getLoginCode();
dataSourceName = request.getParameter("dataSourceName");
period = request.getParameter("month");
System.out.println("loginId =" + loginId);
System.out.println("period =" + period);
context = new InitialContext(appConnectParm.getProperty());
complianceRemote = (Compliance_NovaRemote) context.lookup("ibase/Compliance_Nova/remote");
jsonObjData = (JSONObject) complianceRemote.getComplianceDetails(loginId, dataSourceName, period);
outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
outputStream.flush();
outputStream.close();
System.out.println("Final data set for ComplianceServlet build the Graph is===" + jsonObjData);
} catch (Exception e)
{
System.out.println("Exception : ComplianceServlet :doPost(HttpServletRequest request, HttpServletResponse response) :" + e);
try
{
throw new ITMException(e);
} catch (ITMException e1)
{
e1.printStackTrace();
}
}
}
}
\ No newline at end of file
package ibase.dashboard.sfa.servlet;
import ibase.dashboard.sfa.ejb.PlanVsActualRemote;
import ibase.system.config.AppConnectParm;
import ibase.utility.UserInfoBean;
import ibase.webitm.utility.ITMException;
import java.io.IOException;
import java.io.OutputStream;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.json.simple.JSONObject;
public class PlanVsActualServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
PlanVsActualRemote planvsactualRemote = null;
InitialContext context = null;
AppConnectParm appConnectParm = new AppConnectParm();
String dataSourceName = "";
String loginId = "",fromDate = "",salePersons = "", toDate = "";
HttpSession session = null;
JSONObject jsonObjData = null;
OutputStream outputStream = null;
UserInfoBean userInfo = null;
try
{
response.setContentType("application/xml");
session = request.getSession(true);
userInfo = (ibase.utility.UserInfoBean) session.getAttribute("USER_INFO");
loginId = userInfo.getLoginCode();
//loginId = "M00001";
fromDate = request.getParameter("fromDate");
toDate = request.getParameter("toDate");
salePersons = request.getParameter("salePersons");
System.out.println("loginId = "+loginId+"fromDate = "+fromDate+"toDate = "+toDate+"sales person = "+salePersons);
dataSourceName = request.getParameter("dataSourceName");
context = new InitialContext(appConnectParm.getProperty());
planvsactualRemote = (PlanVsActualRemote) context.lookup("ibase/PlanVsActual/remote");
jsonObjData = (JSONObject) planvsactualRemote.getPlanVsActualTreeStructure(dataSourceName,loginId,fromDate,toDate,salePersons);
System.out.println(" Final data set for PlanVsActualServlet build the Graph is===" + jsonObjData);
outputStream = response.getOutputStream();
outputStream.write(jsonObjData.toString().getBytes());
outputStream.flush();
outputStream.close();
//String jsonObjData = "{'0':{'category':{'plan':null,'unplan':['Vipul Mehotra','Atul Deokar','Tushar Maniar'],'meet':['Vipul Mehotra','Atul Deokar','Tushar Maniar']},'eventdate':'2016-08-17 00:00:00.0'},'1':{'category':{'plan':['K Guptha'],'unplan':['A Deshpande','Rahul Tambe','R Jain','Anil Pichad','Vipul Gandhi'],'meet':['A Deshpande','Rahul Tambe','R Jain','Anil Pichad','Vipul Gandhi']},'eventdate':'2016-08-16 00:00:00.0'},'2':{'category':{'plan':['Vipul Mehotra','Atul Deokar','Varsha Medical'],'unplan':[],'meet':[]},'eventdate':'2016-08-08 00:00:00.0'},'3':{'category':{'plan':['Vipul Mehotra','Amr Anvekar','Vijay Kumar','Philip John','Anil Mehta'],'unplan':['N R Save','Pradeep Rathod'],'meet':['N R Save','Pradeep Rathod']},'eventdate':'2016-08-06 00:00:00.0'}}";
/*String jsonObjData1 = "{'0':{'category':{'plan':null,'unplan':['Vipul Mehotra','Amr Anvekar','Vijay Kumar'],'missed':null},'eventdate':'09-08-16'},'1':{'category':{'plan':['Vipul Mehotra','Amr Anvekar','Vijay Kumar','Philip John','Anil Mehta'],'unplan':['Nishal Shetty','Deepa Bhandarkar'],'missed':['N R Save','Pradeep Rathod']},'eventdate':'06-08-16'},'2':{'category':{'plan':['K Guptha'],'unplan':[],'missed':['A Deshpande','Rahul Tambe','R Jain','Anil Pichad','Vipul Gandhi']},'eventdate':'16-08-16'},'3':{'category':{'plan':null,'unplan':['K Guptha'],'missed':null},'eventdate':'10-08-16'},'4':{'category':{'plan':null,'unplan':['Vipul Mehotra'],'missed':null},'eventdate':'11-08-16'},'5':{'category':{'plan':['Vipul Mehotra'],'unplan':[],'missed':[]},'eventdate':'08-08-16'}}";
System.out.println(" Final data set for PlanVsActualServlet build the Graph is===" + jsonObjData1);
outputStream = response.getOutputStream();
outputStream.write(jsonObjData1.toString().replace('\'', '"').getBytes());
outputStream.flush();
outputStream.close();*/
}
catch (Exception e)
{
System.out.println("Exception : PlanVsActualServlet :doPost(HttpServletRequest request, HttpServletResponse response) :"+ e);
try
{
throw new ITMException(e);
}
catch (ITMException e1)
{
e1.printStackTrace();
}
}
}
}
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