Mca Final Project1

download Mca Final Project1

of 88

Transcript of Mca Final Project1

  • 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