Académique Documents
Professionnel Documents
Culture Documents
INDEX
S.No.
1.
TITLE
INTRODUCTION
1.1 COMPANY PROFILE
1.2 PROJECT OVERVIEW
.
2.
SYSTEM ANALYSIS
2.1 FEASIBLITY STUDY
2.2 EXISTING SYSTEM
3.
4.
5.
SYSTEM DESCRIPTION
6.
7.
8.
9.
BIBLIOGRAPHY
PAGE NO
SYNOPSIS
SYNOPSIS
ENTERPRISE RESOURCE PLANNING
Software offers integration between all divisions of business processes, providing
financial, accounting, logistical and analytical support to streamline your business for better
service and administration.
One of main highlights of Software is that it integrates workflow, messaging,
distribution operations and financial modules together, giving the complete flow of any
business from customer request from quotations to product collections.
You will be informed of the status of every transaction once you are log into
TaskHub. Software eases your job by helping you organize your business schedule, check
on customer's financial credibility, and secure a complete financial position for bank
facility and etc.
Software is fully web based and it conforms to J2EE standard.
Easy Access
As Software is a web-based solution, users all over the world will be able to access the
system with the ease of a web-browser.
Manages Work Flow
ERPware eases your job; helping you organize your work schedule. With a built in alert,
reminders will be sent to the users to help reduce bottlenecks.
Customizes Users' Portal
Each of the portals will be customized to the needs and authorization of the user, whereby
they will only see the information that they require.
An Overview
Purchasing
Purchase Requisition
Purchase Order
Sales
Sales Quotation
Sales Order
Accounts
Accounts Payable
Accounts Receivable
General Ledger
Bank Book
Consolidation
Fixed Asset
Trade Finance
Logistic
Inventory Control
Logistic Planning
Shipping Coordination
Warehousing
Management
Billing & Planning
Other Vertical Modules
Project Costing
Service Module
Work Order
Business
INTRODUCTION
Vision
Since its inception in 1990, K2S has been consistently bringing out various products to
enable its customers to migrate to the latest technologies. Since then, K2S has grown to
become the acknowledged world leader in migrations and today provides a wide and
comprehensive selection of migration software prepackaged solutions to meet the growing
demand for cross-platform migrations in today's scenario.
K2S Specializes in many areas like
Migration
Conversion tools
Web developments
WAP Technologies
Data warehousing
Multimedia Projects.
KSPL Services:
KSPL focuses on domestic and overseas market with its expertise on cutting edge and
proven technologies.
Some of the expertise includes the following:
E.R.P Solutions
Multimedia Projects
SYSTEM CONFIGURATION
3 SYSTEM CONFIGURATION
Memory
128MB of RAM
Hard Disk
20 GB HDD
ArrayList
HashMap
LinkedList
Objects created from these classes provide convenient management of sets of other objects.
An advantage of a collection over an array is that you dont need to know the eventual size
of the collection in order to add objects to it. The disadvantage of a collection is that it is
generally larger than an array of the same size. For example, you can create a LinkedList
object to manage a set of objects of unknown size by saying:
LinkedList l = new LinkedList();
l.Add("Bob");
l.Add("Mary");
l.Add("Jane");
Note that in versions of Java before 1.2, the Vector and Hashtable classes were often used
to manage collections of objects. These classes, however, are synchronized, meaning they
are safe for multi-threaded use. Synchronization has performance implications. If you do
not require synchronization behavior, you will achieve better performance by using the
newer ArrayList and HashMap classes.
Iterators
Some collection classes provide built-in iterators to make it easy to traverse their contents.
The built-in iterator is derived from the java.util.Iterator class. This class enables you to
walk a collection of objects, operating on each object in turn. Remember when using an
iterators that it contains a snapshot of the collection at the time the iterator was obtained.
Its best not to modify the contents of the collection while you are iterating through it.
String and StringBuffer Classes
Java provides convenient string manipulation capabilities via the java.lang.String and
java.lang.StringBuffer classes. One of the most common performance-impacting errors new
Java programmers make is performing string manipulation operations on String objects
instead of StringBuffer objects.
String objects are immutable, meaning their value cannot be changed once they are created.
So operations like concatenation that appear to modify the String object actually create a
new String object with the modified contents of the original String object. Performing
many operations on String objects can become computationally expensive.
The StringBuffer class provides similar string manipulation methods to those offered by
String, but the StringBuffer objects are mutable, meaning they can be modified in place.
Exceptions
Java defines a common strategy for dealing with unexpected program conditions. An
exception is a signal that something unexpected has occurred in the code. A method throws
an exception when it encounters the unexpected condition. When you call a method that
throws an exception, the Java compiler will force you to handle the exception by placing
the method call within a try-catch block (see below).
An exception is a Java object, which makes it easy to get information about the exception
by calling its methods. Most Java exception objects inherit from the basic
java.lang.Exception class. Specific exception classes contain information pertinent to the
particular condition encountered. For example, a SQLException object provides
information about a SQL error that occurred.
Try-Catch-Finally Blocks
You use try-catch-finally blocks to handle exceptions. The try-catch-finally block allows
you to group error handling code in a single place, near to but not intermingled with the
program logic.
The following example demonstrates a try-catch-finally block. It assumes that method
doSomething() declares that it throws the BadThingHappenedException:
public void callingMethod()
{
try
{
doSomething();
}
catch (BadThingHappenedException ex)
{
<examine exception and report or attempt recovery>
}
finally
{
<clean up any work that may have been accomplished in the try block>
}
return;
}
The finally block is executed if any portion of the try block executed and an exception was
thrown. This give you the opportunity to clean up any partial work that was performed. For
example, if a file had been opened in the try block before the exception occurred, the finally
block could include code to close the file.
PROJECT DESIGN
4 PROJECT DESIGN
System flowchart describes the data flow for a data processing system. A systems
flowchart is commonly used in analysis and design. It provides a logical diagram of how
the system operates. It represents the flow of documents, the operations performed in data
processing system. It also reflects the relationship between inputs, processing and outputs.
Following are the features of system flowcharts:
The sources from which data is generated and device used for this purpose.
The intermediate and final output prepared and the devices used for their
storage.
Start/End
The terminator symbol marks the starting or end point of
the system. It usually contains the word start or End.
Decision
A decision or branching point. Lines representing different
decisions emerge from different points of the diamond.
Connector
Indicates that the flow continues where a matching
symbol (containing the same letter) has been placed.
Flow Line
Lines indicate the sequence of steps and the
direction of flow.
Data storage
Indicates a step where data gets stored.
Database
Indicates a list of information with a standard
structure that allows for searching and sorting.
Display
Indicates a step that displays information.
Off Page
Indicates
Process
DATA STORES
Data stores represent stores of data within the system. File or data store is
depositary of data. They contain data that is retained in the system. Processes can enter the
data into a data store or retrieve data from the data store. Each data store is represented by
thin line in the data flow diagram and each data store has a unique name. Examples,
computer files or databases.
An open-ended box represents a data/store data at rest or a temporary
repository of data.
The data store is represented in form of a line
EXTERNAL ENTITIES
External entities are out side the system but they either supply input data into the
system or use the system output. they are entities which the designer has no control. Square
or rectangle may represent external entities that supply data into a system or some times
called sources. External entities that use the system data are sometimes called sinks.
External entities represent the source of data as input to the system. They are also
the destination of system data. External entities can be called data stores out side the
system. These are represented by squares
DATA FLOWS
A data flow shows the flow of information from its source to its destination. A line
represents a data flow, with arrowheads showing the direction of flow. Information always
flows to or from a process and may be written, verbal or electronic. Each data flow may be
referenced by the processes or data stores at its head and tail, or by a description of its
contents.
Check
valid user
Invalid user
If new user
Create a
new
user.
Want to View
private
messages
Want to
log or
clarify the
doubts.
Reply to the
doubts posted by
some other user.
cust_det
Primary Key
cust_code
Name
cust_code
Data type
Varchar
Size
20
cust_name
Varchar
30
address1
Varchar
30
Address2
Varchar
30
City
Varchar
30
Mobile
Int
20
Varchar
30
Table name
Orderdet
ForeignKey
cust_code,item_code
Name
cust_code
Data type
Varchar
Size
30
item_code
Varchar
30
order_no
Varchar
30
order_date
Datetime
order_qty
Int
10
req_date
Datetime
Table name
Stockdet
Primary key
item_code
Name
item_code
Data type
Varchar
Size
30
item_name
Varchar
30
unit_price
Decimal
20
qty_on_hand
Int
10
App_name
Varchar
30
unit_desc
Varchar
20
reorder_level
Int
20
Table name
Vendorsdet
Primary key
ven_code
Name
Ven_code
Data type
Varchar
Size
30
Ven_name
Varchar
30
address1
Varchar
30
Address2
Varchar
30
City
Varchar
30
Mobile
Int
20
Varchar
30
System Design
System Design of the information processing system covering the activities of
determining detailed requirements, design of data/information flow, design of database,
design of user interface, physical design, and design of hardware/software configuration.
Input Design
This section is a description of the input media used by the operator for providing
information to the system. The main task of this design is as follows:
Explain the difference between data capture, data entry, and data input.
Select proper screen-based controls for input attribute that are to appear on a
GUI input screen.
Output Design
This section describes of the system output design relative to the user/operator.
System outputs include reports, data display screens and GUIs, query results, etc. The
following should be provided, if appropriate:
Identification of codes and names for reports and data display screens
PHYSICAL DESIGN
Physical design
Describes how the processing will be performed; for example, whether data is input by a
person or read by a bar code reader, whether a file is electronic or print. Tools to represent
the physical design include a system flow charts and structure charts. System flow chart is
there in system development section.
LOGICAL DESIGN
Logical design
Describes the functions required of a system, that is, what is to be done, not how it will be
done. Logical design is not concerned with hardware and software requirements but rather
with the processes to be performed. Context diagrams, data flow diagrams and data
dictionaries are useful tools in representing the logical design of a system. Data flow
diagram is attached in the system development phase.
4.1 NORMALIZATION
Create separate tables for each group of related data and identify each row
with a unique column or set of columns (the primary key).
Second normal form (2NF) further addresses the concept of removing duplicative data:
Remove subsets of data that apply to multiple rows of a table and place them
in separate tables.
Remove columns that are not dependent upon the primary key.
Implementation of Normalization:
To maintain which user belongs to which group the table is splitted into two. One is
used to maintain the group_id and the user_id. Another one is used to maintain the group
details. Forum_user_groups is used to maintain the group_id and user_id. In this group_id
is foreign key of the table forum_groups and user_id is the foreign key of the table
forum_users. Forum_users is used to maintain the details of the group. In this table
group_id is primary key and group_name should not be null.
To maintain the details which users post the doubt the table is splitted into two. One
is used to maintain the details about the doubt posted timings, user, and status of the doubt.
Another one is used to maintain the message posted. Forum_posts is used to maintain the
details about the doubt posted timings, user and status of the doubt. In this table post_id is
primary key. Forum_posts_text is used to maintain the details about the text posted and the
subject of the doubt. In this table post_id is reference of the table Forum_posts.
SYSTEM DESCRIPTION
5. SYSTEM DESCRIPTION
Requirement Specification
This software is used to clarify the technical doubts and to share the knowledge with
other employees in an efficient way. This forum is used to post the doubts. All the
employees can login to the forum and they can view the doubts posted by the other
employees. If they know the solutions, they can reply to that doubts with suitable
description. Not only the doubts, if they know some new concepts, or any ideas to share
with all the employees then they can use this forum.
It is having both public messages and private messages. Public message mean it is
visible to all the employees and it is used to share the official and technical ideas. Private
message means it is visible to only to that person. It is used to personal chats and team
communication. Private Messages is also used to clarify the doubts within the team.
This software is developed using J2EE technology as a front end and Oracle as a
back end tool. The system consists of two modules. They are
Administration
General Users
Administration Module
User Profile Settings
Administrator and that particular user can modify the profile settings of user.
Administrator can add the user to any particular group. Users profile can be
modified.
If user forget the password then he/she can request admin to reset the password. Admin
Will reset the password and give the new password. Admin can change the group of the
user. When the user changed to some other project then the group of that person will get
automatically changed.
Permission Settings
Various permissions for the group can be set. For Example some of the user in the
group can view the topics posted by the user. Some of the user can reply to the topic. These
types of permissions can be set by the administration when creating the group. Some group
has the information about the concern. This type of the group has only viewing permission.
Admin also have the permission to delete the group.
Message Approving
Administrator will done the message Approving. If any message got the exact
answer then that message is freeze by the administrator. Then that can only viewed by all
the users, it is not possible to reply to that message. Administrator can also delete message,
which is considered as junk messages. Is some messages are not replied for the long time
then it can be rejected by the administrator.
Rankings
Rankings are used to rate the users according to their response to the various
questions. Ranking is also done for the question, which got more than specified number of
reply. Only the administrator inserts the new types of ranking. Editing properties of already
existing rankings are done by administrator.
Smilies
An emoticon, also called a smilie, is a sequence of printable characters such as :), ^^, or :-) or a small image that is intended to represent a human facial expression and
convey an emotion. Emoticons are a form of paralanguage commonly used in email
messages, in online bulletin boards, or in chat rooms. The word emoticon is a
portmanteau based on emotion and icon. Administrator will inserts new smilies
pictures. Admin has rights to delete or update any smilies picture.
Configuration
Admin will configure the properties like topics per page, posts per page, user
per page, avatar size and maximum number of attachments per post.
General Users Module
In this General module,
Registration
If the user already registered then he/she can login to the discussion forum. If the
user is new then he/she should register their details and submit the registration form.
In the registration form the details like name; email address and password should be
entered. After the successful registration the appropriate message will be displayed.
Profile Settings
In this page the user can enter their information like their occupation, interest
details. They can also set the signature details, which is used when they send or receive any
private message or when posting or reply to the doubts. In this page the avatar for that
particular user can be loaded that will be displayed when any user want to see the profile of
that particular user.
Member Listing
In this page any user can view the entire user list. The details like each and every
users registration date, email id and number of messages posted are displayed.
Recent Topics
In this page the recent doubts or topics posted by any user will be displayed. By
using this page the interested person can clear the doubts.
Software Specification
Software used in this project is Html, JavaScript, JSP, Java, Servlets, JDBC.
HTML - Simple English Wikipedia (This is the text of the title. Readers can see this
in the bar at the top of the screen)
</title> (This tag tells the browser that this is the end of the title)
</head> (This tag tells the browser that this is the end of the head)
<body> (This tag tells the browser that this is the top of the page)
<p> (This tag is the start of a paragraph)
Here is some text.
</p> (This tag is the end of a paragraph)
</body> (This tag tells the browser that this is the end of the page and the last part
to show the readers)
</html> (This tag tells the browser that this is the end of the HTML)
Java
The Java programming language is a high-level language that can be
characterized by all of the following buzzwords:
Simple
Object oriented
Distributed
Multithreaded
Architecture neutral
Portable
Dynamic
High performance
Secure
Robust
A .class file does not contain code that is native to your processor; it
instead contains bytecodes-- the machine language of the Java Virtual
Machine. The Java launcher tool (java) then runs your application with an
instance of the Java Virtual Machine.
JVM the base for the Java platform and is ported onto various hardwarebased platforms.
The API is a large collection of ready-made software components that
provide many useful capabilities, such as graphical user interface (GUI) widgets. It
is grouped into libraries of related classes and interfaces; these libraries are known
as packages.
The following figure depicts how the API and the Java Virtual Machine
insulate the program from the hardware.
Jsp
While there are numerous technologies for building web applications that serve
dynamic content, the one that has really caught the attention of the development community
is Java Server Pages (JSP). JSP not only enjoys cross-platform and cross-Web-server
support, but effectively melds the power of server-side Java technology with the
WYSIWYG features of static HTML pages.
JSP pages typically comprise of:
Consequently, you can create and maintain JSP pages by conventional HTML/XML tools.
It is important to note that the JSP specification is a standard extension defined on
top of the Servlet API. Thus, it leverages all of your experience with servlets.
There are significant differences between JSP and servlet technology. Unlike
servlets, which is a programmatic technology requiring significant developer expertise, JSP
appeals to a much wider audience. It can be used not only by developers, but also by page
designers, who can now play a more direct role in the development life cycle.
Another advantage of JSP is the inherent separation of presentation from content
facilitated by the technology, due its reliance upon reusable component technologies like
the JavaBeans component architecture and Enterprise JavaBeans technology.
JSP Advantages
Separation of static from dynamic content:
With servlets, the logic for generation of the dynamic content is an intrinsic part of
the servlet itself, and is closely tied to the static presentation templates responsible for the
user interface. Thus, even minor changes made to the UI typically result in the
recompilation of the servlet. This tight coupling of presentation and the content results in
brittle, inflexible applications. However, with JSP, the logic to generate the dynamic
content is kept separate from the static presentation templates by encapsulating it within
external JavaBeans components. These are then created and used by the JSP page using
special tags and scriptlets. When a page designer makes any changes to the presentation
template, the JSP page is automatically recompiled and reloaded into the web server by the
JSP engine.
Write Once Run Anywhere
JSP technology brings the "Write Once, Run Anywhere" paradigm to interactive
Web pages. JSP pages can be moved easily across platforms, and across web servers,
without any changes.
Dynamic content can be served in a variety of formats:
There is nothing that mandates the static template data within a JSP page to be of a
certain format. Consequently, JSP can service a diverse clientele ranging from conventional
browsers using HTML/DHTML, to handheld wireless devices like mobile phones and
PDAs using WML, to other B2B applications using XML.
Recommended Web access layer for n-tier architecture
In the Model 1 architecture, the incoming request from a web browser is sent
directly to the JSP page, which is responsible for processing it and replying back to the
client. There is still separation of presentation from content, because all data access is
performed using beans.
Although the Model 1 architecture is suitable for simple applications, it may not be
desirable for complex implementations. Indiscriminate usage of this architecture usually
leads to a significant amount of scriptlets or Java code embedded within the JSP page,
especially if there is a significant amount of request processing to be performed.
While this may not seem to be much of a problem for Java developers, it is certainly
an issue if your JSP pages are created and maintained by designers--which are usually the
norm on large projects. Another downside of this architecture is that each of the JSP pages
must be individually responsible for managing application state and verifying
authentication and security.
Front components (also known as controllers) do not handle any presentation issues,
but rather, process all the HTTP requests. Here, they are responsible for creating any beans
or objects used by the presentation components, as well as deciding, depending on the
user's actions, which presentation component to forward the request to. Front components
can be implemented as either a servlet or JSP page.
The advantage of this architecture is that there is no processing logic within the
presentation component itself; it is simply responsible for retrieving any objects or beans
that may have been previously created by the controller, and extracting the dynamic content
within for insertion within its static templates. Consequently, this clean separation of
presentation from content leads to a clear delineation of the roles and responsibilities of the
developers and page designers on the programming team. Another benefit of this approach
is that the front components present a single point of entry into the application, thus making
the management of application state, security, and presentation uniform and easier to
maintain.
Testing is the one step in the software engineering process that could be viewed as
destructive rather than constructive.
preconceived notions of the correctness of the software just developed and overcome a
conflict of interest that occurs when errors are uncovered.
If testing is conducted successfully, it uncovers errors in the software.
As a
Effective testing early in the process translates directly into long-term cost saving
from a reduced number of errors. The first trust for system is to see whether it produces
correct outputs. The test data may be artificial or live.
The software, which has been developed, has to be tested to prove its validity.
Testing is considered to be the least creative phase of the whole cycle of system design. In
the real it is the phase, which helps to bring out the creativity of the other phases makes it
shine. In this project following techniques of software testing are implemented.
White Box Testing
By using this technique it was tested that all the individual logical paths were
executed at least once, all the logical decision were tested on both there true and false sides.
All the loops were tested with data in between the ranges and especially at the boundary
values.
Black Box Testing
By using this technique, the missing functions were identified and placed in their
positions. The errors in the interfaces were identified and corrected. This technique was
also used to identify the initialization and termination errors and correct them.
The block box testing methods test the functional requirements of the software.
This enables the software engineer to derive sets of input conditions that will exercise all
functional requirements for a program, these attempts to find errors in the following
categories.
Interface errors.
Performance errors.
Integration Testing:
Again this software testing strategy has different approach in which integration is
carried out from the top level module to the bottom and the bottom up approach in which
integration is carried out from the low level module to the top.
This
test
Validation Testing:
Validation testing is done to validate the inputs given by the user. The user inputs
are checked for their correctness and range. If there are errors, the error message is given
and the user is prompted again to enter the new value. If the user types some characters in
the numeric field an error message and it is demonstrated in the following figure.
System Testing:
Software testing is an important element of software quality assurance and
represents the ultimate review of specification, design and coding. There are rules that can
serve as testing objectives. They are
SOURCE CODE
package com.cibc.onesys.ccms.dao;
import com.cibc.onesys.ccms.borrower.*;
import com.cibc.onesys.ccms.vo.BorrowerVO;
import com.cibc.onesys.ccms.wip.CcmsSearchForm;
import com.cibc.onesys.ccms.wip.CcmsSearchHolder;
import com.cibc.onesys.ccms.notepad.CcmsNotepadForm;
import com.cibc.onesys.ccms.notepad.CcmsNotepadHolder;
import com.cibc.onesys.ccms.reports.*;
import com.cibc.onesys.common.exception.DatabaseException;
import com.cibc.onesys.common.utils.ConnectionHelper;
import com.cibc.onesys.common.utils.CibcLogger;
import com.cibc.onesys.common.utils.sql.*;
import com.cibc.onesys.common.utils.struts.CibcCurrencyHolder;
import com.cibc.onesys.common.utils.struts.CibcDateHolder;
import com.cibc.onesys.common.utils.struts.CibcUiConstants;
import com.cibc.onesys.common.utils.struts.CibcDataHolder;
import com.cibc.onesys.common.vo.UserVO;
import com.cibc.onesys.common.vo.CibcConstants;
import com.cibc.onesys.ocp.vo.CreditVO;
import com.cibc.onesys.ocp.vo.CustomerVO;
import com.cibc.onesys.ocp.dao.CibcDAO;
import com.cibc.onesys.ocp.assessment.*;
import com.cibc.onesys.ocp.conditions.*;
import com.cibc.onesys.ocp.credit.EnclosuresForm;
import com.cibc.onesys.ocp.credit.StatementHolder;
import com.cibc.onesys.ocp.credit.EnclosuresHolder;
import com.cibc.onesys.ocp.facility.LGDSummaryForm;
import com.cibc.onesys.ocp.facility.LGDSummaryDetailsHolder;
import com.cibc.onesys.ocp.facility.CoverageLiquidationValueHolder;
import com.cibc.onesys.ccms.wip.CcmsDashBoardForm;
import com.cibc.onesys.ccms.wip.CcmsDashBoardHolder;
import org.apache.commons.collections.MultiHashMap;
import java.util.*;
import java.sql.*;
import java.math.BigDecimal;
public class BorrowerCreditDAO extends CibcDAO
{
protected static List newCreditList = null;
lc3.setAuthorizedLimit(currencyholder3);
lc3.setPortfolioId(rset3.getString("PORTFOLIOID"));
//dateholder3.setDate(rset3.getDate("DATEADJUDICATED"));
//lc3.setDateadjudicated(dateholder3);
// Added to resolve the variance id KITS-0038278
rset3.getCibcHolder("DATEADJUDICATED",lc3.getDateadjudicated());
lc3.setBorrowerId(rset3.getString("CREDITREQUESTID"));
pendingCreditList.add(lc3);
}
} catch (DatabaseException de) {
/*
[Rajesh Kumar.G 25-10-2005]
To implement logger and to remove System.out.println statements.
*/
logger.debug("Failure to connect to database for list all borrower credits:: " +
de);
throw de;
} finally {
// close result set
ConnectionHelper.close(rset1);
ConnectionHelper.close(rset2);
ConnectionHelper.close(rset3);
ConnectionHelper.close(stmt);
ConnectionHelper.close(con);
}
}
private final void LoadSearchResults(UserVO userVO, String borrowerName,
String portfolioNumber, String instrumentNumber, String transit, String searchBy)
throws DatabaseException
{
searchResultsList = new ArrayList();
SearchResultsHolder srsholder = null;
OCPConnection con = null;
OCPCallableStatement stmt = null;
OCPResultSet rset = null;
try {
con = ConnectionHelper.getConnection();
*
* @param userVO
* @param creditVO
* @param notepadForm
* @return
* @throws DatabaseException
*/
public CcmsNotepadForm getNotes(UserVO userVO, CreditVO creditVO,
CcmsNotepadForm notepadForm)
throws DatabaseException
{
/*
Rajesh Kumar.G [26-Sep-2005].
To achive locking machanism for CCMS application.
To Fix KITS variance : 0038861
*/
checkAuthorization(userVO,null,creditVO.getCreditRequestId(),
CibcConstants.PERMISSION_VIEW,CibcConstants.APPLICATION_CCMS);
OCPConnection con = null;
OCPCallableStatement stmt = null;
OCPResultSet rs = null;
try
{
con = ConnectionHelper.getConnection();
stmt = con.prepareCall("call
ccms_notepad_pck.get_notepad_dtls_sp(?,?,?)");
stmt.clearParameters();
stmt.setString(1, userVO.getCoinsId());
stmt.setInteger(2,creditVO.getCreditRequestId());
stmt.registerOutParameter(3,
OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.execute();
rs = (OCPResultSet) stmt.getObject(3);
ArrayList note = new ArrayList();
while(rs.next())
{
CcmsNotepadHolder noteHolder = new CcmsNotepadHolder();
noteHolder.setTimeStamp(rs.getString("notepad_date"));
noteHolder.setCoinsId(rs.getString("coins_id"));
noteHolder.setNotepadItem(rs.getString("notepad_desc"));
note.add(noteHolder);
}
notepadForm.setNotepadList(note);
}
catch (DatabaseException de)
{
throw de;
}
finally
{
ConnectionHelper.close(rs);
ConnectionHelper.close(stmt);
ConnectionHelper.close(con);
}
return notepadForm;
}
/** NotePad update Values
*
* @param userVO
* @param creditVO
* @param notepadForm
* @throws DatabaseException
*/
public void updateNotepad(UserVO userVO , CreditVO creditVO,
CcmsNotepadForm notepadForm)
throws DatabaseException
{
/*
Rajesh Kumar.G [26-Sep-2005].
To achive locking machanism for CCMS application.
To Fix KITS variance : 0038861
*/
checkAuthorization(userVO,null,creditVO.getCreditRequestId(),
CibcConstants.PERMISSION_EDIT,CibcConstants.APPLICATION_CCMS);
OCPConnection con = null;
OCPCallableStatement stmt = null;
try {
con = ConnectionHelper.getConnection();
ConnectionHelper.beginTransaction();
stmt = con.prepareCall("call
ccms_notepad_pck.update_notepad_dtls_sp(?,?,?)");
stmt.clearParameters();
stmt.setString(1, userVO.getCoinsId());
stmt.setInteger(2,creditVO.getCreditRequestId());
stmt.setString(3, notepadForm.getNewNotepadItem());
stmt.executeUpdate();
ConnectionHelper.commitTransaction();
} catch (DatabaseException de) {
ConnectionHelper.rollbackTransaction();
throw de;
} finally {
ConnectionHelper.close(stmt);
ConnectionHelper.close(con);
}
return;
}
/**
* This method is Used to get the List of Borrower Names and the user id of them.
* @param userVO
* @param ccmsReportsSearchForm
* @return CcmsReportsSearchForm
* @throws DatabaseException
*/
public CcmsReportsSearchForm getCcmsReportsSearchResults(UserVO
userVO,CcmsReportsSearchForm ccmsReportsSearchForm) throws
DatabaseException
{
OCPConnection con = null;
OCPCallableStatement stmt = null;
OCPResultSet rs = null;
try
{
con = ConnectionHelper.getConnection();
stmt = con.prepareCall("call
CCMS_Reports_Pck.get_portfolio_search_result_sp(?,?,?,?)");
stmt.clearParameters();
stmt.setString(1, userVO.getCoinsId());
stmt.setString(2,ccmsReportsSearchForm.getSearchBy());
stmt.setString(3,ccmsReportsSearchForm.getSearchFor());
stmt.registerOutParameter(4,OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.execute();
rs = stmt.getResultSet(4);
ArrayList searchResultList=new ArrayList();
while(rs.next())
{
CcmsReportsSearchHolder ccmsReportsSearchHolder=new
CcmsReportsSearchHolder();
ccmsReportsSearchHolder.setPortfolioName(rs.getString("ocp_user_name"));
ccmsReportsSearchHolder.setUserId(rs.getInt("ocp_user_id"));
searchResultList.add(ccmsReportsSearchHolder);
}
ccmsReportsSearchForm.setSearchResults(searchResultList);
ccmsReportsSearchForm.setResultsCount(searchResultList.size());
}
catch(DatabaseException e)
{
e.printStackTrace();
throw e;
}
finally
{
ConnectionHelper.close(rs);
ConnectionHelper.close(stmt);
ConnectionHelper.close(con);
}
return ccmsReportsSearchForm;
}
//Added by H.Kalaiselvi [14-12-2005] for CreditAgreementSummaryReport
/**
* To retrieve the credits list from db corresponding to the search condition.
* @param userVO
- UserVO object.
* @param creditAgreementSearchForm - Form object that holds the user input.
* @return
* @throws Exception
*/
public CreditAgreementSearchForm getCreditAgreementReports(UserVO
userVO, CreditVO creditVO,
CreditAgreementSearchForm
creditAgreementSearchForm)
throws Exception
{
ConnectionHelper.close(con);
}
return creditAgreementSearchForm;
}
/**
* This method is used to get the Details about the Borrowers.
* @param userVO
* @param ccmsReportsForm
* @return CcmsReportsForm
* @throws DatabaseException
*/
public CcmsReportsForm getCcmsReports(UserVO userVO,CcmsReportsForm
ccmsReportsForm) throws DatabaseException
{
OCPConnection con = null;
OCPCallableStatement stmt = null;
OCPResultSet rs = null;
try
{
con = ConnectionHelper.getConnection();
stmt = con.prepareCall("call
CCMS_Reports_Pck.get_portfolio_reports_det_sp(?,?,?,?,?,?)");
stmt.clearParameters();
stmt.setString(1, userVO.getCoinsId());
stmt.setInt(2,ccmsReportsForm.getUserId());
stmt.setString(3,ccmsReportsForm.getSearchBy());
stmt.setDate(4,ccmsReportsForm.getFromDate().getSqlDate());
stmt.setDate(5,ccmsReportsForm.getToDate().getSqlDate());
stmt.registerOutParameter(6,OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.execute();
rs = stmt.getResultSet(6);
ArrayList portfolioReportList=new ArrayList();
while(rs.next())
{
CcmsReportsHolder ccmsReportsHolder=new CcmsReportsHolder();
//ccmsReportsHolder.getExpiryDate().setDate(rs.getDate("expiry_date"));
// Added to resolve the variance id KITS-0038278
rs.getCibcHolder("expiry_date",ccmsReportsHolder.getExpiryDate());
ccmsReportsHolder.setCustomerName(rs.getString("borrower_name"));
ccmsReportsHolder.getAuthorizedAmount().setBigDecimal(rs.getBigDecimal("auth
orized_amt"));
ccmsReportsHolder.getRiskRating().setBigDecimal(rs.getBigDecimal("risk_rating")
);
ccmsReportsHolder.setSicCode(rs.getInteger("sic_code"));
portfolioReportList.add(ccmsReportsHolder);
}
ccmsReportsForm.setPortfolioReportsList(portfolioReportList);
}
catch(DatabaseException e)
{
e.printStackTrace();
throw e;
}
finally
{
ConnectionHelper.close(rs);
ConnectionHelper.close(stmt);
ConnectionHelper.close(con);
}
return ccmsReportsForm;
}
/**
* The method holds the values of CCMS WIP Details of New Credits,
* Amendment Credits, Pending Credits and Cancelled Credits
* @param ccmsDashBoardForm
* @param userVO
* @return ccmsDashBoardForm
* @throws DatabaseException
*/
public CcmsDashBoardForm getCCMSWipDetails(CcmsDashBoardForm
ccmsDashBoardForm,UserVO userVO) throws DatabaseException
{
OCPConnection con
= null;
OCPCallableStatement stmt
= null;
OCPResultSet rs1_NewCredit
= null;
OCPResultSet rs2_AmendmentCredit = null;
OCPResultSet rs3_PendingCredit = null;
OCPResultSet rs4_CancelledCredit = null;
int rowCount = 0;
ArrayList newCreditList
= new ArrayList();
ArrayList amendmentCreditList = new ArrayList();
ArrayList pendingCreditList = new ArrayList();
ArrayList cancelledCreditList = new ArrayList();
try
{
con = ConnectionHelper.getConnection();
stmt = con.prepareCall("{ call
CCMS_Dashboard_Pck.Get_WIP_Credits_Sp(?,?,?,?,?) }");
stmt.clearParameters();
stmt.setString(1, userVO.getCoinsId());
stmt.registerOutParameter(2,
OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.registerOutParameter(3,
OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.registerOutParameter(4,
OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.registerOutParameter(5,
OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.execute();
rs1_NewCredit = stmt.getResultSet(2);
rs2_AmendmentCredit = stmt.getResultSet(3);
rs3_PendingCredit = stmt.getResultSet(4);
rs4_CancelledCredit = stmt.getResultSet(5);
/**
* The resultset rs1_NewCredit holds the collection of New Credits
*/
while(rs1_NewCredit.next())
{
CcmsDashBoardHolder newCredit = new CcmsDashBoardHolder();
newCredit.setCreditRequestID(rs1_NewCredit.getInteger("credit_request_id"));
newCredit.setBorrowerName(rs1_NewCredit.getString("borrower_name"));
newCredit.getAuthorizedLimit().setBigDecimal(rs1_NewCredit.getBigDecimal("aut
horized_limit"));
newCredit.setPortfolioID(rs1_NewCredit.getInteger("portfolio_id"));
//newCredit.getAdjudicatedDate().setDate(rs1_NewCredit.getDate("adjudicated_dat
e"));
// Added to resolve the variance id KITS-0038278
rs1_NewCredit.getCibcHolder("adjudicated_date",newCredit.getAdjudicatedDate())
;
newCreditList.add(newCredit);
rowCount++;
}
ccmsDashBoardForm.setNewCreditList(newCreditList);
ccmsDashBoardForm.setNewCreditRecords(new Integer(rowCount));
/**
* The resultset rs2_AmendmentCredit holds the collection of
amendmentCredit
*/
rowCount = 0;
while(rs2_AmendmentCredit.next())
{
CcmsDashBoardHolder amendmentCredit = new
CcmsDashBoardHolder();
amendmentCredit.setCreditRequestID(rs2_AmendmentCredit.getInteger("credit_req
uest_id"));
amendmentCredit.setBorrowerName(rs2_AmendmentCredit.getString("borrower_n
ame"));
amendmentCredit.getAuthorizedLimit().setBigDecimal(rs2_AmendmentCredit.getB
igDecimal("authorized_limit"));
amendmentCredit.setPortfolioID(rs2_AmendmentCredit.getInteger("portfolio_id"));
//amendmentCredit.getAdjudicatedDate().setDate(rs2_AmendmentCredit.getDate("a
djudicated_date"));
// Added to resolve the variance id KITS-0038278
rs2_AmendmentCredit.getCibcHolder("adjudicated_date",amendmentCredit.getAdj
udicatedDate());
amendmentCreditList.add(amendmentCredit);
rowCount++;
}
ccmsDashBoardForm.setRenewalAmendmentList(amendmentCreditList);
ccmsDashBoardForm.setAmendmentRecords(new Integer(rowCount));
/**
* The resultset rs3_PendingCredit holds the collection of pendingCredit
*/
rowCount = 0;
while(rs3_PendingCredit.next())
{
CcmsDashBoardHolder pendingCredit = new
CcmsDashBoardHolder();
pendingCredit.setCreditRequestID(rs3_PendingCredit.getInteger("credit_request_id
"));
pendingCredit.setBorrowerName(rs3_PendingCredit.getString("borrower_name"));
pendingCredit.getAuthorizedLimit().setBigDecimal(rs3_PendingCredit.getBigDeci
mal("authorized_limit"));
pendingCredit.setPortfolioID(rs3_PendingCredit.getInteger("portfolio_id"));
//pendingCredit.getAdjudicatedDate().setDate(rs3_PendingCredit.getDate("adjudica
ted_date"));
// Added to resolve the variance id KITS-0038278
rs3_PendingCredit.getCibcHolder("adjudicated_date",pendingCredit.getAdjudicated
Date());
pendingCredit.getIsCAV().setBoolean(rs3_PendingCredit.getBoolean("iscav"));
pendingCreditList.add(pendingCredit);
rowCount++;
}
ccmsDashBoardForm.setPendingList(pendingCreditList);
ccmsDashBoardForm.setPendingRecords(new Integer(rowCount));
/**
* The resultset rs4_CancelledCredit holds the collection of cancelCredit
*/
rowCount = 0;
while(rs4_CancelledCredit.next())
{
CcmsDashBoardHolder cancelCredit = new CcmsDashBoardHolder();
cancelCredit.setCreditRequestID(rs4_CancelledCredit.getInteger("credit_request_id
"));
cancelCredit.setBorrowerName(rs4_CancelledCredit.getString("borrower_name"));
cancelCredit.setCancellationReason(rs4_CancelledCredit.getString("reason_cancel"
));
cancelCredit.setPortfolioID(rs4_CancelledCredit.getInteger("portfolio_id"));
//cancelCredit.getCancelledDate().setDate(rs4_CancelledCredit.getDate("cancel_dat
e"));
// Added to resolve the variance id KITS-0038278
rs4_CancelledCredit.getCibcHolder("cancel_date",cancelCredit.getCancelledDate())
;
cancelledCreditList.add(cancelCredit);
rowCount++;
}
ccmsDashBoardForm.setCancelledCreditList(cancelledCreditList);
ccmsDashBoardForm.setCancelledRecords(new Integer(rowCount));
}
catch(DatabaseException de)
{
throw de;
}
finally
{
ConnectionHelper.close(rs1_NewCredit);
ConnectionHelper.close(rs2_AmendmentCredit);
ConnectionHelper.close(rs3_PendingCredit);
ConnectionHelper.close(rs4_CancelledCredit);
ConnectionHelper.close(con);
stmt.close();
}
BIBLIOGRAPHY
9. BIBLIOGRAPHY
MYSQL
SYSTEM ANALYSIS