mca final project1
TRANSCRIPT
-
7/28/2019 Mca Final Project1
1/88
ENTERPRISE RESOURCE PLANNING
A Project Report
Submitted for the partial fulfillment of the requirements
for the degree of
MASTER OF SCIENCE IN INFORMATION TECHNOLOGY
By
M. BHAGYALAKSHMI
(A7101PIT6121)
Under the Guidance of
Mr. R.VELMURUGAN MCA, M.Phil, MBALecturer, Department of Computer Science
INSTITUTE OF DISTANCE EDUCATION
UNIVERSITY OF MADRAS
MAY 2009.
-
7/28/2019 Mca Final Project1
2/88
INSTITUTE OF DISTANCE EDUCATIONUniversity of Madras
Chennai-600 005
BONAFIDE CERTIFICATE
This is to certify that the report entitle ENTERPRISE RESOURCE PLANNING
being submitted to the University of Madras, Chennai by Ms. M.BHAGYALAKSHMI,
with Register NumberA7101PIT6121 for the partial fulfillment for the award of
degree of Master of Computer Applications is a bonafide record of work carried
out by him/her under my guidance and Supervision.
NAME AND DESIGNATION OF THE GUIDE CO-ORDINATOR
Mr. R.VELMURUGAN MCA, M.Phil, MBA
Lecturer, Department of Computer Science
Pachiyappa's College, Chennai
Date :
Submitted for the Viva - Voce Examination held on
_____________________.
Examiners
1.
2.
-
7/28/2019 Mca Final Project1
3/88
ACKNOWLEDGEMENT
I take this opportunity to thank all the people who have helped me throughout the
working of my project and encouraged me to complete it successfully.
I would like to express my sincere thanks and gratitude to our Director for giving
us the opportunity to pursue our Master Degree in Information Technology from this reared
institute, my sincere of encouragement.
I profusely owe a lot to ourCo-ordinator, Mr. R. VelmuruganM.C.A, M.Phil,
M.B.A- Lecturer, Department of Computer Science, Pachiyappas College, Chennai for his
kind support and constant encouragement towards us.
My deepest gratitude goes to Mr. S. Deepakaran, Technical Lead, Jayam Tech
for enabling me to undertake the project work in their esteemed organization.
Last but not least, I owe a deep sense of gratitude to my parents and all my friends
for their support and cooperation.
M. BHAGYALAKSHMI
-
7/28/2019 Mca Final Project1
4/88
INDEX
S.No. TITLE PAGE NO
1. INTRODUCTION1.1 COMPANY PROFILE
1.2 PROJECT OVERVIEW.
2. SYSTEM ANALYSIS 2.1 FEASIBLITY STUDY
2.2 EXISTING SYSTEM
2.3 PROPOSED SYSTEM3. SYSTEM CONFIGURATION
3.1 HARDWARE CONFIGURATION
3.2 SOFTWARE CONFIGURATION
3.3 ABOUT THE SOFTWARE
4. PROJECT DESIGN4.1 NORMALIZATION
4.2 TABLE DESIGN
4.3 DATAFLOW DIAGRAM
5. SYSTEM DESCRIPTION
6. SYSTEM TESTING & IMPLEMENTATION
7. SYSTEM CONLCUSION AND FUTURE SCOPE
8. SCREEN SHOTS AND REPORTS
9. BIBLIOGRAPHY
-
7/28/2019 Mca Final Project1
5/88
SYNOPSIS
-
7/28/2019 Mca Final Project1
6/88
SYNOPSIS
ENTERPRISE RESOURCE PLANNING
ERPware 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 ERPware 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. ERPware 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.
ERPware is fully web based and it conforms to J2EE standard.
Easy Access
As ERPware 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.
-
7/28/2019 Mca Final Project1
7/88
Allows Information Broadcast
A built-in messaging system also serves as a broadcasting tool within the organization. This
enables in a smoother flow of information sharing and communication within the
organization.
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
WarehousingManagement
Billing & Planning
Other Vertical Modules
Project Costing
Service Module
Work Order
Business
-
7/28/2019 Mca Final Project1
8/88
INTRODUCTION
-
7/28/2019 Mca Final Project1
9/88
1.1 COMPANY PROFILE
Jayam Tech is leading global IT SOLUTIONS COMPANY and is today the world
leader in application migrations and Application development & Maintenance, application
re-engineering to application testing & outsourced product development. Jayam technical
experts develop and maintain systems as per client specifications. This consultative
approach provides a risk-free, cost-effective way for an organization to design, develop,
and/or maintain cutting edge information systems. Whether the environment is mainframe
or client/server, it have expertise in Oracle, Oracle Developer, Oracle Designer, DBA, VC+
+, Java, Java Scripts, Power builder/Oracle, Visual Basic/Oracle, CICS, DB2, COBOL, C,
C++, Windows SDK, etc.
Jayam Tech has been ranked among the Top 500 global software companies
(16th annual ranking by Software Magazine) and also ranks among the Top 200 Indian
software companies (3rd annual ranking by Dataquest). Jayam Systems is assessed at SEI-
CMM Level 4.
With headquarters and offshore development centers in Chennai (India), Jayam
also has offices in Toronto (Canada) as well as in Washington DC. In addition, Jayam
operates through its excellent network of channel partners in about 30 countries
Vision
To continue to be the leader in providing IT solutions to customersworldwide and be a partner in their Information Technology Management to
enhance efficiency and productivity.
-
7/28/2019 Mca Final Project1
10/88
To be a vibrant, customer-oriented, quality driven, state of the art
Technology Company
Creating value to employees, customers, shareholders and society
Since its inception in 1990, Jayam has been consistently bringing out various products
to enable its customers to migrate to the latest technologies. Since then, Jayam 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.
Jayam Specializes in many areas like
Migration
Conversion tools
Cost effective business solutions
Web developments
WAP Technologies
Data warehousing
Multimedia Projects.
Redefining the norm of software products and development practices, KSPL is
advancing at a fast pace thereby achieving higher growth rate every year. We assure too the
best quality and professional standards for each service that we provide.
-
7/28/2019 Mca Final Project1
11/88
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
Business Analysis Services
Application Maintenance, Migration and Conversion Projects
Multimedia Projects
-
7/28/2019 Mca Final Project1
12/88
1.2 PROJECT OVERVIEW
Enterprise Resource Planning is developed for Jayam Tech Private Limited. 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.
It is also possible to search for some topics and find the solution for the doubts if the
solution is already available. If the solution is not available then post the doubt in this
forum. It will also display the number of users online.
-
7/28/2019 Mca Final Project1
13/88
SYSTEM CONFIGURATION
-
7/28/2019 Mca Final Project1
14/88
3 SYSTEM CONFIGURATION
3.1 HARDWARE CONFIGURATION
Main Processor : Pentium III 3.00 GHZ
Memory : 128MB of RAM
Hard Disk : 20 GB HDD
3.2 SOFTWARE CONFIGURATION
Introduction to Java Utilities
Collections and Iterators
The following section explains collections and iterators.
Collections
Java defines a set of classes known as collection classes. These classes are defined in the
java.util package (see more on packages below). The most commonly used collection
classes are:
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
-
7/28/2019 Mca Final Project1
15/88
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.
-
7/28/2019 Mca Final Project1
16/88
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. Anexception 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)
{
}finally
{
}
-
7/28/2019 Mca Final Project1
17/88
return;
}
If doSomething() completes normally, program execution continues at the first statement
after the try-catch-finally block. Note that the finally block is not executed.
If doSomething()throws the BadThingHappenedException, it will be caught by the catch
block. Within the catch block, you can perform whatever action is necessary to deal with
the unexpected condition.
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.
The WebLogic Workshop Development Environment[IDE]
WebLogic Workshop is an integrated development environment for building enterprise-
class J2EE applications on the WebLogic Platform. WebLogic Workshop provides an
intuitive programming model that enables you to focus on building the business logic of
your application rather than on complex implementation details. Whether you are an
application developer with a business problem to solve or a J2EE expert building business
infrastructure, WebLogic Workshop makes it easy to design, test, and deploy enterprise-
class applications.
-
7/28/2019 Mca Final Project1
18/88
PROJECT DESIGN
-
7/28/2019 Mca Final Project1
19/88
4 PROJECT DESIGN
System flowchart describes the data flow for a data processing system. A systemsflowchart 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.
Various processing steps involved.
The intermediate and final output prepared and the devices used for their
storage.
The different symbols used in system flow chart are:
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.
Data Input Device.
Input from input device like keyboard.
-
7/28/2019 Mca Final Project1
20/88
Connector
Indicates that the flow continues where a matchingsymbol (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
-
7/28/2019 Mca Final Project1
21/88
DATA FLOW DIAGRAM
Graphical representation of a systems data and how the processes transform the
data is known as Data Flow Diagram (or DFD). Unlike, flowcharts, DFDs do not give
detailed descriptions of modules but graphically describe a systems data and how the datainteract with the system.
Data flow diagrams are the most commonly used way of documenting the process
of current & required systems. As their name suggests they are a pictorial way of showing
the flow of data into, around & out of a system.
Data flow diagrams can be used to provide a clear representation of any business
function. It should be the first tool used by system analyst to model system components.These components are the system processes; the data used by this processes and external
entities that interact with the system and the information flows in the system.
There are four kinds of system components
PROCESS
Process show what system does. Each process has one or more data inputs and
produce one or more data outputs, Circles in a data flow diagram represent process. Each
process has unique name and number. This name and number appear inside the circle that
represents the processes in a data flow diagram.
Process represents activities in which data is manipulated by being stored or
retrieved or transferred in some way. In other words we can say that process transforms the
input data into output data. Circles stand for a process that converts data into information
-
7/28/2019 Mca Final Project1
22/88
This process is represented as circle
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
-
7/28/2019 Mca Final Project1
23/88
External entity is represented as rectangle
DATA FLOWS
A data flow shows the flow of information from its source to its destination. A linerepresents 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.
Flow of data in the system can take place.
Between two processes
From a data store to process
From a process to a data store
From a source to process
From a process to link
-
7/28/2019 Mca Final Project1
24/88
4.3 DATA FLOW DIAGRAM
.
Invalid user
If new user
Forum user
login
Check
valid user
Create anew
user.
Want to
log or
clarify the
doubts.
Want to View
private
messages
Log the doubtand submit.
Reply to thedoubts posted by
some other user.
Reply with suitable
attachment or clarifications.
Fetch the data
from the table
forum_privmsg and display
it.
Send messageto the friend.
Type the message and
submit.
Store the userDetails in the
Forum user table.
Store the valuesTo the forum post
Table.
Store the values to the tableForum privmsg.
Store the values to the
Table forum post and
forum attachment.
-
7/28/2019 Mca Final Project1
25/88
4.2 TABLE DESIGN
Table name : cust_det
Primary Key : cust_code
Name Data type Size
cust_code Varchar 20
cust_name Varchar 30
address1 Varchar 30
Address2 Varchar 30
City Varchar 30
Mobile Int 20
Email Varchar 30
Table name : Orderdet
ForeignKey : cust_code,item_code
Name Data type Size
cust_code Varchar 30
item_code Varchar 30
order_no Varchar 30
order_date Datetime 8
order_qty Int 10
req_date Datetime 8
-
7/28/2019 Mca Final Project1
26/88
Table name : Stockdet
Primary key : item_code
Name Data type Sizeitem_code Varchar 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 Data type Size
Ven_code Varchar 30
Ven_name Varchar 30
address1 Varchar 30
Address2 Varchar 30
City Varchar 30
Mobile Int 20
email Varchar 30
INPUT OUTPUT DESIGN
-
7/28/2019 Mca Final Project1
27/88
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:
Define the appropriate format and media for a computer input.
Explain the difference between data capture, data entry, and data input.
Identify and describe several automatic data collection technologies.
Apply human factors to the design of computer inputs.
Design internal controls for computer inputs.
Select proper screen-based controls for input attribute that are to appear on a
GUI input screen.
Design a web-based input interface.
Identify system inputs and review logical requirements.
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
Description of report and screen contents (provide a graphic representation
of each layout and define all data elements associated with the layout or
reference the data dictionary).
-
7/28/2019 Mca Final Project1
28/88
Description of the purpose of the output, including identification of the
primary users
Report distribution requirements, if any (include frequency for periodic
reports)
Description of any access restrictions or security considerations
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 flowdiagram is attached in the system development phase.
-
7/28/2019 Mca Final Project1
29/88
4.1 NORMALIZATION
Normalization is the process of efficiently organizing data in a database. There are
two goals of the normalization process: eliminate redundant data (for example, storing the
same data in more than one table) and ensure data dependencies make sense (only storing
related data in a table). Both of these are worthy goals as they reduce the amount of space a
database consumes and ensure that data is logically stored.
The database community has developed a series of guidelines for ensuring that databases
are normalized. These are referred to as normal forms.
First normal form (1NF) sets the very basic rules for an organized database:
Eliminate duplicative columns from the same table.
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:
Meet all the requirements of the first normal form.
Remove subsets of data that apply to multiple rows of a table and place them
in separate tables.
Create relationships between these new tables and their predecessors
through the use of foreign keys.
Third normal form (3NF) goes one large step further:
Meet all the requirements of the second normal form.
Remove columns that are not dependent upon the primary key.
-
7/28/2019 Mca Final Project1
30/88
Finally, fourth normal form (4NF) has one additional requirement:
Meet all the requirements of the third normal form.
A relation is in 4NF if it has no multi-valued dependencies.
The above normalizations are applied in the development of this system.
Each main table contains the primary key and all the attributes are having necessary
constraints.
Each sub table contains the foreign key referring the id of the main table.
The tables are also divided into main and sub in order to avoid the repetition of the data.
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.
-
7/28/2019 Mca Final Project1
31/88
5. SYSTEM DESCRIPTION
SYSTEM DESCRIPTION
-
7/28/2019 Mca Final Project1
32/88
A program specification describes the results that a program is expected to produce
its primary purpose is to be understood not executed. A specification is a technical contract
between a programmer and his/her client and is intended to provide them with a mutual
understanding of a program. A client uses the specification to guide his/her use of the
program; a programmer uses the specification to guide his/her construction of the program.
A complex specification may engender sub specifications, each describing a sub component
of the program. The construction of these sub components may then be delegated to other
programmers so that a programmer at one level becomes also a client at another.
The purpose of a specification requires that all parties have complete confidence in
the properties of the results it warrants. The focus of a specification should be on what is
achieved, not how it is achieved -- the details engendered in the program itself are to be
avoided. Precise and formally defined conventions for writing specifications are a much
more recent invention than programming languages. The need to be fully precise about
results before beginning the programming process has lead to reliance on mathematically
based (or more accurately, logically based) concepts.
Since a specification provides a technical contract, it is only natural to base both the
construction and the verification of a program on its specification. As a result "formal
methods" subsumes: (i) conceptual elements for the development of precise specifications
that can serve to guide programming activity, (ii) the means to utilize a formal specification
for a rigorous verification of the program when it is completed, and (iii) the integration of
these ideas into a "system of specification" that can be supported by computer-based tools
that assist the entire enterprise.
Requirement Specification
-
7/28/2019 Mca Final Project1
33/88
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 sharewith 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.
-
7/28/2019 Mca Final Project1
34/88
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 grouphas 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 smiliespictures. Admin has rights to delete or update any smilies picture.
-
7/28/2019 Mca Final Project1
35/88
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.
-
7/28/2019 Mca Final Project1
36/88
3.3 ABOUT THE SOFTWARE
HTML is the simplest part of what makes web pages on the World Wide Web. It is
a markup language, which means it has a mix of normal language that people can read, and
special language that tells computer programs what to do.
A web browser is the program that reads the special language in HTML. This language tells
the web browser how the web page should look. The web page can include writing, links,
pictures, and even sound and video. It can also have writing that is not shown in the web
page, which tells people about the web pagefor example, the name of the person who
made it.
Writing HTML
You can make HTML with a computer program called an HTML editor. Because
HTML is just writing, you can make it in a text editor. There are also computer programs
that let you draw a web page the way you want it to look, and these programs make the
HTML for you.
Example HTML
HTML tells the browser what to show by using tags. Tags start with < and end with
>. An example is,
, the Line Break tag, which causes a new line.Most tags have an opening tag to tell the browser where to start something, and an ending
tag to tell the browser where to end. An example is
to start a new paragraph, and
to end a paragraph.
Here is an example page in HTML.
(This tag tells the browser that this is the start of the HTML)
(This tag tells the browser that this is the start of the head of page, which
readers cannot see)
(This tag tells the browser that this is the start of the title)
-
7/28/2019 Mca Final Project1
37/88
HTML - Simple English Wikipedia (This is the text of the title. Readers can see this
in the bar at the top of the screen)
(This tag tells the browser that this is the end of the title)
(This tag tells the browser that this is the end of the head)
(This tag tells the browser that this is the top of the page)
(This tag is the start of a paragraph)
Here is some text.
(This tag is the end of a paragraph)(This tag tells the browser that this is the end of the page and the last part
to show the readers)
(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
-
7/28/2019 Mca Final Project1
38/88
In the Java programming language, all source code is first written in
plain text files ending with the .java extension. Those source files are then
compiled into .class files by the Java compiler (javac).
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.
Because the Java Virtual Machine is available on many different operating
systems, the same .class files are capable of running on Microsoft Windows, the
Solaris TM Operating System (Solaris OS), Linux, or MacOS. Some virtual
machines, such as the Java HotSpot Virtual Machine, perform additional steps at
runtime to give your application a performance boost. This includes various tasks
such as finding performance bottlenecks and recompiling (to native code) frequently
used sections of the code.
-
7/28/2019 Mca Final Project1
39/88
The Java Platform
A platform is the hardware or software environment in which a program
runs. We've already mentioned some of the most popular platforms like Microsoft
Windows, Linux, Solaris OS, and MacOS.
Most platforms can be described as a combination of the operating system
and underlying hardware. The Java platform differs from most other platforms in
that it's a software-only platform that runs on top of other hardware-based
platforms.
The Java platform has two components:
The Java Virtual Machine
The Java Application Programming Interface (API)
JVM the base for the Java platform and is ported onto various hardware-
based 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.
As a platform-independent environment, the Java platform can be a bit
slower than native code. However, advances in compiler and virtual machine
technologies are bringing performance close to that of native code without
threatening portability.
-
7/28/2019 Mca Final Project1
40/88
What Can Java Technology Do?
The general-purpose, high-level Java programming language is a powerful
software platform. Every full implementation of the Java platform gives you the
following features:
Development Tools: The development tools provide everything
you'll need for compiling, running, monitoring, debugging, and
documenting your applications. As a new developer, the main tools
you'll be using are the Java compiler (javac), the Java launcher
(java), and the Java documentation tool (javadoc).
Application Programming Interface (API): The API provides thecore functionality of the Java programming language. It offers a wide
array of useful classes ready for use in your own applications. It
spans everything from basic objects, to networking and security, to
XML generation and database access. The core API is very large; to
get an overview of what it contains, consult the release
documentation linked to at the bottom of this page.
Deployment Technologies: The JDK provides standard mechanisms,
such as Java Web Start and Java Plug-In, for deploying your
applications to end users.
User Interface Toolkits: The Swing and Java 2D toolkits make it
possible to create sophisticated Graphical User Interfaces (GUIs).
Integration Libraries: Integration libraries such as IDL, JDBC, JNDI,
RMI, and RMI-IIOP, enable database access and manipulation of
remote objects.
How Will Java Technology Change My Life?
Java is likely to make your programs better and requires less effort than
other languages.
-
7/28/2019 Mca Final Project1
41/88
We believe that Java technology will help you do the following:
Get started quickly: Although the Java programming language is a
powerful object-oriented language, it's easy to learn, especially for
programmers already familiar with C or C++.
Write less code: Comparisons of program metrics (class counts,
method counts, and so on) suggest that a program written in the Java
programming language can be four times smaller than the same
program in C++.
Write better code: The Java programming language encourages
good coding practices, and its garbage collection helps you avoid
memory leaks. Its object orientation, its JavaBeans component
architecture, and its wide-ranging, easily extendible API let you
reuse other people's tested code and introduce fewer bugs.
Develop programs more quickly: Your development time may be
as much as twice as fast versus writing the same program in C++.
Why? You write fewer lines of code and it is a simpler programming
language than C++.
Avoid platform dependencies: You can keep your program portable
by avoiding the use of libraries written in other languages.
Write once, run anywhere: Because Java applications are compiled
into machine-independent bytecodes, they run consistently on any
Java platform.
Distribute software more easily: With Java Web Start technology,
users will be able to launch your applications with a single click of
the mouse. An automatic version check at startup ensures that users
are always up to date with the latest version of your software. If an
update is available, Java Web Start will automatically upgrade their
installation.
-
7/28/2019 Mca Final Project1
42/88
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:
Static HTML/XML components.
Special JSP tags
Optionally, snippets of code written in the Java programming language
called "scriptlets."
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.
-
7/28/2019 Mca Final Project1
43/88
JSP Advantages
Separation of static from dynamic content:
With servlets, the logic for generation of the dynamic content is an intrinsic part ofthe 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
-
7/28/2019 Mca Final Project1
44/88
Sun's J2EE Blueprints, which offers guidelines for developing large-scale
applications using the enterprise Java APIs, categorically recommends JSP over servlets for
serving dynamic content.
Completely leverages the Servlet API
If you are a servlet developer, there is very little that you have to "unlearn" to move
over to JSP. In fact, servlet developers are at a distinct advantage because JSP is nothing
but a high-level abstraction of servlets.
JSP Access Models
The early JSP specifications advocated two philosophical approaches, popularly
known as Model 1 and Model 2 architectures, for applying JSP technology. These
approaches differ essentially in the location at which the bulk of the request processing was
performed, and offer a useful paradigm for building applications using JSP technology.
Consider the Model 1 architecture, shown below:
-
7/28/2019 Mca Final Project1
45/88
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.
-
7/28/2019 Mca Final Project1
46/88
The Model 2 architecture, shown above, is a server-side implementation of the
popular Model/View/Controller design pattern. Here, the processing is divided between
presentation and front components. Presentation components are JSP pages that generate
the HTML/XML response that determines the user interface when rendered by the browser.
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.
-
7/28/2019 Mca Final Project1
47/88
SYSTEM TESTING AND
IMPLEMENTATION
-
7/28/2019 Mca Final Project1
48/88
6. SYSTEM TESTING &IMPLEMENTATION
Testing is the one step in the software engineering process that could be viewed as
destructive rather than constructive. Testing requires that the developer discard
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
secondary benefit, testing demonstrations that software functions appear to be working
according to specification, that performance requirements appear to have been met. In
addition, data collected as testing is conducted provide a good indication of software
reliability and some indication of software quality as a whole.
Testing cannot show the absence of defects, it can only show that software defects are
present.
Different Types of Testing:
User requirements test:This is the test done at the time of requirements document URS (User Requirement
Specification). In this, the requirements are tested for clarity, redundancy, feasibility and
objectivity. As soon as the requirements are tested, the URS can be helpful in preparing the
acceptance test plan so that the user tests the software according to the URS.
System requirement test:
From the URS we produce SRD (System Requirement Document), which tests the
validity of the system at the client end. As soon as the document is ready, they can make a
plan for the systems test conducted by the development organization before coordinating the
acceptance test.
-
7/28/2019 Mca Final Project1
49/88
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.
Incorrect or missing functions.
Interface errors.
Errors in data structures or external database access.
Performance errors.
Initializing and termination errors.
-
7/28/2019 Mca Final Project1
50/88
Incorrect or missing functions:
This is error occurs when the required function is not included in the specified
location.
Interface errors:
This is occurs when user input is invalid data into controls. For example, when user
want to login with an invalid data on that time the interface shows the error.
Performance errors:
If the user trying to send the signal to server without connecting, It will show error.
When the same module is executed more than twice shows error form using windows error
system.
Initialization and termination errors:
In the initialization part it test with the connection part. This is the starting part of
the project. In the termination part it is checked with the existing part of the project.
Software Testing Strategies
Any software has to be tested with pre-planned strategies. As Roger Pressmen
states, the preparation for testing should start as soon as the design of system starts, to carry
out the testing in an efficient manner certain amount of strategic planning has to be done.
Any testing strategy must incorporate test planning, test case design, test execution and the
resultant data collection and evaluation.
Unit Testing:
In the lines of this strategy all, the individual functions and modules were put to
the test independently. By following this strategy all, the errors in coding were identified
and corrupted. This method was applied in combination with the white and black box
testing techniques to find the errors in each module.
-
7/28/2019 Mca Final Project1
51/88
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 whichintegration is carried out from the low level module to the top.
The modules are tested using the bottom up approach by
Introducing stumps for the top-level functions.
This test used to identify the errors in the interfaces, the errors in
passing the parameters between the functions and corrects them.
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
Testing is a process of executing a program with the intent offinding an error.
A good test case is one that has high probability of finding an
undiscovered error.
A successful test is one that uncovers an undiscovered error.
-
7/28/2019 Mca Final Project1
52/88
SYSTEM CONCLUSION AND
FUTURE SCOPE
-
7/28/2019 Mca Final Project1
53/88
7 SYSTEM CONCLUSION AND FUTURE SCOPE
This system is build-using java. So this system can be accessed by the system,
which is using any Operating system. Any user of any project can use this system. By using
this system lot of time is saved which is wasted for searching the solution for the problem,
which is already solved by some of the employees of any other project.
Only the valid user can login to the discussion forum others have to register. The
admin user has the rights to change any application level changes. Admin only having the
rights to change the rankings, avatar and also has the rights to delete the junk messages.
It is running in the Tomcat Server of the server machine. So any changes in the code
or any new requirements can be implemented and changes should be made in that machine.
Then restarting the server is enough to reflect the changes in the system. The old data will
be retained and the new requirements will get reflected.
Thus the system for sharing the knowledge and to clarify the doubts are successfully
developed and executed. This projects can also contains the facility like if any one knows
the doubt then he/she can reply to the message. Some email notification should be made
when replying to the message. So that the user who logged the doubt comes to know that
he/she got the answer for the doubt.
Now the personal details of the user are very minimal. It can be improved to store
the user project details, designation, contact details like extension, e.t.c. If any user wants
more clarifications then he/she can contact that user personally to get more details.
These are the some of the future enhancement of the Enterprise Resource Planning.
-
7/28/2019 Mca Final Project1
54/88
SCREEN SHOTS AND
REPORTS
-
7/28/2019 Mca Final Project1
55/88
8 SCREEN SHOTS AND REPORTS
-
7/28/2019 Mca Final Project1
56/88
-
7/28/2019 Mca Final Project1
57/88
-
7/28/2019 Mca Final Project1
58/88
-
7/28/2019 Mca Final Project1
59/88
-
7/28/2019 Mca Final Project1
60/88
-
7/28/2019 Mca Final Project1
61/88
-
7/28/2019 Mca Final Project1
62/88
-
7/28/2019 Mca Final Project1
63/88
-
7/28/2019 Mca Final Project1
64/88
-
7/28/2019 Mca Final Project1
65/88
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;
-
7/28/2019 Mca Final Project1
66/88
protected static List renewCreditList = null;protected static List pendingCreditList = null;
protected static List searchResultsList = null;
protected CibcDateHolder dateholder = null;
protected int newCNT;
protected int renewCNT;
protected int pendingCNT;
/*
[Rajesh Kumar.G 25-10-2005]
To implement logger and to remove System.out.println statements.
*/
static CibcLogger logger = new CibcLogger(BorrowerCreditDAO.class);
public BorrowerVO getCreditRequestById(UserVO userVO, int requestId)
throws DatabaseException{
OCPConnection con = null;
OCPCallableStatement stmt = null;
OCPResultSet result = null;
BorrowerVO bvo = null;
try {
con = ConnectionHelper.getConnection();
stmt = con.prepareCall("{ call
CCMS_BORROWER_SEARCH_PCK.search_by_id(?, ?, ?)}");stmt.clearParameters();
stmt.setString(1, userVO.getCoinsId());
stmt.setInt(2, requestId);
stmt.registerOutParameter(3,
OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.execute();
result = (OCPResultSet) stmt.getObject(3);
while (result.next()) {
bvo = new BorrowerVO();
bvo.setApprovalDate(result.getDate("APPROVED_DTTM"));
bvo.setBorrowerID(result.getInteger("CREDIT_REQUEST_ID"));bvo.setBorrowerName(result.getString("BORROWER_NAME"));
bvo.setExpiryDate(result.getDate("CURRENT_EXPIRY_DATE"));
// There might be more attributes need to be set for BorrowerVO
-
7/28/2019 Mca Final Project1
67/88
// and we might need to change the store procedure for that}
} 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(result);
ConnectionHelper.close(stmt);
ConnectionHelper.close(con);}
return bvo;
}
public BorrowerCreditForm getBorrowerCredit(UserVO userVO,
BorrowerCreditForm form) throws DatabaseException
{
String borrowerName = null;String portfolioNumber = null;
String instrumentNumber = null;
String transit = null;
String searchBy = null;
if (form != null) {
borrowerName = form.getBorrowerName();
portfolioNumber = form.getPortfolioNumber();
instrumentNumber = form.getInstrumentNumber();
transit = form.getTransit();
searchBy = form.getSearchBy();
}
if ((borrowerName == null) || (borrowerName.length() < 1))
borrowerName = null;
if ((portfolioNumber == null) || (portfolioNumber.length() < 1))
portfolioNumber = null;
-
7/28/2019 Mca Final Project1
68/88
if ((instrumentNumber == null) || (instrumentNumber.length() < 1))instrumentNumber = null;
if ((transit == null) || (transit.length() < 1))
transit = null;
try {
if (userVO.getCoinsId() != null) {LoadSearchResults(userVO, borrowerName, portfolioNumber,
instrumentNumber, transit, searchBy);
}
} catch (DatabaseException de) {
throw de;
}
form.setSearchResultsList(searchResultsList);
return form;}
public ListCreditsForm getListCredits(UserVO userVO, ListCreditsForm form)
throws DatabaseException
{
try {
if (userVO.getCoinsId() != null) {
LoadListCredit(userVO);
}} catch (DatabaseException de) {
throw de;
}
form.setNewCreditsList(newCreditList);
form.setRenewCreditsList(renewCreditList);
form.setPendingCreditsList(pendingCreditList);
form.setNewCNT(newCNT);
form.setRenewCNT(renewCNT);
form.setPendingCNT(pendingCNT);
return form;
}
private final void LoadListCredit(UserVO userVO) throws DatabaseException
{
-
7/28/2019 Mca Final Project1
69/88
OCPConnection con = null;OCPCallableStatement stmt = null;
OCPResultSet rset1 = null;
OCPResultSet rset2 = null;
OCPResultSet rset3 = null;
newCNT = 0;renewCNT = 0;
pendingCNT = 0;
ListCreditsHolder lc1 = null;
ListCreditsHolder lc2 = null;
ListCreditsHolder lc3 = null;
CibcDateHolder dateholder1 = null;
CibcCurrencyHolder currencyholder1 = null;
CibcDateHolder dateholder2 = null;
CibcCurrencyHolder currencyholder2 = null;CibcDateHolder dateholder3 = null;
CibcCurrencyHolder currencyholder3 = null;
newCreditList = new ArrayList();
renewCreditList = new ArrayList();
pendingCreditList = new ArrayList();
try {
con = ConnectionHelper.getConnection();
stmt = con.prepareCall("{ callCCMS_BORROWER_SEARCH_PCK.search_all_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.execute();
rset1 = (OCPResultSet) stmt.getObject(2);
rset2 = (OCPResultSet) stmt.getObject(3);rset3 = (OCPResultSet) stmt.getObject(4);
while (rset1.next()) {
newCNT++;
-
7/28/2019 Mca Final Project1
70/88
lc1 = new ListCreditsHolder();
//dateholder1 = new CibcDateHolder();
currencyholder1 = new CibcCurrencyHolder();
lc1.setBorrowerName(rset1.getString("BORROWERNAME"));
currencyholder1.setValue(rset1.getString("AUTHORIZEDLIMIT"));lc1.setAuthorizedLimit(currencyholder1);
lc1.setPortfolioId(rset1.getString("PORTFOLIOID"));
//dateholder1.setDate(rset1.getDate("DATEADJUDICATED"));
//lc1.setDateadjudicated(dateholder1);
// Added to resolve the variance id KITS-0038278
rset1.getCibcHolder("DATEADJUDICATED",lc1.getDateadjudicated());
lc1.setBorrowerId(rset1.getString("CREDITREQUESTID"));
newCreditList.add(lc1);
}
while (rset2.next()) {
renewCNT++;
lc2 = new ListCreditsHolder();
//dateholder2 = new CibcDateHolder();
currencyholder2 = new CibcCurrencyHolder();
lc2.setBorrowerName(rset2.getString("BORROWERNAME"));
currencyholder2.setValue(rset2.getString("AUTHORIZEDLIMIT"));
lc2.setAuthorizedLimit(currencyholder2);lc2.setPortfolioId(rset2.getString("PORTFOLIOID"));
//dateholder2.setDate(rset2.getDate("DATEADJUDICATED"));
//lc2.setDateadjudicated(dateholder2);
// Added to resolve the variance id KITS-0038278
rset2.getCibcHolder("DATEADJUDICATED",lc2.getDateadjudicated());
lc2.setBorrowerId(rset2.getString("CREDITREQUESTID"));
renewCreditList.add(lc2);
}
while (rset3.next()) {
pendingCNT++;
lc3 = new ListCreditsHolder();
//dateholder3 = new CibcDateHolder();currencyholder3 = new CibcCurrencyHolder();
lc3.setBorrowerName(rset3.getString("BORROWERNAME"));
currencyholder3.setValue(rset3.getString("AUTHORIZEDLIMIT"));
-
7/28/2019 Mca Final Project1
71/88
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();
-
7/28/2019 Mca Final Project1
72/88
stmt = con.prepareCall("{ callCCMS_BORROWER_SEARCH_PCK.search_by_criteria_sp(?, ?, ?, ?, ?, ?)}");
stmt.clearParameters();
stmt.setString(1, userVO.getCoinsId());
stmt.setString(2, borrowerName);
stmt.setString(3, portfolioNumber);stmt.setString(4, instrumentNumber);
stmt.setString(5, transit);
stmt.registerOutParameter(6,
OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.execute();
rset = (OCPResultSet) stmt.getObject(6);
while (rset.next()) {srsholder = new SearchResultsHolder();
//dateholder = new CibcDateHolder();
boolean checked;
srsholder.setBorrowerName(rset.getString("BORROWERNAME"));
srsholder.setStatus("Active");
srsholder.setPortfolioId(rset.getString("PORTFOLIOID"));
srsholder.setCreditSpecialist(rset.getString("CREDITSPECIALIST"));
//dateholder.setDate(rset.getDate("EXPIRYDATE"));
//srsholder.setExpiryDate(dateholder);
// Added to resolve the variance id KITS-0038278rset.getCibcHolder("EXPIRYDATE",srsholder.getExpiryDate());
srsholder.setGroupId(rset.getString("GROUPID"));
srsholder.setBorrowerId(rset.getString("CREDITREQUESTID"));
if (rset.getString("GROUPID") != null)
checked = true;
else
checked = false;
srsholder.setChecked(checked);
searchResultsList.add(srsholder);
}
} catch (DatabaseException de) {/*
[Rajesh Kumar.G 25-10-2005]
To implement logger and to remove System.out.println statements.
*/
-
7/28/2019 Mca Final Project1
73/88
logger.debug("Failure in the Search Results:: " + de);throw de;
} finally {
// to do close result set
try {
ConnectionHelper.close(rset);
ConnectionHelper.close(stmt);ConnectionHelper.close(con);
} catch (Exception er) {
er.printStackTrace();
throw new DatabaseException(er);
}
}
}
/**
* This method is used to get the results of CCMS Search.
*
* @param userVO
* @param form
* @return
* @throws DatabaseException
*/
public CcmsSearchForm getCcmsSearchDetails(UserVO userVO,
CcmsSearchForm form)throws DatabaseException
{
OCPConnection con = null;
OCPCallableStatement stmt = null;
OCPResultSet rs = null;
Collection searchResultslist = new ArrayList();
try
{
con = ConnectionHelper.getConnection();
stmt = con.prepareCall("{ call
CCMS_Dashboard_Pck.Get_search_Credits_Sp(?, ?, ?, ?, ?, ?)}");
stmt.clearParameters();int i = 0;
stmt.setString(++i, userVO.getCoinsId());
stmt.setString(++i, form.getBorrowerName());
-
7/28/2019 Mca Final Project1
74/88
stmt.setBigDecimal(++i, (form.getPortfolioNumber().isEmpty() ? null :form.getPortfolioNumber().getBigDecimal()));
stmt.setBigDecimal(++i, (form.getTransitNumber().isEmpty() ? null :
form.getTransitNumber().getBigDecimal()));
stmt.setBigDecimal(++i, (form.getInstrumentNumber().isEmpty() ? null :
form.getInstrumentNumber().getBigDecimal()));
stmt.registerOutParameter(++i,OCPConnection.TYPE_ORACLE_REF_CURSOR);
int resultIndex = i;
stmt.execute();
rs = stmt.getResultSet(resultIndex);
while (rs.next())
{
CcmsSearchHolder ccmsSearchHolder = new CcmsSearchHolder();
ccmsSearchHolder.setCreditRequestId(rs.getString("credit_request_id"));
ccmsSearchHolder.setBorrowerName(rs.getString("borrower_name"));ccmsSearchHolder.setStatus(rs.getString("credit_status"));
ccmsSearchHolder.getPortfolioId().setValue(rs.getString("portfolio_id"));
ccmsSearchHolder.setCreditSpecialist(rs.getString("credit_specialist"));
//ccmsSearchHolder.getExpiryDate().setDate(rs.getDate("expiry_date"));
// Added to resolve the variance id KITS-0038278
rs.getCibcHolder("expiry_date",ccmsSearchHolder.getExpiryDate());
ccmsSearchHolder.getGroup().setBoolean(rs.getBoolean("is_group"));
searchResultslist.add(ccmsSearchHolder);
}
form.setSearchResults(searchResultslist);}
catch (DatabaseException de)
{
de.printStackTrace();
throw de;
}
finally
{
ConnectionHelper.close(rs);
ConnectionHelper.close(stmt);
ConnectionHelper.close(con);
}
return form;
}
/** NotePad Retrive Values
-
7/28/2019 Mca Final Project1
75/88
** @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("callccms_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);
-
7/28/2019 Mca Final Project1
76/88
}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();
-
7/28/2019 Mca Final Project1
77/88
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();
-
7/28/2019 Mca Final Project1
78/88
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
{
-
7/28/2019 Mca Final Project1
79/88
OCPConnection con = null;OCPCallableStatement stmt = null;
OCPResultSet rs= null;
CreditAgreementSearchHolder creditAgreementHolder;
ArrayList creditAgreementList = new ArrayList();
try{
con = ConnectionHelper.getPASConnection();
stmt = con.prepareCall("{ call
Ccms_Reporting_pck.get_credit_reports_sp(?,?,?,?)}");
stmt.clearParameters();
stmt.setString(1, userVO.getCoinsId());
stmt.setString(2, userVO.getUserId());
stmt.setString(3, creditAgreementSearchForm.getBorrowerName() );
stmt.registerOutParameter(4,OCPConnection.TYPE_ORACLE_REF_CURSOR);
stmt.execute();
rs = stmt.getResultSet(4);
while( rs.next() )
{
creditAgreementHolder = new CreditAgreementSearchHolder();
creditAgreementHolder.setCreditRequestId( rs.getInteger("credit_request_id"));
creditAgreementHolder.setCustomerId( rs.getInteger("customer_id"));
creditAgreementHolder.setObligorName( rs.getString("obligor_name"));
creditAgreementHolder.setBorrowerName( rs.getString("borrower_name"));
creditAgreementList.add(creditAgreementHolder);
}
creditAgreementSearchForm.setSearchResults(creditAgreementList);
}
catch(DatabaseException de)
{
de.printStackTrace();
throw de;
}finally
{
ConnectionHelper.close(rs);
ConnectionHelper.close(stmt);
-
7/28/2019 Mca Final Project1
80/88
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"));
-
7/28/2019 Mca Final Project1
81/88
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;
-
7/28/2019 Mca Final Project1
82/88
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"));
-
7/28/2019 Mca Final Project1
83/88
//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"));
amen