Professional Documents
Culture Documents
A PROJECT REPORT
Submitted by
CHINNAKARRUPUSAMY G (22500226)
AJISH U (22500221)
AKSHATHA K (22500222)
A PROJECT REPORT
Submitted by
CHINNAKARRUPUSAMY G (22500226)
AJISH U (22500221)
AKSHATHA K (22500222)
The viva-voice examination of this project work has been done as a part of
ACKNOWLEDGEMENT i
ABSTRACT ii
LIST OF ABBREVIATIONS iv
1 INTRODUCTION 1
2 EXISTING SYSTEM 3
3 PROBLEM STATEMENT 5
4 PROPOSED SYSTEM 7
5 SYSTEM SPECIFICATION 11
6 MODULE DESCRIPTION 13
6.1 Admin 14
7 SYSTEM IMPLEMENTATION 15
7.1 C# 16
7.2 SQL SEVER MANAGEMENT STUDIO 17
8 SYSTEM TESTING 18
9 RESULT 21
11 REFERENCES 25
12 APPENDICES 29
LIST OF FIGURES
FIG.NO. TITLE PAGE.NO
11.2.1 Login 26
11.2.2 Add Product 26
11.2.3 New Bill 27
11.2.4 Update Bill 27
11.2.5 ViewBill 28
INTRODUCTION
CHAPTER-1
INTRODUCTION
EXISTING SYSTEM
The present billing system typically involves the use of electronic cash
registers or point-of-sale (POS) systems to handle transactions and generate
customer receipts. These systems streamline the checkout process by
automatically calculating the total cost of items, applying discounts, and
providing a detailed receipt for the customer's reference. The present billing
system typically involves the use of electronic cash registers or point-of-sale
(POS) systems to handle transactions and generate customer receipts. These
systems streamline the checkout process by automatically calculating the total
cost of items, applying discounts, and providing a detailed receipt for the
customer's reference.
CHAPTER-3
PROBLEM STATEMENT
In today's dynamic business landscape, managing billing processes
efficiently is crucial for the success and sustainability of any organization.
However, many businesses, especially small and medium-sized enterprises
(SMEs), continue to grapple with manual, time-consuming billing methods that are
prone to errors and inefficiencies. From generating invoices to tracking payments
and managing financial records, the traditional approach to billing is often
complex, labor-intensive, and susceptible to human error.
Additionally, with the rise of remote work and global business transactions,
there is a growing demand for billing solutions that offer flexibility, accessibility,
and security. Businesses need a reliable billing software that can streamline
invoicing processes, facilitate seamless payment collection, provide real-time
insights into financial performance, and ensure compliance with taxation and
accounting standards.
CHAPTER-4
PROPOSED SYSTEM
The proposed billing software system represents a significant advancement
over existing methodologies, offering a comprehensive and streamlined solution
to address the shortcomings of traditional billing processes. This proposed system
incorporates state-of-the-art features and functionalities to enhance efficiency,
reduce errors, and provide a more adaptable solution for businesses of varying
sizes and industries.
The software will offer a user-friendly interface for store employees to
efficiently search and register products, calculate prices, apply discounts, and
generate itemized bills and has Intelligent basket which provides suggestions for
customers to meet their expectations.
The proposed billing software system aims to revolutionize how
businesses handle their financial transactions. It offers a user-friendly interface,
reduces manual intervention, and enhances overall financial efficiency,
positioning itself as a comprehensive solution for the modern business landscape.
Check
Permissio
n
Exit
CHAPTER-5
SYSTEM SPECIFICATION
5.1HARDWARE SPECIFICATION:
PROCESSOR : Intel i3 Processor 2.5GHZ
HARD DISK CAPACITY : 400 GB
MONITOR : 15 “SAMTRON MONITOR
INTERNAL MEMORY CA : 4 GB
KEYBOARD : LOGITECH OF 104 KEYS
CPU CLOCK : 1.08 GHz
MOUSE : LOGITECH MOUSE
6.1 Admin:
This module allows the shop owner to update product list, update price list,
etc,.
Here each program is tested individually so any error apply unit is debugged.
The sample data are given for the unit testing. The unit test results are recorded for
further references. During unit testing the functions of the program unit validation
and the limitations are tested.
Unit testing is testing changes made in a existing or new program this test is
carried out during the programming and each module is found to be working
satisfactorily. For example in the registration form after entering all the fields we
click the submit button. When submit button is clicked, all the data in form are
validated. Only after validation entries will be added to the database.
Unit testing comprises the set of tests performed by an individual prior to
integration of the unit into large system. The situation is illustrated in as follows
Coding-> Debugging ->Unit testing -> Integration testing
The four categories of test that a programmer will typically perform on a
program unit
1.Functional test
2.Performance test
3.Stress Test
4.Structure test
Functional test involve exercising the code with nominal input values for
which the expected results are known as well as boundary values and special
values.
Performance testing determines the amount of execution time spent in various
parts of unit program through put and response time and device utilization by the
program.
A variation of stress testing called sensitivity testing in same situations a very
small range of data contained in a bound of valid data may cause extreme and even
erroneous processing or profound performance degradation.
Structured testing is concerned with a exercising the internal logic of a
program and traversing paths. Functional testing, stress testing performance testing
are referred as “black box” testing and structure testing is referred as “white box”
testing
8.2 Integration Testing:
Integrated testing is a systematic technique for constructing tests to uncover
errors associated with interface.
Objective is to take unit tested modules and build a program structure that
has been dictated by design.
8.3 Validation Testing:
Software validation is achieved through a series of test that demonstrates the
conformity and requirements. Thus the proposed system under consideration has to
be tested by validation and found to be working satisfactorily. For example in
customer enters phone number field should contain number otherwise it produces
an error message similarly in all the forms the fields are validated.
8.4 System Testing:
In the system testing the whole system is tested for interface
between each module and program units are tested and recorded. This
testing is done with sample data. The securities, communication between
interfaces are tested
System testing is actually a series of different tests whose primary
purpose is to fully exercise the computerbased system although each
test has a different purpose all work to verify that all system
elements properly integrated and perform allocate function.
RESULT
CHAPTER-9
RESULTS
Figure 9.1
Figure 9.2
Figure 9.3
Figure 9.4
Figure 9.5
CONCLUSION
CHAPTER-10
CONCLUSION AND FUTURE WORK
10.1 CONCLUSION
In conclusion, the billing software project represents a crucial tool for
businesses to efficiently manage their invoicing, billing, and financial processes.
Through the systematic development and rigorous testing of the software, we
have created a reliable and user-friendly solution that meets the specific needs of
our clients. Furthermore, we recognize the importance of ongoing support,
maintenance, and continuous improvement of the billing software. By fostering a
culture of responsiveness, agility, and innovation, we are committed to ensuring
the long-term success and satisfaction with the billing software. In essence, the
billing software project represents not only a technological solution but also a
strategic investment in optimizing business processes, improving financial
management, and driving organizational growth and success.
namespace Billing
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
namespace Billing
{
public partial class DashBoard : Form
{
public DashBoard()
{
InitializeComponent();
}
NewBill.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Billing
{
public partial class NewBill : Form
{
SqlConnection con = new SqlConnection(Properties.Settings.Default.BillingCon);
SqlCommand cmd;
SqlDataReader dr;
public NewBill()
{
InitializeComponent();
txtDeleUpdate.Visible = false;
foreach(DataRow dr in dt.Rows)
{
cmbProducts.Items.Add(dr["ProName"].ToString());
}
con.Close();
LoadBillNo();
dataGridView1.Columns[5].Visible = false;
dataGridView1.Columns[6].Visible = false;
}
public void LoadBillNo()
{
//load bill no from database
int a;
string constr = (Properties.Settings.Default.BillingCon);
con = new SqlConnection(constr);
con.Open();
string query = "Select Max(BillNo) from TblHeaderData";
cmd = new SqlCommand(query, con);
dr = cmd.ExecuteReader();
if (dr.Read())
{
string val = dr[0].ToString();
if (val == "")
{
txtBillNo.Text = "1";
}
else
{
a=Convert.ToInt32(dr[0].ToString());
a=a+1;
txtBillNo.Text=a.ToString();
}
con.Close();
}
}
dataGridView1.Refresh();
cmbProducts.Focus();
if (dataGridView1.Rows.Count > 0)
{
dataGridView1.CurrentCell =
dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1];
}
}
else
{
}
cleartextbox();
gridTotal();
}
}
int i;
private void dataGridView1_CellDoubleClick(object sender,
DataGridViewCellEventArgs e)
{
i = e.RowIndex;
DataGridViewRow row = dataGridView1.Rows[i];
cmbProducts.Text = row.Cells[1].Value.ToString();
txtPrice.Text = row.Cells[2].Value.ToString();
txtQty.Text = row.Cells[3].Value.ToString();
txtAmount.Text = row.Cells[4].Value.ToString();
txtDeleUpdate.Text = row.Cells[0].Value.ToString();
btnAdd.Text = "Update";
gridTotal();
cleartextbox();
}
MessageBox.Show("Bill Saved");
con.Close();
LoadBillNo();
cleartextbox();
txtBillTotal.Text = "";
txtDisAmount.Text = "";
txtPay.Text = "";
cmbProducts.Select();
}
}
}
}
}
Product.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Billing
{
public partial class Products : Form
{
SqlConnection con = new SqlConnection(Properties.Settings.Default.BillingCon);
SqlCommand cmd;
SqlDataAdapter da;
DataTable dt;
public Products()
{
InitializeComponent();
}
int i;
private void dataGridView1_CellDoubleClick(object sender,
DataGridViewCellEventArgs e)
{
i = e.RowIndex;
DataGridViewRow row = dataGridView1.Rows[i];
txtProID.Text = row.Cells[0].Value.ToString();
txtProName.Text = row.Cells[1].Value.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void cleartext()
{
txtProID.Text = "";
txtProName.Text = "";
}
if (txtProID.Text == "")
{
MessageBox.Show("select product to delete");
}
else
{
try
{
con.Open();
cmd = new SqlCommand("Delete From Tblproducts where ProID = '" +
txtProID.Text + "' ", con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("Product Info Deleted...");
fillgrid();
cleartext();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
UpdateBill.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Billing
{
public partial class UpdateBill : Form
{
SqlConnection con = new SqlConnection(Properties.Settings.Default.BillingCon);
SqlCommand cmd;
SqlDataAdapter da;
DataTable dt;
public UpdateBill()
{
InitializeComponent();
}
cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * from TblRowData where BillNo like ('"
+txtBillNo.Text+ "%' )";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[5].Visible = false;
dataGridView1.Columns[6].Visible = false;
// fill products name form product table to products combobox
cmbProducts.Select();
int i;
private void LoadSerialNo()
{
int i = 1;
foreach(DataGridViewRow row in dataGridView1.Rows)
{
row.Cells[0].Value = i; i++;
}
}
private void dataGridView1_RowsAdded(object sender,
DataGridViewRowsAddedEventArgs e)
{
LoadSerialNo();
}
LoadSerialNo();
}
clearText();
gridTotal();
}
}
else
{
DataGridViewRow row = dataGridView1.Rows[i];
row.Cells[1].Value = cmbProducts.Text;
row.Cells[2].Value = txtPrice.Text;
row.Cells[3].Value = txtQty.Text;
row.Cells[4].Value = txtAmount.Text;
row.Cells[5].Value = txtBillNo.Text;
}
clearText();
gridTotal();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
con.Open();
cmd = new SqlCommand("Update TblHeaderData set BillDate =
'"+dateTimePicker1.Value.ToString("MM/dd/yyyy")+"', BillAmount = '"+txtBillTotal.Text+"',
DisAmount ='"+txtDisAmount.Text+"', NetPay = '"+txtPay.Text+"' ",con);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("bill updated");
txtBillTotal.Text = "";
txtDisAmount.Text= "";
txtPay.Text = "";
dataGridView1.Rows.Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
// hide this window (after complete the print layout we will open print form)
this.Hide();
}
}
}
ViewBills.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Billing
{
public partial class ViewBills : Form
{
SqlConnection con = new SqlConnection(Properties.Settings.Default.BillingCon);
SqlCommand cmd;
SqlDataAdapter da;
DataTable dt;
public ViewBills()
{
InitializeComponent();
}
cmd.ExecuteNonQuery();
cmd1.ExecuteNonQuery();
con.Close();
fillGrid();
totalBillSales();
}
else if (dialogResult == DialogResult.No)
{
}
}
}
// no.of bills
txtTotalBills.Text = dataGridView1.Rows.Count.ToString();
txtTotalSales.Text = sum.ToString();