MÔ HÌNH TỔ CHỨC DỮ LIỆU

Một phần của tài liệu Quản lý hàng hóa tại Công ty DIGWORLD (Trang 44 - 68)

Mô hình này chính là lược đồ cơ sở dữ liệu của hệ thống. Đây là bước trung gian chuyển đổi giữa mô hình thực thể (gần với người sử dụng) và mô hình vật lý dữ liệu (mô hình trong máy tính), chuẩn bị cho việc cài đặt hệ thống.

II.1. THIẾT KẾ CƠ SỞ DỮ LIỆU

II.1.1. Khách Hàng

KHACHHANG (Dùng cho cả nhà cung cấp và khách mua hàng)

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaKH nvarchar PK Mã KH

2 HoKH nvarchar Họ KH

3 TenKH nvarchar Tên KH

4 TenGiaoDich nvarchar Tên giao dịch

5 SoNhaKH nvarchar Số nhà KH

6 DTKhachHang nvarchar DT khách hàng

7 FaxKH nvarchar Fax KH

8 TaiKhoan nvarchar Tài khoản

9 STNoCoThe nvarchar ST nợ có thể

10 MaDuong nvarchar FK Mã huyện

11 MaHuyen nvarchar FK Mã đường

12 MaNH nvarchar FK Mã NH

II.1.2. Mặt Hàng

Mặt hàng <MATHANG>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaHang nvarchar PK Mã hàng

2 TenHang nvarchar Tên hàng

3 SLTonTT Int SL tồn TT

4 SLTonTD Int SL tồn TD

5 MaDVT nvarchar v Mã HSX

6 MaHSX nvarchar FK Mã DVT

7 MaNhom nvarchar FK Mã nhóm

II.1.3. Quản Lý Kho Quản lý kho <KHO>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaKho nvarchar PK Mã kho

2 TenKho nvarchar Tên kho

3 DTKho nvarchar DT kho

4 FaxKho nvarchar Fax kho

5 SoNhaKho Int Số nhà kho

6 ThuKho nvarchar Thủ kho

7 MaDuong nvarchar FK Mã đường

II.1.4. Quản Lý Đơn Đặt Hàng

Quản lý đơn đặt hàng <DONDHANG>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaDDH nvarchar PK Mã DDH

2 NgayDH datetime Mã KH

3 HanNgaygiao Nvarchar Ngày DH

4 MaKH Nvarchar FK Hạn ngày giao

VI.1.5. Dòng Đơn Đặt Hàng

Dòng đơn đặt hàng <DONGDONDH>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaDDH Nvarchar

2 MaHang Nvarchar PK

Mã DDH Mã hàng

3 SoLuongDH Int Số lượng DH

4 DonGiaDH Int Đơn giá DH

II.1.6.

Quản lý phiếu nhập xuất hàng <NXHANG>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaPNXH nvarchar PK Mà PNXH

2 MaDDH nvarchar FK Mã DDH

3 MaKho nvarchar FK Mã kho

4 NgayNXH datetime Ngày NXH

5 NgayHTT datetime Ngày HTT

6 NgayLapPNX datetime Ngày lập PNX

II.1.7.

Quản lý dòng phiếu nhập xuất hàng <DONGNXHANG>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaPNXH nvarchar PK Mà PNXH

2 MaHang nvarchar Mã hàng

3 SoLuongNXH Int Số lượng NXH

4 DonGiaNXH Float Đơn giá NXH

II.1.8.

Quản lý phiếu thanh toán <THANHTOAN>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaPTT nvarchar

2 MaPNXH nvarchar PK

Mã PTT Mã PNXH

3 NgayTT Datetime Ngày TT

4 SoTien Float Số tiền

II.1.9.

Quản lý đường <DUONG>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaDuong Nvarchar PK Mã đường

2 TenDuong Nvarchar Tên đường

II.1.10.

Quản lý ngân hàng <NGANHANG>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaNH Nvarchar PK Mã NH

2 TenNH Nvarchar Tên NH

II.1.11.

Quản lý huyện <HUYEN>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaHuyen Nvarchar PK Mã huyện

2 TenHuyen Nvarchar Tên huyện

3 MaTinh Nvarchar FK Mã tỉnh

II.1.12.

Quản lý tỉnh <TINH>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaTinh nvarchar PK Mã tỉnh

2 TenTinh nvarchar Tên tỉnh

3 MaNuoc nvarchar FK Mã nước

II.1.13.

Quản lý nước <NUOC>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaNuoc nvarchar PK Mã nước

2 TenNuoc nvarchar Tên nước

II.1.14.

Quản lý hãng sản xuất <HANGSX>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaHSX nvarchar PK Mã HSX

2 TenHSX nvarchar Tên HSX

3 MaNuoc nvarchar FK Mã nước

II.1.15.

Quản lý đơn vị tính <DONVITINH>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaDVT nvarchar PK Mã DVT

2 TenDVT nvarchar Tên DVT

II.1.16.

Quản lý nhóm hàng <NHOM>

STT Tên trường Kiểu dữ liệu Khóa Diễn giải

1 MaNhom nvarchar PK Mã nhóm

2 TenNhom nvarchar Tên nhóm

III. Một số giao diện chính :

III.1. Hình ảnh Form Đăng nhập hệ thống

III.2. Hình ảnh Form chính của chương trình:

III.3. Hình ảnh Form cập nhật hàng hóa :

III.4. Hình ảnh Form cập nhật khách hàng

III.5. Hình ảnh Form Đơn đặt hàng

III.6. Hình ảnh Form cập nhật kho

III.7. Hình ảnh Form Phiếu nhập hàng

III.8. Hình ảnh Form Phiếu chi

III.9. Hình ảnh Form Phiếu xuất

III.10. Hình ảnh Form Phiếu thu

III.11. Hình ảnh Form Thống kê báo cáo theo khoảng thời gian

III.12. Hình ảnh Báo cáo Phiếu đặt hàng

III.13. Hình ảnh Báo cáo phiếu nhập kho

III.14. Hình ảnh Báo cáo phiếu xuất kho

III.15. Hình ảnh Báo cáo phiếu thu

III.16. Hình ảnh Báo cáo phiếu chi

IV. Một số mô đun chính : IV.1. Mô đun kết nối CSDL :

Public Function Ketnoi() As Boolean On Error Resume Next

con.ConnectionTimeout = 5

'su dung sqloledb de ket noi toi sqlserver ' phuong thuc chuoi ket noi

con.ConnectionString = "PROVIDER=SQLOLEDB.1;server =(local)" & ";Database=dulieu1" & ";Trusted_Connection=yes"

'con.Properties("Prompt") = adPromptComplete con.Open

End Function

IV.2. Mô đun kiểm tra ngày tháng nhập vào :

' Ham kiem tra ngay nhap vao

Public Function checkdate(strdate As String) As String Dim temp As Integer

Dim strtemp As String temp = 3

If IsNumeric(Left(strdate, 1)) Then ' Neu ky tu dau la so thi

If IsNumeric(Mid(strdate, 2, 1)) Then ' Neu ky tu thu hai la so thi If Left(strdate, 2) <= 31 Then ' Neu gia tri 2 ky tu

' <=31 thi kiem tra dau "/" mask1:

If Mid(strdate, temp, 1) = "/" Then

If IsNumeric(Mid(strdate, temp + 1, 1)) Then If IsNumeric(Mid(strdate, temp + 2, 1)) Then If Mid(strdate, temp + 1, 2) <= 12 Then If Mid(strdate, temp + 3, 1) = "/" Then

strtemp = Left(strdate, temp + 3) ' Cat bo 6 ky tu dau If IsDate(strdate) Then ' Chuyen phan con lai th nam checkdate = strtemp & Format(strdate, "yyyy") Else GoTo msgdate End If End If Else GoTo msgdate End If Else

If Mid(strdate, temp + 2, 1) = "/" Then

strtemp = Left(strdate, temp + 2) If IsDate(strdate) Then

checkdate = strtemp & Format(strdate, "yyyy") Else GoTo msgdate End If End If End If Else GoTo msgdate End If Else GoTo msgdate End If Else GoTo msgdate End If Else If Mid(strdate, 2, 1) = "/" Then temp = 2 GoTo mask1 Else GoTo msgdate End If End If Else msgdate: checkdate = "1" End If

End Function

IV.3. Mô đun lưu dữ liệu xuất hàng:

Public Sub Luudl()

On Error GoTo error1

Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command Dim str As String

If Trim(txtmapnx) = "" Or Trim(txtngaylappnx) = "" Or Trim(Combomaddh.Text) = "" Or Trim(txtngaynx) = "" Or Trim(txtngayhtt) = "" Or Trim(Combomahang.Text) = "" Or Trim(txtsoluongnx) = "" Or Trim(txtdongianx) = "" Then

MsgBox "Chu y: Phai nhap day du thong tin truoc khi luu!", vbOKOnly + vbExclamation, "Thong bao"

txtmapnx.SetFocus Exit Sub

End If

'Neu kiem tra ma khach hang co bat dau bang chu 'K' hay khong If Left(Trim(txtmapnx), 1) <> "X" Then

MsgBox "Chu y: Ma phieu xuat hang phai bat dau boi 'X ...' !", vbOKOnly + vbExclamation, "Thong bao"

txtmapnx.SetFocus Exit Sub

End If

'Tim xem da ton tai Maduong nay trong Table duong hay chua? Set cmd.ActiveConnection = con

str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'"

rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai

Set rs = Nothing ' Dong record lai toithieu = 0 'Xoa gia tri ban dau toida = 0 'Xoa gia tri ban dau Set cmd.ActiveConnection = con

str = "select MATHANG.mahang, MATHANG.sltontt, MATHANG.sltontd from MATHANG where MATHANG.mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'"

rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = False Then ' Neu da ton tai, chac chan co

toithieu = rs!sltontt toida = rs!sltontd Set rs = Nothing End If

Set cmd.ActiveConnection = con

str = "select CTMATHANG.mahang, CTMATHANG.soluongton from

CTMATHANG where CTMATHANG.mahang ='" &

Trim(Left(Combomahang.Text, 4)) & "'"

rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = False Then ' Neu da ton tai

sltontam = rs!soluongton - Val(txtsoluongnx) If sltontam < toithieu Then

MsgBox "So luong hang ton duoi muc toi thieu. Can phai nhap them truoc da.", vbOKOnly + vbExclamation, "Thong bao"

txtsoluongnx.SetFocus Me.MousePointer = 0 Set rs = Nothing Exit Sub

Else ' Neu khong duoi muc ton toi thieu, cap nhat SL

Set rs = Nothing

Set cmd.ActiveConnection = con 'Mo lai de luu

str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText

If rs.EOF = True Then 'Neu chua ton tai, chac chan chua co rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!ngaylappnx = Trim(txtngaylappnx) rs!maddh = Trim(Left(Combomaddh.Text, 5)) rs!makho = Trim(Left(Combomakho.Text, 5)) rs!ngaynxh = Trim(txtngaynx) rs!ngayhtt = Trim(txtngayhtt) rs.Update

Set rs = Nothing ' Dong record lai End If

Set cmd.ActiveConnection = con

str = "Select DONGNXHANG.mapnxh, DONGNXHANG.mahang, DONGNXHANG.soluongnxh, DONGNXHANG.dongianxh from DONGNXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "' and mahang = '" & Trim(Left(Combomahang.Text, 4)) & "'"

rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Neu chua ton tai

rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongnxh = Trim(txtsoluongnx) rs!dongianxh = Trim(txtdongianx) rs.Update Set rs = Nothing End If

'Chi tiet mat hang duoc cap nhat sau cung

Set rs.ActiveConnection = con 'Cap nhat phai nhu vay

str = "Update CTMATHANG set soluongton ='" & sltontam & "' where mahang ='" & Trim(Left(Combomahang.Text, 4)) & "'"

rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText sltontam = 0 ' Xoa

Set rs = Nothing 'Dong ban ghi lai End If

Else ' Neu chua co (chua xuat lan nao)

sltontam = Val(txtsoluongnx) ' Kiem tra vuot Sltontd If sltontam < toithieu Then

MsgBox "So luong hang ton duoi muc toi thieu. Can phai nhap them truoc da.", vbOKOnly + vbExclamation, "Thong bao"

txtsoluongnx.SetFocus Me.MousePointer = 0 Set rs = Nothing Exit Sub

Else ' Khong duoi SLtontt, tao moi Set rs = Nothing

Set cmd.ActiveConnection = con 'Mo lai de luu

str = "Select NXHANG.mapnxh, NXHANG.maddh, NXHANG.makho, NXHANG.ngaynxh, NXHANG.ngayhtt, NXHANG.ngaylappnx from NXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "'" rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText

If rs.EOF = True Then 'Neu chua ton tai, chac chan chua co rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!ngaylappnx = Trim(txtngaylappnx) rs!maddh = Trim(Left(Combomaddh.Text, 5)) rs!makho = Trim(Left(Combomakho.Text, 5)) rs!ngaynxh = Trim(txtngaynx) rs!ngayhtt = Trim(txtngayhtt) rs.Update

Set rs = Nothing ' Dong record lai End If

Set cmd.ActiveConnection = con

str = "Select DONGNXHANG.mapnxh, DONGNXHANG.mahang, DONGNXHANG.soluongnxh, DONGNXHANG.dongianxh from DONGNXHANG where mapnxh like 'X%' and mapnxh = '" & Trim(txtmapnx) & "' and mahang = '" & Trim(Left(Combomahang.Text, 4)) & "'"

rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText

If rs.EOF = True Then 'Neu chua ton tai rs.AddNew rs!mapnxh = Trim(txtmapnx) rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongnxh = Trim(txtsoluongnx) rs!dongianxh = Trim(txtdongianx) rs.Update Set rs = Nothing End If

'Chi tiet mat hang phai duoc tao moi sau cung Set cmd.ActiveConnection = con

str = "select CTMATHANG.mahang, CTMATHANG.soluongton from

CTMATHANG where CTMATHANG.mahang ='" &

Trim(Left(Combomahang.Text, 4)) & "'"

rs.Open str, con, adOpenKeyset, adLockPessimistic, adCmdText If rs.EOF = True Then 'Chac chan chua co

rs.AddNew

rs!mahang = Trim(Left(Combomahang.Text, 4)) rs!soluongton = sltontam

rs.Update

Set rs = Nothing

sltontam = 0 'Xoa gia tri End If

End If End If

toithieu = 0 'Xao gia tri toida = 0 'Xao gia tri

Else 'Neu da ton tai phieu xuat hang nay roi

MsgBox "Phieu xuat hang co ma so [" & Trim(txtmapnx) & "] da ton tai. Vui long kiem tra lai !", vbOKOnly + vbExclamation, "Thong bao"

txtmapnx.SetFocus Me.MousePointer = 0 Exit Sub

End If

DisplayGrid 'Hien thi danh sach cac hang san xuat

error1:

If Err.Number <> 0 Then

MsgBox Err.Number & Err.Description Else

MsgBox "Luu thanh cong phieu xuat hang co ma so: '" & Trim(txtmapnx) & "'"

response = MsgBox("Ban co muon them mat hang vao phieu xuat hang nua khong ?", vbYesNo + vbQuestion, "Thong bao")

If response = vbYes Then 'Neu chon NO thi khong Xoa Locktext

Unlocktext2

Setnull2 'Xoa Textbox Combomahang.SetFocus Flag = True

Else

Setnull2 'Xoa Textbox Locktext

End If End If End Sub

KẾT LUẬN VÀ ĐÁNH GIÁ

HỆ THỐNG THÔNG TIN QUẢN LÝ HÀNG HOÁ

Một phần của tài liệu Quản lý hàng hóa tại Công ty DIGWORLD (Trang 44 - 68)