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
cb1fbef4
Commit
cb1fbef4
authored
Apr 10, 2026
by
Mohammed Dohadwala
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added the logic for creating same number of contracts as the number of
stockists.
parent
ab8142e9
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
321 additions
and
0 deletions
+321
-0
Mohammed/Sales Contract1/SalesContractAMDFromSalesQuotAMD.java
...med/Sales Contract1/SalesContractAMDFromSalesQuotAMD.java
+321
-0
No files found.
Mohammed/Sales Contract1/SalesContractAMDFromSalesQuotAMD.java
0 → 100644
View file @
cb1fbef4
package
ibase
.
webitm
.
ejb
.
dis
;
import
java.sql.Connection
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
ibase.utility.BaseLogger
;
import
ibase.utility.E12GenericUtility
;
import
ibase.webitm.ejb.ActionHandlerEJB
;
import
ibase.webitm.utility.ITMException
;
import
java.rmi.RemoteException
;
import
java.sql.Connection
;
import
javax.naming.InitialContext
;
import
ibase.system.config.AppConnectParm
;
import
ibase.system.config.ConnDriver
;
import
ibase.utility.BaseLogger
;
import
ibase.utility.GenericUtility
;
import
ibase.utility.UserInfoBean
;
import
ibase.webitm.ejb.ActionHandlerEJB
;
import
ibase.webitm.ejb.DBAccessEJB
;
import
ibase.webitm.ejb.MasterStatefulLocal
;
import
ibase.webitm.utility.ITMException
;
/*
* Author : Gagan B.
* Date : 23-MAR-2026
* Purpose : To create Sales Contract Amendment Transaction from Sales Quotation Amendment Transaction.
*
* Columns which can be amended in Sales Quotation AMD
* sales_quot_amd.VALID_UPTO ------------- scontractamd.VALID_UPTO
* sales_quotdet_amd.QUANTITY ------------- scontractamddet.QUANTITY
* sales_quotdet_amd.RATE ------------- scontractamddet.RATE
*/
public
class
SalesContractAMDFromSalesQuotAMD
extends
ActionHandlerEJB
{
DBAccessEJB
dbAccessEJB
=
new
DBAccessEJB
();
GenericUtility
genericUtility
=
new
GenericUtility
();
// Detail1
public
String
generateTransXMLForHeader
(
String
tranID
,
UserInfoBean
userInfo
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"generateTransXMLForHeader called. amd_no=["
+
tranID
+
"]"
);
StringBuffer
transXML
=
new
StringBuffer
();
String
quotNo
=
""
;
String
validUpto
=
""
;
String
contractNo
=
""
;
String
fromDate
=
""
;
try
{
quotNo
=
dbAccessEJB
.
getDBColumnValue
(
"sales_quot_amd"
,
"quot_no"
,
"amd_no = '"
+
tranID
+
"'"
,
userInfo
.
getTransDB
());
BaseLogger
.
log
(
"3"
,
null
,
null
,
"quotNo=["
+
quotNo
+
"]"
);
validUpto
=
dbAccessEJB
.
getDBColumnValue
(
"sales_quot_amd"
,
"valid_upto"
,
"amd_no = '"
+
tranID
+
"'"
,
userInfo
.
getTransDB
());
BaseLogger
.
log
(
"3"
,
null
,
null
,
"validUpto=["
+
validUpto
+
"]"
);
contractNo
=
dbAccessEJB
.
getDBColumnValue
(
"scontract"
,
"contract_no"
,
"quot_no = '"
+
quotNo
+
"'"
,
userInfo
.
getTransDB
());
BaseLogger
.
log
(
"3"
,
null
,
null
,
"contractNo=["
+
contractNo
+
"]"
);
fromDate
=
dbAccessEJB
.
getDBColumnValue
(
"sales_quot_amd"
,
"from_date"
,
"amd_no = '"
+
tranID
+
"'"
,
userInfo
.
getTransDB
());
BaseLogger
.
log
(
"3"
,
null
,
null
,
"fromDate=["
+
fromDate
+
"]"
);
}
catch
(
RemoteException
|
ITMException
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception in generateTransXMLForHeader. ["
+
e
.
getMessage
()
+
"]"
);
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception in generateTransXMLForHeader. ["
+
e
.
getMessage
()
+
"]"
);
}
// transXML.append("<amd_no><![CDATA[" + tranID + "]]></amd_no>");
transXML
.
append
(
"<valid_upto><![CDATA["
+
dateFormatter
(
validUpto
)
+
"]]></valid_upto>"
);
transXML
.
append
(
"<eff_from><![CDATA["
+
dateFormatter
(
fromDate
)
+
"]]></eff_from>"
);
transXML
.
append
(
"<contract_no><![CDATA["
+
contractNo
+
"]]></contract_no>"
);
System
.
out
.
println
(
"SalesContractAMD transXMLHeader ["
+
transXML
+
"]"
);
return
transXML
.
toString
();
}
//Detail2
public
String
generateTransXMLForDetail
(
String
tranID
,
UserInfoBean
userInfo
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"generateTransXMLForDetail called. amd_no=["
+
tranID
+
"]"
);
StringBuffer
transXML
=
new
StringBuffer
();
String
quotNo
=
""
;
String
lineNo
=
""
;
String
itemCode
=
""
;
String
quantity
=
""
;
String
rate
=
""
;
String
lineNoContract
=
""
;
java
.
sql
.
Connection
detailConn
=
null
;
java
.
sql
.
PreparedStatement
pstmt
=
null
;
java
.
sql
.
ResultSet
rs
=
null
;
try
{
quotNo
=
dbAccessEJB
.
getDBColumnValue
(
"sales_quot_amd"
,
"quot_no"
,
"amd_no = '"
+
tranID
+
"'"
,
userInfo
.
getTransDB
());
BaseLogger
.
log
(
"3"
,
null
,
null
,
"quotNo=["
+
quotNo
+
"]"
);
ConnDriver
connDriver
=
new
ConnDriver
();
detailConn
=
connDriver
.
getConnectDB
(
userInfo
.
getTransDB
());
pstmt
=
detailConn
.
prepareStatement
(
"SELECT line_no, item_code, quantity, rate FROM sales_quotdet_amd WHERE quot_no = ? AND amd_no = ?"
);
pstmt
.
setString
(
1
,
quotNo
);
pstmt
.
setString
(
2
,
tranID
);
rs
=
pstmt
.
executeQuery
();
while
(
rs
.
next
())
{
lineNo
=
checkNull
(
rs
.
getString
(
"line_no"
));
itemCode
=
checkNull
(
rs
.
getString
(
"item_code"
));
quantity
=
checkNull
(
rs
.
getString
(
"quantity"
));
rate
=
checkNull
(
rs
.
getString
(
"rate"
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"lineNo=["
+
lineNo
+
"] itemCode=["
+
itemCode
+
"] quantity=["
+
quantity
+
"] rate=["
+
rate
+
"]"
);
// lineNoContract = dbAccessEJB.getDBColumnValue("scontractamddet",
// "line_no__contract",
// "amd_no = '" + tranID + "' AND line_no = '" + lineNo + "'",
// userInfo.getTransDB());
// BaseLogger.log("3", null, null, "lineNoContract=[" + lineNoContract + "]");
transXML
.
append
(
"<Detail2 dbID='' domID='2' objContext='2' objName='scontract_amd'>"
);
transXML
.
append
(
"<attribute IS_CHANGE='Y' pkNames='AMD_NO' selected='N' status='N' updateFlag='A'/>"
);
// transXML.append("<amd_no><![CDATA[" + tranID + "]]></amd_no>");
transXML
.
append
(
"<line_no><![CDATA["
+
lineNo
+
"]]></line_no>"
);
transXML
.
append
(
"<item_code><![CDATA["
+
itemCode
+
"]]></item_code>"
);
transXML
.
append
(
"<quantity><![CDATA["
+
quantity
+
"]]></quantity>"
);
transXML
.
append
(
"<rate><![CDATA["
+
rate
+
"]]></rate>"
);
transXML
.
append
(
"<line_no__contract><![CDATA["
+
lineNo
+
"]]></line_no__contract>"
);
transXML
.
append
(
"</Detail2>"
);
}
}
catch
(
RemoteException
|
ITMException
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception in generateTransXMLForDetail. ["
+
e
.
getMessage
()
+
"]"
);
e
.
printStackTrace
();
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception in generateTransXMLForDetail. ["
+
e
.
getMessage
()
+
"]"
);
}
finally
{
try
{
if
(
rs
!=
null
)
{
rs
.
close
();
rs
=
null
;
}
if
(
pstmt
!=
null
)
{
pstmt
.
close
();
pstmt
=
null
;
}
if
(
detailConn
!=
null
)
{
detailConn
.
close
();
detailConn
=
null
;
}
}
catch
(
Exception
e
)
{}
}
System
.
out
.
println
(
"SalesContractAMD transXMLDetail ["
+
transXML
+
"]"
);
return
transXML
.
toString
();
}
// Builds full processXML from header + detail and calls processRequest.
public
String
createSalesContractAMD
(
String
transXMLHeader
,
String
transXMLDetail
,
UserInfoBean
userInfo
)
throws
Exception
{
String
result
=
""
;
Connection
connection
=
null
;
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Inside createSalesContractAMD.."
);
try
{
AppConnectParm
appConnect
=
new
AppConnectParm
();
InitialContext
initialContext
=
new
InitialContext
(
appConnect
.
getProperty
());
ConnDriver
connDriver
=
new
ConnDriver
();
connection
=
connDriver
.
getConnectDB
(
userInfo
.
getTransDB
());
StringBuffer
processDynXmlString
=
new
StringBuffer
();
processDynXmlString
.
append
(
"<DocumentRoot><description>Datawindow Root</description><group0>"
);
processDynXmlString
.
append
(
"<description>Group0 description</description><Header0><description>Header0 members</description>"
);
processDynXmlString
.
append
(
"<objName><![CDATA[scontract_amd]]></objName>"
);
processDynXmlString
.
append
(
"<pageContext><![CDATA[1]]></pageContext>"
);
processDynXmlString
.
append
(
"<objContext><![CDATA[1]]></objContext>"
);
processDynXmlString
.
append
(
"<editFlag><![CDATA[A]]></editFlag>"
);
processDynXmlString
.
append
(
"<focusedColumn><![CDATA[]]></focusedColumn>"
);
processDynXmlString
.
append
(
"<action><![CDATA[SAVE]]></action>"
);
processDynXmlString
.
append
(
"<elementName><![CDATA[]]></elementName>"
);
processDynXmlString
.
append
(
"<keyValue><![CDATA[1]]></keyValue>"
);
processDynXmlString
.
append
(
"<saveLevel><![CDATA[1]]></saveLevel>"
);
processDynXmlString
.
append
(
"<forcedSave><![CDATA[false]]></forcedSave>"
);
processDynXmlString
.
append
(
"<Detail1 dbID='' domID='1' objContext='1' objName='scontract_amd'>"
);
processDynXmlString
.
append
(
"<attribute IS_CHANGE='Y' pkNames='AMD_NO' selected='N' status='N' updateFlag='A'/>"
);
processDynXmlString
.
append
(
transXMLHeader
);
processDynXmlString
.
append
(
"</Detail1>"
);
processDynXmlString
.
append
(
transXMLDetail
);
processDynXmlString
.
append
(
"</Header0></group0></DocumentRoot>"
);
String
xmlString
=
processDynXmlString
.
toString
();
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Xml String.. "
+
xmlString
);
MasterStatefulLocal
masterStateful
=
(
MasterStatefulLocal
)
initialContext
.
lookup
(
"ibase/MasterStatefulEJB/local"
);
String
retString
=
masterStateful
.
processRequest
(
userInfo
,
xmlString
,
false
,
connection
,
"B"
,
true
);
result
=
retString
;
BaseLogger
.
log
(
"3"
,
null
,
null
,
"createSalesContractAMD retString.."
+
result
);
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception in createSalesContractAMD. ["
+
e
.
getMessage
()
+
"]"
);
throw
e
;
}
finally
{
try
{
if
(
connection
!=
null
)
{
connection
.
close
();
connection
=
null
;
}
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception in createSalesContractAMD finally. ["
+
e
.
getMessage
()
+
"]"
);
}
}
return
result
;
}
public
String
confirmCreateSalesContract
(
String
tranID
,
String
xtraParam
,
Connection
conn
)
throws
ITMException
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"=== SalesContractFromSalesQuot START ==="
);
String
result
=
""
;
PreparedStatement
pstmt
=
null
;
ResultSet
rs
=
null
;
try
{
if
(
conn
==
null
)
{
ConnDriver
connDriver
=
new
ConnDriver
();
conn
=
connDriver
.
getConnectDB
(
getUserInfo
().
getTransDB
());
}
String
userCode
=
genericUtility
.
getValueFromXTRA_PARAMS
(
xtraParam
,
"loginCode"
);
ibase
.
ejb
.
CommonDBAccessEJB
commonDBAccessEJB
=
new
ibase
.
ejb
.
CommonDBAccessEJB
();
UserInfoBean
userInfo
=
commonDBAccessEJB
.
createUserInfo
(
userCode
);
String
sql
=
"SELECT LINE_NO FROM SALES_QUOT_STOCKIST WHERE QUOT_NO=? ORDER BY LINE_NO"
;
pstmt
=
conn
.
prepareStatement
(
sql
);
pstmt
.
setString
(
1
,
tranID
);
rs
=
pstmt
.
executeQuery
();
int
iteration
=
0
;
while
(
rs
.
next
())
// Loop
{
String
lineNo
=
E12GenericUtility
.
checkNull
(
rs
.
getString
(
"LINE_NO"
));
BaseLogger
.
log
(
"3"
,
null
,
null
,
"confirmCreateSalesContractAMD called. amd_no=["
+
tranID
+
"]"
);
String
transXMLHeader
=
generateTransXMLForHeader
(
tranID
,
userInfo
);
String
transXMLDetail
=
generateTransXMLForDetail
(
tranID
,
userInfo
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"DEBUG: Iter="
+
iteration
+
" | tranID="
+
tranID
+
" | lineNo="
+
lineNo
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"\n\n===\n"
+
"ITERATION: "
+
iteration
+
"\n"
+
"DETAIL1 \n"
+
"===\n"
+
transXMLHeader
);
BaseLogger
.
log
(
"3"
,
null
,
null
,
"\n\n===\n"
+
"ITERATION: "
+
iteration
+
"\n"
+
"DETAIL2 \n"
+
"===\n"
+
transXMLDetail
);
result
=
createSalesContractAMD
(
transXMLHeader
,
transXMLDetail
,
userInfo
);
}
}
catch
(
Exception
e
)
{
BaseLogger
.
log
(
"3"
,
null
,
null
,
"Exception in confirmCreateSalesContractAMD. ["
+
e
.
getMessage
()
+
"]"
);
throw
new
ITMException
(
e
);
}
return
result
;
}
private
String
checkNull
(
String
input
)
{
return
(
input
==
null
)
?
""
:
input
;
}
private
String
dateFormatter
(
String
inputDate
)
{
try
{
java
.
text
.
SimpleDateFormat
inputFormat
=
new
java
.
text
.
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
java
.
text
.
SimpleDateFormat
outputFormat
=
new
java
.
text
.
SimpleDateFormat
(
"dd/MM/yy HH:mm:ss"
);
return
outputFormat
.
format
(
inputFormat
.
parse
(
inputDate
));
}
catch
(
Exception
e
)
{
return
inputDate
;
}
}
}
\ No newline at end of file
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