Hệ thống quản lý bao gồm các chức năng như: quản lý thông tin nhà phân phối, khách hàng, danh mục sản phẩm, quản lý thông tin các đơn nhập hàng, xuất hàng hàng hóa, chiết khấu, bảo hành
Trang 1LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG ỨNG DỤNG WEBSITE QUẢN LÝ MUA BÁN VÀ BẢO HÀNH SẢN PHẨM
Cần Thơ, 2015
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG
Trang 2LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG ỨNG DỤNG WEBSITE QUẢN LÝ MUA BÁN VÀ BẢO HÀNH SẢN PHẨM
Mã số đề tài:
Có thể tìm hiểu luận văn tại:
-Trung tâm Học liệu, Trường Đại học Cần Thơ
-Website: http://www.lrc.ctu.edu.vn/
Cần Thơ, 2015
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG
Trang 3LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành đến các Thầy Cô giáo trong Trường Đại Học Cần Thơ, đặc biệt là quý Thầy, Cô thuộc khoa Công Nghệ Thông Tin và Truyền Thông đã tận tình giúp đỡ và tạo mọi điều kiện thuận lợi cho tôi trong suốt thời gian học tập tại trường
Tôi xin gửi lòng biết ơn chân thành và sâu sắc tới Thầy Nguyễn Đức Khoa người
đã trực tiếp hướng dẫn, góp ý, chỉ bảo những kiến thức cần thiết và quý báu để giúp đỡ tôi hoàn thành tốt luận văn này
Xin cảm ơn đến Anh Chị cùng ngành và bạn bè trong lớp đã nhiệt tình có những góp ý chân thành và thiết thực nhất
Xin cảm ơn bạn bè và gia đình đã luôn bên tôi, cổ vũ và động viên tôi những lúc khó khăn để có thể vượt qua và hoàn thành tốt luận văn này
Dù đã cố gắng, nổ lực rất nhiều để hoàn thành đề tài một cách tốt nhất và đúng theo tiến độ dự kiến nhưng không thể tránh khỏi những thiếu sót do hạn chế về mặt kiến thức cũng như xử lý lỗi trong quá trình làm bài Rất mong nhận được ý kiến đóng góp quý báu của thầy cô và bạn bè để đề tài có thể phát triển hoàn thiện
Với lòng biết ơn sâu sắc, tôi xin chân thành cảm ơn!
Cần Thơ, tháng 06 năm 2015 Sinh viên thực hiện
Nguyễn Thị Kim Ngân
Trang 4i
MỤC LỤC
MỤC LỤC i
DANH MỤC HÌNH iii
DANH MỤC BẢNG v
DANH MỤC KÍ HIỆU VÀ VIẾT TẮT vi
TÓM TẮT vii
ABSTRACT viii
CHƯƠNG 1: TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 LỊCH SỬ PHÁT TRIỂN ĐỀ TÀI 1
1.3 PHẠM VI CỦA ĐỀ TÀI 1
1.4 HƯỚNG GIẢI QUYẾT VẤN ĐỀ 2
1.4.1 Phương pháp thực hiện 2
1.4.2 Hướng giải quyết vấn đề 2
CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 3
2.1 MÔ HÌNH MVC 3
2.1.1 Định nghĩa 3
2.1.2 Tổng Quan Asp.Net MVC 3
2.1.3 Kiến trúc mô hình MVC 3
2.1.4 Cách thức hoạt động 6
2.1.5 Ưu điểm của mô hình MVC 7
2.2 BOOTSTRAP 7
2.2.1 Giới thiệu 7
2.2.2 Cơ chế hoạt động của Bootstrap 8
2.2.3 Ưu điểm của Bootstrap 8
2.2.4 Tại sao phải sử dụng Bootstrap? 9
Trang 5ii
2.3 ADO.NET ENTITY FRAMEWORK 10
2.3.1 Lịch sử phát triển Entity Framework 10
2.3.2 Khái niệm Về ADO.NET Entity Framework [8] 10
2.3.3 Tổng quan kiến trúc của Entity Framework [6] 11
2.3.4 Các kiểu xây dựng với Entity Framework 12
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 13
3.1 MÔ TẢ BÀI TOÁN 13
3.2 PHÂN TÍCH VÀ THIẾT KẾ CÁC MÔ HÌNH 14
3.2.1 Sơ đồ Biểu đồ phân cấp chức năng BFD 14
3.2.2 Biểu đồ Use case tổng quát 15
3.2.3 Tập thực thể 19
3.2.4 Các mối quan hệ trọng tâm 27
3.2.5 Mô hình ER 28
3.2.6 Mô hình vật lý 29
3.2.7 Mô hình cơ sở dữ liệu 30
3.2.8 Sơ đồ Class 31
3.3 KẾT QUẢ XÂY DỰNG HỆ THỐNG 32
3.3.1 Giao diện đăng nhập 32
3.3.2 Giao diện Danh mục sản phẩm 32
3.3.3 Giao diện Nhập hàng 36
3.3.4 Giao diện Xuất hàng 40
3.3.5 Giao diện bảo hành 44
3.3.6 Giao diện một số danh mục 45
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47
TÀI LIỆU THAM KHẢO 48
Trang 6iii
DANH MỤC HÌNH
Hình 2.1 Mô hình MVC 3
Hình 2.2 Các lo ại thiết bị 9
Hình 2.3 Sơ đồ kiến trúc tổng thể của Entity Framework 11
Hình 2.4 Các cách làm việc với Entity Framework 12
Hình 3 1 Biểu đồ phân c ấp chức năng BFD 14
Hình 3 2 Biểu đồ Use case của người Quản trị hệ thống 15
Hình 3 3 Phân rã Use case tìm kiếm 15
Hình 3 4 Phân rã Use case nhập hàng 16
Hình 3 5 Phân rã Use case quản lý bán hàng 16
Hình 3 6 Phân rã Use case quản lý bảo hành 17
Hình 3 7 Phân rã Use case thống kê báo cáo 17
Hình 3 8 Phân rã use case quản lý danh mục 18
Hình 3 9 Mối quan hệ NHAPDANHMUC 27
Hình 3 10 Mối quan hệ kết hợp PhieuBaoHanhChiTiet 27
Hình 3 11Mối quan hệ kết hợp XUATDANHMUC 27
Hình 3 12 Mô hình ER 28
Hình 3 13 Mô hình vật lý 29
Hình 3 14 Mô hình CSDL 30
Hình 3 15 Sơ đồ lớp 31
Hình 3 16 Giao diện form đăng nhập 32
Hình 3 17 Giao diện danh sách danh mục sản phẩm 32
Hình 3 18 Giao diện thêm mới sản phẩm 33
Hình 3 19 Giao diện tìm kiếm danh mục sản phẩm theo tên 33
Hình 3 20 Giao diện Chỉnh sửa danh mục sản phẩm 34
Hình 3 21 Giao diện Xóa danh mục sản phẩm 34
Hình 3 22 Sơ đồ tuần tự chức năng chỉnh sửa danh mục sản phẩm 35
Hình 3 23 Giao diện danh sách phiếu nhập 36
Hình 3 24 Giao diện thêm phiếu nhập 36
Hình 3 25 Giao diện tổng quát các phiếu nhập chi tiết 37
Hình 3 26 Giao diện Xóa nhập chi tiết 37
Hình 3 27 Giao diện thêm phiếu nhập chi tiết 38
Hình 3 28 Giao diện chỉnh sửa nhập chi tiết 38
Hình 3 29 Sơ đồ tuần tự chức năng nhập hàng 39
Hình 3 30 Giao diện cập nhật sản phẩm sau khi nhập 40
Hình 3 31 Giao diện danh sách phiếu xuất 40
Hình 3 32 Giao diện thêm phiếu xuất chi tiết cho danh mục sản phẩm 41
Hình 3 33 Giao diện cập nhật sản phẩm xuất 41
Trang 7iv
Hình 3 34 Sơ đồ tuần tự chức năng xuất hàng 42
Hình 3 35 Hóa đơn phiếu xuất 43
Hình 3 36 Giao diện danh sách phiếu bảo hành 44
Hình 3 37 Giao diện theo phiếu bảo hành 44
Hình 3 38 Giao diện cập nhật lí do bảo hành 45
Hình 3 39 Danh sách các nhà phân phối 45
Hình 3 40 Giao diện danh sách khách hàng 46
Trang 8v
DANH MỤC BẢNG
Bảng 3.1 Tập thực thể khách hàng 19
Bảng 3.2 Tập thực thể nhà phân phối 19
Bảng 3.3 Tập thực thể loại lí do 19
Bảng 3.4 Tập thực thể lí do 20
Bảng 3.5 Tập thực thể nước sản xuất 20
Bảng 3.6 Tập thực thể Hãng sản xuất 20
Bảng 3.7 Tập thực thể Lo ại danh mục 21
Bảng 3.8 Tập thực thể danh mục 21
Bảng 3.9 Tập thực thể Chức vụ 21
Bảng 3.10 Tập thực thể Tài kho ản 22
Bảng 3.11 Tập thực thể chi nhánh cửa hàng 22
Bảng 3.12 Tập thực thể Sản phẩm 23
Bảng 3.12 Tập thực thể Phiếu bảo hành 23
Bảng 3.13 Tập thực thể nhà phân phối chiết khấu hóa đơn 24
Bảng 3.15 Tập thực thể Phiếu Nhập 24
Bảng 3.16 Tập thực thể cửa hàng chiết khấu hóa đơn 25
Bảng 3.17 Tập thực thể Phiếu Xuất 25
Bảng 3.18 Tập thực thể Phiếu chi 26
Bảng 3.19 Tập thực thể Phiếu thu 26
Trang 9vi
DANH MỤC KÍ HIỆU VÀ VIẾT TẮT
STT Ký hiệu/Chữ viết tắt Định nghĩa/Mô tả
(Business Function Diagram)
(Conceptual Data Model)
Trang 10vii
TÓM TẮT
Ngày nay, nền kinh tế đang phát triển với xu hướng toàn cầu hóa của nền kinh tế thế giới Nhu cầu của con người ngày càng được đáp ứng, do nhu cầu về trao đổi hàng hóa và mua bán ngày càng tăng Một giải pháp hỗ trợ không thể thiếu mà chúng ta dễ dàng nhận thấy đó là quá trình tin học hóa Chỉ với một vài thao tác đơn giản bạn đã có thể thao tác nhanh chóng và chính xác những gì mà mình muốn
Hiện nay với sự phát triển không ngừng của công nghệ thì nhu c ầu của con người ngày càng tăng Trên thị trường hiện nay một phương tiện thông tin đã trở nên quen thuộc với chúng ta đó là điện thoại di động Chỉ với một vài thao tác bạn đã
có thể kết nối tới bạn bè, người thân của mình trên khắp đất nước Không những
nó là một phương tiện liên lạc mà còn đóng góp quan trọng trong các nhu cầu vui chơi giải trí và học tập
Qua đó cá nhân đưa ra hệ thống quản lý bán hàng và bảo hành sản phẩm với mặt hàng chủ yếu ở đây là về điện thoại di động Hệ thống quản lý bao gồm các chức năng như: quản lý thông tin nhà phân phối, khách hàng, danh mục sản phẩm, quản lý thông tin các đơn nhập hàng, xuất hàng hàng hóa, chiết khấu, bảo hành sản phẩm, thống kê và một số chức năng khác Hệ thống được xây dựng theo các bước: thu thập dữ liệu về các hoạt động của cửa hàng và xây dựng mô hình cơ sở
dữ liệu Sử dụng các công c ụ hỗ trợ để thiết kế giao diện theo từng chức năng người dùng Dùng ngôn ngữ lập trình ASP.NET theo mô hình MVC để xây dựng các chức năng theo yêu cầu bài toán quản lý trên cơ sở dữ liệu SQL Server Qua quá trình thực hiện, đã xây dựng được một hệ thống có các chức năng cơ bản đáp ứng các yêu cầu của bài toán quản lý đặt ra Mặc dù đã có nhiều cố gắng
để thực hiện đề tài một cách hoàn chỉnh nhất Song, trong quá trình làm bài không thể tránh khỏi những sai sót nhất định mà bản thân chưa thấy được, vì vậy
hệ thống sẽ được tiếp tục hoàn thiện và mở rộng để được cài đặt và đưa vào sử dụng trong thực tế
Rất mong nhận được những ý kiến đóng góp quý báu c ủa quý Thầy Cô và các bạn cùng lớp để có thêm nhiều kinh nghiệm và ngày càng hoàn thiện
Từ khóa: Quản lý bán hàng, quản lý nhập xuất kho, quản lý bảo hành sản phẩm
bằng ngôn ngữ ASP.NET MVC
Trang 11viii
ABSTRACT
Today, the economy is growing with the trend of globalization of the world economy Human needs are met because the demand for exchange of goods and trade is increasing An indispensable support solution that we easily realize it as the process of computerization With just a few simple steps we can already manipulate quickly and exactly what I want
Now the development technology as fast, so the needs of the growing man On the market today, a news media has become so familiar to us that is mobile phone With just a few taps you can already connect to friends, his relatives across the country Not only it is a means of communication but also made important contributions in the needs of entertainment and learning
Through that personal offering sales management systems and product warranty for goods primarily in this is the mobile phone Management system includes functions such as: management, information distributors, customers, product categories, the information management unit shipment, shipment of goods, warranty products and systems Statistics and some other functions The system i s built according to the steps: collect data about the operation of the store and build the model database Use the support tool to design the interface for each user functions Used ASP.NET programming languages according to the MVC model for building the functionality required to manage problem on SQL Server databases
Through the implementation process, has built a system that contains the basic functionality that meets the requirements of the management problem posed Although there have been many attempts to make the subject a most complete way Song, in the process of doing the inevitable given that the errors themselves have not seen, so the system will be to further improve and expand to be installed and put into use in practice
I look forward to receiving the feedback opinions from teachers and classmates
to get more experience and become more complete
Keywords: Sales Manager, export-import management, inventory management,
warranty management by ASP.NET MVC language
Trang 121
CHƯƠNG 1: TỔNG QUAN1.1 ĐẶT VẤN ĐỀ
Ngày nay, công nghệ thông tin đã trở thành một phần không thể thiếu trong bất cứ lĩnh vực nào của đời sống, việc ứng dụng tin học vào các lĩnh vực của đời sống đang dần trở thành một nhu cầu tất yếu của con người và một trong những lĩnh vực đang được ứng dụng tin học hóa rất phổ biến ở nước ta là lĩnh vực quản lý Với việc ứng dụng các công nghệ trong quản lý, công việc của con người trở nên hiệu quả và nhanh chóng hơn
Trong những năm gần đây, cùng với sự phát triển của công nghệ là chất lượng cuộc sống ngày càng được nâng cao, có thể thấy liên lạc là nhu cầu cần thiết của tất cả mọi người và điện thoại là công cụ đắc lực cho nhu cầu ấy, chính vì thế nhu cầu sử dụng điện thoại di động ngày càng tăng cao dẫn đến sự xuất hiện ngày càng nhiều của các siêu thị, cửa hàng, trung tâm mua bán điện tho ại xuất hiện trên thị trường
Đi đôi với việc phát triển kinh doanh của cửa hàng thì cần phải có hệ thống quản lý bán hàng và bảo hành sản phẩm nhằm giúp cho công tác phục vụ và chăm sóc khách hàng một cách tốt nhất, nhờ đó mà các quy trình được quản lý chặt chẽ, chính xác, nhanh chóng hơn
Xuất phát từ nhu cầu thực tế cần có một hệ thống bán hàng để cung cấp cho các siêu thị, cửa hàng cùng với nhu cầu muốn tìm hiểu sâu hơn lĩnh vực phân tích và thiết kế hệ
thống thông tin nên bản thân đã quyết định thực hiện đồ án “Xây dựng ứng dụng Web
quản lý mua bán và bảo hành sản phẩm” làm đề tài để thực hiện luận văn tốt nghiệp
và triển khai hệ thống để có thể sử dụng vào thực tế
1.2 LỊCH SỬ PHÁT TRIỂN ĐỀ TÀI
Đề tài phát triển dựa trên nhiều mô hình hoạt động kinh doanh mua bán hiện có trên thực tế Đây là một đề tài không mới nhưng mang tính thực tiễn và có thể triển khai rộng Đồ ng thời ứng dụng công nghệ mới với mục đích làm cho chương trình có thể đáp ứng được nhu cầu quản lý ngày càng phức tạp với khối lượng thông tin ngày càng lớn, dễ dàng trong triển khai c ũng như trong ứng dụng
1.3 PHẠM VI CỦA ĐỀ TÀI
Với đề tài “Xây dựng ứng dụng Web quản lý mua bán và bảo hành sản phẩm” bằng
ngôn ngữ ASP.NET trên mô hình MVC tương đối rộng nên trong bài luận văn này sẽ tập trung chủ yếu vào xây dựng một số chức năng chính c ủa chương trình
Trang 132
Cụ thể, ứng dụng sẽ giúp người dùng dễ dàng quản lý:
- Đăng nhập
- Cập nhật thông tin khách hàng, nhà cung c ấp, danh mục sản phẩm
- Tìm thông tin danh mục sản phẩm, nhà cung cấp
- Nghiên cứu phân tích thiết kế hệ thống và các phương pháp tổ chức, phân tích
và thiết kế cơ sở dữ liệu
- Áp dụng kỹ thuật lập trình cùng với ngôn ngữ SQL để tiến hành thực hiện đề tài
Về kỹ thuật:
- Sử dụng công c ụ Power Designer (version 15.1) để thiết kế cơ sở dữ liệu
- Áp dụng công nghệ ASP.NET theo mô hình MVC
- Dùng hệ quản trị cơ sở dữ liệu SQL Server 2008 để tạo và quản lý cơ sở dữ liệu
- Xây dựng các sơ đồ cần thiết
- Triển khai mô hình cơ sở dữ liệu trong SQL Server, nhập dữ liệu vào các bảng
dữ liệu
- Thiết kế giao diện dựa trên yêu cầu và cở sở phân tích
- Xây dựng chương trình ứng dụng dựa trên các chức năng đã phân tích và giao diện đã thiết kế
Trang 143
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Ngoài những công cụ hỗ trợ quen thuộc như: PowerDesigner 15.1, SQL Server, Visual Studio sản phẩm còn sử dụng các công nghệ mới hỗ trợ như Mô hình MVC, Bootstrap
2.1 MÔ HÌNH MVC
2.1.1 Định nghĩa
Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm Nó giúp cho các nhà phát triển tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác, giúp cho việc phát triển ứng dụng nâng c ấp, bảo trì và thử nghiệm trở nên đơn giản và dễ dàng hơn
2.1.3 Kiến trúc mô hình MVC
MVC là một thiết kế dựa trên nguyên tắc chia các thành phần ứng dụng thành tầng cơ bản: Model, View và Cotroller
Hình 2.1 Mô hình MVC
Trang 154
2.1.3.1 Models
Là thành phần có nhiệm vụ: Truy xuất dữ liệu từ cơ sở dữ liệu và cung cấp dữ liệu cho
cơ sở dữ liệu Lưu trữ thông tin, trạng thái của các đối tượng
Tất cả các nghiệp vụ logic đều được thực thi ở Model: dữ liệu vào từ người dùng sẽ thông qua View để kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu Việc truy xuất, xác nhận và lưu dữ liệu là phần việc của Model
Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất cơ sở dữ liệu, đối tượng mô tả dữ liệu như các class (lớp), hàm xử lý,…
Model là các lớp java có nhiệm vụ:
- Nhận các yêu cầu từ View
- Thực thi các yêu c ầu đó (tính toán, kết nối cơ sở dữ liệu)
- Trả về các giá trị tính toán cho View
Ngoài ra, Model có thể:
- Đánh giá tính hợp lệ của dữ liệu đầu vào
- Chuyển đổi dữ liệu
- Đưa ra quyết định về nghiệp vụ
- Thực hiện việc xử lý dữ liệu theo một quy trình nào đó
Với hai vai trò tương đối khác biệt nên một Model thường được tách thành các lớp có các vùng xử lý riêng biệt:
- Vùng xử lý logic nghiệp vụ: thường là xử lý các quy tắc hay chính sách c ủa nghiệp vụ cũng như quy trình nghiệp vụ
- Vùng xử lý dữ liệu: cung cấp, lưu trữ dữ liệu và chuyển đổi dữ liệu thành các dạng khác nhau theo yêu cầu
Trong các tình huống đơn giản, Model chỉ làm vài thao tác đơn giản như lấy dữ liệu từ
cơ sở dữ liệu Trong các tình huống phức tạp, việc xử lý có thể là tổ hợp của hàng trăm lớp diễn ra trên một hoặc vài máy chủ (server) Do vậy, trong Model không chỉ có các thao tác trên cơ sở dữ liệu mà còn là trên tập tin hệ thống, bộ nhớ, networking I/O Model hoạt động như một tầng dịch vụ nhằm có thể tái sử dụng giữa các Co ntroller Khi Controller gọi Model thông qua các giao diện lập trình (API) của Model, nó cần biết một số ứng xử chung của Model (ví dụ: cách thức mà Model gửi tín hiệu và quá trình xử lý yêu cầu của nó; các lỗi ngoại lệ có xảy ra hay không, kiểu của lỗi và lỗi trong trường hợp nào)
Trang 16Bản thân View cũng là một tổ hợp của nhiều lớp Có thể có các View con để giảm tải trên một số lớp chính và để sử dụng lại mã Vì vậy, tính logic của View có thể là logic của một cây phân c ấp
Trong mô hình truyền thống View có trách nhiệm chuyển đổi dữ liệu hay trạng thái của Model thành cấu trúc trực quan Do vậy, dữ liệu của Model cần được định nghĩa một cách hợp lý
Sự tách biệt của hai thành phần này trong MVC sẽ giúp cho người lập trình phân định được một biên giới rõ ràng giữa cách thức lưu trữ (hoặc lấy dữ liệu) và cách trình bày
dữ liệu Vì vậy, tính phức tạp của quy trình lấy dữ liệu, xử lý dữ liệu cũng như sự thay đổi của chúng theo thời gian trước khi trả về sẽ không làm ảnh hưởng đến việc trình bày dữ liệu Điều này khá quan trọng trong việc tích hợp các ứng dụng
Ngoài ra, cách làm này thực sự đảm bảo việc tách biệt vai trò của người thiết kế giao diện với vai trò của lập trình viên thiên về dữ liệu Như vậy, khi làm việc theo nhóm, người quản trị dự án có thể tổ chức nhóm phát triển thành các nhóm kĩ năng và nhóm phát triển ứng dụng song song với nhau
Các công nghệ thường được sử dụng ở View là HTML, CSS và Java Script
Trang 17Là các lớp điều khiển luồng ứng dụng, giữ nhiệm vụ nhận và điều hướng các yêu c ầu
từ người dùng và gọi đúng những phương thức xử lý chúng Chẳng hạn thành phần này sẽ nhận yêu cầu từ url và form để thao tác trực tiếp với Model
Tùy theo cách thiết kế lớp mà chúng ta thường thấy Controller gồm:
- Front Controller: là một controller xử lý tất cả các yêu c ầu người dùng cho trang web Front Controller có nhiệm vụ hợp nhất tất cả các xử lý yêu cầu vào một kênh yêu cầu thông qua một đối tượng
- Dispatcher: lớp điều phối hướng các điều khiển đi mức cao hơn
- Request: xử lý một phần dữ liệu đ ầu vào ở mức GET, POST
- Session: xử lý một phần dữ liệu đ ầu vào ở mức SESSION
Tùy theo dữ liệu đầu vào, Controller sẽ thực hiện các phép lọc (với dịch vụ lấy từ Model), các tính toán lựa chọn (action mapping) dựa trên kiến trúc và cấu hình nhằm xác định thành phần lớp chính sẽ thực hiện yêu cầu của người dùng Hiểu một cách đơn giản, Controller là thành phần trung gian (đồng bộ hóa) giữa View và Model Nó nhận dữ liệu nhập vào qua View, sau đó gọi Model tương ứng rồi lấy kết quả trả về từ Model này Tiếp theo, một View thích hợp sẽ được lựa chọn, Controller sẽ chuyển tiếp
dữ liệu vào View đó để nó xử lý
Một số hoạt động thường thấy của Controller:
- Tạo form, gửi tin nhắn đến form để yêu cầu kiểm tra dữ liệu
- Tạo các dịch vụ liên quan đến nghiệp vụ ứng dụng, yêu c ầu các lớp dịch vụ tương tác với nguồn dữ liệu để trả về hay thay đổi trạng thái dữ liệu: thực hiện các thao tác chuyển đổi dữ liệu, kiểm tra quyền truy cập trên một hoạt động cụ thể, tương tác với cơ sở dữ liệu, tương tác với các web service
- Tạo đối tượng View, gán các nguồn dữ liệu lấy được từ đối tượng dịch vụ vào cho View
2.1.4 Cách thức hoạt động
MVC chia trách nhiệm công việc thành ba phần riêng rẽ:
- Phát triển (development): các nhà phát triển làm việc với Model Đặc trưng c ủa phần này là tận dụng một cách triệt để kiến thức, kỹ năng của các lập trình viên liên quan tới thuật toán xử lý dữ liệu, quản trị cơ sở dữ liệu
Trang 187
- Thiết kế (design): các nhà thiết kế làm việc trực tiếp với lớp View, chịu trách nhiệm tạo ra "cảm quan" cho ứng dụng Họ cần có kinh nghiệm làm việc với HTML, CSS, Java Script và Graphic Design
- Hợp nhất (intergration): phần này tồn tại trong lớp Controller Mục đích chính
là gắn kết lập trình viên và chuyên viên thiết kế giao diện với nhau Người hợp nhất không c ần có nhiều kinh nghiệm làm việc với dữ liệu như lập trình viên nhưng cần nắm rõ cách tổ chức của một ứng dụng
2.1.5 Ưu điểm của mô hình MVC
Ưu điểm
- Phát triển phần mềm: một cách chuyên nghiệp hóa, có thể chia công việc cho nhiều nhóm chuyên môn khác nhau, giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp
- Bảo trì: với các lớp được phân chia, các thành phần của một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không làm ảnh hưởng cả chương trình
- Mở rộng: Việc thêm chức năng vào từng lớp sẽ dễ dàng hơn là phân chia theo cách khác
2.2 BOOTSTRAP
2.2.1 Giới thiệu
Là một framework CSS được Twitter phát triển
Một tập hợp các bộ chọn, thuộc tính và giá trị có sẵn để giúp web designer tránh việc lặp đi lặp lại trong quá trình tạo ra các class CSS và những đoạn mã HTML giống nhau trong dự án web c ủa mình
Bootstrap là một khuôn khổ front-end mạnh mẽ để phát triển web nhanh hơn và dễ dàng hơn Ngoài CSS ra, thì bootstrap còn hỗ trợ các function tiện ích được viết dựa trên Jquery (Carousel, Tooltip, Popovers,…)
Trang 198
2.2.2 Cơ chế hoạt động của Bootstrap
Bootstrap chia 1 layout ra làm 12 phần gọi là 12 grids (lưới) trong hệ thống lưới Grids System Grid – Lưới, là những thẻ div được chia sẵn để các bạn có thể định vị các div lớn, các phần tử 1 cách dễ dàng trên 1 layout màn hình Với grid ta có thể canh độ rộng của 1 div ra giữa trang web, c hia trang Web ra những div nhỏ theo ý muốn
Các Bootstrap stylesshet cung cấp 960 grid và bố trí hiệu quả, cũng như phong cách chuyên nghiệp thủ công cho kiểu chữ, chuyển hướng, bảng, biểu mẫu, các nút, và nhiều hơn nữa Ngoài ra còn cung cấp một bộ thư viện cũng được xây dựng của jQuery plugin cho trình đơn thả xuống, các tab, hộp phương thức, chú giải công cụ, các thông điệp cảnh báo và nhiều hơn thế nữa
2.2.3 Ưu điểm của Bootstrap
Trang 209
2.2.4 Tại sao phải sử dụng Bootstrap?
Sự tương thích của trình duyệt với thiết bị đã được kiểm tra nhiều lần nên có thể tin tưởng kết quả mình làm ra và nhiều khi không cần kiểm tra lại Vì vậy, giúp cho dự án của bạn tiết kiệm được thời gian và tiền bạc Chỉ cần biết sơ qua HTML, CSS, Javascript, Jquery là bạn có thể sử dụng Bootstrap để tạo nên một trang web sang trọng
và đầy đủ.Với giao diện mặc định là màu xám bạc sang trọng, hỗ trợ các component thông dụng mà các website hiện nay cần có
Hình 2.2 Các lo ại thiết bị
Do có sử dụng Grid System nên Bootstrap mặc định hỗ trợ Responsive Bootstrap được viết theo xu hướng Mobile First tức là ưu tiên giao diện trên Mobile trước Nên việc sử dụng Bootstrap cho website của bạn sẽ phù hợp với tất cả kích thước màn hình Nhờ đó mà chúng ta không cần xây dựng thêm một trang web riêng biệt cho mobile Đội ngũ phát triển Bootstrap đã bổ sung thêm tính năng Customizer Giúp cho designer có thể lựa chọn những thuộc tính, component phù hợp với project của họ Chức năng này giúp ta khô ng cần phải tải toàn bộ mã nguồn về máy
Phát triển giao diện website nhanh chóng Bạn có thể mất vài ngày để hoàn thành giao diện một website với cách dùng css thông thường, còn nếu như các bạn sử dụng bootstrap thì thời gian sẽ được rút ngắn hơn Sự tương thích của trình duyệt với thiết bị
đã được kiểm tra nhiều lần nên bạn hoàn toàn có thể tin tưởng kết quả mình làm ra và nhiều khi không cần kiểm tra lại nên giúp cho dự án của bạn tiết kiệm được thời gian
và tiền bạc
Dễ học & dễ sử dụng: Bootstrap cung cấp cho chúng ta một bộ user guide quá đầy đủ, chỉ cần bạn khá tiếng anh hoặc cũng có thể dùng google dịch thì việc chinh phục bootstrap chỉ nằm trong tầm tay c ủa các bạn thôi
JavaScript: Bootstrap được trang bị với các thư viện JavaScript vượt ra ngoài cơ bản
về cấu trúc và phong cách JavaScript thường trở thành một phần không thể thiếu trong một website, với Bootstrap các bạn có thể dễ dàng thao tác alert
Trang 2110
2.3 ADO.NET ENTITY FRAMEW ORK
2.3.1 Lịch sử phát triển Entity Framework
Phiên bản đầu tiền của Entity Framework (EF v1) được bổ sung và NET framework 3.5 Service Pack 1 và bộ công cụ lập trình Visual Studio 2008 Service Pack 1 vào ngày 11/8/2008 Phiên bản này đã nhận được nhiều lời phàn nàn từ phía lập trình viên
và chưa tốt
Phiên bản thứ hai của Entity Framework là Entity Framework 4.0 (EF v4) phát triển cùng bộ NET 4.0 vào ngày 12/4/ 2010 Phiên bản thứ hai giải quyết nhiều điểm hạn chế ở phiên bản trước
Phiên bản thứ ba của Entity Framework là phiên bản 4.1 công bố vào ngày 12/4/2011 Phiên bản 4.1 hỗ trợ cách lập trình “Code First”
Phiên bản cải thiện từ 4.1 đó là 4.1 update 1 phát hành vào ngày 25/7/2011 s ửa một vài lỗi nhỏ và thêm chức năng
Phiên bản tiếp theo 4.31 phát hành ngày 29/2/1012
Phiên bản 5.0.0 phát hành ngày 11/8/2012 trong NET Framework 4.5 nó vẫn hoạt động trên Net Framework 4
Trải qua nhiều phiên bản thì hiện tại phiên bản 6.13 đã được phát hành, bạn có thể tìm thấy trên: https://www.nuget.org/packages/EntityFramework
2.3.2 Khái niệm Về ADO.NET Entity Framework [8]
ADO.NET Entity Framework là một nền tảng được sử dụng để làm việc với database thông qua cơ chế ánh xạ Object/Relational Mapping (ORM) Nhờ đó, bạn có thể truy vấn, thao tác với database gián tiếp thông qua các đối tượng lập trình
The ADO.NET Entity Framework là cơ sở dữ liệu độc lập và xây dựng dựa trên một
mô hình chuẩn cung cấp ADO.NET cho phép truy cập vào cơ sở dữ liệu của bên thứ
ba thông qua việc sử dụng ADO.NET liệu cung cấp Các nhà cung c ấp của bên thứ ba đang có sẵn
Lợi ích của ADO.NET Entity Framework là rút ngắn thời gian phát triển ứng dụng do
EF đã hỗ trợ sẵn các tính năng cơ bản để truy xuất dữ liệu, lập trình viên được làm việc với ứng dụng hướng đối tượng đúng nghĩa, không phụ thuộc quá nhiều vào mô hình lưu trữ, công việc truy xuất dữ liệu trở nên dễ dàng hơn
Bất lợi của ADO.NET Entity Framework là nếu cơ sở dữ liệu thay đổi các quan hệ thì ADO.NET Entity sẽ không thay đổi theo, bạn phải update từ ADO.NET Entity đã có
Trang 2211
2.3.3 Tổng quan kiến trúc của Entity Framework [6]
Hình 2.3 Sơ đồ kiến trúc tổng thể của Entity Framework Trong đó:
- EDM (Entity Data Model): bao gồm ba phần chính Conceptual model, Mapping and Storage model
- Conceptual Model - (khái niệm mô hình): là các lớp và mối quan hệ tương ứng với cơ sở dữ liệu Điều này sẽ được độc lập từ cơ sở dữ liệu
- Storage Model - (mô hình lưu trữ): mô hình thiết kế cơ sở dữ liệu bao gồm Table, View, Store procedure, Relationship, Key,…
- Mapping - (bản đồ): gồm thông tin các khái niệm mô hình do developer ánh xạ tới mô hình lưu trữ hay cơ sở dữ liệu
- LINQ to Entities: là ngôn ngữ truy vấn được sử dụng để truy vấn với mô hình đối tượng Object model Giá trị trả về tuỳ thuộc theo developer, theo Model
- Entity SQL: là ngôn ngữ truy vấn giống như LINQ to Entities nhưng nó hơi phức tạp hơn
- Object Service: phục vụ cho việc truy cập, trả giá trị dữ liệu từ cơ sở dữ liệu Object Service cung c ấp đầy đủ dịch vụ để quá trình chuyển đổi dữ liệu từ thực thể đến cấu trúc đối tượng dễ dàng hơn
- Entity Client Data Provider: giúp chuyển đổi L2E hoặc truy vấn Entity SQL vào truy vấn SQL trong cơ sở dữ liệu Nó sẽ giao tiếp với ADO.NET data provider hoặc lấy dữ liệu từ cơ sở dữ liệu
- ADO.Net Data Provider: lớp này giao tiếp với cơ sở dữ liệu sử dụng theo chuẩn ADO.NET
Trang 2312
2.3.4 Các kiểu xây dựng với Entity Framework
Có 3 kiểu xây dựng cấu trúc EF bao gồm:
- Code First: Riêng với cách này bạn có 2 lựa chọn, làm việc với database có sẵn hoặc sẽ tạo mới, thường được sử dụng cho các dự án mới chưa có cơ sở dữ liệu Được xây dựng bằng các tự xây dựng các Object qua đó tạo ra cơ sở dữ liệu tương ứng
- Database First: Sử dụng khi đã có sẵn Database thích hợp cho các mô hình chuyển đổi giao diện nền (sử dụng công nghệ lập trình khác mà không thay đổi cấu trúc Database)
- Model First: Sử dụng công nghệ Model do EF cung c ấp để tạo các thực thể (Entities), các quan hệ (Relationship) và các mối quan hệ kế thừa trên giao diện Model Sau đó sẽ tạo ra Database tương ứng Điều này khác với việc dùng Code First – Hoàn toàn không có giao diện Model mà phải tự viết bằng code
Hình 2.4 Các cách làm việc với Entity Framework
Trang 2413
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
3.1 MÔ TẢ BÀI TOÁN
Cửa hàng điện thoại di động là nơi trao đổi mua bán trao điện thoại với nhiều hình thức trao đổi, giao dịch, bảo hành Nguồn hàng được lấy từ các nhà cung cấp, hãng s ản xuất hoặc các công ty trong và ngoài nước Sau đó, cửa hàng đem phân phối, bán lại cho các khách hàng, cửa hàng nhỏ ho ặc các công ty con Cửa hàng đảm nhận vị trí trung gian trong việc mua bán và bảo hành s ản phẩm cho khách hàng và được hưởng lợi nhuận hoặc hoa hồng từ hình thức chiết khấu của nhà cung ứng Khách hàng được đảm bảo quyền lợi bảo hành cho sản phẩm và hưởng lợi ích khuyến mãi hoặc chính sách chiết khấu, giảm giá từ cửa hàng
Trước khi nhập hàng vào kho thì cửa hàng sẽ kiểm tra hàng hóa đồng thời tiến hành ghi nhận lại các thông tin nhập hàng cần thiết để lưu lại Điện thoại sau khi được nhập vào kho sẽ được lưu trữ và quản lý thông tin của từng sản phẩm để sau này có thể thuận tiện cho việc bảo hành s ản phẩm của chính cửa hàng
Khi khách hàng có nhu cầu mua hàng, cửa hàng sẽ tiến hành kiểm tra trong kho, nếu trong kho còn hàng thì nhân viên lập phiếu xuất hàng Sau đó cửa hàng tiến hành bàn giao sản phẩm cho khách và gửi đến hóa đơn thanh toán, các gi ấy tờ liên quan và kèm theo các khuyến mãi (nếu có) Để tiện cho việc quản lý, hệ thống sẽ lưu trữ thông tin sản phẩm được xuất để thuận tiện cho khâu bảo hành hành phẩm sau khi bán Trong thời gian bảo hành khách hàng có thể nhờ đến sự trợ giúp khi gặp sự cố
Khi khách hàng gặp vấn đề về thiết bị, nhân viên sẽ tiến hành lập phiếu bảo hành ghi nhận lại tình trạng máy và kiểm tra xem vấn đề lỗi do đâu trong khuôn khổ bảo hành
do lỗi của nhà cung c ấp
Nhằm giúp cho việc quản lý chặt chẽ, cửa hàng sẽ lưu trữ và quản lý thông tin các nhà cung cấp, khách hàng và một số danh mục cần thiết để có thể tìm kiếm, chỉnh sửa và xóa đi khi cần thiết Người dùng có thể nắm bắt đầy đủ thông tin và thông qua đó có thể tìm kiếm một cách dễ dàng khi biết mã ho ặc tên các đối tượng
Sau một thời gian nhất định, cửa hàng sẽ tiến hành tổng hợp thông tin mua bán và các thông tin liên quan khác
Chương trình là công cụ quản lý bán hàng hiệu quả, làm đơn giản hó a việc lập các hoá đơn giấy tờ cũng như việc lưu trữ chúng, cung cấp thông tin nhanh chóng và chính xác làm cơ sở cho việc ra quyết định trong kinh doanh, phục vụ hữu hiệu cho việc quản lý
và phát triển của cửa hàng
Trang 2514
3.2 PHÂN TÍCH VÀ THIẾT KẾ CÁC MÔ HÌNH
3.2.1 Sơ đồ Biểu đồ phân cấp chức năng BFD
Quản lí xuất hàng Quản lí bảo hành
Lập phiếu xuất
Lập phiếu nhập chi tiết
Đăng xuất Cập nhật thông tin
bảo hành chi tiết
Xuất hóa đơn
Tìm kiếm nhà cung cấp
Tìm kiếm khách hàng
Hình 3 1 Biểu đồ phân c ấp chức năng BFD
Trong đó:
- Quản lý các danh mục bao gồm: quản lý nhà cung cấp, khách hàng, danh mục
và sản phẩm
- Quản lý nhập hàng: lập phiếu nhập hàng, lập phiếu nhập chi tiết
- Quản lý Xuất hàng: lập phiếu xuất hàng, lập phiếu xuất chi tiết
- Quản lý bảo hành: lập phiếu bảo hành, cập nhật thông tin bảo hành chi tiết
- Tìm kiếm: bao gồm tìm kiếm sản phẩm, nhà cung c ấp và khách hàng
- Thống kê-Báo cáo: Xuất hóa đơn xuất hàng, thống kê hàng tồn
- Hệ thống: đăng nhập và đăng xuất vào hệ thống
Trang 2615
3.2.2 Biểu đồ Use case tổng quát
Mô tả Usecase tổng quát: khái quát chức năng chính c ủa hệ thống, các chức năng này
có tính tổng quát Hệ thống có những chức năng như hình, người quản trị có thể thực hiện đăng nhập, đăng xuất hệ thống (trang Quản trị) để quản lý thông tin cho hệ thống
Hình 3 2 Biểu đồ Use case của người Quản trị hệ thống
3.2.2.1 Phân rã use case tìm ki ếm
Tác nhân: Người dùng quản trị, nhân viên Điều kiện: Phải đăng nhập vào hệ thống
Mô tả: Nhân viên có thể tìm kiếm theo mã ho ặc tên, hệ thống sẽ tìm kiếm theo yêu cầu
<<extend>>
<<extend>>
<<extend>>
Trang 2716
3.2.2.2 Phân rã use case Nhập hàng
Tác nhân: Người dùng quản trị, nhân viên Điều kiện: Phải đăng nhập vào hệ thống
Mô tả: Khi có quyết đinh nhập hàng bộ phận quản lý sẽ yêu cầu nhà phân phối cung cấp hàng cho cửa hàng, nhân viên lập phiếu nhập hàng và chi tiết phiếu nhập gồm thông tin về danh mục sản phẩm muố n nhập Cửa hàng sẽ cập nhật sản phẩm của từng danh mục nhập sau khi tiến hành nhập vào kho
Hình 3 4 Phân rã Use case nhập hàng
3.2.2.3 Phân rã use case Bán hàng
Tác nhân: Người quản trị, nhân viên Điều kiện: Phải đăng nhập vào hệ thống
Mô tả: Khi khách hàng muốn mua hàng nhân viên sẽ lập phiếu xuất hàng và chi tiết phiếu xuất hàng gồm thông tin danh mục khách hàng cần mua, sau đó tiến hành cập nhật sản phẩm của danh mục mà khách muốn mua vào hệ thống
Hình 3 5 P hân rã Use case quản lý bán hàng
Quản lí nhập hàng
Cập nhật phiếu nhập hàng
Cập nhật phiếu nhập chi tiết
Cập nhật sản phẩm của từng danh mục nhập
<<extend>>
<<extend>>
<<extend>>
Thêm phiếu xuất
Chỉnh sửa phiếu xuất
Xóa phiếu xuất
Cập nhật sản phẩm đã xuất của danh mục
<<extend>>
<<extend>>
<<extend>>
Chọn danh mục sản phẩm xuất
<<extend>>
Trang 2817
3.2.2.4 Phân rã use case Bảo hành
Tác nhân: Người quản trị, nhân viên Điều kiện: Phải đăng nhập vào hệ thống
Mô tả: Khi khách hàng muốn bảo hành sản phẩm, bộ phận kĩ thuật sẽ kiểm tra sản phẩm và phân loại lỗi Sau đó tiến hành bảo hành sản phẩm và ghi nhận lại thông tin
bảo hành
Hình 3 6 Phân rã Use case quản lý bảo hành
3.2.2.5 Phân rã use case thống kê
Tác nhân: Người quản trị, nhân viên Điều kiện: Phải đăng nhập vào hệ thống
Mô tả: Khi có yêu cầu cần thống kê báo cáo nhân viên sẽ chịu trách nhiệm lập báo cáo dựa trên các thô ng tin về hóa đơn bán hàng, phiếu nhập, phiếu xuất
Hình 3 7 P hân rã Use case thống kê báo cáo
Thêm phiếu bảo hành
chỉnh sửa thông tin
Xóa phiếu bảo hành
Trang 2918
3.2.2.6 Phân rã use case quản lý
Tác nhân: Người quản trị, nhân viên Điều kiện: Phải đăng nhập vào hệ thống
Mô tả: Sau khi đăng nhập vào hệ thống người dùng có thể thực hiện công việc quản lý cập nhật thông tin khách hàng, danh mục sản phẩm, nhà cung cấp như thêm mới, chỉnh sửa lại thông tin hoặc xóa đi thông tin
Hình 3 8 Phân rã use case quản lý danh mục
Quản lí danh mục
Cập nhật Danh mục và sản phẩm
Xóa danh mục sản phẩm
Chỉnh sửa thông tin khách hàng
Xóa khách hàng
Thêm mới nhà phân phối
Sửa thông tin nhà phân phối
Xóa nhà phân phối