Project Sales Order Processing
Project Sales Order Processing
1) APPLICATION. M/s ABC and Co. Ltd. deals in machinery spare parts. They have branches all over the country. The branches employ marketing representatives for the territories under them. The representatives book orders from various customers. The project involves building an application to book orders from the customers, and generate the reports. 2) TABLES. The following tables should be created:Branch_mst Branch_cd Branch_name Mktg_territory_mst Area_cd Area_name Branch_cd Mktg_rep_mst Rep_cd Rep_name Area_cd Customer_mst Cust_cd Cust_name Product_mst Prod_cd Prod_name Qty_on_hand Reorder_level Maximum_level Booked_qty Char(4) Varchar2(25) Number(6) Number(6) Number(6) Number(6) Primary key Not null Not null Not null Not null Not null Char(4) Varchar2(25) Primary key Not null Char(4) Varchar2(25) Char(4) Primary key Not null Not null Char(4) Varchar2(25) Char(4) Primary key Not null Not null Char(4) Varchar2(25) Primary key Not null
Sameer Dehadrai
Page: 1
Order_mst Branch_cd Order_no Order_dt Cust_cd Rep_cd Order_status Valid_upto Remarks Order_dtl Branch_cd Order_no Prod_cd Qty Rate 3) VALIDITY CHECKS. The following checks should be maintained:Mktg_territory_mst Branch_cd must be a valid branch. Mktg_rep_mst Area_cd must be a valid marketing territory. Product_mst Booked_qty must not be negative. Order_mst Branch_cd and Order_no together is the Primary key. Branch_cd must be a valid branch. Cust_cd must be a valid customer. Rep_cd must be a valid marketing representative. Order_status can be Cancelled, Delivered or Pending. Default value is P. Valid_upto should be at least one week later than Order_dt. Char(4) Number(6) Char(4) Number(3) Number(6,2) Char(4) Number(6) Date Char(4) Char(4) Char(1) Date Varchar2(200)
Not null Not null Not null Not null Not null
Sameer Dehadrai
Page: 2
Order_dtl Branch_cd, Order_no and Prod_cd together is the Primary key. Branch_cd and Order_no must represent a valid order. Prod_cd must be a valid product. Qty and Rate must not be negative. General Booked_qty in Product_mst must reflect the total Quantity for pending orders at all times. Qty booked cannot be greater than Qty_on_hand. Reorder Level cannot be greater than the Maximum Level. No order can be modified once it has been Cancelled or Delivered. Write Database triggers to update the Booked_qty and Qty_on_hand in the Product_mst. 4) USER INPUT. The following Forms should be created:(a) Programs for maintaining (inserting/updating/deleting) each of the following masters:1) 2) 3) 4) 5) Branch_mst Mktg_territory_mst Mktg_rep_mst Customer_mst Product_mst
(a) Programs for accepting new orders and modifying pending orders. The programs should display one order at a time, It should display all items for the order, It should display the customer name for the order, It should display the product names for each item, It should display the amount for each item, It should display the total amount for the order, It should perform the necessary validity checks. (b) A separate program for marking orders as Cancelled or Delivered. This program is similar to the previous one. No changes other than updating the orders as Cancelled or Delivered are to be allowed.
Sameer Dehadrai
Page: 3
5) REPORTS. (a) Summary reports for listing order totals:1) 2) 3) 4) Area-wise. Rep-wise. Customer-wise. Product-wise.
(a) A detail report to list order totals:Branch-wise, Area-wise, Rep-wise, Product-wise With summary totals at each level. (b) A matrix report to print area-wise product-wise sales summary. The report should list Total Quantity and Average Price. (c) A report to print Pending, Cancelled, Delivered or All orders during a given period. The type of order and the period to be delivered by depends on runtime parameters. The report should list all the details of an order including Customer Name, Product Name, Item-wise Totals and Total Order Value. (d) A report to print all the items with the quantity below the reorder level. GUIDELINES. 1. Create necessary indexes to make your queries work faster. Implement this for any 2 tables. 2. Some queries and DML operations could be performed on Views. Implement this for any 2 tables. 3. Create sequences where required (e.g. Branch_cd column of Branch_mst). If necessary, the sequences could be concatenated with character strings to produce alphanumeric codes. 4. Create Synonyms for all the Stored Objects in your application. 5. Use Stored Procedures, Stored Functions and Packages where necessary. 6. To create the Forms, use PL/SQL programs integrated with SQL*Plus commands to accept the input (use & along with Accept commands). The programs should invoke procedures that are part of a package to insert, update, delete in the views that would ultimately affect the tables. Implement this for any 2 tables. 7. The Reports have to be created using SQL*Plus (and PL/SQL if required).
Sameer Dehadrai
Page: 4