Qua việc xây dựng hệ thống quản lí bán hàng CellphoneS, chúng tôi hy vọng đề tàinày sẽ đóng góp vào việc nâng cao hiệu suất kinh doanh của các cửa hàng điện tử -điện máy, tạo ra môi trườ
CƠ SỞ LÝ THUYẾT
Đặt vấn đề
Bán hàng là một nền tảng trong kinh doanh là sự gặp gỡ của người bán và người mua ở những nơi khác nhau giúp doanh nghiệp đạt được mục tiêu nếu muốn cuộc gặp gỡ thành công trong cuộc đàm phán về việc trao đổi sản phẩm.
Quản trị bán hàng là quá trình hoạch định, tổ chức, lãnh đạo, điều hành, kiểm soát các hoạt động bán hàng, cũng có thể được xem là hoạt động quản trị của những người thuộc lực lượng bán hàng trong một doanh nghiệp thực hiện các hoạt động quản trị.
Trong cuộc sống hiện nay, không khó để tìm kiếm một cửa hành bán lẻ thiết bị điện tử Không chỉ là để giải quyết nhu cầu về chất lượng sản phẩm mà chất lượng dịch vụ đóng vai trò rất quan trọng trong cuộc cạnh tranh giữa các chuỗi cửa hàng.
Xây dựng một phần mềm quản lý bán hàng tại CellPhoneS - một cửa hàng điện thoại di động có quy mô lớn tại Việt Nam - có một loạt các lý do quan trọng :
1 Quản lý hàng tồn kho: Phần mềm quản lý bán hàng giúp theo dõi tồn kho một cách hiệu quả, đảm bảo rằng cửa hàng luôn có đủ hàng để cung cấp cho khách hàng và tránh tình trạng thiếu hàng hoặc tồn kho thừa.
2 Quản lý doanh thu và doanh số bán hàng: Phần mềm giúp tự động ghi nhận doanh thu và doanh số bán hàng, từ đó giúp cửa hàng có cái nhìn tổng quan về tình hình kinh doanh hiện tại và đưa ra các quyết định chiến lược.
3 Theo dõi khách hàng: Phần mềm quản lý bán hàng cho phép lưu trữ thông tin về khách hàng, từ đó cửa hàng có thể tạo ra chương trình khuyến mãi, giảm giá hoặc chăm sóc khách hàng tốt hơn dựa trên lịch sử mua hàng và sở thích.
4 Quản lý đơn hàng: Phần mềm giúp quản lý quá trình từ khi khách hàng đặt hàng cho đến khi hàng được giao đến tay khách hàng Điều này giúp cửa hàng tối ưu hóa quá trình vận chuyển và đảm bảo sự hài lòng của khách hàng.
5 Thống kê và báo cáo: Phần mềm quản lý bán hàng cung cấp các công cụ để tạo ra thống kê và báo cáo về tình hình kinh doanh, doanh số bán hàng, hiệu suất của nhân viên, và nhiều thông tin quan trọng khác Điều này giúp quản lý có cái nhìn rõ ràng hơn về hiện tình và đưa ra các quyết định dựa trên dữ liệu.
6 Tăng hiệu suất làm việc: Phần mềm quản lý bán hàng giúp tự động hóa nhiều quy trình, giúp nhân viên tiết kiệm thời gian và tập trung hơn vào việc tương tác với khách hàng và tạo ra giá trị.
7 Đảm bảo tính chính xác: Phần mềm giúp loại bỏ hoặc giảm thiểu sai sót trong quy trình bán hàng và quản lý, từ đó đảm bảo tính chính xác và tin cậy trong công việc kinh doanh.
8 Tích hợp đa kênh: Với việc cửa hàng hoạt động trên nhiều nền tảng, phần mềm quản lý bán hàng giúp tích hợp đa kênh, cho phép khách hàng đặt hàng và tương tác thông qua nhiều kênh khác nhau như cửa hàng vật lý, trang web, ứng dụng di động, v.v.
9 Đáp ứng nhu cầu thị trường: Môi trường kinh doanh luôn thay đổi, và một phần mềm quản lý bán hàng linh hoạt có thể được điều chỉnh để đáp ứng nhanh chóng các yêu cầu mới từ thị trường.
Tóm lại, việc xây dựng một phần mềm quản lý bán hàng tại CellPhoneS không chỉ giúp tối ưu hóa quy trình kinh doanh mà còn đảm bảo hiệu suất cao, tạo ra trải nghiệm tốt cho khách hàng và giúp cửa hàng cạnh tranh mạnh mẽ trong thị trường bán lẻ điện thoại di động.
Hệ thống sẽ được xây dựng dựa trên việc phân chia quyền truy cập dữ liệu giữa hai dạng đối tượng chính, sử dụng chương trình đó là NHÂN VIÊN và QUẢN LÝ:
Tổng quan về nghiệp vụ bán hàng
Nghiệp vụ bán hàng là một phần quan trọng trong hoạt động kinh doanh của mọi tổ chức thương mại Nó liên quan đến quá trình tương tác với khách hàng để chào bán và cung cấp sản phẩm hoặc dịch vụ mà họ cần Nó bao gồm :
Xác định mục tiêu khách hàng: Đầu tiên, tổ chức cần xác định đối tượng khách hàng mục tiêu dựa trên các yếu tố như độ tuổi, giới tính, sở thích, thu nhập và nhu cầu Điều này giúp tập trung nguồn lực vào những khách hàng có khả năng mua hàng cao nhất.
Xây dựng chiến lược bán hàng: Chiến lược bán hàng bao gồm các kế hoạch và phương pháp để tiếp cận và chốt đơn hàng từ khách hàng Điều này bao gồm quyết định về kênh phân phối, giá cả, tiếp thị, và quản lý kho hàng.
Quảng cáo và tiếp thị: Tổ chức sử dụng các chiến dịch quảng cáo và tiếp thị để giới thiệu sản phẩm hoặc dịch vụ của họ tới khách hàng tiềm năng Điều này có thể bao gồm quảng cáo truyền thông, tiếp thị trực tuyến, sự kiện thương mại, và hơn thế nữa.
Tương tác với khách hàng: Tại đây, quá trình tương tác với khách hàng bắt đầu Nhân viên bán hàng hoặc hệ thống tự động gửi thông tin về sản phẩm, ưu đãi hoặc thông tin liên quan đến khách hàng qua email, tin nhắn, cuộc gọi điện thoại
Tư vấn và chăm sóc khách hàng: Khi khách hàng có nhu cầu hoặc quan tâm đến sản phẩm, nhân viên bán hàng cung cấp thông tin chi tiết, tư vấn về sản phẩm hoặc dịch vụ, giúp khách hàng hiểu rõ hơn về lợi ích và tính năng.
Xử lý đơn hàng: Khi khách hàng quyết định mua sản phẩm hoặc dịch vụ, quá trình xử lý đơn hàng bắt đầu Từ việc lựa chọn sản phẩm, quyết định mua hàng, đến quá trình thanh toán và xác nhận đơn hàng.
Giao hàng và vận chuyển: Nếu sản phẩm cần được giao hàng, tổ chức sẽ tổ chức việc vận chuyển sản phẩm đến khách hàng Quá trình này liên quan đến quản lý kho, đóng gói, và chọn phương thức vận chuyển phù hợp.
Dịch vụ sau bán hàng: Sau khi khách hàng nhận được sản phẩm, quá trình dịch vụ sau bán hàng tiếp tục Điều này bao gồm hỗ trợ khách hàng khi gặp vấn đề, xử lý đổi trả hoặc bảo hành, và giải đáp các thắc mắc liên quan đến sản phẩm.
Thúc đẩy sự phát triển: Nghiệp vụ bán hàng cũng liên quan đến việc duy trì và phát triển mối quan hệ với khách hàng hiện tại Khách hàng hài lòng và trung thành có thể trở thành nguồn cung cấp doanh số bán hàng liên tục trong tương lai.
Phân tích hiệu suất: Tổ chức cần phân tích hiệu suất bán hàng bằng cách theo dõi doanh số bán hàng, lợi nhuận, tỷ lệ chuyển đổi, và các chỉ số quan trọng khác. Điều này giúp đánh giá hiệu quả của chiến lược bán hàng và điều chỉnh theo thời gian.
Bán hàng là một quá trình trong đó người bán tìm hiểu, khám phá, gợi tạo và đáp ứng nhu cầu của người mua, để cả hai bên nhận được quyền lợi thỏa đáng.
Theo quan niệm cổ điển: “Bán hàng là hoạt động thực hiện sự trao đổi sản phẩm hay dịch vụ của người bán chuyển cho người mua để được nhận lại từ người mua tiền, vật phẩm hoạc giá trị trao đổi đã thỏa thuận”
Theo quan niệm hiện đại:
- Bán hàng là nền tảng trong kinh doanh: là sự gặp gỡ của người bán và người bán và người mua ở những nơi khác nhau giúp doanh nghiệp đạt được mục tiêu nếu cuộc gặp gỡ thành công nếu cuộc gặp gỡ thành công trong đàm phán về việc trao đổi sản phẩm.
- Bán hàng là quá trình liên hệ với khách hàng tiềm năng: tìm hiểu nhu cầu khách hàng, trình bày và chứng minh sản phẩm, đàm phán mua bán, giao hàng và thanh toán.
- Bán hàng là sự phục vụ: giúp đỡ khách hàng nhằm cung cấp cho khách hàng những thứ mà họ muốn
Công cụ hỗ trợ
2.3.1 Giới thiệu về Microsoft NET và Kiến trúc NET
* Giới thiệu về Microsoft NET
Microsoft Net không phải là một ngôn ngữ lập trình, đó là một không gian làm việc tổng hợp bởi bốn bộ ngôn ngữ lập trình: C#, VB.NET, Managed C++, and J# NET ở đó có sự chồng gối lên nhau của các ngôn ngữ, và được định nghĩa trong FCL (framework class library).
Microsoft Net bao gồm 2 phần chính: Framework và Intergrated DevelopmentEnviroment (IDE) Framework cung cấp những gì cần thiết và căn bản, là khuôn dạng hay môi trường hỗ trợ các hạ tầng cơ sở theo một quy ước nhất định để công
Thành phần Framework là quan trọng nhất NET là cốt lõi và tinh hoa của môi trường, còn IDE chỉ là công cụ để phát triển dựa trên nền tảng đó thôi Trong NET toàn bộ các ngôn ngữ C#, Visual C++ hay Visual Basic.NET đều dùng cùng một IDE.
Microsoft NET là nền tảng cho việc xây dựng và thực thi các ứng dụng phân tán thế hệ kế tiếp Bao gồm các ứng dụng từ client đến server và các dịch vụ khác Một số tính năng của Microsoft NET cho phép những nhà phát triển sử dụng như sau:
‒ Một mô hình lập trình cho phép nhà phát triển xây dựng các ứng dụng dịch vụ web và
‒ ứng dụng client với Extensible Markup Language (XML).
‒ Tập hợp dịch vụ XML Web, như Microsoft NET My Services cho phép nhà phát
‒ triển đơn giản và tích hợp người dùng kinh nghiệm.
‒ Cung cấp các server phục vụ bao gồm: Windows 2000, SQL Server, và BizTalk Server, tất cả điều tích hợp, hoạt động, và quản lý các dịch vụ XML Web và các ứng dụng.
‒ Các phần mềm client như Windows XP và Windows CE giúp người phát triển phân
‒ phối sâu và thuyết phục người dùng kinh nghiệm thông qua các dòng thiết bị.
‒ Nhiều công cụ hỗ trợ như Visual Studio NET, để phát triển các dịch vụ WebXML,ứng dụng trên nền Windows hay nền web một cách dể dàng và hiệu quả.
.NET Framework là một platform mới làm đơn giản việc phát triển ứng dụng trong môi trường phân tán của Internet .NET Framework được thiết kế đầy đủ để đáp ứng theo quan điểm sau:
‒ Để cung cấp một môi trường lập trình hướng đối tượng vững chắc, trong đó mã nguồn đối tượng được lưu trữ và thực thi một cách cục bộ Thực thi cục bộ nhưng được phân tán trên Internet, hoặc thực thi từ xa.
‒ Để cung cấp một môi trường thực thi mã nguồn mà tối thiểu được việc đóng gói phần mềm và sự tranh chấp về phiên bản.
‒ Để cung cấp một môi trường thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm cả việc mã nguồn được tạo bởi hãng thứ ba hay bất cứ hãng nào mà tuân thủ theo kiến trúc NET.
‒ Để cung cấp một môi trường thực thi mã nguồn mà loại bỏ được những lỗi thực hiện các script hay môi trường thông dịch.
‒ Để làm cho những người phát triển có kinh nghiệm vững chắc có thể nắm vững
Hình 2 7: Mô hình kiến trúc của NET
‒ Để xây dựng tất cả các thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo rằng mã nguồn trên NET có thể tích hợp với bất cứ mã nguồn khác.
.NET Framework có hai thành phần chính: Common Language Runtime (CLR) và thư viện lớp NET Framework CLR là nền tảng của NET Framework.
‒ Phát triển ứng dụng Client
‒ Những ứng dụng client cũng gần với những ứng dụng kiểu truyền thống được lập trình dựa trên Windows Đây là những kiểu ứng dụng hiển thị những cửa sổ hay những form trên desktop cho phép người dùng thực hiện một thao tác hay nhiệm vụ nào đó Những ứng dụng client bao gồm những ứng dụng như xử lý văn bản, xử lý bảng tính, những ứng dụng trong lĩnh vực thương mại như công cụ nhập liệu, công cụ tạo báo cáo Những ứng dụng client này thường sử dụng những cửa sổ, menu, toolbar, button hay các thành phần GUI khác, và chúng thường truy cập các tài nguyên cục bộ như là các tập tin hệ thống, các thiết bị ngoại vi như máy in.
‒ Một loại ứng dụng client khác với ứng dụng truyền thống như trên là ActiveX control (hiện nay nó được thay thế bởi các Windows Form control) được nhúng vào các trang web trên Internet Các ứng dụng này cũng giống như những ứng dụng client khác là có thể truy cập tài nguyên cục bộ.
‒ Những lớp NET Framework chứa trong NET Framework được thiết kế cho việc sử dụng phát triển các GUI Điều này cho phép người phát triển nhanh chóng và dễ dàng tạo các cửa sổ, button, menu, toolbar, và các thành phần khác trong các ứng dụng được viết phục vụ cho lĩnh vực thương mại.
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng.
Hình 2 8: Ngôn ngữ lập trình C# thì định nghĩa những kiểu dữ liệu mới, cho phép người phát triển mở rộng ngôn ngữ để tạo mô hình tốt hơn để giải quyết vấn đề Ngôn ngữ C# chứa những từ khóa cho việc khai báo những kiểu lớp đối tượng mới và những phương thức hay thuộc tính của lớp, và cho việc thực thi đóng gói, kế thừa, và đa hình, ba thuộc tính cơ bản của bất cứ ngôn ngữ lập trình hướng đối tượng.
THIẾT KẾ CƠ SỞ DỮ LIỆU
Khảo sát hiện trạng và nhu cầu
Từ khi thành lập từ đến nay, CellphoneS từ chuỗi cửa hàng non trẻ đã vươn lên trở thành một trong chuỗi cửa hàng bán thiết bị, linh kiện điện tử lớn nhất Việt Nam Ở đây CellphoneS hướng tới tất cả các đối tượng khách hàng có nhu cầu mua, sửa chửa các thiết bị, linh kiện điện tử, từ nhóm khách hàng trẻ năng động đến các nhóm khách hàng cao tuổi, không có hiểu biết quá nhiều về công nghệ Những yếu tố như dịch vụ tư vấn, chế độ bảo hành hậu mãi và quan trọng nhất là giá cả mang tính cạnh tranh cao giúp cho khách hàng có nhu cầu luôn lựa chọn CellphoneS như một lựa chọn ưu tiên Đây cũng chính là những yếu tố giúp CellphoneS đưa thương hiệu của mình đến mọi đối tượng tiêu dùng một cách nhanh nhất.
- Có độ tin cậy cao.
- Linh động: có tính cởi mở, thuận tiện cho việc bảo trì, phát triển hệ thống.
Có đầy đủ các tiện ích phục vụ cho người sử dụng
- Có khả năng lập các bảng biểu báo cáo theo yêu cầu của người sử dụng Phải có từng cấp độ ưu tiên cho người sử dụng và đảm bảo việc bảo mật chương trình Phải có chương trình quản trị hệ thống cho người điều hành, chương trình phải có tiện ích thuận tiện cho việc thêm bớt user, cấp phát quyền, quản trị theo nhóm, Các phân hệ của chương trình phải tuân thủ theo trật tự thực hiện yêu cầu của người sử dụng và phần giao diện chung.
- Phải đảm bảo các nhu cầu như sau:
- Thông tin nhập xuất kho
- Thành tiền = (số lượng * đơn giá) – giảm giá
- Trị giá đơn hang = tổng thành tiền
- Thống kê doanh thu bán hàng theo tháng, năm
- Thống kê đơn hàng theo ngày lập và trị giá.
- Thống kê hoá đơn theo ngày lập và trị giá.
- Số lượng hàng xuất kho
Mô tả chức năng hệ thống
3.2.1 Sơ đồ phân rã chức năng (BFD)
3.2.2 Sơ đồ dòng dữ liệu (DFD)
3.2.2.3.1 Chức năng tiếp nhận đơn hàng
3.2.2.3.2 Chức năng đối chiếu tồn kho
Hình 3 7: DFD mức 2 của chức năng tiếp nhận đơn hàng
Hình 3 8: DFD mức 2 của chức năng tiếp nhận đơn hàng
Hình 3 9: DFD mức 2 của chức năng đối chiếu tồn kho
Hình 3 10: DFD mức 2 của chức năng đối chiếu tồn kho
Hình 3 13: DFD mức 2 của chức năng nhập kho
Hình 3 14: DFD mức 2 của chức năng nhập kho Hình 3 11: DFD mức 2 của chức năng đặt mua
Hình 3 12: DFD mức 2 của chức năng đặt mua
Thiết kế cơ sở dữ liệu
Quy trình thiết kế bao gồm các bước sau đây:
- Xác định mục đích của CSDL
- Tìm kiếm và sắp xếp thông tin cần thiết
- Phân chia thông tin vào các bảng
- Biến mục thông tin thành các cột
Hình 3 15: DFD mức 2 của chức năng giao hàng
Hình 3 16: DFD mức 2 của chức năng giao hàng
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaKH Mã khách hàng nvarchar 50 Khóa chính
TenKH Tên khách hàng nvarchar 50 Not null
DiaChi Địa chỉ khách hàng nvarchar 100 Not null
DienThoai Số điện thoại khách hàng nvarchar 50 Not null
Hạng thành viên của khách hàng nvarchar 50 Not null
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaNV Mã nhân viên nvarchar 50 Khóa chính
TenNV Tên nhân viên nvarchar 50 Not null
GioiTinh Giới tính nhân viên nvarchar 10 Not null
NgaySinh Ngày sinh nhân viên datetime Not null
DiaChi Địa chỉ nhân viên nvarchar 50 Not null
DienThoai Số điện thoại nhân viên nvarchar 15 Not null
MaCV Mã chức vụ nvarchar 30 Khóa ngoại
MaCN Mã chi nhánh nvarchar 50 Khóa ngoại
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaSP Mã sản phẩm nvarchar 50 Khóa chính
TenSP Tên sản phẩm nvarchar 50 Not null
SoLuong Số lượng tồn float Not null
DonGiaNha p Đơn giá nhập float Not null
DonGiaBan Đơn giá bán float Not null
Anh Ảnh sản phẩm nvarchar 200
MaLH Mã loại hàng của sản phẩm nvarchar 50 Khóa ngoại
MaKho Mã kho chứa sản phẩm nvarchar 50 Khóa ngoại
Mã nhà cung cấp cung cấp sản phẩm nvarchar 50 Khóa ngoại
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaLH Mã loại hàng nvarchar 50 Khóa chính
TenLH Tên loại hàng nvarchar 50 Not null
MaPX Mã phiếu xuất nvarchar 50 Khóa chính
NgayXuat Ngày xuất datetime Not null
TongTien Tổng giá trị phiếu xuất float Not null
MaNV Mã nhân viên tạo phiếu xuất nvarchar 50 Khóa ngoại
MaKH Mã khách hàng nhận phiếu xuất nvarchar 50 Khóa ngoại
MaKho Mã kho xuất hàng nvarchar 50 Khóa ngoại
3.3.1.6 Bảng chi tiết phiếu xuất
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaPX Mã phiếu xuất nvarchar 50 Not null
MaSP Mã sản phẩm nvarchar 50 Not null
SoLuong Số lượng int Not null
DonGiaBan Đơn giá bán float Not null
GiamGia Giảm giá float Not null
ThanhTien Thành tiền Float Not null
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
Username Tên đăng nhập nvarchar 50 Not null
Password Mật khẩu nvarchar 50 Not null
MaNV Mã nhân viên nvarchar 50 Khóa ngoại
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaCN Mã chi nhánh nvarchar 50 Khóa chính
TenCN Tên chi nhánh nvarchar 50 Not null
DiaChi Địa chỉ chi nhánh nvarchar 100 Not null
DienThoai Số điện thoại chi nhánh nvarchar 20 Not null
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaCV Mã chức vụ nvarchar 50 Khoá chính
TenCV Tên chức vụ nvarchar 50 Not null
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaPN Mã phiếu nhập nvarchar 50 Khóa chính
NgayNhap Ngày nhập datetime Not null
TongTien Tổng giá trị phiếu nhập nvarchar 100 Not null
MaNV Mã nhân viên tạo phiếu nhập nvarchar 50 Khóa ngoại
MaNCC Mã nhà cung cấp nhận phiếu nhập nvarchar 50 Khóa ngoại
MaKho Mã kho nhận hàng nvarchar 50 Khóa ngoại
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
SoLuong Số lượng nhập float Not null
DonGiaNha p Đơn giá nhập float Not null
GiamGia Giảm giá đơn nhập float Not null
ThanhTien Tổng giá trị đơn nhập float Not null
MaPN Mã phiếu nhập nvarchar 50 Khóa ngoại
Mã sản phẩm trong phiếu nhập nvarchar 50 Khóa ngoại
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaKho Mã kho nvarchar 50 Khóa chính
TenKho Tên kho nvarchar 50 Not null
DiaChi Địa chỉ kho nvarchar 100 Not null
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
MaNCC Mã nhà cung cấp nvarchar 50 Khóa chính
TenNCC Tên nhà cung cấp nvarchar 50 Not null
DiaChi Địa chỉ nhà cung cấp nvarchar 100 Not null
DienThoai Số điện thoại nvarchar 20 Not null nhà cung cấp
3.3.1.14 Bảng yêu cầu nhập hàng
Tên thực thể Diễn giải Kiểu dữ liệu Chiều dài Ràng buộc
ThoiGian Thời gian yêu cầu nvarchar 50 Not null
MaSP Mã sản phẩm được yêu cầu nvarchar 50 Khóa ngoại
MaNV Mã nhân viên gửi yêu cầu nvarchar 50 Khóa ngoại
3.3.2.1 Mối quan hệ nhân viên – hóa đơn
3.3.2.2 Mối quan hệ khách hàng – phiếu xuất
Hình 3 17: Nhân viên - hóa đơn
Hình 3 18: Nhân viên - hóa đơn
Hình 3 19: Khách hàng - phiếu xuất
3.3.2.3 Mối quan hệ nhân viên – phiếu nhập
3.3.2.4 Mối quan hệ nhân viên – account
Hình 3 21: Nhân viên - phiếu nhập
Hình 3 22: Nhân viên - phiếu nhập Hình 3 23: Nhân viên - Account
3.3.2.5 Mối quan hệ nhân viên – chức vụ
3.3.2.6 Mối quan hệ nhân viên – chi nhánh
3.3.2.7 Mối quan hệ nhà cung cấp – sản phẩm
Hình 3 25: Nhân viên - chức vụ
Hình 3 26: Nhân viên - chức vụ
Hình 3 27: Nhân viên - chi nhánh
Hình 3 28: Nhân viên - chi nhánh
3.3.2.8 Mối quan hệ nhà cung cấp – phiếu nhập
Hình 3 31: Nhà cung cấp - phiếu nhập
Hình 3 32: Nhà cung cấp - phiếu nhập
3.3.2.9 Mối quan hệ sản phẩm – phiếu nhập
Hình 3 33: Sản phẩm - phiếu nhập
Hình 3 34: Sản phẩm - phiếu nhập
3.3.2.10 Mối quan hệ sản phẩm – phiếu xuất
Hình 3 35: Sản phẩm - phiếu xuất
Hình 3 36: Sản phẩm - phiếu xuất
3.3.2.11 Mối quan hệ sản phẩm – loại hàng
Hình 3 37: Sản phẩm - loại hàng
Hình 3 38: Sản phẩm - loại hàng
3.3.2.12 Mối quan hệ sản phẩm – kho
3.3.2.13 Mối quan hệ sản phẩm – nhân viên
Hình 3 41: Sản phẩm - nhân viên
Hình 3 42: Sản phẩm - nhân viên
3.3.3 Mô hình thực thể kết hợp (ERD)
3.3.4 Mô hình dữ liệu mức logic
3.3.5 Mô hình cơ sở dữ liệu quan hệ
KhachHang (MaKH, TenKH, DiaChi, DienThoai, HangThanhVien)
ChiNhanh (MaCN, TenCN, DiaChi, DienThoai)
NhanVien (MaNV, TenNV, MaCV, MaCN, NgaySinh, GioiTinh, DiaChi, DienThoai)
NhaCungCap (MaNCC, TenNCC, DiaChi, DienThoai)
SanPham (MaSP, TenSP, MaLH, SoLuong, DonGiaNhap, DonGiaBan, Anh, GhiChu, MaKho, MaNCC)
PhieuNhap (MaPN, MaNV, NgayNhap, MaNCC, TongTien, MaKho)
PhieuXuat (MaPX, MaNV, NgayXuat, MaKH, TongTien, MaKho)
4.1 Giới thiệu về chương trình quản lý bán hàng
Chương trình giúp người quản lý kiểm soát được hoạt động kinh doanh của cửa hàng một cách dễ dàng Chương trình hỗ trợ:
- Xây dựng hệ thống bán hàng cho cửa hàng
- Kiểm soát được thông tin của nhân viên từng chi nhánh
- Kiểm soát được thông tin các khách hàng của cửa hàng
- Kiểm soát được các thông tin liên quan đến hoạt động bán hàng như Kho, Chi Nhánh, Nhà Cung Cấp, Tài Khoản,…
- Kiểm soát được các yêu cầu nhập kho của nhân viên khi hàng đã hết
- Kiểm soát các hóa đơn nhập xuất kho để đảm bảo tính minh bạch và luôn đủ lượng hàng trong kho để cung cấp cho khách hàng.
- Kiểm soát hóa đơn, giúp báo cáo doanh thu của cửa hàng theo từng tháng, năm tùy vào nhu cầu của Ban Lãnh Đạo
- Đổi mật khẩu cho nhân viên khi có nhu cầu
- Phân quyền đăng nhập, nhân viên và quản lý sẽ có khả năng truy cập khác nhau vào CSDL
Hiện thực chương trình
4.2.1 Xây dựng lớp Kết Nối và lớp Funcions Để bắt đầu xây dựng ứng dụng chúng ta cần tạo một Class để tạo kết nối với CSDL và ngắt kết nối khi cần. Ở đây chúng ta sẽ xây dựng 2 phương thức chính đó là Connect để kết nối và Disconnect để ngắt kết nối với CSDL đồng thời tạo một đối tượng public mang kiểu dữ liệu là SQLConnection là Con để chứa đường dẫn cho các phương thức truy xuất khác cần có thể gọi đến ở bất cứ đâu trong chương trình có thể sử dụng.
Tiếp đó chúng ta cần tạo một Class để lưu các phương thức thường xuyên sử dụng ở các Form khác nhau ví dụ như : GetDataToTable để lấy dữ liệu thông qua câu truy vấn và thêm vào dataTable, CheckKey để kiểm tra xem một mã có tồn tại trong CSDL không, RunSQL để thực thi câu truy vấn,… Đến phần sau khi đi vào từng Form chúng ta sẽ phân tích kỹ từng chức năng và logic, cách hoạt động của Form đó và tất nhiên các Form đều sẽ cần phải gọi đến Class này để sử dụng các phương thức cần thiết nên đây là một Class rất cần thiết và quan trọng trong chương trình.
Giải thích của từng phương thức cũng như từng đoạn code của Funcions đã được chú thích trong code của chương trình cho các nhà phát triển có thể sử dụng và sửa chữa khi có lỗi.
4.2.2 Đăng nhập vào chương trình Để sử dụng được các chức năng của chương trình, bước đầu tiên ta cần đăng nhập với tài khoản và mật khẩu đồng thời cần chọn chức vụ của bản thân Bên cạnh đó còn có nút hiện mật khẩu sẽ hiển thị mật khẩu dạng kí tự đã được mã hóa dưới dạng chấm.
Khi kết nối với cơ sở dữ liệu thành công sẽ có một thông báo để ta có thể nhận biết.
Nếu nhập sai tài khoản hoặc mật khẩu hoặc chức vụ, hệ thống sẽ thông báo
“Tên đăng nhập hoặc mật khẩu không đúng” bạn cần phải nhập đúng tài khoản và mật khẩu cũng như chọn đúng chức vụ của bản thân thì mới có thể tiến hành đăng nhập thành công.
Khi nhập đúng tên tài khoản và mật khẩu, người dùng sẽ bắt đầu sử dụng được các chức năng của chương trình.
Bên cạnh đó bạn cũng có thể ấn nút thoát nếu không muốn sử dụng và tắt chương trình, chương trình sẽ tự động ngắt kết nối với CSDL đồng thời sẽ giải phóng tài nguyên đã sử dụng. Ở phần thuật toán, tôi sử dụng một câu truy vấn dạng “SELECT COUNT(*) FROM Account” để đếm số lượng tài khoản thỏa các giá trị thông qua ExecuteScalar, tài khoản, mật khẩu và chức vụ được nhập vào sẽ được đếm Nếu số lượng trả về >0 thì chắc chắn tài khoản này tồn tại và tùy theo chức vụ họ chọn, chương trình sẽ phân về từng Form liên quan Bên cạnh đó việc thuộc tính MaNhanVien là khóa chính ở cả 2 bảng NhanVien và Account nên sẽ không có việc cùng 1 nhân viên có cùng lúc 2 tài khoản qua đó đảm bảo tính chính xác và toàn vẹn dữ liệu.
Khi đăng nhập với chức vụ Quản Lý, người dùng sẽ được điều hướng đến
Form Admin. Ở đây là nơi quản lý có thể truy cập đến các chuyên mục khác nhau cần được quản lý đã được hiển thị ở thanh Menu phía dưới dòng chữ HỆ THỐNG QUẢN LÝ BÁN HÀNG.
Sẽ chứa 3 mục con bao gồm :
+ Nhân Viên : sẽ là nơi quản lý các thông tin của nhân viên, thêm, xóa, sửa, tìm kiếm, in danh sách nhân viên hiện tại.
+ Tài khoản : sẽ là nơi quản lý các tài khoản đăng nhập trên toàn bộ hệ thống cũng bao gồm các chức năng thêm xóa sửa, tìm kiếm, in.
+ Chức vụ : sẽ là nơi quản lý các chức vụ hiện tại đang có trên hệ thống cửa hàng cũng bao gồm các chức năng thêm xóa sửa, tìm kiếm, in.
+ Sản Phẩm : nơi quản lý các thông tin về sản phẩm của cửa hàng, thêm, xóa, sửa, tìm kiếm, in các sản phẩm hiện có.
+ Loại Hàng : nơi quản lý các thông tin về các loại sản phẩm của cửa hàng, mỗi loại sản phẩm sẽ bao gồm nhiều sản phẩm.
+ Kho : nơi quản lý các thông tin về các kho hiện có của cửa hàng.
+ Chi Nhánh : nơi quản lý các thông tin các chi nhánh trên khắp đất nước của cửa hàng.
Sẽ bao gồm 2 mục con như sau:
+ Nhà Cung Cấp : nơi quản lý các thông tin về các nhà cung cấp hiện tại của cửa hàng.
+ Khách Hàng : nơi quản lý các thông tin về các khách hàng đã được ghi nhận thông tin thông qua việc mua hàng tại cửa hàng.
4.2.3.4 Mục Quản Lý Kinh Doanh
Sẽ bao gồm 3 mục con như sau :
+ Nhập Hàng : nơi quản lý các thông tin về các hoạt động nhập hàng của cửa hàng.
+ Quản Lý Nhập – Xuất : nơi quản lý các thông tin về chứng từ, hóa đơn về các hoạt động nhập xuất hàng hóa của cửa hàng.
+ Yêu Cầu Nhập Hàng : nơi quản lý các thông tin về các yêu cầu nhập hàng mà trong quá trình bán hàng nhân viên kiểm tra thấy sản phẩm đã hết và gửi yêu cầu về hệ thống.
4.2.3.5 Mục Thông Tin Liên Hệ
Sẽ bao gồm 2 mục con như sau :
+ Thông Tin Phần Mềm : cung cấp các thông tin về phần mềm.
+ Báo cáo lỗi : đang phát triển hiện chưa có tính năng này.
Có tác dụng đăng xuất khỏi Form Admin để quay về trang đăng nhập lúc đầu.
Về phần thuật toán ở đây chúng ta sử dụng một kĩ thuật đó là Form Cha và Form Con thông qua 2 cách đó là tạo panel và hiển thị Form Con bên trong Panel đó hoặc mở một cửa sổ mới thông qua việc khởi tạo Form đó và dung ShowDialog để tạo thành một cửa sổ mới đồng thời ẩn Form Admin đi.
Các màu sắc ở thanh tiêu đề cũng thể hiện cho mức độ hoạt động cũng như độ quan trọng mà chúng em đã đánh giá về các Form, thông qua đó màu Xanh Lá là các Form cơ bản bổ trợ cho bán hàng và màu Đỏ là các Form chính, quan trọng. Đây là đánh giá chủ quan nên chủ yếu mang tính chất tham khảo là chính.
4.2.4 Quản Lý : Cụm Phím Chức Năng Ở tất cả các Form con thuộc về Form cha là Form Admin chúng ta đều thấy cụm phím chức năng Thêm, Lưu, Sửa, Xóa, Bỏ Qua, Tìm Kiếm, Hiện Danh Sách, Xuất Danh Sách.
Hình 4 7: Cụm phím chức năng
Việc điều khiển ẩn hiện các nút thông qua việc sử dụng thuộc tính Enable của Button, trong đó :
Sẽ hiện nút Lưu lên, ẩn nút Thêm, xóa sạch dữ liệu ở các textbox và gọi phương thức TaoMaMoi trong Class Funcions, hàm này sẽ nhận các giá trị là cột mà ta cần tạo mã (ID), bảng mà chứa cột đó (TableName) và cuối cùng là định dạng mã mà chúng ta cần tạo (selectedCategory) Ở đây ta có sử dụng thêm phương thức GenerateNextCode để tạo số mới từ đã được tạo.
Ví dụ : Mã cuối cùng trong bảng của tôi là CN11 thì phương thức này sẽ tạo ra CN12 và return nó dưới dạng một chuỗi (string).
Trong chương trình hiện tại mã cuối cùng là CN15, sau khi ấn nút Thêm sẽ là CN16 như hình dưới
Sau khi ấn nút Thêm, mã mới sẽ được tạo và người dùng sẽ điền các thông tin còn lại vào sau đó ấn nút Lưu Hệ thống sẽ lưu xuống CSDL các dữ liệu được lấy từ các textBox tương ứng qua câu lệnh INSERT.
Tiếp tục ví dụ thêm Chi Nhánh bên trên, bạn sẽ điền thông tin vào các textBox như sau:
Sau khi ấn nút Lưu, có thể thấy CN16 đã được lưu vào CSDL như hình dưới.
4.2.4.3 Sửa Để sử dụng được nút này người dùng cần chọn một dòng trong DataGridView là bảng thông tin kế bên cụm phím chức năng, khi đó nút này sẽ hiện Các thay đổi ở tất cả các textbox (ngoại trừ textbox chứa Mã, vì đây là khóa chính nên sẽ bị ẩn đi không cho phép chỉnh sửa) sẽ được lưu lại vào CSDL thông qua câu lệnh UPDATE. Lấy ví dụ sửa một chi nhánh :
Hình 4 11: Sau khi thêm Hình 4 12: Nhập thông tin chi nhánh vào textbox
Hình 4 13: Thêm chi nhánh thành công
Sau khi sửa thông tin từ Thủ Dầu Một thành Thuận An như hình dưới:
Sau đó ấn nút Lưu CN10 sẽ được cập nhật lại:
Báo cáo (Report)
Chương trình cung cấp chức năng tạo báo cáo cho phép người dùng tạo các báo cáo doanh thu hàng tháng, báo cáo về nhân viên, khách hàng, và chi nhánh của cửa hàng, danh sách sản phẩm,…
Các chức năng của báo cáo được thực trong nút Xuất Danh Sách , các form khác sử dụng tương tự.
4.3.1 Báo Cáo Chỉ Xuất Thông Tin Ở những Form Báo cáo chỉ xuất thông tin, khi ấn Xuất Thông Tin hệ thống sẽ xuất ra File Excel các thông tin về Form đang được chọn để xuất.
Thông tin được đưa vào Form là thông tin trên DataGridView, tức là thông tin sau khi lọc (hoặc nếu người dùng không lọc có thể xuất toàn bộ danh sách).
Hình 4 53: Cập nhật thành công
Hình 4 55: Báo cáo thông tin nhân viên Hình 4 54: Báo cáo thông tin mặt hàng
Hình 4 56: Báo cáo thông tin khách hàng
Hình 4 58: Báo cáo thông tin chức vụ Hình 4 57: Báo cáo thông tin chi nhánh
Hình 4 59: Báo cáo thông tin kho hàng
Hình 4 60: Báo cáo thông tin sản phẩm
Báo cáo nhập hàng là một báo cáo đặc biệt khi nó cần xuất ra thêm thông tin về tổng giá trị đơn hàng, cũng như chỉ lấy từ DataTable được nhập vào mà không có chức năng lọc.
Dưới đây là báo cáo khi nhập hàng:
Hình 4 61: Báo cáo thông tin tài khoản đăng nhập
Hình 4 62: Nhập báo cáo nhập hàng
Sau khi nhập hàng vào hoàn tất, ta bấm xuất danh sách để xuất báo cáo.
Đăng Xuất/Thoát chương trình
Để đăng xuất tài khoản ta truy cập vào giao diện chính chọn hệ thống sau đó chọn Thoát hoặc Nút Đăng Xuất ở Form Bán Hàng.
Hình 4 63: Xuất báo cáo nhập hàng