Luận văn Xây dựng hệ thống thông tin quản lý hợp đồng tại TRATECHCOM

Ngày nay chúng ta đang sống trong kỷ nguyên của khoa học công nghệ. Với sự phát triển vượt bậc của khoa học công nghệ, con người đã bước đến những tầm cao mới. Thế giới đang chuyển mình nhanh chóng với những tiến bộ vượt bậc về công nghệ thông tin. Công nghệ thông tin được ứng dụng vào tất cả các lĩnh vực của đời sống xã hội. Khoa học giáo dục là một trong những lĩnh vực đi đầu về phát triển công nghệ thông tin. Trường Đại học Kinh tế Quốc dân là truờng đại học hàng đầu của cả nước đào tạo cán bộ quản lí và cũng là trường đại học đứng đầu trong viêc ứng dụng công nghệ thông tin trong công tác quản lí và giảng dạy. Thông qua đề tài “Xây dựng hệ thống thông tin quản lý hợp đồng tại TRATECHCOM”, em xin góp một phần nhỏ công sức vào việc hoàn thiện hệ thống quản lí hợp đồng tại công ty Cổ phần thương mại công nghệ và xây dựng TRATECHCOM . Em hy vọng rằng hệ thống này có thể giải quyết được những vấn đề còn tồn đọng trong công tác quản lý hợp đồng, giảm bớt công tác tra cứu, cập nhật hợp đồng, đưa ra báo cáo hoàn chỉnh về từng loại hợp đồng, giúp quá trình lên báo cáo tính chi phí và doanh thu của công ty.

doc131 trang | Chia sẻ: aloso | Lượt xem: 1557 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng hệ thống thông tin quản lý hợp đồng tại TRATECHCOM, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
h hàng Tên hợp đồng Ngày kí Ngày hiệu lực Ngày đáo hạn Giá trị hợp đồng Hình thức TT Bảng nhân viên Mã nhân viên Tên nhân viên Chức vụ Ngày sinh Giới tính Địa chỉ thường trú Ngày vào làm Số điện thoại nhà Di động Chỗ ở hiện tại Bảng phòng ban: Mã phòng ban Tên phòng ban Điện thoại Bảng điều khoản: Mã điều khoản Mã hợp đồng Tên điều khoản Nội dung Bảng công việc: Mã công việc Tên công việc Mô tả Bảng hoá đơn TT Mã hoá đơn Mã hợp đồng Mã nhân viên Ngày thu Hình thức thu Số tiền Bảng khách hàng: Mã khách hàng Tên khách hàng Tên cán bộ đại diện Chức vụ Địa chỉ khách hàng Điện thoại Fax Mã số thuế Tài khoản khách hàng Từ điển dữ liệu Bảng Nhân viên Bảng nhân viên lưu lại các thông tin về nhân viên như tên, tuổi, chức vụ, điện thoại. Bảng này gồm có một khoá chính là mã nhân viên, ngoài ra bảng còn các trường khác: STT Field Name Data Type Field Size Giải thích 1 MaNhanVien Text 10 Mã nhân viên 2 TenNhanVien Text 50 Tên nhân viên 3 ChucVu Text 20 Chức vụ 4 NgaySinh Date/Time Ngày sinh 5 GioiTinh Text 5 Giới tính 6 DiaChiThuongTru Text 50 Địa chỉ thường trú 7 NgayVaoLam Date/Time Ngày vào làm 8 NhaRieng Number Integer ĐT nhà riêng 9 DiDong Number Integer Di động 10 ChoOHienTai Text 50 Chỗ ở hiện tại 11 MaPB Text 10 Mã phòng ban Bảng Công việc Bảng công việc để lưu thông tin về công việc phải thực hiện trong các hợp đồng. Bảng này có khoá chính là mã công việc, cấu trúc của bảng này được mô tả như sau: STT Field Name Data Type Field Size Giải thích 1 MaCV Text 8 Mã công việc 2 TenCV Text 20 Tên công việc 3 MaNhanVien Text 10 Mã nhân viên 4 MoTa Text 100 Mô tả công việc Bảng Điều Khoản Bảng điều khoản lưu thông tin về các điều khoản của một hợp đồng… Bảng có một khoá chính là mã điều khoản và một khoá ngoại lai là mã hợp đồng. Ngoài ra bảng còn có các trường khác như sau: STT Field Name Data Type Field Size Giải thích 1 MaDieuKhoan Text 10 Mã điều khoản 2 MaHopDong Text 10 Mã hợp đồng 3 TenDieuKhoan Text 20 Tên điều khoản 4 NoiDung Text 50 Nội dung Bảng Hợp đồng Bảng hợp đồng lưu thông tin về hợp đồng, ngày kí, giá trị hợp đồng… Mã hợp đồng là khoá chính. Bảng có cấu trúc như sau: STT Field Name Data Type Field Size Giải thích 1 MaHopDong Text 10 Mã hợp đồng 2 MaKhachHang Text 10 Mã khách hàng 3 MaNhanVien Text 10 Mã nhân viên 4 GiaTri Number Long integer Giá trị hợp đồng 5 NgayKy Date/Time Ngày kí hợp đồng 6 HinhThucThanhToan Text 15 Hình thức thanh toán 7 TenHopDong Text 50 Tên hợp đồng 8 NgayHieuLuc Date/Time Ngày hiệu lực 9 NgayDaoHan Date/Time Ngày đáo hạn Bảng Khách Hàng Bảng này lưu tất cả các thông tin về khách hàng như địa chỉ, số điện thoại, người đại diện, số tài khoản, số thuế… Mã khách hàng làm khoá chính bảng này, ta có thông tin chi tiết về các trường như sau: STT Field Name Data Type Field Size Giải thích 1 MaKhachHang Text 10 Mã khách hàng 2 TenKhachHang Text 50 Tên khách hàng 3 TenCBDaiDien Text 50 Tên cán bộ đại diện 4 ChucVu Text 25 Chức vụ 5 DiaChi Text 50 Địa chỉ 6 DienThoai Number Integer Điện thoại 7 Fax Text 25 Fax 8 MaSoThue Text 15 Mã số thuế 9 TaiKhoan Text 20 Tài khoản Bảng phòng ban Bảng phòng ban lưu trữ thông tin về các phòng ban trong công ty, số điện thoại của mỗi phòng ban đó. Bảng này có khoá chính là mã phòng ban. Cấu trúc của bảng này như sau: STT Field Name Data Type Field Size Giải thích 1 MaPB Text 10 Mã phòng ban 2 TenPB Text 10 Tên phòng ban 3 DienThoai Number Integer Điện thoại Bảng Hóa đơn thanh toán Bảng hóa đơn thanh toán có Mã hóa đơn là khóa chính. Bảng này cập nhật các thông tin về thanh toán hợp đồng theo đúng điều khoản hơp đồng đã kí với khách hàng. Bảng này lưu trữ các thông tin lien quan tới hóa đơn thanh toán của khách hàng như mã hợp đồng, nhân viên thu tiền… Cấu trúc của bảng này như sau STT Field Name Data Type Field Size Giải thích 1 MaHoaDon Text 10 Mã hóa đơn 2 MaHD Text 10 Mã hợp đồng 3 MaNhanVien Text 10 Mã nhân viên 4 SoTien Number Long integer Số tiền 5 NgayTT Date/time Ngày thanh toán Bảng User Bảng user dùng để quản lý tài khoản nhân viên sử dụng phần mềm. Bảng này dùng UsernameID làm khoá chính và mã nhân viên làm khoá ngoại lai. Các thông số về các trường của bảng này như sau: STT Field Name Data Type Field Size Giải thích 1 UsernameID Text 20 Tên đăng nhập 2 MaNhanVien Text 10 Mã nhân viên 3 Password Text 20 Mật khẩu Mối quan hệ giữa các bảng trong cơ sở dữ liệu Giữa các bảng có mối quan hệ như hình vẽ: Hình 3. 12 Mối quan hệ giữa các bảng trong cơ sở dữ liệu Thiết kế thuật toán Giải thuật đăng nhập Hình 3. 13 Giải thuật đăng nhập hệ thống B Vào form đăng nhập Nhập thông tin SLN=1 Truy suất vào CSDL Thông báo đăng nhập quá 3 lần SLN=SLN+1 Vào giao diện chính Tài khoản có tồn tại không? K SLN<=3 Đ S Đ S Giải thuật cập nhật hợp đồng Hình 3. 14 Giải thuật cập nhật hợp đồng S Vào form cập nhật Nhập dữ liệu theo từng trường Thông báo dữ liệu không thỏa mãn Cập nhật hợp đồng Dữ liệu thỏa mãn điều kiện ràng buộc không? Truy suất vào CSDL Đ B K Giải thuật tìm kiếm Hình 3. 15 Giải thuật tìm kiếm dữ liệu Đ Vào form tìm kiếm Nhập tiêu thức tìm kiếm Thông báo không tìm thấy dữ liệu phù hợp Tồn tại dữ liệu thoản mãn điều kiện không? Hiển thị dữ liệu tìm được S B K Truy xuất vào CSDL Giải thuật thanh toán công nợ Hình 3. 16 Giải thuật thanh toán công nợ S Vào form thu nợ Nhập dữ liệu theo từng trường Thông báo dữ liệu không thỏa mãn điều kiện Cập nhật lại công nợ khách hàng Dữ liệu thỏa mãn điều kiện ràng buộc không? Truy suất vào CSDL Đ B K Giải thuật tạo báo cáo Có tồn tại dữ liệu trong khoảng thời gian này không? Thông báo không tồn tại dữ liệu Hiển thị báo cáo B Vào form báo cáo Truy suất vào CSDL Tạo báo cáo K S S Đ Chọn tiêu thức báo cáo Hình 3. 17 Giải thuật tạo báo cáo Thiết kế giao diện và báo cáo Giao diện của chương trình Hình 3. 18 Giao diện chính của chương trình Đặc điểm Mô tả Tên giao diện Giao diện chính Đối tượng sử dụng Mọi người dùng Tần xuất sử dụng Được sử dụng thường xuyên bất cứ khi nào có người sử dụng hệ thống Kết cấu giao diện Giao diện gồm thanh menu gồm các chức năng chính: Hệ thống, Cập nhật, Hợp đồng, Khen thưởng, Báo cáo Form Đăng nhập chương trình Hình 3. 19 Form Đăng nhập chương trình Đặc điểm Mô tả Tên giao diện Giao diện đăng nhập Đối tượng sử dụng Người dùng muốn đăng nhập vào hệ thống Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn đăng nhập sử dụng hệ thống Ý nghĩa các nút lệnh Nút Đăng nhập: sau khi đã nhập đầy đủ thông tin đăng nhập, ấn nút này để vào giao diện chính của phần mềm. Nút Thoát: hủy bỏ các thao tác, thoát ra khỏi hệ thống. Các bảng có liên quan Sử dụng bảng Người dùng để kiểm tra tên đăng nhập và mật khẩu. Form Đổi mật khẩu Hình 3. 20 Form Đổi mật khẩu Đặc điểm Mô tả Tên giao diện Giao diện Đổi mật khẩu Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn đổi lại mật khẩu của mình. Kết cấu giao diện Giao diện gồm 3 trường: nhập lại mật khẩu cũ để đảm bảo tính bảo mật, đồng thời nhập mới mật khẩu cần đổi. Các bảng có liên quan Sử dụng bảng người dùng để lưu trữ thông tin người dùng. Form Cập nhật cán bộ nhân viên Hình 3. 21 Form Cập nhật cán bộ công nhân viên Đặc điểm Mô tả Tên giao diện Giao diện Danh sách cán bộ công nhân viên Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn xem, sửa hay xoá danh sách nhân viên và các thông tin liên quan đến nhân viên. Kết cấu giao diện Giao diện gồm 10 trường để nhập thông tin về nhân viên và một datagrid để hiển thị các thông tin đó. Các bảng có liên quan Sử dụng bảng nhân viên để lưu trữ thông tin về nhân viên. Form Cập nhật danh sách khách hàng Hình 3. 22 Form Cập nhật danh sách khách hàng Đặc điểm Mô tả Tên giao diện Giao diện Danh mục khách hàng Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn xem danh sách khách hàng và các thông tin liên quan đến khách hàng. Kết cấu giao diện Giao diện gồm 9 trường để nhập thông tin về khách hàng và một datagrid để hiển thị các thông tin đó. Các bảng có liên quan Sử dụng bảng Khách hàng để lưu trữ thông tin về khách hàng. Form Cập nhật điều khoản hợp đồng Hình 3. 23 Form Cập nhật điều khoản hợp đồng Đặc điểm Mô tả Tên giao diện Giao diện Danh mục hợp đồng Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn cập nhật thông tin hợp đồng hay tra cứu thông tin về hợp đồng đang thực hiện, đồng thời có thể thông qua đó cập nhật thu tiền hợp đồng mỗi khi đến kì hạn, và huỷ hợp đồng mỗi khi có yêu cầu. Kết cấu giao diện Giao diện gồm 4 datagrid, trong đó 1 datagrid lưu thông tin về tất cả các hợp đồng, 1 datagrid tìm kiếm thông tin hợp theo các tiêu thức, 1 datagrid lưu thông tin về việc thu phí hợp đồng và 1 datagrid hiện công nợ về hợp đồng đó. Các bảng có liên quan Sử dụng bảng Hợp đồng, Thu phí, Khách hàng và Nhân viên để lưu trữ thông tin về hợp đồng. Form Cập nhật hợp đồng Hình 3. 24 Form Cập nhật hợp đồng Đặc điểm Mô tả Tên giao diện Giao diện Thêm hợp đồng. Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn thêm mới các thông tin về hợp đồng. Kết cấu giao diện Giao diện gồm 3 tap, trong đó 1 tap lưu trữ thông tin chi tiết về hợp đồng, 1 tap cập nhật điều khoản hợp đồng đó và 1 tap để phân công giao việc cho cán bộ để thực hiện hợp đồng đó. Form này được hiện ra khi ta nhấn nút thêm ở form danh sách hợp đồng. Các bảng có liên quan Sử dụng bảng Điều khoản, Hợp đồng, Công việc để lưu trữ thông tin về hợp đồng. Form Tìm kiếm hợp đồng Hình 3. 25 Form Tìm kiếm hợp đồng Đặc điểm Mô tả Tên giao diện Giao diện Sửa hợp đồng. Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn sửa các thông tin về hợp đồng. Kết cấu giao diện Giao diện gồm 3 tap, trong đó 1 tap lưu trữ thông tin chi tiết về hợp đồng, 1 tap cập nhật điều khoản hợp đồng đó và 1 tap để phân công giao việc cho cán bộ để thực hiện hợp đồng đó. Form này được hiện ra khi ta nhấn nút Xem ở form danh sách hợp đồng. Các bảng có liên quan Sử dụng bảng Điều khoản, Hợp đồng, Công việc để lưu trữ thông tin về hợp đồng. Form Cập nhật thu phí hợp đồng Hình 3. 26 Form Cập nhật thu phí hợp đồng Đặc điểm Mô tả Tên giao diện Giao diện Thu phí hợp đồng. Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn cập nhật thông tin thu tiền của khách hàng mỗi khi đến hạn thanh toán. Kết cấu giao diện Giao diện gồm 2 datagrid, trong đó 1 datagrid hiện thông tin chi tiết về hợp đồng thu phí, 1 datagrid cập nhật thông tin thu tiền về hợp đồng đó. Form này được hiện ra khi nhấn nút Thu phí ở form Danh mục hợp đồng. Các bảng có liên quan Sử dụng bảng Thu phí để lưu trữ thông tin về hợp đồng. Form huỷ hợp đồng Hình 3. 27 Form Hủy hợp đồng Đặc điểm Mô tả Tên giao diện Giao diện huỷ hợp đồng. Tần xuất sử dụng Được sử dụng mỗi khi người dùng muốn huỷ hợp đồng vì lý do hết hạn hay vi phạm hợp đồng. Kết cấu giao diện Giao diện gồm thông tin chi tiết hợp đồng, và ô datetimepicker để chọn ngày huỷ hợp đồng, mặc định là ngày hiện thời. Các bảng có liên quan Sử dụng bảng hợp đồng để lưu trữ thông tin về ngày huỷ hợp đồng. Báo cáo danh sách hợp đồng đang thực hiện Hình 3. 28 Báo cáo danh sách hợp đồng đang thực hiện Đặc điểm Mô tả Tên báo cáo Danh sách hợp đồng đang thực hiện. Đối tượng sử dụng Ban giám đốc công ty muốn biết chính xác có bao nhiêu hợp đồng đang triển khai, thực hiện. Tần suất sử dụng Cuối kì lên báo cáo kinh doanh hoặc ban giám đốc có yêu cầu tìm hiểu thông tin về hợp đồng. Giá trị sử dụng Hỗ trợ ban giám đốc có kế hoạch hợp lý để thực hiện hợp đồng, mang lại hiệu quả sản xuất kinh doanh cao. Báo cáo danh sách khách hàng Hình 3. 29 Báo cáo danh sách khách hàng Đặc điểm Mô tả Tên báo cáo Danh sách khách hàng. Đối tượng sử dụng Ban giám đốc hoặc phòng tổ chức hành chính muốn biết có bao nhiêu khách hàng để có kế hoạch marketing dịch vụ của công ty. Tần suất sử dụng Mỗi khi có kế hoạch về marketing dịch vụ công ty cho khách hàng. Giá trị sử dụng Tìm kiếm nguồn khách hàng tiềm năng của công ty. Báo cáo danh sách hợp đồng đáo hạn Hình 3. 30 Báo cáo danh sách hợp đồng đáo hạn Đặc điểm Mô tả Tên báo cáo Danh sách hợp đồng đáo hạn Đối tượng sử dụng Ban giám đốc hoặc phòng hành chính muốn tìm hiểu có những hợp đồng nào đã thực hiện, tra cứu nó, đồng thời hỗ trợ phòng hành chính lên báo cáo kết quả hoạt động sản xuất kinh doanh. Tần suất sử dụng Cuối mỗi kì kế toán. Giá trị sử dụng Giúp ban giám đốc có chiến lược kinh doanh đúng đắn và hợp lý từ những hợp đồng đã thực hiện. Cài đặt và bảo trì Hệ thống phần cứng, phần mềm và một số yêu cầu về nhân lực để cài đặt hệ thống thông tin quản lý hợp đồng tại công ty: Để cài đặt hệ thống thông tin đòi hỏi thiết bị phần cứng và phần mềm như sau: Bộ vi xử lý Pentium® 90 MHz trở lên. Màn hình VGA hoặc màn hình có độ phân giải cao được hỗ trợ bởi Microsoft Windows. 24 MB Ram đối với Windows 95, 32 MB Ram đối với Win NT hoặc XP, Microsoft Windows NT 3.51 trở lên hoặc các hệ điều hành của Microsoft từ Microsoft 95 trở lên. Ngoài ra cần thêm một số thiết bị phần cứng khác giúp cho hệ thống hoạt động tốt như bàn phím, chuột, máy in, máy quét… Một máy tính khi đã được cài đặt hệ điều hành và bộ nhớ không dưới 50 MB thì có thể tiến hàng cài đặt hệ thống. Yêu cầu về đào tạo nhân lực cho hệ thống Các chức năng của hệ thống khá đơn giản nên việc đào tạo nhân lực cho hệ thống cũng sẽ đơn giản. Để sử dụng phần mềm hệ thống họ sẽ được đào tạo trong hai ngày với chức năng chính và một số các phần khác và trong quá trình đào tạo có thể sửa đổi, bổ sung thêm một số mục để thuận tiện và phù hợp với người sử dụng. Số người của phòng kinh doanh tham gia đào tạo ít nhất là 3 người để đảm bảo duy trì hoạt động của hệ thống trong các ca khác nhau. KẾT LUẬN Ngày nay chúng ta đang sống trong kỷ nguyên của khoa học công nghệ. Với sự phát triển vượt bậc của khoa học công nghệ, con người đã bước đến những tầm cao mới. Thế giới đang chuyển mình nhanh chóng với những tiến bộ vượt bậc về công nghệ thông tin. Công nghệ thông tin được ứng dụng vào tất cả các lĩnh vực của đời sống xã hội. Khoa học giáo dục là một trong những lĩnh vực đi đầu về phát triển công nghệ thông tin. Trường Đại học Kinh tế Quốc dân là truờng đại học hàng đầu của cả nước đào tạo cán bộ quản lí và cũng là trường đại học đứng đầu trong viêc ứng dụng công nghệ thông tin trong công tác quản lí và giảng dạy. Thông qua đề tài “Xây dựng hệ thống thông tin quản lý hợp đồng tại TRATECHCOM”, em xin góp một phần nhỏ công sức vào việc hoàn thiện hệ thống quản lí hợp đồng tại công ty Cổ phần thương mại công nghệ và xây dựng TRATECHCOM . Em hy vọng rằng hệ thống này có thể giải quyết được những vấn đề còn tồn đọng trong công tác quản lý hợp đồng, giảm bớt công tác tra cứu, cập nhật hợp đồng, đưa ra báo cáo hoàn chỉnh về từng loại hợp đồng, giúp quá trình lên báo cáo tính chi phí và doanh thu của công ty. Do thời gian không nhiều cộng với sự thiếu sót về kinh nghiệm nên em không thể bao quát được hết những tình huống xảy ra trong công tác quản lý hợp đồng tại công ty TRATECHCOM. Đề tài này không thể tránh khỏi những khiếm khuyết và sai sót. Em rất mong được sự góp ý của các thầy cô để em có thể hoàn thiện và phát triển đề tài sâu hơn nữa. Em xin gửi lời cảm ơn chân thành đến toàn thể cán bộ công nhân viên công ty Cổ phần Thương mại Công nghệ và Xây dựng TRATECHCOM đã nhiệt tình giúp đỡ trong qua trình tìm hiểu và xây dựng chương trình. Một lần nữa chúng em xin chân thành cảm ơn sự hướng dẫn và giúp đỡ tận tình của TS.Trần Thị Song Minh, người đã trực tiếp giảng dạy em và truyền thụ cho em nhiều kiến thức bổ ích, nhiều bài học kinh nghiệm trong công tác và trong cuộc sống để em có thể hoàn thành đề tài này và tạo đà cho chúng em phát triển vững chắc trong tương lai. PHỤ LỤC Form khách hang Private addStatus As Boolean Private editStatus As Boolean Private Status As String Private Sub cmdsua_Click() Status = "EDIT" txtmakh.Enabled = False txttenkh.Enabled = True txttencbdaidien.Enabled = True txtchucvu.Enabled = True txtdiachi.Enabled = True txtdienthoai.Enabled = True txtfax.Enabled = True txtmasothue.Enabled = True txttaikhoan.Enabled = True If Adodckh.Recordset.RecordCount < 1 Then MsgBox "Kh«ng cã b¶n ghi nµo ®Ó söa !" txtmakh.SetFocus Else txttenkh.SetFocus ' editStatus = True setStatus setValue End If End Sub Private Sub cmdThem_Click() If Status = "" Then Status = "ADD" txtmakh.Enabled = True txttenkh.Enabled = True txttencbdaidien.Enabled = True txtchucvu.Enabled = True txtdiachi.Enabled = True txtdienthoai.Enabled = True txtfax.Enabled = True txtmasothue.Enabled = True txttaikhoan.Enabled = True resetForm txtmakh.SetFocus 'addStatus = True setStatus ElseIf Status = "ADD" Then If Rs.State = 1 Then Rs.Close End If Rs.Open "Select * from KhachHang where MaKhachHang = '" & Trim(txtmakh.Text) & "'" If Rs.RecordCount > 0 Then MsgBox "M· kh¸ch hµng nµy ®· cã ng­êi chän, vui lßng chän m· kh¸c !" txtmakh.SetFocus Else If CheckForm = True Then Adodckh.Recordset.AddNew Adodckh.Recordset(0) = txtmakh.Text Adodckh.Recordset(1) = txttenkh.Text Adodckh.Recordset(2) = txttencbdaidien.Text Adodckh.Recordset(3) = txtchucvu.Text Adodckh.Recordset(4) = txtdiachi.Text Adodckh.Recordset(5) = txtdienthoai.Text Adodckh.Recordset(6) = txtfax.Text Adodckh.Recordset(7) = txtmasothue.Text Adodckh.Recordset(8) = txttaikhoan.Text 'Adodckh.Recordset.CancelBatch Adodckh.Recordset.Update addStatus = False txtmakh.SetFocus txtmakh.Enabled = False txttenkh.Enabled = False txttencbdaidien.Enabled = False txtchucvu.Enabled = False txtdiachi.Enabled = False txtdienthoai.Enabled = False txtfax.Enabled = False txtmasothue.Enabled = False txttaikhoan.Enabled = False setValue Status = "" setStatus 'Else ' MsgBox "D÷ liÖu nhËp kh«ng hîp lÖ !" End If End If If Rs.State = 1 Then Rs.Close End If ElseIf Status = "EDIT" Then If Adodckh.Recordset.EOF = False And Adodckh.Recordset.BOF = False Then If CheckForm = True Then Adodckh.Recordset(0) = txtmakh.Text Adodckh.Recordset(1) = txttenkh.Text Adodckh.Recordset(2) = txttencbdaidien.Text Adodckh.Recordset(3) = txtchucvu.Text Adodckh.Recordset(4) = txtdiachi.Text Adodckh.Recordset(5) = txtdienthoai.Text Adodckh.Recordset(6) = txtfax.Text Adodckh.Recordset(7) = txtmasothue.Text Adodckh.Recordset(8) = txttaikhoan.Text Adodckh.Recordset.Update editStatus = False txtmakh.Enabled = False txttenkh.Enabled = False txttencbdaidien.Enabled = False txtchucvu.Enabled = False txtdiachi.Enabled = False txtdienthoai.Enabled = False txtfax.Enabled = False txtmasothue.Enabled = False txttaikhoan.Enabled = False Status = "" setStatus setValue Else MsgBox "D÷ liÖu nhËp kh«ng hîp lÖ !" End If Else MsgBox "B¹n ch­a chän ®èi t­îng cÇn söa !" End If Else Status = "" setStatus End If End Sub Private Sub setStatus() 'If addStatus = False Then ' If editStatus = False Then If Status = "" Then cmdThem.Enabled = True cmdThem.Caption = "Thªm" cmdsua.Enabled = True cmdXoa.Enabled = True cmdhuy.Caption = "Tho¸t" ElseIf Status = "EDIT" Then cmdThem.Enabled = True cmdThem.Caption = "L­u" cmdsua.Enabled = False cmdXoa.Enabled = False cmdhuy.Caption = "Hñy" ElseIf Status = "ADD" Then cmdThem.Enabled = True cmdThem.Caption = "L­u" cmdsua.Enabled = False cmdXoa.Enabled = False cmdhuy.Caption = "Hñy" Status = "ADD" Else Status = "" setStatus End If End Sub Private Function CheckForm() As Boolean If txtmakh.Text = "" Then MsgBox "B¹n ch­a nhËp m· kh¸ch hµng !", vbOKOnly, "Th«ng b¸o !" txtmakh.SetFocus CheckForm = False ElseIf txttenkh.Text = "" Then MsgBox "B¹n ch­a nhËp tªn kh¸ch hµng!", vbOKOnly, "Th«ng b¸o !" txttenkh.SetFocus CheckForm = False ElseIf txttencbdaidien.Text = "" Then MsgBox "B¹n ch­a nhËp tªn c¸n bé ®¹i diÖn!", vbOKOnly, "Th«ng b¸o !" txttencbdaidien.SetFocus CheckForm = False ElseIf IsNumeric(txtdienthoai.Text) = False Then MsgBox "B¹n ph¶i nhËp ®iÖn tho¹i lµ kiÓu sè!", vbOKOnly, "Th«ng b¸o !" txtdienthoai.SetFocus CheckForm = False ElseIf txtchucvu.Text = "" Then MsgBox "B¹n ch­a nhËp chøc vô !", vbOKOnly, "Th«ng b¸o !" txtchucvu.SetFocus CheckForm = False ElseIf txtdiachi.Text = "" Then MsgBox "B¹n ch­a nhËp ®Þa chØ kh¸ch hµng!", vbOKOnly, "Th«ng b¸o !" txtdiachi.SetFocus CheckForm = False Else CheckForm = True End If End Function Private Sub cmdXoa_Click() If Adodckh.Recordset.EOF = False And Adodckh.Recordset.BOF = False Then setValue If MsgBox("B¹n thùc sù muèn xãa " & Adodckh.Recordset(1) & " ra khái danh môc ?", vbYesNo, "Th«ng b¸o !") = vbYes Then Adodckh.Recordset.Delete adAffectCurrent If Adodckh.Recordset.RecordCount < 1 Then resetForm End If End If Else MsgBox "B¹n ch­a chän kh¸ch hµng cÇn xãa !" End If End Sub Private Sub dtgr_RowColChange(LastRow As Variant, ByVal LastCol As Integer) setValue End Sub Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{TAB}" KeyAscii = 0 End If End Sub Private Sub Form_Load() Adodckh.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Database\QLHopDong.mdb;Persist Security Info=False" Adodckh.RecordSource = "KhachHang" Set dtgr.DataSource = Adodckh txtmakh.Enabled = False txttenkh.Enabled = False txttencbdaidien.Enabled = False txtchucvu.Enabled = False txtdiachi.Enabled = False txtdienthoai.Enabled = False txtfax.Enabled = False txtmasothue.Enabled = False txttaikhoan.Enabled = False addStatus = False editStatus = False setValue setStatus End Sub Private Sub setValue() If addStatus = False Then If Adodckh.Recordset.EOF = False And Adodckh.Recordset.BOF = False Then txtmakh.Text = Adodckh.Recordset(0) txttenkh.Text = Adodckh.Recordset(1) txttencbdaidien.Text = Adodckh.Recordset(2) txtchucvu.Text = Adodckh.Recordset(3) txtdiachi.Text = Adodckh.Recordset(4) txtdienthoai.Text = Adodckh.Recordset(5) txtfax.Text = Adodckh.Recordset(6) txtmasothue.Text = Adodckh.Recordset(7) txttaikhoan.Text = Adodckh.Recordset(8) Else resetForm End If End If End Sub Private Sub resetForm() txtmakh.Text = "" txttenkh.Text = "" txttencbdaidien.Text = "" txtchucvu.Text = "" txtdiachi.Text = "" txtdienthoai.Text = "" txtfax.Text = "" txtmasothue.Text = "" txttaikhoan.Text = "" End Sub Private Sub txtMaCB_KeyPress(KeyAscii As Integer) If Chr(KeyAscii) = vbBack Then Exit Sub If Chr(KeyAscii) = "" Then Exit Sub If Chr(KeyAscii) Like "[a-zA-Z0-9]" Then KeyAscii = Asc(UCase(Chr(KeyAscii))) Else KeyAscii = 0 End If End Sub Private Sub cmdhuy_Click() ' If addStatus = True Then ' addStatus = False ' End If 'If editStatus = True Then 'editStatus = False ' End If If Status = "" Then Unload Me Else Status = "" txtmakh.Enabled = False txttenkh.Enabled = False txttencbdaidien.Enabled = False txtchucvu.Enabled = False txtdiachi.Enabled = False txtdienthoai.Enabled = False txtfax.Enabled = False txtmasothue.Enabled = False txttaikhoan.Enabled = False setStatus setValue End If End Sub Form danh mục hợp đồng Dim MaHD, HTTT, MaCB, NgayHL, MaKH, NgayPH, DinhKy, GiaTriBH, NgayDaoHan, ThoiHanBH, NgayHuy, ThuPhi, DaiDienKH As String Dim isInsert As Boolean Private Status As String Private addStatus As Boolean Private Function CheckForm() MaHD = txtmahopdong.Text MaKH = txtmakhachhang.Text GiaTriBH = txtgiatribh.Text NgayPH = dtNgayPhatHanh.Value NgayDaoHan = dtNgayDaoHan.Value MaCB = txtmacb.Text NgayHL = dtNgayHieuLuc.Value ThuPhi = txtConNo.Text DaiDienKH = txtDaiDienKH.Text If MaHD = "" Then MsgBox "B¹n ch­a nhËp sè hiÖu hîp ®ång" CheckForm = 1 Exit Function End If If MaKH = "" Then MsgBox "B¹n ch­a nhËp m· kh¸ch hµng" CheckForm = 1 Exit Function End If If cbohinhthuctt = "" Then MsgBox "B¹n ch­a chän h×nh thøc thanh to¸n" CheckForm = 1 Exit Function End If If cbohinhthucbt = "" Then MsgBox "B¹n ch­a nhËp h×nh thøc båi th­êng" CheckForm = 1 Exit Function End If If DaiDienKH = "" Then MsgBox "B¹n ch­a nhËp ng­êi ®¹i diÖn cña kh¸ch hµng" CheckForm = 1 Exit Function End If If GiaTriBH = "" Then MsgBox "B¹n ch­a nhËp gi¸ trÞ hîp ®ång" CheckForm = 1 Exit Function Else If Not IsNumeric(GiaTriBH) Then MsgBox "Gi¸ trÞ hîp ®ång ph¶i nhËp lµ sè nguyªn d­¬ng" CheckForm = 1 Exit Function End If End If End Function Private Sub cmdHuyHD_Click() If Adodchd.Recordset.EOF = False And Adodchd.Recordset.BOF = False Then Dim f As New frmHuyHopDong f.MaHD = Adodchd.Recordset(0) f.Show vbModal Else MsgBox "B¹n ch­a chän häp ®ång ®Ó hñy !", vbOKOnly, "Th«ng b¸o !" End If End Sub Private Sub cmdketthuc_Click() On Error GoTo Loi Adodchd.Recordset.CancelBatch Unload Me Loi: End Sub Private Sub cmdKhachHang_Click() frmDanhSach.StringSource "KhachHang", "HopDong" frmDanhSach.Show End Sub Private Sub cmdKHThem_Click() frmKhachHang.Show End Sub Private Sub ThemMoi() On Error GoTo Loi Dim Re As Integer Re = CheckForm If Re = 0 Then Adodchd.Recordset.Update MsgBox "Them moi ok" End If Loi: If KiemTraMaDaTonTai(MaHD, "HopDong", "MaHopDong") = True Then MsgBox "Sè hiÖu hîp ®ång võa nhËp ®· tån t¹i" Adodchd.Recordset.CancelBatch End If If KiemTraMaDaTonTai(MaCB, "CanBo", "MaCanBo") = False Then MsgBox "M· c¸n bé võa nhËp kh«ng tån t¹i" Adodchd.Recordset.CancelBatch End If If KiemTraMaDaTonTai(MaKH, "khachhang", "MaKhachHang") = False Then MsgBox "M· kh¸ch hµng võa nhËp kh«ng tån t¹i" Adodchd.Recordset.CancelBatch End If End Sub Private Sub SuaDoi() On Error GoTo Loi Dim Re As Integer Re = CheckForm If Re = 0 Then Adodchd.Recordset.Update End If Loi: If KiemTraMaDaTonTai(MaHD, "HopDong", "MaHopDong") = False Then MsgBox "Sè hiÖu hîp ®ång võa nhËp kh«ng tån t¹i" ElseIf KiemTraMaDaTonTai(MaCB, "CanBo", "MaCanBo") = False Then MsgBox "M· c¸n bé võa nhËp kh«ng tån t¹i" ElseIf KiemTraMaDaTonTai(MaKH, "khachhang", "MaKhachHang") = False Then MsgBox "M· kh¸ch hµng võa nhËp kh«ng tån t¹i" End If Adodchd.Recordset.CancelBatch End Sub Private Sub cmdsua_Click() End Sub Private Sub cmdThem_Click() Dim f As New frmThemHD f.Show vbModal End Sub Private Sub cmdTimCB_Click() frmDanhSach.StringSource "CanBo", "HopDong" frmDanhSach.Show End Sub Private Sub cmdThuPhi_Click() If Adodchd.Recordset.EOF = False And Adodchd.Recordset.BOF = False Then Dim f As New frmThuPhi f.MaHD = Adodchd.Recordset(0) f.Show vbModal Else MsgBox "B¹n ch­a chän häp ®ång ®Ó hñy !", vbOKOnly, "Th«ng b¸o !" End If End Sub Private Sub cmdTim_Click() If Trim(txtTuKhoa.Text) = "" Then Adodchd.RecordSource = "SELECT HopDong.MaHopDong, KhachHang.TenKhachHang, HopDong.DaiDienKH, HopDong.GiaTriBH, HopDong.DinhKi, HopDong.HinhThucTT, HopDong.HinhThucBT, HopDong.NgayPhatHanh, HopDong.NgayHieuLuc, HopDong.NgayDaoHan, HopDong.NgayHuy, HopDong.ConNo, CanBo.TenCanBo FROM KhachHang INNER JOIN (CanBo INNER JOIN HopDong ON CanBo.MaCanBo = HopDong.MaCB) ON KhachHang.MaKhachHang = HopDong.MaKhachHang;" Else If cboTraTheo.ListIndex = 0 Then Adodchd.RecordSource = "SELECT HopDong.MaHopDong, KhachHang.TenKhachHang, HopDong.DaiDienKH, HopDong.GiaTriBH, HopDong.DinhKi, HopDong.HinhThucTT, HopDong.HinhThucBT, HopDong.NgayPhatHanh, HopDong.NgayHieuLuc, HopDong.NgayDaoHan, HopDong.NgayHuy, HopDong.ConNo, CanBo.TenCanBo FROM KhachHang INNER JOIN (CanBo INNER JOIN HopDong ON CanBo.MaCanBo = HopDong.MaCB) ON KhachHang.MaKhachHang = HopDong.MaKhachHang where HopDong.MaHopDong like '%" & txtTuKhoa.Text & "%'" ElseIf cboTraTheo.ListIndex = 1 Then Adodchd.RecordSource = "SELECT HopDong.MaHopDong, KhachHang.TenKhachHang, HopDong.DaiDienKH, HopDong.GiaTriBH, HopDong.DinhKi, HopDong.HinhThucTT, HopDong.HinhThucBT, HopDong.NgayPhatHanh, HopDong.NgayHieuLuc, HopDong.NgayDaoHan, HopDong.NgayHuy, HopDong.ConNo, CanBo.TenCanBo FROM KhachHang INNER JOIN (CanBo INNER JOIN HopDong ON CanBo.MaCanBo = HopDong.MaCB) ON KhachHang.MaKhachHang = HopDong.MaKhachHang where KhachHang.MaKhachHang like '%" & txtTuKhoa.Text & "%'" ElseIf cboTraTheo.ListIndex = 2 Then Adodchd.RecordSource = "SELECT HopDong.MaHopDong, KhachHang.TenKhachHang, HopDong.DaiDienKH, HopDong.GiaTriBH, HopDong.DinhKi, HopDong.HinhThucTT, HopDong.HinhThucBT, HopDong.NgayPhatHanh, HopDong.NgayHieuLuc, HopDong.NgayDaoHan, HopDong.NgayHuy, HopDong.ConNo, CanBo.TenCanBo FROM KhachHang INNER JOIN (CanBo INNER JOIN HopDong ON CanBo.MaCanBo = HopDong.MaCB) ON KhachHang.MaKhachHang = HopDong.MaKhachHang where KhachHang.TenKhachHang like '%" & txtTuKhoa.Text & "%'" Else Adodchd.RecordSource = "SELECT HopDong.MaHopDong, KhachHang.TenKhachHang, HopDong.DaiDienKH, HopDong.GiaTriBH, HopDong.DinhKi, HopDong.HinhThucTT, HopDong.HinhThucBT, HopDong.NgayPhatHanh, HopDong.NgayHieuLuc, HopDong.NgayDaoHan, HopDong.NgayHuy, HopDong.ConNo, CanBo.TenCanBo FROM KhachHang INNER JOIN (CanBo INNER JOIN HopDong ON CanBo.MaCanBo = HopDong.MaCB) ON KhachHang.MaKhachHang = HopDong.MaKhachHang;" End If End If Adodchd.Refresh DataGrid1.Refresh End Sub Private Sub cmdXem_Click() If Adodchd.Recordset.EOF = False And Adodchd.Recordset.BOF = False Then Dim f As New frmSuaHD f.MaHD = Adodchd.Recordset(0) f.Show vbModal Else MsgBox "B¹n ch­a chän häp ®ång ®Ó xem !", vbOKOnly, "Th«ng b¸o !" End If End Sub Private Sub cmdXoa_Click() ' On Error GoTo Loi If Adodchd.Recordset.EOF = False And Adodchd.Recordset.BOF = False Then If MsgBox("B¹n thùc sù muèn xãa " & Adodchd.Recordset(1) & " ra khái danh môc ?", vbYesNo, "Th«ng b¸o !") = vbYes Then Conn.BeginTrans Conn.Execute "Delete from HopDong where MaHopDong='" & Adodchd.Recordset(0) & "'" Conn.CommitTrans End If Adodchd.Refresh DataGrid1.Refresh End If ' Exit Sub 'Loi: ' MsgBox "Xãa gÆp lçi ?", vbOKOnly, "Th«ng b¸o !" End Sub Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) If Adodchd.Recordset.EOF = False And Adodchd.Recordset.BOF = False Then lblGiaTri.Caption = Adodchd.Recordset(3) If Rs.State = 1 Then Rs.Close End If Rs.Open "Select iif(isnull(sum(SoTien)),0,sum(SoTien)) from ThuPhi where MaHopDong='" & Adodchd.Recordset(0) & "'" If Rs.RecordCount > 0 Then Rs.MoveFirst lblTra.Caption = Rs(0) Else lblTra.Caption = "0" End If If Rs.State = 1 Then Rs.Close End If lblNo.Caption = Str(Val(lblGiaTri.Caption) - Val(lblTra.Caption)) Adodc1.RecordSource = "Select * from ThuPhi where MaHopDong='" & Adodchd.Recordset(0) & "'" Adodc1.Refresh DataGrid2.Refresh End If End Sub Private Sub Form_Load() cboTraTheo.AddItem "M· hîp ®ång", 0 cboTraTheo.AddItem "M· kh¸ch hµng", 1 cboTraTheo.AddItem "Tªn kh¸ch hµng", 2 cboTraTheo.ListIndex = 0 End Sub Private Sub setValue() If addStatus = False Then If Adodchd.Recordset.EOF = False And Adodchd.Recordset.BOF = False Then txtmahopdong.Text = Adodchd.Recordset(0) txtmakhachhang.Text = Adodchd.Recordset(1) txtDaiDienKH.Text = Adodchd.Recordset(2) txtgiatribh.Text = Adodchd.Recordset(3) cbodinhki.Text = Adodchd.Recordset(4) cbohinhthuctt.Text = Adodchd.Recordset(5) cbohinhthucbt.Text = Adodchd.Recordset(6) dtNgayPhatHanh.Value = Adodchd.Recordset(7) dtNgayHieuLuc.Value = Adodchd.Recordset(8) dtNgayDaoHan.Value = Adodchd.Recordset(9) txtConNo.Text = Adodchd.Recordset(11) txtmacb.Text = Adodchd.Recordset(12) Else resetForm End If End If End Sub Private Sub resetForm() txtmahopdong.Text = "" txtmakhachhang.Text = "" txtDaiDienKH.Text = "" txtgiatribh.Text = "" cbodinhki = "" cbohinhthuctt = "" cbohinhthucbt = "" dtNgayPhatHanh.Value = DateTime.Now dtNgayHieuLuc.Value = DateTime.Now dtNgayDaoHan.Value = DateTime.Now txtConNo.Text = "" txtmacb.Text = "" End Sub 'Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) ' setValue' 'End Sub Priate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single) End Sub Private Sub lblHuyHD_Click() End Sub Form them hợp đồng Public OK As Boolean Public Status As Boolean Private Sub cmdKhachHang_Click() Dim f As New frmDanhSach f.StringSource "KhachHang", "HopDong" f.Show vbModal txtmakhachhang.Text = f.Ma End Sub Private Sub cmdKHThem_Click() Dim f As New frmKhachHang f.Show vbModal End Sub Private Sub cmdLuu_Click() Dim i As Integer If CheckForm = True Then If Rs.State = 1 Then Rs.Close End If Rs.Open "Select * from HopDong where MaHopDong ='" & txtmahopdong.Text & "'" If Rs.RecordCount > 0 Then MsgBox "M· hîp ®ång nµy ®· tån t¹i, vui lßng chän m· kh¸c !", vbOKOnly, "Th«ng b¸o !" Else Conn.BeginTrans Conn.Execute "Insert into HopDong(MaHopDong,MaKhachHang,DaiDienKH,GiaTriBH,DinhKi,HinhThucTT,HinhThucBT,NgayPhatHanh,NgayHieuLuc,NgayDaoHan,ConNo,MaCB) values('" & txtmahopdong.Text & "','" & txtmakhachhang.Text & "','" & txtDaiDienKH.Text & "'," & txtgiatribh.Text & ",'" & cbodinhki.Text & "','" & cbohinhthuctt.Text & "','" & cbohinhthucbt.Text & "',#" & dtNgayPhatHanh.Value & "#,#" & dtNgayHieuLuc.Value & "#,#" & dtNgayDaoHan.Value & "#," & txtConNo.Text & ",'" & txtmacb.Text & "')" Conn.CommitTrans If lvwDieuKhoan.ListItems.Count > 0 Then For i = 1 To lvwDieuKhoan.ListItems.Count Conn.BeginTrans Conn.Execute "Insert into DieuKhoan(MaHopDong,TenDieuKhoan,NoiDung) values('" & txtmahopdong.Text & "','" & lvwDieuKhoan.ListItems(i) & "','" & lvwDieuKhoan.ListItems(i).SubItems(1) & "')" Conn.CommitTrans Next End If If lvwPhieuGiaoViec.ListItems.Count > 0 Then For i = 1 To lvwPhieuGiaoViec.ListItems.Count Conn.BeginTrans Conn.Execute "Insert into CongViec(MaHopDong,TenCongViec,MoTa,MaCanBo,NgayBD,NgayKT) values('" & txtmahopdong.Text & "','" & lvwPhieuGiaoViec.ListItems(i) & "','" & lvwPhieuGiaoViec.ListItems(i).SubItems(1) & "','" & lvwPhieuGiaoViec.ListItems(i).SubItems(2) & "',#" & lvwPhieuGiaoViec.ListItems(i).SubItems(3) & "#,#" & lvwPhieuGiaoViec.ListItems(i).SubItems(4) & "#)" Conn.CommitTrans Next End If MsgBox "B¹n ®· thªm thµnh c«ng !", vbOKOnly, "Th«ng b¸o !" Unload Me End If End If End Sub Private Sub cmdThem_Click() If Trim(txtTenDieuKhoan.Text) = "" Then MsgBox "B¹n ch­a nhËp tªn ®iÒu kho¶n !", vbOKOnly, "Th«ng b¸o !" txtTenDieuKhoan.SetFocus ElseIf Trim(txtNoiDung.Text) = "" Then MsgBox "B¹n ch­a nhËp néi dung ®iÒu kho¶n !", vbOKOnly, "Th«ng b¸o !" txtNoiDung.SetFocus Else Set ChiTiet = lvwDieuKhoan.ListItems.Add(, , txtTenDieuKhoan.Text) ChiTiet.SubItems(1) = txtNoiDung.Text With lvwDieuKhoan If .ListItems.Count > 0 Then Set .SelectedItem = .ListItems(1) End If End With Set ChiTiet = Nothing txtTenDieuKhoan.Text = "" txtNoiDung.Text = "" End If End Sub Private Sub cmdThemPGV_Click() If Trim(txtTenCongViec.Text) = "" Then MsgBox "B¹n ch­a nhËp tªn c«ng viÖc !", vbOKOnly, "Th«ng b¸o !" txtTenCongViec.SetFocus ElseIf Trim(txtcb.Text) = "" Then MsgBox "B¹n ch­a nhËp tªn c¸n bé !", vbOKOnly, "Th«ng b¸o !" txtcb.SetFocus Else Set ChiTiet = lvwPhieuGiaoViec.ListItems.Add(, , txtTenCongViec.Text) ChiTiet.SubItems(1) = txtmota.Text ChiTiet.SubItems(2) = txtcb.Text ChiTiet.SubItems(3) = Str(DTPNgayBatDau.Value) ChiTiet.SubItems(4) = Str(DTPNgayKetThuc.Value) With lvwPhieuGiaoViec If .ListItems.Count > 0 Then Set .SelectedItem = .ListItems(1) End If End With Set ChiTiet = Nothing txtTenCongViec.Text = "" txtmota.Text = "" txtcb.Text = "" End If End Sub Private Sub CmdThoat_Click() Unload Me End Sub Private Sub cmdTim_Click() Dim f As New frmDanhSach f.StringSource "CanBo", "HopDong" f.Show vbModal txtcb.Text = f.Ma End Sub Private Sub cmdTimCB_Click() Dim f As New frmDanhSach f.StringSource "CanBo", "HopDong" f.Show vbModal txtmacb.Text = f.Ma End Sub Private Sub cmdXoa_Click() If lvwDieuKhoan.ListItems.Count > 0 Then lvwDieuKhoan.ListItems.Remove (lvwDieuKhoan.SelectedItem.Index) Else MsgBox "Kh«ng cã ®iÒu kho¶n nµo ®Ó xãa !", vbOKOnly, "Th«ng b¸o !" End If End Sub Private Sub Command1_Click() End Sub Private Sub cmdXoaPGV_Click() If lvwPhieuGiaoViec.ListItems.Count > 0 Then lvwPhieuGiaoViec.ListItems.Remove (lvwPhieuGiaoViec.SelectedItem.Index) Else MsgBox "Kh«ng cã phiÕu giao viÖc nµo ®Ó xãa !", vbOKOnly, "Th«ng b¸o !" End If End Sub Private Sub Form_Load() LoadForm OK = False Status = False End Sub Private Sub LoadForm() cbohinhthuctt.AddItem "TiÒn mÆt", 0 cbohinhthuctt.AddItem "ChuyÓn kho¶n", 1 cbohinhthuctt.ListIndex = 0 cbohinhthucbt.AddItem "TiÒn mÆt", 0 cbohinhthucbt.AddItem "ChuyÓn kho¶n", 1 cbohinhthucbt.ListIndex = 0 cbodinhki.AddItem "Quý", 0 cbodinhki.AddItem "N¨m", 1 cbdinhki.ListIndex = 0 dtNgayHieuLuc.Value = Now dtNgayPhatHanh.Value = Now dtNgayDaoHan.Value = Now + 360 With lvwDieuKhoan .ColumnHeaders.Clear .ColumnHeaders.Add , , "Tªn ®iÒu kho¶n", .Width * 0.4 .ColumnHeaders.Add , , "Néi dung ®iÒu kho¶n", .Width * 0.6 .ListItems.Clear End With With lvwPhieuGiaoViec .ColumnHeaders.Clear .ColumnHeaders.Add , , "Tªn c«ng viÖc", .Width * 0.4 .ColumnHeaders.Add , , "M« t¶", .Width * 0.6 .ColumnHeaders.Add , , "M· c¸n bé", .Width * 0.6 .ColumnHeaders.Add , , "Ngµy b¾t ®Çu", .Width * 0.6 .ColumnHeaders.Add , , "Ngµy kÕt thóc", .Width * 0.6 .ListItems.Clear End With End Sub Private Function CheckForm() As Boolean Dim flag As Boolean flag = False If Trim(txtmahopdong.Text) = "" Then MsgBox "B¹n ch­a nhËp sè hiÖu hîp ®ång" ElseIf Trim(txtmakhachhang.Text) = "" Then MsgBox "B¹n ch­a nhËp m· kh¸ch hµng" ElseIf Trim(txtDaiDienKH.Text) = "" Then MsgBox "B¹n ch­a nhËp ng­êi ®¹i diÖn cña kh¸ch hµng" ElseIf Trim(txtgiatribh.Text) = "" Then MsgBox "B¹n ch­a nhËp gi¸ trÞ hîp ®ång" ElseIf IsNumeric(txtgiatribh.Text) = False Then MsgBox "Gi¸ trÞ hîp ®ång ph¶i nhËp lµ sè nguyªn d­¬ng" ElseIf Trim(cbohinhthuctt.Text) = "" Then MsgBox "B¹n ch­a chän h×nh thøc thanh to¸n" ElseIf Trim(cbohinhthucbt.Text) = "" Then MsgBox "B¹n ch­a nhËp h×nh thøc båi th­êng" ElseIf Trim(txtmacb.Text) = "" Then MsgBox "B¹n ch­a nhËp m· c¸n bé" Else flag = True End If CheckForm = flag End Function Private Sub SSTab1_DblClick() End Sub Private Sub txtgiatribh_LostFocus() If Trim(txtgiatribh.Text) "" And IsNumeric(GiaTriBH) Then txtConNo.Text = txtgiatribh.Text End If End Sub Form thu phí Public MaHD As String Dim temp As New ADODB.Recordset Private Sub cmdketthuc_Click() Unload Me End Sub Private Sub cmdLuu_Click() If CheckForm = True Then If Rs.State = 1 Then Rs.Close End If Rs.Open "Select SoBienLai from ThuPhi where SoBienLai='" & txtSobienlai.Text & "'" If Rs.RecordCount > 0 Then MsgBox "Sè biªn lai nµy ®· tån t¹i !", vbOKOnly, "Th«ng b¸o !" txtSobienlai.SetFocus Else Conn.BeginTrans Conn.Execute "Insert into ThuPhi values('" & txtSobienlai.Text & "','" & MaHD & "',#" & DTNgayThu.Value & "#,'" & cboCachthuc.Text & "'," & txtSotien.Text & ")" Conn.Execute "Update HopDong set ConNo=ConNo - " & txtSotien.Text & " where MaHopDong ='" & MaHD & "'" Conn.CommitTrans MsgBox "CËp nhËt thµnh c«ng !", vbOKOnly, "Th«ng b¸o !" txtSobienlai.Text = "" DTNgayThu.Value = Now cboCachthuc.ListIndex = 0 txtSotien.Text = "" End If If Rs.State = 1 Then Rs.Close End If End If End Sub Private Function CheckForm() As Boolean Dim flag As Boolean flag = False If Trim(txtSobienlai.Text) = "" Then MsgBox "B¹n ch­a nhËp sè biªn lai !", vbOKOnly, "Th«ng b¸o !" txtSobienlai.SetFocus ElseIf Trim(txtSotien.Text) = "" Then MsgBox "B¹n ch­a nhËp sè tiÒn !", vbOKOnly, "Th«ng b¸o !" txtSotien.SetFocus ElseIf Not IsNumeric(txtSotien.Text) Then MsgBox "B¹n cÇn nhËp sè tiÒn b»ng sè !", vbOKOnly, "Th«ng b¸o !" txtSotien.SetFocus Else flag = True End If CheckForm = flag End Function Private Sub Form_Load() LoadForm End Sub Private Sub LoadForm() cbohinhthuctt.AddItem "TiÒn mÆt", 0 cbohinhthuctt.AddItem "ChuyÓn kho¶n", 1 cbohinhthuctt.ListIndex = 0 cbohinhthucbt.AddItem "TiÒn mÆt", 0 cbohinhthucbt.AddItem "ChuyÓn kho¶n", 1 cbohinhthucbt.ListIndex = 0 cbodinhki.AddItem "Quý", 0 cbodinhki.AddItem "N¨m", 1 cbodinhki.ListIndex = 0 cboCachthuc.AddItem "TiÒn mÆt", 0 cboCachthuc.AddItem "ChuyÓn kho¶n", 1 cboCachthuc.ListIndex = 0 With lvwDieuKhoan .ColumnHeaders.Clear .ColumnHeaders.Add , , "Tªn ®iÒu kho¶n", .Width * 0.4 .ColumnHeaders.Add , , "Néi dung ®iÒu kho¶n", .Width * 0.6 .ColumnHeaders.Add , , "", 0 .ListItems.Clear End With With lvwPhieuGiaoViec .ColumnHeaders.Clear .ColumnHeaders.Add , , "Tªn c«ng viÖc", .Width * 0.4 .ColumnHeaders.Add , , "M« t¶", .Width * 0.6 .ColumnHeaders.Add , , "M· c¸n bé", .Width * 0.6 .ColumnHeaders.Add , , "Ngµy b¾t ®Çu", .Width * 0.6 .ColumnHeaders.Add , , "Ngµy kÕt thóc", .Width * 0.6 .ColumnHeaders.Add , , "", 0 .ListItems.Clear End With If Rs.State = 1 Then Rs.Close End If Rs.Open "Select * from HopDong where MaHopDong='" & MaHD & "'" If Rs.RecordCount > 0 Then txtmahopdong.Text = Rs(0) txtmakhachhang.Text = Rs(1) txtDaiDienKH.Text = Rs(2) txtgiatribh.Text = Rs(3) cbodinhki.Text = Rs(4) cbohinhthuctt.Text = Rs(5) cbohinhthucbt.Text = Rs(6) dtNgayPhatHanh.Value = Rs(7) dtNgayHieuLuc.Value = Rs(8) dtNgayDaoHan.Value = Rs(9) If Not IsNull(Rs(10)) Then lblHuy.Caption = "Hñy ngµy " & Day(Rs(10)) & "/" & Month(Rs(10)) & "/" & Year(Rs(10)) Else lblHuy.Caption = "" End If txtConNo.Text = Rs(11) txtmacb.Text = Rs(12) Dim ChiTiet As ListItem Dim i As Integer temp.Open "Select TenDieuKhoan,NoiDung,MaDieuKhoan from DieuKhoan where MaHopDong='" & MaHD & "'", Conn, adOpenStatic, adLockOptimistic If temp.RecordCount > 0 Then For i = 1 To temp.RecordCount Set ChiTiet = lvwDieuKhoan.ListItems.Add(, , temp(0)) ChiTiet.SubItems(1) = temp(1) ChiTiet.SubItems(2) = temp(2) With lvwDieuKhoan If .ListItems.Count > 0 Then Set .SelectedItem = .ListItems(1) End If End With Set ChiTiet = Nothing Next End If temp.Close temp.Open "Select TenCongViec,MoTa,MaCanBo,NgayBD,NgayKT,MaCongViec from CongViec where MaHopDong='" & MaHD & "'", Conn, adOpenStatic, adLockOptimistic If temp.RecordCount > 0 Then For i = 1 To temp.RecordCount Set ChiTiet = lvwPhieuGiaoViec.ListItems.Add(, , temp(0)) ChiTiet.SubItems(1) = temp(1) ChiTiet.SubItems(2) = temp(2) ChiTiet.SubItems(3) = temp(3) ChiTiet.SubItems(4) = temp(4) ChiTiet.SubItems(5) = temp(5) With lvwPhieuGiaoViec If .ListItems.Count > 0 Then Set .SelectedItem = .ListItems(1) End If End With Set ChiTiet = Nothing Next End If Else txtmahopdong.Text = "" txtmakhachhang.Text = "" txtDaiDienKH.Text = "" txtgiatribh.Text = "" cbodinhki = "" cbohinhthuctt = "" cbohinhthucbt = "" dtNgayPhatHanh.Value = DateTime.Now dtNgayHieuLuc.Value = DateTime.Now dtNgayDaoHan.Value = DateTime.Now txtConNo.Text = "" txtmacb.Text = "" End If If Rs.State = 1 Then Rs.Close End If End Sub Form hủy hợp đồng Public MaHD As String Dim temp As New ADODB.Recordset Private Sub cmdHuyHD_Click() If lblHuy.Caption = "" Then Conn.BeginTrans Conn.Execute "Update HopDong set NgayHuy=#" & dtpNgayHuy.Value & "# where MaHopDong='" & MaHD & "'" Conn.CommitTrans Unload Me Else MsgBox "Hîp ®ång nµy ®· hñy !", vbOKOnly, "Th«ng b¸o !" End If End Sub Private Sub CmdThoat_Click() Unload Me End Sub Private Sub Form_Load() LoadForm End Sub Private Sub LoadForm() dtpNgayHuy.Value = Now cbohinhthuctt.AddItem "TiÒn mÆt", 0 cbohinhthuctt.AddItem "ChuyÓn kho¶n", 1 cbohinhthuctt.ListIndex = 0 cbohinhthucbt.AddItem "TiÒn mÆt", 0 cbohinhthucbt.AddItem "ChuyÓn kho¶n", 1 cbohinhthucbt.ListIndex = 0 cbodinhki.AddItem "Quý", 0 cbodinhki.AddItem "N¨m", 1 cbodinhki.ListIndex = 0 With lvwDieuKhoan .ColumnHeaders.Clear .ColumnHeaders.Add , , "Tªn ®iÒu kho¶n", .Width * 0.4 .ColumnHeaders.Add , , "Néi dung ®iÒu kho¶n", .Width * 0.6 .ColumnHeaders.Add , , "", 0 .ListItems.Clear End With With lvwPhieuGiaoViec .ColumnHeaders.Clear .ColumnHeaders.Add , , "Tªn c«ng viÖc", .Width * 0.4 .ColumnHeaders.Add , , "M« t¶", .Width * 0.6 .ColumnHeaders.Add , , "M· c¸n bé", .Width * 0.6 .ColumnHeaders.Add , , "Ngµy b¾t ®Çu", .Width * 0.6 .ColumnHeaders.Add , , "Ngµy kÕt thóc", .Width * 0.6 .ColumnHeaders.Add , , "", 0 .ListItems.Clear End With If Rs.State = 1 Then Rs.Close End If Rs.Open "Select * from HopDong where MaHopDong='" & MaHD & "'" If Rs.RecordCount > 0 Then txtmahopdong.Text = Rs(0) txtmakhachhang.Text = Rs(1) txtDaiDienKH.Text = Rs(2) txtgiatribh.Text = Rs(3) cbodinhki.Text = Rs(4) cbohinhthuctt.Text = Rs(5) cbohinhthucbt.Text = Rs(6) dtNgayPhatHanh.Value = Rs(7) dtNgayHieuLuc.Value = Rs(8) dtNgayDaoHan.Value = Rs(9) If Not IsNull(Rs(10)) Then lblHuy.Caption = "Hñy ngµy " & Day(Rs(10)) & "/" & Month(Rs(10)) & "/" & Year(Rs(10)) Else lblHuy.Caption = "" End If txtConNo.Text = Rs(11) txtmacb.Text = Rs(12) Dim ChiTiet As ListItem Dim i As Integer temp.Open "Select TenDieuKhoan,NoiDung,MaDieuKhoan from DieuKhoan where MaHopDong='" & MaHD & "'", Conn, adOpenStatic, adLockOptimistic If temp.RecordCount > 0 Then For i = 1 To temp.RecordCount Set ChiTiet = lvwDieuKhoan.ListItems.Add(, , temp(0)) ChiTiet.SubItems(1) = temp(1) ChiTiet.SubItems(2) = temp(2) With lvwDieuKhoan If .ListItems.Count > 0 Then Set .SelectedItem = .ListItems(1) End If End With Set ChiTiet = Nothing Next End If temp.Close temp.Open "Select TenCongViec,MoTa,MaCanBo,NgayBD,NgayKT,MaCongViec from CongViec where MaHopDong='" & MaHD & "'", Conn, adOpenStatic, adLockOptimistic If temp.RecordCount > 0 Then For i = 1 To temp.RecordCount Set ChiTiet = lvwPhieuGiaoViec.ListItems.Add(, , temp(0)) ChiTiet.SubItems(1) = temp(1) ChiTiet.SubItems(2) = temp(2) ChiTiet.SubItems(3) = temp(3) ChiTiet.SubItems(4) = temp(4) ChiTiet.SubItems(5) = temp(5) With lvwPhieuGiaoViec If .ListItems.Count > 0 Then Set .SelectedItem = .ListItems(1) End If End With Set ChiTiet = Nothing Next End If Else txtmahopdong.Text = "" txtmakhachhang.Text = "" txtDaiDienKH.Text = "" txtgiatribh.Text = "" cbodinhki = "" cbohinhthuctt = "" cbohinhthucbt = "" dtNgayPhatHanh.Value = DateTime.Now dtNgayHieuLuc.Value = DateTime.Now dtNgayDaoHan.Value = DateTime.Now txtConNo.Text = "" txtmacb.Text = "" End If If Rs.State = 1 Then Rs.Close End If End Sub TÀI LIỆU THAM KHẢO Giáo trình Hệ thống thông tin quản lý TS. Trương Văn Tú, TS. Trần Thị Song Minh, khoa Tin học Kinh tế, đại học Kinh tế quốc dân, 2000. Giáo trình Cơ sở dữ liệu Thầy giáo Trần Công Uẩn, khoa Tin học Kinh tế, Đại học Kinh tế Quốc dân, NXB Thống Kê, 2005. Các bài giảng: Môn công nghệ phần mềm của PGS. TS. Hàn Viết Thuận. Môn Hệ thống thông tin quản lý của TS. Trương Văn Tú. Môn Lập trình ứng dụng trong quản lý của Ths. Trịnh Hoài Sơn. Các Ebook về phát triển hệ thống thông tin quản lý Các website www.caulacbovb.com, www.diendantinhoc.vn. MỤC LỤC Danh mục hình vẽ Hình 1. 1 Sơ đồ cơ cấu tổ chức của công ty 8 Hình 1. 2 Mô hình hệ thống thông tin 17 Hình 2. 1 Mô hình hệ thống thông tin 17 Hình 2. 2 Phân loại hệ thống thông tin theo lĩnh vực nghiệp vụ 20 Hình 2. 3 Các kí pháp sơ đồ luồng thông tin 28 Hình 2. 4 Các kí pháp dùng cho sơ đồ luồng dữ liệu 29 Hình 3. 1 Sơ đồ luồng ký kết, lập và thực hiện hợp đồng 39 Hình 3. 2 Sơ đồ luồng thông tin quá trình thanh toán, thanh lý hợp đồng 40 Hình 3. 3 Sơ đồ chức năng BFD 41 Hình 3. 4 Sơ đồ chức năng BFD 41 Hình 3. 5 Sơ đồ luồng dữ liệu mức 0 của hệ thống thông tin quản lý hợp đồng 43 Hình 3. 6 Sơ đồ luồng dữ liệu mức 1 của tiến trình 1.0: Lập hợp đồng 44 Hình 3. 7 Sơ đồ luồng dữ liệu mức 1 của tiến trình 2.0: Thực hiện hợp đồng 45 Hình 3. 8 Sơ đồ luồng dữ liệu mức 1 của tiến trình 3.0: Thanh toán, thanh lý hợp đồng 46 Hình 3. 9 Sơ đồ luồng dữ liệu mức 1 của tiến trình 4.0: Lập báo cáo 47 Hình 3. 10 Mô hình ERD của hệ thống thông tin quản lý hợp đồng 48 Hình 3. 11 Mô hình DSD của hệ thống thông tin quản lý hợp đồng 49 Hình 3. 12 Mối quan hệ giữa các bảng trong cơ sở dữ liệu 60 Hình 3. 13 Giải thuật đăng nhập hệ thống 61 Hình 3. 14 Giải thuật cập nhật hợp đồng 62 Hình 3. 15 Giải thuật tìm kiếm dữ liệu 63 Hình 3. 16 Giải thuật thanh toán công nợ 64 Hình 3. 17 Giải thuật tạo báo cáo 65 Hình 3. 18 Giao diện chính của chương trình 66 Hình 3. 19 Form Đăng nhập chương trình 67 Hình 3. 20 Form Đổi mật khẩu 68 Hình 3. 21 Form Cập nhật cán bộ công nhân viên 69 Hình 3. 22 Form Cập nhật danh sách khách hàng 70 Hình 3. 23 Form Cập nhật điều khoản hợp đồng 71 Hình 3. 24 Form Cập nhật hợp đồng 72 Hình 3. 25 Form Tìm kiếm hợp đồng 73 Hình 3. 26 Form Cập nhật thu phí hợp đồng 74 Hình 3. 27 Form Hủy hợp đồng 75 Hình 3. 28 Báo cáo danh sách hợp đồng đang thực hiện 76 Hình 3. 29 Báo cáo danh sách khách hàng 77 Hình 3. 30 Báo cáo danh sách hợp đồng đáo hạn 78

Các file đính kèm theo tài liệu này:

  • doc32214.doc