Chúng em sẽ mô tả cách mà hệ thống giúpquản lý thông tin về nhân viên, khách hàng, sản phẩm, nhà cung cấp, hóa đơn và báo cáomột cách hiệu quả và nhất quán.. Thông qua việc theo dõi doan
Trang 1HỌC VIỆN NGÂN HÀNG
KHOA CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ
BÁO CÁO BÀI TẬP LỚNMÔN LẬP TRÌNH NET
ĐỀ TÀI: XÂY DỰNG HỆ THỐNG QUẢN LÝ CỬA HÀNG CAFE
Giảng viên hướng dẫn: Ths Lê Cẩm TúNhóm sinh viên thực hiện: Nhóm 1
Hà Nội – 4/2024
Trang 2HỌC VIỆN NGÂN HÀNG
KHOA CÔNG NGHỆ THÔNG TIN VÀ KINH TẾ SỐ
BÁO CÁO BÀI TẬP LỚNMÔN LẬP TRÌNH NET
ĐỀ TÀI: XÂY DỰNG HỆ THỐNG QUẢN LÝ CỬA HÀNG CAFE
Giảng viên hướng dẫn: Ts Lê Cẩm Tú
Sinh viên thực hiện: Hoàng Thị Phương Anh Nguyễn Thị Hồng Nguyễn Văn Quyền Nguyễn Đức Thế (NT)
Trang 31 24A4043238 Hoàng Thị PhươngAnh
- Thiết kế form Sản phẩm- Thiết kế form Công dụng- Thiết kế form Loại sản
- Thiết kế form Hóa đơn nhập
- Thiết kế form Tìm kiếm hóa đơn nhập
- Thiết kế form Báo cáo hóađơn nhập
- Tổng hợp nội dung
25%
Trang 4MINH CHỨNG CÔNG VIỆCGoogle meet:
Google docs:
Trang 6LỜI CẢM ƠN
Chân thành cảm ơn Ths Giảng viên hướng dẫn, cô Lê Cẩm Tú, vì sự đồng hành vàhỗ trợ quý báu trong quá trình thực hiện bài tập lớn này Cô không chỉ là người hướngdẫn nhiệt tình mà còn là nguồn động viên lớn đối với chúng em.
Từ những buổi giảng đầu tiên, cô Cẩm Tú đã chia sẻ rộng rãi kiến thức chuyên sâuvà tạo điều kiện cho chúng em tiếp cận nhanh chóng Cô luôn sẵn lòng lắng nghe và giảiđáp mọi thắc mắc của chúng em, giúp chúng em vượt qua những thách thức trong quátrình nghiên cứu và viết bài.
Mặc dù chúng em đã cố gắng hết sức để hoàn thành bài tập lớn, nhưng chắc chắnvẫn có những khía cạnh cần được cải thiện Chúng em rất mong nhận được sự chỉ bảo vàgóp ý chân thành từ cô để bài tập của chúng em trở nên hoàn thiện hơn và mang lại giá trịthực tế cao hơn Cảm ơn cô Tú vì tất cả những điều tốt đẹp mà cô đã mang lại cho chúngem Chúng em xin chân thành cảm ơn!
Hà Nội, ngày 22 tháng 4 năm 2024
Nhóm 1
Trang 7LỜI CAM ĐOAN
Chúng em xin cam đoan rằng, đây là thành quả của công trình nghiên cứu của Nhóm1 và đã được hướng dẫn khoa học bởi giảng viên Lê Cẩm Tú Nội dung nghiên cứu trongđề tài "Xây dựng hệ thống quản lý cửa hàng cafe" của chúng em là minh bạch và chưađược công bố dưới bất kỳ hình thức nào trước đây.
Chúng em cam kết tuân thủ nguyên tắc trung thực và trách nhiệm trong quá trìnhnghiên cứu Nếu có bất kỳ sự phát hiện nào về sự gian lận, chúng em hoàn toàn chịu tráchnhiệm và sẵn sàng giải quyết mọi vấn đề phát sinh Điều này nhấn mạnh cam kết củanhóm về sự trung thực và đạo đức nghiên cứu trong quá trình thực hiện dự án.
Hà Nội, tháng 4 năm 2024
Nhóm 1
Trang 83.Tính cấp thiết của đề tài 2
CHƯƠNG 1: MÔ TẢ NGHIỆP VỤ HỆ THỐNG 3
1.1 Mô tả bài toán 3
1.2 Mô tả nghiệp vụ hệ thống 4
1.2.1 Input của bài toán 4
1.2.2 Output của bài toán 4
1.3 Các chức năng của hệ thống 5
1.4 Thiết kế chức năng hệ thống 5
1.4.1 Chức năng Thêm dữ liệu 5
1.4.2 Chức năng Sửa dữ liệu 7
1.4.3 Chức năng Xóa dữ liệu 8
1.4.4 Chức năng Tìm kiếm dữ liệu 9
1.4.5 Chức năng Bỏ qua 9
1.4.6 Chức năng Đóng 10
1.4.7 Chức năng In dữ liệu 10
CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU MỨC KHÁI NIỆM 13
2.1 Thiết kế cơ sở dữ liệu 13
2.1.1 Thực thể 13
2.1.2 Mối quan hệ 14
Trang 92.2 Sơ đồ liên kết 15
CHƯƠNG 3 GIẢI QUYẾT VẤN ĐỀ 18
3.1 Xây dựng Form chính cho chương trình 18
3.1.1 Tạo giao diện Form chính 18
3.1.2 Viết mã lệnh cho Form chính 19
3.1.3 Tạo lớp – Class functions 21
3.2 Giao diện các Form con 21
3.2.1 Giao diện các form Danh mục 21
3.2.2 Giao diện các form Hóa đơn 24
3.2.3 Giao diện các form Tìm kiếm 25
3.2.4 Giao diện form Báo cáo 26
3.3 Form xử lý yêu cầu bài toán 28
3.3.1 Số lượng trong bảng Sản phẩm tự động cập nhật khi nhập hàng 28
3.3.2 Số lượng trong bảng Sản phẩm tự động cập nhật khi bán hàng 33
3.3.3 Giá nhập trong bảng Sản phẩm được tự động cập nhật khi nhập hàng, giá bán bằng 110% giá nhập 37
3.3.4 Các sản phẩm có thể tìm kiếm theo thông tin cần thiết 39
3.3.5 Lập các báo cáo cần thiết để chủ cửa hàng có thể theo dõi được tình hình kinh doanh theo từng giai đoạn 41
KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 59
Trang 10DANH MỤC HÌNH VẼ
Hình 1: Sơ đồ liên kết dữ liệu 15
Hình 2: Giao diện form chính 19
Hình 3: Giao diện form nhân viên 22
Hình 4: Giao diện form khách hàng 22
Hình 5: Giao diện form sản phẩm 23
Hình 6: Giao diện form nhà cung cấp 23
Hình 7: Giao diện hóa đơn nhập 24
Hình 8: Giao diện hóa đơn bán 24
Hình 9: Giao diện form tìm kiếm hóa đơn nhập 25
Hình 10: Giao diện form tìm kiếm hóa đơn bán 25
Hình 11: Giao diện báo cáo nhập hàng 26
Hình 12: Giao diện báo cáo bán hàng 27
Hình 13: Giao diện báo cáo doanh thu 27
Hình 14: Giao diện form sản phẩm khi mới thêm 28
Hình 15: Giao diện hóa đơn nhập sau khi thêm mới 29
Hình 16: Kết quả số lượng trong bảng sản phẩm được cập nhập 29
Hình 17: Giao diện khi xóa 1 hóa đơn 30
Hình 18: Số lượng của mã sản phẩm SP08 tự động bị giảm 31
Hình 19: Giao diện khi xóa 1 hóa đơn nhập 32
Hình 20: Số lượng sản phẩm tự động giảm khi xoá cả hoá đơn 32
Hình 21: Số lượng ban đầu khi chưa có hóa đơn bán 33
Hình 22: Giao diện khi thêm hóa đơn bán 33
Hình 23: Kết quả số lượng sản phẩm tự động giảm 34
Hình 24: Giao diện khi xóa một dữ liệu trong hóa đơn bán 34
Hình 25: Kết quả sau khi xóa một dữ liệu trong hóa đơn bán 35
Hình 26: Giao diện khi xóa một hóa đơn bán 36
Hình 27: Kết quả số lượng sản phẩm tăng lên khi xóa một hóa đơn bán 36
Trang 11Hình 28: Giá nhập giá bán khi mới thêm 37
Hình 29: Thêm dữ liệu vào hoá đơn nhập 38
Hình 30: Giá nhập, giá bán tự động cập nhật khi nhập 38
Hình 31: Giao diện khi chưa chọn dữ liệu để tìm kiếm 39
Hình 32: Kết quả khi tìm kiếm bằng mã loại là có tên trà 40
Hình 33: Tìm kiếm hóa đơn nhập theo ngày cụ thể 41
Hình 34: Kêt quả in báo cáo nhập hàng 45
Hình 35: Ví dụ tìm kiếm trong báo cáo bán hàng 47
Hình 36: In danh sách bán hàng 51
Hình 37: Ví dụ tìm kiếm trong báo cáo doanh thu 53
Hình 38: In danh sách báo cáo doanh thu 56
Trang 12Bảng 10: Bảng chi tiết hóa đơn bán 17
Bảng 11: Bảng chi tiết hóa đơn nhập 17
Trang 13LỜI MỞ ĐẦU
Trong thế giới kinh doanh ngày nay, việc sở hữu một hệ thống quản lý hiệu quảđóng vai trò quan trọng trong việc thành công của một cửa hàng cafe Với sự phát triểnkhông ngừng của công nghệ, việc xây dựng một hệ thống quản lý hiện đại, linh hoạt và dễsử dụng trở thành một yếu tố quyết định đối với sự cạnh tranh và phát triển của doanhnghiệp.
Tiểu luận này tập trung vào việc xây dựng một hệ thống quản lý cho cửa hàng cafesử dụng ngôn ngữ lập trình C# Với sự kết hợp giữa sự hiểu biết về hoạt động kinh doanhcủa cửa hàng cafe và khả năng kỹ thuật vững chắc, chúng em đã phát triển một ứng dụngphần mềm mạnh mẽ, linh hoạt và thân thiện với người dùng.
Trong phần tiếp theo của bài tập lớn, chúng em sẽ trình bày chi tiết về cách thứcthiết kế và triển khai hệ thống quản lý này Chúng em sẽ mô tả cách mà hệ thống giúpquản lý thông tin về nhân viên, khách hàng, sản phẩm, nhà cung cấp, hóa đơn và báo cáomột cách hiệu quả và nhất quán Bằng cách này, chúng em hi vọng rằng dự án sẽ mang lạigiá trị thực tiễn và góp phần vào sự phát triển bền vững của cửa hàng cafe.
Trang 14CHƯƠNG 0: ĐẶT VẤN ĐỀ1 Phát biểu bài toán
Trong thời đại hiện đại, việc tiêu thụ cà phê của giới trẻ không chỉ là một nhu cầu hàngngày mà còn trở thành một phong cách sống, một thói quen xã giao Các quán cà phêkhông chỉ đơn thuần là nơi bán cà phê mà còn là không gian xã hội, nơi mà mọi người cóthể tận hưởng không chỉ ly cà phê mà còn là không khí thoải mái để gặp gỡ bạn bè, làmviệc hoặc thư giãn Tuy nhiên, sự phổ biến ngày càng tăng của các quán cà phê này cũngđồng nghĩa với việc cần có một hệ thống quản lý toàn diện để đảm bảo hoạt động củachúng diễn ra một cách suôn sẻ và hiệu quả.
Thiếu hệ thống quản lý có thể dẫn đến những vấn đề nghiêm trọng, từ việc tồn khokhông được kiểm soát đến việc xử lý đơn hàng chậm trễ Điều này có thể gây ra sự bấttiện cho khách hàng và ảnh hưởng đến uy tín của cửa hàng Đồng thời, việc không có hệthống quản lý cũng làm mất đi cơ hội để phân tích dữ liệu và đưa ra các chiến lược kinhdoanh phù hợp Thông qua việc theo dõi doanh số bán hàng, xu hướng tiêu dùng và hiệusuất kinh doanh, cửa hàng có thể điều chỉnh chiến lược kinh doanh để tối ưu hóa lợinhuận và tăng cường trải nghiệm của khách hàng.
Do đó, nhóm đã phát triển, xây dựng hệ thống quản lý bán cà phê nhằm giải quyết cácvấn đề trên Không chỉ là một công cụ hữu ích mà còn là một phần quan trọng của sự pháttriển và duy trì của các quán cà phê trong thị trường ngày nay Hệ thống giúp cải thiện quytrình hoạt động, tăng cường hiệu suất làm việc và đảm bảo chất lượng dịch vụ, từ đó thuhút và giữ chân khách hàng một cách hiệu quả.
2 Lý do chọn đề tài
Trong thời đại ngày nay, cà phê không chỉ là thức uống hàng ngày mà đã trở thành mộtphần không thể thiếu trong lối sống của giới trẻ Thưởng thức một tách cà phê không chỉlà thưởng thức hương vị mà nó còn là cơ hội để giao lưu với bạn bè, làm việc hay thưgiãn Để đáp ứng nhu cầu này, quán cà phê không còn đơn giản là nơi bán cà phê mà đãtrở thành không gian xã hội, nơi mọi người tận hưởng bầu không khí thoải mái và giaolưu.
Tuy nhiên, khi cà phê ngày càng phổ biến, việc quản lý một quán cà phê trở nên phứctạp hơn bao giờ hết Việc thiếu một hệ thống quản lý toàn diện có thể dẫn đến nhiều vấnđề, từ việc tồn kho không được kiểm soát đến việc xử lý đơn hàng bị chậm trễ Điều nàykhông chỉ gây bất tiện cho khách hàng mà còn ảnh hưởng đến uy tín của cửa hàng.
Vì vậy, việc phát triển và xây dựng hệ thống quản lý bán hàng cà phê là cần thiết Hệthống này không chỉ giúp cải tiến quy trình vận hành, nâng cao hiệu quả công việc mà cònđảm bảo chất lượng dịch vụ Thông qua phân tích dữ liệu, các cửa hàng có thể điều chỉnh
1
Trang 15chiến lược kinh doanh, tối ưu hóa lợi nhuận và cải thiện trải nghiệm của khách hàng, từ đóthu hút và giữ chân khách hàng một cách hiệu quả trong thị trường cạnh tranh cao.
3 Tính cấp thiết của đề tài
Trong thời đại ngày nay, việc tiêu thụ cà phê không chỉ là nhu cầu thiết yếu hàng ngàymà còn là lối sống, thói quen xã hội của giới trẻ Quán cà phê không chỉ là nơi thưởngthức cà phê mà còn là nơi lý tưởng để gặp gỡ bạn bè, làm việc hay thư giãn Tuy nhiên, sựphổ biến ngày càng tăng của các quán cà phê này cũng đồng nghĩa với việc cần có một hệthống quản lý toàn diện để đảm bảo hoạt động của họ được suôn sẻ và hiệu quả.
Thiếu hệ thống quản lý có thể dẫn đến các vấn đề nghiêm trọng, từ việc tồn kho khôngđược kiểm soát đến việc xử lý đơn hàng bị chậm trễ Điều này có thể gây bất tiện chokhách hàng và ảnh hưởng đến uy tín của cửa hàng Đồng thời, việc không có hệ thốngquản lý cũng loại bỏ cơ hội phân tích dữ liệu và xây dựng chiến lược kinh doanh phù hợp.Vì vậy, nhóm đã phát triển và xây dựng hệ thống quản lý bán hàng cà phê nhằm giảiquyết các vấn đề trên Hệ thống này không chỉ là một công cụ hữu ích mà còn là một phầnquan trọng trong quá trình phát triển và duy trì các quán cà phê trên thị trường ngày nay.Hệ thống giúp cải tiến quy trình vận hành, nâng cao hiệu quả công việc, đảm bảo chấtlượng dịch vụ từ đó thu hút và giữ chân khách hàng một cách hiệu quả.
2
Trang 16CHƯƠNG 1: MÔ TẢ NGHIỆP VỤ HỆ THỐNG1.1.Mô tả bài toán
Bài toán cần giải quyết trong hệ thống quản lý quán cafe này là quản lý và điềuphối các hoạt động kinh doanh hàng ngày của quán cafe, từ việc nhập hàng, bán hàng chokhách hàng, đến quản lý nhân viên và các thông tin liên quan.
Trước hết, cần quản lý các hoá đơn nhập và hoá đơn bán hàng Đối với hoá đơnnhập, hệ thống cần ghi nhận thông tin về nhà cung cấp, ngày nhập hàng, các mặt hàngđược nhập và số lượng tương ứng Trong khi đó, hoá đơn bán cần ghi nhận thông tin vềkhách hàng, ngày bán hàng, các mặt hàng được bán và số lượng tương ứng, cùng với cácchương trình khuyến mãi nếu có.
Để quản lý hàng tồn kho, hệ thống cần theo dõi số lượng hàng tồn kho của mỗi sảnphẩm sau mỗi giao dịch nhập hoặc bán hàng Điều này giúp quản lý hiệu quả lượng hàngtồn kho, đảm bảo không gặp tình trạng thiếu hàng hoặc tồn kho quá mức.
Quản lý thông tin về sản phẩm cũng là một phần quan trọng trong hệ thống Hệthống cần lưu trữ các thông tin chi tiết về sản phẩm như tên, loại sản phẩm, giá nhập, giábán, công dụng và hình ảnh minh họa Điều này giúp quản lý và truy xuất thông tin sảnphẩm một cách nhanh chóng và chính xác.
Cần quản lý thông tin về khách hàng và nhân viên để phục vụ cho việc quản lý đốitác kinh doanh và nhân sự Thông tin này bao gồm tên, địa chỉ, số điện thoại và các thôngtin liên quan khác Đặc biệt, việc quản lý nhân viên cần có thông tin về quê quán để phụcvụ cho việc quản lý nhân sự và thống kê.
Hệ thống cần hỗ trợ các chức năng báo cáo để phân tích và đánh giá hiệu suất kinhdoanh, bao gồm doanh thu, lợi nhuận, hàng tồn kho và các chỉ số khác để đưa ra các quyếtđịnh kinh doanh hiệu quả.
Database mà bài toán quản lý bao gồm các bảng sau:
tbl_chitiethdn: Lưu trữ chi tiết các mặt hàng trong hóa đơn nhập, bao gồm mã hóađơn nhập, mã sản phẩm, số lượng, đơn giá, thành tiền và chiết khấu (nếu có).
tbl_chitiethoadonban: Đây là bảng chi tiết các mặt hàng trong hóa đơn bán, baogồm mã hóa đơn bán, mã sản phẩm, số lượng, thành tiền và khuyến mãi (nếu có).
tbl_congdung: Lưu trữ thông tin về công dụng của sản phẩm, bao gồm mã côngdụng và tên công dụng.
tbl_hoadonban và tbl_hoadonnhap: Đây là hai bảng lưu trữ thông tin về hóa đơnbán và hóa đơn nhập tương ứng, bao gồm mã hóa đơn, ngày nhập/bán, mã nhân viên, mãkhách hàng hoặc nhà cung cấp và tổng tiền.
tbl_khachhang và tbl_ncc: Lưu trữ thông tin về khách hàng và nhà cung cấp, baogồm mã, tên, địa chỉ và số điện thoại.
3
Trang 17tbl_loaisp và tbl_sanpham: Các bảng này lưu trữ thông tin về loại sản phẩm và sảnphẩm tương ứng, bao gồm mã, tên, giá nhập, giá bán, số lượng, mã công dụng, mã loại vàđường dẫn hình ảnh.
tbl_nhanvien và tbl_que: Lưu trữ thông tin về nhân viên và quê quán tương ứng,bao gồm mã, tên, địa chỉ, giới tính, ngày sinh, mã quê và số điện thoại.
1.2.Mô tả nghiệp vụ hệ thống
1.2.1 Input của bài toán
Thông tin sản phẩm: Lưu trữ các thông tin về sản phẩm cà phê và các loại đồ uốngkhác như tên sản phẩm, loại sản phẩm, giá nhập, giá bán, số lượng tồn kho và các thôngtin liên quan khác.
Thông tin nhà cung cấp: Bảng này chứa thông tin về các nhà cung cấp cà phê, baogồm tên nhà cung cấp, địa chỉ, số điện thoại và các chi tiết liên quan khác.
Thông tin khách hàng: Lưu trữ các thông tin cá nhân của khách hàng như tên, địachỉ, số điện thoại và các thông tin liên quan khác.
Thông tin nhân viên: Bảng này ghi lại thông tin về nhân viên của cửa hàng cà phê,bao gồm tên nhân viên, chức vụ, ngày sinh, địa chỉ, số điện thoại và các thông tin liênquan khác.
Thông tin hóa đơn nhập: Ghi lại thông tin chi tiết về các hóa đơn nhập hàng từ nhàcung cấp, bao gồm mã hóa đơn, ngày nhập, mã nhân viên, mã nhà cung cấp và tổng tiền.
Thông tin hóa đơn bán: Lưu trữ các thông tin chi tiết về các hóa đơn bán hàng chokhách hàng, bao gồm mã hóa đơn, ngày bán, mã nhân viên, mã khách hàng và tổng tiền.
Thông tin công dụng của sản phẩm Thông tin loại sản phẩm
Thông tin sản phẩm Thông tin nhà cung cấpThông tin nhân viênThông tin hoá đơn nhậpThông tin hoá đơn bán Thông tin quê
1.2.2 Output của bài toán
Quản lý thông tin sản phẩm cà phê và các đồ uống khác.
Theo dõi thông tin về nhà cung cấp cà phê và các vật liệu liên quan.Ghi lại thông tin cá nhân của khách hàng và nhân viên cửa hàng.Thực hiện ghi chú và quản lý hóa đơn nhập và hóa đơn bán hàng.Tạo ra báo cáo doanh số bán hàng, lợi nhuận và tồn kho.
Theo dõi hoạt động kinh doanh của cửa hàng và phân tích xu hướng tiêu thụ.4
Trang 181.3.Các chức năng của hệ thống
Nhập dữ liệu từ bàn phím
Thêm và lưu thông tin vào cơ sở dữ liệu Sửa thông tin trong cơ sở dữ liệuXóa thông tin trong cơ sở dữ liệuHuỷ các thao tác đang diễn ra Tìm kiếm
1.4.Thiết kế chức năng hệ thống
1.4.1 Chức năng Thêm dữ liệu
Chức năng thêm lưu dữ liệu cho phép người dùng thao tác dữ liệu thêm mới ở hệthống và lưu dữ liệu thêm mới đó vào cơ sở dữ liệu.
Bước 3: Kiểm tra dữ liệu nhập với dữ liệu đã có trong cơ sở dữ liệu
- Nếu trùng dữ liệu đã có trong cơ sở dữ liệu thì thông báo lỗi và quay lại bước 1- Nếu đúng chuyển sang bước 4
Bước 4: Cập nhật vào cơ sở dữ liệu
Bước 5: Hiển thị dữ liệu đã nhập, kết thúc quy trình
txtmasanpham.Enabled = true;txtmasanpham.Focus();}
Trang 19if (txtmasanpham.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải nhập mã sản phẩm", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (txttensanpham.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải nhập tên sản phẩm", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (cbomaloai.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải nhập loại sản phẩm", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (cbomacongdung.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải nhập công dụng của sản phẩm", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (txthinhanh.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải chọn ảnh minh họa cho sản phẩm", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
sql = "SELECT masanpham FROM tbl_sanpham WHERE masanpham=N'" +txtmasanpham.Text.Trim() + "'";
if (funtion.CheckKey(sql)){
MessageBox.Show("Mã sản phẩm này đã có, bạn phải nhập mã khác", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtmasanpham.Focus();txtmasanpham.Text = "";return;
sql = "INSERT INTO tbl_sanpham(masanpham,tensanpham,maloai,soluong,gianhap,giaban,macongdung, anh) VALUES(N'" + txtmasanpham.Text.Trim() + "',N'" +txttensanpham.Text.Trim() + "',N'" + cbomaloai.SelectedValue.ToString() + "'," +txtsoluong.Text.Trim() + "," + txtgianhap.Text + "," + txtgiaban.Text + "," +cbomacongdung.SelectedValue.ToString() + ",'" + txthinhanh.Text + "')";
btnxoa.Enabled = true;btnthem.Enabled = true;btnsua.Enabled = true;
6
Trang 20btnboqua.Enabled = false;btnluu.Enabled = false;txtmasanpham.Enabled = false;}
1.4.2 Chức năng Sửa dữ liệu
Khi muốn thay đổi thông tin có thể sửa thông tin
Các bước tiền hành:
Bước 1: Chọn dữ liệu cần sửaBước 2: Nhập lại dữ liệu cần sửaBước 3: Kiểm tra dữ liệu
- Nếu sai thông báo lỗi và quay lại bước 2- Nếu đúng tiếp tục bước 4
Bước 4: Lưu dữ liệu đã sửa vào cơ sở dữ liệu Bước 5: Hiển thị lại dữ liệu đã sửa
MessageBox.Show("Không còn dữ liệu!", "Thông báo", MessageBoxButtons.OK,MessageBoxIcon.Information);
if (txtmasanpham.Text == ""){
MessageBox.Show("Bạn chưa chọn bản ghi nào", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Information);
if (txttensanpham.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải nhập tên sản phẩm", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (cbomaloai.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải nhập loại sản phẩm", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
if (cbomacongdung.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải nhập công dụng của sản phẩm", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
7
Trang 21if (txthinhanh.Text.Trim().Length == 0){
MessageBox.Show("Bạn phải chọn ảnh minh họa cho hàng", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
btnboqua.Enabled = false;}
1.4.3 Chức năng Xóa dữ liệu
Có thể xoá dữ liệu không dùng hoặc dữ liệu sai
MessageBox.Show("Không còn dữ liệu!", "Thông báo", MessageBoxButtons.OK,MessageBoxIcon.Information);
if (txtmasanpham.Text == ""){
MessageBox.Show("Bạn chưa chọn bản ghi nào", "Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Information);
if (MessageBox.Show("Bạn có muốn xóa không?", "Thông báo",MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
sql = "DELETE tbl_sanpham WHERE masanpham=N'" + txtmasanpham.Text + "'";funtion.RunSql(sql);
Load_DataGridView();8
Trang 221.4.4 Chức năng Tìm kiếm dữ liệu
Chức năng tìm kiếm được sử dụng khi người dùng tra cứu thông tin nào đó
Các bước tiến hành
Bước 1: Nhập thông tin tìm kiếm
Bước 2: Kiểm tra thông tin có tồn tại hay không- Nếu có thì hiển thị Thông tin cần tim
- Nếu không có thì thông báo nhập lại thông tin hoặc thoát khỏi chức năng tìm kiếm
sql = "SELECT * FROM tbl_sanpham WHERE 1=1";if (txtmasanpham.Text != "")
sql = sql + " AND masanpham Like N'%" + txtmasanpham.Text + "%'";if (txttensanpham.Text != "")
sql = sql + " AND tensanpham Like N'%" + txttensanpham.Text + "%'";if (cbomaloai.Text != "")
sql = sql + " AND maloai Like N'%" + cbomaloai.SelectedValue + "%'";if (cbomacongdung.Text != "")
sql = sql + " AND macongdung Like N'%" + cbomacongdung.SelectedValue + "%'"tbl_sanpham = funtion.GetDataToTable(sql);
1.4.5 Chức năng Bỏ qua
Các bước tiến hành
Bước 1: chọn 1 chức năng bất kì nào đó
bước 2: Khi không muốn thực hiện chức năng đó chọn bỏ quaBước 3: Tất cả dữ liệu hiển thị trên form đc reset lại như ban đầu
Code xử lý:
9
Trang 23private void btnboqua_Click(object sender, EventArgs e){
btnboqua.Enabled = false;btnthem.Enabled = true;btnxoa.Enabled = true;btnsua.Enabled = true;btnluu.Enabled = false;txtmasanpham.Enabled = false;}
Code xử lý:
private void btin_Click(object sender, EventArgs e){
if (txtmahdn.Text == ""){
MessageBox.Show("hãy chọn hoá đơn để in", "Thông báo", MessageBoxButtons.OK,MessageBoxIcon.Error);
COMExcel.Application exApp = new COMExcel.Application();COMExcel.Workbook exBook;
COMExcel.Worksheet exSheet;
10
Trang 24COMExcel.Range exRange;string sql;
int hang = 0, cot = 0;
DataTable tblThongtinhoadon, tblThongtinsanpham;
exBook = exApp.Workbooks.Add(COMExcel.XlWBATemplate.xlWBATWorksheet);exSheet = exBook.Worksheets[1];
exRange = exSheet.Cells[1, 1];exRange.Range["A1:B3"].Font.Size = 10;
exRange.Range["A1:B3"].Font.Name = "Times new roman";exRange.Range["A1:B3"].Font.Bold = true;
exRange.Range["A1:B3"].Font.ColorIndex = 5; //Màu xanh da trờiexRange.Range["A1:A1"].ColumnWidth = 7;
exRange.Range["B1:B1"].ColumnWidth = 15;exRange.Range["A1:B1"].MergeCells = true;
exRange.Range["A1:B1"].HorizontalAlignment = COMExcel.XlHAlign.xlHAlignCenter;exRange.Range["A1:B1"].Value = "Quán cafe";
exRange.Range["A2:B2"].MergeCells = true;
exRange.Range["A2:B2"].HorizontalAlignment = COMExcel.XlHAlign.xlHAlignCenter;exRange.Range["A2:B2"].Value = "12 Chùa Bộc - Hà Nội";
exRange.Range["A3:B3"].MergeCells = true;
exRange.Range["A3:B3"].HorizontalAlignment = COMExcel.XlHAlign.xlHAlignCenter;exRange.Range["A3:B3"].Value = "Điện thoại: ";
exRange.Range["C2:E2"].Font.Size = 16;
exRange.Range["C2:E2"].Font.Name = "Times new roman";exRange.Range["C2:E2"].Font.Bold = true;
exRange.Range["C2:E2"].Font.ColorIndex = 3; //Màu đỏexRange.Range["C2:E2"].MergeCells = true;
exRange.Range["C2:E2"].HorizontalAlignment = COMExcel.XlHAlign.xlHAlignCenter;exRange.Range["C2:E2"].Value = "HÓA ĐƠN NHẬP ";
sql = "SELECT a.mahdn, a.ngaynhap, a.tongtien, b.tennv, c.tenncc " + "FROMtbl_hoadonnhap AS a " + "INNER JOIN tbl_nhanvien AS b ON a.manv = b.manv " +"INNERJOIN tbl_ncc AS c ON a.mancc = c.mancc " +"WHERE a.mahdn = N'" + txtmahdn.Text + "'";
tblThongtinhoadon = funtion.GetDataToTable(sql);exRange.Range["A7:F10"].Font.Size = 12;exRange.Range["A7:A7"].Value = "Mã hoá đơn:";exRange.Range["B7:F7"].MergeCells = true;
exRange.Range["B7:F7"].Value = tblThongtinhoadon.Rows[0]["mahdn"].ToString();exRange.Range["A8:A8"].Value = "Ngày nhập:";
exRange.Range["B8:F8"].MergeCells = true;
exRange.Range["B8:F8"].Value = Convert.ToDateTime(tblThongtinhoadon.Rows[0]["ngaynhap"]).ToShortDateString();
exRange.Range["A9:A9"].Value = "Nhân viên nhập:";exRange.Range["B9:F9"].MergeCells = true;
exRange.Range["B9:F9"].Value = tblThongtinhoadon.Rows[0]["tennv"].ToString();exRange.Range["A10:A10"].Value = "Nhà cung cấp:";
exRange.Range["B10:F10"].MergeCells = true;
exRange.Range["B10:F10"].Value = tblThongtinhoadon.Rows[0]["tenncc"].ToString();exRange.Range["A11:A11"].Value = "Tổng tiền:";
exRange.Range["B11:F11"].MergeCells = true;
exRange.Range["B11:F11"].Value = tblThongtinhoadon.Rows[0]["tongtien"].ToString();sql = "SELECT b.tensanpham, a.soluong, a.dongia,a.thanhtien ,a.chietkhau " +
11
Trang 25"FROM tbl_chitiethdn AS a , tbl_sanpham AS b " +
"WHERE a.mahdn = N'" + txtmahdn.Text + "' AND a.masanpham = b.masanpham";tblThongtinsanpham = funtion.GetDataToTable(sql);
exRange.Range["A12:F12"].Font.Bold = true;
exRange.Range["A12:F12"].HorizontalAlignment = COMExcel.XlHAlign.xlHAlignCenter;exRange.Range["A12:A12"].Value = "STT";
exRange.Range["B12:B12"].Value = "Tên sản phẩm";exRange.Range["C12:C12"].Value = "Số lượng";exRange.Range["D12:D12"].Value = "Đơn giá";exRange.Range["E12:E12"].Value = "Thành tiền";exRange.Range["F12:F12"].Value = "Chiết khấu";
for (hang = 0; hang < tblThongtinsanpham.Rows.Count; hang++){
exRange.Value2 = "Tổng tiền:";
exRange = exSheet.Cells[cot + 1][hang + 15];exRange.Font.Bold = true;
exRange.Value2 = tblThongtinhoadon.Rows[0][2].ToString();exRange = exSheet.Cells[1][hang + 16];
exRange.Range["A1:F1"].MergeCells = true;exRange.Range["A1:F1"].Font.Bold = true;exRange.Range["A1:F1"].Font.Italic = true;
exRange.Range["A1:F1"].HorizontalAlignment = COMExcel.XlHAlign.xlHAlignRight;exApp.Visible = true;
12
Trang 26STT Tên trường Kiểu dữ liệu Kích thướcKhóaGiải thích
Bảng 7: Bảng hóa đơn nhập
Bảng Hóa đơn bán:
Bảng 8: Bảng hóa đơn bán
Bảng Công dụng sản phẩm:
1 macongdung nvarchar 10 Khóa chính Mã công dụng
Bảng 9: Bảng công dụng sản phẩm
Bảng Chi tiết hóa đơn bán:
Bảng 10: Bảng chi tiết hóa đơn bán
Bảng Chi tiết hóa đơn nhập:
17
Trang 275 thanhtien float Thành tiền
Bảng 11: Bảng chi tiết hóa đơn nhập
18
Trang 28CHƯƠNG 3 GIẢI QUYẾT VẤN ĐỀ3.1.Xây dựng Form chính cho chương trình
3.1.1 Tạo giao diện Form chính
Form được thiết kế với giao diện thân thiện, dễ sử dụng, và phản ánh đầy đủ cácchức năng quan trọng như danh mục, hóa đơn và báo cáo (Khoa CNTT&KTS-Họcviện Ngân hàng)
Khi mở form, người dùng sẽ được chào đón bởi một menu chính với các tùy chọnphân loại rõ ràng Trong phần "Danh mục", người dùng có thể truy cập các danh sáchliệt kê như nhân viên, sản phẩm, khách hàng và nhà cung cấp Điều này giúp họ dễdàng quản lý thông tin liên quan đến các bộ phận và đối tác quan trọng của quán (Tú,2024)
Phần "Hóa đơn" cung cấp hai tùy chọn chính là hóa đơn bán và hóa đơn nhập.Người dùng có thể tạo, sửa đổi và xem lại các hóa đơn liên quan đến doanh thu và chiphí của quán Điều này giúp họ theo dõi các giao dịch mua bán một cách hiệu quả vàchính xác.
Cuối cùng, phần "Báo cáo" cung cấp các công cụ để tạo ra các báo cáo tổng hợp vàphân tích về hoạt động kinh doanh của quán Những báo cáo này có thể cung cấpthông tin chi tiết về doanh số bán hàng, lợi nhuận, cũng như các xu hướng và mô hìnhtiêu thụ của khách hàng.
Sửa lại một số thuộc tính của Form1 như sau:Text Quản lý cửa hàng cafeWindowState Maximized
Icon C:\Users\Vietnam\Desktop\anhspcafe\epressoBackgroundImage C:\Users\Vietnam\Desktop\anhspcafe\bg
19
Trang 293.1.2 Viết mã lệnh cho Form chính
Form chính có nhiệm vụ kết nối tới cơ sở dữ liệu khi bắt đầu thực hiện dự án, đóng kếtnối tới cơ sở dữ liệu khi đóng dự án và mở các form tương ứng với các mục menu.namespace quanlycafen1
public partial class Form1 : Form{
public Form1(){
private void Form1_Load(object sender, EventArgs e){
private void nhânviênToolStripMenuItem_Click(object sender, EventArgs e){
Nhanvien a = new Nhanvien();this.Hide();
private void hoáĐơnNhậpToolStripMenuItem_Click(object sender, EventArgs e){
hdn a = new hdn();this.Hide(); a.ShowDialog();
20
Trang 30private void côngDụngToolStripMenuItem_Click(object sender, EventArgs e){
congdung a = new congdung();this.Hide(); a.ShowDialog();this.Show();
21
Trang 313.1.3 Tạo lớp – Class functions
Trong cửa sổ Solution Explorer tạo một thư mục mới đặt tên là Class, kích chuộtphải tại Class chọn Add/ New Item… chọn Class trong hộp thoại Add New Item và đặttên cho class là functions.cs tại ô Name.
Mã lệnh của lớp functions được viết như sau:
Để sử dụng thư viện các đối tượng của SQL Server và sử dụng đối tượng Dataset taphải khai báo 2 Namespace Data và Data.SqlClient.
using System;
using System.Collections.Generic;using System.Linq;
using System.Text;using System.Threading.Tasks;using System.Data.SqlClient;using System.Windows.Forms;using System.Data;
using DocumentFormat.OpenXml.Packaging;using DocumentFormat.OpenXml.Spreadsheet;using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Math;namespace quanlycafen1
stringconn = "Data Source=SKY-20240401VYJ\\MSSQLSERVER2;InitialCatalog=Quanlyquancafe;Integrated Security=True;Encrypt=False";
conn = new SqlConnection();conn.ConnectionString = stringconn;conn.Open();
3.2.Giao diện các Form con
3.2.1 Giao diện các form Danh mục
Form nhân viên trong hệ thống quản lý quán cafe là một công cụ quan trọng giúp quảnlý và theo dõi thông tin về nhân sự Giao diện của form này thường bao gồm các trườngthông tin như mã nhân viên, tên nhân viên, số điện thoại, địa chỉ và các thông tin liênquan khác Người quản lý có thể thêm, sửa đổi hoặc xóa thông tin nhân viên từ form này,cũng như tạo ra các báo cáo về nhân sự để theo dõi hiệu suất làm việc và chi phí nhânviên.
22
Trang 32Form khách hàng trong hệ thống quản lý quán cafe là một công cụ quan trọng để theodõi và quản lý thông tin về khách hàng Giao diện của form này thường bao gồm cáctrường thông tin như tên, số điện thoại, địa chỉ, email, và các thông tin liên quan khác.Người quản lý có thể thêm mới, chỉnh sửa hoặc xóa thông tin khách hàng từ form này.Ngoài ra, form khách hàng cũng có thể được sử dụng để tạo ra các báo cáo về hành vimua hàng của khách hàng và phân tích thị trường.
Hình 4: Giao diện form khách hàng
23
Trang 33Form sản phẩm trong hệ thống quản lý của quán cafe là một công cụ quan trọng, giúpquản lý thông tin về các mặt hàng được bày bán Giao diện của form này thường bao gồmcác trường thông tin như tên sản phẩm, giá cả, số lượng và thông tin về nhà cung cấp.Người quản lý có thể dễ dàng thêm, chỉnh sửa hoặc xoá thông tin sản phẩm từ form này.Ngoài ra, form sản phẩm cũng cung cấp các công cụ để tạo ra báo cáo về tình trạng tồnkho và doanh số bán hàng, giúp quản lý hiểu rõ hơn về hoạt động kinh doanh của quán.
Hình 5: Giao diện form sản phẩm
Form nhà cung cấp trong hệ thống quản lý của quán cafe là một phần quan trọng, giúpquản lý thông tin về các đối tác cung cấp nguyên liệu và dịch vụ Giao diện của form nàycung cấp các trường thông tin như tên nhà cung cấp, địa chỉ, thông tin liên hệ và các thôngtin khác cần thiết Quản lý có thể dễ dàng quản lý và cập nhật thông tin từ form này
Hình 6: Giao diện form nhà cung cấp
24
Trang 343.2.2 Giao diện các form Hóa đơn
Hóa đơn nhập là văn bản quan trọng ghi lại thông tin chi tiết về giao dịch mua hànghóa, dịch vụ từ nhà cung cấp Nó đóng vai trò thiết yếu trong việc quản lý hàng tồn kho,kiểm soát chi phí và đảm bảo tính minh bạch cho hoạt động kinh doanh.
Hình 7: Giao diện hóa đơn nhập
Hóa đơn bán hàng đóng vai trò quan trọng trong việc ghi chép giao dịch bán hàng hóa,dịch vụ cho khách hàng Nó cung cấp thông tin chi tiết về giao dịch, giúp doanh nghiệpquản lý doanh thu, thanh toán, thuế một cách hiệu quả và minh bạch.
Hình 8: Giao diện hóa đơn bán
25
Trang 353.2.3 Giao diện các form Tìm kiếm
Việc thêm một chức năng tìm kiếm cho hóa đơn nhập sẽ giúp người dùng dễ dàng tìmnhanh thông tin cần thiết về giá trị tổng tiền của mỗi hóa đơn nhập Đồng thời, thông quatính năng này, họ cũng có thể xác định được nhà cung cấp và nhân viên liên quan đếntừng hóa đơn Điều này giúp tối ưu hóa quy trình quản lý và tra cứu thông tin trong hệthống, giảm thiểu thời gian tìm kiếm và nâng cao hiệu suất làm việc.
Hình 9: Giao diện form tìm kiếm hóa đơn nhập
Tương tự cho hóa đơn bán:
Hình 10: Giao diện form tìm kiếm hóa đơn bán
26