Commit 5288d91f authored by kmandhre's avatar kmandhre

sun source merge mail by sumit


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@92420 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 4e6359b9
......@@ -90,6 +90,7 @@ public class SordAllocDef extends ActionHandlerEJB implements SordAllocDefLocal,
DistCommon discommon = new DistCommon();
detCnt = genericUtility.getValueFromXTRA_PARAMS(xtraParams,"detCnt"); //Will be Uncommented later - Jiten
System.out.println(" sumit detCnt ["+detCnt+"]");
conn = connDriver.getConnectDB("DriverITM");
if (detCnt == null || detCnt.trim().length() == 0)
{
detCnt = "0";
......@@ -116,7 +117,7 @@ public class SordAllocDef extends ActionHandlerEJB implements SordAllocDefLocal,
quantityP = Double.parseDouble(GenericUtility.getInstance().getColumnValueFromNode("pending_qty", dom.getElementsByTagName("Detail2").item(row)));
//}
System.out.println(" linenosord ["+linenosord+"] quantity ["+quantity+"] siteCode ["+siteCode+"]");
conn = connDriver.getConnectDB("DriverITM");
sql = " select MIN_SHELF_LIFE, (SORDITEM.QUANTITY - SORDITEM.QTY_DESP - SORDITEM.QTY_ALLOC) PENDING_QUANTITY from sorditem where sale_order = ? AND line_no = ?";
pstmt = conn.prepareStatement(sql);
......@@ -157,7 +158,7 @@ public class SordAllocDef extends ActionHandlerEJB implements SordAllocDefLocal,
+"AND (LOCATION.INV_STAT = INVSTAT.INV_STAT) "
+"AND INVSTAT.AVAILABLE = 'Y' "
+"AND STOCK.ITEM_CODE = ? AND STOCK.SITE_CODE = ? "
//+"AND LOT_SL <> ? "
+"AND (STOCK.QUANTITY - STOCK.ALLOC_QTY - (CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END) > 0) "
+"AND STOCK.LOT_NO IN (SELECT LOT_NO FROM STOCK WHERE ITEM_CODE =? AND SITE_CODE =? AND LOT_NO = ? "
+"GROUP BY LOT_NO HAVING SUM(QUANTITY - ALLOC_QTY - (CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END) ) > 0) "
+"AND (MONTHS_BETWEEN(TO_DATE(STOCK.EXP_DATE),SYSDATE) > ? ) ";
......
......@@ -16,6 +16,7 @@ import ibase.webitm.utility.ITMException;
import java.util.*;
import java.text.SimpleDateFormat;
import java.rmi.RemoteException;
import java.security.AllPermission;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
......@@ -484,10 +485,48 @@ public class StockAllocIc extends ValidatorEJB implements StockAllocIcLocal, Sto
quantityDom = genericUtility.getColumnValue("quantity", dom);
pendingQtyDom = genericUtility.getColumnValue("pending_qty", dom);
saleOrder = genericUtility.getColumnValue("sale_order", dom);
lineNoSord = genericUtility.getColumnValue("line_no__sord", dom);
itemCode = genericUtility.getColumnValue("item_code", dom);
siteCode = genericUtility.getColumnValue("site_code", dom);
lotNo = genericUtility.getColumnValue("lot_no", dom);
lotSl = genericUtility.getColumnValue("lot_sl", dom);
System.out.println("saleOrder ["+saleOrder+"] lineNoSord["+lineNoSord+"] itemCode["+itemCode+"] siteCode["+siteCode+"] lotNo["+lotNo+"] lotSl["+lotSl+"]"); ;
if ( quantityDom == null || quantityDom.trim().length() == 0 )
{
quantityDom = "0";
}
else
{
sql = "SELECT (STOCK.QUANTITY - STOCK.ALLOC_QTY - (CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END)) AS QTY_AVAIL_ALLOC " +
" FROM STOCK WHERE ITEM_CODE = ? AND SITE_CODE = ? AND LOC_CODE = ? AND LOT_NO = ? AND LOT_SL = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, itemCode);
pstmt.setString(2, siteCode);
pstmt.setString(3, locCode);
pstmt.setString(4, lotNo);
pstmt.setString(5, lotSl);
rs = pstmt.executeQuery();
if(rs.next())
{
double qtyAvilable = 0.0;
qtyAvilable = rs.getDouble("QTY_AVAIL_ALLOC");
if(Double.parseDouble(quantityDom) > qtyAvilable)
{
errCode = "VTSTOCK2";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
else if(validateAllDetailQty(saleOrder, lineNoSord, dom2, conn))
{
errCode = "INVQUANTY";
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}
if ( pendingQtyDom == null || pendingQtyDom.trim().length() == 0 )
{
pendingQtyDom = "0";
......@@ -504,6 +543,7 @@ public class StockAllocIc extends ValidatorEJB implements StockAllocIcLocal, Sto
errList.add(errCode);
errFields.add(childNodeName.toLowerCase());
}
}
}
break;
......@@ -976,8 +1016,9 @@ public class StockAllocIc extends ValidatorEJB implements StockAllocIcLocal, Sto
+"AND (LOCATION.INV_STAT = INVSTAT.INV_STAT) "
+"AND INVSTAT.AVAILABLE = 'Y' "
+"AND STOCK.ITEM_CODE = ? AND STOCK.SITE_CODE = ? "
+"AND (STOCK.QUANTITY - STOCK.ALLOC_QTY - (CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END) > 0) "
+"AND STOCK.LOT_NO IN (SELECT LOT_NO FROM STOCK WHERE ITEM_CODE =? AND SITE_CODE =? AND LOT_NO = ? "
+"GROUP BY LOT_NO HAVING SUM(QUANTITY - ALLOC_QTY - (CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END) ) >= ?) "
+"GROUP BY LOT_NO HAVING SUM(QUANTITY - ALLOC_QTY - (CASE WHEN STOCK.HOLD_QTY IS NULL THEN 0 ELSE STOCK.HOLD_QTY END) ) > 0) "
+"AND (MONTHS_BETWEEN(TO_DATE(STOCK.EXP_DATE),SYSDATE) > ? ) ";
//+"AND NOT EXISTS (SELECT 1 FROM INV_RESTR I WHERE I.INV_STAT = INVSTAT.INV_STAT AND I.REF_SER = 'S-DSP' ) ";
......@@ -1022,16 +1063,16 @@ public class StockAllocIc extends ValidatorEJB implements StockAllocIcLocal, Sto
pstmt.setString(3,itemCode);
pstmt.setString(4,siteCode);
pstmt.setString(5,lotNo);
pstmt.setDouble(6,pendingQty);
pstmt.setInt(7,minSelfLife);
pstmt.setString(8,resrvLoc);
pstmt.setString(9,casePickLoc);
pstmt.setString(10,activePickLoc);
pstmt.setString(11,deepStoreLoc);
//pstmt.setDouble(6,pendingQty);
pstmt.setInt(6,minSelfLife);
pstmt.setString(7,resrvLoc);
pstmt.setString(8,casePickLoc);
pstmt.setString(9,activePickLoc);
pstmt.setString(10,deepStoreLoc);
if(isActives)
{
pstmt.setString(12,partialResrvLoc);
pstmt.setString(11,partialResrvLoc);
}
rs = pstmt.executeQuery();
......@@ -1368,4 +1409,72 @@ public class StockAllocIc extends ValidatorEJB implements StockAllocIcLocal, Sto
return dataVolumeMap;
}
//Changed by sumit on 21/12/12 quantity checking in all present deatil start.
private boolean validateAllDetailQty(String saleOrder, String lineNoSord, Document allDom, Connection conn) throws ITMException
{
double quantity = 0.0, qtyavil = 0.0;
boolean result = false;
NodeList parentNodeList = null, childNodeList = null;
Node parentNode = null, childNode = null;
int parentNodeListLength = 0;
String childNodeName = "";
String sql = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
parentNodeList = allDom.getElementsByTagName("Detail2");
parentNodeListLength = parentNodeList.getLength();
for (int row = 0; row < parentNodeList.getLength(); row++)
{
parentNode = parentNodeList.item(row);
childNodeList = parentNode.getChildNodes();
System.out.println("*****SUMIT******** first For loop *************["+ parentNode.getNodeName() + "]");
for (int col = 0; col < childNodeList.getLength(); col++)
{
childNode = childNodeList.item(col);
if (childNode.getNodeType() == childNode.ELEMENT_NODE)
{
childNodeName = childNode.getNodeName();
System.out.println("childNodeNamechildNodeName ** ["+childNodeName+"]");
if ("quantity".equalsIgnoreCase(childNodeName))
{
//arryList.add(childNode.getFirstChild().getNodeValue().trim());
quantity = quantity + Double.parseDouble(childNode.getFirstChild().getNodeValue());
}
}
}
}
sql = "SELECT (QUANTITY - QTY_ALLOC) AS AVILQTY FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_NO = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, saleOrder);
pstmt.setString(2, lineNoSord);
rs = pstmt.executeQuery();
if( rs.next())
{
qtyavil = rs.getDouble("AVILQTY");
}
rs.close();rs = null;
pstmt.close();
pstmt=null;
System.out.println(" quantity ["+quantity+"] qtyavil["+qtyavil+"]");
if(quantity > qtyavil )
{
result = true;
}
}
catch(Exception e)
{
e.printStackTrace();
throw new ITMException(e);
}
return result;
}
//Changed by sumit on 21/12/12 quantity checking in all present deatil end.
}
......@@ -25,6 +25,7 @@ import java.util.Calendar;
import java.util.HashMap;
import javax.ejb.Stateless;
import javax.naming.PartialResultException;
@Stateless
public class StockAllocPrc extends ActionHandlerEJB implements StockAllocPrcLocal, StockAllocPrcRemote//SessionBean {
......@@ -33,14 +34,14 @@ public class StockAllocPrc extends ActionHandlerEJB implements StockAllocPrcLoca
public String confirm(String tranId,String xtraParams, String forcedFlag) throws RemoteException,ITMException
{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
PreparedStatement pstmt = null, pstmt1 = null ;
ResultSet rs = null, rs1 = null;
String sql = "";
String confirm = "";
String errString = "" ;
ConnDriver connDriver = null;
ITMDBAccessEJB itmDBAccessEJB = null;
double availQty =0.0;//Added by sumit on 21/12/12
try
{
itmDBAccessEJB = new ITMDBAccessEJB();
......@@ -68,8 +69,50 @@ public class StockAllocPrc extends ActionHandlerEJB implements StockAllocPrcLoca
return errString;
}
else
{
//Changed by sumit on 21/12/12 checking sord_alloc_det quantity start.
//errString = this.sorderAllocate(tranId,xtraParams,conn);
sql = "SELECT SALE_ORDER, LINE_NO__SORD, SUM(QUANTITY) FROM SORD_ALLOC_DET WHERE TRAN_ID = ? " +
" GROUP BY SALE_ORDER, LINE_NO__SORD ORDER BY SALE_ORDER, LINE_NO__SORD";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
sql = "SELECT (QUANTITY - QTY_ALLOC) AS TOBEALLOC FROM SORDITEM WHERE SALE_ORDER = ? AND LINE_NO = ?";
pstmt1 = conn.prepareStatement(sql);
while( rs.next())
{
pstmt1.setString(1, rs.getString("SALE_ORDER"));
pstmt1.setString(2, rs.getString("LINE_NO__SORD"));
rs1 = pstmt1.executeQuery();
if(rs1.next())
{
availQty = rs1.getDouble("TOBEALLOC");
}
rs1.close();rs1 = null;
pstmt1.clearParameters();
System.out.println("["+rs.getDouble(3)+"] SUM(QUANTITY) in sord_alloc_det and avilqty ["+availQty+"]");
if( rs.getDouble(3) < availQty )
{
errString = this.sorderAllocate(tranId,xtraParams,conn);
}
else
{
errString = itmDBAccessEJB.getErrorString("","INVQUANTY","");
return errString;
}
}
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
pstmt.close();pstmt = null;
rs.close();rs = null;
//Changed by sumit on 21/12/12 checking sord_alloc_det quantity end.
if(errString != null && errString.trim().length() > 0)
{
return errString;
......@@ -107,6 +150,18 @@ public class StockAllocPrc extends ActionHandlerEJB implements StockAllocPrcLoca
pstmt.close();
pstmt = null;
}
//Changed by sumit on 21/12/12 start
if(pstmt1 != null)
{
pstmt1.close();
pstmt1 = null;
}
if(rs1 != null)
{
rs1.close();
rs1 = null;
}
//Changed by sumit on 21/12/12 end
conn.close();
conn = null;
}
......
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