LỜI NÓI ĐẦU2PHẦN 1: GIỚI THIỆU VỀ ĐỀ TÀI, NHỮNG ỨNG DỤNG TRONG THỰC TẾ CỦA ĐỀ TÀI, HƯỚNG PHÁT TRIỂN,...21.1KHẢO SÁT HIỆN TRẠNG THỰC TẾ21.2Ý nghĩa ứng dụng21.3Chức năng phần mềm ứng dụng21.4QUẢN LÝ BÁN HÀNG21.5THIẾT KẾ CƠ SỞ DỮ LIỆU2PHẦN 2: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG22.1CÁC FORM CHÍNH CỦA CHƯƠNG TRÌNH22.1.1FORM ĐĂNG NHẬP22.1.2FORM ĐỔI MẬT KHẨU22.1.3FORM MAIN22.1.4FORM MẶT HÀNG22.1.5.FORM HÓA ĐƠN TÍNH TIỀN2 2.1.6 FORM DANH MỤC HÓA ĐƠN22.1.7 FORM DANH MỤC MẶT HÀNG22.1.8 FORM DANH MỤC CHI TIẾT HÓA ĐƠN22.1.9 FORM THỐNG KẾ HÓA ĐƠN THEO NGÀY22.1.10 FORM THỐNG KÊ MẶT HÀNG BÁN CHẠY THEO NGÀY22.2 MỘT SỐ ĐOẠN CODE CHÍNH CỦA CHƯƠNG TRÌNH22.2.1 APP CONFIG22.2.1 CODE ĐĂNG NHẬP22.2.3 CODE THỐNG KÊ MẶT HÀNG BÁN CHẠY THEO NGÀY2PHẦN 3: TỔNG KẾT23.1. Ưu điểm:2Quản lý được yêu cầu gọi món của khách hàng2Thanh toán hóa đơn nhanh chóng2Quản lý được việc xuất nhập kho2Báo cáo doanh thu theo ngày, tháng23.2. Khuyết điểm:2Hệ cơ sở dữ liệu chưa triệt để2Chưa thực hiện được lập phiếu xuất nhập kho2Chưa phân quyền người dùng23.3.Hướng phát triển:2
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 2
PHẦN 1: GIỚI THIỆU VỀ ĐỀ TÀI, NHỮNG ỨNG DỤNG TRONG THỰC TẾ CỦA ĐỀ TÀI, HƯỚNG PHÁT TRIỂN, 2
1.1 KHẢO SÁT HIỆN TRẠNG THỰC TẾ 2
1.2 Ý nghĩa ứng dụng 2
1.3 Chức năng phần mềm ứng dụng 2
1.4 QUẢN LÝ BÁN HÀNG 2
1.5 THIẾT KẾ CƠ SỞ DỮ LIỆU 2
PHẦN 2: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 2
2.1 CÁC FORM CHÍNH CỦA CHƯƠNG TRÌNH 2
2.1.1 FORM ĐĂNG NHẬP 2
2.1.2 FORM ĐỔI MẬT KHẨU 2
2.1.3 FORM MAIN 2
2.1.4 FORM MẶT HÀNG 2
2.1.5 FORM HÓA ĐƠN TÍNH TIỀN 2
2.1.6 FORM DANH MỤC HÓA ĐƠN 2
2.1.7 FORM DANH MỤC MẶT HÀNG 2
2.1.8 FORM DANH MỤC CHI TIẾT HÓA ĐƠN 2
2.1.9 FORM THỐNG KẾ HÓA ĐƠN THEO NGÀY 2
2.1.10 FORM THỐNG KÊ MẶT HÀNG BÁN CHẠY THEO NGÀY 2
2.2 MỘT SỐ ĐOẠN CODE CHÍNH CỦA CHƯƠNG TRÌNH 2
2.2.1 APP CONFIG 2
2.2.1 CODE ĐĂNG NHẬP 2
2.2.3 CODE THỐNG KÊ MẶT HÀNG BÁN CHẠY THEO NGÀY 2
PHẦN 3: TỔNG KẾT 2
3.1 Ưu điểm: 2
Quản lý được yêu cầu gọi món của khách hàng 2
Thanh toán hóa đơn nhanh chóng 2
Quản lý được việc xuất nhập kho 2
Báo cáo doanh thu theo ngày, tháng 2
3.2 Khuyết điểm: 2
Hệ cơ sở dữ liệu chưa triệt để 2
Trang 2Chưa thực hiện được lập phiếu xuất nhập kho 2
Chưa phân quyền người dùng 2
3.3.Hướng phát triển: 2
Trang 3LỜI NÓI ĐẦU
Trong xu thế phát triển hiện nay trên thế giới khoa học và công nghệ luôn có
những thay đổi mạnh mẽ Một phần trong đó là việc ứng dụng Công Nghệ Thông Tin vào
đời sống hàng ngày của con người Loài người chúng ta đang hướng tới thiết lập một
hành tinh thông minh Ngày nay với sự phát triển mạnh mẽ của CNTT kết hợp với sự
phát triển của mạng Internet đã kết nối được toàn thế giới lại với nhau thành một thể
thống nhất Nó đã trở thành công cụ đắc lực cho nhiều ngành nghề : giao thông, quân sự,
y học, truyền thông…và đặc biệt là trong công tác quản lý nói chung và quản lý quán
Cafe nói riêng.
Trước đây khi máy tính chưa được ứng dụng rộng rãi các công việc quản lý đều
được thực hiện một cách thủ công nên rất tốn thời gian, nhân lực cũng như tài chính.
Ngày nay với sự phát triển mạnh mẽ của công nghệ thông tin đã giúp cho việc quản lý
được thực hiện một cách dễ dàng hơn, giảm chi phí, thời gian…
Qua quá trình khảo sát một vài quán cafe, nhóm chúng em đã xây dựng lên đề tài
quản lý quán Cafe với mong muốn giúp cho việc quản lý được thực hiện một cách dễ
dàng hơn, thuận tiện và giảm thiểu được các sai xót.
Nhờ sự quan tâm, hướng dẫn của Thầy Nguyễn Hà Giang , chúng em đã từng
bước nghiên cứu và vận dụng các kiến thức đã được học để tìm hiểu, phân tích và xây
dựng được chương trình quản lý đáp ứng tương đối một số các yêu cầu đặt ra Tuy nhiên,
do kiến thức còn hạn chế nên chương trình vẫn không tránh khỏi những thiếu sót Vì vậy
chúng em rất mong nhận được sự đóng góp ý kiến của tất cả các thầy cô và các bạn để có
thể từng bước xây dựng chương trình ngày càng hoàn thiện và hiệu quả hơn.
Em xin chân thành cảm ơn Thầy đã giúp chúng em.
Trang 4PHẦN 1: GIỚI THIỆU VỀ ĐỀ TÀI, NHỮNG ỨNG DỤNG
TRONG THỰC TẾ CỦA ĐỀ TÀI, HƯỚNG PHÁT
TRIỂN,
Tại các cửa hàng cafe hiện nay với lượng khách càng ngày càng tăng, để phục vụ khách được tốt hơn, chính xác hơn và nhanh chóng hơn thì chủ cửa hàng muốn từng bước tin học hoá
các khâu quản lí Đặc biệt là trong công tác kế toán và quản lí hàng hoá Bởi vì với công tác thủ
công mà cửa hàng đang thực hiện đã bộc lộ nhiều hạn chế như sau:
+ Tra cứu thông tin về hàng hoá, các đại lý cung cấp hàng và khách hàng mất nhiều thời
gian và nhiều khi không chính xác.
+ Lưu trữ thông tin về nhập xuất hàng hoá, về thu chi cần nhiều loại giấy tờ nên cồng
kềnh và không đạt hiệu quả.
+ Cập nhật các thông tin hằng ngày tốn nhiều thời gian và khó khăn trong việc thực hiện
báo cáo thống kê, nhất là khi có sự việc đột xuất.
Trước tình hình đó vấn đề đặt ra là xây dựng một hệ thống thông tin đáp ứng được các yêu cầu cơ bản sau:
+ Giảm khối lượng ghi chép nhằm lưu trữ thông tin.
+ Cập nhật dữ liệu nhanh chóng, chính xác và kịp thời.
+ Thống kê được số lượng hàng hoá nhập xuất, thu chi và tình hình doanh thu của cửa
hàng.
+ Tự động in các hoá đơn, in ra thống kê
+ Có khả năng lưu trữ thông tin lâu dài, đảm bảo truy vấn nhanh khi cần thiết.
1.2 Ý NGHĨA ỨNG DỤNG
+ Theo dõi quá trình kinh doanh, hoạt động của quán một cách tổng quan, chi tiết…
+ Nắm bắt mọi hoạt động của quán thông qua những báo cáo thống kế trung thực cuối
ngày, tuần, tháng Giảm thiểu thời gian, chi phí tiền bạc vì không phải thuê quá nhiều nhân công
cho việc quản lý
+ Lợi nhuận rất cao khi sư chuyên nghiệp được đặt lên hàng đầu.
1.3 C HỨC NĂNG PHẦN MỀM ỨNG DỤNG
+Phiên bản phần mềm quản lý quán cafe có những tính năng đặc thù chuyên biệt quản lý
quán cafe một cách tốt nhất, hiệu quả và tiện lợi
+ Đây là một giải pháp kinh doanh hiệu quả, giúp cho bạn tiết kiệm được tối đa chi phí,
Trang 51.4 QUẢN LÝ BÁN HÀNG
- ACCOUNT
- HOADONMAU
- MATHANG
- CTHD
- HOADON
1.5 THIẾT KẾ CƠ SỞ DỮ LIỆU
ACCOUNT
Trang 6PASSWORD Varchar(50) Mật khẩu
HOADONMAU
HOADON
MATHANG
CTHD
Trang 7PHẦN 2: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG
2.1 CÁC FORM CHÍNH CỦA CHƯƠNG TRÌNH
2.1.1 FORM ĐĂNG NHẬP
2.1.2 FORM ĐỔI MẬT KHẨU
Trang 82.1.3 FORM MAIN
2.1.4 FORM MẶT HÀNG
Trang 92.1.5 FORM HÓA ĐƠN TÍNH TIỀN
2.1.6 FORM DANH MỤC HÓA ĐƠN
2.1.7 FORM DANH MỤC MẶT HÀNG
Trang 102.1.8 FORM DANH MỤC CHI TIẾT HÓA ĐƠN
2.1.9 FORM THỐNG KẾ HÓA ĐƠN THEO NGÀY
Trang 112.1.10 FORM THỐNG KÊ MẶT HÀNG BÁN CHẠY THEO NGÀY
2.2 MỘT SỐ ĐOẠN CODE CHÍNH CỦA CHƯƠNG TRÌNH
2.2.1 APP CONFIG
2.2.1 CODE ĐĂNG NHẬP
public partial class Frm_Danhnhap : Form
{
string sqlConnectString = "Data Source=.\\sqlexpress;Initial
Catalog=QL_CAFE_VANPHONG;Integrated Security=True" ;
SqlConnection sqlCon;
public Frm_Danhnhap()
{
InitializeComponent();
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="ChuoiKetNoi"
connectionString="Data Source=DATLAM-PC\SQLEXPRESS;Initial
Catalog=QL_CAFE_VANPHONG;Integrated Security=True"
Trang 12}
private void btndangnhap_Click( object sender, EventArgs e)
{
try
{
sqlCon = new SqlConnection (sqlConnectString);
sqlCon.Open();
SqlDataAdapter da = new SqlDataAdapter ( "Select * from ACCOUNT where username ='"
+ txttennguoidung.Text + "'" , sqlCon);
DataSet ds = new DataSet ();
da.Fill(ds);
if (txtmatkhau.Text == ds.Tables[0].Rows[0][ "PASSWORD" ].ToString())
{
MessageBox Show( "Bạn đã đăng nhập thành công!" );
Frm_Main main = new Frm_Main ();
main.Show();
this Hide();
}
else
{
MessageBox Show( "Bạn nhập sai password" , "Thông báo" , MessageBoxButtons OK,
MessageBoxIcon Exclamation);
this txtmatkhau.Focus();
this txtmatkhau.SelectAll();
}
}
catch
{
MessageBox Show( "Bạn nhập sai username" , "Thông báo" , MessageBoxButtons OK,
MessageBoxIcon Exclamation);
this txttennguoidung.Focus();
this txttennguoidung.SelectAll();
this txtmatkhau.ResetText();
}
finally
{
sqlCon.Close();
}
}
private void btnthoat_Click( object sender, EventArgs e)
{
DialogResult traloi;
traloi = MessageBox Show( "ChăUc không?" , "TraV lời" , MessageBoxButtons OKCancel,
MessageBoxIcon Question);
if (traloi == DialogResult OK)
Application Exit();
}
private void chkHienthimk_CheckedChanged( object sender, EventArgs e)
{
if (chkHienthimk.Checked == false )
{
txtmatkhau.PasswordChar = '*' ; //gán kí tự pass thành '*'
}
else
{
txtmatkhau.PasswordChar = ( char )0; //reset hiểVn thị pass vể\ mặc định
}
}
Trang 13{
InitializeComponent();
}
// Khai báo biểUn kiểVm tra việc Thểm hay SửVa dữ liệu
bool Them;
private void btnthem_Click( object sender, EventArgs e)
{
this txtmamh.Enabled = true ;
this txttenmh.Enabled = true ;
this txtsoluong.Enabled = true ;
this txtghichu.Enabled = true ;
this txtdonvitinh.Enabled = true ;
this txtdongia.Enabled = true ;
// Kich hoạt biểUn Them
Them = true ;
// Thứ tự dòng hiện hành
int r = dgvdanhsachmathang.CurrentCell.RowIndex;
// ChuyểVn thông tin lển groupbox
this txtmamh.Text = dgvdanhsachmathang.Rows[r].Cells[0].Value.ToString();
this txttenmh.Text = dgvdanhsachmathang.Rows[r].Cells[1].Value.ToString();
this txtghichu.Text = dgvdanhsachmathang.Rows[r].Cells[2].Value.ToString();
this txtdonvitinh.Text = dgvdanhsachmathang.Rows[r].Cells[3].Value.ToString();
this txtsoluong.Text = dgvdanhsachmathang.Rows[r].Cells[4].Value.ToString();
this txtdongia.Text = dgvdanhsachmathang.Rows[r].Cells[5].Value.ToString();
this txtsoluong.Focus();
this txtsoluong.SelectAll();
this txtsoluong.Text = Convert ToString(0);
this lblsl.Enabled = true ;
this lblsl.Text = ( "sôU lửợng còn lại:"
+dgvdanhsachmathang.Rows[r].Cells[4].Value.ToString());
this txtmahd.Enabled = false ;
this dateTimePicker1.Enabled = false ;
this txtphuthu.Enabled = false ;
this txtthanhtien.Enabled = false ;
this txttongtien.ResetText();
this txttongtien.Enabled = false ;
this btnthanhtoan.Enabled = true ;
//cho thao tác trển các nút lửu/thoát
this btnLuu.Enabled = true ;
this btnthoat.Enabled = true ;
//không cho thao tác trển các nút xóa/sửVa/thểm
this btnxoa.Enabled = false ;
this btnsua.Enabled = false ;
this btnthem.Enabled = false ;
}
private void btnsua_Click( object sender, EventArgs e)
{
// Kích hoạt biểUn SửVa
Them = false ;
// Thứ tự dòng hiện hành
int r = dgvhoadontinhtien.CurrentCell.RowIndex;
this txtsoluong.Enabled = true ;
this txtsoluong.Text = dgvhoadontinhtien.Rows[r].Cells[3].Value.ToString();
this txtdongia.Text = dgvhoadontinhtien.Rows[r].Cells[4].Value.ToString();
this txtsoluong.Focus();
this txtsoluong.SelectAll();
this lblsl.Text = ( "sôU lửợng còn lại:" +
dgvdanhsachmathang.Rows[r].Cells[4].Value.ToString());
this txtmahd.Enabled = false ;
this dateTimePicker1.Enabled = false ;
this txtmamh.Enabled = false ;
this txttenmh.Enabled = false ;
this txtdongia.Enabled = false ;
this txtdonvitinh.Enabled = false ;
this txtghichu.Enabled = false ;
this txtphuthu.Enabled = false ;
this txtthanhtien.Enabled = false ;
this txttongtien.Enabled = false ;
this btnthanhtoan.Enabled = true ;
//cho thao tác trển các nút lửu/thoát
this btnLuu.Enabled = true ;
this btnthoat.Enabled = true ;
Trang 14//không cho thao tác trển các nút xóa/sửVa/thểm
this btnxoa.Enabled = false ;
this btnsua.Enabled = false ;
this btnthem.Enabled = false ;
}
private void btnxoa_Click( object sender, EventArgs e)
{
try
{
if ( MessageBox Show( "Bạn có muôUn xóa hay không?" , "Thông báo" ,
MessageBoxButtons YesNo, MessageBoxIcon Question) == DialogResult Yes)
{
//MởV kểUt nôUi
SqlConnection conn = new SqlConnection (connectionString);
conn.Open();
// Thứ tự dòng hiện hành
int r = dgvhoadontinhtien.CurrentCell.RowIndex;
// Mamathang hiện hành
string strmamathang = dgvhoadontinhtien.Rows[r].Cells[1].Value.ToString();
string strxoa = "delete from hoadonmau where mamh='" + strmamathang + "'" ;
SqlCommand cmd = new SqlCommand (strxoa, conn);
cmd.ExecuteNonQuery();
// Cập nhật lại DataGridView
LoadHoadonmau();
// Thông báo
MessageBox Show( "Đã xóa xong!" );
}
}
catch ( SqlException ex)
{
MessageBox Show(ex.Message);
}
finally
{
//Đóng kểUt nôUi
conn.Close();
}
this txtmahd.Enabled = false ;
this dateTimePicker1.Enabled = false ;
this txtphuthu.Enabled = false ;
this txtthanhtien.Enabled = false ;
this txttongtien.Enabled = false ;
this btnthanhtoan.Enabled = true ;
}
private void btnLuu_Click( object sender, EventArgs e)
{
//MởV kểUt nôUi
SqlConnection conn = new SqlConnection (connectionString);
conn.Open();
int thanhtien;
int sl = Convert ToInt32(txtsoluong.Text);
int dongia = Convert ToInt32(txtdongia.Text);
if (rdbbanngay.Checked == false && rdbbandem.Checked == false )
MessageBox Show( "chửa chọn phụ thu!" );
else
{
thanhtien = sl*dongia;
Trang 15string strthem = "Insert Into hoadonmau Values(" + "'" +
this txtmahd.Text.ToString() + "','" + this txtmamh.Text.ToString() + "',N'" +
this txttenmh.Text.ToString() + "','" +
this txtsoluong.Text.ToString() + "','" +
this txtdongia.Text.ToString() + "','" +
this txtphuthu.Text.ToString() + "','" +
this txtthanhtien.Text.ToString() + "')" ;
SqlCommand cmd = new SqlCommand (strthem, conn);
cmd.ExecuteNonQuery();
// Load lại dữ liệu trển DataGridView
LoadHoadonmau();
// Thông báo
MessageBox Show( "Đã thểm xong!" );
}
catch ( SqlException ex)
{
MessageBox Show(ex.Message);
}
try
{
// Thứ tự dòng hiện hành
int s = dgvdanhsachmathang.CurrentCell.RowIndex;
// Mamathang hiện hành
string strmamathang =
dgvdanhsachmathang.Rows[s].Cells[0].Value.ToString();
int strsl =
Convert ToInt32(dgvdanhsachmathang.Rows[s].Cells[4].Value.ToString()) -
Convert ToInt32(txtsoluong.Text);
string strupdate = "Update mathang Set tenmh=N'" +
this txttenmh.Text.ToString() + "',ghichu=N'" + this txtghichu.Text +
"',dvt=N'" + this txtdonvitinh.Text + "',soluong='" + strsl + "',dongia='" + this txtdongia.Text
+ "' Where mamh='" + strmamathang + "'" ;
// Cập nhật
SqlCommand cmdmh = new SqlCommand (strupdate, conn);
cmdmh.ExecuteNonQuery();
LoadMathang();
}
catch ( Exception ex)
{
MessageBox Show(ex.Message);
}
lblsl.ResetText();
this btnthanhtoan.Enabled = true ;
}
}
if (!Them)
{
try
{
// Thứ tự dòng hiện hành
int hd = dgvhoadontinhtien.CurrentCell.RowIndex;
int mh = dgvdanhsachmathang.CurrentCell.RowIndex;
// Mamathang hiện hành
string strmamh = dgvdanhsachmathang.Rows[mh].Cells[0].Value.ToString();
int a;
int b;
if ( Convert ToInt32(dgvhoadontinhtien.Rows[hd].Cells[3].Value.ToString()) -
Convert ToInt32(txtsoluong.Text) > 0)
{
a = Convert ToInt32(dgvhoadontinhtien.Rows[hd].Cells[3].Value.ToString())
- Convert ToInt32(txtsoluong.Text);
b =
Convert ToInt32(dgvdanhsachmathang.Rows[mh].Cells[4].Value.ToString()) + a;
}
else
{
a = Convert ToInt32(txtsoluong.Text) -
Convert ToInt32(dgvhoadontinhtien.Rows[hd].Cells[3].Value.ToString());