Commit 94d24508 authored by wansari's avatar wansari

W16FKAT002 updated source for due date and despatch date validation.


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@104027 ce508802-f39f-4f6c-b175-0d175dae99d5
parent a0f9be40
......@@ -47,6 +47,7 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
{
E12GenericUtility genericUtility = new E12GenericUtility();
DistCommon distCommon = new DistCommon();
ITMDBAccessEJB itmDBAccessEJB = new ITMDBAccessEJB();
/**
* Default constructor.
*/
......@@ -220,6 +221,7 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
if (rs.next())
{
prdCode = checkNullAndTrim(rs.getString("CODE"));
count++;
}
if (rs != null)
{
......@@ -230,6 +232,12 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
pstmt.close();pstmt = null;
}
if(count == 0)
{
errList.add( "VTORDTINV" );
errFields.add( childNodeName.toLowerCase() );
}
sql = " SELECT STAT_SAL FROM PERIOD_STAT WHERE PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, prdCode);
......@@ -238,7 +246,6 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
if (rs.next())
{
statSal = checkNullAndTrim(rs.getString("STAT_SAL"));
count++;
}
if (rs != null)
{
......@@ -256,15 +263,197 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
errList.add( "VTPRDSAL" );
errFields.add( childNodeName.toLowerCase() );
}
else if(count == 0)
}
if (childNodeName.equalsIgnoreCase("due_date"))
{
errList.add( "VTORDTINV" );
String appDateFormat = genericUtility.getApplDateFormat();
String morderDateStr = checkNullAndTrim(genericUtility.getColumnValue("order_date", dom1));
String siteCode = checkNullAndTrim(genericUtility.getColumnValue("site_code", dom1));
java.util.Date morderDate = getDateInForamt( morderDateStr, appDateFormat );
java.util.Date mdueDate = getDateInForamt( columnValue, appDateFormat );
System.out.println("mdueDate["+mdueDate+"] and morderDate["+morderDate+"]");
if( mdueDate.compareTo( morderDate ) < 0 )
{
errList.add( "VTDUEDT" );
errFields.add( childNodeName.toLowerCase() );
}
else
{
String statSal = "",prdCode = "";
int count = 0;
System.out.println("Despatch Date="+columnValue);
String despDate = genericUtility.getValidDateTimeString(
checkNullAndTrim(columnValue), genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat());
sql = " SELECT CODE FROM PERIOD WHERE ? BETWEEN FR_DATE AND TO_DATE ";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1, java.sql.Timestamp.valueOf(despDate));
rs = pstmt.executeQuery();
if (rs.next())
{
prdCode = checkNullAndTrim(rs.getString("CODE"));
count++;
}
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null )
{
pstmt.close();pstmt = null;
}
if(count == 0)
{
errList.add( "VTINVDUE" );
errFields.add( "due_date".toLowerCase() );
}
sql = " SELECT STAT_SAL FROM PERIOD_STAT WHERE PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, prdCode);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
if (rs.next())
{
statSal = checkNullAndTrim(rs.getString("STAT_SAL"));
}
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null )
{
pstmt.close();pstmt = null;
}
if("N".equalsIgnoreCase(statSal))
{
errList.add( "VTPRDDSP" );
errFields.add( "due_date".toLowerCase() );
}
}
}
}
break;
case 3:
String morderDateStr = checkNullAndTrim(genericUtility.getColumnValue("order_date", dom1));
String siteCode = checkNullAndTrim(genericUtility.getColumnValue("site_code", dom1));
String appDateFormat = genericUtility.getApplDateFormat();
String itemCode = "",dspDate = "";
NodeList detail3NodeList =dom.getElementsByTagName("Detail3");
int detail3NodeListlen = detail3NodeList.getLength();
System.out.println("Detail3 Length wfVal"+detail3NodeListlen);
for(int ctrH = 0; ctrH < detail3NodeListlen ; ctrH++)
{
childNodeList = detail3NodeList.item(ctrH).getChildNodes();
int childNodeListlen = childNodeList.getLength();
for(int ctrD = 0; ctrD < childNodeListlen ; ctrD++)
{
childNode = childNodeList.item(ctrD);
if(childNode == null || childNode.getNodeType() != childNode.ELEMENT_NODE)
{
continue;
}
if(childNode != null && "item_code".equalsIgnoreCase(childNode.getNodeName()) && childNode.getFirstChild() != null)
{
itemCode = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
}
else if(childNode != null && "dsp_date".equalsIgnoreCase(childNode.getNodeName()) && childNode.getFirstChild() != null)
{
dspDate = checkNullAndTrim(childNode.getFirstChild().getNodeValue());
}
}
System.out.println("Validation for itemCode["+itemCode+"] and DspDate["+dspDate+"]");
if(dspDate.length() > 0)
{
java.util.Date morderDate = getDateInForamt( morderDateStr, appDateFormat );
java.util.Date mdueDate = getDateInForamt( dspDate, appDateFormat );
System.out.println("mdueDate["+mdueDate+"] and morderDate["+morderDate+"]");
if( mdueDate.compareTo( morderDate ) < 0 )
{
//errList.add( "VTDSPDT" );
//errFields.add( "dsp_date".toLowerCase() );
String message = "Despatch date must be > = Order date";
return getError(itemCode, "VTDSPDT", message, conn);
}
else
{
String statSal = "",prdCode = "";
int count = 0;
System.out.println("Despatch Date="+columnValue);
String despDate = genericUtility.getValidDateTimeString(
checkNullAndTrim(dspDate), genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat());
sql = " SELECT CODE FROM PERIOD WHERE ? BETWEEN FR_DATE AND TO_DATE ";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1, java.sql.Timestamp.valueOf(despDate));
rs = pstmt.executeQuery();
if (rs.next())
{
prdCode = checkNullAndTrim(rs.getString("CODE"));
count++;
}
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null )
{
pstmt.close();pstmt = null;
}
if(count == 0)
{
//errList.add( "VTORDTINV" );
//errFields.add( "dsp_date".toLowerCase() );
String message = "Invalid Despatch Date,The Despatch Date not present in period status master";
return getError(itemCode, "VTDSPINV", message, conn);
}
sql = " SELECT STAT_SAL FROM PERIOD_STAT WHERE PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, prdCode);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
if (rs.next())
{
statSal = checkNullAndTrim(rs.getString("STAT_SAL"));
}
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null )
{
pstmt.close();pstmt = null;
}
if("N".equalsIgnoreCase(statSal))
{
//errList.add( "VTPRDSAL" );
//errFields.add( "dsp_date".toLowerCase() );
String message = "Please check the despatch date you have entered. Probably, the date falls under the period whose sales transactions are already closed.";
return getError(itemCode, "VTPRDSAL", message, conn);
}
}
}
}
break;
}
int errListSize = errList.size();
......@@ -336,7 +525,7 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
return errString;
}
public String getError(String itemCode, String Code, Connection conn) throws ITMException, Exception
public String getError(String itemCode, String Code, String message, Connection conn) throws ITMException, Exception
{
String mainStr ="";
......@@ -346,8 +535,9 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
errString = new ITMDBAccessEJB().getErrorString("",Code,"","",conn);
String begPart = errString.substring(0,errString.indexOf("<message>")+9);
String endDesc = errString.substring(errString.indexOf("</description>"));
mainStr= begPart+"Entered quantity exceeded"+"</message><description>";
mainStr= mainStr+"Quantity has been already issued/ Exceeds Order Quantity for item code : ["+itemCode+"]."+endDesc;
mainStr= begPart+"Invalid Despatch Date"+"</message><description>";
//mainStr= mainStr+"Despatch date must be > = Order date for item code : ["+itemCode+"]."+endDesc;
mainStr= mainStr+ message +" for item code ["+itemCode+"]."+endDesc;
System.out.println("mainStr:::::::::::::::::: "+mainStr);
begPart = null;
}
......@@ -3105,10 +3295,83 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
if("UPDATE_DSP_DATE".equalsIgnoreCase(quantity)) //updating dsp date
{
String prdCode = "",statSal = "";
int count = 0;
String dspDate = checkNullAndTrim(detail[7]);
String ordDate = checkNullAndTrim(detail[8]);
String dspDateStr = genericUtility.getValidDateTimeString(
checkNullAndTrim(dspDate), genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat());
String appDateFormat = genericUtility.getApplDateFormat();
java.util.Date morderDate = getDateInForamt( ordDate, appDateFormat );
java.util.Date mdueDate = getDateInForamt( dspDate, appDateFormat );
System.out.println("@@mdueDate["+mdueDate+"] and morderDate["+morderDate+"]");
if( mdueDate.compareTo( morderDate ) < 0 )
{
System.out.println("Inside");
return "VTDUEDT";
}
System.out.println("After");
sql = " SELECT CODE FROM PERIOD WHERE ? BETWEEN FR_DATE AND TO_DATE ";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1, java.sql.Timestamp.valueOf(dspDateStr));
rs = pstmt.executeQuery();
if (rs.next())
{
prdCode = checkNullAndTrim(rs.getString("CODE"));
count++;
}
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null )
{
pstmt.close();pstmt = null;
}
if(count == 0)
{
return "VTORDTINV";
}
sql = " SELECT STAT_SAL FROM PERIOD_STAT WHERE PRD_CODE = ? AND SITE_CODE = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, prdCode);
pstmt.setString(2, siteCode);
rs = pstmt.executeQuery();
if (rs.next())
{
statSal = checkNullAndTrim(rs.getString("STAT_SAL"));
}
if (rs != null)
{
rs.close();rs = null;
}
if (pstmt != null )
{
pstmt.close();pstmt = null;
}
System.out.println("Acct Sal["+statSal+"]");
if("N".equalsIgnoreCase(statSal))
{
return "VTPRDSAL";
}
//String dspDate = checkNullAndTrim(detail[7]);
//String dspDateStr = genericUtility.getValidDateTimeString(
//checkNullAndTrim(dspDate), genericUtility.getApplDateFormat(), genericUtility.getDBDateFormat());
sql = "UPDATE SORDDET_TEMP SET DSP_DATE = ? WHERE SALE_ORDER = ? AND TAB_NO = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setTimestamp(1, java.sql.Timestamp.valueOf(dspDateStr));
......@@ -3120,6 +3383,7 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
{
pstmt.close();pstmt = null;
}
return "";
}
......@@ -3202,7 +3466,7 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
catch(Exception e)
{
isError = true;
System.out.println("Inside catch SaveSorderDetail ");
System.out.println("Inside catch SaveSorderDetail"+e.getMessage());
e.printStackTrace();
}
finally
......@@ -3396,7 +3660,8 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
sql = " SELECT S.SALE_ORDER, S.ORDER_DATE, S.SITE_CODE, S.ITEM_SER, S.ORDER_TYPE, S.CUST_CODE, S.CUST_CODE__DLV, S.CUST_CODE__BIL,S.REMARKS,S.DLV_TERM , "
+ " S.CR_TERM, S.CURR_CODE , S.STAN_CODE , S.TRAN_CODE , S.TRANS_MODE , S.UDF__STR2 , S.EMP_CODE__ORD ,"
+ " S.UDF__NUM2, S.CURR_CODE__FRT, S.CURR_CODE__INS, C.CUST_NAME,"
+ " S.DLV_ADD1,S.DLV_ADD2,S.DLV_CITY,S.DLV_PIN,S.STATE_CODE__DLV,S.COUNT_CODE__DLV, S.DUE_DATE "
+ " S.DLV_ADD1,S.DLV_ADD2,S.DLV_CITY,S.DLV_PIN,S.STATE_CODE__DLV,S.COUNT_CODE__DLV, S.DUE_DATE,"
+ " S.DLV_ADD3, S.TEL1__DLV,S.TEL2__DLV, S.PART_QTY "
+ " FROM SORDER S, CUSTOMER C "
+ " WHERE S.SALE_ORDER = ? AND S.CONFIRMED = ? AND S.CUST_CODE = C.CUST_CODE ";
pstmt = conn.prepareStatement(sql);
......@@ -3611,7 +3876,7 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
}
catch (Exception e)
{
System.out.println("Inside Catch getSorderHeader");
System.out.println("Inside Catch getSorderHeader==="+e.getMessage());
e.printStackTrace();
}
finally
......@@ -4051,4 +4316,16 @@ public class SorderWizardEJB extends ValidatorEJB implements SorderWizardEJBLoca
//to get sample accordian image path [END]
private Timestamp getDateInForamt( String dateStr, String format ) throws Exception
{
E12GenericUtility genericUtility = new E12GenericUtility();
Timestamp timestamp = null;
SimpleDateFormat sdf = new SimpleDateFormat( format );//new SimpleDateFormat(genericUtility.getApplDateFormat());
System.out.println( "dateStr[" + dateStr + "]" );
java.util.Date frDate = null;
frDate = sdf.parse( dateStr );
SimpleDateFormat sdf1 = new SimpleDateFormat(genericUtility.getDBDateFormat());
timestamp = Timestamp.valueOf(sdf1.format(frDate).toString() + " 00:00:00.0");
return timestamp;
}
}
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