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

ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc

43 996 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Đơn Hàng Gia Công Tại Công Ty XYZ
Tác giả Võ Hòa Đoàn, Trịnh Công Minh, Đỗ Kiến Hùng
Người hướng dẫn Thầy Phạm Ngọc Linh
Trường học Công Ty XYZ
Chuyên ngành Gia Công
Thể loại Đồ án
Năm xuất bản 2004
Thành phố Tp HCM
Định dạng
Số trang 43
Dung lượng 1,09 MB

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

Nội dung

ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ

Trang 1

GIỚI THIỆU:

Thực hiện chương trình: Võ Hòa Đoàn

Ngày cập nhật sau cùng: Ngày 26 tháng 10 năm 2004

XYZ là một Công Ty hoạt động theo mô hình phục vụ, được mô tả như sau:

Khách hàng ký các đơn đặt hàng để gia công các sản phẩm nào đó.Nguyên liệu sẽ do khách hàng cung cấp để sản xuất và khi sản xuất xong thì Công ty sẽ giao sản phẩm được sản xuất cho khách hàng theo các đơn hàng đã ký Việc tính lượng tồn nguyên liệu tồn còn lại dựa theo định mức sản xuất là bao nhiêu, các nguyên liệu nào để cho ra 1 đơn vị sản phẩm

Quản lý việc thanh toán (tiền gia công), công nợ khách hàng vàquản lý tồn nguyên liệu màcông ty còn giữ của khách hàng sau khi đã trừ các nguyên liệu sản xuất và giao các sản phẩm

Chương trình được viết trên ngôn ngữ Visual Basic, kết nối với Cơ sở dữ liệu Access; cùng với

2 phần mềm Data Widgets để hiển thị dữ liệu lên lưới và Crystal Report 8.5 để lập báo cáo Chúng em đã được sự hướng dẫn tận tình của thầy Phạm Ngọc Linh cũng như ý kiến đóng góp

quý báo của các bạn Tuy nhiên thới gian và kinh nghiệm có hạn nên chương trìng không tránhkhỏi thiếu sót, hạn chế Rất mong được sự góp ý của quý thầy cô và ý kiến của các bạn

Trang 2

Chương trình kết nối trên Cơ sở dữ liệu Access.

Để kết nối với các hệ quản trị cơ sở dữ liệu bằng đối tượng ADO phải dùngchuỗi chuổi kết nối ( SQLConn ) thông qua trình điều khiển Provider:

SQLConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source=

<”đường dẫn.Tên database”> Persist Security Info=False "

Đối tượng Connection:

Dùng để kết nối các hệ quản trị cơ sở dữ liệu, thực thi câc lệnhSQL(insert, update, delete) thông qua phương thức Execute

Có thể tạo đối tượng connection thông qua nhiều cách:

Dim Conn as new ADODB.ConnectionThực thi câu lệnh SQL

<Đối tượng connection”>.Execute <”Câu lệnh SQL”>

Ví dụ: Với câu lện SQL:

Str = " insert into GIAONHAN values('" & Trim(cboSoPhieu) & "','" &Trim(cboSoDDH) & "','" & Trim(txtNgay) & "')"

Conn.Execute Str

Đối tượng Recordset :

Dùng để thực thi lấy mẫu tin từ cơ sở dữ liệu thông qua câu lệnh SQLSelect

Có thể tạo đối tượng Recordset bằng cách:

Dim Rst as new ADODB RecordsetCâu lệnh SQL:

strSQL = " select TenkhachHang From KhachHang "

Thực thi câu lệnh SQL

<“Đối tượng Recordset”>.open <”Câu lệnh SQL”>,<”Đối tượngconnection”>

Trang 3

ví dụ: Rst.Open strSQL ,Conn

I MÔ TẢ CÁC PHIẾU:

1 Phiếu nhập nguyên liệu:

Nguyên liệu được Khách Hàng cung cấp sau khi Công ty và khách hàng thoả thuận việc giacông sản phẩm mà khách hàng yêu cầu

Nguyên liệu Số lượng ĐVT

2 Đơn đặt hàng:

Sản phẩm ĐVT Số lượng Đơn giá

3 Phiếu giao nhận:

Trang 4

4 Phiếu thanh toán:

PHÂN TÍCH THÀNH PHẦN DỮ LIỆU CỦA ỨNG DỤNG:

1 Sơ đồ quan niệm dữ liệu:

Trang 5

Hình 1: Sơ đồ Quan niệm dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG

2 Mô tả dữ liệu:

a) Các loại thực thể:

DonDatHang Đơn đặt hàng

ChiTietDonDatHang Chi tiết đơn đặt hàng

DinhMucSanXuat Định mức sản xuất

ChiTietGiaoNhan Chi tiết giao nhận

Trang 6

NhapXuatNguyenLieu Nhập xuất nguyên liệu

ChiTietNguyenLieu Chi tiết nguyên liệu

b) Mô tả các loại thực thể:

b1) Thực thể Khách hàng:

MaKhachHang Mã khách hàng Text Khoá chínhTenKhachHang Tên khách hàng Text

b2) Thực thể đơn đặt hàng:

SoDonDatHang Số đơn đặt hàng Text Khoá chínhMaKhachHang Mã khách hàng Text Khoá ngoại

b3) Thực thể Chi tiết đơn đặt hàng:

SoDonDatHang Số đơn đặt hàng Text Khoá chính

SoLuongDatHang SL đặt hàng Number

b4) Thực thể Sản phẩm:

TenSanPham Tên sản phẩm Text

b5) Thực thể Định mức sản xuất:

Trang 7

Thuộc tính Diễn giải Kiểu Ràng buộc

SoLuongSanXuat Số lượng sản xuất Number

b6) Thực thể công nợ:

NgayCongNo Ngày công nợ Date() Khoá chínhMaKhachHang Mã khách hàng Text Khoá ngoại

b7) Thực thể Giao Nhận:

SoDonDatHang Số đơn đặt hàng Text Khoá ngoại

b8) Thực thể Chi tiết giao nhận:

b9) Thực thể Nguyên Liệu:

Ten NguyenLieu Tên nguyên liệu Text

b10) Thực thể Thanh Toán:

SoThanhToan Số thanh toán Text Khoá chínhNgayThanhToan Ngày thanh toán Date() Khoá ngoại

Trang 8

MaKhachHang Mã khách Hàng Text

TienThanhToan Tiền thanh toán Number

b11) Tthực thể Tồn:

MaKhachHang Mã khách hàng Text Khoá ngoại

b12) Thực thể Nhập xuất nguyên liệu:

SoHoaDonNhap Số hoá đơn nhập Text Khoá chínhMaKhachHang Mã khách hàng Text Khoá ngoại

b13) Thực thể Chi tiết nguyên liệu:

SoHoaDonNhap Số hoá đơn nhập Text Khoá ngoại

c) Ràng buộc toàn vẹn:

Trang 9

RÀNG BUỘC MIỀN GÁI TRỊ:

R2-01: (CTDDH.SoDDH>0) and (CTDDH.SLDH>0) and (CTDDH.DG>0)

R2-02: (SP.DVT> 0 ) and (SP.DG > 0)R2-03: (DMSX.SLSX > 0)

R2-04: (GN.NgGiao < DDH.NgKK)R2-05: (CTNL.SL > 0)

R2-06: (NL.DVT > 0)R2-07: (TT.TienTT > 0)

RÀNG BUỘC GIỮA CÁC THUỘC TÍNH TRONG THỰC THỂ:

R3-0: CNOCK = CNODK + TIENNO - TIENTHU

R3-0: SLTonCK = SLTonDK + NHAP - XUAT

R3-0: Tiền đặt hàng = CTDDH.SLDH * CTDDH.DGR3-0: Tiền giao nhận = CTGN.SL * CTGN.DGR3-0: Số tiền nợ đầu kì ( CNODK ) của tháng này phải bằng số tiền nợ cuối kì ( CNOCK ) của tháng trước

R3-0: Số lượng tồn đầu kì ( SLTonDK ) của tah1ng này phải bằng số lựơngtồn cuối kì ( SLTonCK ) của tháng trước

PHÂN TÍCH THÀNH PHẦN XỬ LÝ CỦA ỨNG DỤNG:

XL1: Cập nhật Nguyên liệu

XL2: Cập nhật phiếu Nhập nguyên liệu

XL3: Cập nhật đơn đặt hàng

XL4: Cập nhật Phiếu giao nhận

XL5: Cập nhật Phiếu thanh toán

XL6: Tính Công nợ Khách hàng

XL7: Tính Tồn Nguyên liệu

MÔ TẢ CÁC XỬ LÝ:

Qui tắc : Số lượng nhập trong tháng t của NL n bằng tổng số lượng của CTNL

trong tháng t có liên quan đến NL n

Trang 10

_Tên xử lý : XL3:

Chức năng : Cập nhật Đơn đặt hàng

Input : SDDH, MSP, DDH, CTDDH, KH, SP

Qui tắc : Số lượng Sản phẩm Khách hàng đặt trong tháng t bằng tổng số sản

phẩm của CTDDH trong tháng t có liên quan đến sản phẩm đó

_Tên xử lý : XL4:

Chức năng : Cập nhật phiếu Giao nhận

Input : SoP p, SoDDH h, GN, CTGN, DDH, CTDDH

Qui tắc : Số lượng giao nhận sản phẩm trong tháng t bằng tổng số lượng giao

nhận của CTGN trong tháng t liên quan đến Sản phẩm đó

_Tên xử lý : XL5

Chức năng : Cập nhật phiếu thanh toán

Input : SoTT, MKH, TTOAN, KH

Qui tắc : Số tiền thanh toán trong tháng t bằng tổng tiền thanh toán của

TTOAN trong tháng t có liên quan đến KH k

Chức năng : Tính tồn Nguyên liệu :

Input : NgTON, LN, TON

Qui tắc : TONCK = TONDK + NHAP - XUAT

III THIẾT KẾ DỮ LIỆU :

1 Sơ đồ Logic dữ liệu:

Trang 11

Hình 2: Sơ đồ Logic dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG

2 Từ điển dữ liệu:

MaKhachHang Mã khách hàng

TenKhachHang Ten khách hàng

SoDonDatHang Số đơn đặt hàng

TenSanPham Tên sản phẩm

Trang 12

NgayGiao Ngày giao

NgayCongNo Ngày công nợ

TienCongNo Tiền công nợ

TenNguyenLieu Tên Nguyên liệu

SoThanhToan Số thanh toán

NgayThanhToan Ngày thanh toán

TienThanhToan Tiền thanh toán

SoHoaDonNhap Số hoá đơn nhập

SoLuongDatHang Số lượng đặt hàng

SoLuongSanXuat Số lượng sản xuất

SoLuongTon Số lượng tồn

3 Mô tả các bảng:

Trang 13

MaKhachHang Text Ngoại

Khoá ngoại Bảng tham chiếu Khoá nội

3.3) Đơn đặt hàng

Khoá ngoại Bảng tham chiếu Khoá nội

3.4) Chi tiết Đơn đặt hàng

 Thuộc tính:

Trang 14

Thuộc tính Kiểu Khóa

Khoá ngoại Bảng tham chiếu Khoá nội

3.5) Tồn :

 Thuộc tính:

Khoá ngoại Bảng tham chiếu Khoá nội

Trang 15

NguyenLieu NguyenLieu NguyenLieu

Khoá ngoại Bảng tham chiếu Khoá nội

3.8) Giao Nhận:

 Thuộc tính:

Trang 16

Thuộc tính Kiểu Khóa

Khoá ngoại Bảng tham chiếu Khoá nội

3.9) Chi tiết Giao Nhận:

 Thuộc tính:

Khoá ngoại Bảng tham chiếu Khoá nội

3.10) Nguyên liệu:

Trang 17

Khoá ngoại Bảng tham chiếu Khoá nội

3.12) Nhập xuất nguyên liệu :

Trang 18

Khoá ngoại Bảng tham chiếu Khoá nội

3.13) Chi tiết nguyên liệu :

 Thuộc tính:

Khoá ngoại Bảng tham chiếu Khoá nội

4 MÔ TẢ CÁC RÀNG BUỘC TOÀN VẸN :

Trang 19

R1-05 : id( CHITIETDONDATHANG ) = SDDH, SPR1-06 : id( SANPHAM ) = SANPHAM

R1-07 : id( DINHMUCSANXUAT ) = NL, SP

R1-08 : id( GIAONHAN ) = SPhieu, SDDH

R1-09 : id( CHITIETGIAONHAN ) = SPhieu, SP

R1-10 : id( THANHTOAN ) = SoTT, MKH

Trang 20

H1ình 3: Màn hình chính của ứng dụng.

Danh Mục:

Menu Đặt hàng Khách hàng đặt đơn hàng mới.Menu Giao nhận Giao hàng cho Khách hàng.Menu Nhập xuất Nguyên liệu Nhập nguyên liệu từ khách hàng

2 Màn hình Đặt hàng:

Trang 21

Hình 4: Màn hình Đơn đặt hàng mới

Source code lấy Mã KH lên combobox:

Dim sqlMKH As String sqlMKH = "Select MaKhachHang from KhachHang order by MaKhachHang asc" Set rsMKH = New ADODB.Recordset

rsMKH.Open sqlMKH, Conn, adOpenKeyset, adLockOptimistic

strSQL = "SELECT ChiTietDonDatHang.SanPham, SanPham.TenSanPham, SanPham.DonViTinh, ChiTietDonDatHang.SoLuongDatHang,

Trang 22

Cnn.Open SQLConn ' KHÔNG DÙNG BIẾN Conn

Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

Source code khi nhấn nút mới số DDH sẽ tự tăng:

Private Sub cmdmoi_Click() txtSDDH.SetFocus

Dim SQLddh As String SQLddh = "select sodondathang from dondathang "

Set rsDDH = New ADODB.Recordset rsDDH.CursorLocation = adUseClient rsDDH.Open SQLddh, Conn, 0, 3 SDDH = Mid(Trim(txtSDDH.Text), 2, 2) txtSDDH.Text = SDDH & "DDH" & rsDDH.RecordCount + 1 End Sub

: Khi nhấn nút lưu thì sẽ gọi màn hình Đặt hàng mới để nhập thêm thông tin của sản phẩm mới:

: Lưu dữ liệu mới xuống cơ sở dữ liệu

Source code Lưu dữ liệu:

Private Sub cmdLuu_Click() Dim Rs As New ADODB.Recordset Dim rs1 As New ADODB.Recordset Dim SQL2 As String

Dim SQL3 As String

Trang 23

MsgBox " Xin nhap dau du thong tin truoc khi luu ", vbOKOnly +

vbExclamation, "THONG BAO"

Me.MousePointer = 0

End If

SQL2 = " insert into KHACHHANG values('" &

Trim(frm1DatHang.cboMKH) & "','" & Trim(frm1DatHang.txtTKH) & "','" & Trim(frm1DatHang.txtDiachi) & "','" & Trim(frm1DatHang.txtDienthoai) & "')" SQL3 = " insert into DONDATHANG values(' " &

Trim(frm1DatHang.txtSDDH) & " ',' " & Trim(frm1DatHang.cboMKH) & " ',' " & Trim(frm1DatHang.txtNgayKK) & " ')"

SQL4 = " insert into CHITIETDONDATHANG values(' " &

Trim(frm1DatHang.txtSDDH) & " ',' " & Trim(cboSP) & " ',' " & Trim(txtSl) & " ',' "

& Trim(txtDG) & " ',' " & Trim(frm1DatHang.txtHanGiao) & " ') "

Conn.Execute SQL2

Conn.Execute SQL3

Conn.Execute SQL4

SQL5 = " update DONDATHANG set MAKHCHHANG='" &

Trim(frm1DatHang.cboMKH) & "', TENKHACHHANG='" &

Trim(frm1DatHang.txtTKH) & "', NGAYKIKET='" &

Trim(frm1DatHang.txtNgayKK) & "',HANGIAO='" &

Trim(frm1DatHang.txtHanGiao) & "' WHERE SODONDATHANG='" &

Trim(frm1DatHang.txtSDDH) & "'"

SQL6 = " update KHACHHANG set MAKHACHHANG='" &

Trim(frm1DatHang.cboMKH) & "',TENKHACHHANG='" &

Trim(frm1DatHang.txtTKH) & ",DIACHI='" & Trim(frm1DatHang.txtDiachi) &

"',DIENTHOAI='" & Trim(frm1DatHang.txtDienthoai) & "'"

SQL7 = " update CHITIETDONDATHANG set SODONDATHANG='" & Trim(frm1DatHang.txtSDDH) & "',SANPHAM='" & Trim(cboSP) &

"',SOLUONGDATHANG='" & Trim(txtSl) & "',DONGIA='" & Trim(txtDG) &

"',HANGIAO='" & Trim(frm1DatHang.txtHanGiao) & "'"

Conn.Execute SQL5

Conn.Execute SQL6

Conn.Execute SQL7

End Sub

Trang 24

: Thoát cửa sổ đơn đặt hàng.

3 Màn hình Giao Nhận:

Hình 5: Màn hình giao nhận sản phẩm cho khách hàng.

Source code lấy dữ liệu lên cbo số phiếu:

Dim sql As String

sql = "select sophieu from giaoNhan "

Set rsSoP = New ADODB.Recordset

rsSoP.Open sql, Conn, adOpenKeyset, adLockOptimistic Set cboSoPhieu.DataSourceList = rsSoP

cboSoPhieu.DataFieldList = "SoPhieu"

cboSoPhieu.Columns(0).Width = 1200

Source code lấy dữ liệu lên cbo số ĐĐH :

1 Dim sql1 As String

sql1 = "select sodondathang from dondathang"

Set rsSoDDH = New ADODB.Recordset

Trang 25

rsSoDDH.Open sql1, Conn, adOpenKeyset, adLockOptimistic Set cboSoDDH.DataSourceList = rsSoDDH

cboSoDDH.DataFieldList = "SoDonDathang"

cboSoDDH.Columns(0).Width = 1230

Source code lấy dữ liệu lên lưới:

Dim strSQL As String Dim Cnn As New ADODB.Connection strSQL = "select * from SanPham"

Set Rst = New ADODB.Recordset Rst.CursorLocation = adUseClient 'Conn.Open SQLConn

Cnn.Open SQLConn ' KHÔNG DÙNG BIẾN Conn Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic SSOGiaoNhan.Columns(0).DataField = "sanpham"

: Lưu dữ liệu mới xuống cơ sở dữ liệu

Source code Lưu Dữ liệu:

Private Sub CmdLuu_Click () Dim Str As String

Dim Str1 As String Dim Str2 As String Dim Str3 As String

If Trim(cboSoPhieu) = "" Or Trim(cboSoDDH) = "" Then MsgBox " Xin nhap soPHIEU va soDDH truoc khi luu ", vbOKOnly + vbExclamation, "THONG BAO"

Me.MousePointer = 0 End If

Str = " insert into GIAONHAN values('" & Trim(cboSoPhieu) & "','" &

Trim(cboSoDDH) & "','" & Trim(txtNgay) & "')"

Conn.Execute Str

Trang 26

Str1 = " update GIAONHAN set SOPHIEU='" & Trim(cboSoPhieu) &

"',SODONDATHANG='" & Trim(cboSoDDH) & "',NGAYGIAO='" &

Trim(SSOGiaoNhan.Columns(3).Text) & "' "

Conn.Execute Str3

End Sub

: thoát cửa sổ Giao nhận

4 Màn hình Nhập xuất Nguyên liệu:

Hình 6: Màn hình nhập xuất nguyên liệu.

Source code lấy dữ liệu lên cbo MAKH:

Trang 27

Dim Cnn As New ADODB.Connection

strSQL = "select * from NGUYENLIEU"

Set Rst = New ADODB.Recordset

: Lưu dữ liệu mới xuống cơ sở dữ liệu

: Thoát màn hình Nhập xuất nguyên liệu

Tra cứu :

Menu Khách hàng: Hiển thị Khách hàng và nhập Khách hàng mới

Menu Nguyên liệu: Hiển thị danh sách nguyên kiệu và Nhập nguyên liệu

mới

Menu Sản phẩm: Hiển thị danh sách sản phẩm và nhập sản phẩm mớiMenu Định mức sản xuất: Hiển thị danh sách định mức sản xuất và nhập định

mức sản xuất cho sản phẩm mới

5 Màn hình Khách hàng :

Trang 28

Hình 7: Màn hình tra cứu, nhập mới khách hàng.

Source code lấy Mã KH lên combobox:

Dim sqlMKH As String sqlMKH = "Select MaKhachHang from KhachHang order by MaKhachHang asc" Set rsMKH = New ADODB.Recordset

rsMKH.Open sqlMKH, Conn, adOpenKeyset, adLockOptimistic

Dim Cnn As New ADODB.Connection

strSQL = "select * FROM khachhang"

Set Rst = New ADODB.Recordset

Rst.CursorLocation = adUseClient

Cnn.Open SQLConn

Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

SSOkh.Columns(0).DataField = "makhachhang"

Trang 29

If Trim(cboKH.Text) = "" Or Trim(txtTKH.Text) = "" Then

MsgBox " Nhap MaKH va TenKH truoc khi luu ", vbOKOnly + vbExclamation,

"WARNING"

Exit Sub

End If

Str = "Insert Into KHACHHANG values('" & Trim(cboKH) & "','" & Trim(txtTKH)

& "','" & Trim(txtDC) & "','" & Trim(txtDT) & "' ) "

Conn.Execute Str

Str1 = "update KHACHHANG set maKhachhang='" & Trim(cboKH) & "',

TenKhachHang='" & Trim(txtTKH) & "', DiaChi='" & Trim(txtDC) & "', DienThoai='"

& Trim(txtDT) & "' WHERE MaKhachHang='" & Trim(cboKH) & "' "

: Thoát màn hình Khách hàng

6 Màn hình Nguyên Liệu :

Ngày đăng: 24/08/2012, 15:44

HÌNH ẢNH LIÊN QUAN

1. Sơ đồ quan niệm dữ liệu: - ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc
1. Sơ đồ quan niệm dữ liệu: (Trang 4)
Hình 1: Sơ đồ Quan niệm dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG - ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc
Hình 1 Sơ đồ Quan niệm dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG (Trang 5)
Hình 4: Màn hình Đơn đặt hàng mới . - ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc
Hình 4 Màn hình Đơn đặt hàng mới (Trang 21)
Hình 5: Màn hình giao nhận sản phẩm cho khách hàng. - ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc
Hình 5 Màn hình giao nhận sản phẩm cho khách hàng (Trang 24)
Hình 6: Màn hình nhập xuất nguyên liệu. - ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc
Hình 6 Màn hình nhập xuất nguyên liệu (Trang 26)
Hình 7: Màn hình tra cứu, nhập mới khách hàng. - ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc
Hình 7 Màn hình tra cứu, nhập mới khách hàng (Trang 28)
Hình 8: Màn hình tra cứu, nhập nguyên liệu. - ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc
Hình 8 Màn hình tra cứu, nhập nguyên liệu (Trang 30)
Hình 9: Màn hình tra cứu, nhập sản phẩm. - ĐƠN HÀNG GIA CÔNG TẠI CÔNG TY XYZ.doc
Hình 9 Màn hình tra cứu, nhập sản phẩm (Trang 31)

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

w