Professional Documents
Culture Documents
Stock Management
System
Globsyn Summer School Project
A pl/sql Project
Using Oracle Forms
Document sign date :Jul 17, 2015
Page |1
Group Members
Soumyabrata Bhattacharyya, Jalpaiguri Govt. Engg. College
121010110046
Aritra Dutta, Jalpaiguri Govt. Engg. College
121010110007
Tanmay Sarkar, Jalpaiguri Govt. Engg. College
121010110113
Shailik Sarkar, Jalpaiguri Govt. Engg. College
121010110038
Arup Kumar Bala, Jalpaiguri Govt. Engg. college
121010110011
Page |2
Contents
Contents ............................................................................................ 2
Acknowledgment ............................................................................. 4
o GROUP MEMBERS : ............................................................... 4
Project Objective .............................................................................. 5
The proposed system has the following objectives: ...................... 6
Project Scope .................................................................................... 6
Requirement Specification ............................................................... 8
o Domain Description : ................................................................ 8
o Problem Definition : .................................................................. 8
o Functional Requirements : ...................................................... 10
FUNCTIONALITIES OF OPERATOR: .............................. 11
FUNCTIONALITIES OF ADMINISTRATOR:.................. 11
o Hardware/Software Requirements : ........................................ 12
HARDWARE REQUIREMENTS:........................................ 12
SOFTWARE REQUIREMENTS: ......................................... 12
Database Design ............................................................................. 13
o ER Diagram: ............................................................................ 13
o Table Description: ................................................................... 14
Page |3
Page |4
Acknowledgment
We take this opportunity to express our profound gratitude and
deep regards to our faculty Mr. Suman Aich for his exemplary
guidance, monitoring and constant encouragement throughout
the course of this project. The blessing, help and guidance given
by him to us, every now and then, shall carry us a long way in
the journey of life on which we are about to embark.
We had an outstanding team with excellent teamwork all
through the project and I am sure that each one of us will be
obliged to their fellow team mates for the mutual understanding
they showed and also for the valuable information shared by
them in their respective fields. I am grateful for their
cooperation during the period of this assignment.
GROUP MEMBERS :
NAME
o
FORM NO.
Soumyabrata Bhattacharyya
26949
Aritra Dutta
26970
Tanmay Sarkar
28774
Shailik Sarkar
27687
27744
Page |5
Project Objective
Adequate inventories facilitates production activities and help
to customers satisfaction by providing good service.
Stock management is the function of understanding the stock
mix of a company and the different demands on that stock. The
demands are influenced by both external and internal factors and are
balanced by the creation of purchase order requests to keep supplies
at a reasonable or prescribed level.
A stock management system is the back bone of every retail concern,
whether it's a bricks and grocery shop, e-Commerce website, factory
outlet or pop-up concession.
From the smallest retail business to the biggest superstore, effective
stock control is essential. Finding the right products to sell, when to
sell them and not to be left with merchandise that's eating away at
your profit is a challenge for any business. Even the initial, small
holdover of old stock can cause a knock on effect when you have
an inefficient stock control system. Stock Management System
related software cum database is used to describe in detail the
products sold by a company. A transaction history is maintained
automatically so that detailed review of the receipts and
shipments of products is available throughout the system.
Page |6
Project Scope
This Stock Management System is basically a manual system in
which the administrator (i.e., the HR, MD or the Manager) has to
fill up the details (both personal and professional) of the new
employees who will be working as the operators for this system.
Page |7
The operator will be the prime user of this system whose job will
be to keep the stock organized and up to the level so that the
demands of the retailers are full filled without any delay and if
the stock is not up to level to fulfil the demands then his job will be
to place suitable order to the suppliers for the stock required.
The system helps the operator to create legitimate bills for the
retailers. So, this system makes this task very easy for the
operator and allows him to keep track on each and every import
and export of the stock.
This system helps a company to maintain the stock transaction
record as well as other details and also allows the operator to modify
the record.
This reduces the manual effort needed to manage the stock. This has
the following features: 24 X 7 availability.
Better component design to get better performance at peak time.
Professional look and feel.
Secured data driven role based access.
Page |8
Requirement Specification
o
Domain Description :
Problem Definition :
Page |9
P a g e | 10
Functional Requirements :
P a g e | 11
There are two users who can access this Stock Management
System. It can be accessed both by the administrator (i.e., the HR,
MD or the Manager) and the Operator.
FUNCTIONALITIES OF OPERATOR:
The functionalities of operators are the following
Operator will be able to add, update retailer information.
Operator can view details of retailers.
They will be able to delete retailers.
Operator will be able to see the details of supplier.
They will be able to add new supplier details.
They will be able to update supplier details.
Operator will be able to order new item according to demand.
Operator will be able to generate bill for the ordered item.
Operator will be able to add new batch of items to stock.
They can also remove batch from stock.
FUNCTIONALITIES OF ADMINISTRATOR:
Maintain debit history
Add or create operator
Provide username and password to user.
P a g e | 12
Hardware/Software Requirements :
HARDWARE REQUIREMENTS:
PROCESSORS : COREi3
HARDDISK :-500 GB
SOFTWARE REQUIREMENTS:
OPERATING SYSTEM :- WINDOWS XP
MICROSOFT WORD
P a g e | 13
Database Design
o
ER Diagram:
P a g e | 14
Table Description:
Entity
Attributes
Description
Null
Staff
Staff ID
Name
FName
LName
DOB
Address
SEX
PhoneNo
roleID
username
password
5 varchar
No
15 varchar
15 varchar
Date
30 varchar
1 char {M/F}
10 Digit number
5 var char, F-key
15 var char
8 to 15 var char
No
No
No
No
No
No
N0
roleID
roleName
Descr
5 var char
15 var char
30 var char
No
No
No
CID
BRegNo
Name
Fname
Lname
Address
Phone
Email
Staff ID
5 var char
10 digit
No
No
15 var char
15 var char
30 var char
10 digit
15 var cha
5 varchar
No
No
No
No
Yes
No
Order
OrderID
Staff ID
CID
ODate
ErroMsg
10 digit number
5 var char
5 var char
Date
30 var char
No
No
No
No
Yes
Warehouse
War_ID
War_Name
War_Addr
Max_Cap
Cnt_Items
Bank_Balance
Number
30 varchar2
100 varchar2
Number
Number
Number
No
Yes
No
No
No
No
ODetail
OrderID BillNo
ODetailID
ProductID
USP
Size
OrdQuant
DelQuant
Discount
Total
DelDate
OrdDate
10 digit number
10 digit number
5 var char
10 var char
5 digit
S, M, L
6 digit
6digit number
3 digit number
7digit number
Date
Date
Role
Retailer
P a g e | 15
Payment
BillNo
Pay Type
CrAmount
CrDate
DrAmount
DrDate
Balance
10 digit number
10 var char
7 digit number
Date
7 digit number
Date
7 digit number
No
No
Yes
Yes
Yes
Yes
No
Bill_Generate
Bill_ID
Bill_Date
Ret_ID
Ret_Name
Total_price
Pay_Type
Number
Date
Number
50 varchar2
Number
10 varchar2
No
Yes
Yes
Yes
Yes
Yes
Item
ItemID
PName
PDescr CatID
supplierID
QPerUnit
Uprice
USP
Uweight
Usize
Discount
UInStock
UInOrder
ReOrLevel
Note
10 var char
15 var char
50 var char
5 var char
5 var char
4 digit number
4 digit number
4 digit number
4 digit number
1 var char (S,M,L)
3 digit number
Number
Number
Number
50 var char
No
No
No
No
No
No
No
No
No
No
Yes
No
No
No
Yes
Category
CatID
CatName
Desc
5 var char
15 var char
50 var char
No
No
No
Batch
Batch_ID
Item_ID
Item_Name
Number
Number
50 varchar2
Yes
Yes
Yes
Number
Yes
5 var char
15 var char
15 var char
15 var char
10 var char
30 var char
10 digit number
Number
30 varchar
Var char
3 digit number
No
No
No
No
No
No
No
Yes
Yes
No
Yes
No_of_Items
Supplier
SupplierID
ComName
ConfName
ConlName
ConTitle
Address
Phone
Fax
Email
PayMeth
DisType
P a g e | 16
Application Work-flow
Login
Admin
Operator
EDIT_ADMIN
ADD_RETAILER
CREATE_OPERATOR
ADD_SUPPLIER
(Add new supplier)
TRANSACTION_HISTORY
SHOW_ITEMS
ADD_ITEM_IMPROVED
(Add Items)
ADD_TYPE
ADD_TYPE
STOCK_RECORDS
ADD_MULTIPLE_ITEMS
TRANSACTION_HISTORY
BILL_GENERATE
SEE_USERS
SELECT_RETAILER_NAME_TO_UPDATE
P a g e | 17
ADMIN_CHNG_PWD
SELECT_SUPPLIER_NAME_TO_UPDATE
ENTER_ITEM_ID_FOR_UPDATE
(OLD)
SHOW_ITEMS
(view the details of a particular item)
SEE_EXPIRED
(See Expired Items)
SAVE_INFO
(Saves Operator's Information)
LOGOUT
(Logs Out And Goes To Login Page)
P a g e | 18
Screenshots
P a g e | 19
P a g e | 20
P a g e | 21
P a g e | 22
P a g e | 23
P a g e | 24
P a g e | 25
P a g e | 26
P a g e | 27
P a g e | 28
Code
DROP TABLE ITEM;
DROP TABLE EMPLOYEE;
DROP TABLE SUPPLIER; DROP TABLE RETAILER;
DROP TABLE PURCHASE_SALE;
P a g e | 29
ITEM TABLE:CREATE TABLE ITEM(
ITEM_ID NUMBER(6) NOT NULL,
ITEM_NAME VARCHAR2(50) NOT NULL,
MAIN_TYPE VARCHAR2(20) NOT NULL,
SUB_TYPE VARCHAR2(30) NOT NULL,
BRAND VARCHAR2(30) NOT NULL,
CURRENT_STOCK NUMBER(4) NOT NULL,
MIN_STOCK NUMBER(4) NOT NULL,
MAX_STOCK NUMBER(4) NOT NULL,
EXP_DATE DATE,
ADDING_DATE DATE NOT NULL,
PRICE NUMBER(5) NOT NULL,
PRIMARY KEY(ITEM_ID)
);
NUMBER(4)
NOT
NULL,
P a g e | 30
EMP_NAME VARCHAR2(50) NOT NULL,
EMP_PASS VARCHAR2(20) NOT NULL,
EMP_TYPE VARCHAR2(10) NOT NULL,
EMP_PH NUMBER(10) NOT NULL,
EMP_DETAILS VARCHAR2(100) NOT NULL,
PRIMARY KEY(EMP_ID)
);
P a g e | 31
VALUES(0010,'MAYUKH','ELECTRONICS',9038237793,'BARASAT');
INSERT INTO SUPPLIER
VALUES(0020,'MOND','ELECTRONICS',9002168473,'PRIVATE ROAD,DUMDUM');
INSERT INTO SUPPLIER
VALUES(0030,'VINIT','FOODING',8158004625,'SOVABAJAR');
INSERT INTO SUPPLIER
VALUES(0040,'VIVEK','CLOTHING',7503331566,'BOROBAJAR');
COMMIT;
P a g e | 32
SALE-PURCHASE TABLE:CREATE TABLE PURCHASE_SALE (
TRANS_ID NUMBER(6) NOT NULL,
ITEM_ID NUMBER(6) NOT NULL,
ITEM_NAME VARCHAR2(50) NOT NULL,
BRAND_NAME VARCHAR2(50) NOT NULL,
QUANTITY NUMBER(4) NOT NULL,
TRANS_DATE DATE NOT NULL,
PRICE NUMBER(9) NOT NULL,
TYPE VARCHAR2(50),
PRIMARY KEY (TRANS_ID)
);
INTO
PURCHASE_SALE VALUES(
P a g e | 33
10,000005, 'BUTTER','AMUL',200,'3-JAN-15',20000,'PURCHASE'); commit;
LOGIN PAGE
LOGIN BUTTON
WHEN BUTTON PRESSED
LOGGING INTO ACCOUNT
DECLARE
CURSOR LOGIN_CURSOR IS SELECT EMP_ID,EMP_PASS FROM EMPLOYEE;
ID EMPLOYEE.EMP_ID%TYPE;
PASS EMPLOYEE.EMP_PASS%TYPE;
LOGIN_FLAG BOOLEAN:=FALSE;
BEGIN
OPEN LOGIN_CURSOR;
LOOP
FETCH LOGIN_CURSOR INTO ID, PASS;
THEN
MESSAGE('YOU ARE IN');
LOGIN_FLAG:=TRUE;
END IF;
EXIT WHEN LOGIN_CURSOR%NOTFOUND;
END LOOP;
CLOSE LOGIN_CURSOR;
IF(NOT LOGIN_FLAG)
THEN
MESSAGE('INVALID LOGIN');
END IF;
CLEAR_FORM;
END;
P a g e | 34
FORGOT PASSWORD PAGE
GET PASSWORD BUTTON
WHEN BUTTON PRESSED
GETTING LOGIN DETAILS
DECLARE
CURSOR LOGIN_CURSOR IS SELECT
EMP_ID,EMP_NAME,EMP_PASS,EMP_PH FROM EMPLOYEE;
ID EMPLOYEE.EMP_ID%TYPE;
NAME EMPLOYEE.EMP_NAME%TYPE;
PASS EMPLOYEE.EMP_PASS%TYPE;
PH EMPLOYEE.EMP_PH%TYPE;
LOGIN_FLAG BOOLEAN:=FALSE;
BEGIN
OPEN LOGIN_CURSOR;
LOOP
FETCH LOGIN_CURSOR INTO ID, NAME,PASS,PH;
IF(:TEXT_ITEM5=ID AND :ITEM6=NAME AND :ITEM7=PH)
THEN
ADMIN PANEL
P a g e | 35
GO BUTTON
WHEN BUTTON PRESSED
GO TO
BEGIN
IF :RADIO_GROUP4='1' THEN
CALL_FORM('C:\project new\ITEMQUERY.FMX');
ELSIF :RADIO_GROUP4='2' THEN
CALL_FORM('C:\project new\SALERECORD.FMX');
ELSIF :RADIO_GROUP4='3' THEN
CALL_FORM('C:\project new\SUPPLIER.FMX');
ELSIF :RADIO_GROUP4='4' THEN
CALL_FORM('C:\project new\RETAILER.FMX');
ELSIF :RADIO_GROUP4='5' THEN
CALL_FORM('C:\project new\EMPLOYEE.FMX');
END IF;
END;
---------------------------------------------------------------------------------
USER PANEL
GO BUTTON
WHEN BUTTON PRESSED
GO TO
BEGIN
IF :RADIO_GROUP4='1' THEN
CALL_FORM('C:\project new\ITEMQUERY.FMX');
ELSIF :RADIO_GROUP4='2' THEN
CALL_FORM('C:\project new\SALEPURCHASE.FMX');
ELSIF :RADIO_GROUP4='3' THEN
CALL_FORM('C:\project new\Salerecord.FMX');
END IF;
P a g e | 36
END;
---------------------------------------------------------------------------------
ITEM
SAVE BUTTON
WHEN BUTTON PRESSED
SAVE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_SAVE');
AL_BUTTON:=SHOW_ALERT('AL_SAVE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE('ITEM SAVED');
ELSE
GO_BLOCK('ITEM');
P a g e | 37
CLEAR_BLOCK('ITEM');
END IF;
END;
UPDATE BUTTON
WHEN BUTTON PRESSED
UPDATE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_UPDATE'); AL_BUTTON:=SHOW_ALERT('AL_UPDATE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE('ITEM UPDATE');
ELSE
GO_BLOCK('ITEM');
END IF;
END;
DELETE BUTTON
WHEN BUTTON PRESSED
DELETE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_DELETE');
AL_BUTTON:=SHOW_ALERT('AL_DELETE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
DELETE_RECORD;
MESSAGE('ITEM DELETED');
P a g e | 38
CLEAR_BLOCK('ITEM');
ELSE
GO_BLOCK('ITEM');
END IF;
END;
EXIT BUTTON
WHEN BUTTON PRESSED
EXIT
EXIT_FORM;
ITEM QUERY
MAIN TYPE DROP DOWN LIST WHEN BUTTON PRESSED
NEW FORM INSTANCE
DECLARE
RG_MT RECORDGROUP;
STAT NUMBER;
RG_NAME VARCHAR2(30):='AAA';
BEGIN
RG_MT:=CREATE_GROUP_FROM_QUERY(RG_NAME,'SELECT
DISTINCT MAIN_TYPE MAIN ,TO_CHAR(MAIN_TYPE)MTYPE FROM
ITEM');
STAT:=POPULATE_GROUP(RG_MT); POPULATE_LIST('BLOCK47.MAINTYPE',RG_MT);
END;
P a g e | 39
DISTINCT SUB_TYPE SUB, TO_CHAR(SUB_TYPE) STYPE FROM ITEM WHERE ITEM.MAIN_TYPE='||''''||:BLOCK47.MAINTYPE||'''');
POPULATE_LIST('BLOCK47.SUBTYPE','RG_SUB');
GO_BLOCK('ITEM2');
SET_BLOCK_PROPERTY('ITEM2',ONETIME_WHERE,'ITEM.MAIN_TY
PE='||''''||:MAINTYPE||'''');
EXECUTE_QUERY(NO_VALIDATE);
END;
EXIT
WHEN BUTTON PRESSED
EXIT_FORM;
SUPPLIER
PREVIOUS RECORD BUTTON DISPLAY BUTTON
WHEN BUTTON PRESSED
DISPLAY
EXECUTE_QUERY;
P a g e | 40
NEXT RECORD
NEXT_RECORD;
SAVE BUTTON
WHEN BUTTON PRESSED
SAVE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_SAVE');
AL_BUTTON:=SHOW_ALERT('AL_SAVE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE('SUPPLIER SAVED');
ELSE
GO_BLOCK('SUPPLIER');
CLEAR_BLOCK(' SUPPLIER ');
END IF;
END;
UPDATE BUTTON
WHEN BUTTON PRESSED
UPDATE
DECLARE
AL_ID ALERT;
P a g e | 41
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_UPDATE');
AL_BUTTON:=SHOW_ALERT('AL_UPDATE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE(' SUPPLIER UPDATE');
ELSE
GO_BLOCK(' SUPPLIER ');
END IF;
END;
DELETE BUTTON
WHEN BUTTON PRESSED
DELETE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_DELETE');
AL_BUTTON:=SHOW_ALERT('AL_DELETE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
DELETE_RECORD;
MESSAGE(' SUPPLIER DELETED');
CLEAR_BLOCK(' SUPPLIER ');
ELSE
GO_BLOCK(' SUPPLIER ');
END IF;
END;
EXIT BUTTON
WHEN BUTTON PRESSED
EXIT
P a g e | 42
EXIT_FORM;
RETAILER
PREVIOUS RECORD BUTTON DISPLAY BUTTON
WHEN BUTTON PRESSED
DISPLAY
EXECUTE_QUERY;
SAVE BUTTON
WHEN BUTTON PRESSED
SAVE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
P a g e | 43
AL_ID:=FIND_ALERT('AL_SAVE');
AL_BUTTON:=SHOW_ALERT('AL_SAVE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE('RETAILER SAVED');
ELSE
GO_BLOCK('RETAILER');
CLEAR_BLOCK(' RETAILER ');
END IF;
END;
UPDATE BUTTON
WHEN BUTTON PRESSED
UPDATE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_UPDATE');
AL_BUTTON:=SHOW_ALERT('AL_UPDATE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE(' RETAILER UPDATE');
ELSE
GO_BLOCK(' RETAILER ');
END IF;
END;
DELETE BUTTON
WHEN BUTTON PRESSED
DELETE
DECLARE
AL_ID ALERT;
P a g e | 44
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_DELETE');
AL_BUTTON:=SHOW_ALERT('AL_DELETE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
DELETE_RECORD;
MESSAGE(' RETAILER DELETED');
CLEAR_BLOCK(' RETAILER ');
ELSE
GO_BLOCK(' RETAILER ');
END IF;
END;
EXIT BUTTON
WHEN BUTTON PRESSED
EXIT
EXIT_FORM;
SUPPLIER
PREVIOUS RECORD BUTTON DISPLAY BUTTON
WHEN BUTTON PRESSED
DISPLAY
EXECUTE_QUERY;
P a g e | 45
NEXT RECORD BUTTON
WHEN BUTTON PRESSED
NEXT RECORD
NEXT_RECORD;
SAVE BUTTON
WHEN BUTTON PRESSED
SAVE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_SAVE');
AL_BUTTON:=SHOW_ALERT('AL_SAVE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE('SUPPLIER SAVED');
ELSE
GO_BLOCK('SUPPLIER');
CLEAR_BLOCK(' SUPPLIER ');
END IF;
END;
UPDATE BUTTON
WHEN BUTTON PRESSED
P a g e | 46
UPDATE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_UPDATE');
AL_BUTTON:=SHOW_ALERT('AL_UPDATE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE(' SUPPLIER UPDATE');
ELSE
GO_BLOCK(' SUPPLIER ');
END IF;
END;
DELETE BUTTON
WHEN BUTTON PRESSED
DELETE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_DELETE');
AL_BUTTON:=SHOW_ALERT('AL_DELETE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
DELETE_RECORD;
MESSAGE(' SUPPLIER DELETED');
CLEAR_BLOCK(' SUPPLIER ');
ELSE
GO_BLOCK(' SUPPLIER ');
END IF;
END;
P a g e | 47
EXIT BUTTON
WHEN BUTTON PRESSED
EXIT
EXIT_FORM;
EMPLOYEE
PREVIOUS RECORD BUTTON DISPLAY BUTTON
WHEN BUTTON PRESSED
DISPLAY
EXECUTE_QUERY;
SAVE BUTTON
WHEN BUTTON PRESSED
SAVE
DECLARE
AL_ID ALERT;
P a g e | 48
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_SAVE');
AL_BUTTON:=SHOW_ALERT('AL_SAVE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE(EMPLOYEE SAVED');
ELSE
GO_BLOCK(' EMPLOYEE ');
CLEAR_BLOCK(' EMPLOYEE ');
END IF;
END;
UPDATE BUTTON
WHEN BUTTON PRESSED
UPDATE
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_UPDATE');
AL_BUTTON:=SHOW_ALERT('AL_UPDATE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
COMMIT_FORM;
MESSAGE(' EMPLOYEE UPDATE');
ELSE
GO_BLOCK(' EMPLOYEE ');
END IF;
END;
DELETE BUTTON
WHEN BUTTON PRESSED
DELETE
P a g e | 49
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
BEGIN
AL_ID:=FIND_ALERT('AL_DELETE');
AL_BUTTON:=SHOW_ALERT('AL_DELETE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
DELETE_RECORD;
MESSAGE(' EMPLOYEE DELETED');
ELSE
GO_BLOCK(' EMPLOYEE ');
END IF;
END;
EXIT BUTTON
WHEN BUTTON PRESSED
EXIT
EXIT_FORM;
SALE PURCHASE
BUTTON
WHEN BUTTON PRESSED
BEGIN
LOOP
EXIT WHEN SHOW_LOV('LOV92');
MESSAGE('SELECT A VALUE FROM LIST');
END LOOP;
END;
SAVE BUTTON
DECLARE
AL_ID ALERT;
AL_BUTTON NUMBER;
P a g e | 50
CURSOR ITEM_CURSOR IS SELECT
ITEM.ITEM_ID,ITEM.CURRENT_STOCK,ITEM.MAX_STOCK FROM ITEM;
CUR NUMBER(4);
MAXS NUMBER(4);
ITEMID NUMBER(6);
ITEM_FLAG BOOLEAN:=FALSE;
BEGIN
OPEN ITEM_CURSOR;
AL_ID:=FIND_ALERT('AL_SAVE');
AL_BUTTON:=SHOW_ALERT('AL_SAVE');
IF AL_BUTTON=ALERT_BUTTON1 THEN
LOOP
FETCH ITEM_CURSOR INTO ITEMID,CUR,MAXS;
IF(:ITEM_ID=ITEMID)THEN
IF :TYPE='SALE' THEN
IF(:PURCHASE_SALE.QUANTITY
<=CUR)THEN
UPDATE ITEM SET
CURRENT_STOCK=CURRENT_STOCK-:PURCHASE_SALE.QUANT ITY WHERE ITEM_ID=:PURCHASE_SALE.ITEM_ID;
STANDARD.COMMIT;
COMMIT_FORM;
CLEAR_FORM;
ELSE
MESSAGE('LOW STOCK');
END IF;
ELSIF :TYPE='PURCHASE' THEN
IF((:PURCHASE_SALE.QUANTITY+CUR)<=MAXS)THEN
UPDATE ITEM SET
CURRENT_STOCK=CURRENT_STOCK+:PURCHASE_SALE.QUANT ITY WHERE ITEM_ID=:PURCHASE_SALE.ITEM_ID;
STANDARD.COMMIT;
COMMIT_FORM;
ELSE
P a g e | 51
MESSAGE('TOTAL STOCK EXCEEDS
THE MAXIMUM STOCK');
END IF;
END IF;
ITEM_FLAG:=TRUE;
END IF;
EXIT WHEN ITEM_CURSOR%NOTFOUND;
END LOOP;
CLOSE ITEM_CURSOR;
MESSAGE('saved');
IF(NOT ITEM_FLAG)
THEN
MESSAGE('ITEM ID NOT FOUND');
END IF;
ELSIF AL_BUTTON=ALERT_BUTTON2 THEN
MESSAGE('WE ARE IN FORM..');
END IF;
CLEAR_BLOCK;
END;
EXIT
WHEN BUTTON PRESSED
EXIT_FORM;
TRANSITION RECORD
TRANS_TYPE RADIO GROUP
WHEN RADIO CHANGED
BEGIN
Go_Block('PURCHASE_SALE'); IF :TYPE_TRANS = 'SALE' THEN
set_block_property('PURCHASE_SALE', onetime_where, '
PURCHASE_SALE.TRANS_DATE BETWEEN ' ||
''''||TO_DATE(:TEXT_ITEM15)||''''
|| ' AND ' ||
P a g e | 52
''''||TO_DATE(:TEXT_ITEM16)||''''||'AND
PURCHASE_SALE.TYPE='||''''||:BLOCK7.TYPE_TRANS||''''); ELSIF :TYPE_TRANS='PURCHASE'THEN
set_block_property('PURCHASE_SALE', onetime_where, '
PURCHASE_SALE.TRANS_DATE BETWEEN ' ||
''''||TO_DATE(:TEXT_ITEM15)||'''' || ' AND ' ||
''''||TO_DATE(:TEXT_ITEM16)||''''||'AND
PURCHASE_SALE.TYPE='||''''||:BLOCK7.TYPE_TRANS||''''); ELSIF :TYPE_TRANS='ALL'THEN
set_block_property('PURCHASE_SALE', onetime_where, '
PURCHASE_SALE.TRANS_DATE BETWEEN ' || ''''||TO_DATE(:TEXT_ITEM15)||'''' || ' AND ' || ''''||TO_DATE(:TEXT_ITEM16)||'''');
END IF;
Execute Query(No_Validate);
END;
EXIT
WHEN BUTTON PRESSED
EXIT_FORM;
----------------------------------------------------------------------------------.
P a g e | 53
Certificate
o
Certificate:
P a g e | 54
Certificate:
-------------------------------------------------------------
P a g e | 55
Certificate:
P a g e | 56
Certificate:
P a g e | 57
Certificate:
-------------------------------------------------------------
P a g e | 58