Commit c362ff68 authored by dpawar's avatar dpawar

update source code


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@97621 ce508802-f39f-4f6c-b175-0d175dae99d5
parent a3204917
......@@ -24,12 +24,13 @@ import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.*;
@javax.ejb.Stateless
public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, PickIssICRemote
public class MultiplePtcnWiz extends ValidatorEJB implements MultiplePtcnWizLocal, MultiplePtcnWizRemote
{
/**
* The method is defined without any parameter and returns blank string
*/
@Override
public String wfValData() throws RemoteException, ITMException
{
return "";
......@@ -155,6 +156,12 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
{
remarks = checkNull(genericUtility.getColumnValue("remarks",dom));
System.out.println("remarks l---------->>["+remarks.length()+"]");
if(remarks.length() > 60)
{
errCode = "VTREMKL";//Entered remarks should not be greater than 60 character.
errList.add( errCode );
errFields.add( childNodeName.toLowerCase() );
}
}
......@@ -434,11 +441,14 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
else if("quantity".equalsIgnoreCase(childNodeName))
{
String itemCode = "",lineNoSord = "",pickType = "",locCodeL = "";
String itemCode = "",lineNoPickord = "",pickType = "",locCodeL = "";
double ordQuantity = 0,quantityL = 0;
System.out.println("quantity validation............");
qtyStr = checkNull(genericUtility.getColumnValue("quantity",dom2,"3"));
locCodeL = checkNull(genericUtility.getColumnValue("loc_code",dom2,"3"));
lineNoPickord = genericUtility.getColumnValue("pick_ord__line_no",dom2,"3");
lineNoPickord = lineNoPickord == null ? "" :lineNoPickord;
System.out.println("lineNoPickord----->>["+lineNoPickord+"]");
//lineNoSord = checkNull(genericUtility.getColumnValue("line_no__sord",dom2,"3"));
qtyStr = qtyStr.length() == 0 ? "0" :qtyStr;
......@@ -449,6 +459,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
itemCode = checkNull(genericUtility.getColumnValue("item_code",dom2,"3"));
System.out.println("itemCode----->>["+itemCode+"]");
if (qtyStr == null || "null".equals(qtyStr) || qtyStr.trim().length() == 0)
{
qtyStr = "0";
......@@ -461,14 +472,15 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
else
{
pickType = checkNull(getColumnDescr(conn, "PICK_TYPE", "PICK_ORD_HDR", "PICK_ORDER", pickOrder));
sql = "SELECT (QUANTITY - CASE WHEN DEALLOC_QTY IS NULL THEN 0 ELSE DEALLOC_QTY END ) AS QUANTITY " +
" ,NO_ART FROM PICK_ORD_DET WHERE PICK_ORDER = ? AND ITEM_CODE = ? AND LOC_CODE = ?";
" ,NO_ART FROM PICK_ORD_DET WHERE PICK_ORDER = ? AND LINE_NO = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, pickOrder);
pstmt.setString(2, itemCode);
pstmt.setString(3, locCodeL);
pstmt.setString(2, lineNoPickord);
rs = pstmt.executeQuery();
if(rs.next())
{
......@@ -533,7 +545,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
catch ( Exception e )
{
System.out.println ( "Exception: PickIssIC: wfValData( Document currFormDataDom ): " + e.getMessage() + ":" );
System.out.println ( "Exception: MultiplePtcnWiz: wfValData( Document currFormDataDom ): " + e.getMessage() + ":" );
//throw new ITMException(e);
e.printStackTrace();
}
......@@ -549,7 +561,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
catch(Exception e)
{
System.out.println( "Exception : PickIssIC:wfValData : " + e.getMessage() );
System.out.println( "Exception : MultiplePtcnWiz:wfValData : " + e.getMessage() );
throw new ITMException(e);
}
}
......@@ -652,10 +664,10 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
catch (Exception e)
{
System.out.println ( "Exception :PickIssIC :itemChanged(String,String):" + e.getMessage() + ":" );
System.out.println ( "Exception :MultiplePtcnWiz :itemChanged(String,String):" + e.getMessage() + ":" );
throw new ITMException(e);
}
System.out.println ( "returning from PickIssIC itemChanged \n[" + errString + "]" );
System.out.println ( "returning from MultiplePtcnWiz itemChanged \n[" + errString + "]" );
return errString;
}
......@@ -684,9 +696,10 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
String remarks = "" , chgUser = "",chgTerm = "",loginCode= "",loginEmpCode = "",loginSite = "",empCodeUser = "";
String siteCodeShip = "", waveId = "",refId = "",status = "",saleOrder = "",ptcnL = "" ;
int currentFormNo = 0;
int multiCnt = 0;
System.out.println("xtraParams=["+xtraParams+"]");
System.out.println("MultiplePtcnWizCalled123........................... : ["+currentColumn+"]");
int lineNo = 1;
int lineNoPickOrd = 0;
DistCommon distCommon = new DistCommon();
CommonWmsUtil CommonWmsUtilObj = CommonWmsUtil.getInstance();
GenericUtility genericUtility = GenericUtility.getInstance();
......@@ -707,6 +720,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
String dbDateFormat = genericUtility.getDBDateFormat();
String applDateFormat = genericUtility.getApplDateFormat();
System.out.println("loginEmpCode---->>["+loginEmpCode+"] chgUser---->>["+chgUser+"]");
ConnDriver connDriver = new ConnDriver();
conn = connDriver.getConnectDB( "DriverITM" );
connDriver = null;
......@@ -727,11 +741,12 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
{
System.out.println("in itm_default.........."+loginSite);
sql = "SELECT TRAN_ID,TRAN_DATE,SITE_CODE,CONFIRMED,REMARKS,EMP_CODE__USER,STATUS,STATUS_DATE FROM MULTI_PICK_ISS "
+ "WHERE CHG_USER = ? "
+ "WHERE CHG_USER = ? AND SITE_CODE = ? "
+ "AND CASE WHEN CONFIRMED IS NULL THEN 'N' ELSE CONFIRMED END = 'N'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,chgUser);
pstmt.setString(2,loginSite);
rs = pstmt.executeQuery();
if(rs.next())
{
......@@ -809,13 +824,13 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
System.out.println("allFormDataDom------>>["+genericUtility.serializeDom(allFormDataDom)+"]");
if( currentColumn.trim().equalsIgnoreCase( "itm_default" ) )
{
String lineNoStr = "";
System.out.println("in itm_default@@@@@.........."+tranId);
if(tranId.length() > 0)
{
int domID = 0;
sql = "SELECT LINE_NO,WAVE_ID,SALE_ORDER,PTCN FROM "
+ "MULTI_PICK_ISS_HDR WHERE TRAN_ID = ?";
pstmt = conn.prepareStatement(sql);
......@@ -823,12 +838,11 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
rs = pstmt.executeQuery();
while(rs.next())
{
domID++;
lineNoStr = checkNull(rs.getString("LINE_NO"));
waveId = checkNull(rs.getString("WAVE_ID"));
saleOrder = checkNull(rs.getString("SALE_ORDER"));
ptcnL = checkNull(rs.getString("PTCN"));
valueXmlString.append("<Detail2 domID='"+domID+"' selected=\"Y\">\r\n");
valueXmlString.append("<Detail2 domID='"+lineNoStr+"' selected=\"Y\">\r\n");
valueXmlString.append("<attribute selected=\"Y\" updateFlag=\"E\" status=\"O\" pkNames=\"\" />\r\n");
valueXmlString.append( "<tran_id><![CDATA[" ).append( tranId ).append( "]]></tran_id>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( lineNoStr ).append( "]]></line_no>\r\n" );
......@@ -845,16 +859,47 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
else
{
//System.out.println("in else$$$$$$..............");
valueXmlString.append("<Detail2 domID='1' selected=\"N\">\r\n");
valueXmlString.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\" />\r\n");
System.out.println("----------in else statement------------------");
sql = "SELECT D.LINE_NO,D.WAVE_ID,D.SALE_ORDER,D.PTCN FROM MULTI_PICK_ISS H,MULTI_PICK_ISS_HDR D"
+ " WHERE H.TRAN_ID = D.TRAN_ID AND H.CHG_USER = ? "
+ "AND CASE WHEN H.CONFIRMED IS NULL THEN 'N' ELSE H.CONFIRMED END = 'N'";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, chgUser);
rs = pstmt.executeQuery();
while(rs.next())
{
multiCnt++;
lineNoStr = checkNull(rs.getString("LINE_NO"));
waveId = checkNull(rs.getString("WAVE_ID"));
saleOrder = checkNull(rs.getString("SALE_ORDER"));
ptcnL = checkNull(rs.getString("PTCN"));
valueXmlString.append("<Detail2 domID='"+lineNoStr+"' selected=\"Y\">\r\n");
valueXmlString.append("<attribute selected=\"Y\" updateFlag=\"E\" status=\"O\" pkNames=\"\" />\r\n");
valueXmlString.append( "<tran_id><![CDATA[" ).append( tranId ).append( "]]></tran_id>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( lineNoStr ).append( "]]></line_no>\r\n" );
valueXmlString.append( "<ptcn><![CDATA[" ).append( ptcnL ).append( "]]></ptcn>\r\n" );
valueXmlString.append( "<sale_order><![CDATA[" ).append( saleOrder ).append( "]]></sale_order>\r\n" );
valueXmlString.append( "<wave_id><![CDATA[" ).append( waveId ).append( "]]></wave_id>\r\n" );
valueXmlString.append("</Detail2>\r\n");
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("multiCnt----->>"+multiCnt);
if(multiCnt == 0)
{
//valueXmlString.append("<Detail2 domID='1' selected=\"N\">\r\n");
//valueXmlString.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\" />\r\n");
//valueXmlString.append( "<tran_id><![CDATA[" ).append( tranId ).append( "]]></tran_id>\r\n" );
//valueXmlString.append( "<ptcn><![CDATA[" ).append( ptcnL ).append( "]]></ptcn>\r\n" );
/*valueXmlString.append( "<line_no><![CDATA[" ).append( lineNo ).append( "]]></line_no>\r\n" );
valueXmlString.append( "<sale_order><![CDATA[" ).append( saleOrder ).append( "]]></sale_order>\r\n" );
valueXmlString.append( "<wave_id><![CDATA[" ).append( waveId ).append( "]]></wave_id>\r\n" );*/
valueXmlString.append("</Detail2>\r\n");
//valueXmlString.append("</Detail2>\r\n");
}
}
sql = "";
......@@ -862,11 +907,18 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
if( currentColumn.trim().equalsIgnoreCase( "ptcn" ) )
{
System.out.println("------------PTCN item change@@@------------------");
System.out.println("hdrDataDom PTCN------->>["+genericUtility.serializeDom(hdrDataDom)+"]");
System.out.println("currFormDataDom PTCN------>>["+genericUtility.serializeDom(currFormDataDom)+"]");
System.out.println("allFormDataDom PTCN------>>["+genericUtility.serializeDom(allFormDataDom)+"]");
int lineNoL = 0 ;
String ptcn = checkNull(genericUtility.getColumnValue( "ptcn", allFormDataDom ));
tranId = checkNull(genericUtility.getColumnValue( "tran_id", hdrDataDom ));
String line_no = checkNull(genericUtility.getColumnValue( "line_no", allFormDataDom ));
String line_no1 = checkNull(genericUtility.getColumnValue( "line_no", currFormDataDom ));
System.out.println("line_no----->>"+line_no+" line_no1:["+line_no1+"]");
System.out.println("in ptcn item change.............. : "+ptcn+" ["+tranId+"]");
sql = "SELECT WAVE_ID,REF_ID,STATUS,SALE_ORDER FROM WAVE_TASK_DET WHERE PTCN = ?";
pstmt = conn.prepareStatement(sql);
......@@ -883,16 +935,17 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
rs = null;
pstmt.close();
pstmt = null;
if(tranId.length() > 0)
if(tranId.length() > 0 && line_no1.length() == 0)
{
System.out.println("tranId.length() > 0 && line_no1.length() == 0----->>"+line_no1);
int lineNoMax = getMaxLineNo(tranId,conn);
lineNoMax++;
String sale_order = checkNull(genericUtility.getColumnValue( "sale_order", allFormDataDom ));
String wave_id = checkNull(genericUtility.getColumnValue( "wave_id", allFormDataDom ));
String line_no = checkNull(genericUtility.getColumnValue( "line_no", allFormDataDom ));
System.out.println("sale_order----->>"+sale_order);
System.out.println("wave_id----->>"+wave_id);
System.out.println("line_no----->>"+line_no);
valueXmlString.append("<Detail2 domID='"+lineNoMax+"' selected=\"N\">\r\n");
valueXmlString.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\" />\r\n");
......@@ -903,10 +956,25 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
valueXmlString.append( "<wave_id><![CDATA[" ).append( waveId).append( "]]></wave_id>\r\n" );
valueXmlString.append("</Detail2>\r\n");
}
else if(tranId.length() > 0 && line_no1.length() > 0)
{
System.out.println("tranId.length() > 0 && line_no1.length() > 0----->>"+line_no1);
int lineNoMax = Integer.parseInt(line_no1);
//valueXmlString.append("<Detail2 domID='"+lineNoMax+"' selected=\"N\">\r\n");
//valueXmlString.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\" />\r\n");
valueXmlString.append("<Detail2 domID='"+lineNoMax+"' selected=\"Y\">\r\n");
valueXmlString.append("<attribute selected=\"Y\" updateFlag=\"E\" status=\"O\" pkNames=\"\" />\r\n");
valueXmlString.append( "<tran_id><![CDATA[" ).append( tranId ).append( "]]></tran_id>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( lineNoMax ).append( "]]></line_no>\r\n" );
valueXmlString.append( "<ptcn><![CDATA[" ).append(ptcn ).append( "]]></ptcn>\r\n" );
valueXmlString.append( "<sale_order><![CDATA[" ).append( saleOrder).append( "]]></sale_order>\r\n" );
valueXmlString.append( "<wave_id><![CDATA[" ).append( waveId).append( "]]></wave_id>\r\n" );
valueXmlString.append("</Detail2>\r\n");
}
else
{
//lineNoL = getLineNo(allFormDataDom);
lineNoL = getMaxLineNo(conn);
lineNoL = getMaxLineNo(conn,chgUser);
lineNoL++;
System.out.println("lineNoL in getLineNo----->>"+lineNoL);
......@@ -920,13 +988,17 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
valueXmlString.append("</Detail2>\r\n");
}
}
if( currentColumn.trim().equalsIgnoreCase( "itm_default_add" ) )
{
System.out.println("itm_default_add item change22..............");
System.out.println("allFormDataDom@@------->>["+genericUtility.serializeDom(allFormDataDom)+"]");
NodeList nodeList = allFormDataDom.getElementsByTagName("Detail2");
System.out.println("sds : "+nodeList.item(0).getNodeName());
String domIdLL = nodeList.item(0).getAttributes().getNamedItem("domID").getNodeValue();
System.out.println("domIdLL=="+domIdLL);
tranId = checkNull(genericUtility.getColumnValue( "tran_id", hdrDataDom ));
int lineNoL = 0, lineNoMax = 0 ;
if(tranId.length() > 0)
......@@ -937,19 +1009,20 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
valueXmlString.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\" />\r\n");
valueXmlString.append( "<tran_id><![CDATA[" ).append( tranId ).append( "]]></tran_id>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( lineNoMax ).append( "]]></line_no>\r\n" );
valueXmlString.append( "<ptcn><![CDATA[]]></ptcn>\r\n" );
valueXmlString.append("</Detail2>\r\n");
}
else
{
//lineNoMax = getLineNo(allFormDataDom);
lineNoMax = getMaxLineNo(conn);
lineNoMax = getMaxLineNo(conn,chgUser);
lineNoMax++;
System.out.println("lineNoMax@----->>"+lineNoMax);
valueXmlString.append("<Detail2 domID='"+lineNoMax+"' selected=\"N\">\r\n");
valueXmlString.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\" />\r\n");
valueXmlString.append( "<ptcn><![CDATA[]]></ptcn>\r\n" );
//valueXmlString.append( "<tran_id><![CDATA[" ).append( tranId ).append( "]]></tran_id>\r\n" );
//valueXmlString.append( "<line_no><![CDATA[" ).append( lineNoMax ).append( "]]></line_no>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( lineNoMax ).append( "]]></line_no>\r\n" );
valueXmlString.append("</Detail2>\r\n");
}
......@@ -961,9 +1034,9 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
case 3://Case 3. Start
{
System.out.println("item change form 3........");
ArrayList<String> ptcnList = null;
ArrayList<String> ptcnList = new ArrayList<String>();
ArrayList<String> detailList = null;
HashMap<String,String> ptcnMap =new HashMap<String,String>();
String pickOrder = "" ,saleOrderL = "",itemCode = "" ,locCode = "" ,lotNo = "" ,lotSl = "",subSql = "",
ptcnNo = "" ,mark = "",cartonNo = "",itemDescr = "",outerCartenNo = "",sorderLine = "",stkOpt = "";
int noArt = 0,count = 0,domId = 0,pstmtCount=0 ;
......@@ -979,35 +1052,47 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
if( currentColumn.trim().equalsIgnoreCase( "itm_default" ) )
{
System.out.println("item change form 3........itm_default");
ptcnMap = getPtcnNo(allFormDataDom, "2",tranId,conn);
System.out.println("ptcnMap@----->"+ptcnMap);
for(Map.Entry<String, String> entry : ptcnMap.entrySet())
ptcnList = getPtcnNo(allFormDataDom, "2",tranId,conn);
System.out.println("ptcnList@----->"+ptcnList);
for(String temp : ptcnList)
{
subSql = subSql + ","+temp;
}
if(subSql !=null && subSql.length() > 0)
{
subSql = subSql + ","+entry.getValue();
subSql = subSql.substring(1,subSql.length());
}
subSql = subSql.substring(1,subSql.length()) ;
System.out.println("@@@ sql in @@@ :["+subSql+"]");
StringBuffer sqlBuf = new StringBuffer();
sqlBuf.append("SELECT PODET.SALE_ORDER,PODET.LINE_NO__SORD,PODET.PICK_ORDER,PODET.LINE_NO,PODET.ITEM_CODE,PODET.SITE_CODE,PODET.LOC_CODE,PODET.LOT_NO, "
sqlBuf.append("SELECT W.PTCN, PODET.SALE_ORDER,PODET.LINE_NO__SORD,PODET.PICK_ORDER,PODET.LINE_NO,PODET.ITEM_CODE,PODET.SITE_CODE,PODET.LOC_CODE,PODET.LOT_NO, "
+ "PODET.LOT_SL, PODET.NO_ART, (PODET.QUANTITY - (CASE WHEN PODET.DEALLOC_QTY IS NULL THEN 0 ELSE PODET.DEALLOC_QTY END )) AS "
+ "QUANTITY ,PODET.CARTON_NO, PODET.DEALLOC_QTY,PODET.PACK_CODE, ITEM.DESCR ITEM_DESCR, ITEM.UNIT UNIT, LOC_CODE__TO "
+ "FROM PICK_ORD_DET PODET, ITEM ITEM WHERE PODET.PICK_ORDER IN "
+ "(SELECT REF_ID FROM WAVE_TASK_DET WHERE PTCN IN (");
+ "FROM PICK_ORD_DET PODET, ITEM ITEM,WAVE_TASK_DET W WHERE W.PTCN IN (");
for(Map.Entry<String, String> entry : ptcnMap.entrySet())
for(String temp : ptcnList)
{
mark = mark + "?,";
}
if(mark !=null && mark.length() > 0)
{
mark = mark.substring(0,mark.length() - 1);
}
sqlBuf.append(mark);
sqlBuf.append( ") AND STATUS = 'N' AND WAVE_STATUS = 'C' AND REF_SER IN ('A-PICK','C-PICK','M-PICK')) "
+ "AND PODET.ITEM_CODE = ITEM.ITEM_CODE AND (PODET.QUANTITY - (CASE WHEN PODET.DEALLOC_QTY IS NULL THEN 0 ELSE PODET.DEALLOC_QTY END )) > 0 "
+ "ORDER BY PODET.LOC_CODE, PODET.ITEM_CODE");
sqlBuf.append( " ) AND W.STATUS = 'N' AND W.WAVE_STATUS = 'C' AND W.REF_SER IN ('A-PICK','C-PICK','M-PICK') ");
sqlBuf.append(" AND PODET.ITEM_CODE = ITEM.ITEM_CODE ");
sqlBuf.append("AND PODET.PICK_ORDER = W.REF_ID AND (PODET.QUANTITY - (CASE WHEN PODET.DEALLOC_QTY IS NULL THEN 0 ELSE PODET.DEALLOC_QTY END )) > 0 ");
sqlBuf.append("ORDER BY PODET.LOC_CODE, PODET.ITEM_CODE");
System.out.println("sqlBuf : "+sqlBuf.toString());
pstmt = conn.prepareStatement(sqlBuf.toString());
for(Map.Entry<String, String> entry : ptcnMap.entrySet())
for(String temp : ptcnList)
{
pstmt.setString(++pstmtCount,entry.getValue());
pstmt.setString(++pstmtCount,temp);
}
rs =pstmt.executeQuery();
......@@ -1018,9 +1103,10 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
{
detailList = new ArrayList<String>();
domId++;
ptcnNo = checkNull(rs.getString("PTCN"));
saleOrderL = checkNull(rs.getString("SALE_ORDER"));
pickOrder = checkNull(rs.getString("PICK_ORDER"));
lineNo = rs.getInt("LINE_NO");
lineNoPickOrd = rs.getInt("LINE_NO");
itemCode = checkNull(rs.getString("ITEM_CODE"));
siteCode = checkNull(rs.getString("SITE_CODE"));
locCode = checkNull(rs.getString("LOC_CODE"));
......@@ -1048,10 +1134,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
ptcnNo = ptcnList.get(count);
}*/
count++;
if(ptcnMap !=null && ptcnMap.size() > 0)
{
ptcnNo = ptcnMap.get(saleOrderL);
}
int cnt = getDBRowCount(conn, "MULTI_PICK_ISS_DET", "TRAN_ID", tranId);
System.out.println("MULTI_PICK_ISS_DET cnt1----->>["+cnt+"]");
if(cnt==0)
......@@ -1078,7 +1161,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
//valueXmlString.append("<attribute selected=\"Y\" updateFlag=\"E\" status=\"O\" pkNames=\"\" />\r\n");
valueXmlString.append( "<tran_id><![CDATA[" ).append( "").append( "]]></tran_id>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( lineNo).append( "]]></line_no>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( domId).append( "]]></line_no>\r\n" );
/*valueXmlString.append( "<site_code><![CDATA[" ).append( siteCode).append( "]]></site_code>\r\n" );
siteCodeDescr = checkNull(getColumnDescr(conn, "descr", "site", "site_code", siteCode));
valueXmlString.append( "<site_descr><![CDATA[" ).append( siteCodeDescr).append( "]]></site_descr>\r\n" );
......@@ -1112,6 +1195,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
valueXmlString.append( "<no_art><![CDATA[" ).append( noArt == 0 ? "" : noArt).append( "]]></no_art>\r\n" );
valueXmlString.append( "<line_no__sord><![CDATA[" ).append( sorderLine).append( "]]></line_no__sord>\r\n" );
valueXmlString.append( "<pick_ord__line_no><![CDATA[" ).append( lineNoPickOrd).append( "]]></pick_ord__line_no>\r\n" );
valueXmlString.append( "<carton_no><![CDATA[" ).append( cartonNo).append( "]]></carton_no>\r\n" );
valueXmlString.append( "<dealloc_qty><![CDATA[" ).append( deAllQuantity).append( "]]></dealloc_qty>\r\n" );
......@@ -1129,9 +1213,10 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
while(rs.next())
{
domId++;
ptcnNo = checkNull(rs.getString("PTCN"));
saleOrderL = checkNull(rs.getString("SALE_ORDER"));
pickOrder = checkNull(rs.getString("PICK_ORDER"));
lineNo = rs.getInt("LINE_NO");
lineNoPickOrd = rs.getInt("LINE_NO");
itemCode = checkNull(rs.getString("ITEM_CODE"));
siteCode = checkNull(rs.getString("SITE_CODE"));
locCode = checkNull(rs.getString("LOC_CODE"));
......@@ -1158,15 +1243,21 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
ptcnNo = ptcnList.get(count);
}*/
count++;
if(ptcnMap !=null && ptcnMap.size() > 0)
if(isScanningDone(siteCode,saleOrderL,ptcnNo,itemCode,pickOrder,locCode,lotNo,tranId,conn))
{
ptcnNo = ptcnMap.get(saleOrderL);
valueXmlString.append("<Detail3 domID='"+domId+"' selected=\"Y\">\r\n");
valueXmlString.append("<attribute selected=\"Y\" updateFlag=\"E\" status=\"O\" pkNames=\"\" />\r\n");
}
else
{
valueXmlString.append("<Detail3 domID='"+domId+"' selected=\"N\">\r\n");
valueXmlString.append("<attribute selected=\"N\" updateFlag=\"A\" status=\"N\" pkNames=\"\" />\r\n");
}
valueXmlString.append( "<tran_id><![CDATA[" ).append( "").append( "]]></tran_id>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( lineNo).append( "]]></line_no>\r\n" );
valueXmlString.append( "<line_no><![CDATA[" ).append( domId).append( "]]></line_no>\r\n" );
valueXmlString.append( "<site_code><![CDATA[" ).append( siteCode).append( "]]></site_code>\r\n" );
siteCodeDescr = checkNull(getColumnDescr(conn, "descr", "site", "site_code", siteCode));
valueXmlString.append( "<site_descr><![CDATA[" ).append( siteCodeDescr).append( "]]></site_descr>\r\n" );
......@@ -1183,6 +1274,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
valueXmlString.append( "<no_art><![CDATA[" ).append( noArt == 0 ? "" : noArt).append( "]]></no_art>\r\n" );
valueXmlString.append( "<line_no__sord><![CDATA[" ).append( sorderLine).append( "]]></line_no__sord>\r\n" );
valueXmlString.append( "<pick_ord__line_no><![CDATA[" ).append( lineNoPickOrd).append( "]]></pick_ord__line_no>\r\n" );
valueXmlString.append( "<carton_no><![CDATA[" ).append( cartonNo).append( "]]></carton_no>\r\n" );
valueXmlString.append( "<dealloc_qty><![CDATA[" ).append( deAllQuantity).append( "]]></dealloc_qty>\r\n" );
......@@ -1391,7 +1483,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
} //end for
System.out.println("ptcnList in isExistPtcn----->>"+ptcnList);
System.out.println("ptcnList in isExistPtcn@----->>"+ptcnList);
if(ptcnList !=null && ptcnList.size() > 0)
{
Set<String> uniqueSet = new HashSet<String>(ptcnList);
......@@ -1426,10 +1518,13 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
System.out.println("@@@@test :count::::["+count+"]");
if(count > 0)
{
isExist = true;
return true;
}
}
}
}
}
......@@ -1443,20 +1538,22 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
{
ResultSet rs = null;
PreparedStatement pstmt = null;
String sql = "";
String sql = "",lineNoS = "";
int lineNo = 0;
try
{
sql ="SELECT MAX(LINE_NO) FROM MULTI_PICK_ISS_HDR WHERE TRAN_ID = ?";
sql ="SELECT MAX(LINE_NO) FROM MULTI_PICK_ISS_HDR WHERE TRAN_ID = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
rs = pstmt.executeQuery();
if(rs.next())
{
lineNo = rs.getInt(1);
lineNoS = checkNull(rs.getString(1));
}
rs.close();
rs = null;
lineNoS = lineNoS.length() == 0 ? "0" :lineNoS;
lineNo = Integer.parseInt(lineNoS);
}
catch(Exception e)
{
......@@ -1464,10 +1561,9 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
}
return lineNo;
}
public HashMap<String,String> getPtcnNo(Document dom, String formNo,String tranId,Connection conn)
public ArrayList<String> getPtcnNo(Document dom, String formNo,String tranId,Connection conn)
{
ArrayList<String> colVal = new ArrayList<String>();
HashMap<String,String> colMap = new HashMap<String,String>();
NodeList parentNodeList = null;
NodeList childNodeList = null;
Node parentNode = null;
......@@ -1487,13 +1583,13 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
System.out.println("tranId in detail3--------->>["+tranId+"]");
if(tranId.length() > 0)
{
sql = "SELECT SALE_ORDER,PTCN FROM MULTI_PICK_ISS_HDR WHERE TRAN_ID = ?";
sql = "SELECT PTCN FROM MULTI_PICK_ISS_HDR WHERE TRAN_ID = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
while(rs.next())
{
colMap.put(checkNull(rs.getString("SALE_ORDER")),checkNull(rs.getString("PTCN")));
colVal.add(checkNull(rs.getString(1)));
}
}
......@@ -1516,7 +1612,7 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
ptcn = checkNull(eElement.getElementsByTagName("ptcn").item(0).getTextContent());
saleOrder = checkNull(eElement.getElementsByTagName("sale_order").item(0).getTextContent());
System.out.println("sale_order0----->"+saleOrder+ " PTCN --->["+ptcn+"]");
colMap.put(saleOrder,ptcn);
colVal.add(ptcn);
}
}
}
......@@ -1542,17 +1638,19 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
System.out.println("Exception : [getPtcnNo(2)] :==>\n"+e.getMessage());
}
System.out.println("Return map from getPtcnNo------>>"+colMap);
return colMap;
System.out.println("Return List from getPtcnNo------>>"+colVal);
return colVal;
}
private int getMaxLineNo (Connection conn) throws Exception
private int getMaxLineNo (Connection conn,String user) throws Exception
{
ResultSet rs = null;
PreparedStatement pstmt = null;
String sql = "",maxTranId = "";
String sql = "",maxTranId = "",lineNoStr = "";
int maxLineNo = 0;
sql = "SELECT MAX(TRAN_ID) FROM MULTI_PICK_ISS";
sql = "SELECT MAX(TRAN_ID) FROM MULTI_PICK_ISS WHERE CHG_USER = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user);
rs= pstmt.executeQuery();
if(rs.next())
{
......@@ -1563,21 +1661,22 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
pstmt.close();
pstmt = null;
sql = "SELECT (CASE WHEN MAX(LINE_NO) IS NULL THEN 0 ELSE MAX(LINE_NO) END)"
+ " AS LINE_MAX FROM MULTI_PICK_ISS_HDR WHERE TRAN_ID = ? ";
sql = "SELECT MAX(LINE_NO) AS LINE_MAX FROM MULTI_PICK_ISS_HDR WHERE TRAN_ID = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, maxTranId);
rs= pstmt.executeQuery();
if(rs.next())
{
maxLineNo = rs.getInt(1);
lineNoStr = checkNull(rs.getString(1));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
lineNoStr = lineNoStr.length() == 0 ? "0" : lineNoStr;
maxLineNo = Integer.parseInt(lineNoStr);
return maxLineNo;
}
......@@ -1587,9 +1686,14 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
PreparedStatement pstmt = null;
String sql = "";
int count = 0;
tranId =tranId ==null ?"":tranId.trim();
System.out.println("in isScanningDone--------->"+tranId);
if(tranId.length() > 0)
{
sql = "SELECT COUNT(*) FROM MULTI_PICK_ISS_DET WHERE TRAN_ID = ? AND SITE_CODE = ? "
+ "AND PTCN = ? AND SALE_ORDER = ? AND PICK_ORDER = ? "
+ "AND ITEM_CODE = ? AND LOT_NO= ? AND LOC_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,tranId);
pstmt.setString(2,siteCode);
......@@ -1600,6 +1704,24 @@ public class MultiplePtcnWiz extends ValidatorEJB implements PickIssICLocal, Pic
pstmt.setString(6,itemCode);
pstmt.setString(7,lotNo);
pstmt.setString(8,locCode);
}
else
{
sql = "SELECT COUNT(*) FROM MULTI_PICK_ISS_DET WHERE SITE_CODE = ? "
+ "AND PTCN = ? AND SALE_ORDER = ? AND PICK_ORDER = ? "
+ "AND ITEM_CODE = ? AND LOT_NO= ? AND LOC_CODE = ? ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,siteCode);
pstmt.setString(2,ptcnNo);
pstmt.setString(3,saleOrderL);
pstmt.setString(4,pickOrder);
pstmt.setString(5,itemCode);
pstmt.setString(6,lotNo);
pstmt.setString(7,locCode);
}
rs= pstmt.executeQuery();
if(rs.next())
......
......@@ -6,6 +6,7 @@ import ibase.webitm.ejb.*;
import ibase.webitm.ejb.dis.*;
import ibase.system.config.*;
import ibase.webitm.utility.ITMException;
import ibase.webitm.utility.wms.CommonWmsUtil;
import ibase.utility.CommonConstants;
import java.io.*;
......@@ -66,9 +67,9 @@ public class MultiplePtcnWizConf extends ActionHandlerEJB implements MultiplePtc
String itemCode = "",siteCode = "",locCode = "",lotNo = "",lotSl = "",locCodeTo = "",saleOrder = "",
lineNoSord = "",replOrder = "",pickType = "",dExpLev = "",remarks = "",dimension = "";
String acctCodeDr = "",cctrCodeDr = "",packCode = "",siteCodeMfg = "",stagingLoc = "",
packInstr = "",suppCodeMfg = "",unitAlt = "",batchNo = "",unit = "",grade = "",
packInstr = "",suppCodeMfg = "",unitAlt = "",batchNo = "",unit = "",grade = "",stkOpt = "",
expLev = "",itemCodeOrd = "",itemRef = "",status = "",itemGrade = "",waveId = "",retString = "",
allocMode = "",reasCode = "",unitStd = "",sSQL = "",updateSql = "",ptcn = "",refSer = "";
allocMode = "",reasCode = "",unitStd = "",sSQL = "",updateSql = "",ptcn = "",refSer = "",lineNoStr = "";
int lineNoOrd= 0,lineNo= 0,updCnt = 0,rowsCount = 0;
double quantity = 0,noArt =0,stkGrossRate = 0,convQtyStduom = 0,batchSize = 0,holdQuantity = 0,stkRate = 0;
double shipperSize = 0, itemGrossWeight = 0, caseGrossWeight = 0, itemNetWeight = 0, caseNetWeight = 0,
......@@ -88,6 +89,7 @@ public class MultiplePtcnWizConf extends ActionHandlerEJB implements MultiplePtc
HashMap <String,String>dataMap = new HashMap<String,String>();
//ArrayList<String> ptcnScanList = new ArrayList<String>();
Set<String> ptcnScanSet = new HashSet<String>();
CommonWmsUtil CommonWmsUtilobj= CommonWmsUtil.getInstance();
try
{
currDate = new java.sql.Timestamp( System.currentTimeMillis() );
......@@ -160,6 +162,18 @@ public class MultiplePtcnWizConf extends ActionHandlerEJB implements MultiplePtc
itemCode = rs.getString( "ITEM_CODE" );
siteCode = rs.getString( "SITE_CODE" );
locCode = rs.getString( "LOC_CODE" );
if("2".equalsIgnoreCase(stkOpt))
{
lotNo = checkNull(rs.getString( "LOT_NO" ));
lotSl = checkNull(rs.getString( "LOT_SL" ));
}
else
{
lotNo = rs.getString( "LOT_NO" );
lotSl = rs.getString( "LOT_SL" );
}
lotNo = rs.getString( "LOT_NO" );
lotSl = rs.getString( "LOT_SL" );
quantity = rs.getDouble( "QUANTITY" );
......@@ -199,6 +213,11 @@ public class MultiplePtcnWizConf extends ActionHandlerEJB implements MultiplePtc
dataMap.put("pick_order", replOrder);
dataMap.put("pick_type", pickType);
dataMap.put("stag_loc", stagingLoc);
stkOpt = checkNull(CommonWmsUtilobj.getStockOption(itemCode, conn));
System.out.println("stkOpt-------->>["+stkOpt+"]");
if(lotNo == null || lotNo.trim().length() == 0)
{
lotNo =" ";
......@@ -208,7 +227,11 @@ public class MultiplePtcnWizConf extends ActionHandlerEJB implements MultiplePtc
lotSl = " ";
}
lineNo = rs.getInt( "LINE_NO" );
lineNoStr = checkNull(rs.getString( "LINE_NO" ));
pstmtStock.setString(1,itemCode);
......@@ -268,7 +291,7 @@ public class MultiplePtcnWizConf extends ActionHandlerEJB implements MultiplePtc
updateRowMap.put("rate",Double.toString(stkRate));
updateRowMap.put("gross_rate",Double.toString(stkGrossRate));
updateRowMap.put("tran_id", tranId );
updateRowMap.put("line_no", "" + lineNo );
updateRowMap.put("line_no", lineNoStr );
updateRowMap.put("tran_date", tranDate );
updateRowMap.put("tran_type","ID");
......@@ -709,7 +732,7 @@ public class MultiplePtcnWizConf extends ActionHandlerEJB implements MultiplePtc
pstmtUpdPickOrdDet = conn.prepareStatement(updatePickOrdSql);
pstmtUpdPickOrdDet.setString(1, stagingLoc);
pstmtUpdPickOrdDet.setString(2, tranId);
pstmtUpdPickOrdDet.setInt(3, lineNo);
pstmtUpdPickOrdDet.setString(3, lineNoStr);
updCntPickOrdDet = pstmtUpdPickOrdDet.executeUpdate();
......
......@@ -57,6 +57,7 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
MultiplePtcnWizConf MultiplePtcnWizConfobj = null;
NodeList parentNodeList = null;
ArrayList<String> sorderList = new ArrayList <String>();
ArrayList<String> ptcnList = new ArrayList <String>();
HashMap<String,Integer> sorderItemCountMap = new HashMap<String,Integer> ();
StringBuffer sqlBuf = new StringBuffer();
int pstmtCnt = 0;
......@@ -76,13 +77,16 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
dom = genericUtility.parseString(domString);
}
tranId =checkNull(tranId);
if(dom != null && tranId.length() == 0)
if(dom != null)
{
System.out.println("dom ins not null..............");
tranId = checkNull( genericUtility.getColumnValueFromNode("tran_id", dom.getElementsByTagName("Detail1").item(0)) );
System.out.println("tranId in dom >>>{"+tranId+"}");
if(tranId.length() == 0)
{
tranId = checkNull( genericUtility.getColumnValueFromNode("tran_id", dom.getElementsByTagName("Detail1").item(0)) );
}
System.out.println("tranId in dom >>>{"+tranId+"}");
parentNodeList = dom.getElementsByTagName("Detail2");
System.out.println("parentNode >>>{"+parentNode+"}");
int nodeCnt = parentNodeList.getLength();
......@@ -101,26 +105,21 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
Element eElement = (Element) childNode;
ptcn = checkNull(eElement.getElementsByTagName("ptcn").item(0).getTextContent());
System.out.println("ptcn --->> "+ptcn);
if(ptcn.length() > 0)
{
break;
}
//sorderList.add(ptcn);
ptcnList.add(ptcn);
}
}
}
}
}
ptcn = checkNull(ptcn);
System.out.println("tranId ptcn@-------->>["+tranId+"] ["+ptcn+"]");
if(ptcn.length() > 0)
System.out.println("ptcnList ptcn@-------->>["+tranId+"] ["+ptcnList+"]");
if(ptcnList.size() > 0 && tranId.length() == 0)
{
sql = "SELECT H.TRAN_ID FROM MULTI_PICK_ISS_HDR H,MULTI_PICK_ISS D "
+ "WHERE H.TRAN_ID = D.TRAN_ID AND H.PTCN = ? AND D.CONFIRMED = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, ptcn);
pstmt.setString(1, ptcnList.get(0));
pstmt.setString(2, "N");
rs = pstmt.executeQuery();
if(rs.next())
......@@ -132,21 +131,10 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
pstmt.close();
pstmt = null;
}
System.out.println("tranId List-------->>"+tranId);
sql = "SELECT PTCN FROM MULTI_PICK_ISS_DET WHERE TRAN_ID = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, tranId);
rs = pstmt.executeQuery();
while(rs.next())
{
sorderList.add(checkNull(rs.getString(1)));
}
rs.close();
rs = null;
pstmt.close();
pstmt = null;
System.out.println("saleOrder List-------->>"+sorderList);
if(sorderList.size() > 0)
System.out.println("tranId-------->>"+tranId);
System.out.println("ptcnList List-------->>"+ptcnList);
if(ptcnList.size() > 0)
{
/*SELECT * FROM PICK_ORD_DET WHERE PICK_ORDER IN
( SELECT REF_ID FROM WAVE_TASK_DET WHERE PTCN = 'PTCN000076' AND STATUS = 'N'
......@@ -156,7 +144,7 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
sqlBuf.append(" SELECT REF_ID FROM WAVE_TASK_DET WHERE PTCN in ( ");
for(int i = 0; i < sorderList.size(); i++)
for(int i = 0; i < ptcnList.size(); i++)
{
mark = mark + "?,";
}
......@@ -167,7 +155,7 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
sqlBuf.append("AND (QUANTITY - (CASE WHEN DEALLOC_QTY IS NULL THEN 0 ELSE DEALLOC_QTY END)) > 0");
System.out.println("sqlBuf : "+sqlBuf.toString());
pstmt = conn.prepareStatement(sqlBuf.toString());
for (String list : sorderList)
for (String list : ptcnList)
{
pstmt.setString(++pstmtCnt,list);
}
......@@ -288,7 +276,7 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
String acctCodeDr = "",cctrCodeDr = "",packCode = "",siteCodeMfg = "",stagingLoc = "",
packInstr = "",suppCodeMfg = "",unitAlt = "",batchNo = "",unit = "",grade = "",
expLev = "",itemCodeOrd = "",itemRef = "",status = "",itemGrade = "",
allocMode = "",reasCode = "",unitStd = "",sSQL = "",updateSql = "";
allocMode = "",reasCode = "",unitStd = "",sSQL = "",updateSql = "",lineNoStr= "";
int lineNoOrd= 0,lineNo= 0,updCnt = 0,rowsCount = 0;
double quantity = 0,noArt =0,stkGrossRate = 0,convQtyStduom = 0,batchSize = 0,holdQuantity = 0,stkRate = 0;
double shipperSize = 0, itemGrossWeight = 0, caseGrossWeight = 0, itemNetWeight = 0, caseNetWeight = 0,
......@@ -401,7 +389,7 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
lotSl = " ";
}
lineNo = rs.getInt( "LINE_NO" );
lineNoStr = rs.getString( "LINE_NO" );
pstmtStock.setString(1,itemCode);
......@@ -462,7 +450,7 @@ public class MultiplePtcnWizPos extends ValidatorEJB implements MultiplePtcnWizP
updateRowMap.put("gross_rate",Double.toString(stkGrossRate));
updateRowMap.put("tran_id", tranId );
// 17/10/11 manoharan
updateRowMap.put("line_no", "" + lineNo );
updateRowMap.put("line_no", lineNoStr );
// end 17/10/11 manoharan
updateRowMap.put("tran_date", tranDate );
updateRowMap.put("tran_type","ID");
......
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