Commit a096055c authored by mnair's avatar mnair

Updated changes

git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@183122 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 9067985e
......@@ -40,8 +40,11 @@ public class StockTransferAct extends ActionHandlerEJB implements
retString = actionAllItems(dom, dom1, xtraParams, actionType);
}
} catch (Exception e) {
}
catch (Exception e)
{
System.out.println("Exception :StockTransferAct :actionHandler(String xmlString):"+ e.getMessage() + ":");
e.printStackTrace();
throw new ITMException(e);
......@@ -53,353 +56,154 @@ public class StockTransferAct extends ActionHandlerEJB implements
private String actionAllItems(Document dom, Document dom1,String xtraParams, String actionType) throws RemoteException,ITMException
{
System.out.println("xmlString from StockTransferActEJB :" + dom+ " \n xmlString1 :" + dom1);
String refIdFor="",refSerFor = "", lineNo="",quantity="";
String refIdFor="",refSerFor = "", lineNo="",quantity="",acctCodeDr="",cctrCodeDr="";
int lineCntr=0;
String consumeOrder = "";
ResultSet rs = null, rs1 = null;
ResultSet rs = null;
Connection conn = null;
PreparedStatement pstmt = null;
PreparedStatement pstmt1 = null;
HashMap<String, Double> hm = new HashMap<String, Double>();
String locCode = "", lotNum = "", siteCodeReq = "", lotSerial = "", sql = "";
//HashMap<String, Double> hm = new HashMap<String, Double>();
String siteCodeReq = "", sql = "";//lotSerial="",lotNum="";
StringBuffer valueXmlString = new StringBuffer("<?xml version=\"1.0\"?>\r\n<Root>\r\n");
String detailCnt = "";
String itemCode = "";
String availableYn = "";
int detCnt = 0;
double remainingQty = 0d;
double noArt = 0;
double hmQty = 0d;
double inputQty = 0d;
//double noArt = 0;
//double hmQty = 0d;
//double inputQty = 0d;
ibase.utility.E12GenericUtility genericUtility = new ibase.utility.E12GenericUtility();
System.out.println("Action Default Entry time :: ");
try {
detailCnt = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "detCnt");
if (detailCnt != null) {
detCnt = Integer.parseInt(detailCnt);
System.out.println("detCnt...........:: " + detCnt);
}
if (dom == null || detCnt > 1)
{
valueXmlString.append("</Root>\r\n");
return valueXmlString.toString();
}
conn = getConnection();
//Consumption order
if (consumeOrder != null && consumeOrder.trim().length() > 0)
{
consumeOrder = genericUtility.getColumnValue("ref_id__for", dom1);
System.out.println("Consumer Order Reference id::::::::"+ consumeOrder);
if (("C-ORD").trim().equalsIgnoreCase(refSerFor))
{
refSerFor = genericUtility.getColumnValue("ref_ser__for", dom1);
System.out.println("Consumer Order Reference series::::::::"+ refSerFor);
sql = "select hdr.available_yn,"
+ "hdr.site_code__req,"
+ "det.line_no,"
+ "det.item_code,"
+ "hdr.loc_code,"
+ "det.quantity"
+ " from consume_ord_det det,consume_ord hdr"
+ " where det.cons_order = hdr.cons_order "
+ " and hdr.cons_order = ?";
System.out.println("SQL ::" + sql);
pstmt = conn.prepareStatement( sql );
pstmt.setString(1,consumeOrder);
rs = pstmt.executeQuery();
while (rs.next()) {
availableYn = rs.getString("available_yn");
siteCodeReq = rs.getString("site_code__req");
lineNo = rs.getString("line_no");
itemCode = rs.getString("item_code");
locCode = rs.getString("loc_code");
System.out.println(":::CONSUMPTION ORDER DETAILS:::");
System.out.println("AvailableYn ::" + availableYn);
System.out.println("itemCode ::" + itemCode);
System.out.println("Location code ::" + locCode);
sql = "SELECT STOCK.ITEM_SER, "
+ "STOCK.ITEM_CODE,"
+ "STOCK.UNIT, "
+ "STOCK.LOC_CODE,"
+ "STOCK.LOT_NO,"
+ "STOCK.LOT_SL,"
+ "STOCK.QUANTITY - STOCK.ALLOC_QTY AS BAL_QUANTITY, "
+ "STOCK.SITE_CODE, "
+ "STOCK.NO_ART, "
+ "(STOCK.QUANTITY - CASE WHEN STOCK.ALLOC_QTY IS NULL THEN 0 ELSE STOCK.ALLOC_QTY END -CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END) ,"
+ "STOCK.EXP_DATE, " + "STOCK.RETEST_DATE, "
+ "STOCK.DIMENSION, " + "STOCK.RATE "
+ " FROM STOCK, INVSTAT"
+ " WHERE STOCK.INV_STAT = INVSTAT.INV_STAT"
+ " AND STOCK.ITEM_CODE = ? "
+ " AND STOCK.SITE_CODE = ? "
+ " AND STOCK.QUANTITY - STOCK.ALLOC_QTY > 0"
+ " AND INVSTAT.AVAILABLE = ? ";
System.out.println("sql :" + sql);
pstmt1 = conn.prepareStatement( sql );
pstmt1.setString(1,itemCode);
pstmt1.setString(2,siteCodeReq);
pstmt1.setString(3,availableYn);
rs1 = pstmt1.executeQuery();
System.out.println(":::STOCK DETAILS:::");
System.out.println("itemCode ::" + itemCode);
System.out.println("siteCodeReq ::" + siteCodeReq);
System.out.println("availableYn ::" + availableYn);
while (rs1.next()) {
lotNum = rs1.getString("LOT_NO");
lotSerial = rs1.getString("LOT_SL");
remainingQty = rs1.getDouble("BAL_QUANTITY");
noArt = rs1.getDouble("NO_ART");
System.out.println("lotNum :" + lotNum);
System.out.println("lotSerial :" + lotSerial);
System.out.println("remainingQty :" + remainingQty);
System.out.println("NO ART :" + noArt);
if (!hm.containsKey(itemCode + "~" + siteCodeReq + "~"+ locCode + "~" + lotNum + "~" + lotSerial))
{
hm.put(itemCode + "~" + siteCodeReq + "~" + locCode+ "~" + lotNum + "~" + lotSerial, new Double(rs1.getDouble(10)));
}
hmQty = Double.parseDouble((hm.get(itemCode + "~"+ siteCodeReq + "~" + locCode + "~" + lotNum + "~"+ lotSerial)).toString());
if (remainingQty == 0) {
break;
}
else if (hmQty >= remainingQty) {
inputQty = remainingQty;
System.out.println("inputQty :" + inputQty);
remainingQty = 0;
hm.put(itemCode + "~" + siteCodeReq + "~" + locCode+ "~" + lotNum + "~" + lotSerial, new Double(hmQty - inputQty));
System.out.println("hmQty - remainingQty :"+ (hmQty - inputQty));
System.out.println("hm if [hmQty >= remainingQty] :"+ hm);
}
else if (hmQty < remainingQty) {
inputQty = hmQty;
System.out.println("inputQty :" + inputQty);
remainingQty = remainingQty - inputQty;
System.out.println("remainingQty :" + remainingQty);
hm.put(itemCode + "~" + siteCodeReq + "~" + locCode+ "~" + lotNum + "~" + lotSerial, new Double(0));
}
System.out.println("Hashmap :" + hm);
valueXmlString.append("<Detail>\r\n");
valueXmlString.append("<line_no isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lineNo).append("]]>").append("</line_no>\r\n");
valueXmlString.append("<item_code isSrvCallOnChg=\"0\">").append("<![CDATA[").append(itemCode).append("]]>").append("</item_code>\r\n");
valueXmlString.append("<quantity isSrvCallOnChg=\"0\">").append("<![CDATA[").append(inputQty).append("]]>").append("</quantity>\r\n");
valueXmlString.append("<loc_code__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCode == null) ? "" : locCode).append("]]>").append("</loc_code__to>\r\n");
valueXmlString.append("<lot_no__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lotNum).append("]]>").append("</lot_no__to>\r\n");
valueXmlString.append("<lot_sl__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lotSerial).append("]]>").append("</lot_sl__to>\r\n");
valueXmlString.append("<no_art isSrvCallOnChg=\"0\">").append("<![CDATA[").append(noArt).append("]]>").append("</no_art>\r\n");
// valueXmlString.append("<acct_code__cr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((acctCodeInv== null) ?"":acctCodeInv).append("]]>").append("</acct_code__cr>\r\n");
// valueXmlString.append("<cctr_code__cr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((cctrCodeInv== null) ?"":cctrCodeInv).append("]]>").append("</cctr_code__cr>\r\n");
// valueXmlString.append("<acct_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((acctCodeDr== null) ?"":acctCodeDr).append("]]>").append("</acct_code__dr>\r\n");
// valueXmlString.append("<cctr_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((cctrCodeDr== null) ?"":cctrCodeDr).append("]]>").append("</cctr_code__dr>\r\n");
// valueXmlString.append("<item_descr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(itemDescr).append("]]>").append("</item_descr>\r\n");
// valueXmlString.append("<loc_code__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCode== null) ?"":locCode).append("]]>").append("</loc_code__fr>\r\n");
// valueXmlString.append("<location_descr__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCodeDescr== null) ?"":locCodeDescr).append("]]>").append("</location_descr__fr>\r\n");
// valueXmlString.append("<loc_descr__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCodeDescr== null) ?"":locCodeDescr).append("]]>").append("</loc_descr__to>\r\n");
// valueXmlString.append("<lot_no__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((lotNoTo== null) ?"":lotNoTo).append("]]>").append("</lot_no__fr>\r\n");
// valueXmlString.append("<lot_sl__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((lotSlTo== null) ?"":lotSlTo).append("]]>").append("</lot_sl__fr>\r\n");
valueXmlString.append("</Detail>\r\n");
} // end of inner while loop
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
}//end of while loop
rs.close();
rs = null;
pstmt.close();
pstmt = null;
valueXmlString.append("</Root>\r\n");
} //end of consumer order ref ser
}//end of consumer order ref id
else
{
//Service Request
if(refIdFor!= null && refIdFor.trim().length()>0 )
{
refIdFor = genericUtility.getColumnValue("ref_id__for", dom1);
System.out.println("Reference id:::["+refIdFor+"]");
if (("S-REQ").trim().equalsIgnoreCase(refSerFor))
{
refSerFor = genericUtility.getColumnValue("ref_ser__for", dom1);
System.out.println("Reference series:::["+refSerFor+"]" );
sql = "select det.line_no,"
+ "det.item_code,"
+ "det.quantity"
+ "from ser_req_item det,ser_request hdr"
+ "where det.req_id = hdr.req_id "
+ "and hdr.req_id = ? ";
System.out.println("SQL ::" + sql);
pstmt = conn.prepareStatement( sql );
pstmt.setString(1,refIdFor);
rs = pstmt.executeQuery();
while (rs.next()) {
lineNo = rs.getString("line_no");
itemCode = rs.getString("item_code");
quantity = rs.getString("quantity");
System.out.println(":::SER_REQ_ITEM TABLE DETAIL:::");
System.out.println("lineNo ::["+lineNo+"]");
System.out.println("itemCode ::["+itemCode+"]");
System.out.println("quantity ::["+quantity+"]");
sql = "SELECT STOCK.ITEM_SER, "
+ "STOCK.ITEM_CODE,"
+ "STOCK.UNIT, "
+ "STOCK.LOC_CODE,"
+ "STOCK.LOT_NO,"
+ "STOCK.LOT_SL,"
+ "STOCK.QUANTITY - STOCK.ALLOC_QTY AS BAL_QUANTITY, "
+ "STOCK.SITE_CODE, "
+ "STOCK.NO_ART, "
+ "(STOCK.QUANTITY - CASE WHEN STOCK.ALLOC_QTY IS NULL THEN 0 ELSE STOCK.ALLOC_QTY END -CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END) ,"
+ "STOCK.EXP_DATE, " + "STOCK.RETEST_DATE, "
+ "STOCK.DIMENSION, " + "STOCK.RATE "
+ " FROM STOCK, INVSTAT"
+ " WHERE STOCK.INV_STAT = INVSTAT.INV_STAT"
+ " AND STOCK.ITEM_CODE = ? "
+ " AND STOCK.SITE_CODE = ? "
+ " AND STOCK.QUANTITY - STOCK.ALLOC_QTY > 0"
+ " AND INVSTAT.AVAILABLE = ? ";
System.out.println("sql :" + sql);
pstmt1 = conn.prepareStatement( sql );
pstmt1.setString(1,itemCode);
pstmt1.setString(2,siteCodeReq);
pstmt1.setString(3,availableYn);
rs1 = pstmt1.executeQuery();
System.out.println(":::STOCK DETAILS DYNAMIC INPUTS:::");
System.out.println("itemCode ::["+itemCode+"]");
System.out.println("siteCodeReq ::["+siteCodeReq+"]");
System.out.println("availableYn ::["+availableYn+"]");
while (rs1.next()) {
lotNum = rs1.getString("LOT_NO");
lotSerial = rs1.getString("LOT_SL");
locCode = rs1.getString("LOC_CODE");
remainingQty = rs1.getDouble("BAL_QUANTITY");
noArt = rs1.getDouble("NO_ART");
System.out.println(":::STOCK DETAILS:::");
System.out.println("lotNum ::["+lotNum+"]");
System.out.println("lotSerial ::["+lotSerial+"]" );
System.out.println("remainingQty ::["+remainingQty+"]");
System.out.println("noArt ::["+noArt+"]");
System.out.println("locCode ::["+locCode+"]");
if (!hm.containsKey(itemCode + "~" + siteCodeReq + "~"+ locCode + "~" + lotNum + "~" + lotSerial))
{
hm.put(itemCode + "~" + siteCodeReq + "~" + locCode+ "~" + lotNum + "~" + lotSerial, new Double(rs1.getDouble(10)));
}
hmQty = Double.parseDouble((hm.get(itemCode + "~"+ siteCodeReq + "~" + locCode + "~" + lotNum + "~"+ lotSerial)).toString());
if (remainingQty == 0) {
break;
}
else if (hmQty >= remainingQty) {
inputQty = remainingQty;
System.out.println("inputQty :" + inputQty);
remainingQty = 0;
hm.put(itemCode + "~" + siteCodeReq + "~" + locCode+ "~" + lotNum + "~" + lotSerial, new Double(hmQty - inputQty));
System.out.println("hmQty - remainingQty :"+ (hmQty - inputQty));
System.out.println("hm if [hmQty >= remainingQty] :"+ hm);
}
else if (hmQty < remainingQty) {
inputQty = hmQty;
System.out.println("inputQty :" + inputQty);
remainingQty = remainingQty - inputQty;
System.out.println("remainingQty :" + remainingQty);
hm.put(itemCode + "~" + siteCodeReq + "~" + locCode+ "~" + lotNum + "~" + lotSerial, new Double(0));
}
System.out.println("Hashmap :" + hm);
valueXmlString.append("<Detail>\r\n");
valueXmlString.append("<line_no isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lineNo).append("]]>").append("</line_no>\r\n");
valueXmlString.append("<item_code isSrvCallOnChg=\"0\">").append("<![CDATA[").append(itemCode).append("]]>").append("</item_code>\r\n");
valueXmlString.append("<quantity isSrvCallOnChg=\"0\">").append("<![CDATA[").append(inputQty).append("]]>").append("</quantity>\r\n");
valueXmlString.append("<loc_code__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCode == null) ? "" : locCode).append("]]>").append("</loc_code__to>\r\n");
valueXmlString.append("<lot_no__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lotNum).append("]]>").append("</lot_no__to>\r\n");
valueXmlString.append("<lot_sl__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lotSerial).append("]]>").append("</lot_sl__to>\r\n");
valueXmlString.append("<no_art isSrvCallOnChg=\"0\">").append("<![CDATA[").append(noArt).append("]]>").append("</no_art>\r\n");
// valueXmlString.append("<acct_code__cr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((acctCodeInv== null) ?"":acctCodeInv).append("]]>").append("</acct_code__cr>\r\n");
// valueXmlString.append("<cctr_code__cr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((cctrCodeInv== null) ?"":cctrCodeInv).append("]]>").append("</cctr_code__cr>\r\n");
// valueXmlString.append("<acct_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((acctCodeDr== null) ?"":acctCodeDr).append("]]>").append("</acct_code__dr>\r\n");
// valueXmlString.append("<cctr_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((cctrCodeDr== null) ?"":cctrCodeDr).append("]]>").append("</cctr_code__dr>\r\n");
// valueXmlString.append("<item_descr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(itemDescr).append("]]>").append("</item_descr>\r\n");
// valueXmlString.append("<loc_code__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCode== null) ?"":locCode).append("]]>").append("</loc_code__fr>\r\n");
// valueXmlString.append("<location_descr__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCodeDescr== null) ?"":locCodeDescr).append("]]>").append("</location_descr__fr>\r\n");
// valueXmlString.append("<loc_descr__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCodeDescr== null) ?"":locCodeDescr).append("]]>").append("</loc_descr__to>\r\n");
// valueXmlString.append("<lot_no__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((lotNoTo== null) ?"":lotNoTo).append("]]>").append("</lot_no__fr>\r\n");
// valueXmlString.append("<lot_sl__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((lotSlTo== null) ?"":lotSlTo).append("]]>").append("</lot_sl__fr>\r\n");
valueXmlString.append("</Detail>\r\n");
} // end of inner while loop
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
} // end of outer while loop
try
{
detailCnt = genericUtility.getValueFromXTRA_PARAMS(xtraParams, "detCnt");
if (detailCnt != null)
{
detCnt = Integer.parseInt(detailCnt);
System.out.println("detCnt...........:: " + detCnt);
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
valueXmlString.append("</Root>\r\n");
} //end of Service request ref ser
}//end of Service request ref id
}//end of else
}//end of try block
if (dom == null || detCnt > 1)
{
valueXmlString.append("</Root>\r\n");
return valueXmlString.toString();
}
conn = getConnection();
refSerFor = genericUtility.getColumnValue("ref_ser__for", dom1);
System.out.println("Reference series::::::::"+ refSerFor);
//Consumption order
if (("C-ORD").trim().equalsIgnoreCase(refSerFor))
{
consumeOrder = genericUtility.getColumnValue("ref_id__for", dom1);
System.out.println("Consumer Order Reference id::::::::"+ consumeOrder);
sql = "select hdr.available_yn,"
+ "hdr.site_code__req,"
+ "det.line_no,"
+ "det.item_code,"
+ "hdr.loc_code,"
+ "det.quantity,"
+ "req_typ.udf_str1, "
+ "req_typ.udf_str2 "
+ " from consume_ord hdr left outer join ser_req_typ req_typ on hdr.order_type = req_typ.req_type,consume_ord_det det"
+ " where det.cons_order = hdr.cons_order "
+ " and hdr.cons_order = ?";
System.out.println("SQL ::" + sql);
pstmt = conn.prepareStatement( sql );
pstmt.setString(1,consumeOrder);
rs = pstmt.executeQuery();
while (rs.next()) {
lineCntr++;
availableYn = rs.getString("available_yn");
siteCodeReq = rs.getString("site_code__req");
lineNo = rs.getString("line_no");
itemCode = rs.getString("item_code");
quantity = rs.getString("quantity");
acctCodeDr = rs.getString("udf_str1");
cctrCodeDr = rs.getString("udf_str2");
//locCode = rs.getString("loc_code");
System.out.println(":::CONSUMPTION ORDER DETAILS:::");
System.out.println("AvailableYn ::["+availableYn+"]" );
System.out.println("itemCode ::["+itemCode+"]");
System.out.println(":::SER_REQ_TYP DETAILS:::");
System.out.println("acctCodeDr ::["+acctCodeDr+"]");
System.out.println("cctrCodeDr ::["+cctrCodeDr+"]");
//System.out.println("Location code ::" + locCode);
valueXmlString.append("<Detail>\r\n");
valueXmlString.append("<line_no isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lineCntr).append("]]>").append("</line_no>\r\n");
valueXmlString.append("<item_code isSrvCallOnChg=\"0\">").append("<![CDATA[").append(itemCode).append("]]>").append("</item_code>\r\n");
valueXmlString.append("<acct_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((acctCodeDr== null) ?"":acctCodeDr).append("]]>").append("</acct_code__dr>\r\n");
valueXmlString.append("<cctr_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((cctrCodeDr== null) ?"":cctrCodeDr).append("]]>").append("</cctr_code__dr>\r\n");
valueXmlString.append( StockDetails( itemCode, siteCodeReq, availableYn, remainingQty, conn ) );
valueXmlString.append("</Detail>\r\n");
}//end of while loop
rs.close();
rs = null;
pstmt.close();
pstmt = null;
valueXmlString.append("</Root>\r\n");
} //end of if for consume order
else if (("S-REQ").trim().equalsIgnoreCase(refSerFor))
{
refIdFor = genericUtility.getColumnValue("ref_id__for", dom1);
System.out.println("serReq Reference id::::::::"+ refIdFor);
sql="select hdr.site_code, "
+"det.line_no, det.item_code, "
+"det.quantity, hdr.req_type, "
+"req_typ.udf_str1, req_typ.udf_str2 "
+ "from ser_request hdr left outer join ser_req_typ req_typ on hdr.req_type = req_typ.req_type, ser_req_item det "
+ "where hdr.req_id = det.req_id and hdr.req_id = ?";
System.out.println("SQL ::" + sql);
pstmt = conn.prepareStatement( sql );
pstmt.setString(1,refIdFor);
rs = pstmt.executeQuery();
while (rs.next()) {
lineCntr++;
siteCodeReq = rs.getString("site_code");
lineNo = rs.getString("line_no");
itemCode = rs.getString("item_code");
quantity = rs.getString("quantity");
acctCodeDr = rs.getString("udf_str1");
cctrCodeDr = rs.getString("udf_str2");
System.out.println(":::SER_REQ_ITEM TABLE DETAIL:::");
System.out.println("siteCodeReq::["+siteCodeReq+"]");
System.out.println("lineNo ::["+lineNo+"]");
System.out.println("itemCode ::["+itemCode+"]");
System.out.println("quantity ::["+quantity+"]");
System.out.println(":::SER_REQ_TYP DETAILS:::");
System.out.println("acctCodeDr ::["+acctCodeDr+"]");
System.out.println("cctrCodeDr ::["+cctrCodeDr+"]");
valueXmlString.append("<Detail>\r\n");
valueXmlString.append("<line_no isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lineCntr).append("]]>").append("</line_no>\r\n");
valueXmlString.append("<item_code isSrvCallOnChg=\"0\">").append("<![CDATA[").append(itemCode).append("]]>").append("</item_code>\r\n");
valueXmlString.append("<acct_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(acctCodeDr).append("]]>").append("</acct_code__dr>\r\n");
valueXmlString.append("<cctr_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(cctrCodeDr).append("]]>").append("</cctr_code__dr>\r\n");
valueXmlString.append( StockDetails( itemCode, siteCodeReq, "Y", remainingQty, conn ) );
valueXmlString.append("</Detail>\r\n");
}//end of while
rs.close();
rs = null;
pstmt.close();
pstmt = null;
valueXmlString.append("</Root>\r\n");
}//end of else if for ser request
}//end of try block
catch (SQLException sqx)
{
System.out.println("The sqlException occured in StockTransferAct for Default button:"+ sqx);
......@@ -414,18 +218,12 @@ public class StockTransferAct extends ActionHandlerEJB implements
{
try
{
if( rs != null )
if( rs != null )
rs.close();
rs = null;
if( rs1 != null )
rs1.close();
rs1=null;
if( pstmt != null )
if( pstmt != null )
pstmt.close();
pstmt = null;
if( pstmt1!=null )
pstmt1.close();
pstmt1 = null;
if( conn != null )
conn.close();
conn = null;
......@@ -440,5 +238,171 @@ public class StockTransferAct extends ActionHandlerEJB implements
return valueXmlString.toString();
} // End of actionAllItems method
private String StockDetails(String itemCode,String siteCodeReq,String availableYn,double remainingQty,Connection conn) throws ITMException
{
HashMap<String, Double> hm = new HashMap<String, Double>();
String lotNum="",lotSerial="",locCode="", accountInv="",costCenInv="",remarks="";
double noArt = 0;
double hmQty = 0d;
double inputQty = 0d;
PreparedStatement pstmt1 = null;
ResultSet rs1 = null;
StringBuilder valueXmlString = new StringBuilder();
try
{
String sql = "SELECT STOCK.ITEM_SER, "
+ "STOCK.ITEM_CODE,"
+ "STOCK.UNIT, "
+ "STOCK.LOC_CODE,"
+ "STOCK.LOT_NO,"
+ "STOCK.LOT_SL,"
+ "STOCK.QUANTITY - STOCK.ALLOC_QTY AS BAL_QUANTITY, "
+ "STOCK.SITE_CODE, "
+ "STOCK.NO_ART, "
+ "(STOCK.QUANTITY - CASE WHEN STOCK.ALLOC_QTY IS NULL THEN 0 ELSE STOCK.ALLOC_QTY END -CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END) ,"
+ "STOCK.EXP_DATE, "
+ "STOCK.RETEST_DATE, "
+ "STOCK.DIMENSION, "
+ "STOCK.ACCT_CODE__INV, "
+ "STOCK.CCTR_CODE__INV, "
+ "STOCK.RATE "
+ " FROM STOCK,INVSTAT"
+ " WHERE STOCK.INV_STAT = INVSTAT.INV_STAT"
+ " AND STOCK.ITEM_CODE = ? "
+ " AND STOCK.SITE_CODE = ? "
+ " AND STOCK.QUANTITY - STOCK.ALLOC_QTY > 0"
+ " AND INVSTAT.AVAILABLE = ? ";
System.out.println("sql :" + sql);
pstmt1 = conn.prepareStatement( sql );
pstmt1.setString(1,itemCode);
pstmt1.setString(2,siteCodeReq);
pstmt1.setString(3,availableYn);
rs1 = pstmt1.executeQuery();
System.out.println(":::STOCK DETAILS:::");
System.out.println("itemCode ::["+itemCode+"]");
System.out.println("siteCodeReq ::["+siteCodeReq+"]");
System.out.println("availableYn ::["+availableYn+"]");
while (rs1.next()) {
locCode = rs1.getString( "LOC_CODE" );
lotNum = rs1.getString( "LOT_NO" );
lotSerial = rs1.getString("LOT_SL");
remainingQty = rs1.getDouble( "BAL_QUANTITY" );
noArt = rs1.getDouble( "NO_ART" );
accountInv = rs1.getString( "ACCT_CODE__INV" );
costCenInv = rs1.getString( "CCTR_CODE__INV" );
System.out.println("lotNum :["+lotNum+"]");
System.out.println("lotSerial :["+lotSerial+"]");
System.out.println("remainingQty :["+remainingQty+"]");
System.out.println("noArt :["+noArt+"]");
System.out.println("accountInv :["+accountInv+"]");
System.out.println("costCenInv :["+costCenInv+"]");
String mapKey = itemCode + "~" + siteCodeReq + "~"+ locCode + "~" + lotNum + "~" + lotSerial;
if (!hm.containsKey(mapKey))
{
hm.put(mapKey, new Double(rs1.getDouble(10)));
}
hmQty = Double.parseDouble((hm.get(mapKey)).toString());
if (remainingQty == 0) {
break;
}
else if (hmQty >= remainingQty) {
inputQty = remainingQty;
System.out.println("inputQty :["+inputQty+"]");
remainingQty = 0;
hm.put(mapKey, new Double(hmQty - inputQty));
System.out.println("hmQty - remainingQty :"+ (hmQty - inputQty));
System.out.println("hm if [hmQty >= remainingQty] :["+ hm+"]");
}
else if (hmQty < remainingQty) {
inputQty = hmQty;
System.out.println("inputQty :["+inputQty+"]");
remainingQty = remainingQty - inputQty;
System.out.println("remainingQty :["+remainingQty+"]");
hm.put(mapKey, new Double(0));
}
System.out.println("Hashmap :" + hm);
valueXmlString.append("<loc_code__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append( locCode ).append("]]>").append("</loc_code__to>\r\n");
valueXmlString.append("<lot_no__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lotNum).append("]]>").append("</lot_no__to>\r\n");
valueXmlString.append("<lot_sl__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lotSerial).append("]]>").append("</lot_sl__to>\r\n");
valueXmlString.append("<no_art isSrvCallOnChg=\"0\">").append("<![CDATA[").append(noArt).append("]]>").append("</no_art>\r\n");
valueXmlString.append("<quantity isSrvCallOnChg=\"0\">").append("<![CDATA[").append(inputQty).append("]]>").append("</quantity>\r\n");
valueXmlString.append("<acct_code__cr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(accountInv).append("]]>").append("</acct_code__cr>\r\n");
valueXmlString.append("<cctr_code__cr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(costCenInv).append("]]>").append("</cctr_code__cr>\r\n");
valueXmlString.append("<remarks isSrvCallOnChg=\"0\">").append("<![CDATA[").append(remarks).append("]]>").append("</remarks>\r\n");
//valueXmlString.append("<loc_code__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(locCode).append("]]>").append("</loc_code__fr>\r\n"); //post_itemchange
//valueXmlString.append("<lot_no__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lotNum).append("]]>").append("</lot_no__fr>\r\n"); //post_itemchange
//valueXmlString.append("<lot_sl__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lotSerial).append("]]>").append("</lot_sl__fr>\r\n"); //post_itemchange
//valueXmlString.append("<Detail>\r\n");
//valueXmlString.append("<line_no isSrvCallOnChg=\"0\">").append("<![CDATA[").append(lineNo).append("]]>").append("</line_no>\r\n");
//valueXmlString.append("<item_code isSrvCallOnChg=\"0\">").append("<![CDATA[").append(itemCode).append("]]>").append("</item_code>\r\n");
// valueXmlString.append("<item_descr isSrvCallOnChg=\"0\">").append("<![CDATA[").append(itemDescr).append("]]>").append("</item_descr>\r\n");
//valueXmlString.append("<acct_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((acctCodeDr== null) ?"":acctCodeDr).append("]]>").append("</acct_code__dr>\r\n");
//valueXmlString.append("<cctr_code__dr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((cctrCodeDr== null) ?"":cctrCodeDr).append("]]>").append("</cctr_code__dr>\r\n");
// valueXmlString.append("<loc_code__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCode== null) ?"":locCode).append("]]>").append("</loc_code__fr>\r\n");
// valueXmlString.append("<location_descr__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCodeDescr== null) ?"":locCodeDescr).append("]]>").append("</location_descr__fr>\r\n");
// valueXmlString.append("<loc_descr__to isSrvCallOnChg=\"0\">").append("<![CDATA[").append((locCodeDescr== null) ?"":locCodeDescr).append("]]>").append("</loc_descr__to>\r\n");
// valueXmlString.append("<lot_no__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((lotNoTo== null) ?"":lotNoTo).append("]]>").append("</lot_no__fr>\r\n");
// valueXmlString.append("<lot_sl__fr isSrvCallOnChg=\"0\">").append("<![CDATA[").append((lotSlTo== null) ?"":lotSlTo).append("]]>").append("</lot_sl__fr>\r\n");
//valueXmlString.append("</Detail>\r\n");
} // end of while loop
rs1.close();
rs1 = null;
pstmt1.close();
pstmt1 = null;
} //end of try block
catch (SQLException sqx)
{
System.out.println("The sqlException occured in StockTransferAct for Default button:"+ sqx);
throw new ITMException(sqx);
}
catch (Exception e)
{
System.out.println("The Exception occured in StockTransferAct for Default button:"+ e);
throw new ITMException(e);
}
finally
{
try
{
if( rs1 != null )
rs1.close();
rs1 = null;
if( pstmt1!= null )
pstmt1.close();
pstmt1 = null;
}
catch (Exception e)
{
e.printStackTrace();
}
}//end of finally
return valueXmlString.toString();
} //End of stock details
}
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