1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng hệ chương trình quản lý các giao dịch kinh doanh tại công ty fif-12

89 266 0

Đ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 89
Dung lượng 2,03 MB

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

Nội dung

Hãy thử tưởng tượng với một khối lượng công việc khá lớn như quản lý khách hàng, quản lý các bảng báo giá giúp khách hàng có cái nhìn tổng quát về các sản phẩm, quản lý các ñơn ñặt hàng,

Trang 1

H U

H

MỤC LỤC

PROCESSING SYSTEM) 4

I GIỚI THIỆU 4

II YÊU CẦU HỆ THỐNG IPS 5

1 A.M (Account Manager) 6

2 Khách hàng (M.A.: Mapping Account) 6

3 Bảng báo giá 6

4 Hợp ñồng 7

5 Đặt hàng 7

6 Xuất tạm 7

7 Xuất bán 7

8 Triển khai và hỗ trợ 7

III CÁC PHÂN HỆ CỦA HỆ THỐNG 8

1 AMM – Account Manager Management 8

2 MAM - Mapping Account Management 8

3 Quoted Management 9

4 Contract/P.O Management 9

5 Order Management 10

6 Sales Invoice/Temporary Sales Management 11

7 Implementation Management 11

8 Support Management 11

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 12

I GIỚI THIỆU SƠ LƯỢC VỀ WEB 12

II GIỚI THIỆU VỀ CÔNG NGHỆ NET 13

1 Giới thiệu về bộ khung NET (.NET Framework) 13

2 Môi trường thực thi ngôn ngữ chung (Common Language Runtime) 14

3 Đặc tả kiểu dữ liệu thông dung (Common Type Specification_CTS) 15

4 Đặc tả ngôn ngữ thông dung (Common Language Specification – CLS) 15

5 Thư viện lớp cơ sở NET (.NET base class library) 15

6 Giới thiệu Visual C#.NET 16

7 Giới thiệu ADO.NET 16

8 XML và ADO.NET 18

9 Giới thiệu về ASP.NET 19

III GIỚI THIỆU VỀ SQL SERVER 24

1 Các thành phần cơ bản của SQL Server 24

Trang 2

H U

H

4 Cấu trúc logic của một cơ sở dữ liệu SQL Server 27

5 Các dịch vụ của SQL Server 27

IV BÀN THÊM VỀ AJAX 28

CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 30

I MÔ HÌNH USE-CASE 30

1 Mô hình Use-case tổng quát 30

2 Mô hình Use-case ñăng nhập 31

3 Mô hình Use case cho các tác vụ của Admin 31

II MÔ TẢ CÁC USE-CASE 32

1 Use-case quản lý khách hàng 32

2 Use-case quản lý bảng báo giá 33

3 Use-case quản lý hợp ñồng 34

4 Use-case quản lý ñơn ñặt hàng 35

5 Use-case ñăng ký nhân viên 35

6 Use-case ñăng nhập 36

7 Use-case nghiệp vụ của nhà quản trị 36

III MÔ HÌNH CÁC LỚP CÀI ĐẶT 37

IV THIẾT KẾ DỮ LIỆU 40

1 Mô hình quan hệ 40

2 Mô tả chi tiết các bảng dữ liệu 41

CHƯƠNG IV: HIỆN THỰC VÀ KẾT QUẢ 49

I YÊU CẦU HỆ THỐNG 49

II HIỆN THỰC VÀ KẾT QUẢ 49

1 Giao diện trang chủ 49

2 Trang chấp nhận Khách hàng: 51

3 Thêm nhân viên mới và hệ thống: 52

4 Trang post thông tin và sự kiện: 53

5 Trang xem thông tin và ñổi mật khẩu 54

6 Khách hàng 55

7 Bảng báo giá 58

8 Hợp ñồng 60

9 Đơn ñặt hàng: 62

10 Trang ñăng nhập vào hệ thống của Admin: 63

11 Tạo mới và hiệu chỉnh loại khách hàng 64

12 Tạo mới và hiệu chỉnh Lĩnh vực 65

Trang 3

H U

H

CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 66

I ĐÁNH GIÁ 66

1 Các kết quả cơ bản ñạt ñược 66

2 Các kết quả chưa ñạt ñược 66

II HƯỚNG PHÁT TRIỂN 67

III KẾT LUẬN 67

1 Các biểu mẫu tham khảo 68

2 Tài liệu tham khảo 72

3 Trang Web tham khảo 72

Trang 4

H U

H

THÔNG TIN IPS (INFORMATION PROCESSING SYSTEM)

I GIỚI THIỆU

Ngày nay, công nghệ thông tin ñã và ñang ñạt ñược nhiều thành tựu quan trọng và ñược ứng dụng rất nhiều trong các lĩnh vực của cuộc sống ñặc biệt là ñối với các ngành khoa học và quản lý, giúp cho các công việc phức tạp trở nên dễ dàng hơn với những người thực hiện

FIS12 là một công ty chuyên về lĩnh vực công nghệ thông tin, cung cấp các giải pháp phần mềm và phần cứng Bên cạnh ñó công ty còn là nhà cung cấp các sản phẩm liên quan ñến lĩnh vực công nghệ thông tin Hãy thử tưởng tượng với một khối lượng công việc khá lớn như quản lý khách hàng, quản lý các bảng báo giá giúp khách hàng có cái nhìn tổng quát về các sản phẩm, quản

lý các ñơn ñặt hàng, các hợp ñồng…, với cách làm thủ công như trước ñây sẽ mất rất nhiều thời gian trong việc lưu trữ dữ liệu của các công việc quản lý trên

và sai sót chắc chắn xảy ra và việc sửa chữa sai sót cũng sẽ mất nhiều thời gian không kém

Việc xây dựng một hệ thống xử lý thông tin (Information processing system) sẽ giúp cho việc quản lý bán hàng trở nên thuận tiện hơn, giảm thiểu những sai sót không ñáng có, giúp người quản lý cảm thấy thoải mái hơn trong công việc Việc sửa chữa cập nhật thông tin cũng sẽ dễ dàng hơn

Trang 5

H U

H

II YÊU CẦU HỆ THỐNG IPS

IPS (Information Processing System) là hệ thống xử lý thông tin của công ty FIS-12 từ giai ñoạn bán hàng ñến giai ñoạn triển khai và hỗ trợ khách hàng Là trang thông tin ñể các thành viên trong công ty FIS-12 sẽ ñưa thông tin và sự kiện lên Hệ thống phân cấp quyền hạn của công ty FIS-12 bao gồm: Giám ñốc là người có quyền hành cao nhất, Giám ñốc sẽ quản lý tất cả các BU (Business Unit – Khối kinh doanh), BO (Back Office) và bộ phận kỹ thuật Mỗi

BU bao gồm trưởng BU và các AM (Account Manager – Người quản lý khách hàng) Bản thân trưởng BU cũng là một AM

Điểm khác biệt nổi bật của hệ thống IPS này chính là hệ thống không quản lý sản phẩm (mã hàng, quy cách, số lượng tồn…) Việc quản lý sản phẩm

sẽ do hệ thống khác của công ty quản lý Các sản phẩm khi AM cung cấp ñể lập bảng báo giá hay ñơn ñặt hàng sẽ ñược sao chép từ nơi khác sang Hơn nữa, ngoài việc phân quyền rõ ràng giữa người dùng và nhà quản trị, trong hệ thống người dùng, IPS còn phân rõ quyền của từng người (VD: Giám ñốc khi truy cập vào sẽ có thể thao tác ñược những gì của hệ thống IPS, và AM sẽ có quyền gì…)

Giám ñốc

Trang 6

1 A.M (Account Manager)

AM là nhân viên bán hàng của công ty AM sẽ chịu trách nhiệm giao tiếp với khách hàng thông qua các bảng chào giá Ngoài ra, AM còn lập ra các hợp ñồng, các ñơn ñặt hàng và các phiếu xuất tạm xuất bán Trưởng BU cũng

là một AM

2 Khách hàng (M.A.: Mapping Account)

Có thể nói, khách hàng là ñối tác quan trọng không thể thiếu của hệ thống FIS-12 Tuy nhiên ñể trở thành khách hàng của công ty, trước tiên AM phải cung cấp thông tin chính xác của khách hàng cho giám ñốc duyệt qua Nếu giám ñốc ñồng ý thì khách hàng ñó sẽ trở thành khách hàng thật sự của công ty Lúc ñó khách hàng sẽ giao tiếp với công ty thông qua AM Sau khi trở thành khách hàng chính thức của công ty thì thông tin cá nhân của khách hàng sẽ không thể thay ñổi Nếu có thay ñổi, AM phải thông qua Giám ñốc hiệu chỉnh lại thông tin này

3 Bảng báo giá

Là bản thông tin về giá cả cũng như các thông tin chi tiết về sản phẩm

mà AM cung cấp cho khách hàng tham khảo Bảng báo giá ñược lập cho riêng

Đặt hàng

Xuất tạm Xuất bán

Triển Khai

Hỗ Trợ

% Doanh

Số HT

Trang 7

Sau khi khách hàng ñã ñồng ý với bảng chào giá mà AM ñưa ra thì AM

sẽ tiến hành lập hợp ñồng với khách hàng ñó Nội dung hợp ñồng sẽ quy ñịnh

rõ nghĩa vụ và quyền lợi giữa 2 bên Hệ thống IPS sẽ lưu lại các thông tin chung về hợp ñồng, còn các thông tin chi tiết sẽ ñược ñính kèm theo bản hợp ñồng này

5 Đặt hàng

Nếu hàng trong kho không ñủ ñể cung cấp, AM sẽ tiến hành ñặt hàng Đơn dặt hàng này không nhất thiết phải ñặt cho hợp ñồng nào Việc cập nhật lại xem hàng ñã ñặt về ñến kho hay chưa sẽ do nhân viên thuộc B.O quản lý

6 Xuất tạm

Sau khi lập hợp ñồng, nếu sản phẩm không ñủ số lượng ñể cung cấp cho khách hàng thì AM sẽ tiến hàng ñặt hàng Trong trường hợp nếu khách hàng cần sử dụng gấp thì AM sẽ lập phiếu xuất tạm ñể xuất các mặt hàng có quy cách tương tự cho khách hàng sử dụng trước Các mặt hàng này sẽ ñược trả về kho trước khi chính thức xuất bán

7 Xuất bán

Trước khi xuất bán, phải bảo ñảm rằng các mặt hàng xuất tạm cho hợp ñồng phải ñược trả về kho Phiếu xuất bán là phiếu thực hiện việc xuất tất cả các mặt hàng ñã nêu trong hợp ñồng cho khách hàng Kết thúc việc xuất bán, doanh thu sẽ ñược tính vào tổng % doanh số của AM

8 Triển khai và hỗ trợ

Đây là giai ñoạn cuối cùng trong quá trình kinh doanh Sau khi xuất bán chính thức các sản phẩm cho khách hàng, công ty sẽ bắt ñầu triển khai thực hiện việc cài ñặt các thiết bị cho khách hàng, ñồng thời hỗ trợ kỹ thuật cho

Trang 8

H U

H

III CÁC PHÂN HỆ CỦA HỆ THỐNG

1 AMM – Account Manager Management

Quản lý danh sách AM gồm có các thông tin sau:

Các chức năng liên quan: Create, Input, Output, Modify và REPORT (FIS12, BUxx,…)

2 MAM - Mapping Account Management

Thông tin cần quản lý:

• Người liên hệ; chức danh; email, handphone

Trang 9

• Đánh giá hiệu quả bảng chào giá

• Output Excel file, Jpeg (Phase 2)

4 Contract/P.O Management

Trang 10

• Người ñại diện ñứng ký Hợp ñồng: Bên A, bên B

• Giá trị hợp ñồng: chưa VAT và có VAT ; (cho cả tiền VND và Tiền USD, nêú có là USD thì quy ñổi thêm VND và ngược lại)

• Điều kiện thanh toán: 30% sau khi ký Hợp ñồng; 70% sau khi giao hàng và nghiệm,

• Hình thức thanh toán: Tiền mặt hoặc Chuyển khoản

• Thời hạn hoàn tất hợp ñồng

• Điều kiện phạt về giao chậm và chậm thanh toán

• Các ñiều kiện ñặt biệt khác

• Nội dung hợp ñồng (hay danh mục thiết bị); file ñính kèm

Trang 11

H U

H

6 Sales Invoice/Temporary Sales Management

Trang 12

H U

H

CHƯƠNG II: CƠ SỞ LÝ THUYẾT

I GIỚI THIỆU SƠ LƯỢC VỀ WEB

World Wide Web là khái niệm mà người dùng Internet hiện nay quan tâm nhiều nhất (viết tắt là WWW hay gọi ngắn gọn là “Web”) Web là một công cụ, hay ñúng hơn là dịch vụ của internet Web chứa thông tin bao gồm văn bản, hình ảnh, âm thanh và thậm chí video ñược kết hợp với nhau Web cho phép chúng ta có thể vươn tới mọi ngóc ngách trên “Net”, là những ñiểm chứa cơ sở dữ liệu, gọi là Web site Nhờ có Web, nên cho dù không phải là một chuyên gia, chúng ta vẫn có thể sử dụng Internet

World Wide Web xuất hiện bởi nhu cầu của các viện và trường ñại học

và mặc dầu các cơ sở khoa học này vẫn ñóng vai trò chủ ñạo nhưng Web ñã biến thành nơi chứa thông tin ña truyền thông, giải trí và liên lạc Tốc ñộ phát triển của Web nhanh hơn bất kỳ phương tiện nào có từ trước tới nay

World Wide Web ñược xem như một xa lộ thông tin tốt nhất Với những công nghệ tiên tiến ñang ñược phát triển, chúng ta sẽ có ñược âm thanh, hình ảnh chất lượng cao từ Web Web có sức hấp dẫn lớn bởi vài lý do, trước hết nó cho phép hiển thị thông tin mà chúng ta truy tìm theo chế ñộ ñồ họa, hơn hẳn những dòng văn bản buồn tẻ trước ñây Tuy nhiên ñiều ñáng nói nhất khi ñề cập về Web là khả năng bao trùm rộng lớn của nó, trên Web thông tin của chúng ta có thể ñến với tất cả mọi người và ngược lại

Thông qua môi trường Internet, Web chính là một phương tiện cực kỳ hữu hiệu cho việc tìm kiếm thông tin, hiển thị thông tin, kết nối mọi người lại với nhau Mặt khác, Web chính là bộ bách khoa toàn thư khổng lồ Cứ mỗi ngày trôi qua thì có hàng trăm trang Web lại ra ñời, ñiều ñó cho thấy nhu cầu

về thông tin của người dùng ngày một tăng Tương lai của Web ñầy hứa hẹn, cũng như internet, những công nghệ tiên tiến dựa trên Web ngày một phát triển, tạo thêm sự tiện lợi cho những người duyệt Web chẳng hạn với các công

Trang 13

II GIỚI THIỆU VỀ CÔNG NGHỆ NET

1 Giới thiệu về bộ khung NET (.NET Framework)

Microsoft NET cung cấp cho chúng ta tất cả các công cụ và công nghệ giúp cho chúng ta phát triến các ứng dung web phân tán cũng như các ứng dụng truyền thống Nói ñến nền NET (.NET Platform) thì phải nói ñến:

• Các sản phẩm NET như Visual Studio.NET cùng các ngôn ngữ lập trình thông dụng như Visual C#.NET, Visual Basic.NET, Visual C++, …

• Các dịch vụ NET (.NET Services)

• Bộ khung NET (.NET Framework)

Trang 14

• Quản lý và thực thi các ứng dụng và các Web Service

• Cung cấp các tính năng về bảo mật cũng như việc quản lý bộ nhớ

• Bao gồm thư viện các lớp (Framework class library)

• Bao gồm bốn ngôn ngữ lập trình chính: Visual C#.NET, Visual Basic.NET, Managed C++ and Jscript.NET

• Bao gồm môi trường thực thi ngôn ngữ chung viết tắt là CLR (Common Language Runtime)

2 Môi trường thực thi ngôn ngữ chung (Common Language

Runtime)

• Quản lý sự thực thi mã chương trình vào thời gian chạy cho tất cả các ứng dụng viết từ nhiều ngôn ngữ khác nhau ñược hỗ trợ bởi NET Framework Quá trình biên dịch bao gồm hai giai ñoạn:

− Chương trình ñược biên dịch thành ngôn ngữ trung gian viết tắt MSIL( Microsoft Intermediate Language)

− Sau ñó mã MSIL sẽ ñược biên dịch thành mã máy và thực thi

• Cung cấp một tập hợp các dịch vụ cho tất cả các ngôn ngữ tuân theo ñặc tả của CLR như xử lý ngoại lệ (Exception), bảo mật, gỡ rối vv

• Đơn giản hóa việc phát triển và quản lý ứng dụng, cung cấp một môi trường thực thi mạnh mẽ, hiệu quả và bảo mật, hỗ trợ nhiều ngôn ngữ

Trang 15

CTS là một ñặc tả hình thức có nhiệm vụ mô tả một kiểu dữ liệu nào

ñó (lớp, cấu trúc, giao diện, kiểu dữ liệu bẩm sinh, vv…) và các kiểu dữ liệu này phải ñược ñịnh nghĩa thế nào mà CLR có thể chấp nhận làm việc ñược Ngoài ra CTS cũng ñịnh nghĩa một số cấu trúc cú pháp (chẳng hạn nạp chồng toán tử) mà một số ngôn ngữ ñược NET hỗ trợ có thể chấp nhận hỗ trợ hoặc không

4 Đặc tả ngôn ngữ thông dung (Common Language

Specification – CLS)

CLS là một tập hợp những qui tắc hướng dẫn mô tả một cách chi tiết những tính năng tối thiểu và trọn vẹn mà một trình biên dịch NET phải chấp nhận hỗ trợ ñể có thể tạo những ñoạn mã hoạt ñộng theo ñúng những qui tắc do CLR ñặt ra và ñồng thời có thể ñược sử dụng một cách ñồng nhất giữa những ngôn ngữ ñược hỗ trợ bởi NET

5 Thư viện lớp cơ sở NET (.NET base class library)

Thư viện lớp cơ sở NET là một tập hợp rất nhiều các lớp hỗ trợ cho công việc lập trình của lập trình viên ñược ñơn giản hơn, cho phép các lập trình viên làm ñược nhiều việc hơn mà trước ñây chỉ có thể thực hiện ñược thông qua Windows API

Thư viện lớp cơ sở bao gồm:

• Các kiểu dữ liệu bẩm sinh chẳng hạn int, float, char, vv…

• Hỗ trợ việc lập trình giao diện GUI (Graphic User Interface)

• Hỗ trợ lập trình web với công nghệ ASP.NET

Trang 16

• NET Attributes và Reflection

6 Giới thiệu Visual C#.NET

Visual C# NET là một công cụ phát triển ứng dụng của Microsoft sử dụng ngôn ngữ C# Nó bao gồm một môi trường phát triển tương tác và các giao diện thiết kế trực quan cho quá trình xây dựng các ứng dụng windows và các ứng dụng web, một trình biên dịch và một trình gỡ lỗi (debugger) Visual C# NET là một phần trong bộ sản phẩm Visual Studio NET, bao gồm các ngôn ngữ khác như Visual Basic NET, Visual C++ NET và ngôn ngữ kịch bản Jscript Tất cả những ngôn ngữ này ñều cung cấp một cơ chế truy xuất dến

bộ khung làm việc NET (.NET Framework) bao gồm môi trường thực thi chung (common execution engine) và thư viện các lớp

7 Giới thiệu ADO.NET

ADO.NET là một công nghệ truy cập cơ sở dữ liệu mới nhất viết tắt của ActiveX Data Objects for NET Framework, có thể truy cập nhiều nguồn dữ liệu khác nhau chẳng hạn Access, SQL Server, Oracle, v.v

ADO.NET là một tập các lớp dùng cho việc kết nối tới các nguồn dữ liệu khác nhau ñể truy xuất, thao tác và cập nhật dữ liệu, những lớp này là một phần của bộ khung NET Một trong những mục ñích của các lớp ADO.NET là cung cấp một kiến trúc cho việc xây dựng những ứng dụng mạnh mẽ và uyển chuyển Ngoài ra ADO.NET còn cung cấp một tập hợp khá phong phú các thành phần dữ liệu (data component) cho phép tạo những ứng dụng truy xuất

Trang 17

ADO.NET trông giống ADO nhưng ñiểm khác biệt chính là ADO.NET

là một kiến trúc dữ liệu không kết nối Trong kiến trúc dữ liệu không kết nối,

dữ liệu ñược truy xuất từ cơ sở dữ liệu và ñược cache vào bộ nhớ trên máy của bạn Bạn thao tác dữ liệu trên máy của bạn và kết nối vào cơ sở dữ liệu khi cập nhật dữ liệu hoặc truy xuất dữ liệu mới Điểm thuận lợi lớn nhất trong kiến trúc này là giúp bạn tránh ñược những vấn ñề liên quan ñến các ñối tượng kết nối ñến cơ sở dữ liệu Các kết nối ñến cơ sở dữ liệu là nguồn tài nguyên nhạy cảm

và thật khó có thể duy trì hàng trăm ngàn kết nối song song cùng một lúc

ADO.NET kết nối ñến cơ sở dữ liệu dể truy xuất dữ liệu và kết nối lần nữa ñể cập nhật dữ liệu ñã ñược thay ñổi Hầu hết các ứng dụng sử dụng phần lớn thời gian ñể ñọc và trình bày dữ liệu ADO.NET cung cấp một tập con của

dữ liệu không kết nối cho mục ñích ñọc và trình bày dữ liệu của bạn

Một vài ñặc tính nổi bật của ADO.NET:

• Khả năng thao tác giữa các thành phần (interoperability): Ngôn ngữ ñược sử dụng ñể chuyển dữ liệu giữa các nguồn dữ liệu và dữ liệu sao chép trong bộ nhớ là tài liệu XML chuẩn, cho phép khả năng thao tác dữ liệu giữa các hệ thống khác nhau XML giữ một vai trò chủ yếu trong ADO.NET Mô hình ADO.NET sử dụng XML ñể trữ

dữ liệu trên cache và chuyển giao dữ liệu giữa các ứng dụng

• Khả năng duy trì (maintainability): ADO.NET duy trì dữ liệu ñược cache trong bộ nhớ cục bộ và làm cho các ứng dụng có thể mở rộng một cách logic giữa các tầng (tier) khác nhau trong ứng dụng n tầng (n-tier application)

Trang 18

XML là một chuẩn dựa trên văn bản và hơn thế nữa là một chuẩn

mở vì vậy có thể ñược sử dụng cho nhiều mục ñích khác nhau Dưới ñây

là danh sách các chức năng mà bạn có thể thao tác với XML ñược hỗ trợ trong ADO.NET:

• Đọc dữ liệu từ tài liệu XML

• Đổ dữ liệu từ tài liệu XML vào trong DataSet

• Tạo lược ñồ XML (XML Schema) cho dữ liệu ở bên trong DataSet và sau ñó sử dụng lược ñồ này ñể ghi dữ liệu như XML

• Sử dụng lược ñồ XML ñể có thể thao tác với tài liệu XML như một DataSet bằng lập trình

Trang 19

• Thiếu sự hỗ trợ ñối với các kiểu dữ liệu mạnh, vốn ñược hỗ trợ

trong các ngôn ngữ khác như Visual Basic và C++

• Thiếu sự hỗ trợ ñối với môi trường biên dịch, tất yếu dẫn ñến những vấn ñề về mặt thể hiện và mặt linh ñộng của trang web, vốn là những yêu cầu tất yếu và cần thiết ñối với những trang

web hiện ñại

ASP không cung cấp một cấu trúc vốn có dành cho việc phát triển Web Đối với các trang web tĩnh, chúng ta thường thấy các tập tin nguồn tương ñối nhỏ chủ yếu là các tập tin HTML thuần túy, nhưng ñối với những trang Web ñộng như ASP thì bên cạnh những tập tin HTML thuần túy, chúng ta phải xây dựng thêm các mã kịch bản cho trang Web

ñể xử lý thông tin, ñiều này lại dẫn ñến một vấn ñề khác Việc trộn lẫn giữa mã HTML dành cho việc thiết kế trang web và các mã kịch bản sẽ gây nên nhiều phiền toái cho cả những người chuyên viên thiết kế giao diên cho web và những lập trình viên viết mã kịch bản Việc phát triển

và bảo trì cho trang Web sau này cũng gặp rất nhiều khó khăn Hơn nữa việc pha trộn giữa mã thiết kế và mã kịch bản sẽ khiến cho mã nguồn trở nên phình to hơn, việc sử dụng lại các ñoạn mã ñã viết cũng gặp không

ít khó khăn Đây chắc chắn không phải là một giải pháp toàn diện

Trang 20

Đây mới chỉ là một vài khó khăn mà chúng ta thường gặp phải khi xây dựng một ứng dụng web bằng ASP Cùng với sự thay ñổi tự nhiên một cách nhanh chóng của Internet cũng ñòi hỏi sự thay ñổi nhanh

ở các ứng dụng Web Các ngôn ngữ lập trình Web mạnh cùng với môi trường phát triển nhanh tương ứng, mã có thể ñược sử dụng lại… chính

là những ñòi hỏi, yêu cầu từ những nhà phát triển Web và hầu như thiếu

sự hỗ trợ trong ASP Cùng với sự lớn mạnh của những ứng dụng thương mại, các ứng dụng chia sẽ dữ liệu trong mạng ngang hàng ñang là những thách thức lớn ñối với các nhà phát triển Web

b Giới thiệu ASP.NET và các tính năng vượt trội

Từ những vấn ñề ñã ñược nêu ở trên, có thể nói rằng ASP.NET ra ñời nhằm giải quyết những khó khăn tồn ñọng ở ASP và còn hơn thế nữa ASP.NET cung cấp một loạt những tính năng mới:

• Làm cho mã nguồn trong sáng và rõ ràng hơn có nghĩa là có

sự tách biệt rõ ràng giữa mã HTML thiết kế giao diện Web,

mã lập trình hay còn ñược gọi là codebehind

• Tăng cường tính bảo mật, ñộ tin cậy cho Web

• Cung cấp sự hỗ trợ tốt hơn cho các trình duyệt và các thiết bị khác nhau

• Hỗ trợ nhiều ngôn ngữ lập trình Web khác nhau: ASP bị giới hạn bởi hai ngôn ngữ VBScript và JavaScript Bộ khung làm

Trang 21

• Xử lý mã lập trình ở phía server: Một trong những khó khăn lớn nhất của các trang ASP chính là các trang này chỉ ñơn giản ñịnh nghĩa một chức năng duy nhất bắt ñầu từ ñầu trang

và kết thúc ở cuối trang Nội dung trang ñược trình bày theo thứ tự của trang, ñó có thể là mã HTML thuần hoặc là mã HTML ñược phát sinh từ mã ASP Không có cách nào có thể ñịnh vị ñược các control HTML ngoại trừ thể hiện chúng như là một phần của nội dung trang ASP.NET có thể giải quyết vấn ñề này bằng cách giới thiệu một mô hình khai báo dựa trên server dành cho các controls Khái niệm này xem ra

có vẻ xa lạ ñối với các lập trình viên ASP bởi vì các control ñược khai báo trên server, ñược lập trình trên server nhưng

sự kiện thì ñược ñiều khiển từ phía client

Cung cấp các trình ñiều khiển có thể lập trình ñược

• Cung cấp các sự kiện có thể ñiều khiển ñược bằng cách lập

trinh

Hỗ trợ các thành phần dựa trên XML

• Việc trình bày trang web trở nên tốt hơn nhờ kết hợp với các

ñoạn mã ñã ñược biên dịch

Dễ dàng cấu hình và thể hiện các trang web

Trang 22

chạy trên phía server

ASP.NET chứa ñựng một số lượng lớn tập các trình ñiều khiển

HTML Hầu hết các thẻ HTML trên trang web ñều có thể ñược ñịnh nghĩa như các ñối tượng ñiều khiển của ASP.NET, là các ñối tượng mà

có thể ñiều khiển ñược bằng các ñoạn mã lập trình kịch bản, bên cạnh ñó ASP.NET cũng chứa ñựng một tập các trình ñiều khiển nhận dữ liệu vào

có thể lập trình ñược chẳng hạn như các hộp danh sách và các trình ñiều khiển kiểm tra tính hợp lệ của dữ liệu nhập vào Đặc biệt ASP.NET còn cung cấp một trình ñiều khiển mới ñó là ô lưới dữ liệu giúp cho việc sắp xếp, phân trang, trình bày dữ liệu một cách thuận tiện nhất

Nhờ kết hợp với các ñoạn mã ñã biên dịch mà quá trình thực thi ñược tăng lên ñáng kể Trong lần yêu cầu ñầu tiên của trình duyệt web

ñối với trang ASP.NET trên máy chủ, máy chủ sẽ biên dịch mã ASP.NET và giữ một bản sao chép trong bộ nhớ

Việc cấu hình ASP.NET ñược thực hiện trên tập tin dữ liệu phẳng một cách dễ dàng, và có thể thay ñổi tập tin cấu hình trong khi ứng dụng ñang chạy mà không cần phải khởi ñộng lại máy chủ

ASP.NET không hoàn toàn tương thích với các phiên bản trước của ASP cho nên hầu hết các ñoạn mã ASP cần một số thay ñổi mới có

thể chạy dưới nền ASP.NET

Một trong những tính năng khá hay của ASP.NET chính là Web Form giúp cho các nhà phát triển web có thể tạo ra giao diện người sử dụng có khả năng lập trình ñược cho ứng dụng web của mình Một trang web form trình bày thông tin ñến người dùng trên bất cứ trình duyệt web nào hoặc bất kỳ thiết bị di ñộng nào Các trang web form ñều dựa trên công nghệ ASP.NET của Microsoft mà trong ñó các ñoạn mã sẽ ñược

Trang 23

H U

H

thực thi một cách ñộng trên máy chủ và trả về trang web theo yêu cầu

của người dùng Các web form ñược chia thành hai thành phần chính:

• Thành phần hiển thị trực quan (visual): Các thành phần hiển thị

ñược xem như bề mặt của trang web, chứa ñựng các văn bản tĩnh,

mã HTML, các trình ñiều khiển phía máy chủ ASP.NET hay nói cách khác thành phần hiển thị hoạt ñộng như một khung chứa văn bản tĩnh và các trình ñiều khiển mà bạn muốn hiển thị thông tin

về cho người dùng

• Thành phần luận lý: Đây chính là các ñoạn mã mà bạn tạo ra

nhằm tương tác với trang Web Form, thành phần nằm tách biệt trong một tập tin ñối với thành phần hiển thị, thành phần này có thể ñược viết bằng các ngôn ngữ lập trình khác nhau như Visual Basic, Visual C#, Visual C++…

Dưới ñây là cấu trúc của các file Web Form

Trang 24

H U

H

III GIỚI THIỆU VỀ SQL SERVER

Microsoft SQL Server 2000 là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS)), cung cấp cách tổ chức

dữ liệu bằng cách lưu chúng vào các bảng dữ liệu Một RDBMS bao gồm các

cơ sở dữ liệu (databases), database engine và các ứng dụng dùng ñể quản lý dữ liệu và các bộ phận khác nhau trong RDBMS Dữ liệu quan hệ có thể ñược nhóm vào các bảng và các quan hệ có thể ñược ñịnh nghĩa giữa các bảng với nhau, sử dụng Transact-SQL ñể trao ñổi dữ liệu giữa máy Client và máy chủ SQL

SQL Server ñược tối ưu ñể có thể chạy trên môi trường cơ sở dữ liệu rất lớn lên ñến Tera-Byte và có thể phục vụ cho hàng ngàn người dùng cùng lúc SQL Server 2000 có thể kết hợp rất tốt với các server khác như Microsoft Internet Information Services (IIS), Proxy server, E-commerce server…

1 Các thành phần cơ bản của SQL Server

SQL Server ñược cấu tạo bởi nhiều thành phần như Relational Database Engine, Analaysis Service, English Query… Các thành phần này khi phối hợp với nhau sẽ tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liêu một cách dễ dàng

• Relational Database Engine - Lõi của SQL Server: Đây là một engine có khả năng chứa dữ liệu ở các quy mô khác nhau dưới dạng bảng (table) và hỗ trợ tất cả các kiểu kết nối dữ liệu (data connection) thông dụng của Microsoft như ADO (ActiveX Data Object), OLE DB, ODBC (Open Database Connectivity) Ngoài

ra nó còn có khả năng tự ñiều chỉnh ví dụ như sử dụng thêm tài nguyên của máy khi cần và trả lại tài nguyên cho máy khi người

dùng log off

• Replication-Cơ chế tạo bản sao

Trang 25

H U

H

• Data Transformation Service-Dịch vụ chuyển dịch dữ liệu: dùng

ñể di chuyển dữ liệu giữa các server khác nhau

Analysis Service: Dịch vụ phân tích dữ liệu

• English Query: Đây là một dịch vụ giúp cho việc truy vấn bằng

tiếng anh

Meta Data Service: Dịch vụ này giúp cho việc chứa ñựng và thao

tác với Meta Data dễ dàng hơn Meta Data là những thông tin mô

tả về cấu trúc của dữ liệu trong cơ sở dữ liệu

2 Cấu trúc của SQL Server

Đặc ñiểm của SQL Server là Multiple-Instance (nhiều thể hiện) cho

nên khi nói ñến một server nào ñó thi ta thường nói ñến một Instance (thể

hiện) của SQL Server 2000, thông thường ñó là Default Instance Một Instance của SQL Server 2000 thường có 4 cơ sở dữ liệu hệ thống (system database) và một hoặc nhiều cơ sở dữ liệu do người dùng ñịnh nghĩa (user database):

Master: Chứa các thông tin cấp hệ thống (system-level

information) bao gồm thông tin về các cơ sỡ dữ liệu khác trong

hệ thống như vị trí của các tập tin dữ liệu, các tài khoản ñăng nhập (login account), các thiết lập cấu hình hệ thống của SQL

Server (system configuration settings)

Tempdb: Chứa tất cả những table hay những stored procedured

ñược tạm thời tạo ra trong quá trình làm việc bởi user nào ñó hay

do bản thân SQL Server Engine Các table hay các stored procedure này sẽ tự ñộng biến mất khi ta khởi ñộng lại SQL

Server hay ta ngắt kết nối

Trang 26

H U

H

Model: Cơ sở dữ liệu này ñóng vai trò như một cơ sở dữ liệu mẫu

cho các cơ sở dữ liệu khác Nghĩa là khi một cơ sở dữ liệu do người dùng ñịnh nghĩa ñược tạo ra thì SQL Server sẽ sao chép toàn bộ các system objects (tables, stored procedures,…) từ cơ sở

dữ liệu mẫu sang cơ sở dữ liệu mới vừa tạo

Msdb: Cơ sở dữ liệu này ñược SQL Server Agent sử dụng ñể

hoạch ñịnh các báo ñộng và các công việc cần làm (schedule

alerts and jobs)

3 Cấu trúc vật lý của một cơ sở dữ liệu SQL Server

Mỗi một cơ sở dữ liệu trong SQL Server ñều chứa ít nhất một tập tin

dữ liệu chính (primary) và có thể có thêm một hoặc nhiều tập tin dữ liệu phụ (secondary) và một tập tin transaction log

• Tập tin dữ liệu chính (primary data file) (thường có phần mở rộng mdf): ñây là tập tin chứa dữ liệu và các bảng hệ thống (system tables)

• Tập tin dữ liệu phụ (secondary data file) (thường có phần mở rộng ndf): thường chỉ ñược sử dụng khi cơ sở dữ liệu ñược phân chia ñể có thể ñược lưu trữ trên nhiều ñĩa khác nhau

• Tập tin Transaction log (Transaction log file) (thường có phần

mở rộng *.ldf): ñây là tập tin ghi lại tất cả những gì thay ñổi diễn

ra trong cơ sở dữ liệu và chứa ñầy ñù thông tin ñể có thể roll back hay roll forward khi cần

Trang 27

H U

H

4 Cấu trúc logic của một cơ sở dữ liệu SQL Server

Hầu như mọi thứ trong SQL Server ñược tổ chức thành các object ví

dụ như tables, views, stored procedures, triggiers… Những system ojbect thường bắt ñầu bằng chữ sp hay sys Một số system object thường dùng:

• sp_help [‘object’]: Cung cấp thông tin về database object (table, view, stored procedure, trigger,…) hay về data type

• sp_helpdb [‘database’]: Cung cấp thông tin về một database nào

Transact-• Dịch vụ SQL Server Agent: hỗ trợ lập chương trình, thực thi tác

vụ, cảnh báo, thông báo và kế hoạch bảo trì cơ sở dữ liệu

Trang 28

• Dịch vụ Microsoft Search: hỗ trợ tìm kiếm và lập chỉ mục văn bản ñầy ñủ Lập chỉ mục văn bản ñầy ñủ cho phép thực hiện các tìm kiếm phức tạp hơn ñược thực hiện trên dữ liệu chuỗi ký tự

IV BÀN THÊM VỀ AJAX

AJAX (Asynchoronus Javascript And XML – tạm dịch là truy cập dữ liệu theo kiểu bất ñồng bộ bằng Javascript và XML), ñược Jesse James Garrett của công ty Adapative ñịnh nghĩa và tóm gọn lại từ cụm từ “Asynchronus Javascript+CSS+DOM+XMLHttpRequest”, lần ñầu tiên xuất hiện vào tháng 2 năm 2005 Tuy mới mẻ nhưng kết quả mà AJAX mang lại cho các nhà lập trình Web cũng như người dùng Web thật ñáng kinh ngạc

Điều kinh ngạc mà AJAX ñem lại chính là tốc ñộ tuy cập Web mà trọng

ñiểm tập trung ở ñối tượng XMLHttpRequest Đây là ñối tượng ñược Microsoft

tích hợp vào trình duyệt Web IE5.1 dưới dạng một ActiveX

Có thể nói AJAX không phải là một công nghệ mà là tập hợp nhiều công nghệ khác ñể tạo ra ñiều kỳ diệu này Với mô hình Web bình thường, sau khi gửi yêu cầu lên máy chủ, máy khách phải chờ cho máy chủ phản hồi lại thì mới có thể tiếp tục gửi yêu cầu Hơn nữa cũng với mô hình ấy, khi máy khách nhận phản hồi từ máy chủ thì cũng ñồng nghĩa với việc tải lại trang web, ñiều này làm tốn khá nhiều thời gian duyệt Web Và AJAX ñã cải thiện ñược ñiều

ñó ngay chính chữ A ñầu tiên (Asynchronus) trong cái tên của mình Với AJAX, các yêu cầu từ máy khách sẽ lần lượt gửi ñến máy chủ mà không cần chờ phản hồi, ñồng thời trang web sẽ chỉ hiển thị lại một phần những gì ñã thay

Trang 29

Mô hình ứng dụng Web thông thường

Mô hình ứng dụng Web có sử dụng AJAX

Trang 30

Quan ly hop dong

Quan ly don dat hang Quan ly xuat ban

Quan ly xuat tam

Giam doc

Trang 31

Nha quan tri

3 Mô hình Use case cho các tác vụ của Admin

cap nhat cac tham soThem loai khach hangThem linh vuc khach hang

Nha quan tri

Them tinh trang bang du bao

Trang 32

Dang ky khach hang moi

Dang ky khach hang moi

Thong tin khach hang

Thong tin khach hang

Them moi

Lay danh sach khach hang moi

Lay danh sach khach hang moi

Lay danh sach khach hang

Chap nhan

Khong chap nhan

Chap nhan

Khong chap nhan

Huy khach hang tam

Huy khach hang tam

Luu thong tin khach hang moi

Luu thong tin bang du bao lien quan den khach hang

Tao bang du bao moi

Tao bang du bao moi

Thong tin bang du bao moi

Thong tin bang du bao moi

Luu bang du bao moi

Trang 33

Tao bang bao gia

Thong tin bang bao gia moi

Thong tin bang bao gia moi

Luu thong tin bang bao gia

Luu chi tiet san pham cua bang bao gia moi

Huy bang bao gia

Huy bang bao gia

Danh sach bang bao gia can huy

Danh sach bang bao gia can huy

Huy bang bao gia

Cap nhat bang bao gia

Cap nhat bang bao gia

Thong tin bang bao gia moi

Thong tin bang bao gia moi

Cap nhat bang bao gia

Cap nhat chi tiet san pham bao gia

Trang 34

Thong tin Hop dong moi Tao Hop dong moi

Tao Hop dong moi

Them Hop dong moi Thong tin Hop dong moi

Huy hop dong

Hop dong can huy

Huy Hieu chinh hop dong

Hop dong can hieu chinh

cap nhat thong tin moi

Trang 35

Tao Don dat hang moi

Thong tin don dat hang moi

Thong tin don dat hang moi

Them Don dat hang moi Them thong tin chi tiet ve san pham dat hang

Hieu chinh don dat hang

Don dat hang can hieu chinh

Cap nhat thong tin don dat hang Cap nhat thong tin cac san pham co lien quan Huy don dat hang

Don dat hang can huy

Huy don dat hang Huy cac san pham co lien quan

5 Use-case ñăng ký nhân viên

Thong tin ve nhan vien

Kiem tra du lieu

Them nhan vien moi

Trang 36

Kiem tra du lieu

Lay thong tin dang nhap() Thong tin dang nhap Thong bao thong tin dang nhap

7 Use-case nghiệp vụ của nhà quản trị

: Nha quan tri : GD_CapNhatThongTin :

DK_CapNhatTho

: LoaiKhachHang

: TinhTrang

: LinhVuc

Them loai khach hang

Thong tin ve loai khach hang

Them moi Cap nhat loai khach hang

Thong tin loai khach hang moi

Cap nhat

Them tinh trang

Thong tin ve tinh trang

Them tinh trang moi Cap nhat tinh trang

Thong tin tinh trang moi

Cap nhat

Them linh vuc moi

Cap nhat linh vuc

Thong tin ve linh vuc

Them linh vuc moi

Thong tin ve linh vuc moi

Cap nhat linh vuc

Trang 37

NhanVien tenSuDung : string

connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachBU() LayDanhSachBUTheoFIS() TaoAMMoi()

Trang 38

H U

H

TinhTrang maTinhTrang : int tenTinhTrang : string connection : Connection

ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachTinhTrang()

LinhVuc maLinhVuc : string tenLinhVuc : string connection : Connection

ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachLinhVuc()

LoaiKhachHang maLoaiKhachHang : string tenLoaiKhachHang : string connection : Connection

ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachLoaiKhachHang() LayThongTinhLoaiKhachHang()

BangDuBao maBangDuBao : int thoiGianDuBao : string sanPham : string nganSach : int thoiHanCuoi : int doiThuCanhTranh : string yeuCauHoTro : string ghiChu : string tinhTrang : TinhTrang khachHang : KhachHang connection : Connection

ThietLapGiaTri() LayDanhSachBangDuBao() LayThongTinBangDuBao()

connection : Connection

ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachKhacHang() LayThongTinhKhachHang()

AM

bu : BU

ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachAM() LayDanhSachAMTheoBU()

HopDong maHopDong : string ngayKy : int thoiHanHoanTat : int thoiGianGiaoHang : string diaDiemGiaoHang : string danhGiaHopDongURL : string giaTriHopDong : float giaTriHopDongVAT : float dieuKienThanhToan : string hinhThucThanhToan : string dieuKienBaoHanh : string giaoHangCham : string chamThanhToan : string cacDieuKienKhac : string noiDungHopDongURL : string benA : string

benB : string

am : AM khachHang : KhachHang connection : Connection

ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayThongTinHopDong()

DonDatHang maDonDatHang : string tinhTrangHang : string nhaCungCap : string thoiHanGiaoHang : int hinhThucThanhToan : string hopDongNoi : string cacYeuCauKhac : string trongNuoc : bool ngayDatHang : int nguoiDeNghi : AM connection : Connection hopDongNoi : HopDong

ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachDonDatHang() LayThongTinDonDatHang() TaoSanPhamDatHangMoi()

Trang 39

H U

H

NhanVien tenSuDung : string matKhau : string ten : string

ho : string ngaySinh : int email : string bangCap : string soTruong : string ngayVaoFPT : string quaTrinhCongTac : string vaiTro : string ThietLapGiaTri() LayThongTinNhanVien() LayDanhSachNhanVien()

KhachHang maKhachHang : string tenKhachHang : string tenVietTat : string diaChi : string maSoThue : string nguoiLienHe : string chucDanh : string email : string soDienThoai : string soFax : string dienThoaiDiDong : string quanHeVoiAM : string loaiKhachHang : LoaiKhachHang linhVuc : LinhVuc

connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachKhacHang() LayThongTinhKhachHang()

LoaiKhachHang maLoaiKhachHang : string tenLoaiKhachHang : string connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachLoaiKhachHang() LayThongTinhLoaiKhachHang()

TinhTrang maTinhTrang : int tenTinhTrang : string connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachTinhTrang() BangDuBao

LinhVuc maLinhVuc : string tenLinhVuc : string connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachLinhVuc()

SanPhamDatHang maSanPham : string moTaSanPham : string donGia : float vat : int soLuong : int giaMua : float giaBan : float hopDongNgoai : string ghiChu : string donDatHang : DonDatHang connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachSanPhamDatHang()

DonDatHang maDonDatHang : string tinhTrangHang : string nhaCungCap : string thoiHanGiaoHang : int hinhThucThanhToan : string hopDongNoi : string cacYeuCauKhac : string trongNuoc : bool ngayDatHang : int nguoiDeNghi : AM connection : Connection hopDongNoi : HopDong ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachDonDatHang() LayThongTinDonDatHang() TaoSanPhamDatHangMoi()

connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachBU() LayDanhSachBUTheoFIS() TaoAMMoi()

Connection connection : SqlConnection command : SqlCommand transaction : SqlTransaction SetParameter()

ExecuteNonQuery() GetDataReader() GetDataTable() Close() Dispose() BeginTransaction() CommitTransaction() RollBackTransaction()

Trang 40

MaBangDuBao ThoiGianDuBao SanPham NganSach ThoiHanCuoi DoiThuCanhTranh YeuCauHoTro GhiChu

SANPHAMDATHANG

MaSanPham MoTaSanPham DonGia

VAT SoLuong GiaBan GiaMua HopDongNgoai

NhanVien

TenSuDung MatKhau Ten Ho NgaySinh DiaChi DienThoai DiDong BangCap SoTruong NgayVaoFPT QuaTrinhCongTac Email

VaiTro TrucThuoc

FIS

FISID GiamDoc

BU

BUID TruongBU

Ngày đăng: 24/11/2014, 04:40

HÌNH ẢNH LIÊN QUAN

Hình I.1  1.  A.M. (Account Manager) - xây dựng hệ chương trình quản lý các giao dịch kinh doanh tại công ty fif-12
nh I.1 1. A.M. (Account Manager) (Trang 6)
Hỡnh chứa cỏc hợp ủồng của nhõn viờn hiện  ủang ủăng nhập. Riờng Giỏm ủốc thỡ khụng  thể tạo hợp ủồng - xây dựng hệ chương trình quản lý các giao dịch kinh doanh tại công ty fif-12
nh chứa cỏc hợp ủồng của nhõn viờn hiện ủang ủăng nhập. Riờng Giỏm ủốc thỡ khụng thể tạo hợp ủồng (Trang 60)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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