Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
Component Sharing
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Gagandeep Singh Bhatia
Component Sharing
Commits
1a853cd4
Commit
1a853cd4
authored
Mar 25, 2026
by
Ajit Deshmukh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
f58fc485
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1292 additions
and
0 deletions
+1292
-0
Ajit/VHB/After release changes/ReqForQuotationIC.java
Ajit/VHB/After release changes/ReqForQuotationIC.java
+1292
-0
No files found.
Ajit/VHB/After release changes/ReqForQuotationIC.java
0 → 100644
View file @
1a853cd4
package
ibase
.
webitm
.
ejb
.
dis
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.rmi.RemoteException
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
import
org.w3c.dom.CDATASection
;
import
org.w3c.dom.Document
;
import
org.w3c.dom.Node
;
import
org.w3c.dom.NodeList
;
import
ibase.utility.BaseException
;
import
ibase.utility.BaseLogger
;
import
ibase.utility.E12GenericUtility
;
import
ibase.utility.GenericUtility
;
import
ibase.utility.UserInfoBean
;
import
ibase.webitm.ejb.ITMDBAccessEJB
;
import
ibase.webitm.ejb.ValidatorEJB
;
import
ibase.webitm.utility.ITMException
;
public
class
ReqForQuotationIC
extends
ValidatorEJB
{
E12GenericUtility
genericUtility
=
new
E12GenericUtility
();
public
String
wfValData
(
String
xmlString
,
String
xmlString1
,
String
xmlString2
,
String
objContext
,
String
editFlag
,
String
xtraParams
)
throws
RemoteException
,
ITMException
{
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
">>>>>>>>>>>>>>>>>>ReqForQuotationIC validation called>>>>>>>>>>>>>>>>>>>:::"
);
Document
dom
=
null
;
Document
dom1
=
null
;
Document
dom2
=
null
;
String
errString
=
null
;
BaseLogger
.
log
(
"3"
,
null
,
null
,
"xmlString ReqForQuotationIC ["
+
xmlString
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"xmlString1 ReqForQuotationIC ["
+
xmlString1
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"xmlString2 ReqForQuotationIC ["
+
xmlString2
+
"]"
);
try
{
if
(
xmlString
!=
null
&&
xmlString
.
trim
().
length
()
!=
0
)
{
dom
=
genericUtility
.
parseString
(
xmlString
);
}
if
(
xmlString1
!=
null
&&
xmlString1
.
trim
().
length
()
!=
0
)
{
dom1
=
genericUtility
.
parseString
(
xmlString1
);
}
if
(
xmlString2
!=
null
&&
xmlString2
.
trim
().
length
()
!=
0
)
{
dom2
=
genericUtility
.
parseString
(
xmlString2
);
}
errString
=
wfValData
(
dom
,
dom1
,
dom2
,
objContext
,
editFlag
,
xtraParams
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ErrString: "
+
errString
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"Exception: ReqForQuotationIC: wfValData(String xmlString): "
+
e
.
getMessage
()
+
":"
);
errString
=
genericUtility
.
createErrorString
(
e
);
e
.
printStackTrace
();
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Returning from ReqForQuotationIC wfValData"
);
return
(
errString
);
}
public
String
wfValData
(
Document
dom
,
Document
dom1
,
Document
dom2
,
String
objContext
,
String
editFlag
,
String
xtraParams
)
throws
RemoteException
,
ITMException
{
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
"9>>>>>>>>>>>>>>>>>>ReqForQuotationIC validation called >>>>>>>>>>>>>>>>>>>"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Inside ReqForQuotationIC validation"
);
GenericUtility
genericUtility
=
GenericUtility
.
getInstance
();
try
{
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
"dom case2*>>>> Elements>>["
+
genericUtility
.
serializeDom
(
dom
).
toString
()+
"]"
);
//added for testing
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
"dom2 case2*>>>> Elements>>["
+
genericUtility
.
serializeDom
(
dom2
).
toString
()+
"]"
);
//added for testing
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
"dom1 case2*>>>> Elements>>["
+
genericUtility
.
serializeDom
(
dom1
).
toString
()+
"]"
);
}
catch
(
BaseException
e1
)
{
e1
.
printStackTrace
();
}
String
userId
=
""
;
String
requestId
=
""
;
String
sql
=
""
;
String
errString
=
""
;
Connection
connection
=
null
;
ResultSet
rs
=
null
;
PreparedStatement
pstmt
=
null
;
NodeList
parentList
=
null
;
NodeList
childList
=
null
;
Node
parentNode
=
null
;
Node
childNode
=
null
;
String
childNodeName
=
null
;
int
noOfChilds
=
0
;
int
currentFormNo
=
0
;
try
{
SimpleDateFormat
DOB
=
new
SimpleDateFormat
(
getApplDateFormat
());
connection
=
getConnection
();
userId
=
genericUtility
.
getValueFromXTRA_PARAMS
(
xtraParams
,
"loginCode"
);
if
(
objContext
!=
null
&&
objContext
.
trim
().
length
()>
0
)
{
currentFormNo
=
Integer
.
parseInt
(
objContext
);
}
switch
(
currentFormNo
)
{
case
1
:
{
parentList
=
dom
.
getElementsByTagName
(
"Detail"
+
currentFormNo
);
int
parentNodeListLength
=
parentList
.
getLength
();
System
.
out
.
println
(
"parentNodeListLength["
+
parentNodeListLength
+
"]"
);
for
(
int
prntCtr
=
0
;
prntCtr
<
parentNodeListLength
;
prntCtr
++
)
{
parentNode
=
parentList
.
item
(
prntCtr
);
System
.
out
.
println
(
"value of parentNode"
+
parentNode
);
childList
=
parentNode
.
getChildNodes
();
noOfChilds
=
childList
.
getLength
();
System
.
out
.
println
(
"value of noOfChilds"
+
noOfChilds
);
for
(
int
ctr
=
0
;
ctr
<
noOfChilds
;
ctr
++)
{
childNode
=
childList
.
item
(
ctr
);
System
.
out
.
println
(
"childNode"
+
childNode
);
if
(
childNode
.
getNodeType
()
!=
Node
.
ELEMENT_NODE
)
{
continue
;
}
childNodeName
=
childNode
.
getNodeName
();
if
(
childNodeName
.
equalsIgnoreCase
(
"cust_code"
)
)
{
String
custCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"cust_code"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC custCode wfValData case 1 ["
+
custCode
+
"]"
);
String
checkCustCodeSql
=
"select count(cust_code) as custCodeCount from customer where cust_code = ? and cust_type = 'R'"
;
PreparedStatement
checkCustCodePs
=
connection
.
prepareStatement
(
checkCustCodeSql
);
checkCustCodePs
.
setString
(
1
,
custCode
);
ResultSet
checkCustCodeRs
=
checkCustCodePs
.
executeQuery
();
while
(
checkCustCodeRs
.
next
())
{
int
custCodeCont
=
checkCustCodeRs
.
getInt
(
"custCodeCount"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC custCode wfValData case 1 custCodeCont::["
+
custCodeCont
+
"]"
);
if
(
custCodeCont
<=
0
)
{
errString
=
getErrorString
(
"cust_code"
,
"VTCUST1"
,
userId
);
break
;
}
}
if
(
checkCustCodeRs
!=
null
)
{
checkCustCodeRs
.
close
();
checkCustCodeRs
=
null
;
}
if
(
checkCustCodePs
!=
null
)
{
checkCustCodePs
.
close
();
checkCustCodePs
=
null
;
}
}
if
(
childNodeName
.
equalsIgnoreCase
(
"sales_pers"
)
)
{
String
salesPerson
=
checkNull
(
genericUtility
.
getColumnValue
(
"sales_pers"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC salesPerson wfValData case 1 ["
+
salesPerson
+
"]"
);
String
salesPersonSql
=
"select count(SALES_PERS) as salesPersonCount from SALESPERSON where SALES_PERS = ?"
;
PreparedStatement
salesPersonPs
=
connection
.
prepareStatement
(
salesPersonSql
);
salesPersonPs
.
setString
(
1
,
salesPerson
);
ResultSet
salesPersonRs
=
salesPersonPs
.
executeQuery
();
while
(
salesPersonRs
.
next
())
{
int
salesPersonCount
=
salesPersonRs
.
getInt
(
"salesPersonCount"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC sales_pers wfValData case 1 salesPersonRs::["
+
salesPersonCount
+
"]"
);
if
(
salesPersonCount
<=
0
)
{
errString
=
getErrorString
(
"sales_pers"
,
"VTSALPER"
,
userId
);
break
;
}
}
if
(
salesPersonRs
!=
null
)
{
salesPersonRs
.
close
();
salesPersonRs
=
null
;
}
if
(
salesPersonPs
!=
null
)
{
salesPersonPs
.
close
();
salesPersonPs
=
null
;
}
}
if
(
childNodeName
.
equalsIgnoreCase
(
"valid_upto"
)
)
{
String
validUptoStr
=
checkNull
(
genericUtility
.
getColumnValue
(
"valid_upto"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC validUptoStr wfValData case 1 ["
+
validUptoStr
+
"]"
);
if
(
isDateInvalid
(
validUptoStr
))
{
errString
=
getErrorString
(
"valid_upto"
,
"VTINUPTO"
,
userId
);
break
;
}
}
if
(
childNodeName
.
equalsIgnoreCase
(
"site_code"
)
)
{
String
siteCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"site_code"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC siteCode wfValData case 1 ["
+
siteCode
+
"]"
);
String
checkSiteCodeSql
=
"select count(site_code) as siteCodeCount from site where site_code = ?"
;
PreparedStatement
checkSiteCodePs
=
connection
.
prepareStatement
(
checkSiteCodeSql
);
checkSiteCodePs
.
setString
(
1
,
siteCode
);
ResultSet
checkSiteCodeRs
=
checkSiteCodePs
.
executeQuery
();
while
(
checkSiteCodeRs
.
next
())
{
int
siteCodeCont
=
checkSiteCodeRs
.
getInt
(
"siteCodeCount"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC siteCode wfValData case 1 siteCodeCont::["
+
siteCodeCont
+
"]"
);
if
(
siteCodeCont
<=
0
)
{
errString
=
getErrorString
(
"site_code"
,
"VTSITCD1"
,
userId
);
break
;
}
}
if
(
checkSiteCodeRs
!=
null
)
{
checkSiteCodeRs
.
close
();
checkSiteCodeRs
=
null
;
}
if
(
checkSiteCodePs
!=
null
)
{
checkSiteCodePs
.
close
();
checkSiteCodePs
=
null
;
}
}
if
(
childNodeName
.
equalsIgnoreCase
(
"item_ser"
)
)
{
String
itemSerStr
=
checkNull
(
genericUtility
.
getColumnValue
(
"item_ser"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC itemSerStr wfValData case 1 ["
+
itemSerStr
+
"]"
);
if
(
itemSerStr
!=
null
&&
itemSerStr
.
length
()
>
0
)
{
String
[]
itemSerArr
=
itemSerStr
.
split
(
","
);
for
(
String
itemSer
:
itemSerArr
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC item_ser wfValData case 1 itemSer ["
+
itemSer
+
"]"
);
sql
=
"SELECT count(1) FROM itemser WHERE item_ser = ?"
;
pstmt
=
connection
.
prepareStatement
(
sql
);
pstmt
.
setString
(
1
,
itemSer
.
trim
());
rs
=
pstmt
.
executeQuery
();
long
count
=
0
;
if
(
rs
.
next
())
{
count
=
rs
.
getLong
(
1
);
}
rs
.
close
();
rs
=
null
;
pstmt
.
close
();
pstmt
=
null
;
if
(
count
==
0
)
{
errString
=
getErrorString
(
"item_ser"
,
"VTITEMSER1"
,
userId
);
break
;
}
}
}
if
(
pstmt
!=
null
)
{
pstmt
.
close
();
pstmt
=
null
;
}
if
(
rs
!=
null
)
{
rs
.
close
();
rs
=
null
;
}
}
}
}
break
;
}
case
2
:
{
parentList
=
dom
.
getElementsByTagName
(
"Detail"
+
currentFormNo
);
int
parentNodeListLength
=
parentList
.
getLength
();
System
.
out
.
println
(
"parentNodeListLength["
+
parentNodeListLength
+
"]"
);
for
(
int
prntCtr
=
0
;
prntCtr
<
parentNodeListLength
;
prntCtr
++
)
{
parentNode
=
parentList
.
item
(
prntCtr
);
System
.
out
.
println
(
"value of parentNode"
+
parentNode
);
childList
=
parentNode
.
getChildNodes
();
noOfChilds
=
childList
.
getLength
();
System
.
out
.
println
(
"value of noOfChilds"
+
noOfChilds
);
for
(
int
ctr
=
0
;
ctr
<
noOfChilds
;
ctr
++)
{
childNode
=
childList
.
item
(
ctr
);
System
.
out
.
println
(
"childNode"
+
childNode
);
if
(
childNode
.
getNodeType
()
!=
Node
.
ELEMENT_NODE
)
{
continue
;
}
childNodeName
=
childNode
.
getNodeName
();
if
(
childNodeName
.
equalsIgnoreCase
(
"item_code"
)
)
{
String
[]
itemSerArr
=
null
;
String
itemCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"item_code"
,
dom
));
String
itemSer
=
checkNull
(
genericUtility
.
getColumnValue
(
"item_ser"
,
dom1
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC itemCode wfValData case 1 itemSer:["
+
itemSer
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC itemCode wfValData case 1 ["
+
itemCode
+
"]"
);
if
(
itemSer
!=
null
&&
itemSer
.
trim
().
length
()
>
0
)
{
itemSerArr
=
itemSer
.
split
(
","
);
}
StringBuilder
checkItemCodeSql
=
new
StringBuilder
(
"select count(item_code) as itemCodeCount from item where item_code = ?"
);
if
(
itemSerArr
!=
null
&&
itemSerArr
.
length
>
0
)
{
checkItemCodeSql
.
append
(
" and item_ser IN ("
);
for
(
int
i
=
0
;
i
<
itemSerArr
.
length
;
i
++)
{
checkItemCodeSql
.
append
(
"?"
);
if
(
i
<
itemSerArr
.
length
-
1
)
{
checkItemCodeSql
.
append
(
","
);
}
}
checkItemCodeSql
.
append
(
")"
);
}
String
checkItemCodeSql1
=
checkItemCodeSql
.
toString
();
PreparedStatement
checkItemCodePs
=
connection
.
prepareStatement
(
checkItemCodeSql1
);
// 🔹 Set first parameter (item_code)
int
paramIndex
=
1
;
checkItemCodePs
.
setString
(
paramIndex
++,
itemCode
);
// 🔹 Set IN clause parameters (item_ser)
if
(
itemSerArr
!=
null
&&
itemSerArr
.
length
>
0
)
{
for
(
String
ser
:
itemSerArr
)
{
checkItemCodePs
.
setString
(
paramIndex
++,
ser
.
trim
());
}
}
ResultSet
checkItemCodeRs
=
checkItemCodePs
.
executeQuery
();
while
(
checkItemCodeRs
.
next
())
{
int
itemCodeCont
=
checkItemCodeRs
.
getInt
(
"itemCodeCount"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationWiz itemCode wfValData case 1 itemCodeCont::["
+
itemCodeCont
+
"]"
);
if
(
itemCodeCont
<=
0
)
{
errString
=
getErrorString
(
"item_code"
,
"STKVALITNE"
,
userId
);
break
;
}
}
if
(
checkItemCodeRs
!=
null
)
{
checkItemCodeRs
.
close
();
checkItemCodeRs
=
null
;
}
if
(
checkItemCodePs
!=
null
)
{
checkItemCodePs
.
close
();
checkItemCodePs
=
null
;
}
}
if
(
childNodeName
.
equalsIgnoreCase
(
"ptr_flag"
)
)
{
String
ptrFlag
=
checkNull
(
genericUtility
.
getColumnValue
(
"ptr_flag"
,
dom
));
String
rateQuot
=
checkNull
(
genericUtility
.
getColumnValue
(
"rate_quot"
,
dom
));
String
competitorRate
=
checkNull
(
genericUtility
.
getColumnValue
(
"competitor_rate"
,
dom
));
String
competitorItem
=
checkNull
(
genericUtility
.
getColumnValue
(
"competitor_item"
,
dom
));
String
competitorName
=
checkNull
(
genericUtility
.
getColumnValue
(
"competitor_name"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC ptrFlag wfValData ["
+
ptrFlag
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC rateQuot wfValData ["
+
rateQuot
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC competitorRate wfValData ["
+
competitorRate
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC competitorItem wfValData ["
+
competitorItem
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC competitorNane wfValData ["
+
competitorName
+
"]"
);
if
(
ptrFlag
.
equalsIgnoreCase
(
"N"
)
||
ptrFlag
.
trim
().
isEmpty
())
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in condition ptrFlag wfValData::: ["
+
ptrFlag
+
"]"
);
if
(
rateQuot
==
null
||
rateQuot
.
trim
().
length
()<=
0
)
{
errString
=
getErrorString
(
"rate_quot"
,
"INVQR"
,
userId
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in competitor details null errString:: ["
+
errString
+
"]"
);
break
;
}
// Check if any of the competitor fields are null or blank
if
((
competitorRate
==
null
||
competitorRate
.
trim
().
isEmpty
())
||
(
competitorItem
==
null
||
competitorItem
.
trim
().
isEmpty
())
||
(
competitorName
==
null
||
competitorName
.
trim
().
isEmpty
()))
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in competitor details null ["
+
ptrFlag
+
"]"
);
errString
=
getErrorString
(
"ptr_flag"
,
"COMPDETM"
,
userId
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in competitor details null errString:: ["
+
errString
+
"]"
);
break
;
}
}
}
if
(
childNodeName
.
equalsIgnoreCase
(
"rate_quot"
)
)
{
String
phyAttrVal
=
""
;
String
itemCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"item_code"
,
dom
));
String
quotedRate
=
checkNull
(
genericUtility
.
getColumnValue
(
"rate_quot"
,
dom
));
int
quotedRateInt
=
0
;
if
(
quotedRate
!=
null
&&
quotedRate
.
trim
().
length
()>
0
)
{
quotedRateInt
=
Integer
.
parseInt
(
quotedRate
);
if
(
quotedRateInt
<=
0
)
{
errString
=
getErrorString
(
"rate_quot"
,
"INVQR"
,
userId
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in PHY_ATTRIB_19 details null errString:: ["
+
errString
+
"]"
);
break
;
}
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in condition itemCode wfValData quotedRate::: ["
+
quotedRate
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in condition itemCode wfValData itemCode::: ["
+
itemCode
+
"]"
);
String
phyAttrValSql
=
"select PHY_ATTRIB_19 from item where item_code = ?"
;
PreparedStatement
phyAttrValPs
=
connection
.
prepareStatement
(
phyAttrValSql
);
phyAttrValPs
.
setString
(
1
,
itemCode
);
ResultSet
phyAttrValRs
=
phyAttrValPs
.
executeQuery
();
while
(
phyAttrValRs
.
next
())
{
phyAttrVal
=
checkNull
(
phyAttrValRs
.
getString
(
"PHY_ATTRIB_19"
));
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in condition itemCode wfValData phyAttrVal::: ["
+
phyAttrVal
+
"]"
);
if
(
phyAttrVal
.
equalsIgnoreCase
(
"SRNA"
))
{
errString
=
getErrorString
(
"rate_quot"
,
"INVQR"
,
userId
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in PHY_ATTRIB_19 details null errString:: ["
+
errString
+
"]"
);
break
;
}
if
(
phyAttrValPs
!=
null
)
{
phyAttrValPs
.
close
();
phyAttrValPs
=
null
;
}
if
(
phyAttrValRs
!=
null
)
{
phyAttrValRs
.
close
();
phyAttrValRs
=
null
;
}
}
//Added changes on 25-March-26 by Ajit [Start]
if
(
childNodeName
.
equalsIgnoreCase
(
"unit"
)
)
{
int
unitCount
=
0
;
String
unit
=
checkNull
(
genericUtility
.
getColumnValue
(
"unit"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in condition unit wfValData unit::: ["
+
unit
+
"]"
);
String
unitCountSql
=
"select count(unit) as unitCount from uom where unit = ?"
;
PreparedStatement
unitCountPs
=
connection
.
prepareStatement
(
unitCountSql
);
unitCountPs
.
setString
(
1
,
unit
);
ResultSet
unitCountRs
=
unitCountPs
.
executeQuery
();
while
(
unitCountRs
.
next
())
{
unitCount
=
unitCountRs
.
getInt
(
"unitCount"
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in condition unitCount::: ["
+
unitCount
+
"]"
);
if
(
unitCount
<=
0
)
{
errString
=
getErrorString
(
"unit"
,
"VTITEMUNIT"
,
userId
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in UNIT not present in master errString:: ["
+
errString
+
"]"
);
break
;
}
if
(
unitCountPs
!=
null
)
{
unitCountPs
.
close
();
unitCountPs
=
null
;
}
if
(
unitCountRs
!=
null
)
{
unitCountRs
.
close
();
unitCountRs
=
null
;
}
}
if
(
childNodeName
.
equalsIgnoreCase
(
"pack_code"
)
)
{
int
packCodeCount
=
0
;
String
packCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"pack_code"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in condition unit wfValData packCode::: ["
+
packCode
+
"]"
);
String
packCodeCountSql
=
"select count(pack_code) as packCodeCount from packing where pack_code = ?"
;
PreparedStatement
packCodeCountPs
=
connection
.
prepareStatement
(
packCodeCountSql
);
packCodeCountPs
.
setString
(
1
,
packCode
);
ResultSet
packCodeCountRs
=
packCodeCountPs
.
executeQuery
();
while
(
packCodeCountRs
.
next
())
{
packCodeCount
=
packCodeCountRs
.
getInt
(
"packCodeCount"
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in condition unitCount::: ["
+
packCodeCount
+
"]"
);
if
(
packCodeCount
<=
0
)
{
errString
=
getErrorString
(
"pack_code"
,
"VTPCKCDM"
,
userId
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in UNIT not present in master errString:: ["
+
errString
+
"]"
);
break
;
}
if
(
packCodeCountPs
!=
null
)
{
packCodeCountPs
.
close
();
packCodeCountPs
=
null
;
}
if
(
packCodeCountRs
!=
null
)
{
packCodeCountRs
.
close
();
packCodeCountRs
=
null
;
}
}
//Added changes on 25-March-26 by Ajit [End]
//End elseif
}
//End for loop
}
//End for loop
break
;
}
//case1
}
//switch
}
//try
catch
(
Exception
e
)
{
System
.
out
.
println
(
"Exception: wfValData(Document dom): "
+
e
.
getMessage
()
+
":"
);
errString
=
genericUtility
.
createErrorString
(
e
);
throw
new
ITMException
(
e
);
}
finally
{
try
{
if
(
rs
!=
null
)
{
rs
.
close
();
rs
=
null
;
}
if
(
pstmt
!=
null
)
{
pstmt
.
close
();
pstmt
=
null
;
}
if
(
connection
!=
null
)
{
connection
.
close
();
connection
=
null
;
}
}
catch
(
Exception
e
)
{
errString
=
genericUtility
.
createErrorString
(
e
);
}
}
return
(
errString
);
}
public
String
itemChanged
(
String
xmlString
,
String
xmlString1
,
String
xmlString2
,
String
objContext
,
String
currentColumn
,
String
editFlag
,
String
xtraParams
)
throws
RemoteException
,
ITMException
{
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
">>>>>>>>>>>>>>>>>> ReqForQuotationIC itemchange called Ajit>>>>>>>>>>>>>>>>>>>"
);
Document
dom
=
null
;
Document
dom1
=
null
;
Document
dom2
=
null
;
String
errString
=
null
;
try
{
if
(
xmlString
!=
null
&&
xmlString
.
trim
().
length
()
!=
0
)
{
dom
=
genericUtility
.
parseString
(
xmlString
);
}
if
(
xmlString1
!=
null
&&
xmlString1
.
trim
().
length
()
!=
0
)
{
dom1
=
genericUtility
.
parseString
(
xmlString1
);
}
if
(
xmlString2
!=
null
&&
xmlString2
.
trim
().
length
()
!=
0
)
{
dom2
=
genericUtility
.
parseString
(
xmlString2
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"xmlString ReqForQuotationIC ["
+
xmlString
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"xmlString1 ReqForQuotationIC ["
+
xmlString1
+
"]"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"xmlString2 ReqForQuotationIC ["
+
xmlString2
+
"]"
);
errString
=
itemChanged
(
dom
,
dom1
,
dom2
,
objContext
,
currentColumn
,
editFlag
,
xtraParams
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ErrString :"
+
errString
);
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception :ReqForQuotationIC :itemChanged(String,String):"
+
e
.
getMessage
()
+
":"
);
errString
=
genericUtility
.
createErrorString
(
e
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"returning from ReqForQuotationIC itemChanged"
);
return
errString
;
}
public
String
itemChanged
(
Document
dom
,
Document
dom1
,
Document
dom2
,
String
objContext
,
String
currentColumn
,
String
editFlag
,
String
xtraParams
)
throws
RemoteException
,
ITMException
{
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
">>>>>>>>>>>>>>>>>> ReqForQuotationIC itemchange called Ajit>>>>>>>>>>>>>>>>>>>"
);
System
.
out
.
println
(
"Inside itemchange"
);
Connection
con
=
null
;
PreparedStatement
psSiteCustomer
=
null
;
PreparedStatement
psCustomer
=
null
;
PreparedStatement
psPriceList
=
null
;
PreparedStatement
psFinEntity
=
null
;
String
reStr
=
""
;
ResultSet
rs
=
null
;
StringBuffer
valueXmlString
=
null
;
int
currentFormNo
=
0
;
String
userId
=
""
;
String
sql
=
""
;
String
priceList
=
""
;
int
rate
=
0
;
String
finEntity
=
""
;
List
<
String
>
itemCodeList
=
new
ArrayList
<>();
try
{
UserInfoBean
userInfo
=
getUserInfo
();
String
siteCode
=
checkNull
(
userInfo
.
getSiteCode
());
String
userCode
=
checkNull
(
userInfo
.
getLoginCode
());
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in siteCodeFromUserInfo:: "
+
siteCode
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in userCodeFromUserInfo:: "
+
userCode
);
con
=
getConnection
();
userId
=
getValueFromXTRA_PARAMS
(
xtraParams
,
"loginEmpCode"
);
// To get user details after login
if
(
objContext
!=
null
&&
objContext
.
trim
().
length
()
>
0
)
{
currentFormNo
=
Integer
.
parseInt
(
objContext
);
}
// start creating xml
valueXmlString
=
new
StringBuffer
(
"<?xml version=\"1.0\"?><Root><header><editFlag>"
);
valueXmlString
.
append
(
editFlag
).
append
(
"</editFlag></header>"
);
String
ptrFlag
=
checkNull
(
genericUtility
.
getColumnValue
(
"ptr_flag"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in ptr_flat condition ptrFlag:: "
+
ptrFlag
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC currentFormNo "
+
currentFormNo
);
switch
(
currentFormNo
)
{
case
1
:
{
valueXmlString
.
append
(
"<Detail1>"
);
if
(
"itm_default"
.
equalsIgnoreCase
(
currentColumn
.
trim
()))
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm_default case 1"
);
// Set tran_date to current date
SimpleDateFormat
dtFormat
=
new
SimpleDateFormat
(
getApplDateFormat
());
String
currDate
=
dtFormat
.
format
(
Calendar
.
getInstance
().
getTime
());
valueXmlString
.
append
(
"<tran_date>"
).
append
(
"<![CDATA["
+
currDate
+
"]]>"
).
append
(
"</tran_date>\r\n"
);
// Set req_date to current date
valueXmlString
.
append
(
"<req_date>"
).
append
(
"<![CDATA["
+
currDate
+
"]]>"
).
append
(
"</req_date>\r\n"
);
// Set site_code to logged in user's site code
valueXmlString
.
append
(
"<site_code>"
).
append
(
"<![CDATA["
+
siteCode
+
"]]>"
).
append
(
"</site_code>\r\n"
);
valueXmlString
.
append
(
"<quot_type>"
).
append
(
"<![CDATA[C]]>"
).
append
(
"</quot_type>"
);
// Set sales_pers to logged in user's code
valueXmlString
.
append
(
"<sales_pers>"
).
append
(
"<![CDATA["
+
userCode
+
"]]>"
).
append
(
"</sales_pers>\r\n"
);
}
if
(
"cust_code"
.
equalsIgnoreCase
(
currentColumn
.
trim
()))
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in item change case 1 cust_code condition"
);
String
custName
=
""
,
addr1
=
""
,
addr2
=
""
,
addr3
=
""
;
String
custCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"cust_code"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in case 1 cust_code:: "
+
custCode
);
String
custDetilsSql
=
"select cust_name, addr1 , addr2 , addr3 from customer where cust_code = ?"
;
PreparedStatement
custDetailsPs
=
con
.
prepareStatement
(
custDetilsSql
);
custDetailsPs
.
setString
(
1
,
custCode
);
ResultSet
custDetailsRs
=
custDetailsPs
.
executeQuery
();
while
(
custDetailsRs
.
next
())
{
custName
=
custDetailsRs
.
getString
(
"cust_name"
);
addr1
=
custDetailsRs
.
getString
(
"addr1"
);
addr2
=
custDetailsRs
.
getString
(
"addr2"
);
addr3
=
custDetailsRs
.
getString
(
"addr3"
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in case 1 custName:: "
+
custName
);
valueXmlString
.
append
(
"<cust_name>"
).
append
(
"<![CDATA["
+
custName
+
"]]>"
).
append
(
"</cust_name>\r\n"
);
valueXmlString
.
append
(
"<addr1>"
).
append
(
"<![CDATA["
+
addr1
+
"]]>"
).
append
(
"</addr1>\r\n"
);
valueXmlString
.
append
(
"<addr2>"
).
append
(
"<![CDATA["
+
addr2
+
"]]>"
).
append
(
"</addr2>\r\n"
);
valueXmlString
.
append
(
"<addr3>"
).
append
(
"<![CDATA["
+
addr3
+
"]]>"
).
append
(
"</addr3>\r\n"
);
}
if
(
"item_ser"
.
equalsIgnoreCase
(
currentColumn
.
trim
()))
{
String
itemSerDescr
=
""
;
String
itemSerForIC
=
checkNull
(
genericUtility
.
getColumnValue
(
"item_ser"
,
dom
,
"1"
));
BaseLogger
.
log
(
"0"
,
null
,
userId
,
"case 1::: item_ser"
);
System
.
out
.
println
(
"case 1---------itemSerForIC05M------["
+
itemSerForIC
+
"]"
);
if
(
itemSerForIC
!=
null
&&
itemSerForIC
.
trim
().
length
()
>
0
)
{
String
[]
itemSerArr
=
itemSerForIC
.
split
(
","
);
String
itemSerSql
=
"select descr from itemser where item_ser = ?"
;
try
(
PreparedStatement
itemSerPs
=
con
.
prepareStatement
(
itemSerSql
))
{
for
(
String
itemSer
:
itemSerArr
)
{
itemSerPs
.
setString
(
1
,
itemSer
.
trim
());
try
(
ResultSet
itemSerRs
=
itemSerPs
.
executeQuery
())
{
if
(
itemSerRs
.
next
())
{
if
(
itemSerDescr
.
length
()
>
0
)
{
itemSerDescr
+=
", "
;
}
itemSerDescr
+=
checkNull
(
itemSerRs
.
getString
(
"descr"
));
}
}
}
}
}
setNodeValue
(
dom
,
"descr"
,
itemSerDescr
);
BaseLogger
.
log
(
"0"
,
null
,
userId
,
"case 1::: item_ser descr::"
+
itemSerDescr
);
valueXmlString
.
append
(
"<descr>"
).
append
(
"<![CDATA["
+
itemSerDescr
+
"]]>"
).
append
(
"</descr>\r\n"
);
}
valueXmlString
.
append
(
"</Detail1>"
);
break
;
}
case
2
:
{
valueXmlString
.
append
(
"<Detail2>"
);
if
(
"itm_default"
.
equalsIgnoreCase
(
currentColumn
.
trim
()))
{
String
custCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"cust_code"
,
dom1
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default "
);
//Management rate block[Start]
String
finEntityQuery
=
"select fin_entity from site where site_code = ?"
;
psFinEntity
=
con
.
prepareStatement
(
finEntityQuery
);
psFinEntity
.
setString
(
1
,
siteCode
);
rs
=
psFinEntity
.
executeQuery
();
if
(
rs
.
next
())
{
finEntity
=
checkNull
(
rs
.
getString
(
"fin_entity"
));
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default finEntity:: "
+
finEntity
);
rs
.
close
();
psFinEntity
.
close
();
// Now, use finEntity to fetch VAR_VALUE from finparm
String
varValueQuery
=
"select VAR_VALUE from finparm where ADDL_VALUE = ?"
;
PreparedStatement
psVarValue
=
con
.
prepareStatement
(
varValueQuery
);
psVarValue
.
setString
(
1
,
finEntity
);
ResultSet
rsVarValue
=
psVarValue
.
executeQuery
();
String
varValue
=
null
;
if
(
rsVarValue
.
next
())
{
varValue
=
checkNull
(
rsVarValue
.
getString
(
"VAR_VALUE"
));
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default varValue:: "
+
varValue
);
// Clean up the result set and prepared statement for the varValue query
rsVarValue
.
close
();
psVarValue
.
close
();
// Finally, use varValue to fetch the rate from pricelist
String
rateQuery
=
"select rate from pricelist where price_list = ?"
;
PreparedStatement
psRate
=
con
.
prepareStatement
(
rateQuery
);
psRate
.
setString
(
1
,
varValue
);
ResultSet
rsRate
=
psRate
.
executeQuery
();
int
MngmntAprvRate
=
0
;
if
(
rsRate
.
next
())
{
MngmntAprvRate
=
rsRate
.
getInt
(
"rate"
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default rate:: "
+
rate
);
// Clean up the result set and prepared statement for the rate query
rsRate
.
close
();
psRate
.
close
();
String
priceSql
=
"SELECT TRIM(fp.var_name) AS var_name, pl.rate "
+
"FROM finparm fp "
+
"JOIN site s ON TRIM(s.fin_entity) = TRIM(fp.ADDL_VALUE) "
+
"JOIN pricelist pl ON TRIM(pl.price_list) = TRIM(fp.VAR_VALUE) "
+
"WHERE TRIM(s.site_code) = ? "
+
"AND TRIM(fp.VAR_NAME) IN ('RFQ_PTS','RFQ_PTD')"
;
PreparedStatement
psPrice
=
con
.
prepareStatement
(
priceSql
);
psPrice
.
setString
(
1
,
siteCode
);
ResultSet
rsPrice
=
psPrice
.
executeQuery
();
BigDecimal
pts
=
null
;
BigDecimal
ptd
=
null
;
BigDecimal
PriceRate
=
null
;
while
(
rsPrice
.
next
())
{
String
varName
=
checkNull
(
rsPrice
.
getString
(
"VAR_NAME"
));
PriceRate
=
rsPrice
.
getBigDecimal
(
"rate"
);
if
(
"RFQ_PTS"
.
equals
(
varName
))
{
pts
=
PriceRate
;
}
else
if
(
"RFQ_PTD"
.
equals
(
varName
))
{
ptd
=
PriceRate
;
}
}
//PTR calculation start
String
siteCustomerQuery
=
"SELECT PRICE_LIST FROM SITE_CUSTOMER "
+
"WHERE SITE_CODE = ? AND CUST_CODE = ?"
;
psSiteCustomer
=
con
.
prepareStatement
(
siteCustomerQuery
);
psSiteCustomer
.
setString
(
1
,
siteCode
);
psSiteCustomer
.
setString
(
2
,
custCode
);
rs
=
psSiteCustomer
.
executeQuery
();
if
(
rs
.
next
())
{
priceList
=
rs
.
getString
(
"PRICE_LIST"
);
}
rs
.
close
();
psSiteCustomer
.
close
();
// Step 2: If not found in SITE_CUSTOMER, fetch from CUSTOMER
if
(
priceList
==
null
||
priceList
.
trim
().
isEmpty
())
{
String
customerQuery
=
"SELECT PRICE_LIST FROM CUSTOMER WHERE CUST_CODE = ?"
;
psCustomer
=
con
.
prepareStatement
(
customerQuery
);
psCustomer
.
setString
(
1
,
custCode
);
rs
=
psCustomer
.
executeQuery
();
if
(
rs
.
next
())
{
priceList
=
rs
.
getString
(
"PRICE_LIST"
);
}
rs
.
close
();
psCustomer
.
close
();
}
// Step 3: Fetch RATE from PRICELIST table
if
(
priceList
!=
null
&&
!
priceList
.
trim
().
isEmpty
())
{
String
priceListQuery
=
"SELECT RATE FROM PRICELIST WHERE PRICE_LIST = ?"
;
psPriceList
=
con
.
prepareStatement
(
priceListQuery
);
psPriceList
.
setString
(
1
,
priceList
);
rs
=
psPriceList
.
executeQuery
();
if
(
rs
.
next
())
{
rate
=
rs
.
getInt
(
"RATE"
);
}
rs
.
close
();
psPriceList
.
close
();
}
//PTR calculation end
valueXmlString
.
append
(
"<rate_apprv>"
).
append
(
"<![CDATA["
+
MngmntAprvRate
+
"]]>"
).
append
(
"</rate_apprv>\r\n"
);
valueXmlString
.
append
(
"<ptd>"
).
append
(
"<![CDATA["
+
ptd
+
"]]>"
).
append
(
"</ptd>\r\n"
);
valueXmlString
.
append
(
"<pts>"
).
append
(
"<![CDATA["
+
pts
+
"]]>"
).
append
(
"</pts>\r\n"
);
valueXmlString
.
append
(
"<ptr>"
).
append
(
"<![CDATA["
+
rate
+
"]]>"
).
append
(
"</ptr>\r\n"
);
valueXmlString
.
append
(
"<qty_quot>"
).
append
(
"<![CDATA[0]]>"
).
append
(
"</qty_quot>\r\n"
);
//Management rate block[End]
}
if
(
"itm_defaultedit"
.
equalsIgnoreCase
(
currentColumn
.
trim
()))
{
String
custCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"cust_code"
,
dom1
));
String
ptrFlagForEdit
=
checkNull
(
genericUtility
.
getColumnValue
(
"ptr_flag"
,
dom
));
String
rateQuot
=
checkNull
(
genericUtility
.
getColumnValue
(
"rate_quot"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default edit ptrFlagForEdit::"
+
ptrFlagForEdit
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default edit rateQuot::"
+
rateQuot
);
if
(
ptrFlagForEdit
.
equalsIgnoreCase
(
"Y"
))
{
valueXmlString
.
append
(
"<rate_quot protect='1'>"
).
append
(
"<![CDATA["
+
rateQuot
+
"]]>"
).
append
(
"</rate_quot>\r\n"
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default "
);
//Management rate block[Start]
String
finEntityQuery
=
"select fin_entity from site where site_code = ?"
;
psFinEntity
=
con
.
prepareStatement
(
finEntityQuery
);
psFinEntity
.
setString
(
1
,
siteCode
);
rs
=
psFinEntity
.
executeQuery
();
if
(
rs
.
next
())
{
finEntity
=
checkNull
(
rs
.
getString
(
"fin_entity"
));
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default finEntity:: "
+
finEntity
);
rs
.
close
();
psFinEntity
.
close
();
// Now, use finEntity to fetch VAR_VALUE from finparm
String
varValueQuery
=
"select VAR_VALUE from finparm where ADDL_VALUE = ?"
;
PreparedStatement
psVarValue
=
con
.
prepareStatement
(
varValueQuery
);
psVarValue
.
setString
(
1
,
finEntity
);
ResultSet
rsVarValue
=
psVarValue
.
executeQuery
();
String
varValue
=
null
;
if
(
rsVarValue
.
next
())
{
varValue
=
checkNull
(
rsVarValue
.
getString
(
"VAR_VALUE"
));
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default varValue:: "
+
varValue
);
// Clean up the result set and prepared statement for the varValue query
rsVarValue
.
close
();
psVarValue
.
close
();
// Finally, use varValue to fetch the rate from pricelist
String
rateQuery
=
"select rate from pricelist where price_list = ?"
;
PreparedStatement
psRate
=
con
.
prepareStatement
(
rateQuery
);
psRate
.
setString
(
1
,
varValue
);
ResultSet
rsRate
=
psRate
.
executeQuery
();
int
MngmntAprvRate
=
0
;
if
(
rsRate
.
next
())
{
MngmntAprvRate
=
rsRate
.
getInt
(
"rate"
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in itm default rate:: "
+
rate
);
// Clean up the result set and prepared statement for the rate query
rsRate
.
close
();
psRate
.
close
();
String
priceSql
=
"SELECT TRIM(fp.var_name) AS var_name, pl.rate "
+
"FROM finparm fp "
+
"JOIN site s ON TRIM(s.fin_entity) = TRIM(fp.ADDL_VALUE) "
+
"JOIN pricelist pl ON TRIM(pl.price_list) = TRIM(fp.VAR_VALUE) "
+
"WHERE TRIM(s.site_code) = ? "
+
"AND TRIM(fp.VAR_NAME) IN ('RFQ_PTS','RFQ_PTD')"
;
PreparedStatement
psPrice
=
con
.
prepareStatement
(
priceSql
);
psPrice
.
setString
(
1
,
siteCode
);
ResultSet
rsPrice
=
psPrice
.
executeQuery
();
BigDecimal
pts
=
null
;
BigDecimal
ptd
=
null
;
BigDecimal
PriceRate
=
null
;
while
(
rsPrice
.
next
())
{
String
varName
=
checkNull
(
rsPrice
.
getString
(
"VAR_NAME"
));
PriceRate
=
rsPrice
.
getBigDecimal
(
"rate"
);
if
(
"RFQ_PTS"
.
equals
(
varName
))
{
pts
=
PriceRate
;
}
else
if
(
"RFQ_PTD"
.
equals
(
varName
))
{
ptd
=
PriceRate
;
}
}
//PTR calculation start
String
siteCustomerQuery
=
"SELECT PRICE_LIST FROM SITE_CUSTOMER "
+
"WHERE SITE_CODE = ? AND CUST_CODE = ?"
;
psSiteCustomer
=
con
.
prepareStatement
(
siteCustomerQuery
);
psSiteCustomer
.
setString
(
1
,
siteCode
);
psSiteCustomer
.
setString
(
2
,
custCode
);
rs
=
psSiteCustomer
.
executeQuery
();
if
(
rs
.
next
())
{
priceList
=
rs
.
getString
(
"PRICE_LIST"
);
}
rs
.
close
();
psSiteCustomer
.
close
();
// Step 2: If not found in SITE_CUSTOMER, fetch from CUSTOMER
if
(
priceList
==
null
||
priceList
.
trim
().
isEmpty
())
{
String
customerQuery
=
"SELECT PRICE_LIST FROM CUSTOMER WHERE CUST_CODE = ?"
;
psCustomer
=
con
.
prepareStatement
(
customerQuery
);
psCustomer
.
setString
(
1
,
custCode
);
rs
=
psCustomer
.
executeQuery
();
if
(
rs
.
next
())
{
priceList
=
rs
.
getString
(
"PRICE_LIST"
);
}
rs
.
close
();
psCustomer
.
close
();
}
// Step 3: Fetch RATE from PRICELIST table
if
(
priceList
!=
null
&&
!
priceList
.
trim
().
isEmpty
())
{
String
priceListQuery
=
"SELECT RATE FROM PRICELIST WHERE PRICE_LIST = ?"
;
psPriceList
=
con
.
prepareStatement
(
priceListQuery
);
psPriceList
.
setString
(
1
,
priceList
);
rs
=
psPriceList
.
executeQuery
();
if
(
rs
.
next
())
{
rate
=
rs
.
getInt
(
"RATE"
);
}
rs
.
close
();
psPriceList
.
close
();
}
//PTR calculation end
valueXmlString
.
append
(
"<rate_apprv>"
).
append
(
"<![CDATA["
+
MngmntAprvRate
+
"]]>"
).
append
(
"</rate_apprv>\r\n"
);
valueXmlString
.
append
(
"<ptd>"
).
append
(
"<![CDATA["
+
ptd
+
"]]>"
).
append
(
"</ptd>\r\n"
);
valueXmlString
.
append
(
"<pts>"
).
append
(
"<![CDATA["
+
pts
+
"]]>"
).
append
(
"</pts>\r\n"
);
valueXmlString
.
append
(
"<ptr>"
).
append
(
"<![CDATA["
+
rate
+
"]]>"
).
append
(
"</ptr>\r\n"
);
//Management rate block[End]
}
if
(
"item_code"
.
equalsIgnoreCase
(
currentColumn
.
trim
()))
{
String
itemDescr
=
""
;
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in item_code "
);
String
itemCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"item_code"
,
dom
));
String
itemDescrSql
=
"select descr from item where item_code = ?"
;
PreparedStatement
itemDescrPs
=
con
.
prepareStatement
(
itemDescrSql
);
itemDescrPs
.
setString
(
1
,
itemCode
);
ResultSet
itemDescrRs
=
itemDescrPs
.
executeQuery
();
while
(
itemDescrRs
.
next
())
{
itemDescr
=
itemDescrRs
.
getString
(
"descr"
);
}
valueXmlString
.
append
(
"<descr>"
).
append
(
"<![CDATA["
+
itemDescr
+
"]]>"
).
append
(
"</descr>\r\n"
);
}
if
(
"ptr_flag"
.
equalsIgnoreCase
(
currentColumn
.
trim
()))
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in ptr_flag "
);
String
custCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"cust_code"
,
dom1
));
String
rateStr
=
checkNull
(
genericUtility
.
getColumnValue
(
"ptr"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in ptr_flat condition:: "
+
ptrFlag
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in ptr_flat condition siteCode:: "
+
siteCode
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in ptr_flat condition custCode:: "
+
custCode
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in ptr_flat condition ptr:: "
+
rateStr
);
if
(
ptrFlag
.
equalsIgnoreCase
(
"Y"
))
{
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
"Final RATE : "
+
rate
);
valueXmlString
.
append
(
"<rate_quot protect='1'>"
).
append
(
"<![CDATA["
+
rateStr
+
"]]>"
).
append
(
"</rate_quot>\r\n"
);
}
else
if
(
ptrFlag
.
equalsIgnoreCase
(
"N"
))
{
valueXmlString
.
append
(
"<rate_quot protect='0'>"
).
append
(
"<![CDATA[]]>"
).
append
(
"</rate_quot>\r\n"
);
}
}
if
(
"rate_quot"
.
equalsIgnoreCase
(
currentColumn
.
trim
()))
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in rate_quot ::"
);
String
rateQuot
=
checkNull
(
genericUtility
.
getColumnValue
(
"rate_quot"
,
dom
));
String
itemCode
=
checkNull
(
genericUtility
.
getColumnValue
(
"item_code"
,
dom
));
String
rateApprv
=
checkNull
(
genericUtility
.
getColumnValue
(
"rate_apprv"
,
dom
));
String
ratePtr
=
checkNull
(
genericUtility
.
getColumnValue
(
"ptr"
,
dom
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC in rate_quot:: "
+
rateQuot
+
" rateApprv::"
+
rateApprv
+
" ratePtr::"
+
ratePtr
+
" itemCode::"
+
itemCode
);
if
(!
rateQuot
.
isEmpty
()
&&
!
rateApprv
.
isEmpty
())
{
BigDecimal
rateApprvVal
=
new
BigDecimal
(
rateApprv
);
BigDecimal
rateQuotVal
=
new
BigDecimal
(
rateQuot
);
BigDecimal
ratePtrVal
=
new
BigDecimal
(
ratePtr
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"ReqForQuotationIC after conversion rateQuotVal:: "
+
rateQuotVal
+
" rateApprvVal::"
+
rateApprvVal
+
" ratePtrVal::"
+
ratePtrVal
);
// added condition when ptr and rate_quot is same direct approval without management
if
(
ratePtrVal
.
compareTo
(
rateQuotVal
)
==
0
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in ratePtrVal == rateQuotVal condition"
);
String
detail1Xml
=
"<Detail1><mgmnt_apprv><![CDATA[N]]></mgmnt_apprv><wf_status><![CDATA[A]]></wf_status></Detail1>"
;
int
pos
=
valueXmlString
.
indexOf
(
"</header>"
);
if
(
pos
!=
-
1
)
{
pos
+=
"</header>"
.
length
();
// move after </header>
valueXmlString
.
insert
(
pos
,
detail1Xml
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in rateApprvVal greater condition updatedXml ::"
+
valueXmlString
);
}
if
(
rateApprvVal
.
compareTo
(
rateQuotVal
)
>
0
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in rateApprvVal greater condition"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in rateApprvVal greater condition valueXmlString::"
+
valueXmlString
);
String
detail1Xml
=
"<Detail1><mgmnt_apprv><![CDATA[Y]]></mgmnt_apprv><wf_status><![CDATA[P]]></wf_status></Detail1>"
;
int
pos
=
valueXmlString
.
indexOf
(
"</header>"
);
if
(
pos
!=
-
1
)
{
pos
+=
"</header>"
.
length
();
// move after </header>
valueXmlString
.
insert
(
pos
,
detail1Xml
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in rateApprvVal greater condition updatedXml ::"
+
valueXmlString
);
}
if
(
rateQuotVal
.
compareTo
(
rateApprvVal
)
>
0
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in rateQuotVal greater condition"
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in rateQuotVal greater condition valueXmlString::"
+
valueXmlString
);
String
detail1Xml
=
"<Detail1><mgmnt_apprv><![CDATA[]]></mgmnt_apprv><wf_status><![CDATA[]]></wf_status></Detail1>"
;
int
pos
=
valueXmlString
.
indexOf
(
"</header>"
);
if
(
pos
!=
-
1
)
{
pos
+=
"</header>"
.
length
();
// move after </header>
valueXmlString
.
insert
(
pos
,
detail1Xml
);
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in rateApprvVal greater condition updatedXml ::"
+
valueXmlString
);
}
}
//Calculating Revised PTR,PTD and PTS [Start]
PreparedStatement
resvisedRatePstmt
=
null
;
ResultSet
resvisedRateRs
=
null
;
try
{
String
resvisedRateSql
=
"select PHY_ATTRIB_13,PHY_ATTRIB_14,PHY_ATTRIB_15 from item where item_code = ?"
;
resvisedRatePstmt
=
con
.
prepareStatement
(
resvisedRateSql
);
resvisedRatePstmt
.
setString
(
1
,
itemCode
);
resvisedRateRs
=
resvisedRatePstmt
.
executeQuery
();
while
(
resvisedRateRs
.
next
())
{
String
distMarginStr
=
checkNull
(
resvisedRateRs
.
getString
(
"PHY_ATTRIB_13"
));
String
stockMarginStr
=
checkNull
(
resvisedRateRs
.
getString
(
"PHY_ATTRIB_14"
));
String
retailMarginStr
=
checkNull
(
resvisedRateRs
.
getString
(
"PHY_ATTRIB_15"
));
int
distMargin
=
0
;
int
stockMargin
=
0
;
int
retailMargin
=
0
;
try
{
distMargin
=
(
distMarginStr
!=
null
&&
distMarginStr
.
trim
().
length
()
>
0
)
?
Integer
.
parseInt
(
distMarginStr
.
trim
())
:
0
;
stockMargin
=
(
stockMarginStr
!=
null
&&
stockMarginStr
.
trim
().
length
()
>
0
)
?
Integer
.
parseInt
(
stockMarginStr
.
trim
())
:
0
;
retailMargin
=
(
retailMarginStr
!=
null
&&
retailMarginStr
.
trim
().
length
()
>
0
)
?
Integer
.
parseInt
(
retailMarginStr
.
trim
())
:
0
;
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Error parsing margin values"
);
}
BigDecimal
rateBD
=
new
BigDecimal
(
rateQuot
);
BigDecimal
hundred
=
new
BigDecimal
(
100
);
BigDecimal
retailMarginBD
=
new
BigDecimal
(
retailMargin
);
BigDecimal
stockMarginBD
=
new
BigDecimal
(
stockMargin
);
BigDecimal
distMarginBD
=
new
BigDecimal
(
distMargin
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"distMargin::"
+
distMargin
+
" stockMargin::"
+
stockMargin
+
" revisedPtd:: "
+
retailMargin
+
"rate:: "
+
rate
+
"]"
);
BigDecimal
revisedPtr
=
rateBD
.
divide
(
hundred
.
multiply
(
hundred
.
subtract
(
retailMarginBD
)),
6
,
RoundingMode
.
HALF_UP
);
BigDecimal
revisedPts
=
rateBD
.
divide
(
hundred
.
multiply
(
hundred
.
subtract
(
stockMarginBD
)),
6
,
RoundingMode
.
HALF_UP
);
BigDecimal
revisedPtd
=
rateBD
.
divide
(
hundred
.
multiply
(
hundred
.
subtract
(
distMarginBD
)),
6
,
RoundingMode
.
HALF_UP
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"revisedPtr::"
+
revisedPtr
+
" revisedPts::"
+
revisedPts
+
" revisedPtd::"
+
revisedPtd
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"revisedPtr::"
+
revisedPtr
+
" revisedPts::"
+
revisedPts
+
" revisedPtd:: "
+
revisedPtd
+
"]"
);
valueXmlString
.
append
(
"<revised_ptr>"
).
append
(
"<![CDATA["
+
revisedPtr
+
"]]>"
).
append
(
"</revised_ptr>\r\n"
);
valueXmlString
.
append
(
"<revised_pts>"
).
append
(
"<![CDATA["
+
revisedPts
+
"]]>"
).
append
(
"</revised_pts>\r\n"
);
valueXmlString
.
append
(
"<revised_ptd>"
).
append
(
"<![CDATA["
+
revisedPtd
+
"]]>"
).
append
(
"</revised_ptd>\r\n"
);
}
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception 1002. ["
+
E12GenericUtility
.
getStackTrace
(
e
)
+
"]"
);
}
finally
{
// Ensure you close the ResultSet and PreparedStatement afterwards to prevent memory leaks!
resvisedRateRs
.
close
();
resvisedRatePstmt
.
close
();
}
//Calculating Revised PTR,PTD and PTS [End]
}
valueXmlString
.
append
(
"</Detail2>\r\n"
);
break
;
}
}
BaseLogger
.
log
(
"3"
,
null
,
null
,
"in rateApprvVal greater condition reStr>>>>> "
+
reStr
);
valueXmlString
.
append
(
"</Root>\r\n"
);
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
"Exception :ReqForQuotationIC :itemChanged(Document,String):"
+
e
.
getMessage
()
+
":"
);
e
.
printStackTrace
();
}
finally
{
closeResources
(
rs
,
psSiteCustomer
,
conn
);
closeResources
(
rs
,
psCustomer
,
conn
);
closeResources
(
rs
,
psPriceList
,
conn
);
}
BaseLogger
.
log
(
"3"
,
getUserInfo
(),
null
,
"ReqForQuotationIC valueXmlString::"
+
valueXmlString
.
toString
());
return
valueXmlString
.
toString
();
}
private
void
closeResources
(
ResultSet
rs
,
PreparedStatement
pstmt
,
Connection
conn
)
{
if
(
rs
!=
null
)
{
try
{
rs
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
if
(
pstmt
!=
null
)
{
try
{
pstmt
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
if
(
conn
!=
null
)
{
try
{
conn
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
private
String
checkNull
(
String
input
)
{
if
(
input
==
null
)
{
input
=
""
;
}
else
{
input
=
input
.
trim
();
}
return
input
;
}
private
static
void
setNodeValue
(
Document
dom
,
String
nodeName
,
String
nodeVal
)
throws
Exception
{
Node
tempNode
=
dom
.
getElementsByTagName
(
nodeName
).
item
(
0
);
if
(
tempNode
!=
null
)
{
if
(
tempNode
.
getFirstChild
()
==
null
)
{
CDATASection
cDataSection
=
dom
.
createCDATASection
(
nodeVal
);
tempNode
.
appendChild
(
cDataSection
);
}
else
{
tempNode
.
getFirstChild
().
setNodeValue
(
nodeVal
);
}
}
tempNode
=
null
;
}
public
static
boolean
isDateInvalid
(
String
validUptoStr
)
{
try
{
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"dd/MM/yy"
);
LocalDate
validDate
=
LocalDate
.
parse
(
validUptoStr
,
formatter
);
LocalDate
currentDate
=
LocalDate
.
now
();
if
(
validDate
.
isBefore
(
currentDate
))
{
return
true
;
}
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception in date validation ["
+
e
+
"]"
);
}
return
false
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment