Commit 1c08ebb2 authored by caluka's avatar caluka

Analysis Class yearly added in Physical Count Scheduler[D14DSUN016].


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@95684 ce508802-f39f-4f6c-b175-0d175dae99d5
parent bdcd8905
......@@ -209,18 +209,23 @@ public class PhysicalCountSchedule implements Schedule
int numberOfItemsA=0;
int numberOfItemsB=0;
int numberOfItemsC=0;
int numberOfItemsD=0;
int numberOfWorkingDaysA=0;
int numberOfWorkingDaysB=0;
int numberOfWorkingDaysC=0;
int numberOfWorkingDaysD=0;
int numberOfItemsPerdayA=0;
int numberOfItemsPerdayB=0;
int numberOfItemsPerdayC=0;
int numberOfItemsPerdayD=0;
int numberOfItemsPerdayATemp=0;
int numberOfItemsPerdayA_rem=0;
int numberOfItemsPerdayBTemp=0;
int numberOfItemsPerdayB_rem=0;
int numberOfItemsPerdayCTemp=0;
int numberOfItemsPerdayC_rem=0;
int numberOfItemsPerdayDTemp=0;
int numberOfItemsPerdayD_rem=0;
int numberOfItemProcessRecords=0;
int noOfRecordsToday = 0;
int iA=0;
......@@ -241,6 +246,7 @@ public class PhysicalCountSchedule implements Schedule
ArrayList<ArrayList<SelectItem>> arrA=new ArrayList<ArrayList<SelectItem>>();
ArrayList<ArrayList<SelectItem>> arrB=new ArrayList<ArrayList<SelectItem>>();
ArrayList<ArrayList<SelectItem>> arrC=new ArrayList<ArrayList<SelectItem>>();
ArrayList<ArrayList<SelectItem>> arrD=new ArrayList<ArrayList<SelectItem>>();
ArrayList<SelectItem> b2list=new ArrayList<SelectItem>();
ArrayList<SelectItem> c2list=new ArrayList<SelectItem>();
......@@ -541,8 +547,8 @@ public class PhysicalCountSchedule implements Schedule
queryString=" SELECT DISTINCT S.ITEM_CODE,S.LOT_NO,S.LOT_SL,S.LOC_CODE,S.SITE_CODE,CYCLE_CRITERIA,S.QUANTITY,S.UNIT FROM ITEM I, STOCK S,LOCATION L" +
//",INVTRACE T" +
",ITEM_LOT_PACKSIZE P WHERE ANALYSIS_CLASS='A' " +
" AND S.ITEM_CODE NOT IN (SELECT ITEM_CODE FROM PHYSCAN A,PHYSCANDET B WHERE A.TRAN_ID=B.TRAN_ID AND ANALYSIS_CLASS='A' AND TO_CHAR(TRAN_DATE, 'MON/YYYY')=? AND CASE WHEN B.STATUS IS NULL THEN 'N' ELSE B.STATUS END ='Y' and A.tran_type='A' AND B.TRAN_TYPE<>'E') " +
",ITEM_LOT_PACKSIZE P WHERE get_analysis_class( ? ,s.item_code) ='A' " +
" AND S.ITEM_CODE NOT IN (SELECT ITEM_CODE FROM PHYSCAN A,PHYSCANDET B WHERE A.TRAN_ID=B.TRAN_ID AND get_analysis_class( ? ,s.item_code) ='A' AND TO_CHAR(TRAN_DATE, 'MON/YYYY')=? AND CASE WHEN B.STATUS IS NULL THEN 'N' ELSE B.STATUS END ='Y' and A.tran_type='A' AND B.TRAN_TYPE<>'E') " +
" AND S.ITEM_CODE = I.ITEM_CODE AND S.LOC_CODE=L.LOC_CODE AND CYCLE_COUNT_REQD='Y' " +
" AND S.ITEM_CODE=P.ITEM_CODE " +
//" AND P.ITEM_CODE=T.ITEM_CODE " +
......@@ -554,10 +560,12 @@ public class PhysicalCountSchedule implements Schedule
" ) AND S.site_code = ? "+ //added by kunal add site code in cond. on 18/09/12 as par Manoj Sharma instruction
" AND (S.LAST_PHYC_DATE IS NULL OR TO_CHAR(S.LAST_PHYC_DATE,'MON/YYYY') <> ?) ORDER BY CYCLE_CRITERIA,S.ITEM_CODE,S.LOT_NO,S.LOT_SL ";
pstmt=conn.prepareStatement(queryString);
pstmt.setString(1,(new SimpleDateFormat("MMM").format(dt)).toUpperCase()+"/"+new SimpleDateFormat("yyyy").format(dt));
//pstmt.setTimestamp(2,wTimeStamp);
pstmt.setString(2, loginSiteCode);
pstmt.setString(1, loginSiteCode); //ADDED BY KUNAL ON 11/JULY/14
pstmt.setString(2, loginSiteCode); //ADDED BY KUNAL ON 11/JULY/14
pstmt.setString(3,(new SimpleDateFormat("MMM").format(dt)).toUpperCase()+"/"+new SimpleDateFormat("yyyy").format(dt));
//pstmt.setTimestamp(2,wTimeStamp);
pstmt.setString(4, loginSiteCode);
pstmt.setString(5,(new SimpleDateFormat("MMM").format(dt)).toUpperCase()+"/"+new SimpleDateFormat("yyyy").format(dt));
rs=pstmt.executeQuery();
alist=new ArrayList<SelectItem>();
......@@ -596,9 +604,9 @@ public class PhysicalCountSchedule implements Schedule
//
queryString=" SELECT DISTINCT S.ITEM_CODE,S.LOT_NO,S.LOT_SL,S.LOC_CODE,S.SITE_CODE,CYCLE_CRITERIA,S.LTRAN_DATE,S.QUANTITY,S.UNIT FROM ITEM I, STOCK S,LOCATION L" +
//",INVTRACE T" +
",ITEM_LOT_PACKSIZE P WHERE ANALYSIS_CLASS='B' " +
",ITEM_LOT_PACKSIZE P WHERE get_analysis_class( ? ,s.item_code) ='B' " +
" AND S.ITEM_CODE = I.ITEM_CODE AND S.LOC_CODE=L.LOC_CODE AND CYCLE_COUNT_REQD='Y' " +
" AND S.ITEM_CODE NOT IN (SELECT ITEM_CODE FROM PHYSCAN A,PHYSCANDET B WHERE A.TRAN_ID=B.TRAN_ID AND ANALYSIS_CLASS='B' AND TRAN_DATE BETWEEN ? AND ? AND CASE WHEN B.STATUS IS NULL THEN 'N' ELSE B.STATUS END ='Y' and A.tran_type='A' AND B.TRAN_TYPE<>'E' ) " +
" AND S.ITEM_CODE NOT IN (SELECT ITEM_CODE FROM PHYSCAN A,PHYSCANDET B WHERE A.TRAN_ID=B.TRAN_ID AND get_analysis_class( ? ,s.item_code) ='B' AND TRAN_DATE BETWEEN ? AND ? AND CASE WHEN B.STATUS IS NULL THEN 'N' ELSE B.STATUS END ='Y' and A.tran_type='A' AND B.TRAN_TYPE<>'E' ) " +
" AND S.ITEM_CODE=P.ITEM_CODE" +
//" AND P.ITEM_CODE=T.ITEM_CODE" +
" AND S.LOT_NO BETWEEN P.LOT_NO__FROM AND P.LOT_NO__TO "+
......@@ -609,12 +617,14 @@ public class PhysicalCountSchedule implements Schedule
" ) and S.site_code = ? "+ //added by kunal add site code in cond. on 18/09/12 as par Manoj Sharma instruction
" AND (S.LAST_PHYC_DATE IS NULL OR S.LAST_PHYC_DATE NOT BETWEEN ? AND ? ) ORDER BY CYCLE_CRITERIA,S.ITEM_CODE,S.LOT_NO,S.LOT_SL";
pstmt=conn.prepareStatement(queryString);
pstmt.setTimestamp(1,java.sql.Timestamp.valueOf(sdf1.format(setQFromdt).toString() + " 00:00:00.0"));
pstmt.setTimestamp(2,java.sql.Timestamp.valueOf(sdf1.format(setQTodt).toString() + " 00:00:00.0"));
pstmt.setString(1, loginSiteCode); //ADDED BY KUNAL ON 11/JULY/14
pstmt.setString(2, loginSiteCode); //ADDED BY KUNAL ON 11/JULY/14
pstmt.setTimestamp(3,java.sql.Timestamp.valueOf(sdf1.format(setQFromdt).toString() + " 00:00:00.0"));
pstmt.setTimestamp(4,java.sql.Timestamp.valueOf(sdf1.format(setQTodt).toString() + " 00:00:00.0"));
//pstmt.setTimestamp(3,wTimeStamp);
pstmt.setString(3, loginSiteCode);
pstmt.setTimestamp(4,java.sql.Timestamp.valueOf(sdf1.format(setQFromdt).toString() + " 00:00:00.0"));
pstmt.setTimestamp(5,java.sql.Timestamp.valueOf(sdf1.format(setQTodt).toString() + " 00:00:00.0"));
pstmt.setString(5, loginSiteCode);
pstmt.setTimestamp(6,java.sql.Timestamp.valueOf(sdf1.format(setQFromdt).toString() + " 00:00:00.0"));
pstmt.setTimestamp(7,java.sql.Timestamp.valueOf(sdf1.format(setQTodt).toString() + " 00:00:00.0"));
rs=pstmt.executeQuery();
alist=new ArrayList<SelectItem>();
......@@ -651,9 +661,9 @@ public class PhysicalCountSchedule implements Schedule
//
queryString=" SELECT DISTINCT S.ITEM_CODE,S.LOT_NO,S.LOT_SL,S.LOC_CODE,S.SITE_CODE,CYCLE_CRITERIA,S.LTRAN_DATE,S.QUANTITY,S.UNIT FROM ITEM I, STOCK S,LOCATION L" +
//",INVTRACE T" +
",ITEM_LOT_PACKSIZE P WHERE ANALYSIS_CLASS='C' " +
",ITEM_LOT_PACKSIZE P WHERE get_analysis_class( ? ,s.item_code) ='C' " +
" AND S.ITEM_CODE = I.ITEM_CODE AND S.LOC_CODE=L.LOC_CODE AND CYCLE_COUNT_REQD='Y'" +
" AND S.ITEM_CODE NOT IN (SELECT ITEM_CODE FROM PHYSCAN A,PHYSCANDET B WHERE A.TRAN_ID=B.TRAN_ID AND ANALYSIS_CLASS='C' AND TRAN_DATE BETWEEN ? AND ? AND CASE WHEN B.STATUS IS NULL THEN 'N' ELSE B.STATUS END ='Y' and A.tran_type='A' AND B.TRAN_TYPE<>'E' )" +
" AND S.ITEM_CODE NOT IN (SELECT ITEM_CODE FROM PHYSCAN A,PHYSCANDET B WHERE A.TRAN_ID=B.TRAN_ID AND get_analysis_class( ? ,s.item_code) ='C' AND TRAN_DATE BETWEEN ? AND ? AND CASE WHEN B.STATUS IS NULL THEN 'N' ELSE B.STATUS END ='Y' and A.tran_type='A' AND B.TRAN_TYPE<>'E' )" +
" AND S.ITEM_CODE=P.ITEM_CODE" +
//" AND P.ITEM_CODE=T.ITEM_CODE" +
" AND S.LOT_NO BETWEEN P.LOT_NO__FROM AND P.LOT_NO__TO "+
......@@ -664,12 +674,14 @@ public class PhysicalCountSchedule implements Schedule
" ) and S.site_code = ? "+ //added by kunal add site code in cond. on 18/09/12 as par Manoj Sharma instruction
" AND (S.LAST_PHYC_DATE IS NULL OR S.LAST_PHYC_DATE NOT BETWEEN ? AND ? ) ";
pstmt=conn.prepareStatement(queryString);
pstmt.setTimestamp(1,java.sql.Timestamp.valueOf(sdf1.format(setHFromdt).toString() + " 00:00:00.0"));
pstmt.setTimestamp(2,java.sql.Timestamp.valueOf(sdf1.format(setHTodt).toString() + " 00:00:00.0"));
pstmt.setString(1, loginSiteCode); //ADDED BY KUNAL ON 11/JULY/14
pstmt.setString(2, loginSiteCode); //ADDED BY KUNAL ON 11/JULY/14
pstmt.setTimestamp(3,java.sql.Timestamp.valueOf(sdf1.format(setHFromdt).toString() + " 00:00:00.0"));
pstmt.setTimestamp(4,java.sql.Timestamp.valueOf(sdf1.format(setHTodt).toString() + " 00:00:00.0"));
//pstmt.setTimestamp(3,wTimeStamp);
pstmt.setString(3, loginSiteCode);
pstmt.setTimestamp(4,java.sql.Timestamp.valueOf(sdf1.format(setHFromdt).toString() + " 00:00:00.0"));
pstmt.setTimestamp(5,java.sql.Timestamp.valueOf(sdf1.format(setHTodt).toString() + " 00:00:00.0"));
pstmt.setString(5, loginSiteCode);
pstmt.setTimestamp(6,java.sql.Timestamp.valueOf(sdf1.format(setHFromdt).toString() + " 00:00:00.0"));
pstmt.setTimestamp(7,java.sql.Timestamp.valueOf(sdf1.format(setHTodt).toString() + " 00:00:00.0"));
rs=pstmt.executeQuery();
alist=new ArrayList<SelectItem>();
......@@ -701,6 +713,63 @@ public class PhysicalCountSchedule implements Schedule
arrC=(ArrayList<ArrayList<SelectItem>>) result.get(1);
}
System.out.println("arrC---"+arrC.size());
//ADDED BY KUNAL ON 11/JUL/14 START
queryString=" SELECT DISTINCT S.ITEM_CODE,S.LOT_NO,S.LOT_SL,S.LOC_CODE,S.SITE_CODE,CYCLE_CRITERIA,S.LTRAN_DATE,S.QUANTITY,S.UNIT FROM ITEM I, STOCK S,LOCATION L" +
//",INVTRACE T" +
",ITEM_LOT_PACKSIZE P WHERE get_analysis_class( ? ,s.item_code) ='D' " +
" AND S.ITEM_CODE = I.ITEM_CODE AND S.LOC_CODE=L.LOC_CODE AND CYCLE_COUNT_REQD='Y'" +
" AND S.ITEM_CODE NOT IN (SELECT ITEM_CODE FROM PHYSCAN A,PHYSCANDET B WHERE A.TRAN_ID=B.TRAN_ID AND get_analysis_class( ? ,s.item_code) ='D' AND TRAN_DATE BETWEEN ? AND ? AND CASE WHEN B.STATUS IS NULL THEN 'N' ELSE B.STATUS END ='Y' and A.tran_type='A' AND B.TRAN_TYPE<>'E' )" +
" AND S.ITEM_CODE=P.ITEM_CODE" +
//" AND P.ITEM_CODE=T.ITEM_CODE" +
" AND S.LOT_NO BETWEEN P.LOT_NO__FROM AND P.LOT_NO__TO "+
//" AND S.site_code=T.site_code and S.lot_no=T.lot_no and S.loc_code=T.loc_code and S.lot_sl=T.lot_sl " +
//" and S.item_code=T.item_code" +
" and ( S.QUANTITY>0" +
//" OR (T.qty_after=0 and T.tran_date=?)" +
" ) and S.site_code = ? "+ //added by kunal add site code in cond. on 18/09/12 as par Manoj Sharma instruction
" AND (S.LAST_PHYC_DATE IS NULL OR S.LAST_PHYC_DATE NOT BETWEEN ? AND ? ) ";
pstmt=conn.prepareStatement(queryString);
pstmt.setString(1, loginSiteCode); //ADDED BY KUNAL ON 11/JULY/14
pstmt.setString(2, loginSiteCode); //ADDED BY KUNAL ON 11/JULY/14
pstmt.setTimestamp(3,java.sql.Timestamp.valueOf(sdf1.format(frDate).toString() + " 00:00:00.0"));
pstmt.setTimestamp(4,java.sql.Timestamp.valueOf(sdf1.format(toDate).toString() + " 00:00:00.0"));
//pstmt.setTimestamp(3,wTimeStamp);
pstmt.setString(5, loginSiteCode);
pstmt.setTimestamp(6,java.sql.Timestamp.valueOf(sdf1.format(frDate).toString() + " 00:00:00.0"));
pstmt.setTimestamp(7,java.sql.Timestamp.valueOf(sdf1.format(toDate).toString() + " 00:00:00.0"));
rs=pstmt.executeQuery();
alist=new ArrayList<SelectItem>();
while(rs.next())
{
aitem=new SelectItem(rs.getString("ITEM_CODE"), rs.getString("LOT_NO"), rs.getString("LOT_SL"), rs.getString("LOC_CODE"),"C", rs.getString("SITE_CODE"), rs.getString("CYCLE_CRITERIA"),rs.getDouble("QUANTITY"),rs.getString("UNIT"));
alist.add(aitem);
}
if(pstmt!=null)
{
pstmt.close();
pstmt=null;
}
if(rs!=null)
{
rs.close();
rs=null;
}
System.out.println("alist---"+alist.size());
result=new ArrayList();
if(alist.size()>0)
{
result=countItemValue(alist);
}
if(result.size()==2)
{
numberOfItemsD=(Integer) result.get(0);
arrD=(ArrayList<ArrayList<SelectItem>>) result.get(1);
}
System.out.println("arrD---"+arrD.size());
//ADDED BY KUNAL ON 11/JUL/14 END
//Change by Rohan on 7/2/12 To add site Code
//queryString="select count(distinct(work_date)) from work_calendar where WORKING='Y' and WORK_DATE>=to_date(sysdate,'DD-MON-YY') and WORK_DATE like '%"+currentMonthInString+"%' and to_char(WORK_DATE, 'YY')=?";
queryString="select distinct(work_date) from work_calendar where WORKING='Y' "//and TO_DATE(WORK_DATE,'DD-MON-YY')>=to_date(sysdate,'DD-MON-YY') "
......@@ -798,12 +867,48 @@ public class PhysicalCountSchedule implements Schedule
rs=null;
}
queryString="select distinct(work_date) from work_calendar where WORKING='Y' "// and WORK_DATE>=to_date(sysdate,'DD-MON-YY') "
+" and site_code = ? and work_date between ? and ? ";
System.out.println("5-Print queryString---"+queryString);
pstmt=conn.prepareStatement(queryString);
pstmt.setString(1,loginSiteCode);
pstmt.setTimestamp(2,java.sql.Timestamp.valueOf(sdf1.format(frDate).toString() + " 00:00:00.0"));
pstmt.setTimestamp(3,java.sql.Timestamp.valueOf(sdf1.format(toDate).toString() + " 00:00:00.0"));
System.out.println("queryString---"+queryString);
rs=pstmt.executeQuery();
while(rs.next())
{
ts=rs.getTimestamp(1);
System.out.println("ts---"+ts);
System.out.println("dts---"+dts);
if(ts.after(dts) || ts.equals(dts))
{
numberOfWorkingDaysD++;
}
//numberOfWorkingDaysC=rs.getInt(1);
}
if(pstmt!=null)
{
pstmt.close();
pstmt=null;
}
if(rs!=null)
{
rs.close();
rs=null;
}
System.out.println("numberOfItemsA="+numberOfItemsA);
System.out.println("numberOfItemsB="+numberOfItemsB);
System.out.println("numberOfItemsC="+numberOfItemsC);
System.out.println("numberOfItemsD="+numberOfItemsD);
System.out.println("numberOfWorkingDaysA="+numberOfWorkingDaysA);
System.out.println("numberOfWorkingDaysB="+numberOfWorkingDaysB);
System.out.println("numberOfWorkingDaysC="+numberOfWorkingDaysC);
System.out.println("numberOfWorkingDaysD="+numberOfWorkingDaysD);
//Changed by Rohan on 7/2/12
......@@ -840,6 +945,15 @@ public class PhysicalCountSchedule implements Schedule
numberOfItemsPerdayC=numberOfItemsPerdayCTemp;
}
if(numberOfItemsD > 0 && numberOfWorkingDaysD > 0 )
{
numberOfItemsPerdayDTemp=(numberOfItemsD/numberOfWorkingDaysD);
numberOfItemsPerdayD_rem=(numberOfItemsD%numberOfWorkingDaysD);
if(numberOfItemsPerdayD_rem > (numberOfWorkingDaysD/2) )
numberOfItemsPerdayD=numberOfItemsPerdayDTemp+1;
else
numberOfItemsPerdayD=numberOfItemsPerdayDTemp;
}
//java.sql.Date currTrandate = new java.sql.Date( System.currentTimeMillis() );
///*
......@@ -847,6 +961,7 @@ public class PhysicalCountSchedule implements Schedule
System.out.println("numberOfItemsPerdayA="+numberOfItemsPerdayA);
System.out.println("numberOfItemsPerdayB="+numberOfItemsPerdayB);
System.out.println("numberOfItemsPerdayC="+numberOfItemsPerdayC);
System.out.println("numberOfItemsPerdayD="+numberOfItemsPerdayD);
numberOfItemProcessRecords=0;
......@@ -859,6 +974,8 @@ public class PhysicalCountSchedule implements Schedule
System.out.println("2--rec----"+rec);
rec=generateDetRec(empCode,rec,conn,tranId,dts,arrC,numberOfItemsPerdayC);
System.out.println("3--rec----"+rec);
rec=generateDetRec(empCode,rec,conn,tranId,dts,arrD,numberOfItemsPerdayD);
System.out.println("4--rec----"+rec);
queryString=" SELECT DISTINCT T.ITEM_CODE,T.LOT_NO,T.LOT_SL,T.LOC_CODE,T.SITE_CODE,CYCLE_CRITERIA,0 QUANTITY,T.UNIT,I.ANALYSIS_CLASS , T.TRAN_ID FROM ITEM I,LOCATION L,INVTRACE T,ITEM_LOT_PACKSIZE P WHERE " +
......
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