Commit e9a2855f authored by Ajit Deshmukh's avatar Ajit Deshmukh

Added logic so that if the transaction is acknowledged, the Header and Detail...

Added logic so that if the transaction is acknowledged, the Header and Detail 1 forms will be non-editable, and the user can only add data in the Stockist Details.
parent 80e2233e
...@@ -16,9 +16,11 @@ import javax.ejb.Stateless; ...@@ -16,9 +16,11 @@ import javax.ejb.Stateless;
import org.w3c.dom.CDATASection; import org.w3c.dom.CDATASection;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import ibase.utility.BaseLogger; import ibase.utility.BaseLogger;
import ibase.utility.E12GenericUtility; import ibase.utility.E12GenericUtility;
import ibase.webitm.ejb.ITMDBAccessEJB; import ibase.webitm.ejb.ITMDBAccessEJB;
...@@ -824,11 +826,13 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -824,11 +826,13 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
} }
public String itemChanged( Document dom , Document dom1, Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams ) throws RemoteException,ITMException public String itemChanged( Document dom , Document dom1, Document dom2, String objContext, String currentColumn, String editFlag, String xtraParams ) throws RemoteException,ITMException
{ {
String valueXmlStringForAck = "";
NodeList parentNodeList = null,detailNodeList = null; NodeList parentNodeList = null,detailNodeList = null;
NodeList childNodeList = null; NodeList childNodeList = null;
Node parentNode = null; Node parentNode = null;
Node childNode = null; Node childNode = null;
String childNodeName = null; String childNodeName = null;
boolean AcknowledgmentFlag = false;
int ctr = 0; int ctr = 0;
int childNodeListLength = 0; int childNodeListLength = 0;
String columnValue=""; String columnValue="";
...@@ -901,11 +905,107 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -901,11 +905,107 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
if(currentColumn.equalsIgnoreCase("itm_default")) if(currentColumn.equalsIgnoreCase("itm_default"))
{ {
BaseLogger.log("3", getUserInfo(), null, "dom case1*>>>> Elements>>SalesQuotationIC case 1:itmDefault["+genericUtility.serializeDom(dom).toString()+"]");//added for testing
valueXmlString.append("<quot_date>").append("<![CDATA["+currentDateTime+"]]>").append("</quot_date>"); valueXmlString.append("<quot_date>").append("<![CDATA["+currentDateTime+"]]>").append("</quot_date>");
valueXmlString.append("<inq_date>").append("<![CDATA["+currentDateTime+"]]>").append("</inq_date>"); valueXmlString.append("<inq_date>").append("<![CDATA["+currentDateTime+"]]>").append("</inq_date>");
valueXmlString.append("<valid_upto>").append("<![CDATA["+currentDateTime+"]]>").append("</valid_upto>"); valueXmlString.append("<valid_upto>").append("<![CDATA["+currentDateTime+"]]>").append("</valid_upto>");
valueXmlString.append("<status_date>").append("<![CDATA["+currentDateTime+"]]>").append("</status_date>"); valueXmlString.append("<status_date>").append("<![CDATA["+currentDateTime+"]]>").append("</status_date>");
} }
else if(currentColumn.equalsIgnoreCase("itm_defaultedit")) {
BaseLogger.log("3", getUserInfo(), null, "Entered itm_defaultedit block");
String status = "";
String checkAcknowledgeStatusSql = "select status from sales_quot where quot_no = ?";
BaseLogger.log("3", getUserInfo(), null,
"Executing query: " + checkAcknowledgeStatusSql + " for quotNo: " + quotNo);
PreparedStatement checkAcknowledgeStatusPs = conn.prepareStatement(checkAcknowledgeStatusSql);
checkAcknowledgeStatusPs.setString(1, quotNo);
ResultSet checkAcknowledgeStatusRs = checkAcknowledgeStatusPs.executeQuery();
if(checkAcknowledgeStatusRs.next()) { // ✅ better than while
status = checkAcknowledgeStatusRs.getString("status");
BaseLogger.log("3", getUserInfo(), null, "Fetched status: [" + status + "]");
}
// ✅ APPLY ONLY WHEN STATUS = A
if(status != null && status.trim().equalsIgnoreCase("A")) {
BaseLogger.log("3", getUserInfo(), null,
"Status is A (Acknowledged). Applying protect flag.");
NodeList detailList = dom.getElementsByTagName("Detail1");
if (detailList != null && detailList.getLength() > 0) {
Element detailElem = (Element) detailList.item(0);
NodeList childNodes = detailElem.getChildNodes();
BaseLogger.log("3", getUserInfo(), null,
"Detail1 child count: " + childNodes.getLength());
for (int i = 0; i < childNodes.getLength(); i++) {
Node node = childNodes.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element elem = (Element) node;
String tagName = elem.getTagName();
// 🔹 Get value
String value = "";
if (elem.getFirstChild() != null) {
value = elem.getFirstChild().getNodeValue();
}
// 🔹 Handle null string
if (value == null || "null".equalsIgnoreCase(value)) {
value = "";
}
// 🔹 Append to valueXmlString (fixed)
valueXmlString.append("<")
.append(tagName)
.append(" protect=\"1\">")
.append("<![CDATA[")
.append(value.trim())
.append("]]>")
.append("</")
.append(tagName)
.append(">");
BaseLogger.log("3", getUserInfo(), null,
"Applied protect=1 and appended tag: " + tagName +
" value: " + value);
}
}
}
else {
BaseLogger.log("3", getUserInfo(), null, "Detail1 node NOT found in DOM");
}
}
else {
BaseLogger.log("3", getUserInfo(), null,
"Status is NOT A. Skipping protect. Status: " + status);
}
// 🔹 Close resources
if(checkAcknowledgeStatusRs != null) {
checkAcknowledgeStatusRs.close();
checkAcknowledgeStatusRs = null;
}
if(checkAcknowledgeStatusPs != null) {
checkAcknowledgeStatusPs.close();
checkAcknowledgeStatusPs = null;
}
}
else if(currentColumn.equalsIgnoreCase("cust_code")) else if(currentColumn.equalsIgnoreCase("cust_code"))
{ {
String lsItemser="",lsSiteCode="",taxChapHdr="",taxClassHdr="",taxEnvHdr=""; String lsItemser="",lsSiteCode="",taxChapHdr="",taxClassHdr="",taxEnvHdr="";
...@@ -1189,6 +1289,98 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -1189,6 +1289,98 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
if (currentColumn.trim().equalsIgnoreCase("itm_defaultedit")) if (currentColumn.trim().equalsIgnoreCase("itm_defaultedit"))
{ {
BaseLogger.log("3", getUserInfo(), null, "Entered itm_defaultedit block");
String status = "";
String checkAcknowledgeStatusSql = "select status from sales_quot where quot_no = ?";
BaseLogger.log("3", getUserInfo(), null,
"Executing query: " + checkAcknowledgeStatusSql + " for quotNo: " + quotNo);
PreparedStatement checkAcknowledgeStatusPs = conn.prepareStatement(checkAcknowledgeStatusSql);
checkAcknowledgeStatusPs.setString(1, quotNo);
ResultSet checkAcknowledgeStatusRs = checkAcknowledgeStatusPs.executeQuery();
if(checkAcknowledgeStatusRs.next()) { // ✅ better than while
status = checkAcknowledgeStatusRs.getString("status");
BaseLogger.log("3", getUserInfo(), null, "Fetched status: [" + status + "]");
}
// ✅ APPLY ONLY WHEN STATUS = A
if(status != null && status.trim().equalsIgnoreCase("A")) {
BaseLogger.log("3", getUserInfo(), null,
"Status is A (Acknowledged). Applying protect flag.");
NodeList detailList = dom.getElementsByTagName("Detail2");
if (detailList != null && detailList.getLength() > 0) {
Element detailElem = (Element) detailList.item(0);
NodeList childNodes = detailElem.getChildNodes();
BaseLogger.log("3", getUserInfo(), null,
"Detail1 child count: " + childNodes.getLength());
for (int i = 0; i < childNodes.getLength(); i++) {
Node node = childNodes.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element elem = (Element) node;
String tagName = elem.getTagName();
// 🔹 Get value
String value = "";
if (elem.getFirstChild() != null) {
value = elem.getFirstChild().getNodeValue();
}
// 🔹 Handle null string
if (value == null || "null".equalsIgnoreCase(value)) {
value = "";
}
// 🔹 Append to valueXmlString (fixed)
valueXmlString.append("<")
.append(tagName)
.append(" protect=\"1\">")
.append("<![CDATA[")
.append(value.trim())
.append("]]>")
.append("</")
.append(tagName)
.append(">");
BaseLogger.log("3", getUserInfo(), null,
"Applied protect=1 and appended tag: " + tagName +
" value: " + value);
}
}
}
else {
BaseLogger.log("3", getUserInfo(), null, "Detail1 node NOT found in DOM");
}
}
else {
BaseLogger.log("3", getUserInfo(), null,
"Status is NOT A. Skipping protect. Status: " + status);
}
// 🔹 Close resources
if(checkAcknowledgeStatusRs != null) {
checkAcknowledgeStatusRs.close();
checkAcknowledgeStatusRs = null;
}
if(checkAcknowledgeStatusPs != null) {
checkAcknowledgeStatusPs.close();
checkAcknowledgeStatusPs = null;
}
BaseLogger.log("3", getUserInfo(), null, "Item Default Edit+++++"); BaseLogger.log("3", getUserInfo(), null, "Item Default Edit+++++");
String lcrate1 = "", lcQty1 = "" , taxAmtStr= "" , discountStr= ""; String lcrate1 = "", lcQty1 = "" , taxAmtStr= "" , discountStr= "";
...@@ -1486,6 +1678,14 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -1486,6 +1678,14 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
valueXmlString.append("<Detail3>"); valueXmlString.append("<Detail3>");
childNodeListLength = childNodeList.getLength(); childNodeListLength = childNodeList.getLength();
String custName = "";
String custCodeStk = "";
String custCodeDist = "";
String stockistName = "";
String distributorName = "";
String siteCode = "";
String cityName = "";
do do
{ {
childNode = childNodeList.item(ctr); childNode = childNodeList.item(ctr);
...@@ -1497,24 +1697,139 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -1497,24 +1697,139 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
columnValue = childNode.getFirstChild().getNodeValue().trim(); columnValue = childNode.getFirstChild().getNodeValue().trim();
} }
} }
ctr++; ctr++;
} }
while ((ctr < childNodeListLength) && (!childNodeName.equals(currentColumn))); while ((ctr < childNodeListLength) && (!childNodeName.equals(currentColumn)));
BaseLogger.log("3", getUserInfo(), null, "CURRENT COLUMN ["+currentColumn+"]"); BaseLogger.log("3", getUserInfo(), null, "Case 3 CURRENT COLUMN gsb ["+currentColumn+"]");
if(currentColumn.equalsIgnoreCase("cust_code__stk")) /* ================= HEADER VALUES ================= */
custCode = checkNull(genericUtility.getColumnValue("cust_code", dom1));
custName = checkNull(genericUtility.getColumnValue("cust_name", dom1));
custCodeDist = checkNull(genericUtility.getColumnValue("cust_code__dist", dom));
/* CUSTOMER */
if(custCode.trim().length() > 0)
{ {
String custCodeStk = ""; sql = "select city from customer where cust_code = ?";
String custCodeDist = ""; pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCode);
rs = pstmt.executeQuery();
custCodeStk = checkNull(genericUtility.getColumnValue("cust_code__stk", dom)); if(rs.next())
{
cityName = rs.getString("city");
}
rs.close(); rs = null;
pstmt.close(); pstmt = null;
}
/* DISTRIBUTOR */
if(custCodeDist.trim().length() > 0)
{
sql = "select cust_name, site_code__pbus from customer where cust_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCodeDist);
rs = pstmt.executeQuery();
if(rs.next())
{
distributorName = rs.getString("cust_name");
siteCode = rs.getString("site_code__pbus");
}
rs.close(); rs = null;
pstmt.close(); pstmt = null;
}
/* ===== STOCKIST NAME + CITY ===== */
if(custCodeStk.trim().length() > 0)
{
sql = "select cust_name, city from customer where cust_code = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCodeStk);
rs = pstmt.executeQuery();
if(rs.next())
{
stockistName = rs.getString("cust_name");
cityName = rs.getString("city");
}
rs.close(); rs = null;
pstmt.close(); pstmt = null;
}
if (currentColumn.equalsIgnoreCase("itm_default")) {
BaseLogger.log("3", getUserInfo(), null, "Detail3 itm_default triggered");
valueXmlString.append("<cust_code>").append("<![CDATA[" + custCode + "]]>").append("</cust_code>");
valueXmlString.append("<cust_name>").append("<![CDATA[" + custName + "]]>").append("</cust_name>");
valueXmlString.append("<customer_city>").append("<![CDATA[" + checkNull(cityName) + "]]>")
.append("</customer_city>");
valueXmlString.append("<site_code__pbus>").append("<![CDATA[" + checkNull(siteCode) + "]]>")
.append("</site_code__pbus>");
valueXmlString.append("<distributor_name>").append("<![CDATA[" + checkNull(distributorName) + "]]>")
.append("</distributor_name>");
}
/* ================= ITM_DEFAULTEDIT ================= */
if(currentColumn.equalsIgnoreCase("itm_defaultedit"))
{
BaseLogger.log("3", getUserInfo(), null, "Detail3 itm_defaultedit triggered gsb");
custCode = checkNull(genericUtility.getColumnValue("cust_code", dom1)); custCode = checkNull(genericUtility.getColumnValue("cust_code", dom1));
custCodeStk = checkNull(genericUtility.getColumnValue("cust_code__stk", dom));
BaseLogger.log("3", getUserInfo(), null, "DOM custCodeStk ["+custCodeStk+"]");
BaseLogger.log("3", getUserInfo(), null, "DOM custCodeDist ["+custCodeDist+"]");
valueXmlString.append("<cust_name>")
.append("<![CDATA["+custName+"]]>")
.append("</cust_name>");
setNodeValue(dom, "cust_name", custName);
valueXmlString.append("<customer_city>")
.append("<![CDATA["+checkNull(cityName)+"]]>")
.append("</customer_city>");
BaseLogger.log("3", getUserInfo(), null, "cust_code from Detail1 [" + custCode + "]"); setNodeValue(dom, "customer_city", cityName);
valueXmlString.append("<stockist_name>")
.append("<![CDATA["+checkNull(stockistName)+"]]>")
.append("</stockist_name>");
setNodeValue(dom, "stockist_name", stockistName);
valueXmlString.append("<site_code__pbus>")
.append("<![CDATA["+checkNull(siteCode)+"]]>")
.append("</site_code__pbus>");
setNodeValue(dom, "site_code__pbus", siteCode);
valueXmlString.append("<distributor_name>")
.append("<![CDATA["+checkNull(distributorName)+"]]>")
.append("</distributor_name>");
}
/* ================= STOCKIST CHANGE ================= */
if(currentColumn.equalsIgnoreCase("cust_code__stk"))
{
custCodeStk = checkNull(genericUtility.getColumnValue("cust_code__stk", dom));
BaseLogger.log("3", getUserInfo(), null, "custCodeStk [" + custCodeStk + "]"); BaseLogger.log("3", getUserInfo(), null, "custCodeStk [" + custCodeStk + "]");
BaseLogger.log("3", getUserInfo(), null, "custCode [" + custCode + "]");
sql = "select cust_code__dist from customer_pref_dist " sql = "select cust_code__dist from customer_pref_dist "
+ "where cust_code__stk = ? and cust_code = ?"; + "where cust_code__stk = ? and cust_code = ?";
...@@ -1522,7 +1837,6 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -1522,7 +1837,6 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
pstmt = conn.prepareStatement(sql); pstmt = conn.prepareStatement(sql);
pstmt.setString(1, custCodeStk); pstmt.setString(1, custCodeStk);
pstmt.setString(2, custCode); pstmt.setString(2, custCode);
rs = pstmt.executeQuery(); rs = pstmt.executeQuery();
if(rs.next()) if(rs.next())
...@@ -1530,30 +1844,38 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -1530,30 +1844,38 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
custCodeDist = rs.getString("cust_code__dist"); custCodeDist = rs.getString("cust_code__dist");
} }
if(rs != null) rs.close(); rs = null;
{ pstmt.close(); pstmt = null;
rs.close();
rs = null;
}
if(pstmt != null)
{
pstmt.close();
pstmt = null;
}
custCodeDist = checkNull(custCodeDist); custCodeDist = checkNull(custCodeDist);
valueXmlString.append("<cust_code__dist>") valueXmlString.append("<cust_code__dist>")
.append("<![CDATA["+custCodeDist+"]]>") .append("<![CDATA["+custCodeDist+"]]>")
.append("</cust_code__dist>"); .append("</cust_code__dist>");
valueXmlString.append("<stockist_name>")
.append("<![CDATA["+checkNull(stockistName)+"]]>")
.append("</stockist_name>");
valueXmlString.append("<city>")
.append("<![CDATA["+checkNull(cityName)+"]]>")
.append("</city>");
valueXmlString.append("<site_code__pbus>")
.append("<![CDATA["+checkNull(siteCode)+"]]>")
.append("</site_code__pbus>");
setNodeValue(dom, "site_code__pbus", siteCode);
valueXmlString.append("<distributor_name>")
.append("<![CDATA["+checkNull(distributorName)+"]]>")
.append("</distributor_name>");
} }
valueXmlString.append("</Detail3>"); valueXmlString.append("</Detail3>");
} }
break; break; // end case 3
//end case 3
} //end switch } //end switch
valueXmlString.append("</Root>\r\n"); valueXmlString.append("</Root>\r\n");
} //end try } //end try
...@@ -1591,6 +1913,7 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -1591,6 +1913,7 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
} }
} }
return valueXmlString.toString(); return valueXmlString.toString();
} }
...@@ -1671,6 +1994,7 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val ...@@ -1671,6 +1994,7 @@ public class SalesQuotationIC extends ValidatorEJB implements ValidatorLocal,Val
throw new ITMException(e); //Added By Mukesh Chauhan on 05/08/19 throw new ITMException(e); //Added By Mukesh Chauhan on 05/08/19
} }
return valueXmlString; return valueXmlString;
} }
public double checkNullForDouble(String inputStr) throws ITMException public double checkNullForDouble(String inputStr) throws ITMException
......
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