You are on page 1of 58

TECHNOLOGICAL INSTITUTE OF THE PHILIPPINES Quezon City

COLLEGE OF INFORMATION TECHNOLOGY EDUCATION

A System Development Project entitled

CONVENIENCE STORE SALES AND INVENTORY SYSTEM WITH DSS


In Partial Fulfillment of the Requirements for Advanced Internet Computing 2 (EWEB422L1)

by: Rodriguez, Sonny Jaylo Santos, Edrian D. Milan, Albin Kicco S.

Mrs. MELISSA P. PICONES-JUANILLO Instructor

March 2011

1. The Problem and Its Background


1.1. Introduction
Inventory is a difficult asset to control it arrives and departs the company daily, is scattered throughout the warehouse and production areas, may contain obsolete or scrap items, can involve a thousands of part numbers, can include items owned by suppliers or customers. Information has become as important as, or even more important than products. Businesses that don't understand this are at a loss to explain why, when their prices are lower, their products just as good, and their advertising spending higher.

the things in selling a product. It provides the easiest way to trace or track the products and to ensure the balance of cost and profit of the store. It helps the store to have information in all the products it sells and control the flow of the marketing process. The system provides the basic needs from ordering up to generating reports and with the DSS (Decision Support System) it will help the store to trace the products in critical levels.

1.5. Scope and Limitation


The system will covers all the main transaction of the sales system and inventory system like ordering of products, receiving of products, purchasing of products, generating of reports about the products and tracing the products that is in critical levels. The limitation of the system will be for standalone computers, convenience store products only and limited in some reports.

1.2. Background of the Study


The Convenience Store Sales and Inventory System with DSS is basically a point of sales system and inventory system that has a decision support system. The decision support system is the main key in the system. It provides decision making for the user to decide what to do. It has ordering of products, receiving of products, purchasing of products and generation of reports about the products.

2. Systems Development Life Cycle 2.1. Systems


Planning Requirements Specification Business Policy and

2.2.

1.3. Objectives of the Study


Inventory control the computer keeps the store's inventory, so the POS terminals attached to it automatically update inventory with every sale or return. In multi-store environments the person at the PoS station can check stock in other stores if this store is out of stock. The central office knows at all times how much stock each store has. Reduced Out of stock low stock reports and purchase orders are produced automatically with enough lead time to receive goods. Loss prevention Record keeping is so thorough and reporting so clear that employee theft of either inventory or received cash, even if cleverly disguised, is detectable and traceable. Support both accounting and technical support people can call into the system and inspect the records for themselves. This greatly reduces the level of skill needed at the store to resolve accounting problems.

Ordering Schedule Ordering for the products from the suppliers must be not the current day but it can be advanced scheduling. Ordering in any suppliers can be process the day after the ordering date.

Retailing Price The price for every product will increase in 40% for the store to have income. Qualification Employees must be at least 18 years old and must have studied about management. For buyers of cigarettes and alcohols the customers must be 18 and above and must not wear uniforms from schools. Every bottle of beers have deposits of 5%.

1.4. Significance of the Study


The system Convenience Store Sales and Inventory System with DSS is a system that covers all

2.3. PROJECT SCHEDULE


February March 2012
2nd Semester SY 2011-2012 System Title: Convenience Store Sales and Inventory System with DSS

February

March 4th Week 1st Week 2nd Week 3rd Week

Activities
1. System Planning Task Assignment Data Gathering (Business Policy) Chapter 1 2. System Analysis and Design Analysis of the Requirements Creation of Diagrams Checking and Revision of Diagrams 3. System Development Database Creation Coding Debugging 4. System Testing and Revisions Unit Testing Initial Presentation Revision of System and Documents Final Presentation

1st Week

2nd Week

3rd Week

2.4. WORK ASSIGNMENT


2nd Semester SY 2011-2012 System Title: Convenience Store Sales and Inventory System with DSS

System

Documents Status Tasks Status

DEVELOPERS
Leader: Rodriguez, Sonny Jaylo Members: Santos, Edrian D.

Tasks

Programmer Quality Assurance Quality Assurance, Reasercher

Done

Diagrams

Done

Done

Chapter 1 Remaining Chapters

Done

Milan, Albin Kicco Sule

Done

Done

3. Systems Analysis and Design


This is the part where the developers analyze the system with the context diagram, entity relationship diagram and hierarchical input process output, database design.

3.3. Hierarchical Output

Input

Process

3.1. Context Diagram

Figure 3 HIPO

Figure 1 Context Diagram

3.4. Database Design

3.2. Entity Relationship Diagram

4. Systems Development and Testing


4.1. Development Tool
SQL Plus used for creating, deleting, altering and querying tables.

Figure 2 ERD

Oracle Forms Builders used to create forms and modules for the system. Build all codes for all the modules. Oracle Reports Builders used to create reports that will be generated by the system. Builds template for the reports and codes for each report in the system.

5.2. Software Requirements 4.2. Backend


The storehouse for the data in the system is Oracle 10g. It can manage large amount of data and can manipulate it freely with the oracle software like forms builder reports builder and SQL plus. For the system to be successfully developed, the following software were used: First, it needs a Windows XP OS or higher. The developers use Microsoft Virtual Box for faster installation of Oracle 10g with Windows XP operating system. Convenience Store Sales and Inventory System with DSS System is developed under Oracle 10g, Forms Builder and Oracle 10g, Reports Builder. The Oracle Database Configuration is also used to create and configure database. For adding data for table to be used, developers used SQL*Plus and for the creation of forms Oracle Forms builder was used.

4.3. Testing Procedures


The testing process for the system will be done in every module. First all the modules will test one by one if error occurs it will reprogram the module and test it again but if the module has no errors it will be connected to the main module for integration after the testing all the modules for the forms the next testing process will be the reports modules. It will connect to the forms module to test the connection between the forms and reports. The last testing process is for the whole system from the login up to main transaction and to generation of reports.

5.3. Installation Guide


To properly install the system the computer must meet all the requirements listed above. The installation process is very simple just install the oracle forms builder 10g and oracle reports builder 10g with the SQL plus and run the system named Convenience Store Sales and Inventory System with DSS. The system will function properly if the machine meets all the requirements.

5. Users Manual
This part contains the specifications needed by the system in order to execute.

5.1. Hardware Requirements


Oracle will suitably run with the following hardware requirements: Oracle 10g PC Requirements: Minimum Hardware

5.4. How to use the system


First log in as the given username and password for admin use ADMIN as user and ADMIN as password for user use USER as user and USER as password. The admin has the privilege to view all users of the system and can alter them. After logging in the system will direct to the home module where in it has menus and list of existing pending process if ever like ordering, receiving and products that are in critical levels. First thing to do is to add products or suppliers for the system to hold information about the store. Go to menu select maintenance then add products, suppliers or even users then order products from the supplier using the ordering module in the menu after receive the ordered products and replenish the items in store. The purchasing module is in the transaction it can now sell the products that have been stock in the store. After all the process generate reports in the menu and add details in the reports generator and it will print the reports about the product base on the report selected.

Physical memory (RAM)

512 MB recommended Double amount RAM the of

Virtual memory

Temp disk space Video adapter CPU Processor

Hard disk space 1.5 GB 256 colors 200 MHz minimum

6. Screenshots with Program


Screen no: 1 Screen name: Log In Description: Allows the user to log in or open the system.

begin if :blklogin.logusername is null or :blklogin.logpass is null then set_alert_property('audit',alert_message_text,'All fields must be entered.'); n:=show_alert('audit'); :GLOBAL.counter1 := :GLOBAL.counter1 + 1; GO_ITEM('logusername'); Else select username, password,userid :blklogin.logusername, :blklogin.logpass,:GLOBAL.USERID from userlist where (:blklogin.logusername=username :blklogin.logpass=userpass and userstatus 'TRUE'); CLEAR_FORM; call_form('c:\247\HOME.fmx',hide,do_replace); and LIKE into

Object name: Trigger level: Form level Trigger name: When-new-from-instance select username into :blklogin.logusername from userlist where username = :blklogin.logusername; SET_ITEM_PROPERTY('BLKlogin.logname',visible, PROPERTY_true); select firstname||' '||midname||'. '||lastname into :blklogin.logname from userlist where username = :blklogin.logusername; exception when no_data_found then :blklogin.logname := null; SET_ITEM_PROPERTY('BLKlogin.logname',visible, PROPERTY_false); end;

end if; EXception when no_data_found then SET_ALERT_PROPERTY('audit',ALERT_MESSAG E_TEXT,'Username and Password not matched!'); n:= show_alert('audit'); if :blklogin.logname is null then clear_form(no_commit); :GLOBAL.counter1 := :GLOBAL.counter1 + 1; GO_ITEM('logusername'); Else :blklogin.logpass := null; :GLOBAL.counter1 := :GLOBAL.counter1 + 1; GO_ITEM('logpass'); end if; If :GLOBAL.counter1=3 then SET_ALERT_PROPERTY('ERROR',ALERT_MESS AGE_TEXT,'Username and Password Not Found! Anauthorized Login .. 3 trial attempt... Exit form'); n:=show_alert('ERROR'); exit_form(no_validate, no_rollback); end if; end;

Object name: BTNCANCEL Trigger level: Item level Trigger name: When-button-pressed exit_form;

Screen no: 2 Object name: BTNOK Trigger level: Item level Trigger name: When-button-pressed declare n number; Screen name: Receiving Advice Description: Allows the user to view or print the received ordered products from the suppliers.

END IF; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; :bloCK34.RECUSERID:=:GLOBAL.USERID; SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); Object name: Trigger level: Form level Trigger name: When-new-form-instance DECLARE v_message_level PLS_INTEGER :SYSTEM.MESSAGE_LEVEL; LINE NUMBER; := END; SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE);

Object name: BTNBACK Trigger level: item level Trigger name: When-button-pressed

BEGIN SELECT MAX(LINENO) INTO LINE FROM RECEIVINGDETAIL WHERE RECID=:GLOBAL.RECID; GO_BLOCK('BLKRECEIVINGADVICELIST'); select R.RECID, R.DELIVERYDOCNO, R.SUPPDESCRIPTION, R.RECSTATUS, R.DATERECEIVED, R.CREATEDBY into :BLKRECEIVINGADVICELIST.RECID, :BLKRECEIVINGADVICELIST.DELIVERYDOCN O, :BLKRECEIVINGADVICELIST.SUPPDESCRIPTIO N, :BLKRECEIVINGADVICELIST.RECSTATUS, :BLKRECEIVINGADVICELIST.DATERE CEIVED,:BLKRECEIVINGADVICELIST.CREATE DBY from RECEIVINGLIST R where R.RECID = :GLOBAL.RECID;

CALL_FORM('C:\247\FRMRECLIST.FMX',HIDE,D O_REPLACE); Object name: RECPRINT Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID GET_PARAMETER_LIST('tmpdata'); :=

IF NOT ID_NULL(PL_ID) THEN IF LINE IS NOT NULL THEN Set_Block_Property('BLKRECEIVINGAD VICEDETAIL', DEFAULT_WHERE,'RECID =:GLOBAL.RECID'); GO_BLOCK('BLKRECEIVINGADVICEDETAIL'); EXECUTE_QUERY; DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); := 'paraform',

ADD_PARAMETER(PL_ID, 'P_RECID', text_parameter, :BLKRECEIVINGADVICELIST.RECID);

Object name: Trigger level: Form level Trigger name: When-new-form-instance begin select max(orderid) into :GLOBAL.orderid from replenishmentorderlist; if :GLOBAL.orderid is null then :blkrepcorder.repcid:=1000000000; else :blkrepcorder.repcid:=:GLOBAL.orderid+1; end if; :blKREPCORDER.REPUSERID:=:GLOBAL.userid; :blkrepcorder.repcordate:=sysdate; :BLKREPcORDER.REPcDEDATE:=SYSDATE+1; :GLOBAL.repcordate:=:blkrepcorder.repcordate; :GLOBAL.repcdedate:=:blkrepcorder.repcdedate; :BLKREPCORDER.DATEDAY:=TO_CHAR(SYSD ATE,'MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); end;

V_REPORT_ID := FIND_REPORT_OBJECT('RECEIVINGDETAIL'); V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP;

WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); END; Screen no: 3 Screen name: CREATE REPLENISHMENT ORDER Description: Allows the user to create new orders of products.

Object name: ORDRIGHT Trigger level: Item level Trigger name: When-button-pressed :blkrepcorder.repcordate:=:blkrepcorder.repcordate+1; :blkrepcoRder.repcDEdate:=:blkrepcorder.repcordate+ 1;

Object name: ORDLEFT Trigger level: Item level Trigger name: When-button-pressed :blkrepcorder.repcordate:=:blkrepcORDER.repcordate -1; :BLKREPCORDER.REPCDEDATE:=:BLKREPCOR DER.REPCORDATE+1;

Object name: REPADD Trigger level: Item level Trigger name: When-button-pressed declare CITEMCODE NUMBER; CQTY NUMBER; C1ITEMCODE NUMBER; C1QTY NUMBER; C2ITEMCODE NUMBER; C2QTY NUMBER; C3ITEMCODE NUMBER; C3QTY NUMBER; C4ITEMCODE NUMBER; C4QTY NUMBER; C5ITEMCODE NUMBER; C5QTY NUMBER; n number; btn number(2); ORDATE DATE; ORDDAY VARCHAR2(10); CATMAX NUMBER; CATMID NUMBER; v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; cursor count_cur is select PM.ITEMCODE,PM.PRODQTY from PRODUCTMASTERLIST PM where PM.ITEMCODE IN (SELECT P.ITEMCODE FROM PRODUCT P WHERE P.SUPPID=33300 CATMID); AND P.CATID >

where TO_CHAR(POST.BUSINESSDATE,'DDMON-YY')=TO_DATE(SYSDATE,'DD-MON-YY')4 GROUP BY POST.ITEMCODE; cursor count3_cur is select p.ITEMCODE,SUM(p.TRANQTY) as c3qty from POSTRANSACTIONDETAIL p where TO_CHAR(p.BUSINESSDATE,'DD-MONYY')=TO_DATE(SYSDATE,'DD-MON-YY')-3 GROUP BY p.ITEMCODE; cursor count4_cur is select po.ITEMCODE,SUM(po.TRANQTY) as c4qty from POSTRANSACTIONDETAIL po where TO_CHAR(po.BUSINESSDATE,'DD-MONYY')=TO_DATE(SYSDATE,'DD-MON-YY')-2 GROUP BY po.ITEMCODE; cursor count5_cur is select pos.ITEMCODE,SUM(pos.TRANQTY) as c5qty from POSTRANSACTIONDETAIL pos where TO_CHAR(pos.BUSINESSDATE,'DD-MONYY')=TO_DATE(SYSDATE,'DD-MON-YY')-1 GROUP BY pos.ITEMCODE; BEGIN SELECT MAX(CATID) INTO CATMAX FROM CATEGORY; CATMID:=CATMAX/2; SELECT MAX(ORDEREDDATE) INTO ORDATE FROM REPLENISHMENTORDERLIST; ORDDAY:=TO_CHAR(:BLKrepcorder.repcordate,'D Y'); IF ORDDAY='SUN' THEN set_alert_property('PRODFILLUP',alert_message_text ,'no delivery for sunday'); n:=show_alert('PRODFILLUP'); ELSIF THEN :BLKrepcorder.repcordate <= ORDATE

cursor countN_cur is select PM.ITEMCODE,PM.PRODQTY from PRODUCTMASTERLIST PM where PM.ITEMCODE IN (SELECT P.ITEMCODE FROM PRODUCT P WHERE P.SUPPID=33300 AND P.CATID <= CATMID); cursor count1_cur is select ITEMCODE,SUM(TRANQTY)as c1qty from POSTRANSACTIONDETAIL where TO_CHAR(BUSINESSDATE,'DD-MONYY')=TO_DATE(SYSDATE,'DD-MON-YY')-5 GROUP BY ITEMCODE; cursor count2_cur is select POST.ITEMCODE,SUM(POST.TRANQTY)as c2qty from POSTRANSACTIONDETAIL POST

set_alert_property('PRODFILLUP',alert_message_text ,'order date is already created'); n:=show_alert('PRODFILLUP'); ELSIF THEN :BLKrepcorder.repcordate <= SYSDATE

set_alert_property('PRODFILLUP',alert_message_text ,'invalid! order date must be atleast one day after date today!! '); n:=show_alert('PRODFILLUP'); else IF show_alert('TRANSACTION')=alert_button1 then

INSERT INTO replenishmentorderlist (orderid,userid,datecreated,ordereddate,noofitems,total cost,totalretail,ordSTATUS,deliverydate) VALUES (:BLKrepcorder.repcid,:blkrepcorder.repuserid,sysdate ,:blkrepcorder.repcordate, 0,0,0,'CREATED',:blkrepcorder.repcdedate); FORMS_DDL('COMMIT'); :GLOBAL.repcid:= :blkrepcorder.repcid; :GLOBAL.datecreated:=SYSDATE; IF ORDDAY ='TUE' OR ORDDAY = 'THU' OR ORDDAY = 'SAT' THEN Insert into replenishmentorderdetail(orderid,itemcode,itemdescri ption,ORDERQTY,FINALORDER,MOQ,QTYRECE IVED,COUNT1,COUNT2,COUNT3,COUNT4,COU NT5,unitcost,unitretail,TOTALCOST,TOTALRETAI L,suppid,ordereddat select :GLOBAL.REPCID,P.ITEMCODE,P.ITEMDESCRIP TION,0,0,P.MOQ,0,0,0,0,0,0,P.UNITCOST,P.UNITR ETAIL,0,0,P.SUPPID,:GLOBAL.DATECREATED FROM PRODUCT P WHERE CATMID; P.SUPPID=33300 AND CATID >

TION,0,0,P.MOQ,0,0,0,0,0,0,P.UNITCOST,P.UNITR ETAIL,0,0,P.SUPPID,:GLOBAL.DATECREATED FROM PRODUCT P WHERE P.SUPPID=33300 <=CATMID; FORMS_DDL('COMMIT'); open COUNTN_CUR; LOOP fetch COUNTN_CUR into CITEMCODE,CQTY; update REPLENISHMENTORDERDETAIL REP set COUNT=CQTY where REP.ORDERID =:GLOBAL.REPCID AND REP.ITEMCODE = CITEMCODE; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; next_record; EXIT WHEN COUNTN_CUR%NOTFOUND; END LOOP; close COUNTN_CUR; END IF; :SYSTEM.MESSAGE_LEVEL := v_message_level; open COUNT1_CUR; LOOP fetch COUNT1_CUR into C1ITEMCODE,C1QTY; update REPLENISHMENTORDERDETAIL set COUNT1=C1QTY where ITEMCODE=C1ITEMCODE ORDERID =:GLOBAL.REPCID; :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; next_record; EXIT WHEN COUNT1_CUR%NOTFOUND; END LOOP; close COUNT1_CUR; open COUNT2_CUR; LOOP fetch COUNT2_CUR into C2ITEMCODE,C2QTY; update REPLENISHMENTORDERDETAIL set COUNT2=C2QTY where ITEMCODE=C2ITEMCODE ORDERID =:GLOBAL.REPCID; CLEAR_MESSAGE; next_record; EXIT WHEN COUNT2_CUR%NOTFOUND; AND AND := AND CATID

FORMS_DDL('COMMIT'); open COUNT_CUR; LOOP fetch COUNT_CUR into CITEMCODE,CQTY; update REPLENISHMENTORDERDETAIL REP set COUNT=CQTY where REP.ORDERID =:GLOBAL.REPCID AND REP.ITEMCODE = CITEMCODE; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; next_record; EXIT WHEN COUNT_CUR%NOTFOUND; END LOOP; close COUNT_CUR; ELSIF ORDDAY ='MON' OR ORDDAY = 'WED' OR ORDDAY = 'FRI' THEN Insert into replenishmentorderdetail(orderid,itemcode,itemdescri ption,ORDERQTY,FINALORDER,MOQ,QTYRECE IVED,COUNT1,COUNT2,COUNT3,COUNT4,COU NT5,unitcost,unitretail,TOTALCOST,TOTALRETAI L,suppid,ordereddate) select :GLOBAL.REPCID,P.ITEMCODE,P.ITEMDESCRIP

:SYSTEM.MESSAGE_LEVEL := v_message_level;

END LOOP; close COUNT2_CUR; FORMS_DDL('commit'); open COUNT3_CUR; LOOP fetch COUNT3_CUR into C3ITEMCODE,C3QTY; update REPLENISHMENTORDERDETAIL set COUNT3=C3QTY where ITEMCODE=C3ITEMCODE ORDERID =:GLOBAL.REPCID; CLEAR_MESSAGE; next_record; EXIT WHEN COUNT3_CUR%NOTFOUND; END LOOP; close COUNT3_CUR; Screen no: 4 open COUNT4_CUR; LOOP fetch COUNT4_CUR into C4ITEMCODE,C4QTY; update REPLENISHMENTORDERDETAIL set COUNT4=C4QTY where ITEMCODE=C4ITEMCODE AND ORDERID =:GLOBAL.REPCID; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; next_record; EXIT WHEN COUNT4_CUR%NOTFOUND; END LOOP; close COUNT4_CUR; Object name: Trigger level: form level Trigger name: When-new-form-instance open COUNT5_CUR; LOOP fetch COUNT5_CUR into C5ITEMCODE,C5QTY; update REPLENISHMENTORDERDETAIL set COUNT5=C5QTY where ITEMCODE=C5ITEMCODE ORDERID =:GLOBAL.REPCID; CLEAR_MESSAGE; next_record; EXIT WHEN COUNT5_CUR%NOTFOUND; END LOOP; close COUNT5_CUR; AND DECLARE N NUMBER; begin select max(recid) into N from receivinglist; IF N IS NULL THEN :GLOBAL.RECID:=1000000000; ELSE :GLOBAL.RECID:=N+1; END IF; :blkcreaterec.recuserid:=:GLOBAL.USERID; Screen name: CREATE RECEIVING ADVICE Description: Allows the user to create new receive products. AND CLEAR_MESSAGE; call_form('c:\247\frmorderdetailadd.fmx',HIDE,DO_R EPLACE); end if; \END IF; END; BTNCLOSE IF SHOW_ALERT('CLOSE') = ALERT_BUTTON1 THEN EXIT_FORM(NO_COMMIT); END IF;

:SYSTEM.MESSAGE_LEVEL := v_message_level;

:SYSTEM.MESSAGE_LEVEL := v_message_level;

:BLKCREATEREC.CREATERECID:=:GLOBAL.RE CID; :blkcreaterec.createrecdate:=to_char(sysdate,'DD/Mon /YYYY'); :BLKCREATEREC.DATEDAY:=TO_CHAR(SYSD ATE,'MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); end;

MESSAGE('You have not chosen a Supplier'); MESSAGE('You have not chosen a Supplier'); else next_block; execute_query; end if; end; Object name: ORDRIGHT Trigger level: Item level Trigger name: When-button-pressed begin :blkCREATEREC.CREATERECDATE:=:blkCREAT EREC.CREATERECDATE+1; end;

Object name: BTNADD Object name: BTNSEARCH Trigger level: Item level Trigger name: When-button-pressed declare a_value_chosen BOOLEAN; n NUMBER; btn_loan ITEM; begin a_value_chosen := Show_Lov('lov26'); if not a_value_chosen then MESSAGE('You have not chosen a Supplier'); MESSAGE('You have not chosen a Supplier'); else next_block; execute_query; end if; end; Object name: ORDLEFT Trigger level: Item level Trigger name: When-button-pressed declare a_value_chosen BOOLEAN; n NUMBER; btn_loan ITEM; begin a_value_chosen := Show_Lov('lov26'); if not a_value_chosen then Trigger level: Item level Trigger name: When-button-pressed declare n number; btn number(2); BEGIN IF :BLKcreaterec.createrecsupp IS NULL OR :BLKcreaterec.createrecdate IS NULL OR :BLKcreaterec.createrecno IS NULL THEN set_alert_property('PRODFILLUP',alert_message_text ,'PLEASE FILLED UP COMPLETELY'); n:=show_alert('PRODFILLUP'); else IF show_alert('ADD')=alert_button1 then select firstname into :global.nameid from userlist where userid=:blkcreaterec.recuserid; :GLOBAL.RECID:= :blkcreaterec.createrecid; INSERT INTO receivinglist (RECID,DATERECEIVED,DELIVERYDOCNO, SUPPDESCRIPTION,noofitems,totalcost,totalretail,R ECSTATUS,CREATEDBY) VALUES ( :BLKcreaterec.createrecid, :BLKcreaterec.createrecdate, :BLKcreaterec.createrecno, :BLkcreaterec.createrecsupp,'0','0','0','CREATED',:GL OBAL.nameid); FORMS_DDL('COMMIT');

CLEAR_MESSAGE; CALL_form('c:\247\frmreceivingadvicedetailadd.fmx' ,HIDE,DO_REPLACE); end if; END IF; END; Object name: BTNCANCEL Trigger level: Item level Trigger name: When-button-pressed EXIT_FORM; Screen no: 5 Screen name: CREATE RETURN Description: Allows the user to create return products.

:BLKCREATERET.DATEDAY:=TO_CHAR(SYSD ATE,'MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); end; Object name: BTNSEARCH Trigger level: item level Trigger name: When-button-pressed declare a_value_chosen BOOLEAN; n NUMBER; btn_loan ITEM; begin a_value_chosen := Show_Lov('lov26'); if not a_value_chosen then MESSAGE('You have not chosen a Supplier'); MESSAGE('You have not chosen a Supplier'); else next_block; execute_query; end if; end; Object name: ORDLEFT Trigger level: item level Trigger name: When-button-pressed BEGIN :blkCREATERET.CREATERETDATE:=:blkCREAT ERET.CREATERETDATE-1; END; Object name: ORDRIGHT Trigger level: item level Trigger name: When-button-pressed begin :blkCREATERET.CREATERETDATE:=:blkCREAT ERET.CREATERETDATE+1;

Object name: Trigger level: form level Trigger name: When-new form instance

DECLARE N NUMBER; begin select max(retid) into N from RETURNLIST; IF N IS NULL THEN :GLOBAL.RETID:=2000000000; ELSE :GLOBAL.RETID:=N+1; END IF; :blkcreatereT.reTuserid:=:GLOBAL.USERID; :BLKCREATERET.CREATERETID:=:GLOBAL.RE TID; :blkcreatereT.createreTdate:=to_char(sysdate,'DD/Mo n/YYYY');

end; Object name: BTNADD Trigger level: item level Trigger name: When-button-pressed declare n number; btn number(2); BEGIN IF :BLKcreatereT.createreTsupp IS NULL OR :BLKcreatereT.createreTdate IS NULL THEN set_alert_property('PRODFILLUP',alert_message_text ,'PLEASE FILLED UP COMPLETELY'); n:=show_alert('PRODFILLUP'); else IF show_alert('ADD')=alert_button1 then select firstname into :global.nameid from userlist where userid=:blkcreateret.retuserid; :GLOBAL.RETID:= :blkcreatereT.createreTid; INSERT INTO RETURNLIST (RETID,RETURNDATE,SUPPDESCRIPTION,noofit ems,totalcost,totalretail,RETSTATUS,CREATEDBY) VALUES (:BLKcreatereT.createreTid,:BLKcreatereT.createreT date,:BLkcreatereT.createreTsupp,'0','0','0','IN PROCESS',:GLOBAL.nameid); FORMS_DDL('COMMIT'); CLEAR_MESSAGE; CALL_form('c:\247\FRMRETURNADD.fmx',HIDE, DO_REPLACE); end if; END IF; END;

Screen no: 6 Screen name: CREATE RETURN LIST PRODUCT FOR REPLENISHMENT ORDER OF

Description: Allows the user to view the products in critical level and ordered it from supplier.

Object name: Trigger level: form level Trigger name: When-new form instance DECLARE v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; WHERE_STRING VARCHAR2(200); LINE NUMBER; MAXCAT NUMBER; cursor CRI_CUR Is select ITEMCODE,ITEMDESCRIPTION,COUNT,COUNT 1,COUNT2,COUNT3,COUNT4,COUNT5,AVERAG E from CRITICAL; BEGIN SELECT COUNT(ITEMCODE) INTO LINE FROM CRITICAL; SELECT MAX(CATID) INTO MAXCAT

Object name: BTNCANCEL Trigger level: item level Trigger name: When-button-pressed EXIT_FORM;

FROM CATEGORY; :GLOBAL.MA:=MAXCAT/2; IF LINE > 0 THEN IF :GLOBAL.CRITICAL=3 THEN Set_Block_Property('CRITICAL',DEFAULT_WHER E,''); GO_BLOCK('CRITICAL'); EXECUTE_QUERY; ELSIF :GLOBAL.CRITICAL=1 THEN

Set_Block_Property('CRITICAL', DEFAULT_WHERE,'ITEMCODE P.ITEMCODE FROM PRODUCT P.CATID > :GLOBAL.MA)'); GO_BLOCK('CRITICAL'); EXECUTE_QUERY; ELSIF :GLOBAL.CRITICAL =2 THEN Set_Block_Property('CRITICAL', DEFAULT_WHERE,'ITEMCODE P.ITEMCODE FROM PRODUCT P.CATID <= :GLOBAL.MA)'); GO_BLOCK('CRITICAL'); EXECUTE_QUERY; END IF;

IN(SELECT P WHERE

SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); END;

Object name: BTNBATCH1 Trigger level: item level Trigger name: When-button-pressed IN(SELECT P WHERE Set_Block_Property('CRITICAL', DEFAULT_WHERE,'ITEMCODE P.ITEMCODE FROM PRODUCT P.CATID > :GLOBAL.MA)'); GO_BLOCK('CRITICAL'); EXECUTE_QUERY;

IN(SELECT P WHERE

:BLKC.BTN1:=TO_CHAR((TO_DATE(SYSDATE)5),'DY'); :BLKC.BTN2:=TO_CHAR((TO_DATE(SYSDATE)4),'DY'); :BLKC.BTN3:=TO_CHAR((TO_DATE(SYSDATE)3),'DY'); :BLKC.BTN4:=TO_CHAR((TO_DATE(SYSDATE)2),'DY'); :BLKC.BTN5:=TO_CHAR((TO_DATE(SYSDATE)1),'DY'); SET_ITEM_PROPERTY('CRITICAL.COUNT1',PR OMPT_TEXT,to_date(SYSDATE,'DD-MON-YY')5); SET_ITEM_PROPERTY('CRITICAL.COUNT2',PR OMPT_TEXT,to_date(SYSDATE,'DD-MON-YY')4); SET_ITEM_PROPERTY('CRITICAL.COUNT3',PR OMPT_TEXT,to_date(SYSDATE,'DD-MON-YY')3); SET_ITEM_PROPERTY('CRITICAL.COUNT4',PR OMPT_TEXT,to_date(SYSDATE,'DD-MON-YY')2); SET_ITEM_PROPERTY('CRITICAL.COUNT5',PR OMPT_TEXT,to_date(SYSDATE,'DD-MON-YY')1); END IF; :BLKC.rePuserid:=:GLOBAL.USERID; :BLKC.DATEDAY:=TO_CHAR(SYSDATE,'MONT H DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE);

Object name: BTNBATCH2 Trigger level: item level Trigger name: When-button-pressed Set_Block_Property('CRITICAL', DEFAULT_WHERE,'ITEMCODE P.ITEMCODE FROM PRODUCT P.CATID <= :GLOBAL.MA)'); GO_BLOCK('CRITICAL'); EXECUTE_QUERY; IN(SELECT P WHERE

Object name: BTNCREATE Trigger level: item level Trigger name: When-button-pressed call_form('c:\247\FRMCREATEORDER.fmx',HIDE, DO_REPLACE); Object name: BTNPRINT Trigger level: item level Trigger name: When-button-pressed call_form('c:\247\FRMCREATEORDER.fmx',HIDE, DO_REPLACE);

Object name: BTNCLOSE Trigger level: item level Trigger name: When-button-pressed EXIT_FORM:

Screen no: 6 Screen name: REPLENISHMENT ORDER DETAILS Description: Allows the user to view the products that was ordered from supplier and print it.

INTO :GLOBAL.DATECREATED FROM REPLENISHMENTORDERLIST WHERE ORDERID= :GLOBAL.REPCID; Set_Block_Property('BLKORDERDETAIL', DEFAULT_WHERE,'ORDERID :GLOBAL.REPCID AND FINALORDER > 0'); GO_BLOCK('BLKORDERDETAIL'); EXECUTE_QUERY; Set_Block_Property('RECEIVINGLIST', DEFAULT_WHERE,'DELIVERYDOCNO :GLOBAL.REPCID'); GO_BLOCK('RECEIVINGLIST'); EXECUTE_QUERY; SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); END; =

Object name: Trigger level: form level Trigger name: When-new form instance DECLARE v_message_level PLS_INTEGER:= :SYSTEM.MESSAGE_LEVEL; ITEM NUMBER; RECLINE NUMBER; C1 VARCHAR2(10); C2 VARCHAR2(10); C3 VARCHAR2(10); C4 VARCHAR2(10); C5 VARCHAR2(10); BEGIN :blkorderlist.repuserid:=:GLOBAL.userid; CLEAR_FORM(NO_COMMIT); GO_BLOCK('BLKORDERLIST'); select orderID,userid,datecreated,ordereddate,noofitems,total cost,totalretail,ordstatus,deliverydate into :BLKorderlist.orderID, :blkorderlist.userid,:BLKorderlist.datecreated, :BLKorderlist.ordereddate, :BLKorderlist.noofitems,:BLKorderlist.totalcost,:blkor derlist.totalretail,:blkorderlist.ordstatus,:blkorderlist.de liverydate from REplenishmentorderlist where orderID = :GLOBAL.REPCID; SELECT MAX(RECID) INTO RECLINE FROM RECEIVINGLIST WHERE DELIVERYDOCNO=:GLOBAL.REPCID; IF RECLINE IS NOT NULL THEN SET_ITEM_PROPERTY('BTNUPLOADREP',VISIB LE,PROPERTY_FALSE); END IF; SELECT DATECREATED

Object name: BTNBACK Trigger level: item level Trigger name: When-button-pressed EXIT_FORM(NO_COMMIT);

Object name: BTNUPLOADREP Trigger level: item level Trigger name: When-button-pressed DECLARE v_message_level PLS_INTEGER:= :SYSTEM.MESSAGE_LEVEL; LINEN NUMBER(5); LINE1 NUMBER(5); IDREC NUMBER(20); N NUMBER(20); DESCRIP VARCHAR2(50); cursor LINE_CUR Is select ITEMDESCRIPTION from RECEIVINGDETAIL where RECID=N

ORDER BY ITEMDESCRIPTION ASC; BEGIN :GLOBAL.REPCID:=:BLKORDERLIST.ORDERID; SELECT MAX(RECID) INTO IDREC FROM RECEIVINGLIST; N:=IDREC+1; IF SHOW_ALERT('UPLOADED')=ALERT_BUTTON1 THEN CLEAR_FORM(NO_COMMIT); INSERT INTO receivinglist(RECID,DATERECEIVED,DELIVERY DOCNO,SUPPDESCRIPTION,noofitems,totalcost,tot alretail,RECSTATUS,CREATEDBY) SELECT N,TO_CHAR(SYSDATE,'DD/Mon/YYYY'),ORDER ID,:RECEIVINGLIST.SUPPDESCRIPTION, noofitems,totalcost,totalretail,'CREATED',USERID FROM replenishmentorderlist WHERE ORDERID=:GLOBAL.REPCID; FORMS_DDL('COMMIT'); :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; INSERT INTO RECEIVINGDETAIL(RECID,ITEMDESCRIPTION, QUANTITYRECEIVED, UNITCOST, UNITRETAIL, TOTALCOST, TOTALRETAIL) SELECT N,ITEMDESCRIPTION,FINALORDER,UNITCOST, UNITRETAIL,TOTALCOST,TOTALRETAIL FROM REPLENISHMENTORDERDETAIL WHERE ORDERID=:GLOBAL.REPCID AND FINALORDER > 0; FORMS_DDL('COMMIT'); :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; LINEN:=1; open LINE_CUR; LOOP fetch LINE_CUR into DESCRIP; UPDATE RECEIVINGDETAIL SET LINENO=LINEN WHERE RECID=N :=

AND ITEMDESCRIPTION=DESCRIP; :SYSTEM.MESSAGE_LEVEL v_message_level; FORMS_DDL('COMMIT'); CLEAR_MESSAGE; next_record; LINEN:=LINEN+1; EXIT WHEN LINE_CUR%NOTFOUND; END LOOP; CLOSE LINE_CUR; SELECT MAX(LINENO) INTO LINE1 FROM RECEIVINGDETAIL WHERE RECID=N; UPDATE RECEIVINGDETAIL SET LINENO=LINENO-1 WHERE RECID=N AND LINENO=LINE1; FORMS_DDL('COMMIT'); IF SHOW_ALERT('UPLOAD')=ALERT_BUTTON1 THEN NULL; END IF; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; CALL_FORM('C:\247\FRMORDERLIST.FMX',HID E,DO_REPLACE); END IF; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; END; :=

Object name: BTNPRINT Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID := GET_PARAMETER_LIST('tmpdata');

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID := CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); 'paraform',

ADD_PARAMETER(PL_ID, 'P_ORDERID', text_parameter, :BLKORDERLIST.ORDERID); V_REPORT_ID:= FIND_REPORT_OBJECT('RPTORDERID'); V_REPORT_JOB_ID:= RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH:= LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS:= REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS:= REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP; WEB.SHOW_DOCUMENT('/reports/rwservlet/getjob id'||SUBSTR(V_REPORT_JOB_ID,V_SERVER_LE NGTH+2)||'?server='||V_Rep_Server,'_blank'); END; Object name: Trigger level: form level Trigger name: When-new form instance declare v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; REPSTAT VARCHAR2(11); C1 VARCHAR2(10); C2 VARCHAR2(10); C3 VARCHAR2(10); C4 VARCHAR2(10); C5 VARCHAR2(10); BEGIN :blkorderlist.repuserid:=:GLOBAL.userid; SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); Object name: BTNREC Trigger level: item level Trigger name: When-button-pressed CALL_FORM('C:\247\FRMRECDETAIL.FMX',HID E,DO_REPLACE); Screen no: 7 Screen name: REPLENISH ORDER DETAILS Description: Allows the user to view the products that were ordered from supplier and print it. SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); GO_BLOCK('BLKORDERLIST'); select orderID,userid,datecreated,ordereddate,noofitems,total cost,totalretail,ordstatus,deliverydate into :BLKorderlist.orderID, :blkorderlist.userid,:BLKorderlist.datecreated, :BLKorderlist.ordereddate, :BLKorderlist.noofitems,:BLKorderlist.totalcost,:blkor derlist.totalretail,:blkorderlist.ordstatus,:blkorderlist.de liverydate from REplenishmentorderlist where orderID = :GLOBAL.REPCID; :SYSTEM.MESSAGE_LEVEL := v_message_level; SELECT ORDSTATUS INTO REPSTAT

FROM REPLENISHMENTORDERLIST WHERE ORDERID=:GLOBAL.REPCID; SET_ITEM_PROPERTY('BLKORDERLIST.BTNUP LOAD',VISIBLE,PROPERTY_FALSE); IF (TO_DATE(:BLKORDERLIST.ORDEREDDATE,'D D-MON-YY')TO_DATE(SYSDATE,'DD-MONYY')) >= 2 THEN SET_ITEM_PROPERTY('BTNCRITICAL',VISIBLE, PROPERTY_FALSE); ELSE SET_ITEM_PROPERTY('BTNCRITICAL',VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('BTNCRITICAL',ENABLE D,PROPERTY_TRUE); END IF; :GLOBAL.DATECREATED:=:BLKORDERLIST.D ATECREATED; :BLKORDERLIST.BTN1:=TO_CHAR((TO_DATE(: GLOBAL.DATECREATED)-5),'DY'); :BLKORDERLIST.BTN2:=TO_CHAR((TO_DATE(: GLOBAL.DATECREATED)-4),'DY'); :BLKORDERLIST.BTN3:=TO_CHAR((TO_DATE(: GLOBAL.DATECREATED)-3),'DY'); :BLKORDERLIST.BTN4:=TO_CHAR((TO_DATE(: GLOBAL.DATECREATED)-2),'DY'); :BLKORDERLIST.BTN5:=TO_CHAR((TO_DATE(: GLOBAL.DATECREATED)-1),'DY'); SET_ITEM_PROPERTY('BLKORDERDETAIL.CO UNT1',PROMPT_TEXT,to_date(:GLOBAL.DATEC REATED,'DD-MON-YY')-5); SET_ITEM_PROPERTY('BLKORDERDETAIL.CO UNT2',PROMPT_TEXT,to_date(:GLOBAL.DATEC REATED,'DD-MON-YY')-4); SET_ITEM_PROPERTY('BLKORDERDETAIL.CO UNT3',PROMPT_TEXT,to_date(:GLOBAL.DATEC REATED,'DD-MON-YY')-3); SET_ITEM_PROPERTY('BLKORDERDETAIL.CO UNT4',PROMPT_TEXT,to_date(:GLOBAL.DATEC REATED,'DD-MON-YY')-2); SET_ITEM_PROPERTY('BLKORDERDETAIL.CO UNT5',PROMPT_TEXT,to_date(:GLOBAL.DATEC REATED,'DD-MON-YY')-1); Set_Block_Property('BLKORDERDETAIL', DEFAULT_WHERE,'ORDERID :GLOBAL.REPCID'); GO_BLOCK('BLKORDERDETAIL'); EXECUTE_QUERY; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; IF REPSTAT = 'ORDERED' THEN SET_ITEM_PROPERTY('BTNCRITICAL',VISIBLE, PROPERTY_FALSE); =

SET_ITEM_PROPERTY('BTNUPDATE',VISIBLE,P ROPERTY_FALSE); SET_ITEM_PROPERTY('BTNDELETE',VISIBLE,P ROPERTY_FALSE); SET_ITEM_PROPERTY('BTNEDIT',VISIBLE,PRO PERTY_FALSE); END IF; END; When Window Close EXIT_FORM; Object name: BTNBACK Trigger level: item level Trigger name: When-button-pressed CALL_FORM('C:\247\FRMORDERLIST.FMX',HID E,DO_REPLACE);

Object name: BTNUPLOAD Trigger level: item level Trigger name: When-button-pressed MESSAGE('A'); UPDATE REPLENISHMENTORDERLIST SET ORDSTATUS= 'IN PROCESS' WHERE ORDERID=:BLKORDERLIST.ORDERID; Object name: BTNCRITICAL Trigger level: item level Trigger name: When-button-pressed UPDATE REPLENISHMENTORDERLIST SET ORDSTATUS= 'IN PROCCESS' WHERE ORDERID=:BLKORDERLIST.ORDERID; FORMS_DDL('COMMIT'); Set_Block_Property('BLKORDERDETAIL', DEFAULT_WHERE,'ORDERID = :GLOBAL.REPCID AND ITEMCODE IN(SELECT C.ITEMCODE FROM CRITICAL C)' ); GO_BLOCK('BLKORDERDETAIL'); EXECUTE_QUERY; SET_ITEM_PROPERTY('BTNUPLOAD',VISIBLE,P ROPERTY_TRUE); SET_ITEM_PROPERTY('BTNUPLOAD',ENABLED ,PROPERTY_TRUE); GO_ITEM('ORDERQTY'); SET_ITEM_PROPERTY('BTNCRITICAL',VISIBLE, PROPERTY_FALSE);

Object name: BTNPRINT Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; MESSAGE('W'); IF (TO_DATE(:BLKORDERLIST.ORDEREDDATE,'D D-MON-YY')TO_DATE(SYSDATE,'DD-MONYY')) >= 2 THEN SET_ITEM_PROPERTY('BTNCRITICAL',VISIBLE, PROPERTY_FALSE); MESSAGE('FHDFH'); ELSE SET_ITEM_PROPERTY('BTNCRITICAL',VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('BTNCRITICAL',ENABLE D,PROPERTY_TRUE); MESSAGE('W'); END IF; Set_Block_Property('BLKORDERDETAIL', DEFAULT_WHERE,'ORDERID :GLOBAL.REPCID'); GO_BLOCK('BLKORDERDETAIL'); EXECUTE_QUERY; SET_ITEM_PROPERTY('BTNUPLOAD',VISIBLE,P ROPERTY_FALSE); V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID := GET_PARAMETER_LIST('tmpdata'); IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID := CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); 'paraform', = VARCHAR2(100) :=

V_REPORT_JOB_ID:= RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH:= LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS:= REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS:= REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP; WEB.SHOW_DOCUMENT('/reports/rwservlet/getjob id'||SUBSTR(V_REPORT_JOB_ID,V_SERVER_LE NGTH+2)||'?server='||V_Rep_Server,'_blank'); END; Object name: BTNDELETE Trigger level: item level Trigger name: When-button-pressed if show_alert('DELETE')=alert_button1 then DELETE REPLENISHMENTORDERLIST WHERE ORDERID=:BLKORDERLIST.ORDERID; forms_ddl('COMMIT'); DELETE REPLENISHMENTORDERDETAIL WHERE ORDERID=:BLKORDERLIST.ORDERID; forms_ddl('COMMIT'); clear_form(no_commit); CLEAR_MESSAGE; call_form('c:\247\frmORDERLIST.fmx',hide,do_repla ce); end if; Object name: BTNUPLOAD Trigger level: item level Trigger name: When-button-pressed DECLARE v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; QTYREC NUMBER; BEGIN :GLOBAL.REPCID:=:BLKORDERLIST.ORDERID;

ADD_PARAMETER(PL_ID, 'P_ORDERID', text_parameter, :BLKORDERLIST.ORDERID); V_REPORT_ID:= FIND_REPORT_OBJECT('RPTORDERID');

SELECT MAX(FINALORDER) INTO QTYREC FROM REPLENISHMENTORDERDETAIL WHERE ORDERID=:GLOBAL.REPCID; IF QTYREC > 0 THEN IF SHOW_ALERT('UPDATE')=ALERT_BUTTON1 THEN CLEAR_FORM(NO_COMMIT); UPDATE REPLENISHMENTORDERLIST SET ORDSTATUS= 'ORDERED' WHERE ORDERID=:GLOBAL.REPCID; FORMS_DDL('COMMIT'); :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; IF SHOW_ALERT('UPDATED') = ALERT_BUTTON1 THEN CALL_FORM('C:\247\FRMORDERLIST.FMX',HID E,DO_REPLACE); END IF; END IF; ELSE IF SHOW_ALERT('EMPTY')=ALERT_BUTTON1 THEN GO_ITEM('ORDERQTY'); END IF; END IF; END;

v_message_level PLS_INTEGER:= :SYSTEM.MESSAGE_LEVEL; cursor REPLIST_CUR Is select ORDERID,DATECREATED, ORDEREDDATE, NOOFITEMS, TOTALCOST,TOTALRETAIL, ORDSTATUS from REPLENISHMENTORDERLIST ORDER BY ORDEREDDATE DESC; BEGIN :blKsearch.REPlUSERID:=:GLOBAL.userid; select max(orderid) into :GLOBAL.lorderid from replenishmentorderlist; if :GLOBAL.lorderid IS NOT NULL THEN :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; GO_BLOCK('BLKORDERLIST'); EXECUTE_QUERY; CLEAR_MESSAGE; END IF; END; Object name: BTNSEARCH Trigger level: item level Trigger name: When-button-pressed IF :BLKSEARCH.REPIDLIST IS NOT NULL THEN Set_Block_Property('BLKORDERLIST', DEFAULT_WHERE,'ORDERID=:BLKSEARCH.RE PIDLIST'); GO_BLOCK('BLKORDERLIST'); EXECUTE_QUERY; ELSIF :BLKSEARCH.REPSTLIST IS NOT NULL AND :BLKSEARCH.REPFRLIST IS NOT NULL AND :BLKSEARCH.REPTOLIST IS NOT NULL THEN :GLOBAL.FR:=TO_DATE(:BLKSEARCH.REPFRLI ST,'DD-MON-YY'); :GLOBAL.TO:=TO_DATE(:BLKSEARCH.REPTOL IST,'DD-MON-YY'); IF :GLOBAL.FR = :GLOBAL.TO THEN Set_Block_Property('BLKORDERLIST', DEFAULT_WHERE,'DATECREATED :GLOBAL.FR AND ORDSTATUS :BLKSEARCH.REPSTLIST'); GO_BLOCK('BLKORDERLIST'); EXECUTE_QUERY; ELSE = =

Screen no: 8 Screen name: REPLENISH ORDER LIST Description: Allows the user to view the products that were ordered from supplier and print it.

Object name: Trigger level: form level Trigger name: When-new form instance DECLARE

Set_Block_Property('BLKORDERLIST', DEFAULT_WHERE,'(DATECREATED >=:GLOBAL.FR AND DATECREATED :GLOBAL.TO )AND ORDSTATUS :BLKSEARCH.REPSTLIST'); GO_BLOCK('BLKORDERLIST'); EXECUTE_QUERY; END IF;

call_form('c:\247\FRMCREATEORDER.fmx',HIDE, DO_REPLACE); <= = Object name: BTNVIEW Trigger level: item level Trigger name: When-button-pressed :GLOBAL.REpcID := :BLKorderLIST.orderID; IF :BLKorderLIST.ORDSTATUS = 'AT STORE' then CALL_form('c:\247\frmorderdetail.fmx',HIDE,DO_R EPLACE); ELSE CALL_form('c:\247\frmorderdetailadd.fmx',HIDE,DO _REPLACE); end if; Screen no: 9 Screen name: HOME Description: Allows the user to view or select the given menus and pending list if ever.

ELSIF :BLKSEARCH.REPFRLIST IS NOT NULL AND :BLKSEARCH.REPTOLIST IS NOT NULL THEN :GLOBAL.FR:=TO_DATE(:BLKSEARCH.REPFRLI ST,'DD-MON-YY'); :GLOBAL.TO:=TO_DATE(:BLKSEARCH.REPTOL IST,'DD-MON-YY'); IF :GLOBAL.FR = :GLOBAL.TO THEN Set_Block_Property('BLKORDERLIST', DEFAULT_WHERE,'DATECREATED :GLOBAL.FR'); GO_BLOCK('BLKORDERLIST'); EXECUTE_QUERY; ELSE Set_Block_Property('BLKORDERLIST', DEFAULT_WHERE,'DATECREATED >=:GLOBAL.FR AND DATECREATED :GLOBAL.TO'); GO_BLOCK('BLKORDERLIST'); EXECUTE_QUERY; END IF; ELSIF :BLKSEARCH.REPSTLIST IS NOT NULL THEN Set_Block_Property('BLKORDERLIST', DEFAULT_WHERE,'ORDSTATUS=:BLKSEARCH. REPSTLIST'); GO_BLOCK('BLKORDERLIST'); EXECUTE_QUERY; END IF; Object name: BTNRESET Trigger level: item level Trigger name: When-button-pressed Set_Block_Property('BLKORDERLIST', DEFAULT_WHERE,''); GO_BLOCK('BLKORDERLIST'); EXECUTE_QUERY; =

<=

Object name: Trigger level: form level Trigger name: When-new form instance DECLARE CITEMCODE NUMBER; CQTY NUMBER; C1ITEMCODE NUMBER; C1QTY NUMBER; C2ITEMCODE NUMBER; C2QTY NUMBER; C3ITEMCODE NUMBER; C3QTY NUMBER; C4ITEMCODE NUMBER; C4QTY NUMBER; C5ITEMCODE NUMBER; C5QTY NUMBER; AITEMCODE NUMBER;

Object name: BTNRESET Trigger level: item level Trigger name: When-button-pressed

AC NUMBER; AC1 NUMBER; AC2 NUMBER; AC3 NUMBER; AC4 NUMBER; AC5 NUMBER; AVE NUMBER; ASUPP NUMBER; QTYAVE NUMBER; N NUMBER; N1 VARCHAR2(15); MAXCAT NUMBER; ORDID NUMBER; ORDID1 NUMBER; ORD NUMBER; ORD1 NUMBER; ONDAY VARCHAR2(5); CITEM NUMBER; v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; cursor count1_cur is select ITEMCODE,SUM(TRANQTY)as c1qty from POSTRANSACTIONDETAIL where TO_CHAR(BUSINESSDATE,'DD-MONYY')=TO_DATE(SYSDATE,'DD-MON-YY')-5 GROUP BY ITEMCODE; cursor count2_cur is select POST.ITEMCODE,SUM(POST.TRANQTY)as c2qty from POSTRANSACTIONDETAIL POST where TO_CHAR(POST.BUSINESSDATE,'DDMON-YY')=TO_DATE(SYSDATE,'DD-MON-YY')4 GROUP BY POST.ITEMCODE; cursor count3_cur is select p.ITEMCODE,SUM(p.TRANQTY) as c3qty from POSTRANSACTIONDETAIL p where TO_CHAR(p.BUSINESSDATE,'DD-MONYY')=TO_DATE(SYSDATE,'DD-MON-YY')-3 GROUP BY p.ITEMCODE; cursor count4_cur is select po.ITEMCODE,SUM(po.TRANQTY) as c4qty from POSTRANSACTIONDETAIL po where

TO_CHAR(po.BUSINESSDATE,'DD-MONYY')=TO_DATE(SYSDATE,'DD-MON-YY')-2 GROUP BY po.ITEMCODE; cursor count5_cur is select pos.ITEMCODE,SUM(pos.TRANQTY) as c5qty from POSTRANSACTIONDETAIL pos where TO_CHAR(pos.BUSINESSDATE,'DD-MONYY')=TO_DATE(SYSDATE,'DD-MON-YY')-1 GROUP BY pos.ITEMCODE; cursor AVE_cur is select A.ITEMCODE,A.COUNT,A.COUNT1,A.COUNT2, A.COUNT3,A.COUNT4,A.COUNT5,A.SUPPID from CRITICAL A; BEGIN :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; DELETE CRITICAL; FORMS_DDL('COMMIT'); Insert into CRITICAL(itemcode,itemdescription,COUNT,COUN T1,COUNT2,COUNT3,COUNT4,COUNT5,AVERA GE,suppid) select P.ITEMCODE,P.ITEMDESCRIPTION,P.PRODQTY ,0,0,0,0,0,0,P.SUPPID FROM PRODUCTMASTERLIST P WHERE P.SUPPID=33300; FORMS_DDL('COMMIT'); GO_ITEM('BTNCLOSE'); open COUNT1_CUR; LOOP fetch COUNT1_CUR into C1ITEMCODE,C1QTY; update CRITICAL set COUNT1=C1QTY where ITEMCODE=C1ITEMCODE ; :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; FORMS_DDL('COMMIT'); next_record; EXIT WHEN COUNT1_CUR%NOTFOUND; END LOOP; close COUNT1_CUR; open COUNT2_CUR; :=

LOOP fetch COUNT2_CUR into C2ITEMCODE,C2QTY; update CRITICAL set COUNT2=C2QTY where ITEMCODE=C2ITEMCODE; :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE FORMS_DDL('COMMIT'); next_record; EXIT WHEN COUNT2_CUR%NOTFOUND; END LOOP; close COUNT2_CUR; open COUNT3_CUR; LOOP fetch COUNT3_CUR into C3ITEMCODE,C3QTY; update CRITICAL set COUNT3=C3QTY where ITEMCODE=C3ITEMCODE; :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; FORMS_DDL('COMMIT'); next_record; EXIT WHEN COUNT3_CUR%NOTFOUND; END LOOP; close COUNT3_CUR; open COUNT4_CUR; LOOP fetch COUNT4_CUR into C4ITEMCODE,C4QTY; update CRITICAL set COUNT4=C4QTY where ITEMCODE=C4ITEMCODE; :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; FORMS_DDL('COMMIT'); next_record; EXIT WHEN COUNT4_CUR%NOTFOUND; END LOOP; close COUNT4_CUR; open COUNT5_CUR; LOOP fetch COUNT5_CUR into C5ITEMCODE,C5QTY; update CRITICAL set COUNT5=C5QTY := := :=

where ITEMCODE=C5ITEMCODE; :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; FORMS_DDL('COMMIT'); next_record; EXIT WHEN COUNT5_CUR%NOTFOUND; END LOOP; close COUNT5_CUR; open AVE_CUR; LOOP fetch AVE_CUR into AITEMCODE,AC,AC1,AC2,AC3,AC4,AC5,ASUPP; AVE:=(AC4+AC5)/2; update CRITICAL set AVERAGE=AVE where ITEMCODE=AITEMCODE; FORMS_DDL('COMMIT'); QTYAVE:=AC-AVE; IF QTYAVE >= 10 THEN DELETE CRITICAL WHERE ITEMCODE=AITEMCODE; FORMS_DDL('COMMIT'); END IF; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; next_record; EXIT WHEN AVE_CUR%NOTFOUND; END LOOP; close AVE_CUR; :=

:BLKREC.TXTREC:=' RECEIVING ADVICE'; :BLKRET.TXTRET:=' ANNOUNCEMENT'; :BLKREP.TXTREP1:=' ITEMS '; SELECT COUNT(RECID) INTO N FROM RECEIVINGLIST WHERE RECSTATUS='CREATED'; :BLKREC.RECN:=' '||N||' UNPROCESSED'; SELECT COUNT(RETID) INTO N RETURN

:BLKREP.TXTREP:=' REPLENISHMENT ORDER'; IN CRITICAL LEVEL

FROM RETURNLIST WHERE RETSTATUS='IN PROCESS'; :BLKRET.RETN:=' '||N||' UNPROCESSED'; SELECT MAX(CATID) INTO MAXCAT FROM CATEGORY; SELECT COUNT(ITEMCODE) INTO N FROM CRITICAL WHERE ITEMCODE IN (SELECT P.ITEMCODE FROM PRODUCT P WHERE P.CATID >(MAXCAT/2)); :BLKREP.REPORD1:=' '||N||' ITEM /BATCH 1'; SELECT COUNT(ITEMCODE) INTO N FROM CRITICAL WHERE ITEMCODE IN (SELECT P.ITEMCODE FROM PRODUCT P WHERE P.CATID <=(MAXCAT/2)); :BLKREP.REPORD2:=' '||N||' ITEM /BATCH 2'; SELECT COUNT(ORDERID) INTO N FROM REPLENISHMENTORDERLIST WHERE ORDSTATUS='IN ORDSTATUS='CREATED' ; PROCESS' OR

CALL_FORM('C:\247\FRMRECLIST.FMX',HIDE,D O_REPLACE); Object name: BTNVIEW2 Trigger level: item level Trigger name: When-button-pressed CALL_FORM('C:\247\FRMRETURNLIST.FMX',HI DE,DO_REPLACE); Object name: BTNVIEW3 Trigger level: item level Trigger name: When-button-pressed CALL_FORM('C:\247\FRMORDERLIST.FMX',HID E,DO_REPLACE);

Object name: BTNVIEW4 Trigger level: item level Trigger name: When-button-pressed :GLOBAL.CRITICAL:=1; call_form('c:\247\FRMCRITICAL.fmx',HIDE,DO_R EPLACE);

Object name: BTNVIEW5 Trigger level: item level Trigger name: When-button-pressed :GLOBAL.CRITICAL:=2; call_form('c:\247\FRMCRITICAL.fmx',HIDE,DO_R EPLACE); Object name: MNUHOME Trigger level: item level Trigger name: When-button-pressed call_form('C:\247\HOME.fmx',HIDE,DO_REPLACE) ;

:BLKREP.REPN:=' '||N||' UNSEND'; :SYSTEM.MESSAGE_LEVEL := v_message_level; CLEAR_MESSAGE; SELECT COUNT(ITEMCODE) INTO CITEM FROM CRITICAL; IF CITEM > 0 THEN N1:=SHOW_ALERT('CRITICAL'); IF N1=ALERT_BUTTON1 THEN :GLOBAL.CRITICAL:=3; call_form('c:\247\FRMCRITICAL.fmx',HIDE,DO_R EPLACE); ELSIF N1=ALERT_BUTTON2 THEN call_form('c:\247\FRMCREATEORDER.fmx',HIDE, DO_REPLACE); END IF; END IF; END; Object name: BTNVIEW1 Trigger level: item level Trigger name: When-button-pressed

Screen no: 10 Screen name: PRODUCT DETAIL Description: Allows the user to view or select the given menus and pending list if ever create or alter products.

INTO :PRODUCT.SUPPID,:PRODUCT.SUPPNAME from SUPPLIER WHERE SUPPID=:GLOBAL.SUPPID; IF SHOW_LOV('LOV_CATID') THEN SELECT MAX(ITEMCODE) INTO ITEMS FROM PRODUCT Object name: Trigger level: form level Trigger name: When-new form instance DECLARE ITEMS NUMBER; BEGIN IF :GLOBAL.SUPPADD=1 THEN SET_ITEM_PROPERTY('PRODUCT.BTN SAVE',LABEL,'&Add'); SET_ITEM_PROPERTY('PRODUCT.BTN DELETE',LABEL,'&Cancel'); ELSIF :GLOBAL.SUPPADD=2 THEN SET_ITEM_PROPERTY('PRODUCT.BTN PLUS', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNSUPPID', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNCATID', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.ITEMDESCRI PTION', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.MOQ', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.UNITCOST', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.UNITRETAIL' , ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTN SAVE',LABEL,'&Save'); SET_ITEM_PROPERTY('PRODUCT.BTN DELETE',LABEL,'&Cancel'); SELECT SUPPID,SUPPNAME WHERE SUPPID=:PRODUCT.SUPPID CATID=:PRODUCT.CATID; IF ITEMS IS NULL OR ITEMS = 0 THEN ITEMS:=:PRODUCT.CATID||:PRODUCT.SUPPID|| 100; ELSE ITEMS:=ITEMS+1; END IF; :PRODUCT.ITEMCODE:=ITEMS; GO_ITEM('PRODUCT.ITEMDESCRIPTION'); END IF; ELSE GO_ITEM('PRODUCT.BTNSAVE'); SET_ITEM_PROPERTY('PRODUCT.BTN SAVE',LABEL,'&Edit'); SET_ITEM_PROPERTY('PRODUCT.SUPPNAME', VISIBLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.BTN PLUS', VISIBLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.BTNSUPPID', VISIBLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.CATNAME', VISIBLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.BTNCATID', VISIBLE, PROPERTY_FALSE); AND

SET_ITEM_PROPERTY('PRODUCT.ITEMDESCRI PTION', ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.MOQ', ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.UNITCOST', ENABLED,PROPERTY_FALSE);

INTO ITEMS SET_ITEM_PROPERTY('PRODUCT.UNITRETAIL' , ENABLED,PROPERTY_FALSE); SELECT SUPPID,ITEMCODE,ITEMDESCRIPTION,UNITC OST,UNITRETAIL,CATID INTO :PRODUCT.SUPPID,:PRODUCT.ITEMCODE,:PRO DUCT.ITEMDESCRIPTION,:PRODUCT.UNITCOS T,:PRODUCT.UNITRETAIL, :PRODUCT.CATID from PRODUCT WHERE ITEMCODE=:GLOBAL.SUPPADD; CLEAR_MESSAGE; SELECT MOQ INTO :GLOBAL.MOQ FROM PRODUCT WHERE ITEMCODE=:GLOBAL.SUPPADD; :PRODUCT.MOQ:=RTRIM(:GLOBAL.M OQ,'/pcsk'); END IF; SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); END; IF SHOW_LOV('LOV_CATID') THEN SELECT MAX(ITEMCODE) INTO ITEMS FROM PRODUCT WHERE SUPPID=:PRODUCT.SUPPID CATID=:PRODUCT.CATID; IF ITEMS IS NULL THEN ITEMS:=:PRODUCT.CATID||:PRODUCT.SUPPID|| 100; ELSE ITEMS:=ITEMS+1; Object name: BTNSUPPID Trigger level: item level Trigger name: When-button-pressed DECLARE ITEMS NUMBER; BEGIN IF SHOW_LOV('LOV_SUPPID') THEN IF SHOW_LOV('LOV_CATID') THEN SELECT MAX(ITEMCODE) END IF; :PRODUCT.ITEMCODE:=ITEMS; GO_ITEM('PRODUCT.ITEMDESCRIPTION'); END IF; END ; AND Object name: BTNCATID Trigger level: item level Trigger name: When-button-pressed DECLARE ITEMS NUMBER; BEGIN FROM PRODUCT WHERE SUPPID=:PRODUCT.SUPPID CATID=:PRODUCT.CATID; IF ITEMS IS NULL OR ITEMS = 0 THEN ITEMS:=:PRODUCT.CATID||:PRODUCT.SUPPID|| 100; ELSE ITEMS:=ITEMS+1; END IF; :PRODUCT.ITEMCODE:=ITEMS; GO_ITEM('PRODUCT.ITEMDESCRIPTION'); END IF; END IF; END; AND

Object name: BTNSAVE Trigger level: item level Trigger name: When-button-pressed DECLARE

LUPDATE VARCHAR2(10); PRODUCTITEM VARCHAR2(30); PCS VARCHAR2(5); BEGIN LUPDATE:=GET_ITEM_PROPERTY('BT NSAVE',LABEL); IF LUPDATE='&Edit' THEN SET_ITEM_PROPERTY('BTNSAVE',LAB EL,'&Update'); SET_ITEM_PROPERTY('PRODUCT.SUPPNAME', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTN PLUS', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNSUPPID', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.CATNAME', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNCATID', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTN SAVE',LABEL,'&Save'); IF SHOW_ALERT('SUPPID') ALERT_BUTTON1 THEN GO_ITEM('PRODUCT.BTNSUPPID'); END IF; SET_ITEM_PROPERTY('PRODUCT.SUPPNAME', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTN PLUS', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNSUPPID', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.CATNAME', VISIBLE, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNCATID', VISIBLE, PROPERTY_TRUE); =

SET_ITEM_PROPERTY('PRODUCT.BTN PLUS', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNSUPPID', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNCATID', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.ITEMDESCRI PTION', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.MOQ', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.CBOXMOQ', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.UNITCOST', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.UNITRETAIL' , ENABLED,PROPERTY_TRUE); ELSIF :PRODUCT.SUPPID IS NULL :PRODUCT.ITEMDESCRIPTION IS NULL :PRODUCT.MOQ IS NULL :PRODUCT.UNITCOST IS NULL :PRODUCT.UNITRETAIL IS NULL :PRODUCT.CATID IS NULL THEN AND AND AND AND AND

SET_ITEM_PROPERTY('PRODUCT.BTN PLUS', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNSUPPID', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.BTNCATID', ENABLED, PROPERTY_TRUE);

SET_ITEM_PROPERTY('PRODUCT.ITEMDESCRI PTION', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.MOQ', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.CBOXMOQ', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.UNITCOST', ENABLED,PROPERTY_TRUE); SET_ITEM_PROPERTY('PRODUCT.UNITRETAIL' , ENABLED,PROPERTY_TRUE); CLEAR_MESSAGE; ELSIF LUPDATE= '&Add' THEN

IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN GO_ITEM('PRODUCT.BTNSUPPID'); END IF; ELSIF :PRODUCT.SUPPID IS NULL :PRODUCT.ITEMDESCRIPTION IS NULL :PRODUCT.MOQ IS NULL :PRODUCT.UNITCOST IS NULL :PRODUCT.UNITRETAIL IS NULL :PRODUCT.CATID IS NULL THEN IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN GO_ITEM('PRODUCT.ITEMDESCRIPTI ON'); END IF;

AND :PRODUCT.MOQ IS NOT NULL AND :PRODUCT.UNITCOST IS NULL AND :PRODUCT.UNITRETAIL IS NOT NULL AND :PRODUCT.CATID IS NOT NULL THEN IF SHOW_ALERT('UNITCOST') = ALERT_BUTTON1 THEN GO_ITEM('PRODUCT.UNITCOST'); END IF; ELSIF :PRODUCT.SUPPID IS NOT NULL AND :PRODUCT.ITEMDESCRIPTION IS NOT NULL AND :PRODUCT.MOQ IS NOT NULL AND :PRODUCT.UNITCOST IS NOT NULL AND :PRODUCT.UNITRETAIL IS NULL AND :PRODUCT.CATID IS NOT NULL THEN IF SHOW_ALERT('UNITRETAIL') ALERT_BUTTON1 THEN GO_ITEM('PRODUCT.UNITRETAIL'); END IF; ELSIF :PRODUCT.SUPPID IS NOT NULL AND :PRODUCT.ITEMDESCRIPTION IS NOT NULL AND :PRODUCT.MOQ IS NOT NULL AND :PRODUCT.UNITCOST IS NOT NULL AND :PRODUCT.UNITRETAIL IS NOT NULL AND :PRODUCT.CATID IS NULL THEN SHOW_ALERT('CATID') THEN IF = ALERT_BUTTON1 =

OR OR OR OR OR =

ELSIF :PRODUCT.SUPPID IS NULL AND :PRODUCT.ITEMDESCRIPTION IS NOT NULL AND :PRODUCT.MOQ IS NOT NULL AND :PRODUCT.UNITCOST IS NOT NULL AND :PRODUCT.UNITRETAIL IS NOT NULL AND :PRODUCT.CATID IS NOT NULL THEN IF SHOW_ALERT('SUPPID') = ALERT_BUTTON1 THEN GO_ITEM('PRODUCT.BTNSUPPID'); END IF; ELSIF :PRODUCT.SUPPID IS NOT NULL :PRODUCT.ITEMDESCRIPTION IS NULL :PRODUCT.MOQ IS NOT NULL :PRODUCT.UNITCOST IS NOT NULL :PRODUCT.UNITRETAIL IS NOT NULL :PRODUCT.CATID IS NOT NULL THEN IF SHOW_ALERT('ITEMDESCRIPTION') ALERT_BUTTON1 THEN GO_ITEM('PRODUCT.ITEMDESCRIPTI ON'); END IF; ELSIF :PRODUCT.SUPPID IS NOT NULL AND :PRODUCT.ITEMDESCRIPTION IS NOT NULL AND :PRODUCT.MOQ IS NULL AND :PRODUCT.UNITCOST IS NOT NULL AND :PRODUCT.UNITRETAIL IS NOT NULL AND :PRODUCT.CATID IS NOT NULL THEN SHOW_ALERT('MOQ') THEN IF = ALERT_BUTTON1 AND AND AND AND AND

GO_ITEM('PRODUCT.CATID'); END IF;

ELSE IF LUPDATE = '&Save' THEN

SELECT COUNT(ITEMDESCRIPTION) INTO :GLOBAL.PRODUCTITEM FROM PRODUCT WHERE ITEMDESCRIPTION = :PRODUCT.ITEMDESCRIPTION;

GO_ITEM('PRODUCT.MOQ'); END IF; ELSIF :PRODUCT.SUPPID IS NOT NULL AND :PRODUCT.ITEMDESCRIPTION IS NOT NULL

IF :GLOBAL.PRODUCTITEM > 0 THEN IF SHOW_ALERT('DUPLICATE') ALERT_BUTTON1 THEN =

NULL; END IF; ELSE IF SHOW_ALERT('SAVE')=ALERT_BUTTON1 THEN IF :PRODUCT.MOQ = 1 THEN 1 THEN PCS:=:PRODUCT.MOQ||'PC'; ELSIF :PRODUCT.MOQ > 1 THEN 1 THEN PCS:=:PRODUCT.MOQ||'PCS'; END IF; IF THEN INSERT INTO PRODUCT(CATID, ITEMCODE, ITEMDESCRIPTION,MOQ,PACK,UNITCOST,UNI TRETAIL,SUPPID) VALUES(:PRODUCT.CATID, :PRODUCT.ITEMCODE, INITCAP(:PRODUCT.ITEMDESCRIPTION), PCS,:PRODUCT.CBOXMOQ, :PRODUCT.UNITCOST, :PRODUCT.UNITRETAIL, :PRODUCT.SUPPID ); FORMS_DDL('COMMIT'); INSERT INTO PRODUCTMASTERLIST(ITEMCODE,PRODQTY, SUPPID, ITEMDESCRIPTION) VALUES(:PRODUCT.ITEMCODE,0,:PRODUCT.S UPPID,INITCAP(:PRODUCT.ITEMDESCRIPTION) ); FORMS_DDL('COMMIT'); IF = ALERT_BUTTON1 THEN :PRODUCT.MOQ > 0 END IF;

END IF; ELSIF LUPDATE= '&Update' THEN IF SHOW_ALERT('UPDATE')=ALERT_BUTTON1 THEN IF :PRODUCT.MOQ =

PCS:=:PRODUCT.MOQ||'PC'; ELSIF :PRODUCT.MOQ >

PCS:=:PRODUCT.MOQ||'PCS'; END IF; IF UPDATE PRODUCT SET SUPPID = :PRODUCT.SUPPID, ITEMDESCRIPTION = INITCAP(:PRODUCT.ITEMDESCRIPTION), MOQ = PCS,PACK=:PRODUCT.CBOXMOQ, UNITCOST = :PRODUCT.UNITCOST, UNITRETAIL = :PRODUCT.UNITRETAIL, CATID = :PRODUCT.CATID WHERE :PRODUCT.ITEMCODE; ITEMCODE = :PRODUCT.MOQ > 0

FORMS_DDL('COMMIT'); UPDATE PRODUCTMASTERLIST SET ITEMDESCRIPTION INITCAP(:PRODUCT.ITEMDESCRIPTION) WHERE :PRODUCT.ITEMCODE; ITEMCODE = =

FORMS_DDL('COMMIT'); IF SHOW_ALERT('UPDATED') ALERT_BUTTON1 THEN CLEAR_RECORD; =

SHOW_ALERT('SAVED') THEN

CALL_FORM('C:\247\FRMPRODUCTLIST.FMX',H IDE,DO_REPLACE); END IF; ELSE IF SHOW_ALERT('LESS')= ALERT_BUTTON1 THEN GO_ITEM('MOQ'); END IF; END IF; END IF; END IF;

CALL_FORM('C:\247\FRMPRODUCTLIST.FMX',H IDE,DO_REPLACE); END IF; IF SHOW_ALERT('LESS')= ALERT_BUTTON1 THEN GO_ITEM('MOQ'); END IF; END IF;

END IF; END; Object name: BTNDELETE Trigger level: item level Trigger name: When-button-pressed DECLARE LUPDATE VARCHAR2(10); PRODUCTITEM VARCHAR2(30); BEGIN LUPDATE:=GET_ITEM_PROPERTY('BT NDELETE',LABEL); IF LUPDATE='&Delete' THEN IF THEN IF SHOW_LOV('LOV_USER') THEN NULL; END IF; ELSE END IF; END; IF SHOW_ALERT('DELETE')=ALERT_BUTTON1 THEN DELETE FROM PRODUCT WHERE :PRODUCT.ITEMCODE; ITEMCODE= :PRODUCT.ITEMCODE IS NULL IF :GLOBAL.SUPPADD=1 OR :GLOBAL.SUPPADD=2 THEN SET_ITEM_PROPERTY('BTNSAVE',LABEL,'&Ad d'); ELSE SET_ITEM_PROPERTY('BTNSAVE',LAB EL,'&Edit'); END IF; CLEAR_FORM(NO_COMMIT); SET_ITEM_PROPERTY('PRODUCT.BTNCATID', VISIBLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.BTNSUPPID', VISIBLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.CATNAME', VISIBLE, PROPERTY_FALSE);

Object name: BTNCLOSE Trigger level: item level Trigger name: When-button-pressed IF SHOW_ALERT('CLOSE') = ALERT_BUTTON1 THEN EXIT_FORM; END IF; Screen no: 11 Screen name: PRODUCT LIST Description: Allows the user to view or add new product from the list.

FORMS_DDL('COMMIT'); IF SHOW_ALERT('DELETED') = ALERT_BUTTON1 THEN CLEAR_RECORD; CALL_FORM('C:\247\FRMPRODUCTLIS T.FMX',HIDE,DO_REPLACE); END IF; END IF; END IF; ELSIF LUPDATE='&Cancel' THEN SET_ITEM_PROPERTY('BTNDELETE',L ABEL,'&Delete'); SET_ITEM_PROPERTY('PRODUCT.SUP PNAME', VISIBLE, PROPERTY_FALSE); SET_ITEM_PROPERTY('PRODUCT.BTN PLUS', VISIBLE, PROPERTY_FALSE);

Object name: Trigger level: form level Trigger name: When-new form instance GO_BLOCK('BLKPROD'); EXECUTE_QUERY; SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); Object name: BTNSEARCH Trigger level: item level Trigger name: When-button-pressed IF :BLOCK3.PRODSEARCH IS NOT NULL THEN Set_Block_Property('BLKPROD', DEFAULT_WHERE,'CATID =:BLOCK3.PRODSEARCH ITEMDESCRIPTION :BLOCK3.PRODSEARCH'); GO_BLOCK('BLKPROD'); EXECUTE_QUERY; END IF;

Object name: BTNACCOUNT Trigger level: item level Trigger name: When-button-pressed :GLOBAL.SUPPADD:=1; CALL_FORM('C:\247\FRMPRODUCTADD.FMX',H IDE,DO_REPLACE);

Object name: BTNCLOSE Trigger level: item level Trigger name: When-button-pressed IF SHOW_ALERT('CLOSE') = ALERT_BUTTON1 THEN EXIT_FORM(NO_COMMIT); END IF;

Screen no: 12 Screen name: USER LIST Description: Allows the user to view or add new user from the list.

OR LIKE

Object name: Object name: BTNRESET Trigger level: item level Trigger name: When-button-pressed Set_Block_Property('BLKPROD', DEFAULT_WHERE,''); GO_BLOCK('BLKPROD'); EXECUTE_QUERY; Object name: BTNVIEW Trigger level: item level Trigger name: When-button-pressed :GLOBAL.SUPPADD:=:BLKPROD.ITEMCODE; CALL_FORM('C:\247\FRMPRODUCTADD.FMX',H IDE,DO_REPLACE); Trigger level: form level Trigger name: When-new form instance Set_Block_Property('BLKUSER', DEFAULT_WHERE,'USERID <> 711000'); GO_BLOCK('BLKUSER'); EXECUTE_QUERY; SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE);

Object name: BTNSEARCH Trigger level: item level Trigger name: When-button-pressed IF :BLKBTN.USERSEARCH IS NOT NULL THEN Set_Block_Property('BLKUSER', DEFAULT_WHERE,'USERID =:BLKBTN.USERSEARCH OR FIRSTNAME = :BLKBTN.USERSEARCH OR LASTNAME = :BLKBTN.USERSEARCH'); GO_BLOCK('BLKUSER'); EXECUTE_QUERY; END IF; BEGIN Object name: BTNRESET Trigger level: item level Trigger name: When-button-pressed Set_Block_Property('BLKUSER', DEFAULT_WHERE,'USERID <> 711000'); GO_BLOCK('BLKUSER'); EXECUTE_QUERY; :GLOBAL.SUSERID:=:USERLIST.USERID; Object name: BTNVIEW Trigger level: item level Trigger name: When-button-pressed :GLOBAL.SUSERID:=:blkuser.userid; call_form('C:\247\FRMUSER.fmx',hide,do_replace); :GLOBAL.SUSERID:=:USERLIST.USERI D; END IF; GO_ITEM('FIRSTNAME'); Object name: BTNACCOUNT Trigger level: item level Trigger name: When-button-pressed CALL_FORM('C:\247\FRMUSERADD.FMX',HIDE, DO_REPLACE); SELECT USERTYPE INTO :GLOBAL.UTYPE FROM USERLIST WHERE USERID = :GLOBAL.USERID; IF :GLOBAL.UTYPE ='USER' THEN :USERLIST.ULIST:='USER'; Object name: BTNCLOSE Trigger level: item level Trigger name: When-button-pressed EXIT_FORM; SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_ITEM_PROPERTY('ULIST',ENABL ED,PROPERTY_FALSE); END IF; ELSE :USERLIST.USERID := N + 1; :USERLIST.HIREDATE:=SYSDATE; SELECT MAX(USERID) INTO N FROM USERLIST; IF N IS NULL THEN :USERLIST.USERID := 711001;

Object name: Trigger level: form level Trigger name: When-new form instance DECLARE N NUMBER;

Screen no: 13 Screen name: USER LIST ADD Description: Allows the user add new user from the list.

SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); END;

IF SHOW_ALERT('LASTNAME') ALERT_BUTTON1 THEN GO_ITEM('USERLIST.LASTNAME');

Object name: BTNSAVE Trigger level: item level Trigger name: When-button-pressed DECLARE LNO NUMBER; BEGIN IF :USERLIST.LASTNAME IS AND :USERLIST.FIRSTNAME IS NULL :USERLIST.MIDNAME IS NULL :USERLIST.HIREDATE IS NULL :USERLIST.USERNAME IS NULL :USERLIST.USERPASS IS NULL :USERLIST.ULIST IS NULL THEN NULL AND AND AND AND AND =

END IF; ELSIF :USERLIST.FIRSTNAME IS NULL AND :USERLIST.LASTNAME IS NOT NULL AND :USERLIST.MIDNAME IS NOT NULL AND :USERLIST.HIREDATE IS NOT NULL AND :USERLIST.USERNAME IS NOT NULL AND :USERLIST.USERPASS IS NOT NULL AND :USERLIST.ULIST IS NOT NULL THEN IF SHOW_ALERT('FIRSTNAME') ALERT_BUTTON1 THEN GO_ITEM('USERLIST.FIRSTNAME'); END IF; ELSIF :USERLIST.MIDNAME IS NULL AND :USERLIST.LASTNAME IS NOT NULL AND :USERLIST.FIRSTNAME IS NOT NULL AND :USERLIST.HIREDATE IS NOT NULL AND :USERLIST.USERNAME IS NOT NULL AND :USERLIST.USERPASS IS NOT NULL AND :USERLIST.ULIST IS NOT NULL THEN IF SHOW_ALERT('MIDNAME') = ALERT_BUTTON1 THEN GO_ITEM('USERLIST.MIDNAME'); =

IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN :USERLIST.LASTNAME := ''; :USERLIST.FIRSTNAME := ''; :USERLIST.MIDNAME := ''; :USERLIST.HIREDATE := ''; :USERLIST.USERNAME := ''; :USERLIST.USERPASS := ''; :USERLIST.ULIST ''; END IF;

END IF; ELSIF :USERLIST.USERNAME IS NULL AND :USERLIST.LASTNAME IS NOT NULL AND :USERLIST.FIRSTNAME IS NOT NULL AND :USERLIST.MIDNAME IS NOT NULL AND :USERLIST.HIREDATE IS NOT NULL AND :USERLIST.USERPASS IS NOT NULL AND :USERLIST.ULIST IS NOT NULL THEN IF SHOW_ALERT('USERNAME') ALERT_BUTTON1 THEN GO_ITEM('USERLIST.MIDNAME'); END IF; ELSIF :USERLIST.USERPASS IS NULL AND :USERLIST.LASTNAME IS NOT NULL AND :USERLIST.FIRSTNAME IS NOT NULL AND :USERLIST.MIDNAME IS NOT NULL AND :USERLIST.HIREDATE IS NOT NULL AND :USERLIST.USERNAME IS NOT NULL AND :USERLIST.ULIST IS NOT NULL THEN IF SHOW_ALERT('USERPASS') = ALERT_BUTTON1 THEN GO_ITEM('USERLIST.USERPASS'); =

:=

ELSIF :USERLIST.LASTNAME IS NULL OR :USERLIST.FIRSTNAME IS NULL OR :USERLIST.MIDNAME IS NULL OR :USERLIST.HIREDATE IS NULL OR :USERLIST.USERNAME IS NULL OR :USERLIST.USERPASS IS NULL OR :USERLIST.ULIST IS NULL THEN IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN GO_ITEM('USERLIST.LASTNAME'); END IF; ELSIF :USERLIST.LASTNAME IS NULL AND :USERLIST.FIRSTNAME IS NOT NULL AND :USERLIST.MIDNAME IS NOT NULL AND :USERLIST.HIREDATE IS NOT NULL AND :USERLIST.USERNAME IS NOT NULL AND :USERLIST.USERPASS IS NOT NULL AND :USERLIST.ULIST IS NOT NULL THEN =

END IF; CALL_FORM('C:\247\FRMUSERLIST.FM ELSE SELECT USERID, USERNAME INTO :USERLIST.USERNAME WHERE :USERLIST.USERID OR :USERLIST.USERNAME; IF SHOW_ALERT('DUPLICATE') ALERT_BUTTON1 THEN NULL; END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN IF SHOW_ALERT('SAVE')=ALERT_BUTTON1 THEN SELECT MAX(LINENO) INTO LNO FROM USERLIST; IF LNO IS NULL THEN LNO:=1; ELSE LNO:=LNO+1; END IF; INSERT INTO USERLIST(USERID, LASTNAME, FIRSTNAME, MIDNAME, HIREDATE, USERNAME, USERPASS, USERTYPE, USERSTATUS, LINENO) VALUES(:USERLIST.USERID, INITCAP(:USERLIST.LASTNAME), INITCAP(:USERLIST.FIRSTNAME), INITCAP(:USERLIST.MIDNAME), :USERLIST.HIREDATE, :USERLIST.USERNAME, :USERLIST.USERPASS, :USERLIST.ULIST, 'TRUE', LNO ); FORMS_DDL('COMMIT'); IF = ALERT_BUTTON1 :USERLIST.USERID, END; X'); END IF; END IF;

FROM USERLIST USERID USERNAME = = Object name: BTNDELETE Trigger level: item level Trigger name: When-button-pressed = CLEAR_FORM(NO_COMMIT);

Object name: BTNCLOSE Trigger level: item level Trigger name: When-button-pressed IF SHOW_ALERT('CLOSE') = ALERT_BUTTON1 THEN EXIT_FORM; END IF;

Screen no: 14 Screen name: TRANSACTION Description: Allows the user to purchase products from the given categories.

Object name: Trigger level: form level Trigger name: When-new form instance DECLARE INDEX1 NUMBER; CATNAMES1 VARCHAR2(30); CATIDS1 VARCHAR2(15); CATNAMES VARCHAR2(30); CATIDS VARCHAR2(15); v_message_level PLS_INTEGER :SYSTEM.MESSAGE_LEVEL; :=

SHOW_ALERT('SAVED') THEN

cursor CAT1_CUR Is select CATNAME,CATID from CATEGORY WHERE CATTYPE = 'Food' ORDER BY CATID ASC; cursor CATNAME,CATID CAT_CUR Is select

DELETE_LIST_ELEMENT('LISTCAT1',INDEX11); :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; INDEX1:=1; open CAT_CUR; LOOP fetch CAT_CUR into CATNAMES,CATIDS; ADD_LIST_ELEMENT('LISTCAT',INDEX1,CATN AMES,CATIDS); := :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; next_record; INDEX1:=INDEX1+1; EXIT WHEN CAT_CUR%NOTFOUND; END LOOP; close CAT_CUR; := DELETE_LIST_ELEMENT('LISTCAT',INDEX11); :SYSTEM.MESSAGE_LEVEL v_message_level; := CLEAR_MESSAGE; go_item('listcat'); :GLOBAL.RECEIPT:=:blKTRANS.payreceipt; :BLKCAT.BTNCASHIER:=:GLOBAL.USERID; :blKTRANS.PAYCASH:=0; :blKTRANS.PAYCHANGE:=0; :BLKTRANS.PAYTOTAL:=0; :BLKPOS.TTR:=0; :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' DAY')||', '||TO_CHAR(SYSDATE,'MONTH DD, YYYY'); SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); := := :=

from CATEGORY WHERE CATTYPE = 'Non-Food' ORDER BY CATID ASC; BEGIN :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; SELECT MAX(RECEIPTNO)+1 INTO :blKTRANS.payreceipt FROM POSTRANSACTIONLIST; IF :blKTRANS.payreceipt IS NULL THEN :BLKTRANS.PAYRECEIPT 10000; END IF; :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; GO_BLOCK('BLKCAT'); GO_ITEM('LISTCAT1'); INDEX1:=1; open CAT1_CUR; LOOP fetch CAT1_CUR into CATNAMES1,CATIDS1; ADD_LIST_ELEMENT('LISTCAT1',INDEX1,CAT NAMES1,CATIDS1); :SYSTEM.MESSAGE_LEVEL v_message_level; CLEAR_MESSAGE; next_record; INDEX1:=INDEX1+1; EXIT WHEN CAT1_CUR%NOTFOUND; END LOOP; close CAT1_CUR; :=

END ;

cursor POS_CUR Is select ITEMDESCRIPTION,TRANQTY,UNITRETAIL,TO TALRETAIL, LINENO from POSTRANSACTIONDETAIL where RECEIPTNO=:GLOBAL.RECEIPT ORDER BY LINENO DESC; BEGIN

Object name: BTNUP Trigger level: item level Trigger name: When-button-pressed GO_ITEM('LINENO'); PREVIOUS_RECORD; SELECT ITEMDESCRIPTION,UNITCOST,UNITRETAIL INTO :BLKCAT.ITEM,:BLKCAT.UNITCOST,:BLKCAT. UNITRETAIL FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:BLKTRANS.PAYRECEIPT AND ITEMDESCRIPTION= :BLKPOS.ITEMDESCRIPTION; :GLOBAL.ITEM:=:BLKCAT.ITEM; :GLOBAL.UNITCOST:=:BLKCAT.UNITCOST; :GLOBAL.UNITRETAIL:=:BLKCAT.UNITRETAIL ; Object name: BTNDOWN Trigger level: item level Trigger name: When-button-pressed NEXT_RECORD; SELECT ITEMDESCRIPTION,UNITCOST,UNITRETAIL INTO :BLKCAT.ITEM,:BLKCAT.UNITCOST,:BLKCAT. UNITRETAIL FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:BLKTRANS.PAYRECEIPT AND ITEMDESCRIPTION= :BLKPOS.ITEMDESCRIPTION; :GLOBAL.ITEM:=:BLKCAT.ITEM; :GLOBAL.UNITCOST:=:BLKCAT.UNITCOST; :GLOBAL.UNITRETAIL:=:BLKCAT.UNITRETAIL ; Object name: BTNPLUS Trigger level: item level Trigger name: When-button-pressed DECLARE ITEM NUMBER(20); PRODQTY3 NUMBER; v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; LN NUMBER;

SELECT PRODQTY INTO PRODQTY3 FROM PRODUCTMASTERLIST WHERE ITEMDESCRIPTION=:GLOBAL.ITEM; IF :BLKCAT.ITEM IS NULL THEN IF SHOW_ALERT('EMPTY')=ALERT_BUTTON1 THEN go_item('LISTCAT1'); END IF; ELSE IF PRODQTY3 >= 1 THEN UPDATE POSTRANSACTIONDETAIL SET TRANQTY=TRANQTY+1 WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE POSTRANSACTIONDETAIL SET TOTALCOST=TOTALCOST+:GLOBAL.UNITCOS T,TOTALRETAIL=TOTALRETAIL+:GLOBAL.UN ITRETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE Productmasterlist SET PRODQTY=PRODQTY-1 WHERE :GLOBAL.ITEM; ITEMDESCRIPTION =

FORMS_DDL('COMMIT');

Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS');

EXECUTE_QUERY; SELECT SUM(TOTALRETAIL) INTO :BLKTRANS.PAYTOTAL FROM POSTRANSACTIONDETAIL WHERE :GLOBAL.RECEIPT RECEIPTNO =

cursor POS_CUR Is select ITEMDESCRIPTION,TRANQTY,UNITRETAIL,TO TALRETAIL, LINENO from POSTRANSACTIONDETAIL where RECEIPTNO=:GLOBAL.RECEIPT ORDER BY LINENO DESC; BEGIN SELECT PRODQTY INTO PRODQTY3 FROM PRODUCTMASTERLIST WHERE ITEMDESCRIPTION=:GLOBAL.ITEM; IF :BLKCAT.ITEM IS NULL THEN IF SHOW_ALERT('EMPTY')=ALERT_BUTTON1 THEN go_item('LISTCAT1'); END IF; ELSE IF PRODQTY3 >= 1 THEN UPDATE POSTRANSACTIONDETAIL SET TRANQTY=TRANQTY+1 WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE POSTRANSACTIONDETAIL

GROUP BY RECEIPTNO; :BLKTRANS.PAYRECEIPT:=:GLOBAL.RECEIPT; set_item_property('blktrans.btnclose',enabled,property _false); set_item_property('blktrans.btN1',enabled,property_T RUE); set_item_property('blktrans.btn5',enabled,property_TR UE); set_item_property('blktrans.btn20',enabled,property_T RUE); set_item_property('blktrans.btn50',enabled,property_T RUE); set_item_property('blktrans.btn100',enabled,property_ TRUE); set_item_property('blktrans.btn500',enabled,property_ TRUE); set_item_property('blktrans.btn1000',enabled,property _TRUE); :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); :blkcat.item:=:global.item; else if show_alert('outstock')=alert_button1 then go_item('BTNSEARCH'); END IF; END IF; END IF; END; Object name: BTNMINUS Trigger level: item level Trigger name: When-button-pressed DECLARE ITEM NUMBER(20); PRODQTY3 NUMBER; v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; LN NUMBER; UPDATE Productmasterlist SET PRODQTY=PRODQTY-1 WHERE :GLOBAL.ITEM; ITEMDESCRIPTION =

SET TOTALCOST=TOTALCOST+:GLOBAL.UNITCOS T,TOTALRETAIL=TOTALRETAIL+:GLOBAL.UN ITRETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT');

FORMS_DDL('COMMIT');

Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS'); EXECUTE_QUERY; SELECT SUM(TOTALRETAIL) INTO :BLKTRANS.PAYTOTAL FROM POSTRANSACTIONDETAIL WHERE :GLOBAL.RECEIPT RECEIPTNO

cursor POS_CUR Is select ITEMDESCRIPTION,TRANQTY,UNITRETAIL,TO TALRETAIL, LINENO from POSTRANSACTIONDETAIL where RECEIPTNO=:GLOBAL.RECEIPT ORDER BY LINENO DESC; BEGIN SELECT PRODQTY INTO PRODQTY2 FROM PRODUCTMASTERLIST WHERE ITEMDESCRIPTION=:GLOBAL.ITEM; IF PRODQTY2 >= 1 THEN UPDATE POSTRANSACTIONDETAIL SET TRANQTY=TRANQTY-1 WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE POSTRANSACTIONDETAIL SET TOTALCOST=TOTALCOST:GLOBAL.UNITCOST,TOTALRETAIL=TOTALRE TAIL-:GLOBAL.UNITRETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE Productmasterlist SET PRODQTY=PRODQTY+1 WHERE :GLOBAL.ITEM; ITEMDESCRIPTION =

GROUP BY RECEIPTNO; :BLKTRANS.PAYRECEIPT:=:GLOBAL.RECEIPT; set_item_property('blktrans.btnclose',enabled,property _false); set_item_property('blktrans.btN1',enabled,property_T RUE); set_item_property('blktrans.btn5',enabled,property_TR UE); set_item_property('blktrans.btn20',enabled,property_T RUE); set_item_property('blktrans.btn50',enabled,property_T RUE); set_item_property('blktrans.btn100',enabled,property_ TRUE); set_item_property('blktrans.btn500',enabled,property_ TRUE); set_item_property('blktrans.btn1000',enabled,property _TRUE); :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); :blkcat.item:=:global.item; else if show_alert('outstock')=alert_button1 then go_item('BTNSEARCH'); END IF; END IF; END IF; END; DECLARE ITEM NUMBER(20); PRODQTY2 NUMBER; v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; LN NUMBER;

FORMS_DDL('COMMIT'); Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS'); EXECUTE_QUERY;

else if show_alert('outstock')=alert_button1 then

LN NUMBER; go_item('BTNSEARCH'); END IF; END IF; SELECT SUM(TOTALRETAIL) INTO :BLKTRANS.PAYTOTAL FROM POSTRANSACTIONDETAIL WHERE :GLOBAL.RECEIPT RECEIPTNO = BEGIN SELECT TRANQTY INTO ADDITEM FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION=:GLOBAL.ITEM; IF :BLKCAT.ITEM IS NULL THEN IF SHOW_ALERT('EMPTY')=ALERT_BUTTON1 THEN go_item('btngrocery'); END IF; ELSE UPDATE Productmasterlist SET PRODQTY=PRODQTY+ADDITEM WHERE :GLOBAL.ITEM; DELETE FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); ITEMDESCRIPTION = cursor POS_CUR Is select ITEMDESCRIPTION,TRANQTY,UNITRETAIL,TO TALRETAIL, LINENO from POSTRANSACTIONDETAIL where RECEIPTNO=:GLOBAL.RECEIPT ORDER BY LINENO DESC;

GROUP BY RECEIPTNO; :BLKTRANS.PAYRECEIPT:=:GLOBAL.RECEIPT; :blkcat.item:=:global.item; set_item_property('blktrans.btnclose',enabled,property _false); :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); END; Object name: BTNCANCEL Trigger level: item level Trigger name: When-button-pressed DELETE FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT; FORMS_DDL('COMMIT'); CLEAR_FORM(NO_COMMIT); :blKTRANS.PAYCASH:=0; :blKTRANS.PAYCHANGE:=0; :BLKTRANS.POSQTY:=0; :BLKTRANS.PAYRECEIPT:=:GLOBAL.RECEIPT; :blkcat.item:=''; set_item_property('btnclose',enabled,property_TRUE) ; :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY');

FORMS_DDL('COMMIT');

Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS'); EXECUTE_QUERY; SELECT SUM(TOTALRETAIL) INTO :BLKTRANS.PAYTOTAL FROM POSTRANSACTIONDETAIL WHERE :GLOBAL.RECEIPT RECEIPTNO

Object name: BTNVOID Trigger level: item level Trigger name: When-button-pressed DECLARE ADDITEM NUMBER; ITEM NUMBER(20); v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL;

GROUP BY RECEIPTNO; :BLKTRANS.PAYRECEIPT:=:GLOBAL.RECEIPT; :blkcat.item:=:global.item; set_item_property('blktrans.btnclose',enabled,property _false); :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); END IF; END;

IF PRODQTY1 :BLKTRANS.POSQTY THEN SELECT TRANQTY INTO TRAN FROM POSTRANSACTIONDETAIL

>=

WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; UPDATE POSTRANSACTIONDETAIL SET TRANQTY=:BLKTRANS.POSQTY WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE POSTRANSACTIONDETAIL

Object name: BTNQTY Trigger level: item level Trigger name: When-button-pressed DECLARE ITEM NUMBER(20); PRODQTY1 NUMBER; TRAN NUMBER; v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; LN NUMBER; cursor POS_CUR Is select ITEMDESCRIPTION,TRANQTY,UNITRETAIL,TO TALRETAIL, LINENO from POSTRANSACTIONDETAIL where RECEIPTNO=:GLOBAL.RECEIPT ORDER BY LINENO DESC; BEGIN SELECT PRODQTY INTO PRODQTY1 FROM PRODUCTMASTERLIST WHERE ITEMDESCRIPTION=:GLOBAL.ITEM; IF :BLKCAT.ITEM IS NULL THEN IF SHOW_ALERT('EMPTY')=ALERT_BUTTON1 THEN go_item('btngrocery'); END IF; ELSE IF :BLKTRANS.POSQTY > 0 AND :BLKTRANS.POSQTY IS NOT NULL THEN

SET TOTALCOST=:GLOBAL.UNITCOST*:BLKTRANS .POSQTY WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE POSTRANSACTIONDETAIL SET TOTALRETAIL=:GLOBAL.UNITRETAIL*:BLKTR ANS.POSQTY WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT');

UPDATE Productmasterlist SET :BLKTRANS.POSQTY WHERE :GLOBAL.ITEM; PRODQTY=PRODQTY=

ITEMDESCRIPTION

FORMS_DDL('COMMIT'); UPDATE Productmasterlist SET PRODQTY=PRODQTY+TRAN WHERE :GLOBAL.ITEM; ITEMDESCRIPTION =

FORMS_DDL('COMMIT'); Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS');

EXECUTE_QUERY; SELECT SUM(TOTALRETAIL) INTO :BLKTRANS.PAYTOTAL FROM POSTRANSACTIONDETAIL WHERE :GLOBAL.RECEIPT else if show_alert('outstock')=alert_button1 then go_item('posqty'); end if; END IF; :BLKTRANS.POSQTY:=0; :BLKTRANS.PAYRECEIPT:=:GLOBAL.RECEIPT; :blkcat.item:=:global.item; set_item_property('blktrans.btnclose',enabled,property _false); set_item_property('blktrans.btN1',enabled,property_T RUE); set_item_property('blktrans.btn5',enabled,property_TR UE); set_item_property('blktrans.btn20',enabled,property_T RUE); set_item_property('blktrans.btn50',enabled,property_T RUE); set_item_property('blktrans.btn100',enabled,property_ TRUE); set_item_property('blktrans.btn500',enabled,property_ TRUE); set_item_property('blktrans.btn1000',enabled,property _TRUE); :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); END IF; END IF; END; Object name: LISTCAT1 Trigger level: item level Trigger name: When-button-pressed DECLARE ITEM NUMBER(20); v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; RECEIPTNO =

LN NUMBER; cursor POS_CUR Is select ITEMDESCRIPTION,TRANQTY,UNITRETAIL,TO TALRETAIL, LINENO from POSTRANSACTIONDETAIL where RECEIPTNO=:GLOBAL.RECEIPT ORDER BY LINENO ASC; BEGIN :BLKCAT.CID:=:BLKCAT.LISTCAT1; IF SHOW_LOV('LOVCAT') THEN :GLOBAL.RECEIPT:=:BLKTRANS.PAYRECEIPT; :GLOBAL.ITEM:=:BLKCAT.ITEM; :GLOBAL.UNITCOST:=:BLKCAT.UNITCOST; :GLOBAL.UNITRETAIL:=:BLKCAT.UNITRETAIL ; SELECT MAX(LINENO) INTO LN FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT; IF LN IS NULL THEN LN:=1; ELSE LN:=LN+1; END IF; SELECT COUNT(ITEMCODE) INTO ITEM FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; IF ITEM IS NULL OR ITEM = 0 THEN insert into postransactiondetail(RECEIPTNO,DATECREATED,I TEMCODE,ITEMDESCRIPTION,TRANQTY,BUSI NESSDATE ,SUPPID,UNITCOST,UNITRETAIL,TOTALCOST, TOTALRETAIL,LINENO) SELECT :GLOBAL.RECEIPT,SYSDATE,P.ITEMCODE,P.IT EMDESCRIPTION,1,SYSDATE,P.SUPPID,P.UNIT COST,P.UNITRETAIL,P.UNITCOST*1,P.UNITRET AIL*1,LN FROM PRODUCT P

GROUP BY RECEIPTNO;

WHERE P.ITEMDESCRIPTION=:GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE Productmasterlist SET PRODQTY=PRODQTY-1 WHERE :GLOBAL.ITEM; ITEMDESCRIPTION =

:blkcat.item:=:global.item; set_item_property('blktrans.btnclose',enabled,property _false); set_item_property('blktrans.btN1',enabled,property_T RUE); set_item_property('blktrans.btn5',enabled,property_TR UE); set_item_property('blktrans.btn20',enabled,property_T RUE); set_item_property('blktrans.btn50',enabled,property_T RUE); set_item_property('blktrans.btn100',enabled,property_ TRUE); = set_item_property('blktrans.btn200',enabled,property_ TRUE); set_item_property('blktrans.btn500',enabled,property_ TRUE); set_item_property('blktrans.btn1000',enabled,property _TRUE); :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); GO_ITEM('POSQTY'); END IF; END;

FORMS_DDL('COMMIT');

Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS'); EXECUTE_QUERY; ELSE UPDATE POSTRANSACTIONDETAIL

SET TRANQTY=TRANQTY+1,TOTALCOST=TOTALC OST+:GLOBAL.UNITCOST,TOTALRETAIL=TOT ALRETAIL+:GLOBAL.UNITRETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE Productmasterlist SET PRODQTY=PRODQTY-1 WHERE :GLOBAL.ITEM; ITEMDESCRIPTION =

Object name: LISTCAT Trigger level: item level Trigger name: When-button-pressed DECLARE ITEM NUMBER(20); = v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL; LN NUMBER; cursor POS_CUR Is select ITEMDESCRIPTION,TRANQTY,UNITRETAIL,TO TALRETAIL, LINENO from POSTRANSACTIONDETAIL where RECEIPTNO=:GLOBAL.RECEIPT = BEGIN :BLKCAT.CID:=:BLKCAT.LISTCAT; IF SHOW_LOV('LOVCAT') THEN ORDER BY LINENO ASC;

FORMS_DDL('COMMIT'); Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS'); EXECUTE_QUERY; END IF; SELECT SUM(TOTALRETAIL) INTO :BLKTRANS.PAYTOTAL FROM POSTRANSACTIONDETAIL WHERE :GLOBAL.RECEIPT RECEIPTNO

GROUP BY RECEIPTNO; :BLKTRANS.PAYRECEIPT:=:GLOBAL.RECEIPT;

:GLOBAL.RECEIPT:=:BLKTRANS.PAYRECEIPT; :GLOBAL.ITEM:=:BLKCAT.ITEM; :GLOBAL.UNITCOST:=:BLKCAT.UNITCOST; :GLOBAL.UNITRETAIL:=:BLKCAT.UNITRETAIL ; SELECT MAX(LINENO) INTO LN FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT; IF LN IS NULL THEN LN:=1; ELSE LN:=LN+1; END IF;

Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS'); EXECUTE_QUERY; ELSE UPDATE POSTRANSACTIONDETAIL

SET TRANQTY=TRANQTY+1,TOTALCOST=TOTALC OST+:GLOBAL.UNITCOST,TOTALRETAIL=TOT ALRETAIL+:GLOBAL.UNITRETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE Productmasterlist

SELECT COUNT(ITEMCODE) INTO ITEM FROM POSTRANSACTIONDETAIL WHERE RECEIPTNO=:GLOBAL.RECEIPT AND ITEMDESCRIPTION = :GLOBAL.ITEM;

SET PRODQTY=PRODQTY-1 WHERE :GLOBAL.ITEM; ITEMDESCRIPTION =

FORMS_DDL('COMMIT');

IF ITEM IS NULL OR ITEM = 0 THEN insert into postransactiondetail(RECEIPTNO,DATECREATED,I TEMCODE,ITEMDESCRIPTION,TRANQTY,BUSI NESSDATE ,SUPPID,UNITCOST,UNITRETAIL,TOTALCOST, TOTALRETAIL,LINENO) SELECT :GLOBAL.RECEIPT,SYSDATE,P.ITEMCODE,P.IT EMDESCRIPTION,1,SYSDATE,P.SUPPID,P.UNIT COST,P.UNITRETAIL,P.UNITCOST*1,P.UNITRET AIL*1,LN FROM PRODUCT P WHERE P.ITEMDESCRIPTION=:GLOBAL.ITEM; FORMS_DDL('COMMIT'); UPDATE Productmasterlist SET PRODQTY=PRODQTY-1 WHERE :GLOBAL.ITEM; ITEMDESCRIPTION =

Set_Block_Property('BLKPOS', DEFAULT_WHERE,'RECEIPTNO :GLOBAL.RECEIPT'); GO_BLOCK('BLKPOS'); EXECUTE_QUERY; END IF; SELECT SUM(TOTALRETAIL) INTO :BLKTRANS.PAYTOTAL FROM POSTRANSACTIONDETAIL WHERE :GLOBAL.RECEIPT RECEIPTNO

GROUP BY RECEIPTNO;

:BLKTRANS.PAYRECEIPT:=:GLOBAL.RECEIPT; :blkcat.item:=:global.item; set_item_property('blktrans.btnclose',enabled,property _false); set_item_property('blktrans.btN1',enabled,property_T RUE); set_item_property('blktrans.btn5',enabled,property_TR UE); set_item_property('blktrans.btn20',enabled,property_T RUE);

FORMS_DDL('COMMIT');

set_item_property('blktrans.btn50',enabled,property_T RUE); set_item_property('blktrans.btn100',enabled,property_ TRUE); set_item_property('blktrans.btn200',enabled,property_ TRUE); set_item_property('blktrans.btn500',enabled,property_ TRUE); set_item_property('blktrans.btn1000',enabled,property _TRUE); :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); GO_ITEM('POSQTY'); END IF; END;

PL_ID GET_PARAMETER_LIST('tmpdata');

:=

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); := 'paraform',

ADD_PARAMETER(PL_ID, 'P_RECEIPTNO', text_parameter, :BLKTRANS.PAYRECEIPT); V_REPORT_ID FIND_REPORT_OBJECT('PRINT'); :=

V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') := LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP; WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); CLEAR_FORM(NO_COMMIT); SELECT MAX(RECEIPTNO)+1 INTO :blKTRANS.payreceipt FROM POSTRANSACTIONLIST; :GLOBAL.RECEIPT:=:blKTRANS.payreceipt; :BLKCAT.BTNCASHIER:=:GLOBAL.USERID; :blKTRANS.PAYCASH:=0; :blKTRANS.PAYCHANGE:=0; :BLKTRANS.POSQTY:=0; :BLKTRANS.PAYTOTAL:=0;

Object name: BTNPAYMENT Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100)

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN if :blktrans.paycash = 0 OR :blktrans.paycash is null or :BLKTRANS.PAYCASH < :BLKTRANS.PAYTOTAL then if show_alert('short')=alert_button1 then go_item('paycash'); end if; else INSERT INTO POSTRANSACTIONLIST(RECEIPTNO,BUSINESS DATE,VATTAX,VATAMOUNT,TRANAMOUNT,C HANGEAMOUNT,PAIDAMOUNT,USERNAME) VALUES (:GLOBAL.RECEIPT,SYSDATE,:BLKTRANS.VAT TAX,:BLKTRANS.VATAMOUNT,:BLKTRANS.PA YTOTAL,:BLKTRANS.PAYCHANGE,:BLKTRAN S.PAYCASH,:GLOBAL.USERID); FORMS_DDL('COMMIT');

:blkcat.item:=0; set_item_property('blktrans.btnclose',enabled,property _true); set_item_property('blktrans.BTNPAYMENT',enabled, property_FALSE); set_item_property('blktrans.BTN1',enabled,property_F ALSE); set_item_property('blktrans.BTN5',enabled,property_F ALSE); set_item_property('blktrans.BTN20',enabled,property_ FALSE); set_item_property('blktrans.BTN50',enabled,property_ FALSE); set_item_property('blktrans.BTN100',enabled,property _FALSE); set_item_property('blktrans.BTN200',enabled,property _FALSE); set_item_property('blktrans.BTN500',enabled,property _FALSE); set_item_property('blktrans.BTN1000',enabled,propert y_FALSE); :BLKTRANS.DATEDAY:=TO_CHAR(SYSDATE,' MONTH DD, YYYY')||' '||TO_CHAR(SYSDATE,'DAY'); IF SHOW_ALERT('PRINT')=ALERT_BUTTON1 THEN GO_ITEM('BTNCLOSE'); END IF; END IF; END; Object name: Trigger level: form level Trigger name: When-new form instance IF :GLOBAL.SUPPADD=2 THEN SET_ITEM_PROPERTY('SUPPLIER.BTNSAVE',L ABEL,'&Save'); SET_ITEM_PROPERTY('SUPPLIER.BTN DELETE',LABEL,'&Cancel'); SET_ITEM_PROPERTY('BTNSEARCH',V ISIBLE,PROPERTY_FALSE); :SUPPLIER.TRANS:='DIRECT'; GO_ITEM('SUPPNAME'); SELECT MAX(SUPPID) INTO :GLOBAL.SUPPID FROM SUPPLIER; IF :GLOBAL.SUPPID IS NULL THEN Object name: BTNCLEAR Trigger level: item level Trigger name: When-button-pressed :BLKTRANS.PAYCASH:=0; Screen no: 15 Screen name: SUPPLIER DETAIL Description: Allows the user to create new supplier details. SET_ITEM_PROPERTY('BTNSEARCH',VISIBLE,P ROPERTY_FALSE); :SUPPLIER.TRANS:='DIRECT'; END IF; SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); :GLOBAL.SUPPID:=33300; :SUPPLIER.SUPPID:=:GLOBAL.SUPPID; ELSE :GLOBAL.SUPPID:=:GLOBAL.SUPPID+5; :SUPPLIER.SUPPID:=:GLOBAL.SUPPID; END IF;

SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE); Object name: BTNSEARCH Trigger level: item level Trigger name: When-button-pressed IF SHOW_LOV('LOV78') THEN SET_ITEM_PROPERTY('BTNSAVE',LABEL,'&Up date'); SET_ITEM_PROPERTY('BTNDELETE',LABEL,'& Cancel'); SELECT SUPPID,SUPPNAME,SUPPCODE,SUPPADDRESS, CONTACTNO,SUPPTRANSACTION INTO :SUPPLIER.SUPPID,:SUPPLIER.SUPPNAME,:SUP PLIER.SUPPCODE,:SUPPLIER.SUPPADDRESS,:S UPPLIER.CONTACTNO,:SUPPLIER.SUPPTRANS ACTION FROM SUPPLIER WHERE SUPPID = :SUPPLIER.SUPPID; IF :SUPPLIER.SUPPID=33300 THEN :SUPPLIER.TRANS:='WAREHOUSE'; ELSE :SUPPLIER.TRANS:='DIRECT'; END IF; END IF; Object name: BTNSAVE Trigger level: item level Trigger name: When-button-pressed DECLARE LUPDATE VARCHAR2(10); PRODUCTITEM VARCHAR2(30); SUPPLID NUMBER; BEGIN LUPDATE:=GET_ITEM_PROPERTY('BT NSAVE',LABEL); IF LUPDATE='&Add' THEN SET_ITEM_PROPERTY('SUPPLIER.BTN SAVE',LABEL,'&Save'); SET_ITEM_PROPERTY('SUPPLIER.BTN DELETE',LABEL,'&Cancel');

SET_ITEM_PROPERTY('BTNSEARCH',V ISIBLE,PROPERTY_FALSE); :SUPPLIER.TRANS:='DIRECT'; GO_ITEM('SUPPNAME'); SELECT MAX(SUPPID) INTO :GLOBAL.SUPPID FROM SUPPLIER; IF :GLOBAL.SUPPID IS NULL THEN :GLOBAL.SUPPID:=33305; :SUPPLIER.SUPPID:=:GLOBAL.SUPPID; ELSE :GLOBAL.SUPPID:=:GLOBAL.SUPPID+5; :SUPPLIER.SUPPID:=:GLOBAL.SUPPID; END IF; ELSIF LUPDATE='&Edit' THEN IF SHOW_LOV('LOV78') THEN NULL; END IF; SET_ITEM_PROPERTY('SUPPLIER.BTNSAVE',L ABEL,'&Update'); SET_ITEM_PROPERTY('SUPPLIER.BTNDELETE', LABEL,'&Cancel'); SET_ITEM_PROPERTY('BTNSEARCH',VISIBLE,P ROPERTY_TRUE); SET_ITEM_PROPERTY('BTNSEARCH',ENABLED ,PROPERTY_TRUE); ELSIF :SUPPLIER.SUPPNAME IS NULL AND :SUPPLIER.SUPPADDRESS IS NULL AND :SUPPLIER.CONTACTNO IS NULL AND :SUPPLIER.TRANS IS NULL THEN IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN GO_ITEM('SUPPLIER.SUPPNAME'); END IF; ELSIF :SUPPLIER.SUPPNAME IS NULL OR :SUPPLIER.SUPPADDRESS IS NULL OR :SUPPLIER.CONTACTNO IS NULL OR :SUPPLIER.TRANS IS NULL THEN IF SHOW_ALERT('INC') = ALERT_BUTTON1 THEN GO_ITEM('SUPPLIER.SUPPNAME'); END IF; ELSIF :SUPPLIER.SUPPNAME IS NULL AND :SUPPLIER.SUPPADDRESS IS NOT NULL AND =

:SUPPLIER.CONTACTNO IS NOT NULL AND :SUPPLIER.TRANS IS NOT NULL THEN IF SHOW_ALERT('SUPPNAME') ALERT_BUTTON1 THEN GO_ITEM('SUPPLIER.SUPPNAME'); END IF; ELSIF :SUPPLIER.SUPPNAME IS NOT NULL AND :SUPPLIER.SUPPADDRESS IS NULL AND :SUPPLIER.CONTACTNO IS NOT NULL AND :SUPPLIER.TRANS IS NOT NULL THEN IF SHOW_ALERT('SUPPADDRESS') ALERT_BUTTON1 THEN = =

IF SHOW_ALERT('SAVE')=ALERT_BUTTON1 THEN INSERT INTO SUPPNAME,SUPPCODE, CONTACTNO,

SUPPLIER(SUPPID, SUPPADDRESS, SUPPTRANSACTION)

VALUES(:SUPPLIER.SUPPID, INITCAP(:SUPPLIER.SUPPNAME),UPPER(:SUPP LIER.SUPPCODE), INITCAP(:SUPPLIER.SUPPADDRESS), :SUPPLIER.CONTACTNO, INITCAP(:SUPPLIER.TRANS)); FORMS_DDL('COMMIT'); IF ALERT_BUTTON1 IF :GLOBAL.SUPPADD=2 THEN CALL_FORM('C:\247\FRMPRODUCTADD.FMX',H IDE,DO_REPLACE); ELSE CALL_FORM('C:\247\HOME.FMX',HIDE,DO_REP LACE);

GO_ITEM('SUPPLIER.SUPPADDRESS'); END IF; ELSIF :SUPPLIER.SUPPNAME IS NOT NULL AND :SUPPLIER.SUPPADDRESS IS NOT NULL AND :SUPPLIER.CONTACTNO IS NULL AND :SUPPLIER.TRANS IS NOT NULL THEN IF SHOW_ALERT('CONTACTNO') ALERT_BUTTON1 THEN GO_ITEM('SUPPLIER.CONTACTNO'); END IF; ELSIF :SUPPLIER.SUPPNAME IS NOT NULL AND :SUPPLIER.SUPPADDRESS IS NOT NULL AND :SUPPLIER.CONTACTNO IS NOT NULL AND :SUPPLIER.TRANS IS NULL THEN IF SHOW_ALERT('TRANS') = ALERT_BUTTON1 THEN GO_ITEM('SUPPLIER.TRANS'); END IF; ELSE IF LUPDATE='&Save' THEN SELECT MAX(SUPPID) INTO SUPPLID FROM SUPPLIER WHERE :SUPPLIER.SUPPID; IF SUPPLID > 0 THEN IF SHOW_ALERT('DUPLICATE') ALERT_BUTTON1 THEN NULL; END IF; ELSE = SUPPID = =

SHOW_ALERT('SAVED') THEN

END IF; END IF; END IF; END IF; ELSIF THEN IF SHOW_ALERT('UPDATE')=ALERT_BUTTON1 THEN UPDATE SUPPLIER SET SUPPID = :SUPPLIER.SUPPID, SUPPNAME = INITCAP(:SUPPLIER.SUPPNAME),SUPPCODE=U PPER(:SUPPLIER.SUPPCODE), SUPPADDRESS =INITCAP(:SUPPLIER.SUPPADDRESS),CONTAC TNO = :SUPPLIER.CONTACTNO, SUPPTRANSACTION UPPER(:SUPPLIER.TRANS) WHERE :SUPPLIER.SUPPID; SUPPID = = LUPDATE='&Update'

FORMS_DDL('COMMIT'); IF SHOW_ALERT('UPDATED') ALERT_BUTTON1 THEN CLEAR_RECORD; CALL_FORM('C:\247\FRMSUPPLIER.FMX',HIDE, DO_REPLACE); SET_ITEM_PROPERTY('SUPPLIER.BTNSAVE',L ABEL,'&Edit'); END IF; END IF; END IF; END IF; END; Object name: BTNDELETE Trigger level: item level Trigger name: When-button-pressed DECLARE LUPDATE VARCHAR2(10); PRODUCTITEM VARCHAR2(30); BEGIN LUPDATE:=GET_ITEM_PROPERTY('BT NDELETE',LABEL); IF LUPDATE='&Delete' THEN IF :supplier.suppid IS not NULL THEN IF SHOW_ALERT('DELETE')=ALERT_BUTTON1 THEN DELETE FROM supplier WHERE suppid= :supplier.suppid; FORMS_DDL('COMMIT'); IF SHOW_ALERT('DELETED') = ALERT_BUTTON1 THEN CLEAR_RECORD; END IF; END IF; END IF; ELSIF LUPDATE='&Cancel' THEN SET_ITEM_PROPERTY('BTNDELETE',L ABEL,'&Delete'); SET_ITEM_PROPERTY('BTNSAVE',LAB EL,'&Add'); Screen no: 16 Screen name: CATEGORY DETAIL Description: Allows the user to create new category for the products details. Object name: BTNCLOSE Trigger level: item level Trigger name: When-button-pressed IF SHOW_ALERT('CLOSE') = ALERT_BUTTON1 THEN EXIT_FORM(NO_COMMIT); END IF; = SET_ITEM_PROPERTY('BTNSEARCH',V ISIBLE,PROPERTY_TRUE); SET_ITEM_PROPERTY('BTNSEARCH',E NABLED,PROPERTY_TRUE); CLEAR_FORM(NO_COMMIT); END IF; END;

Object name: Trigger level: form level Trigger name: When-new form instance SET_MENU_ITEM_PROPERTY('MENU1.HOME',E NABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.PRODU CTMANAGEMENT',ENABLED,PROPERTY_FALS E); SET_MENU_ITEM_PROPERTY('MENU1.REPORT S',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.MAINTE NANCE',ENABLED,PROPERTY_FALSE); SET_MENU_ITEM_PROPERTY('MENU1.LOGOU T',ENABLED,PROPERTY_FALSE);

Object name: BTNSEARCH Trigger level: item level Trigger name: When-button-pressed IF SHOW_LOV('LOV_CATEGORY') THEN SET_ITEM_PROPERTY('CATEGORY.BT NADD', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('CATEGORY.BT NUPDATE', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('CATEGORY.BT NDELETE', ENABLED, PROPERTY_TRUE); END IF; :CATEGORY.CATNAME := ''; :CATEGORY.CATTYPE := ''; SELECT MAX(CATEGORY.CATID) INTO :CATEGORY.CATID FROM CATEGORY; IF :CATEGORY.CATID IS NULL THEN :CATEGORY.CATID := 10; ELSE :CATEGORY.CATID :CATEGORY.CATID + 5; END IF; GO_ITEM('CATEGORY.CATNAME'); END IF; ELSIF :CATEGORY.CATNAME IS NULL OR :CATEGORY.CATTYPE IS NULL THEN IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN SELECT := MAX(CATEGORY.CATID) INTO :CATEGORY.CATID FROM CATEGORY; GO_ITEM('CATEGORY.CATNAME'); CLEAR_MESSAGE; SET_ITEM_PROPERTY('CATEGORY.BT NADD', ENABLED, PROPERTY_FALSE); SET_ITEM_PROPERTY('CATEGORY.BT NUPDATE', ENABLED, PROPERTY_FALSE); SET_ITEM_PROPERTY('CATEGORY.BT NDELETE', ENABLED, PROPERTY_FALSE); END IF; Object name: BTNSAVE Trigger level: item level Trigger name: When-button-pressed BEGIN IF :CATEGORY.CATNAME IS NULL AND :CATEGORY.CATTYPE IS NULL THEN IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN = IF :CATEGORY.CATID IS NULL THEN :CATEGORY.CATID := 10; ELSE :CATEGORY.CATID :CATEGORY.CATID + 5; END IF; GO_ITEM('CATEGORY.CATNAME'); END IF; ELSIF :CATEGORY.CATNAME IS NULL OR :CATEGORY.CATTYPE IS NULL THEN IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN GO_ITEM('CATEGORY.CATNAME'); END IF; = := = :=

Object name: BTNADD Trigger level: item level Trigger name: When-button-pressed IF SHOW_ALERT('ADD') = ALERT_BUTTON1 THEN CREATE_RECORD; SELECT MAX(CATEGORY.CATID) INTO :CATEGORY.CATID FROM CATEGORY; IF :CATEGORY.CATID IS NULL THEN :CATEGORY.CATID := 10; ELSE :CATEGORY.CATID :CATEGORY.CATID + 5; END IF;

ELSIF :CATEGORY.CATNAME IS NULL AND :CATEGORY.CATTYPE IS NOT NULL THEN IF SHOW_ALERT('CATNAME') = ALERT_BUTTON1 THEN GO_ITEM('CATEGORY.CATNAME'); END IF; ELSIF :CATEGORY.CATTYPE IS NULL AND :CATEGORY.CATNAME IS NOT NULL THEN IF SHOW_ALERT('CATTYPE') = ALERT_BUTTON1 THEN GO_ITEM('CATEGORY.CATTYPE'); END IF; ELSE SELECT CATID, CATNAME INTO :CATEGORY.CATNAME WHERE :CATEGORY.CATID OR :CATEGORY.CATNAME; IF SHOW_ALERT('DUPLICATE') ALERT_BUTTON1 THEN NULL; END IF; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN IF SHOW_ALERT('SAVE')=ALERT_BUTTON1 THEN SELECT MAX(CATEGORY.CATID) INTO :CATEGORY.CATID FROM CATEGORY; :CATEGORY.CATID,

INSERT INTO CATEGORY(CATID, CATNAME, CATTYPE) VALUES(:CATEGORY.CATID, INITCAP(:CATEGORY.CATNAME), :CATEGORY.CATTYPE); FORMS_DDL('COMMIT'); SHOW_ALERT('SAVED') THEN IF = ALERT_BUTTON1

CLEAR_RECORD; SET_ITEM_PROPERTY('CATEGORY.BT NADD', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('CATEGORY.BT NUPDATE', ENABLED, PROPERTY_TRUE); SET_ITEM_PROPERTY('CATEGORY.BT NDELETE', ENABLED, PROPERTY_TRUE);

FROM CATEGORY CATID CATNAME = =

END IF; END IF; END;

= Object name: BTNUPDATE Trigger level: item level Trigger name: When-button-pressed IF :CATEGORY.CATID IS NULL THEN IF THEN NULL; END IF; ELSIF :CATEGORY.CATNAME IS NULL AND :CATEGORY.CATTYPE IS NULL THEN IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN :CATEGORY.CATNAME := ''; :CATEGORY.CATTYPE := ''; GO_ITEM('CATEGORY.CATNAME'); = SHOW_LOV('LOV_CATEGORY')

IF :CATEGORY.CATID IS NULL THEN :CATEGORY.CATID := 1; ELSE :CATEGORY.CATID :CATEGORY.CATID + 5; END IF; :=

END IF; ELSIF :CATEGORY.CATNAME IS NULL OR :CATEGORY.CATTYPE IS NULL THEN IF SHOW_ALERT('INC') ALERT_BUTTON1 THEN GO_ITEM('CATEGORY.CATNAME'); END IF; =

ELSIF :CATEGORY.CATNAME IS NULL AND :CATEGORY.CATTYPE IS NOT NULL THEN IF SHOW_ALERT('CATNAME') ALERT_BUTTON1 THEN GO_ITEM('CATEGORY.CATNAME'); END IF; ELSIF :CATEGORY.CATTYPE IS NULL AND :CATEGORY.CATNAME IS NOT NULL THEN IF SHOW_ALERT('CATTYPE') ALERT_BUTTON1 THEN GO_ITEM('CATEGORY.CATTYPE'); END IF; ELSIF SHOW_ALERT('UPDATE')=ALERT_BUTTON1 THEN UPDATE CATEGORY SET CATNAME = INITCAP(:CATEGORY.CATNAME), CATTYPE = :CATEGORY.CATTYPE WHERE CATID = :CATEGORY.CATID OR CATNAME = :CATEGORY.CATNAME; FORMS_DDL('COMMIT'); IF SHOW_ALERT('UPDATED') ALERT_BUTTON1 THEN CLEAR_RECORD; END IF; END IF; = = = END IF;

END IF; END IF;

Object name: BTNCLOSE Trigger level: item level Trigger name: When-button-pressed IF SHOW_ALERT('CLOSE') = ALERT_BUTTON1 THEN EXIT_FORM; END IF;

Screen no: 17 Screen name: SALES PARAMETER Description: Allows the user to generate reports from sales.

Object name: BTNGENERATE Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

Object name: BTNDELETE Trigger level: item level Trigger name: When-button-pressed IF :CATEGORY.CATID IS NULL THEN IF THEN NULL; END IF; ELSE IF SHOW_ALERT('DELETE')=ALERT_BUTTON1 THEN DELETE FROM CATEGORY WHERE :CATEGORY.CATID; CATID = SHOW_LOV('LOV_CATEGORY')

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID GET_PARAMETER_LIST('tmpdata'); :=

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID CREATE_PARAMETER_LIST('tmpdata'); :=

FORMS_DDL('COMMIT'); IF SHOW_ALERT('DELETED') = ALERT_BUTTON1 THEN CLEAR_RECORD;

ADD_PARAMETER(PL_ID, text_parameter, 'no');

'paraform',

ADD_PARAMETER(PL_ID, 'P_DATEFROM', text_parameter, :BLOCK6.TXTFROMDATE); ADD_PARAMETER(PL_ID, 'P_DATETO', text_parameter, :BLOCK6.TXTTODATE); ADD_PARAMETER(PL_ID, text_parameter, :BLOCK6.RANKLIST); ADD_PARAMETER(PL_ID, text_parameter, :BLOCK6.CATLIST); 'P_RANK', Object name: BTNUSER 'P_CAT', Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID FIND_REPORT_OBJECT('ABCREPORT'); := V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP;

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID GET_PARAMETER_LIST('tmpdata'); :=

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); := 'paraform',

ADD_PARAMETER(PL_ID, 'P_TITLE', text_parameter, 'LIST OF EMPLOYEES');

WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); END; Screen no: 18 Screen name: INVENTORY REPORTS Description: Allows the user to generate reports from inventories.

V_REPORT_ID FIND_REPORT_OBJECT('EMPLOYEES');

:=

V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED')

LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP;

V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP MESSAGE('RUNNING

WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); END; Object name: BTNPROD Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP;

WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); END; Object name: BTNSUPPLIER Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID GET_PARAMETER_LIST('tmpdata'); :=

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID GET_PARAMETER_LIST('tmpdata'); :=

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); := 'paraform',

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); ADD_PARAMETER(PL_ID, text_parameter, 'LIST OF SUPPLIERS'); := 'paraform', 'P_TITLE',

ADD_PARAMETER(PL_ID, 'P_TITLE', text_parameter, 'LIST OF PRODUCTS');

V_REPORT_ID FIND_REPORT_OBJECT('PRODUCT');

:=

V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER));

V_REPORT_ID FIND_REPORT_OBJECT('SUPPLIER');

:=

PL_ID CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no');

:= 'paraform',

V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP;

ADD_PARAMETER(PL_ID, 'P_TITLE', text_parameter, 'LIST OF CATEGORYS');

V_REPORT_ID FIND_REPORT_OBJECT('CATEGORY');

:=

V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP

WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); END; Object name: BTNGENERATE Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

MESSAGE('RUNNING REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP;

WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); END; Object name: BTNSTOCK Trigger level: item level Trigger name: When-button-pressed DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; := V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID GET_PARAMETER_LIST('tmpdata');

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF;

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25); COMPUTER_NAME VARCHAR2(50) := 'localhost';

BEGIN PL_ID GET_PARAMETER_LIST('tmpdata'); :=

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); := 'paraform', Object name: SALESREPORTMNU CALL_FORM('C:\247\FORMSREPORT\FRMMERC HANDISE.FMX',HIDE,DO_REPLACE); Object name: SALESREPORTMNU CALL_FORM('C:\247\FORMSREPORT\FRMSALE CATEGORY.FMX',HIDE,DO_REPLACE); Object name: SALESREPORTMNU CALL_FORM('C:\247\FORMSREPORT\FRMSALE PARAMETER.FMX',HIDE,DO_REPLACE);

ADD_PARAMETER(PL_ID, 'P_TITLE', text_parameter, 'AVAILABLE STOCK OF PRODUCTS'); V_REPORT_ID FIND_REPORT_OBJECT('STOCK'); :=

V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP; WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); END; Screen no: 19 Screen name: MENUS Description: Allows the user to select from the given menus.

Object name: SALESREPORTMNU CALL_FORM('C:\247\FORMSREPORT\FRMTOPN. FMX',HIDE,DO_REPLACE);

Object name: SALESREPORTMNU CALL_FORM('C:\247\FORMSREPORT\FRMPURC HASEREPORT.FMX',HIDE,DO_REPLACE);

Object name: RECEVIENGLOGMNU CALL_FORM('C:\247\FORMSREPORT\FRMRECEI VINGLOG.FMX',HIDE,DO_REPLACE);

Object name: RETURNMNU CALL_FORM('C:\247\FORMSREPORT\FRMRETU RNLOG.FMX',HIDE,DO_REPLACE); Object name: INVENTORYREPORTMNU DECLARE PL_ID PARAMLIST; V_REPORT_ID REPORT_OBJECT; V_REP_SERVER 'reportserver'; VARCHAR2(100) :=

V_REPORT_JOB_ID VARCHAR2(25); V_SERVER_LENGTH NUMBER; V_REP_STATUS VARCHAR2(25);

COMPUTER_NAME VARCHAR2(50) := 'localhost'; BEGIN PL_ID GET_PARAMETER_LIST('tmpdata'); :=

IF NOT ID_NULL(PL_ID) THEN DESTROY_PARAMETER_LIST(PL_ID); END IF; PL_ID CREATE_PARAMETER_LIST('tmpdata'); ADD_PARAMETER(PL_ID, text_parameter, 'no'); := 'paraform',

ADD_PARAMETER(PL_ID, 'P_TITLE', text_parameter, 'TOTAL BALANCE OF UNPERCHASE');

V_REPORT_ID FIND_REPORT_OBJECT('BALANCE');

:=

V_REPORT_JOB_ID := RUN_REPORT_OBJECT(V_REPORT_ID, PL_ID); V_SERVER_LENGTH := LENGTH(GET_REPORT_OBJECT_PROPERTY(V_ REPORT_ID,REPORT_SERVER)); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; WHILE V_REP_STATUS IN ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP MESSAGE('RUNNING REPORT'); V_REP_STATUS := REPORT_OBJECT_STATUS(V_REPORT_JOB_ID) ; END LOOP;

WEB.SHOW_DOCUMENT('/reports/rwser vlet/getjobid'||SUBSTR(V_REPORT_JOB_ID,V_SER VER_LENGTH+2)||'?server='||V_Rep_Server,'_blank' ); END; Object name: LETTERSMNU CALL_FORM('C:\247\FORMSREPORT\FRMLETT ER.FMX',HIDE,DO_REPLACE);

You might also like