Commit 273ae02d authored by vvengurlekar's avatar vvengurlekar

JNJ compliance ejb committed


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@106729 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 728779db
......@@ -43,14 +43,32 @@ public class Compliance extends ValidatorEJB implements ComplianceLocal, Complia
conn = connDriver.getConnectDB(dataSourceName);
connDriver = null;
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+"' " +
/*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 ";
*/
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 ";
......
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