International School of Informatics & Management Jaipur Project on Supermarket Billing System By Ankita Aggrawal Neha Chaturvedi Devendra Singh Sisodia (Students of MCA IV- Semester, Group No. 20) Under Mr. Vijay Singh Rathore Assistant Professor IIIM Synopsis of Supermarket Billing System Introduction The project is on Supermarket Billing. Supermarket is the place where customers come to purchase their daily using products and pay for that. So there is a need to calculate how many products are sold and to generate the bill for the customer. In our project we have 3 users.
First is the data entry operator who will enter the products in database. Second one is the administrator who will decide the taxes and commissions on the products and can see the report of any product. Third one is the bill calculating operator who will calculate the bill and print. Objective “To make software fast in processing, with good user interface so that user can change it and it should be used for a long time without error and maintenance. ” Work Flow Work in the Supermarket will be done in the following way: 1. The product will come in the store. 2.
Data entry operator will enter the information of the product in database. 3. The Administrator will enter the taxes and commissions for each product. 4. The customer will come and take the basket with him/her and choose the product and took it to the counter. 5. The bill calculating operator will check the products with the bar code detecting machine then it will match with product-id then it will show its information and price and the bill will be calculated and total payment will shown. 6. Customer will pay for the products. 7. All the products will be packed and delivered to the customer.
Modules We will use 5 modules in this project. These are as follows: Module 1: Login–Id This module is made for the login of users. We know that we have 3 users so login-id is for: 1. Administrator 2. Data Entry Operator 3. Bill Calculating Operator Module 2: Apply taxes and commissions This module is for administrator who will 1. Set the taxes for the products. 2. Set the commissions for the products. Module 3: Check the Report This module is also for the administrator who can generate or check the report of the product and how many products are sold on particular date or in a period of time.
Module 4: Enter the information about products This module is for data entry operator who will 1. Enter which products come in the store. 2. Prices and expiry date of the product. Module-5: Calculate the bill This module is for bill calculating operator who will 1. Calculate the bill. 2. Print it. Scope Our project has a big scope to do. We can: 1. Calculate the bill. 2. Give the bill to the customer. 3. Store how many products are sold. 4. Store products and their prices and with other information. 5. Set the rates of taxes and commission on the products. 6. Can see the report of the product in a fix period of time. 7.
Change the Graphical User Interface of the system. We can’t: 1. Calculate of the salaries of the employees. 2. Calculate the expanses on the product. Database Database is used to store data on the computer and fast retrieval of the data so we use Oracle 8i. We will make database by entering values in different tables like tables for the login-id, products in the store, etc. Programming Languages We will use following languages for the coding: Front End: Visual Basic 6 Back End: Microsoft Access SOFTWARE REQUIREMENTS SPECIFICATION Description of the Existing System Many Supermarkets use this type of billing system for a decade.
It is also improved many times according to requirements of sellers and customers. It does the same work that is calculating the bill, gives it to the customer and maintain proper database. They are accurate in calculation and printing, they also generate records. A new concept is also added in the billing system is that they also maintain relationships with the customers who purchase more products from the store regularly. System also concerns their requirements and gives them more commission. It also shows the overall profit and profit on a particular product and give repots which items are required and which have cross their expiry date.
Bottlenecks of the Existing System Every system has pros and cons so existing system also have many advantages and disadvantages. So the bottlenecks of the existing system are as follows: 1. User Interface: User Interface is not so much good that operators feel some problems in working. 2. Graphical User Interface: GUI is not good so the operators get bored by watching screen. 3. Processing speed: Processing speed of the software is not so much good to operate fast. 4. Flexible: Existing system is not so much flexible that can be changed according to the operators and customers. 5.
Automatic generation of the Reports: Not able to automatically generate the reports and documents. 6. Workload: Sometimes the system hangs when workload is more. 7. Error Free: Sometimes the system gives error in the calculation in making the bill and in the information of the products due to workload. 8. Man Power: Existing system uses so many people to operate the system. 9. Resources: System does not use the resources properly. Advantages of the Proposed System To reduce the bottlenecks of the existing system there is a need to develop a new system. The new system should concern the requirements of the customer and the sellers.
It has the following qualities: 1. Reduction in processing cost. 2. Error reduction. 3. Automatic posting. 4. Improve reporting. 5. Automatic production of the documents and Reports. 6. Faster response time. 7. Ability to meet user requirements. 8. Flexibility. 9. Reduced dependency. 10. Improves resource uses. 11. Reduction in use of the paper. 12. Reduction in Man Power. Proposed system has these qualities including the qualities of the existing system. Feasibility Study “Feasibility Study” is a test of the system according to its workability, impact of the organization, ability to meet user needs and effective use of the resources.
We can test our system by different type of the feasibilities. There are 5 types of the feasibilities which are discussed here. These are as follows: 1. Technical Feasibility: A study of resources availability that may affect the ability to achieve an acceptable system. This evaluation determines whether the technology needed for the proposed system is available or not. This system can be made in any language that support good user interface and easy database handling. Technical needs may include: Front-End Selection: Front-End means a language that is used for user interface designing and coding.
Front-End should have following qualities: It must have a graphical user interface that assist employees that are not from some IT background. Scalability and Extensibility Robustness According to the organization requirements and culture. Must provide excellent reporting features with good printing support. Platform independent. Easy to deploy and maintain. Event driven programming. Front-End must support some popular Back-End like MS Access, SQL Server and Oracle. According to the above stated features we selected Visual C#. Net as Front –End for developing our project. Visual C#. Net is used in Microsoft Visual Studio. Net 2003.
Back-End Selection: Back-End means a language that is used for database management. Back-End should have following qualities: Multiple user support. Provide inherent feature for security. Efficient data retrieval and maintenance. Stored procedures. Popularity. Operating System compatible. Easy to install. Various drivers must be available. Efficient data handling. Easy to implement with Front-End. According to the above stated features we selected Oracle as Back–End for developing our project. We will use Oracle 8i specifically because it has more feature features then other later versions and it is easy to make and maintain database.
It is also easy to implement Oracle 8i with Visual C#. Net in Microsoft Visual Studio. Net 2003. 2. Economical Feasibility: In this we consider following costs: 1. The cost to conduct a full system investigation. 2. The cost of hardware and software for class of application being considered. 3. The benefit in the form of the reduced cost. Our system has a lot of features at a minimum cost so it is feasible to implement and it will be very much beneficial to the sellers in the reduced cost. It’s software and hardware cost is also low then the existing system. 3. Operational Feasibility: In this feasibility we consider following points: 1.
What changes will be brought with the system. 2. What new skills will be required? Do the existing staff members have these skills? If not, can they be trained in due course of time? In the new system we made some major changes for the staff members so that they have to be trained to use the newly added facilities. These major changes are possible and give a new era in the Supermarket in production and sales management. 4. Schedule Feasibility: Time evaluation is most important consideration in development of the project. So the project is concerned should be completed with fixed in scheduled time as far as company is concerned.
New system is not so much big so it is easy to make in few days. 5. Behavioral Feasibility: People are inherently resisted to change and a computer means “change is the only certainty”. An estimate should be made of how strong a reaction the user staff in going to have towards development of new system. Thus special efforts can be made to educate and train the staff. SCREEN SHOTS Project on Supermarket Billing System Coding Private Sub Command1_Click() Unload Me End Sub Private Sub Image1_Click() End Sub Private Sub Label3_Click() End Sub Change Password Coding
Dim db As Database Dim rs As Recordset Dim style As VbMsgBoxStyle Dim result As VbMsgBoxResult Private Sub Command1_Click() If Text1. Text = rs! Password Then rs. Edit rs! Password = Text2. Text rs. Update Beep result = MsgBox("Password Suuccessfully Changed. ", style, "Supermarket Billing 1. 0") Unload Me Else result = MsgBox("Incorrect Password. ", style, "Supermarket Billing 1. 0") Text1. Text = "" Text2. Text = "" Text1. SetFocus End If End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Form_Load() Set db = OpenDatabase(App. Path + "password. mdb") Set rs = db. OpenRecordset("Table1") End Sub Employee Pay slip
Coding Dim a As String Dim rs As Recordset Dim rs1 As Recordset Dim rs2 As Recordset Dim db As Database Dim db1 As Database Private Sub Combo1_Click() Set rs = db. OpenRecordset("Select * from Table1") rs. MoveFirst Text1. Text = "" Text2. Text = "" Text3. Text = "" Text4. Text = "" Text5. Text = "" While Not rs. EOF If Combo1. Text = rs! Name Then Text1. Text = rs! designation Text2. Text = rs! salary End If rs. MoveNext Wend End Sub Private Sub Command1_Click() MDIForm1. Enabled = True Unload Me End Sub Private Sub Command2_Click() rs1. AddNew rs1! Name = Combo1. Text rs1! designation = Text1. Text rs1! salary = Text2.
Text rs1! leaves = Text3. Text rs1! ot = Text4. Text rs1! deductions = Text5. Text rs1! netsalary = Text6. Text rs1! Date = Label9. Caption rs1! Time = Label8. Caption rs1. Update Beep Beep rs2. AddNew rs2! Name = Combo1. Text rs2! designation = Text1. Text rs2! salary = Text2. Text rs2! leaves = Text3. Text rs2! ot = Text4. Text rs2! deductions = Text5. Text rs2! netsalary = Text6. Text rs2! Date = Label9. Caption rs2! Time = Label8. Caption rs2. Update CrystalReport1. Action = False End Sub Private Sub Command3_Click() Dim a As Integer Dim b As Integer Dim ot As Integer Dim net As Integer Dim ded As Integer a = Val(Text3.
Text) b = Val(Text4. Text) ded = a * 10 Text5. Text = ded ot = b * 5 Set rs = db. OpenRecordset("Select * from Table1") rs. MoveFirst While Not rs. EOF If Combo1. Text = rs! Name Then net = Val(rs! salary) + ot – ded End If rs. MoveNext Wend Text6. Text = net Command2. Enabled = True End Sub Private Sub Form_Load() Command2. Enabled = False Command3. Enabled = False Set db = OpenDatabase(App. Path + "emp. mdb") Set rs = db. OpenRecordset("Select name from Table1") rs. MoveFirst While Not rs. EOF Combo1. AddItem rs! Name rs. MoveNext Wend Label9. Caption = Date Set db1 = OpenDatabase(App. Path + "payslip. mdb") Set rs1 = db1.
OpenRecordset("Table1") Set rs2 = db1. OpenRecordset("Table2") db1. Execute ("delete * from Table1") End Sub Private Sub Label9_Click() End Sub Private Sub Text4_Click() Command3. Enabled = True End Sub Private Sub Timer1_Timer() Label8. Caption = Time End Sub View Employee’s Detail Coding Private Sub Command1_Click() Text3. SetFocus Text1. Text = "" Text3. Text = "" Text2. Text = "" Text5. Text = "" Text4. Text = "" rs. MoveFirst End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Command3_Click() While Not rs. EOF If rs! code = Text3. Text Then Text3. Text = rs! code Text1. Text = rs! Name Text2. Text = rs! ddress Text5. Text = rs! designation Text4. Text = rs! salary End If rs. MoveNext Wend End Sub Private Sub Form_Load() Set db = OpenDatabase(App. Path + "emp. mdb") Set rs = db. OpenRecordset("Table1") 'Text1. SetFocus End Sub Private Sub Text3_Change() End Sub Save Employee’s Details Coding Dim i As Integer Private Sub Combo1_Click() Command1. Enabled = True End Sub Private Sub Command1_Click() rs! code = Text1. Text rs! Name = Text3. Text rs! address = Text2. Text rs! designation = Combo1. Text rs! salary = Text4. Text rs. Update Command1. Enabled = False Text1. Text = "" Text2. Text = "" Text3. Text = "" Text4. Text = "" 'Combo1.
Text = "" End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Command3_Click() i=i+1 Text1. Text = i rs. AddNew Text1. Enabled = False Text2. Enabled = True Text3. Enabled = True Text4. Enabled = True Combo1. Enabled = True End Sub Private Sub Form_Load() Text1. Enabled = False Text2. Enabled = False Text3. Enabled = False Text4. Enabled = False Combo1. Enabled = False Command1. Enabled = False Combo1. AddItem ("Manager ") Combo1. AddItem ("Cashier ") Combo1. AddItem ("Accountant ") Combo1. AddItem ("Sales ") Combo1. AddItem ("Security ") Combo1. AddItem ("Sweeper ") Set db = OpenDatabase(App. Path + "emp. mdb") Set rs = db.
OpenRecordset("Table1") rs. MoveLast Text1. Text = rs! code i = rs! code End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text2. SetFocus End If End Sub Total Stock Coding Dim db As Database Dim rs As Recordset Dim rs1 As Recordset Private Sub Combo1_Click() Set rs1 = db. OpenRecordset("select * from Table1 ") Text1. Text = "" rs1. MoveFirst While Not rs1. EOF If Combo1. Text = rs1! itemname Then Text1. Text = Val(rs1! quantity) + Val(Text1. Text) End If rs1. MoveNext Wend End Sub Private Sub Command1_Click() Unload Me End Sub Private Sub Form_Load() Set db = OpenDatabase(App. Path + "save. mdb") Set rs = db.
OpenRecordset("Select distinct itemname from Table1 ") rs. MoveFirst While Not rs. EOF Combo1. AddItem rs! itemname rs. MoveNext Wend End Sub Purchase Product Coding Dim style As VbMsgBoxStyle Dim result As VbMsgBoxResult Dim db As Database Dim rs As Recordset Dim db1 As Database Dim db4 As Database Dim db2 As Database Dim rs2 As Recordset Dim rs1 As Recordset Dim rs3 As Recordset Dim rs4 As Recordset Dim rs6 As Recordset Private Sub Combo1_Click() Set rs3 = db1. OpenRecordset("Table1") rs3. MoveFirst While Not rs3. EOF If Combo1. Text = rs3! dealer Then Combo2. AddItem rs3! product 'Combo3. AddItem rs3! price 'Combo4. AddItem rs3!
Weight End If rs3. MoveNext Wend End Sub Private Sub Combo2_Click() Set rs3 = db1. OpenRecordset("Table1") rs3. MoveFirst While Not rs3. EOF If Combo2. Text = rs3! product Then Combo3. AddItem rs3! price Combo4. AddItem rs3! Weight End If rs3. MoveNext Wend End Sub Private Sub Command1_Click() On Error Resume Next rs. AddNew rs! dealername = Combo1. Text rs! itemname = Combo2. Text rs! price = Combo3. Text rs! quantity = Text3. Text rs! amount = Text2. Text rs! date1 = Text1. Text rs! time1 = Text4. Text rs! Weight = Combo4. Text rs. Update result = MsgBox("Saved Successfully. ", style, "Supermarket Billing 1. 0") Unload Me Load Form7 Form7.
Show Form7. Move 0, 0 End Sub Private Sub Command2_Click() Unload Me Load Form7 Form7. Show Form7. Move 0, 0 End Sub Private Sub Command3_Click() Unload Me End Sub Private Sub Command5_Click() End Sub Private Sub Command6_Click() rs. Delete End Sub Private Sub Form_Load() Command1. Enabled = False Text1. Text = Date Set db1 = OpenDatabase(App. Path + "deal1. mdb") Set rs1 = db1. OpenRecordset("Table1") Set rs2 = db1. OpenRecordset("Select distinct dealer from Table1 ") Set rs4 = db1. OpenRecordset("Table1") 'Set db4 =apppath+ OpenDatabase("c:employee ransaction. mdb") 'opens record from transaction database Set db2 = OpenDatabase(App.
Path + "save. mdb") Set rs = db2. OpenRecordset("Table1") 'saves the purchased data to updated data rs2. MoveFirst While Not rs2. EOF Combo1. AddItem rs2! dealer rs2. MoveNext Wend End Sub Private Sub Text1_Change() End Sub Private Sub Text2_Change() Command1. Enabled = True End Sub Private Sub Text3_Change() Text2. Text = Val(Combo3. Text) * Val(Text3. Text) End Sub Private Sub Timer1_Timer() Text4. Text = Time End Sub Add New Product Coding Dim db1 As Database Dim rs1 As Recordset Dim rs2 As Recordset Dim i As Integer Private Sub Command1_Click() rs1! code = Text1. Text rs1! dealer = Combo1. Text rs1! product = Text5.
Text rs1! price = Text6. Text rs1! Weight = Text2. Text rs1. Update Command1. Enabled = False Command3. Enabled = True Text1. Text = "" Text5. Text = "" Text6. Text = "" Text2. Text = "" Combo1. Clear End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Command3_Click() i=i+1 Text1. Text = i rs1. AddNew Text1. Enabled = False Combo1. Enabled = True Text5. Enabled = True Text6. Enabled = True Text2. Enabled = True Command1. Enabled = True End Sub Private Sub Form_Load() Command3. Enabled = True Command1. Enabled = False Text1. Enabled = False 'saving the current records Set db1 = OpenDatabase(App. Path + "deal1. db") Set rs1 = db1. OpenRecordset("Table1") 'calling the dealer name field from other database Set db = OpenDatabase(App. Path + "deal. mdb") Set rs2 = db. OpenRecordset("Select name from Table1") rs2. MoveFirst While Not rs2. EOF Combo1. AddItem rs2! Name rs2. MoveNext Wend rs1. MoveLast Text1. Text = rs1! code i = rs1! code End Sub Add a Dealer Coding Dim db1 As Database Dim rs1 As Recordset Dim rs2 As Recordset Dim i As Integer Private Sub Command1_Click() rs1! code = Text1. Text rs1! dealer = Combo1. Text rs1! product = Text5. Text rs1! price = Text6. Text rs1! Weight = Text2. Text rs1. Update Command1. Enabled = False Command3.
Enabled = True Text1. Text = "" Text5. Text = "" Text6. Text = "" Text2. Text = "" Combo1. Clear End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Command3_Click() i=i+1 Text1. Text = i rs1. AddNew Text1. Enabled = False Combo1. Enabled = True Text5. Enabled = True Text6. Enabled = True Text2. Enabled = True Command1. Enabled = True End Sub View Sold Stock Coding Dim db As Database Dim db1 As Database Dim db2 As Database Dim rs As Recordset Dim rs1 As Recordset Dim rs2 As Recordset Dim rs3 As Recordset Dim rs4 As Recordset Dim style As VbMsgBoxStyle Dim result As VbMsgBoxResult Private Sub Combo1_Click() Set rs1 = db.
OpenRecordset("Select * from Table1 ") Text2. Text = "" rs1. MoveFirst While Not rs1. EOF If Combo1. Text = rs1! product Then Text2. Text = Val(rs1! quantity) + Val(Text2. Text) End If rs1. MoveNext Wend Set rs2 = db1. OpenRecordset("Table1") Set rs2 = db1. OpenRecordset("Select * from Table1 ") Text1. Text = "" rs2. MoveFirst While Not rs2. EOF If Combo1. Text = rs2! itemname Then Text1. Text = Val(rs2! quantity) + Val(Text1. Text) End If rs2. MoveNext Wend Text3. Text = Val(Text1. Text) - Val(Text2. Text) If Val(Text3. Text)