1. Trang chủ
  2. » Cao đẳng - Đại học

KHÓA LUẬN tốt NGHIỆP xây DỰNG hệ THỐNG THƯƠNG mại điện tử hỗ TRỢ KINH DOANH các PHỤ KIỆN, THIẾT bị điện THOẠI DI ĐỘNG

68 27 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 715,28 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 2.TÌM HIỂU CÁC CÔNG NGHỆ ỨNG DỤNG TRONG ĐỀ TÀI 4 2.1. Tìm hiểu ASP.NET MVC (14)
    • 2.1.1. Giới thiệu ASP.NET (14)
    • 2.1.2. ASP.NET MVC (15)
    • 2.1.3. Lịch sử phát triển ASP.NET MVC (17)
    • 2.1.4. Ưu nhược điểm của ASP.NET (18)
    • 2.2. Microsoft SQL Server (19)
      • 2.2.1. Giới thiệu (19)
      • 2.2.2. Ứng dụng vào đề tài (21)
    • 2.3. Repository Pattern (21)
      • 2.3.1. Giới thiệu (21)
      • 2.3.2. Ứng dụng vào đề tài (22)
    • 2.4. jQuery (22)
      • 2.4.1. Giới thiệu (22)
      • 2.4.2. Ứng dụng vào đề tài (23)
    • 2.5. Ajax (23)
      • 2.5.1. Giới thiệu (23)
      • 2.5.2. Ứng dụng vào đề tài (25)
    • 2.6. Crystal Reports (25)
      • 2.6.1. Giới thiệu (25)
      • 2.6.2. Đặc điểm của Crystal Reports (25)
      • 2.6.3. Ứng dụng vào đề tài (25)
  • CHƯƠNG 3.YÊU CẦU ỨNG DỤNG 19 3.1. Nghiệp vụ Quản lý (25)
    • 3.1.1. Sơ đồ tổ chức (26)
    • 3.1.3. Danh sách các yêu cầu (28)
    • 3.1.4. Danh sách các biểu mẫu (29)
    • 3.1.5. Sơ đồ Usecase Admin (34)
    • 3.2. Nghiệp vụ Khách hàng (35)
      • 3.2.1. Sơ đồ Usecase Khách hàng (35)
      • 3.2.2. Chức năng Khách hàng (35)
  • CHƯƠNG 4.XÂY DỰNG ỨNG DỤNG 31 4.1. Thiết kế dữ liệu (35)
    • 4.1.1. Sơ đồ logic (35)
    • 4.1.2. Mô tả chi tiết các bảng (36)
    • 4.2. Thiết kế kiến trúc (45)
      • 4.2.1. Framework (45)
      • 4.2.2. Mô hình kiến trúc hệ thống (45)
      • 4.2.3. Mô tả chi tiết thành phần trong hệ thống (46)
    • 4.3. Thiết kế giao diện (47)
      • 4.3.1. Danh sách các giao diện (47)
      • 4.3.2. Chi tiết các màn hình (50)
  • CHƯƠNG 5.TỔNG KẾT 88 5.1. Kết quả đạt được................................................................................................ 88 5.2. Thuận lợi và khó khăn (0)

Nội dung

● Điểm mới so với các hệ thống hỗ trợ mua bán điện tử tương tự: ⮚ Sản phẩm: mới lạ, chuyên dụng bán các sản phẩm dành liên quan đến các phụ kiện, linh kiện điện thoại di động, đáp ứng đ

HIỂU CÁC CÔNG NGHỆ ỨNG DỤNG TRONG ĐỀ TÀI 4 2.1 Tìm hiểu ASP.NET MVC

Giới thiệu ASP.NET

Đầu năm 2002, Microsoft giới thiệu một kỹ thuật lập trình Web khá mới mẻ mang tên ban đầu ASP+ và sau này chính thức gọi là ASP.Net Với ASP.Net, bạn không cần phải biết các tag HTML hay thiết kế web để xây dựng ứng dụng Web; nền tảng này còn hỗ trợ mạnh mẽ lập trình hướng đối tượng trong quá trình phát triển và mở rộng ứng dụng Web.

ASP.Net là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server (Server side) dựa trên nền tảng của Microsoft Net Framework

Hầu hết, những người mới đến với lập trình web đều bắt đầu tìm hiểu những kỹ thuật ở phía Client (Client-side) như: HTML, Java Script, CSS (Cascading Style Sheets) Khi Web browser yêu cầu một trang web (trang web sử dụng kỹ thuật client-side), Web server tìm trang web mà Client yêu cầu, sau đó gởi về cho

Client Client nhận kết quả trả về từ Server và hiển thị lên màn hình.

ASP.Net sử dụng kỹ thuật lập trình ở phía server thì hoàn toàn khác, mã lệnh ở phía server (ví dụ: mã lệnh trong trang ASP) sẽ được biên dịch và thi hành tại Web Server Sau khi được Server đọc, biên dịch và thi hành, kết quả tự động được chuyển sang HTML/JavaScript/CSS và trả về cho Client Tất cả các xử lý lệnh ASP.Net đều được thực hiện tại Server và do đó, gọi là kỹ thuật lập trình ở phía server.

ASP.NET MVC

Mô hình MVC (viết tắt của Model - View - Controller) là một kiến trúc phần mềm được sử dụng phổ biến trong kỹ thuật phần mềm, đặc biệt là phát triển ứng dụng web, giúp tách ứng dụng thành ba thành phần riêng biệt: Model, View và Controller, mỗi thành phần có nhiệm vụ độc lập Model chứa tất cả nghiệp vụ logic, các phương thức xử lý và các thao tác truy xuất CSDL, được mô tả bằng các lớp (class) và hàm xử lý; nó có nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu vào kho dữ liệu Tất cả nghiệp vụ logic được thực thi ở Model, và dữ liệu nhập từ người dùng sẽ đi từ View vào Model để được kiểm tra, xác nhận 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à một phần của Model.

View là thành phần trình diễn của ứng dụng, chịu trách nhiệm hiển thị thông tin cho người dùng, nhận dữ liệu từ người dùng, gửi các yêu cầu đến Controller, sau đó nhận phản hồi từ Controller và trình bày kết quả lên giao diện Trong kiến trúc MVC, View gồm các trang HTML, JSP, các thư viện giao diện và các file nguồn liên quan, tạo thành lớp trình diễn để render giao diện và cập nhật dữ liệu dựa trên dữ liệu trả về từ Controller, mang lại trải nghiệm người dùng trực quan và nhất quán.

Controller là tầng trung gian giữa Model và View trong kiến trúc MVC Nhiệm vụ của Controller là nhận các yêu cầu từ người dùng (máy khách), điều phối các chức năng logic thích hợp từ thành phần Model và sau đó sinh ra các kết quả để hiển thị cho người dùng thông qua View Trong Struts, các thành phần liên quan đến Controller gồm ActionServlet, Action, ActionForm và file cấu hình struts-config.xml, phối hợp với nhau để xử lý luồng dữ liệu và điều hướng ứng dụng một cách hiệu quả.

Một ứng dụng web được phát triển theo mô hình MVC, có nguyên lý hoạt động xử lý yêu cầu của người dùng như sau:

Khi một yêu cầu từ người dùng phát sinh ở phía Client, yêu cầu đó được gửi sang phía Server Tại đây, Controller nhận diện và tiếp nhận yêu cầu để xử lý, đảm bảo luồng giao tiếp giữa Client và Server diễn ra thông suốt và hiệu quả.

Trong một Controller có nhiều phương thức được gọi là action, mỗi action ứng với một yêu cầu cụ thể từ người dùng Controller sẽ chọn action phù hợp để xử lý yêu cầu đó và trong quá trình xử lý, Controller tương tác với Model để lấy dữ liệu mà người dùng mong muốn.

Trong mô hình MVC, Controller làm việc với Model để lấy dữ liệu theo yêu cầu và chuyển Data Model cho View; View nhận Data Model, biến đổi thành dữ liệu ứng dụng và gửi trả về cho Client để hiển thị kết quả cho người dùng Quá trình này tách biệt rõ ràng giữa logic xử lý dữ liệu (Model), điều phối luồng dữ liệu (Controller) và phần trình bày (View), giúp tối ưu hóa hiệu suất, mở rộng và trải nghiệm người dùng.

Các thành phần này giao tiếp với nhau nhằm xử lý yêu cầu cảu ứng dụng

Trong ASP.NET MVC, quá trình xử lý một yêu cầu thường diễn ra qua một chuỗi các bước xử lý, mỗi bước được giao cho một component riêng biệt trong ASP.NET đảm nhiệm Các component này phối hợp với nhau để nhận dữ liệu từ người dùng, thực thi logic nghiệp vụ và sinh ra phản hồi phù hợp cho trình duyệt, giúp ứng dụng web hoạt động mượt mà và dễ bảo trì.

(1) Trình duyệt gửi yêu cầu của ứng dụng ASP.NET MVC

(2) MVC Engine chuyển yêu cầu tới cho Routing engine

(3) Routing engine kiểm tra cấu hình điều hướng (route configuration) của ứng dụng nhằm chuyển đến các Controller phù hợp với yêu cầu

(4) Khi Controller được tìm thấy, control này sẽ được thực thi

(5) Nếu Controller không được tìm thấy, bộ điều hướng sẽ chỉ ra rằng Controller không được tìm thấy và MVC Engine sẽ thông báo lỗi cho trình duyệt

Trong kiến trúc MVC (Model‑View‑Controller), Controller giao tiếp với Model, nơi tầng Model đại diện cho các Entity bên trong hệ thống Controller làm việc với tầng Model để truy vấn và xử lý dữ liệu cần thiết cho người dùng, nhằm chuẩn bị thông tin chính xác và đầy đủ trước khi chuyển sang View để hiển thị cho người dùng.

(7) Controller yêu cầu View engine hiển thị thông tin dựa trên dữ liệu của tầng Model

(8) View Engine trả kết quả cho Controller

(9) Controller gửi kết quả cho trinh duyệt thông qua giao thức Http

Lịch sử phát triển ASP.NET MVC

Phiên bản đầu tiên được phát hành vào tháng 3 năm 2009 trên nền tảng bộ Net Framework 3.5 bộ Visual Studio 2008.

Phiên bản này được phát hành vào tháng 3 năm 2010 trên bộ Net

Framework 3.5 và Net Framework 4.0 bộ Visual Studio 2010 2.1.3.3 ASP.NET

Phiên bản này được phát hành vào tháng 1 năm 2011 trên nền tảng bộ Net Framework 4.0, các đặc điểm chính của phiên bản này là:

- Hỗ trợ thêm HTML5 và CSS3

- Cải thiện về Model validation

- Hỗ trợ 2 View Engine: Razor, aspx

- Controller cải tiến thêm như ViewBag, ActionResult

Phiên bản này được phát hành vào tháng 8 năm 2012 trên nền tảng bộ Net

Framework 4.0 và Net Framework 4.5 trên phiên bản Visual Studio 2010 SP1 và Visual Studio 2012 Phiên bản này có những đặc điểm như sau:

- ASP.NET Web API ra đời, đơn giản hóa việc lập trình với HTML, cải tiến mới thay thế cho WCF Web API

- Cải thiện về bố trí

- Kiểm soát Bundling và Minification thông qua Web.config

- Hỗ trợ việc đăng nhập Oauth vào OpenID

Phiên bản này được phát hành vào tháng 10 năm 2013 trên nền tảng bộ Net Framework 4.5 và Net Framework 4.5.1 trên phiên bản Visual Studio 2013

ASP.NET MVC5 cho phép xây dựng các ứng dụng web theo mô hình MVC thay vì sử dụng ASP.NET Web Forms Nền tảng ASP.NET MVC nổi bật là nhẹ (lightweight), dễ kiểm thử phần giao diện so với Web Forms và tích hợp sẵn các tính năng của ASP.NET Nền tảng này được định nghĩa trong namespace System.Web.Mvc và là một phần của namespace System.Web MVC là một mẫu thiết kế chuẩn mà nhiều lập trình viên đã quen thuộc và áp dụng rộng rãi.

Ưu nhược điểm của ASP.NET

Java được biết đến là ngôn ngữ lập trình có độ bảo mật cao, phù hợp cho các hệ thống doanh nghiệp và ứng dụng quy mô lớn Tuy nhiên, chi phí triển khai và vận hành của Java cao hơn so với ASP.NET, khiến Java không được sử dụng phổ biến bằng ASP.NET ở nhiều dự án có ngân sách hạn chế Vì vậy, quyết định lựa chọn giữa Java và ASP.NET phụ thuộc vào sự cân nhắc giữa yêu cầu về bảo mật và chi phí phát triển.

Ưu điểm nổi bật khi so sánh ASP.NET với Java là chi phí triển khai thấp hơn Bởi ra đời muộn hơn, ASP.NET đã kế thừa và khắc phục nhiều nhược điểm của Java, từ đó trở nên hoàn thiện và tối ưu hơn cho quá trình phát triển ứng dụng.

PHP là ngôn ngữ lập trình có nhiều ưu điểm nổi bật và được cộng đồng phát triển rộng lớn ủng hộ Tính miễn phí và nguồn tài nguyên hỗ trợ phong phú là điểm mạnh lớn nhất của PHP, giúp người dùng dễ tiếp cận và triển khai các dự án web nhanh chóng Với tính dễ học, khả năng tích hợp mạnh và hệ sinh thái phong phú, PHP tiếp tục thu hút một cộng đồng người dùng đông đảo và nhiều tài liệu hướng dẫn miễn phí.

Khi so sánh với ASP.NET, PHP thường bị đánh giá thấp hơn vì được cung cấp miễn phí nên ít được đầu tư phát triển công nghệ; bên cạnh đó, với bản chất là mã nguồn mở, độ bảo mật của PHP vẫn chưa được đảm bảo.

2.1.4.3 Ưu điểm của ASP.NET

ASP.NET có bộ thư viện đa dạng, được cung cấp bởi NET Framework nên có nhiều ưu điểm nổi bật

Các website được lập trình với ASP.NET thường hoạt động ổn định, có tốc độ tải trang tốt

Khả năng tùy biến cao, website có thể dễ dàng tương thích với các kích thước màn hình, thiết bị truy cập khác nhau

Do được kế thừa từ Java nên độ bảo mật của ASP.NET được các chuyên gia trong ngành đánh giá cao

2.1.4.4 Nhược điểm của ASP.NET

Không được cung cấp miễn phí Nếu không có Visual Studio thì rất khó để nhà phát triển có thể tiếp cận

Không có hỗ trợ cho các thiết bị sử dụng hệ điều hành Linux

Microsoft SQL Server

SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) được phát triển và tiếp thị bởi Microsoft Như các hệ thống RDBMS khác, SQL Server được xây dựng trên ngôn ngữ SQL để truy vấn và tương tác với cơ sở dữ liệu quan hệ, và được liên kết với Transact-SQL (T-SQL); Microsoft đã bổ sung một bộ mở rộng ngôn ngữ lập trình độc quyền khi triển khai SQL Server Trong hơn hai thập kỷ, SQL Server chủ yếu hoạt động trên hệ điều hành Windows, cho tới năm 2016 khi Microsoft công bố hỗ trợ Linux SQL Server 2017 được phát hành vào tháng 10 năm 2017.

2016, chạy được trên cả Windows và Linux.

SQL Server bao gồm hai thành phần chính:

The Database Engine is the core component of SQL Server It comprises a Relational Engine that processes queries and a Storage Engine that manages database files, while also enabling the creation of database objects such as stored procedures, views, and triggers.

The Relational Engine comprises components that determine the most efficient way to execute queries It is also known as the query processor, the core component responsible for optimizing and executing database queries.

• Công cụ lưu trữ (Storage Engine) chịu trách nhiệm lưu trữ và truy xuất dữ liệu các hệ thống lưu trữ như ổ đĩa và SAN

- SQLOS: Hệ điều hành SQL Server, cung cấp nhiều dịch vụ như bộ nhớ và quản lí I/O, xử lý ngoại lệ và đồng bộ hóa

Microsoft provides a comprehensive suite of data management and business intelligence tools alongside SQL Server For data management, SQL Server includes SQL Server Integration Services (SSIS), SQL Server Data Quality Services, and SQL Server Master Data Services For development, SQL Server offers SQL Server Data Tools And for managing, deploying, and monitoring SQL Server databases, it provides a complete set of administration tools and services.

Management Studio (SSMS) Để phần tích dữ liệu, SQL Server cũng cấp dịch vụ phân tích SQL Server Analysis Services (SSAS)

2.2.2 Ứng dụng vào đề tài

Sử dụng MySQL làm hệ quản trị CSDL cho các services lữu trữ thông tin.

Repository Pattern

Thông thường các phần truy vấn và giao tiếp với cơ sở dữ liệu bị rải rác khắp mã nguồn, khiến mỗi thao tác với DB đòi hỏi phải dò tìm trong nhiều đoạn mã và kiểm tra các thuộc tính bảng để xử lý Tình trạng này làm tiêu tốn rất nhiều thời gian và công sức, dễ gây ra lỗi và làm giảm hiệu suất ứng dụng Việc tập trung quản lý truy vấn và giao tiếp với cơ sở dữ liệu vào một lớp hoặc module duy nhất sẽ giúp tối ưu hóa hiệu suất, tiết kiệm thời gian và nâng cao tính nhất quán của dữ liệu.

Với Repository design pattern, thì việc thay đổi ở code sẽ không ảnh hưởng quá nhiều công sức chúng ra chỉnh sửa

Một vài lí do ta nên sử dụng Repository Pattern:

- Một duy nhất để thay đổi quyền truy cập dữ liệu cũng như xử lý dữ liệu.

- Một người duy nhất chịu trách nhiệm cho việc ánh xạ các bảng thành đối tượng

- Tăng tính bảo mật và rõ ràng ràng buộc cho code

- Rất dễ dàng để thay thế một Repository với một implementation giả cho việc testing, vì vậy bạn không cần chuẩn bị một cơ sở dữ liệu có sẵn

2.3.2 Ứng dụng vào đề tài

Repository Pattern là lớp trung gian giữa tầng Business Logic và Data Access, giúp cho việc truy cập dữ liệu chặt chẽ hơn và bảo mật hơn

Repository đóng vai trong là một lớp kết nối giữa tầng Business và Model của ứng dụng.

jQuery

jQuery là thư viện mã nguồn mở viết bằng ngôn ngữ JavaScript, giúp đơn giản hóa cách viết JavaScript và tăng tốc xử lý các sự kiện trên trang web Nó được phát hành vào tháng 1 năm 2006 tại BarCamp NYC bởi John Resig, và được sử dụng bởi hơn 52% trong 10.000 trang web được truy cập nhiều nhất jQuery không chỉ có thể thay đổi giao diện (CSS) mà còn có thể thao tác và thay đổi nội dung bên trong trang web, mang lại nhiều ưu điểm cho việc tối ưu hóa giao diện và tương tác người dùng.

- Dễ sử dụng: Dễ dàng sử dụng so với nhiều thư viện javascript khác bởi cú pháp đơn giản

- Là thư viện lớn của javascript: Thực thi được nhiều chức năng hơn so với các thư viện javascirpt khác

jQuery có một cộng đồng mã nguồn mở rất mạnh mẽ với hàng trăm plugin được viết sẵn có thể tải xuống ngay lập tức và tích hợp vào dự án, giúp đẩy nhanh quá trình viết mã Nhờ thư viện plugin đa dạng, các nhà phát triển có thể dễ dàng tái sử dụng các chức năng phổ biến từ hiệu ứng giao diện đến tương tác người dùng, tiết kiệm thời gian phát triển và tăng tốc quá trình triển khai mà vẫn duy trì tính linh hoạt và khả năng mở rộng.

- Có nhiều tài liệu hướng dẫn và chi tiết

- Làm client trở nên chậm chạp: client phải xử lý thêm nhiều chức năng được tạo thành từ Jquery, làm cho client trở nên chậm chạp

Chức năng có thể không có sẵn trong jQuery jQuery cung cấp nhiều tính năng phụ thuộc vào yêu cầu dự án, nhưng nhiều chức năng vẫn chưa được phát triển đầy đủ để đáp ứng mọi tình huống Trong trường hợp đó, bạn sẽ phải tự sử dụng JavaScript để xây dựng chức năng mong muốn và tích hợp chúng với jQuery khi cần thiết Việc kết hợp jQuery với JavaScript giúp tối ưu hóa khả năng tùy biến và đạt được hiệu quả mong muốn cho ứng dụng.

2.4.2 Ứng dụng vào đề tài

Sử dụng jQuery để tạo gọi Ajax và một vài chức năng cần thiết trong đề tài.

Ajax

JAX - "Asynchronous JavaScript and XML" - là một bộ công cụ cho phép load dữ liệu từ server mà không yêu cầu tải lại trang Nó sử dụng chức năng sẵn có XMLHttpRequest(XHR) của trình duyệt để thực hiện một yêu cầu đến server và xử lý dữ liệu server trả về jQuery cung cấp method $.ajax và một số methods tiện lợi giúp bạn làm việc với XHRs thông qua trình duyệt một cách dễ dàng hơn

Một số phương thức cơ bản:

- Phương thức jQuery load(): Lấy dữ liệu từ server và trả dữ liệu cho phần tử được chọn o Cú pháp: $(selector).load(URL,data,callback); o URL: mà bạn muốn lấy dữ liệu o Data: cặp key:value gửi đi cùng với yêu cầu o Callback: tên của hàm sẽ được thực thi sau khi phương thức load hoàn thành

Phương thức POST trong jQuery Ajax cho phép tải dữ liệu từ máy chủ thông qua yêu cầu HTTP POST Cú pháp thường gặp là $.post(url, data, function(data, status, xhr), dataType); trong đó url là đường dẫn đến tài nguyên trên server và là tham số bắt buộc, data là đối tượng chứa các cặp khóa-giá trị gửi lên server (không bắt buộc), và function(data, status, xhr) là hàm callback được gọi khi yêu cầu thành công, nhận dữ liệu trả về, trạng thái và đối tượng xhr để thao tác thêm Tham số dataType xác định kiểu dữ liệu mong đợi từ server, ví dụ json, text hoặc html Việc gửi dữ liệu bằng POST hữu ích khi bạn cần truyền payload có cấu trúc hoặc nhạy cảm và có thể xử lý kết quả trả về để cập nhật giao diện người dùng hoặc thực hiện các thao tác khác.

Phương thức GET trong jQuery Ajax cho phép lấy dữ liệu từ server bằng HTTP GET Cú pháp: $.get(URL, data, function(data, status, xhr) { /* xử lý dữ liệu */ }, dataType) Tham số đầu tiên của $.get() là URL của file nhận request Tham số thứ hai là một hàm callback; tham số đầu tiên của callback là data chứa nội dung của các trang yêu cầu, tham số thứ hai là status chứa trạng thái của yêu cầu, tham số thứ ba là xhr đối tượng liên quan Thuộc tính dataType cho biết kiểu dữ liệu trả về (ví dụ json, text) Sau khi request được trả về, status sẽ là "success".

2.5.2 Ứng dụng vào đề tài

Sử dụng jQuery Ajax để thực hiện một số chức năng, mà không cần phải load lại trang.

Crystal Reports

Crystal Reports là công cụ thiết kế báo cáo mạnh mẽ cho phép người dùng tạo ra các báo cáo bằng cách tìm và định dạng dữ liệu từ một nguồn dữ liệu hoặc từ nhiều nguồn dữ liệu khác nhau.

Crystal Reports cung cấp một ngôn ngữ tính toán cùng nhiều tính năng giúp biến dữ liệu thô thành các báo cáo chuyên nghiệp Bạn có thể tạo báo cáo từ những danh sách đơn giản chỉ gồm vài cột đến các báo cáo phức tạp có kèm biểu đồ và bảng biểu, giúp trình bày thông tin một cách trực quan và dễ hiểu.

Crystal Reports còn cung cấp một bộ hàm API và các công cụ đặc biệt được thiết kế dành cho nhà phát triển phần mềm, cho phép tích hợp và hội nhập các báo cáo của Crystal vào ứng dụng riêng của họ một cách linh hoạt và hiệu quả Nhờ đó, các báo cáo có thể được nhúng trực tiếp vào hệ thống doanh nghiệp, tối ưu hóa quy trình làm việc và đảm bảo đồng bộ dữ liệu giữa các ứng dụng.

2.6.2 Đặc điểm của Crystal Reports

Crystal Reports cho phép thiết kế và xem báo cáo mà không cần mở một ứng dụng riêng; đối với Winform, Crystal Reports cho phép xem báo cáo và cung cấp đầy đủ các chức năng cho người dùng, còn với ASP.NET nó cung cấp phần lớn các chức năng báo cáo.

Giúp truy cập dữ liệu dễ dàng hơn

Cho phép truy cập dữ liệu nguồn khác nhau

2.6.3 Ứng dụng vào đề tài

Crystal Reports cho phép tạo báo cáo thống kê cho nghiệp vụ quản lý một cách dễ dàng và trực quan, giúp trình bày dữ liệu một cách rõ ràng và có tính ứng dụng cao Việc sử dụng công cụ này giúp tiết kiệm thời gian phát triển, rút ngắn chu trình báo cáo và nâng cao hiệu quả cho cả nhà phát triển lẫn người dùng cuối.

CẦU ỨNG DỤNG 19 3.1 Nghiệp vụ Quản lý

Sơ đồ tổ chức

Cửa hàng Bách Khoa Shop kinh doanh các loại điện thoại và linh kiện liên quan (tai nghe, sạc điện thoại, thẻ nhớ) gồm có các bộ phận:

3.1.2 Chức năng từng bộ phân

3.1.2.1 Chủ cửa hàng Điều hành chung mọi hoạt động của cửa hàng

Quản lý và điều hành hoạt động của nhân viên

Quyết định giá chính thức cho từng loại mặt hàng

Nhận báo cáo từ các bộ phận khác

Khách hàng mang sản phẩm đến bảo hành sẽ được bộ phận kỹ thuật kiểm tra sản phẩm và xác định thời hạn bảo hành Quá trình kiểm tra bao gồm đánh giá tình trạng sản phẩm và xác nhận ngày bắt đầu bảo hành; nếu sản phẩm còn trong thời hạn bảo hành, bộ phận kỹ thuật sẽ lập phiếu bảo hành để tiến hành các bước xử lý tiếp theo.

Việc lập phiếu bảo hành là quá trình tiếp nhận bảo hành, trên phiếu ghi đầy đủ thông tin của khách hàng, thông tin sản phẩm cần bảo hành, mô tả lỗi và hẹn ngày tới lấy sản phẩm Trong trường hợp có thay thế linh kiện, nhân viên có nhiệm vụ liên hệ với khách hàng để báo giá nếu máy đã hết hạn bảo hành.

Nhân viên kỹ thuật mang sản phẩm bảo hành về kho và chờ đợt chuyển các sản phẩm bảo hành sang hãng phân phối để được sửa chữa Sau khi hãng bảo hành hoàn tất, hãng phân phối sẽ chuyển trả sản phẩm đã sửa về cửa hàng.

Nhận đơn đặt hàng online

Khách hàng đặt hàng online trên website của cửa hàng và gửi đầy đủ thông tin bao gồm tên, số điện thoại, email và địa chỉ Nhân viên bán hàng sẽ gọi điện xác nhận thông tin; nếu thông tin hợp lệ, họ liên hệ bộ phận kho để kiểm tra tồn kho và xem hàng có đáp ứng đơn hàng hay không Trong trường hợp sản phẩm hết hoặc thiếu so với số lượng trên hóa đơn, nhân viên sẽ thông báo cho khách hàng và đề xuất ngày giao hàng Nếu hai bên đồng ý, nhân viên bán hàng cập nhật trạng thái đơn hàng là đã xác nhận thông tin và in hóa đơn gửi cho nhân viên giao hàng Khi giao hàng, khách hàng sẽ ký tên, thanh toán phí và nhận hóa đơn bản sao; nhân viên giao hàng quay về cửa hàng, nộp lại tiền và hóa đơn cho nhân viên bán hàng Trường hợp việc xác nhận thông tin đặt hàng qua điện thoại thất bại, sau một ngày nhân viên bán hàng sẽ tiến hành huỷ đơn đặt hàng đã đặt.

Lập hóa đơn bán hang

- Nhân viên bán hàng sẽ giới thiệu sản phẩm cho khách hàng, ghi nhận thông tin đơn hàng, lập đơn hàng, khách hàng thanh toán tiền và nhận hàng

Lập báo cáo doanh thu bán hàng và đặt hàng online

- Nhân viên nhận được yêu cầu xuất các báo cáo bán hàng

Xuất báo cáo từ phần mềm và in ra.

Thanh toán tiền cho nhà cung cấp ngay khi nhận phiếu nhập kho

Báo cáo tình hình tài chính lên chủ cửa hàng

Căn cứ vào phiếu thu, chi trong tháng, kế toán lập báo cáo tình hình thu chi gửi lên chủ cửa hàng

Khi hàng tồn kho hết hoặc không đáp ứng đủ nhu cầu của khách hàng, nhân viên kho sẽ báo cáo cho chủ cửa hàng để liên hệ với nhà cung cấp Chủ cửa hàng sau đó tiến hành gửi đơn đặt hàng và thực hiện quy trình đặt hàng từ nhà cung cấp nhằm bổ sung hàng hóa kịp thời, duy trì nguồn cung và đảm bảo hoạt động bán hàng thông suốt.

Khi hàng về tới kho, nhân viên kho tiến hành kiểm tra chất lượng và số lượng của từng mặt hàng theo phiếu giao hàng Quá trình đối chiếu đảm bảo hàng hóa đúng số lượng, đạt chuẩn chất lượng và được ghi nhận đầy đủ trước khi nhập kho vào hệ thống quản lý.

Khi chất lượng và số lượng hàng hóa được đảm bảo, nhân viên kho sẽ lập phiếu nhập kho, ghi rõ tên nhà cung cấp và các thông tin chi tiết liên quan đến hàng hóa nhập Phiếu nhập kho này sau đó được chuyển sang bộ phận kế toán để thực hiện thanh toán tiền cho nhà cung cấp.

Trong trường hợp số lượng và chất lượng hàng hóa không đáp ứng yêu cầu, nhân viên kho sẽ báo cáo ngay cho chủ cửa hàng Chủ cửa hàng sẽ thông báo cho nhà cung cấp để giải quyết sự cố và điều chỉnh nguồn hàng cho phù hợp với yêu cầu.

- Lập phiếu nhập kho để xác định rằng đã nhận đầy đủ sản phẩm Lập phiếu xuất kho

Khi số lượng sản phẩm hiện có tại cửa hàng không đủ để đáp ứng đơn hàng của khách hàng tại thời điểm đó, nhân viên bán hàng sẽ báo cho bộ phận kho xuất ra đúng số lượng sản phẩm theo yêu cầu Quy trình này giúp quản lý tồn kho hiệu quả và đảm bảo khách hàng nhận đúng sản phẩm mong muốn.

- Nhân viên kho sẽ vào kho và kiểm tra xem có còn đủ số lượng sản phẩm trong kho không.

- Nếu còn sản phẩm thì lấy đúng theo số lượng sản phẩm đã yêu cầu và lập phiếu xuất kho

- Nếu số lượng sản phẩm yếu cầu không đủ thì tiến hành từ chối xuất và nhân viên kho sẽ thông báo lại cho nhân viên bán hàng

- Kiểm kê định kỳ hoặc bất kỳ theo yêu cầu của chủ cửa hàng nhằm xác định số lượng hàng thực và số lượng trên phần mềm

Lập báo cáo thống kê

Tiếp nhận yêu cầu từ chủ cửa hàng về báo cáo thống kê tồn kho, nhân viên sẽ xuất thông tin của các lần xuất nhập kho và tồn hiện tại, từ đó tổng hợp và lập báo cáo sản phẩm chi tiết Báo cáo tồn kho sẽ cho thấy số lượng tồn kho từng mặt hàng, các biến động xuất nhập kho và xu hướng tồn kho theo thời gian, giúp quản lý kho hiệu quả và hỗ trợ quyết định kinh doanh.

Nhân viên sẽ lập báo cáo tình trạng tồn kho của sản phẩm, trong đó ghi nhận đầy đủ các trường dữ liệu: tên sản phẩm, model (tên mẫu), số lượng tồn, giá bán, mức giảm giá và tình trạng (đang kinh doanh hoặc ngừng kinh doanh) Báo cáo nhằm cung cấp cái nhìn tổng quan về tồn kho để quản lý theo dõi biến động và đưa ra các quyết định liên quan đến nhập hàng, điều chỉnh giá và hoạt động kinh doanh.

Danh sách các yêu cầu

STT Tên yêu cầu Biểu mẫu Quy định Ghi chú

1 Lập hóa đơn bán BM 1 QĐ 1

2 Lập báo cáo bán hàng BM 3

3 Lập phiếu chi BM 4 QĐ 4

4 Lập phiếu nhập kho BM 5 QĐ 5

5 Lập phiếu xuất kho BM 2 QĐ 2

6 Lập phiếu kiểm kho BM 6 QĐ 6

7 Lập báo cáo thống kê BM 7

8 Tiếp nhận nhà cung cấp BM 8

9 Lập phiếu bảo hành BM 9

Danh sách các biểu mẫu

3.1.4.1 Biểu mẫu 1 và quy định 1

BM1 LẬP HÓA ĐƠN BÁN

STT Sản phẩm Đơn giá Số lượng Thành tiền

QĐ 1: Số lượng bán phải lớn hơn 0 và nhỏ hơn hoặc bằng số lượng tồn trong kho Chỉ cho hủy phiếu bán hàng khi ngày lập phiếu bằng với ngày hiện tại

3.1.4.2 Biểu mẫu 2 và quy định 2

BM2 LẬP PHIẾU XUẤT KHO

STT Sản phẩm Số lượng tồn Số lượng xuất Giá bán Thành tiền 1

QĐ2 quy định rằng số lượng xuất phải lớn hơn 0 và nhỏ hơn hoặc bằng số lượng tồn kho hiện có; việc hủy phiếu xuất kho chỉ được cho phép khi ngày lập phiếu bằng với ngày hiện tại.

3.1.4.3 Biểu mẫu 3 và quy định 3

BM3 LẬP BÁO CÁO BÁN HÀNG

STT Ngày bán Số hóa đơn Tổng tiền

3.1.4.4 Biểu mẫu 4 và quy định 4

QĐ4: Chỉ cho hủy phiếu chi khi ngày lập phiếu bằng với ngày hiện tại 3.1.4.5 Biểu mẫu 5 và quy định 5

BM5 LẬP PHIẾU NHẬP KHO

STT Sản phẩm Đơn vị tính Số lượng nhập Giá nhập Thành tiền

QĐ 5: Giá bán của 1 sản phẩm phải được tính theo công thức bình quân gia quyền sau mỗi lần nhập Chỉ cho hủy phiếu nhập kho khi ngày lập phiếu bằng với ngày hiện tại

Số lượng tồn * Giá trị tồn + Số lượng nhập * Giá nhập Đơn giá bình quân - sau mỗi lần nhập Số lượng tồn + Số lượng nhập

3.1.4.6 Biểu mẫu 6 và quy định 6

BM6 LẬP PHIẾU KIỂM KHO

STT Sản phẩm Số lượng hiện có Số lượng kiểm tra

QĐ 6: Chỉ cho hủy phiếu kiểm kho khi ngày lập phiếu bằng với ngày hiện tại

3.1.4.7 Biểu mẫu 7 và quy định 7

BM7.1 LẬP BÁO CÁO DOANH THU ĐẶT HÀNG ONLINE

STT Ngày đặt Số hóa đơn Tổng tiền

BM7.2 LẬP BÁO CÁO HÀNG HÓA

STT Tên hàng hóa Tên loại hàng hóa Giá bán Giảm giá 1

BM7.3 LẬP BÁO CÁO PHIẾU CHI

STT Ngày chi Ghi chú Tổng tiền chi

BM7.4 LẬP BÁO CÁO TỒN KHO

3.1.4.8 Biểu mẫu 8 và quy định 8

BM8 TIẾP NHẬN NHÀ CUNG CẤP

Tên nhà cung cấp: … Địa chỉ: …

3.1.4.9 Biểu mẫu 9 và quy định 9

BM9 LẬP PHIẾU BẢO HÀNH

Nghiệp vụ Khách hàng

3.2.1 Sơ đồ Usecase Khách hàng

Xem các sản phẩm đang được trưng bày Xem chi tiết sản phẩm

Thêm vào giỏ hàng, đặt hàng

DỰNG ỨNG DỤNG 31 4.1 Thiết kế dữ liệu

Mô tả chi tiết các bảng

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 MaChucVu Int Not null Khóa chính, tự động tăng

2 TenChucVu nvarchar 100 kí tự Tên của chức vụ

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 TenNhanVien Nvarchar 50 kí tự Tên của nhân viên

2 DiaChi Nvarchar 100 kí tự Địa chỉ của nhân viên

3 SoDienThoai Varchar 15 kí tự Số điện thoại của nhân viên

4 Email Nvarchar 30 kí tự Email của nhân viên

5 CMND Varchar 10 kí tự CMND của nhân viên

6 UserName Varchar 100 kí tự Tên đăng nhập của nhân viên

7 PassWord Varchar 50 kí tự Mật khẩu của nhân viên

8 TrangThai Bit Trạng thái của nhân viên

9 MaChucVu Int Mã chức vụ của nhân viên

10 Avatar Nvarchar Đường dẫn avata của nhân viên

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 MaChucVu Int Không null Mã của chức vụ

2 MaQuyen Varchar Không null, 50 kí tự

3 ChuThich Nvarchar 100 kí tự Những chú thích, bổ sung

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 MaQuyen Varchar 50 kí tự Mã quyền, khóa chính

2 TenQuyen Nvarchar 100 kí tự, không null

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuNhap Int Không null Khóa chính, mã số phiếu nhập

2 NgayNhap Date Ngày nhập phiếu

3 MaNhanVien Int Mã của nhân viên

4 MaNhaCungCap Int Mã của nhà cung cấp

5 TongTien Decimal Tổng tiền của đơn hàng

6 GhiChu Nvarchar 200 kí tự Ghi chú

7 TrangThai Bit Hoàn thành (true)

8 NgayChinhSua Datetime Ngày chỉnh sửa phiếu

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuChi Int Không null Mã số phiếu chi, khóa chính

2 NgayChi Date Ngày tạo phiếu

3 MaNhanVien Int Mã nhân viên tạo phiếu

4 MaPhieuNhap Int Mã phiếu nhập

5 TongTienChi Decimal Tổng tiền chi

6 GhiChu Nvarchar 200 kí tự Ghi chú

7 NgayChinhSua Datetime Ngày chỉnh sửa phiếu

8 TrangThai Bit Hoàn thành(true)

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuNhap Int Không null Khóa chính, mã số phiếu nhập

2 NgayNhap Date Ngày nhập phiếu

3 MaNhanVien Int Mã của nhân viên

4 MaNhaCungCap Int Mã của nhà cung cấp

5 TongTien Decimal Tổng tiền của đơn hàng

6 GhiChu Nvarchar 200 kí tự Ghi chú

7 TrangThai Bit Đang sử dụng(true)

8 NgayChinhSua Datetime Ngày chỉnh sửa phiếu

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuBanHang Int Không null Số phiếu bán hàng, khóa chính

2 NgayBan Date Ngày bán hàng

3 MaNhanVien Int Mã nhân viên

4 TenKhachHang Nvarchar 200 kí tự Tên khách hàng

5 SoDienThoai Varchar 15 kí tự Số điện thoại khách hàng

7 GhiChu Nvarchar 200 kí tự Ghi chú

8 NgayChinhSua Datetime Ngày chỉnh sửa

9 TrangThai Bit Hoàn thành (true)

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuBaoHanh Int Không null Số phiếu bảo hành, khóa chính

2 NgayLap Date Ngày lập phiếu

4 MaNhanVien Int Mã nhân viên

5 TenKhachHang Nvarchar 200 kí tự Tên khách hàng

6 SoDienThoai Varchar 50 kí tự Số điện thoại khách hàng

8 GhiChu Nvarchar 200 kí tự Ghi chú

9 DaGiao Bit Đã giao hàng (true)

10 NgayChinhSua Datetime Ngày chỉnh sửa

11 TrangThai Bit Hoàn thành (true)

12 ModelName Nvarchar 50 kí tự Tên của model

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuKiemKho Int Số phiếu kiểm kho, khóa chính

2 NgayKiemKho Date Ngày kiểm kho

3 MaNhanVien Int Mã nhân viên

4 GhiChu Nvarchar 200 kí tự Ghi chú

5 NgayChinhSua Datetime Ngày chỉnh sửa

6 TrangThai Bit Hoàn thành (true)

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuXuatKho Int Không null Mã số phiếu xuất kho, khóa chính

2 NgayXuat Date Ngày xuất kho

3 MaNhanVien Int Mã nhân viên

4 LyDoXuat Nvarchar 200 kí tự Lý do xuất kho

6 NgayChinhSua Datetime Ngày chỉnh sửa

7 TrangThai Bit Hoàn thành (true)

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuNhap Int Không null Mã số phiếu nhập, khóa chính

2 MaHangHoa Int Không null Mã số hàng hóa, khóa chính

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuDatHang Int Không null Mã số phiếu dặt hàng, khóa chính

2 MaHangHoa Int Không null Mã số hàng hóa, khóa chính

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuDatHang Int Không null Mã số phiếu bán hàng, khóa chính

2 MaHangHoa Int Không null Mã số hàng hóa, khóa chính

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuKiemKho Int Không null Mã số phiếu kiểm kho, khóa chính

2 MaHangHoa Int Không null Má số hàng hóa

3 SoLuongHienTai Int Số lượng hiện tại

4 SoLuongKiemTra Int Số lượng kiểm tra

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 SoPhieuXuatKho Int Không null Mã số phiếu xuất kho, khóa chính

2 MaHangHoa Int Không null Má số hàng hóa

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 MaNhaCungCap Int Không null Mã nhà cung cấp

2 TenNhaCungCap Nvarchar 50 kí tự Tên nhà cung cấp

3 DiaChi Nvarchar 100 kí tự Địa chỉ nhà cung cấp

4 SoDienThoai Varchar 15 kí tự Số điện thoại nhà cung cấp

5 Email Nvarchar 30 kí tự Email nhà cung cấp

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 MaLoaiHangHoa Int Không null Mã loại hàng hóa, khóa chính

2 TenLoaiHangHoa Nvarchar 50 kí tự Tên loại hàng hóa

3 PhanTramLoiNhuan Int Phần trăm lợi nhuận

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 MaHangHoa Int Không null Mã hàng hóa

2 TenHangHoa Nvarchar 50 kí tự Tên hàng hóa

5 SoLuongTon Int Số lượng tồn

6 DonViTinh Nvarchar 50 kí tự Đơn vị tính

8 ThongSoKythuat Nvarchar Thông số kĩ thuật

9 XuatXu Nvarchar 200 kí tự Xuất xứ

10 ThoiGianBaoHanh Int Thời gian bảo hành

11 HinhAnh Nvarchar Đường dẫn hình ảnh

12 MaLoaiHangHoa Int Mã loại hàng hóa

13 TrangThai Bit Đang kinh doanh(true) Ngừng kinh doanh

14 ModelName Nvarchar Tên hàng hóa theo nhà sản xuất

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 MaBaoCaoTonKho Int Không null Mã báo cáo tồn kho, khóa chính

4 MaHangHoa Int Mã hàng hóa

5 SoLuongTonDau Int Số lượng tồn đầu

6 SoLuongNhap Int Số lượng nhập

7 SoLuongXuat Int Số lượng xuất

8 SoLuongTonCuoi Int Số lượng tồn cuối

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú

1 MaThamSo Int Không null Khóa chính, tự tăng

Thiết kế kiến trúc

Trang web được xây dựng trên nền ASP.NET MVC 5

Sử dụng Entity framework để kết nối với database

Dùng linq để thực hiện các câu truy vấn SQL

Việc áp dụng Repository pattern giúp quản lý quyền truy cập dữ liệu chặt chẽ và tăng cường bảo mật, đồng thời làm mã nguồn gọn gàng và dễ bảo trì Với pattern này, mọi thao tác truy xuất và xử lý dữ liệu được tập trung ở một lớp duy nhất, cho phép thay đổi quyền truy cập và xử lý dữ liệu một cách dễ dàng mà không ảnh hưởng tới các thành phần khác của hệ thống Điều này tạo sự tách biệt giữa giao diện và nguồn dữ liệu, cải thiện tính nhất quán, khả năng mở rộng và tối ưu hóa hiệu suất, đồng thời tăng cường an toàn dữ liệu cho ứng dụng.

4.2.2 Mô hình kiến trúc hệ thống

Kiến trúc hệ thống được chia làm 4 tầng (MVC + 3 tier)

Tầng Business là lớp chịu trách nhiệm xử lý các nghiệp vụ của chương trình và sẽ kết nối với Tầng Common & Data để thực thi các phép tính, đảm bảo tính hợp lệ của quy trình và toàn vẹn dữ liệu Nó thực hiện các nghiệp vụ cốt lõi, áp dụng các quy tắc kinh doanh và kiểm tra tính nhất quán của dữ liệu trước khi truyền thông tin giữa các tầng, từ đó duy trì dữ liệu chính xác và an toàn cho toàn hệ thống.

- Tầng Common: Tầng giao tiếp với hệ quản trị CSDL.

- Tầng Data (sẽ kết nối với tầng Common): Tầng chứa các Repository design pattern

- Tầng Web (sẽ kết nối với tầng Common & Business): Thành phần giao diện của chương trình tương tác với người sử dụng

4.2.3 Mô tả chi tiết thành phần trong hệ thống

MVC là viết tắt của Model - View - Controller, là một mô hình kiến trúc phần mềm được thiết kế nhằm quản lý và xây dựng các dự án phần mềm có cấu trúc rõ ràng và dễ bảo trì Mô hình này tách biệt ba thành phần chính: Model (dữ liệu và nghiệp vụ), View (giao diện người dùng) và Controller (logic điều khiển), giúp phân chia trách nhiệm và tăng tính mở rộng của ứng dụng MVC được áp dụng rộng rãi, đặc biệt trong các ngôn ngữ lập trình web, nhờ khả năng tối ưu hóa luồng dữ liệu và nâng cao khả năng bảo trì, tái sử dụng mã nguồn.

Trong mô hình này thì:

- Model: có nhiệm vụ thao tác với cơ sở dữ liệu, nghĩa là nó sẽ chứa tất cả các hàm, các phương thức truy vấn trực tiếp với dữ liệu và controller sẽ thông qua các hàm, phương thức đó để lấy dữ liệu rồi gửi qua View

Trong kiến trúc MVC, View là thành phần giao diện người dùng chịu trách nhiệm nhận dữ liệu từ Model qua Controller và hiển thị nội dung dưới dạng HTML cho trình duyệt Controller đóng vai trò trung gian giữa Model và View: nó tiếp nhận yêu cầu từ client, xử lý yêu cầu, tải Model liên quan và truyền dữ liệu đến View để trình diễn Nhờ sự phối hợp này, Model xử lý dữ liệu và nghiệp vụ, View tập trung vào trình bày và trải nghiệm người dùng, còn Controller điều phối luồng dữ liệu giữa hai thành phần và trả kết quả về cho client.

The presentation tier encompasses the components that process and render the graphical user interface (GUI) It serves as the primary point of interaction with users, displaying data and collecting input to facilitate seamless communication Its main role is to present information clearly and efficiently while capturing user responses to drive application behavior.

The Business tier comprises the Business Logic Layer (BLL), the Data Access Layer (DAL), and the Data Transfer Object (DTO) It provides the core software functionalities by encapsulating business rules, coordinating data operations, and transferring data between layers via DTOs This tier acts as the bridge between the presentation layer and data sources, promoting modularity, testability, and maintainability while supporting scalable software development.

Data tier is the data storage layer, comprising database management systems such as MS SQL Server, Oracle, SQLite, and MS Access, as well as data formats like XML files and plain text files It stores data and enables the business logic layer to search, retrieve, and update information efficiently.

Trong quá trình triển khai, Web với mô hình MVC đảm nhận vai trò lớp Presentation, trình diễn giao diện và tương tác với người dùng Kiến trúc 3 tầng được áp dụng chuẩn trên hệ thống client-server, phân tách rõ ràng giữa tầng trình diễn (Presentation), tầng nghiệp vụ (Business Logic) và tầng dữ liệu (Data), từ đó tối ưu hóa bảo trì, mở rộng và hiệu suất toàn hệ thống.

Thiết kế giao diện

4.3.1 Danh sách các giao diện

STT Tên màn hình Ý nghĩa / Ghi chú

2 Trang quản trị (Admin) Chứa thanh menu ứng với mỗi quyền truy cập

3 Danh sách phiếu bán hàng

5 Danh sách phiếu bảo hành

7 Danh sách phiếu kiểm kho

9 Danh sách phiếu nhập kho

11 Danh sách phiếu xuất kho

15 Danh sách phiếu đặt hàng

17 Thêm/sửa thông tin sản phẩm

18 Danh sách loại sản phẩm

19 Thêm/sửa thông tin loại sản phẩm

20 Danh sách nhà cung cấp

21 Thêm/sửa thông tin nhà cung cấp

23 Thêm/sửa thông tin nhân viên

4.3.2 Chi tiết các màn hình

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

1 tenDangNhap input/text Nhập tên đăng nhập

2 matKhau input/password Nhập mật khẩu

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Đăng nhập Đăng nhập vào trang quản trị (Admin)

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

1 btnTrangChinh button Trở về trang chính

2 btnBanHang select Chọn trang danh sánh bán hàng hoặc tạo phiếu bán hàng

4 btnBaoHanh select Chọn trang danh sánh bảo hành hoặc Lập phiếu bảo hành

5 btnDatHang select Chọn trang danh sánh đặt hàng

6 btnHangHoa select Chọn trang danh sánh sản phẩm hoặc thêm sản phẩm

7 btnKiemKho select Chọn trang danh sánh kiểm kho hoặc tạo phiếu kiểm kho

8 btnLoaiHangHoa select Chọn trang danh sánh loại sản phẩm hoặc thêm loại sản phẩm

9 btnNhaCungCap select Chọn trang danh sánh nhà cung cấp hoặc thêm nhà cung cấp

10 btnNhapKho select Chọn trang danh sánh nhập kho hoặc tạo phiếu nhập kho

11 btnNhanVien select Chọn trang danh sánh nhân viên hoặc thêm nhân viên

12 btnPhieuChi select Chọn trang danh sánh phiếu chi hoặc Lập phiếu chi

13 btnXuatKho select Chọn trang danh sánh xuất kho hoặc tạo phiếu xuất kho

14 btnNhanVien select Chọn cập nhật mật khẩu hoặc đăng xuất

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Trang chính Trở về trang chính

4.3.2.3 Danh sách phiếu bán hàng

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

1 btnLapPhieu button Lập phiếu bán hàng

2 tuNgay input/date Chọn từ ngày

3 denNgay input/date Chọn đến ngày

4 timTheoNgay button Tìm theo ngày

5 trangThai select Chọn trạng thái

6 chuoiTimKiem input/text Nhập chuỗi tìm kiếm

7 timTheoKhoa button Tìm theo từ khoá

8 danhSach table Bảng danh sách phiếu bán hàng

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lập phiếu bán hàng

Chuyển sang trang lập phiếu bán hàng

2 Chọn button Search (theo ngày)

Tìm kiếm các phiếu bán hàng trong khoảng thời gian đã chọn

3 Chọn button Search (theo trạng thái hay chuỗi)

Tìm kiếm các phiếu bán hàng theo trạng thái hay theo chuỗi

4 Chọn button Xem (trong bảng danh sách)

Hiển thị chi tiết phiếu bán hàng

5 Chọn button Huỷ (trong bảng danh sách)

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

3 btnQuayLai button Quay lại trang danh sách

4 sanPham select Chọn sản phẩm

5 danhSach table Bảng danh sách sản phẩm

6 soLuong input/text Nhập số lượng

7 btnThem button Thêm sản phẩm

8 soPhieu input/text Số phiếu

9 ngayLap input/text Ngày lập

10 nhanVien input/text Nhân viên

11 khachHang input/text Khách hàng

12 soDienThoai input/text Số điện thoại

14 tongTien input/text Tổng tiền

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lưu Kiểm tra thông tin và lưu phiếu bán hàng xuống

2 Chọn button In In phiếu bán hàng

3 Chọn button Quay lại Quay lại trang danh sách

4 Chọn button Thêm (trong bảng danh sách)

Thêm sản phẩm vào danh sách

4.3.2.5 Danh sách phiếu bảo hành

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

1 btnLapPhieu button Lập phiếu bảo hành

2 tuNgay input/date Chọn từ ngày

3 denNgay input/date Chọn đến ngày

4 timTheoNgay button Tìm theo ngày

5 trangThai select Chọn trạng thái

6 chuoiTimKiem input/text Nhập chuỗi tìm kiếm

7 timTheoKhoa button Tìm theo từ khoá

8 danhSach table Bảng danh sách phiếu bảo hành

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lập phiếu bảo hành

Chuyển sang trang lập phiếu bảo hành

2 Chọn button Search (theo ngày)

Tìm kiếm các phiếu bảo hành trong khoảng thời gian đã chọn

3 Chọn button Search (theo trạng thái hay chuỗi)

Tìm kiếm các phiếu bảo hành theo trạng thái hay theo chuỗi

4 Chọn button Xem (trong bảng danh sách)

Hiển thị chi tiết phiếu bảo hành

5 Chọn button Huỷ (trong bảng danh sách)

Xác nhận tình trạng giao máy

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

3 btnQuayLai button Quay lại trang danh sách

4 sanPham select Chọn sản phẩm

5 modelName input/text Hiển thị model name

6 ngayNhanMay input/text Hiển thị ngày nhận máy

7 ngayTraMay input/text Hiển thị ngày trả máy

8 soPhieu input/text Số phiếu

9 ngayLap input/text Ngày lập

10 nhanVien input/text Nhân viên

11 khachHang input/text Khách hàng

12 soDienThoai input/text Số điện thoại

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lưu Kiểm tra thông tin và lưu phiếu bảo hành xuống

2 Chọn button In In phiếu bán hàng

3 Chọn button Quay lại Quay lại trang danh sách

4.3.2.7 Danh sách phiếu kiểm kho

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

1 btnLapPhieu button Lập phiếu kiểm kho

2 tuNgay input/date Chọn từ ngày

3 denNgay input/date Chọn đến ngày

4 timTheoNgay button Tìm theo ngày

5 trangThai select Chọn trạng thái

6 chuoiTimKiem input/text Nhập chuỗi tìm kiếm

7 timTheoKhoa button Tìm theo từ khoá

8 danhSach table Bảng danh sách phiếu kiểm kho

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lập phiếu kiểm kho

Chuyển sang trang lập phiếu kiểm kho

2 Chọn button Search (theo ngày)

Tìm kiếm các phiếu kiểm kho trong khoảng thời gian đã chọn

3 Chọn button Search (theo trạng thái hay chuỗi)

Tìm kiếm các phiếu kiểm kho theo trạng thái hay theo chuỗi

4 Chọn button Xem (trong bảng danh sách)

Hiển thị chi tiết phiếu kiểm kho

5 Chọn button Huỷ (trong bảng danh sách)

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

3 btnQuayLai button Quay lại trang danh sách

4 sanPham select Chọn sản phẩm

5 danhSach table Bảng danh sách sản phẩm

6 soLuongKT input/text Nhập số lượng kiểm tra

7 btnThem button Thêm sản phẩm

8 soPhieu input/text Số phiếu

9 ngayLap input/text Ngày lập

10 nhanVien input/text Nhân viên

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lưu Kiểm tra thông tin và lưu kiểm kho hàng xuống

2 Chọn button In In phiếu bán hàng

3 Chọn button Quay lại Quay lại trang danh sách

4 Chọn button Thêm (trong bảng danh sách)

Thêm sản phẩm vào danh sách

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

3 btnQuayLai button Quay lại trang danh sách

4 sanPham select Chọn sản phẩm

5 danhSach table Bảng danh sách sản phẩm

6 soLuongNhap input/text Nhập số lượng

7 giaNhap input/text Nhập giá nhập hàng

8 btnThem button Thêm sản phẩm

9 soPhieu input/text Số phiếu

10 ngayLap input/text Ngày lập

11 nhanVien input/text Nhân viên

12 nhaCungCap select Nhà cung cấp

14 tongTien input/text Tổng tiền

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lưu Kiểm tra thông tin và lưu phiếu nhập kho xuống

2 Chọn button In In phiếu nhập kho

3 Chọn button Quay lại Quay lại trang danh sách

4 Chọn button Thêm (trong bảng danh sách)

Thêm sản phẩm vào danh sách

4.3.2.10 Danh sách phiếu xuất kho

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

1 btnLapPhieu button Lập phiếu xuất kho

2 tuNgay input/date Chọn từ ngày

3 denNgay input/date Chọn đến ngày

4 timTheoNgay button Tìm theo ngày

5 trangThai select Chọn trạng thái

6 chuoiTimKiem input/text Nhập chuỗi tìm kiếm

7 timTheoKhoa button Tìm theo từ khoá

8 danhSach table Bảng danh sách phiếu xuất kho

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lập phiếu xuất kho

Chuyển sang trang lập phiếu xuất kho

2 Chọn button Search (theo ngày)

Tìm kiếm các phiếu xuất kho trong khoảng thời gian đã chọn

3 Chọn button Search (theo trạng thái hay chuỗi)

Tìm kiếm các phiếu xuất kho theo trạng thái hay theo chuỗi

4 Chọn button Xem (trong bảng danh sách)

Hiển thị chi tiết phiếu xuất kho

5 Chọn button Huỷ (trong bảng danh sách)

Mô tả các đối tượng trên màn hình

STT Tên Kiểu Chức năng

3 btnQuayLai button Quay lại trang danh sách

4 sanPham select Chọn sản phẩm

5 danhSach table Bảng danh sách sản phẩm

6 soLuongXuat input/text Nhập số lượng

7 btnThem button Thêm sản phẩm

8 soPhieu input/text Số phiếu

9 ngayLap input/text Ngày lập

10 nhanVien input/text Nhân viên

12 tongTien input/text Tổng tiền

Danh sách biến cố và xử lý tương ứng

STT Biến cố Xử lý

1 Chọn button Lưu Kiểm tra thông tin và lưu phiếu xuất kho xuống

2 Chọn button In In phiếu xuất kho

3 Chọn button Quay lại Quay lại trang danh sách

4 Chọn button Thêm (trong bảng danh sách)

Thêm sản phẩm vào danh sách

Ngày đăng: 05/09/2021, 20:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w