Luận văn Phân tích và thiết kế hệ thống thông tin quản lý bán hàng tại công ty Gạch ốp lát Hà Nội

Do đặc thù trong lĩnh vực sản xuất kinh doanh của công ty là sản xuất và kinh doanh các loại gạch men và gạch ốp lát, có nhiều loại hàng, nhóm hàng nên việc quản lý sản phẩm tại công ty có nhiều khó khăn. Qui trình sản xuất và kinh doanh của công ty cũng có những đặc thù riêng nên việc quản lý tiêu thụ sản phẩm của công ty được thực hiên hầu hết qua các kênh phân phối là các đại lý và các cửa hàng kinh doanh. Đề tài “phân tích và thiết kế hệ thống thông tin quản lý bán hàng tại công ty Gạch ốp lát Hà Nội” đã được khảo sát thực tế tại công ty Gạch ốp lát Hà Nội nên đã đáp ứng được các mục đích và các yêu cầu đề ra. Chương trình đã giải quyết tốt những yêu cầu đặt ra là quản lý được các khách hàng, các sản phẩm, qui trình xuất, nhập hàng hoá vật tư, quản lý công nợ khách hàng cũng như lập được các báo cáo quản trị cần thiết theo yêu cầu của người quản lý và nhà lãnh đạo. Trong chương trình quản lý bán hàng này ngoài việc cập nhật các chứng từ phiếu nhập hàng, phiếu thu tiền công nợ khách hàng, viết hoá đơn bán hàng cho khách hàng,. một cách nhanh chóng, thuận tiện , chương trình còn đưa ra một hệ thống các báo cáo quản trị thích hợp. Các báo cáo này đã đáp ứng được hầu hết các yêu cầu của nhà quản lý, người lãnh đạo giúp họ có được những cái nhìn tổng quan về tình hình bán hàng và hoạt động sản xuất kinh doanh của doanh nghiệp mình. Từ đó giúp họ có thể đưa ra những chính sách chiến lược, những điều chỉnh kịp thời về tình hình sản xuất kinh doanh và hoạt động bán hàng của công ty. Ngoài ra chương trình còn có chức năng ưu điểm nữa là các phiếu xuất và hoá đơn bán hàng có thể được xuất sang Microsoft Excel. Điều này giúp cho việc kiểm tra và tổng hợp số liệu một cách chính xác và đáp ứng các yêu cầu khi cần thiết.

doc138 trang | Chia sẻ: aloso | Lượt xem: 1910 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Phân tích và thiết kế hệ thống thông tin quản lý bán hàng tại công ty Gạch ốp lát Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
n trình “Xử lý bán hàng”(1.0): 1.1 Tiếp nhận đơn hàng 2.0 Xử lý thu tiền 1.3 Kiểm tra khách hàng 1.4 Kiểm tra hàng tồn 1.5 Giải quyết khách hàng 1.2 Kiểm tra đơn hàng Khách hàng Hồ sơ thẻ kho Danh mục khách hàng Đơn đặt hàng Từ chối Đơn hàng Thông tin phản hồi Thông tin về khách hàng Hoá đơn Đơn hàng đã kiểm tra 1.6 Xử lý yêu cầu Danh mục đơn đặt hàng Hoá đơn Đơn hàng đã kiểm tra Hình 26: Sơ đồ DFD phân rã mức 1 ứng với tiến trình “Xử lý bán hàng”(1.0) - Sơ đồ DFD phân rã mức 1 ứng với tiến trình “Xử lý thu tiền”(2.0) 2.1 Kiểm tra hoá đơn 2.2 Cập nhật vào sổ kế toán 4.0 Xử lý giao hàng (kho) 2.3 Chuyển hoá đơn bán hàng (phiếu xuất) sang bộ phận quản lý kho Khách hàng Hoá đơn Hoá đơn đã kiểm tra Phiếu thu Thanh toán Hoá đơn bán hàng Khách hàng Hàng hóa Hình 27: Sơ đồ DFD phân rã mức 1 ứng với tiến trình “Xử lý thu tiền”(2.0) - Sơ đồ luồng dữ liệu mức 0 của hoạt động nhập hàng: 2.0 Lập báo cáo về đơn đặt hàng Phiếu nhập kho 1.0 Đặt hàng 5.0 Lập báo cáo xuát nhập tồn kho 4.0 Kế toán phải trả 6.0 Lập báo cáo tổng hợp chi 3.0 Tiếp nhận hàng Bộ phận quản lý bán hàng Nhà cung cấp Lãnh đạo Lãnh đạo Sổ sách kế toán Hồ sơ thẻ kho Hồ sơ đơn hàng Yêu cầu nhập hàng Báo cáo đơn hàng Báo cáo tồn kho Đơn đặt hàng Báo cáo tổng hợp chi Phiếu giao hàng Hoá đơn bán hàng Phiếu chi Hình 28: Sơ đồ luồng dữ liệu mức 0 của hoạt động nhập hàng hàng”(1.0) - Sơ đồ DFD phân rã mức 1 ứng với tiến trình “Tiếp nhận hàng”(3.0) 3.1 Kiểm tra phiếu giao hàng 3.2 Kiểm tra hàng nhập 3.3 Xử lý nhập kho Nhà cung cấp Tệp phiếu nhập kho Hồ sơ đơn hàng Lãnh đạo Phiếu giao hàng đã kiểm tra Danh sách hàng đạt yêu cầu Phiếu nhập kho Phiếu giao hàng Phiếu nhập kho Hình 29: Sơ đồ DFD phân rã mức 1 ứng với tiến trình “Tiếp nhận hàng”(3.0) 2.4. Từ điển dữ liệu (DD) 2.4.1. Phích xử lý lô gic Phích Xử lý lô gíc hoạt động mua hàng: - Phích Xử lý lô gíc “Đặt hàng”: Tên xử lý: Đặt hàng Tiến trình: 1.3 Mô tả tiến trình: Sau khi bộ phận quản lý kho báo cáo tình hình hàng hóa thì bộ phận mua hàng sẽ xem xét để tiến hành thủ tục mua hàng. Luồng dữ liệu vào: Yêu cầu nhập hàng Luồng dữ liệu ra: Thông tin về đơn đặt hàng Kho dữ liệu: Hồ sơ đơn hàng - Phích xử lý lô gíc “Kiểm tra phiếu giao hàng”: Tên xử lý: Kiểm tra phiếu giao hàng Tiến trình: 3.1 Mô tả tiến trình: Khi đơn đặt hàng gửi đến nhà cung cấp được chấp nhận thì họ tiến hành thủ tục giao hàng cho bộ phận mua hàng của công ty. Luồng dữ liệu vào: Phiếu giao hàng từ nhà cung cấp Luồng dữ liệu ra: Danh sách hàng đạt yêu cầu Kho dữ liệu: Hồ sơ đơn hàng - Phích xử lý lôgíc “Xử lý nhập kho”: Tên xử lý: Xử lý nhập kho Tiến trình: 3.3 Mô tả tiến trình: Bộ phận quản lý kho viết phiếu nhận hàng, tìm vị trí trong kho để đặt hàng. Luồng dữ liệu vào: Danh sách hàng đạt yêu cầu Luồng dữ liệu ra: Phiếu nhập kho Kho dữ liệu: Tệp phiếu nhập kho Phích Xử lý lô gíc hoạt động bán hàng: - Phích xử lý lôgíc “Tiếp nhận đơn hàng”: Tên xử lý: Tiếp nhận đơn hàng Tiến trình: 1.1 Mô tả tiến trình: Bộ phận quản lý bán hàng tiếp nhận đơn đặt hàng của khách hàng Luồng dữ liệu vào: Đơn đặt hàng của khách hàng Luồng dữ liệu ra: Đơn đặt hàng của khách hàng đã được chấp nhận - Phích xử lý lôgíc “Kiểm tra đơn đặt hàng”: Tên xử lý: Kiểm tra đơn đặt hàng Tiến trình: 1.2 Mô tả tiến trình: Sau khi đã tiếp nhận đơn đặt hàng của khách hàng, bộ phận bán hàng sẽ kiểm tra đơn đặt hàng, nếu chấp nhận thì tiếp tục xử lý, nếu không thì trả lời khách hàng. Luồng dữ liệu vào: Đơn đặt hàng của khách hàng đã tiếp nhận Luồng dữ liệu ra: Đơn đặt hàng của khách hàng đã kiểm tra Kho dữ liệu: Danh mục đơn đặt hàng - Phích xử lý lôgíc “Kiểm tra hàng tồn”: Tên xử lý: Kiểm tra hàng tồn Tiến trình: 1.4 Mô tả tiến trình: Sau khi đã kiểm tra đơn đặt hàng thì tiến hành kiểm tra hàng hóa để đáp ứng yêu cầu của khách hàng. Luồng dữ liệu vào: Đơn hàng đã kiểm tra Luồng dữ liệu ra: Hóa đơn bán hàng Kho dữ liệu: Hồ sơ thẻ kho - Phích xử lý lôgíc “Xử lý thu tiền”: Tên xử lý: Xử lý thu tiền Tiến trình: 2.0 Mô tả tiến trình: Sau khi đáp ứng yêu cầu của khách hàng thì bộ phận quản lý bán hàng sẽ tiến hành xử lý thu tiền, nếu là khách hàng quen nợ thì sẽ ghi vào sổ công nợ khách hàng phải thu, nếu khách hàng trả ngay thì viết hóa đơn thanh toán. Luồng dữ liệu vào: Hóa đơn bán hàng Luồng dữ liệu ra: Phiếu xuất kho Kho dữ liệu: Sổ ghi công nợ khách hàng 2.4.2. Phích luồng dữ liệu - Phích luồng dữ liệu xuất bán hàng hóa: Tên luồng dữ liệu: Hóa đơn bán hàng Mô tả: Số HĐ + Mã KH + Ngày bán + Diễn giải + {ds hàng hóa}= Mã hàng + Số lượng yêu cầu + Số lượng đáp ứng Vị trí luồng dữ liệu: Phân rã mức 1 tiến trình “ Bán hàng” - Phích luồng dữ liệu xử lý thu tiền: Tên luồng dữ liệu: Hóa đơn thanh toán Mô tả: Số PT + Mã KH + Ngày thu + Nội dung + {Chi tiết phiếu thu}= Số HĐ + Số tiền phải thu + Số tiền đã thu + + Số tiền còn phải thu Vị trí luồng dữ liệu: Phân rã mức 1 tiến trình “Xử lý thu tiền” - Phích luồng dữ liệu đặt mua hàng: Tên luồng dữ liệu: Đơn đặt mua hàng Mô tả: Số HĐ + Mã NCC + Ngày đặt + Nội dung + {ds hàng đặt}= Mã hàng + Số lượng yêu cầu + Số lượng nhận được Vị trí luồng dữ liệu: DFD mức 0 hoạt động mua hàng 2.4.3. Phích kho dữ liệu - Phích kho dữ liệu phiếu nhập kho: Tên kho dữ liệu: Tệp phiếu nhập kho Mô tả: Phiếu nhập kho chứa các thông tin về hàng hóa được nhập vào kho trong một lần mua Thông số: PNK = Số PN + Mã NCC + Ngày nhập + Kho + Nội dung + {ds hàng nhập}= Mã hàng + Đơnvị tính + Số lượng + Đơn giá Vị trí kho: phân rã mức 1 tiến trình “Tiếp nhận hàng” - Phích kho dữ liệu phiếu xuất kho: Tên kho dữ liệu: Hồ sơ đơn hàng Mô tả: Phiếu xuất kho chứa các thông tin về hàng hóa được xuất bán cho khách hàng theo hóa đơn bán hàng Thông số: PXK = Số PX + Mã KH + Ngày xuất + Nội dung + Mã kho + {ds hàng xuất}= Mã hàng + Đơn vị tính + Số lượng + Đơn giá Vị trí luồng dữ liệu: DFD mức 0 hoạt động bán hàng - Phích kho dữ liệu xử lý thu tiền: Tên kho dữ liệu: Sổ sách kế toán Mô tả: Sổ sách kế toán chứa các thông tin về việc quản lý công nợ khách hàng theo hóa đơn thanh toán Thông số: PT = Số PT + Mã KH + Ngày thu + Nội dung + {Chi tiết PT}= Số HĐ+ Đơn vị tính + Số lượng + Đơn giá Vị trí luồng dữ liệu: Phân rã mức 1 tiến trình “Xử lý thu tiền” 2.5. Sơ đồ phân rã chức năng chương trình dự kiến sẽ thực hiện QUẢN LÝ HÀNG HOÁ Quản lý danh mục Thống kê và báo cáo Quản lý hoá đơn Trợ giúp Hệ thống Tìm kiếm III. THIẾT KẾ CHƯƠNG TRÌNH 1. Thiết kế cơ sở dữ liệu 1.1. Thiết kế cơ sở dữ liệu logic đi từ các thông tin đầu ra 1.1.1. Các bước chi tiết khi thiết kế cơ sở dữ liệu từ các thông tin ra: Bước 1: Xác định các đầu ra Liệt kê toàn bộ các thông tin đầu ra. Nội dung, khối lượng, tần suất và nơi nhận của chúng. Bước 2: Xác định các tệp cần thiết cung cấp đủ dữ liệu cho việc tạo ra từng đầu ra. Liệt kê các phần tử thông tin trên đầu ra: Liệt kê các thuộc tính. Đánh dấu các thuộc tính lặp ( ký hiệu- R ) - là những thuộc tính có thể nhận nhiều giá trị dữ liệu. Đánh dấu các thuộc tính thứ sinh ( ký hiệu – S ) - là những thuộc tính được tính toán hoặc suy ra từ các thuộc tính khác. Gạch chân các thuộc tính khoá cho các thông tin đầu ra. Loại bỏ những thuộc tính thứ sinh khỏi danh sách, chỉ để lại các thuộc tính cơ sở. Sau khi liệt kê các phần tử thông tin đầu ra sẽ tiến hành thực hiện việc chuẩn hoá mức 1 ( 1.NF ), mức 2 ( 2.NF ) và mức 3 ( 3.NF ). Các qui tắc chuẩn hoá dữ liệu đã được trình bày trong chương II (xem phần IV, mục 1.3). Bước 3: Tích hợp các tệp để chỉ tạo ra một cơ sở dữ liệu Bước 4: Xác định khối lượng dữ liệu cho từng tệp và toàn bộ sơ đồ Bước 5: Xác định liên hệ lôgic giữa các tệp và thiết lập sơ đồ cấu trúc dữ liệu 1.1.2. Thiết kế cơ sở dữ liệu Liệt kê các phần tử thông tin trên đầu ra: Từ đầu ra “Hoá đơn bán hàng” ta lập được danh sách các thuộc tính: Số hoá đơn Diễn giải Mã khách hàng Tên khách hàng Số tài khoản Địa chỉ Điện thoại Phương thức thanh toán Số thứ tự (R) Mã hàng (R) Tên hàng (R) Nơi sản xuất (R) Ngày sản xuất (R) Đơn vị tính (R) Đơn giá (R) Số lượng (R) Thành tiền ((S), (R)) Cộng thành tiền (S) Thuế VAT (S) Tổng số tiền (S) Tổng số tiền ghi bằng chữ (S) Ngày lập hoá đơn Người lập hóa đơn Từ đầu ra “Phiếu nhập kho” ta lập được danh sách các thuộc tính: Số xê-ri Số phiếu nhập Ngày nhập Nhà cung cấp Người giao hàng Địa chỉ Nội dung Mã kho Mã hàng (R) Tên hàng (R) Đơn vị tính (R) Số lượng (R) Đơn giá (R) Thành tiền ((S), (R)) Tổng cộng (S) Thủ kho Kế toán trưởng Thủ trưởng đơn vị Từ đầu ra “Hoá đơn thanh toán” (Phiếu thu tiền) ta lập được danh sách các thuộc tính: Số xê-ri Số phiếu thu Ngày Khách hàng Địa chỉ Nội dung Số hoá đơn Số tiền Tổng tiền (S) Chú thích: (R): ký hiệu các thuộc tính lặp. (S): ký hiệu các thuộc tính thứ sinh. Các thuộc tính gạch chân là các thuộc tính khoá. Thực hiện việc chuẩn hoá dữ liệu Danh sách thuộc tính Chuẩn hoá 1.NF Chuẩn hoá 2.NF Chuẩn hoá 3.NF Số hoá đơn Diễn giải Mã khách hàng Tên khách hàng Số tài khoản Địa chỉ Điện thoại Phương thức thanh toán Số thứ tự (R) Mã hàng (R) Tên hàng (R) Nơi sản xuất (R) Ngày sản xuất (R) Đơn vị tính (R) Đơn giá (R) Số lượng (R) Thành tiền ((S), (R)) Cộng thành tiền (S) Thuế VAT (S) Tổng số tiền (S) Ngày lập hoá đơn Người lập hóa đơn Số xê-ri Số phiếu nhập Ngày nhập Nhà cung cấp Người giao hàng Địa chỉ Nội dung Mã kho Mã hàng (R) Tên hàng (R) Đơn vị tính (R) Số lượng (R) Đơn giá (R) Thành tiền ((S), (R)) Tổng cộng (S) Thủ kho Kế toán trưởng Thủ trưởng đơn vị Số xê-ri Số phiếu thu Ngày Khách hàng Địa chỉ Nội dung Số hoá đơn Số tiền Tổng tiền (S) Hoá đơn bán hàng Số hoá đơn Diễn giải Mã khách hàng Tên khách hàng Số tài khoản Địa chỉ Điện thoại Phương thức thanh toán Ngày lập hoá đơn Người lập hóa đơn Chi tiết hoá đơn bán hàng Số hoá đơn Mã hàng Tên hàng Nơi sản xuất Ngày sản xuất Đơn vị tính Đơn giá Số lượng Phiếu nhập Số phiếu nhập Ngày nhập Nhà cung cấp Người giao hàng Địa chỉ Nội dung Thủ kho Chi tiết phiếu nhập Số phiếu nhập Mã hàng Tên hàng Đơn vị tính Số lượng Đơn giá Phiếu thu Số phiếu thu Số xê-ri Ngày Khách hàng Địa chỉ Nội dung Số hoá đơn Số tiền Hoá đơn bán hàng Số hoá đơn Diễn giải Mã khách hàng Tên khách hàng Số tài khoản Địa chỉ Điện thoại Phương thức thanh toán Ngày lập hoá đơn Người lập hóa đơn Chi tiết hoá đơn bán hàng Số hoá đơn Mã hàng Số lượng Đơn giá Hàng hoá Mã hàng Tên hàng Nơi sản xuất Ngày sản xuất Đơn vị tính Đơn giá Phiếu nhập Số phiếu nhập Ngày nhập Nhà cung cấp Người giao hàng Địa chỉ Nội dung Thủ kho Chi tiết phiếu nhập Số phiếu nhập Mã hàng Số lượng Đơn giá Hàng hoá Mã hàng Tên hàng Đơn vị tính Mã kho Phiếu thu Số phiếu thu Số xê-ri Ngày Khách hàng Địa chỉ Nội dung Số tiền Hoá đơn bán hàng Số hoá đơn Mã khách hàng Diễn giải Phương thức thanh toán Ngày lập hoá đơn Người lập hóa đơn Khách hàng Mã khách hàng Tên khách hàng Số tài khoản Địa chỉ Điện thoại Chi tiết hoá đơn bán hàng Số hoá đơn Mã hàng Số lượng Đơn giá Hàng hoá Mã hàng Tên hàng Nơi sản xuất Ngày sản xuất Đơn vị tính Nhà cung cấp Mã ncc Tên ncc đại diện Địa chỉ Điện thoại Phiếu nhập Số phiếu nhập Mã ncc Ngày nhập Nội dung Chi tiết phiếu nhập Số phiếu nhập Mã hàng Số lượng Đơn giá Hàng hoá Mã hàng Tên hàng Đơn vị tính Mã kho Kho Mã kho Tên kho Thủ kho Khách hàng Mã kh Tên kh Địa chỉ Nợ đầu kỳ Phiếu thu Mã kh Số phiếu thu Số xê-ri Ngày Nội dung Số tiền Tích hợp các tệp để chỉ tạo ra một cơ sở dữ liệu Sau khi tiến hành chuẩn hoá dữ liệu ta thấy có 2 tệp “Khách hàng”: Khách hàng (từ đầu ra “Hoá đơn bán hàng”) Mã khách hàng Tên khách hàng Số tài khoản Địa chỉ Điện thoại Khách hàng (từ đầu ra “Hoá đơn thanh toán”) Mã kh Tên kh Địa chỉ - Nợ đầu kỳ Để được một tệp cơ sở dữ liệu đầy đủ, cần tích hợp 2 tệp trên với nhau thành một tệp duy nhất sau: Khách hàng Mã khách hàng Tên khách hàng Số tài khoản Địa chỉ Điện thoại - Nợ đầu kỳ Tương tự, từ 2 tệp “Hàng hoá” trên ta tích hợp thành 1 tệp duy nhất sau: Hàng hoá Mã hàng Tên hàng Nơi sản xuất Ngày sản xuất Đơn vị tính Mã kho 1.2. Các bảng và mối quan hệ giữa các bảng trong cơ sở dữ liệu 1.2.1. Cấu trúc các bảng trong cơ sở dữ liệu Khách hàng (dmkh) Tên trường Kiểu dữ kiệu Độ rộng Mô tả MaKH Character 6 Mã khách hàng TenKH Character 30 Tên khách hàng SoTK Character 15 Số tài khoản MaThue Character 15 Mã số thuế Diachi Character 60 Địa chỉ DienThoai Character 10 Điện thoại NoDauKy Numeric 10 Nợ đầu kỳ Hóa đơn bán hàng (hoadon) Tên trường Kiểu dữ kiệu Độ rộng Mô tả MaKH Character 6 Mã khách hàng SOHD Character 6 Số hoá đơn DienGiai Memo 50 Diễn giải ThanhToan Character 30 Phương thức thanh toán NgayHD Date 8 Ngày lập hoá đơn NguoiLapHD Character 30 Người lập hoá đơn Chi tiết hoá đơn bán hàng (cthoadon) Tên trường Kiểu dữ kiệu Độ rộng Mô tả Mahang Character 6 Mã hàng SoHD Character 6 Số hoá đơn Soluong Numeric 10 Số lượng Dongia Numeric 10 Đơn giá bán Nhóm hàng (nhomhang) Tên trường Kiểu dữ kiệu Độ rộng Mô tả Manhom Character 6 Mã nhóm Tennhom Character 30 Tên nhóm Hàng hóa (dmhang) Tên trường Kiểu dữ kiệu Độ rộng Mô tả Mahang Character 6 Mã hàng TenHang Character 30 Tên hàng NoiSX Character 40 Nơi sản xuất NgaySX Date 8 Ngày sản xuất KichThuoc Character 10 Kích thước DVTinh Character 10 Đơn vị tính Nhà cung cấp (dmncc) Tên trường Kiểu dữ kiệu Độ rộng Mô tả MaNCC Character 6 Mã nhà cung cấp TenNCC Character 30 Tên nhà cung cấp Diachi Character 60 Địa chỉ DienThoai Character 10 Điện thoại Phiếu nhập (phieunhap) Tên trường Kiểu dữ kiệu Độ rộng Mô tả Mancc Character 6 Mã nhà cung cấp Sopn Character 6 Số phiếu nhập DienGiai Memo 50 Diễn giải Ngaynhap Date 8 Ngày nhập Chi tiết phiếu nhập (ctphieunhap) Tên trường Kiểu dữ kiệu Độ rộng Mô tả Mahang Character 6 Mã hàng Sopn Character 6 Số hoá đơn Soluong Numeric 10 Số lượng Dongia Numeric 10 Đơn giá nhập Makho Character 6 Kho Kho (dmkho) Tên trường Kiểu dữ kiệu Độ rộng Mô tả Makho Character 6 Mã kho Tenkho Character 30 Tên kho Thủ kho Character 25 Thủ kho Tồn kho (tonkho) Tên trường Kiểu dữ kiệu Độ rộng Mô tả Makho Character 6 Mã kho Mahang Character 6 Mã hàng Sltondk Numeric 10 Số lượng đầu kỳ Phiếu thu tiền (phieuthu) Tên trường Kiểu dữ kiệu Độ rộng Mô tả MaKH Character 6 Mã khách hàng Sopt Character 6 Số phiếu thu Ngaythu Date 8 Ngày thu Nội dung Character 30 Nội dung thu Sotien Numeric 10 Số tiền 1.2.2. Mối quan hệ giữa các bảng trong cơ sở dữ liệu 2. Thiết kế giải thuật Trong các bước mô tả và phân tích công việc ở trên, giúp chúng ta hình dung các công việc xử lý khi xây dựng các chức năng của chương trình. Tuy nhiên để thuận lợi cho các công việc thiết kế các bước xử lý cũng như viết các module, chúng ta nên xây dựng giải thuật xử lý các công việc chính, phức tạp để thuận lợi cho việc thực hiện chương trình. Chúng ta có thể mô tả xử lý bằng lưu đồ giải thuật vì lưu đồ mang tính trực quan và dễ kiểm tra giải thuật sai. Dưới đây mô tả các lưu đồ giải thuật chính của chương trình. Các ký hiệu thường dùng trong thiết kế giải thuật Ký hiệu xử lý Ký hiệu điều kiện Ký hiệu nhập/ Xuất thông tin 2.1. Thuật toán cập nhật phiếu nhập kho Mở Form Phiếu nhập kho Chọn thông tin về nhà cung cấp Thi hành đoạn chương trình tự động tăng số phiếu Chọn thông tin về hàng hóa Lưu các thông tin vừa nhập Cập nhật thông tin về nhà cung cấp Cập nhật thông tin về hàng hóa B E Tiếp tục? Đóng form Phiếu nhập kho Yes Yes Yes No No No Có thông tin về nhà cung cấp? Có thông tin về hàng hoá? Yes Yes No 2.2. Thuật toán tìm và sửa bản ghi Dò tìm trong tệp CSDL Chuẩn bị môi trường, mở tệp CSDL, sắp xếp theo khóa hay đặt lọc Gán các giá trị ban đầu cho các biến Nhập các thông tin cần tìm kiếm Thông báo không tìm thấy B E Tiếp tục? Yes Yes No No Hiển thị nội dung cần sửa đổi Có tìm thấy không? Có sửa đổi không? Đặt lại cấu hình, đóng tệp CSDL Sửa bản ghi Yes No 2.3. Thuật toán tìm và sửa Hóa đơn bán hàng B Mở form Tìm kiém hóa đơn bán hàng Nhập mã số hóa đơn cần tìm để sửa Tìm kiếm trong CSDL Đưa ra thông báo Có tìm thấy không? No Yes Xuất hiện form Hóa đơn bán hàng chứa các thông tin vừa nhập để tiến hành sửa Lưu các thông tin vừa sửa Yes Tiếp tục? No Đóng form Tìm kiếm E 2.4. Thuật toán lập báo cáo Yes Chọn loại báo cáo Tìm và lọc theo yêu cầu Báo cáo Thông báo B E Tiếp tục? Đóng form Phiếu nhập kho Yes Yes No No No Nhập khoảng thời gian lập báo cáo Kiểm tra đúng? Tim thấy? 3. Thiết kế giao diện xử lý Thiết kế giao diện xử lý là xác định hệ thống thông tin trình bày thông tin như thế nào cho người sử dụng khi nhập dữ liệu vào hệ thống hoặc đưa kết quả ra. 3.1. Thiết kế vào Mục đích của thiết kế vào là thiết kế các thủ tục nhập dữ liệu có hiệu quả và giảm thiểu các sai sót. Một số nguyên tắc hữu ích cho việc thiết kế màn hình nhập liệu: Khi nhập dữ liệu từ một tài liệu gốc, khuôn dạng màn hình phải giống như tài liệu gốc. Nên nhóm các trường trên màn hình theo một trật tự có ý nghĩa, theo trật tự tự nhiên, theo tần số sử dụng, theo chức năng hoặc theo tầm quan trọng. Không nhập các thông tin mà hệ thống thông tin có thể tìm được từ cơ sở dữ liệu hoặc tính toán được. Đặt tên trường ở trên hoặc trước trường nhập. Đặt các giá trị ngầm định cho phù hợp. Sử dụng phím Tab để chuyển trường nhập. Dựa theo các nguyên tắc trên ta tiến hành việc thiết kế màn hình nhập liệu của chương trình. Một số màn hình nhập liệu chính như sau: 3.2. Thiết kế ra Một số nguyên tắc cơ bản cho việc trình bày thông tin ra màn hình: Đặt mọi thông tin gắn liền với một nhiệm vụ trên cùng một màn hình. Người sử dụng không phải nhớ thông tin từ màn hình này sang màn hình khác. Chỉ dẫn rõ ràng cách thoát khỏi màn hình. Đặt giữa các tiêu đề và xếp đặt thông tin theo trục trung tâm. Nếu đầu ra gồm nhiều trang màn hình thì mỗi trang phải được đánh số thứ tự. Việc này giúp người sử dụng biết mình đang ở đâu. Viết văn bản theo quy ước chung bằng cách sử dụng chữ in hoa, in thường, chữ gạch chân… và ngắt câu hợp lý. Đặt tên đầu cột cho mỗi cột. Tổ chức các phần tử của danh sách theo trật tự quen thuộc trong quản lý. Cân trái các cột văn bản và cân phải các cột số. Đảm bảo vị trí dấu thập phân thẳng hàng. Chỉ đặt màu cho những thông tin quan trọng. Dựa trên những nguyên tắc này tiến hành thiết kế các báo biểu là các dạng chứa thông tin ra tiêu biểu: Hóa đơn thanh toán: Hóa đơn thanh toán dưới dạng phiếu thu dùng để thanh toán công nợ khách hàng có mẫu sau: Cty gạch ốp lát Hà Nội Số:…………… PHIẾU THU Ngày…tháng…năm……. Khách hàng:…………………………………………………………………….. Địa chỉ:………………………………………………………………………….. Lý do thu:……………………………………………………………………….. Số tiền:………………………………………………………………………….. Ghi bằng chữ:…………………………………………………………………… Khách hàng Kế toán trưởng Thủ trưởng đơn vị Mẫu báo cáo tổng hợp hàng hóa: BÁO CÁO TỔNG HỢP HÀNG HÓA Kho:……………. Từ ngày………….Đến ngày………. Mã hàng Tên hàng Tồn đầu kỳ Nhập trong kỳ Xuất trong kỳ Tồn cuối kỳ SL TG SL TG SL TG SL TG Ngày….tháng…năm….. Người lập biểu Mẫu báo cáo công nợ chi tiết: BÁO CÁO CÔNG NỢ CHI TIẾT Từ ngày………..Đến ngày………… Khách hàng:……………………………………………………………………… Ngày Số CT Nợ ĐK Nợ trong kỳ Trả trong kỳ Nợ CK Ngày….tháng…..năm…….. Người lập biểu 4. Kết quả thử nghiệm chương trình Qua quá trình thử nghiệm, chương trình đã đạt được những kết quả quan trọng sau: 4.1. Quản lý được các danh mục Danh mục hàng hóa Danh mục nhóm hàng Danh mục nhà cung cấp Danh mục khách hàng Danh mục kho Nhân viên bán hàng 4.2. Quản lý hóa đơn Cập nhật phiếu nhập hàng Lập hóa đơn bán hàng Lập hóa đơn thanh toán 4.3. Tìm kiếm Tìm kiếm hàng hóa Tìm kiếm khách hàng Tìm kiếm nhà cung cấp Tìm kiếm phiếu nhập hàng Tìm kiếm hóa đơn bán hàng 4.4. Thống kê và báo cáo Thống kê danh mục Thống kê hàng nhập Thống kê tình hình bán hàng Tổng hợp hàng bán Báo cáo xuất nhập tồn Bảng kê hóa đơn bán hàng Tổng hợp doanh số bán hàng Báo cáo công nợ khách hàng 4.5. Sơ đồ phân rã chức năng của chương trình đã đạt được Thống kê tình hình bán hàng QUẢN LÝ BÁN HÀNG Quản lý danh mục Thống kê và báo cáo Quản lý hoá đơn Tìm kiếm Đăng ký người dùng Khách hàng Nhà cung cấp Hàng hóa Báo cáo công nợ khách hàng Doanh số bán hàng Bảng kê hóa đơn bán hàng Báo cáo xuất nhập tồn Tổng hợp hàng bán Thống kê hàng nhập Thống kê danh mục Hóa đơn thanh toán Hóa đơn bán hàng Phiếu nhập Khách hàng Hàng hóa Hóa đơn thanh toán Hóa đơn bán hàng Cập nhật hang tồn Phiếu nhập Kho Nhân viên Kết thúc Bảng kê phiếu nhập Bảng kê phiếu thu Hệ thống Trợ giúp Hướng dẫn sử dụng Giới thiệu chương trình 5. Một số giao diện màn hình chính 5.1. Màn hình giao diện chính của chương trình 5.2. Form Giới thiệu 5.3. Form danh mục khách hàng: Form danh mục khách hàng chứa các Textbox giúp người sử dụng có thể nhập các thông tin về khách hàng theo các tên trường ở bên phải. Việc nhập liệu được tiện hành dễ dàng nhanh chóng vì có thể thao tác chỉ cần bằng bàn phím, dùng phím Tab để chuyển trường nhập. Các nút chức năng: Nút Thêm: Khi người sử dụng nhấn nút này thì màn hình cho phép nhập thêm các thông tin về khách hàng mới, sau khi thêm có thể tiến hành Lưu các thông tin vừa nhập hoặc Hủy bỏ chúng. Nút Sửa: Khi muốn sửa các thông tin về một khách hàng nào đó thì nhấn nút Sửa, sau khi sửa có thể tiến hành Lưu các thông tin vừa sửa hoặc hủy bỏ các thông tin đó. Nút Xóa: nút này cho phép xóa các thông tin hiện thời về khách hàng đang hiện trên màn hình. Nút Tìm: người sử dụng có thể tìm kiếm các thông tin về hàng hóa nào đó khi nhấn nút này. Nút Xem: Cho phép xem thông tin về tất cả các khách hàng hiện có. Nút Thoát: cho phép người sử dụng thoát khỏi màn hình nhập liệu này. Ngoài ra còn có các nút dịch chuyển bản ghi để dịch chuyển các bản ghi trong cơ sở dữ liệu. 5.4. Form Hoá đơn bán hàng: Trên hoá đơn bán hàng các thông tin được thực hiện hầu như tự động, người sử dụng chỉ cần tiến hành giao tác vì các thông tin đã có sẵn trong cơ sở dữ liệu và chỉ việc nhập số lượng, đơn giá của mỗi loại hàng hóa bán (nếu không biết đơn giá bán là bao nhiêu thì có thể xem trong danh mục giá bán với đơn giá của ngày bán gần đây nhất). Số phiếu tự động tăng lên sau mỗi lần xuất bán. Ngày lập hoá đơn bán hàng mặc định là ngày hiện thời. Người mua hàng được lấy từ Danh mục khách hàng, các thông tin về Mã Khách hàng, Tên Khách hàng, Địa chỉ được tự động cập nhật vào Hóa đơn bán hàng. Mã hàng lấy trong danh mục vật tư hàng hóa: các thông tin liên quan như Tên hàng, Đơn vị tính được tự động cập nhật vào Hóa đơn bán hàng. Mã kho được lấy trong danh mục kho hàng. Trên mỗi phiếu có thể nhập được nhiều mặt hàng ở nhiều kho khác nhau. Sau mỗi lần nhập một mặt hàng trên phiếu phải thể hiện được trị giá của mặt hàng đó ở cột Thành tiền bằng cách lấy số lượng x đơn giá của mặt hàng đó. Nút mới: bắt đầu thực hiện việc nhập mới một Hóa đơn bán hàng. Nút Lưu: Thực hiện việc lưu phiếu. Nút Sửa: Để sửa lại chứng từ cũ. Nút Xóa: Để xóa chứng từ hiện thời. Nút Tìm: Để tìm bất cứ chứng từ nào thỏa mãn điều kiện lọc. Nút Thoát: Thoát khỏi màn hình nhập thông tin Hóa đơn bán hàng. 5.5. Form phiếu thu: 5.6. Form Tìm kiếm hàng hóa: 5.7. Form tìm kiếm hàng nhập: 5.8. Form gọi Báo cáo hóa đơn bán hàng: - Bảng kê hóa đơn bán hàng: - Bảng kê hóa đơn bán hàng đã xuất sang Excel: 5.9. Phiếu thu tiền bán hàng: 5.10. Form gọi báo cáo xuất nhập tồn: - Báo cáo xuất nhập tồn: Báo cáo Tổng hợp hàng bán: 5.12. Form gọi các báo cáo về tình hình bán hàng: - Báo cáo khách hàng mua hàng nhiều nhất 6. Cài đặt và bảo trì hệ thống 3.1. Cài đặt hệ thống Sử dụng các biện pháp cài đặt thông thường là: - Cài đặt trực tiếp. - Cài đặt song song. - Cài đặt thí điểm. - Cài đặt chuyển đổi theo giai đoạn. Đào tạo hỗ trợ người sử dụng. - Đào tạo người sử dụng hệ thống thông tin. - Hỗ trợ người sử dụng hệ thống thông tin. 3.2. Bảo trì hệ thống Đây là giai đoạn chiếm chi phí lớn nhất trong chu kỳ sống của một hệ thống. Các kiểu bảo trì: - Bảo trì hiệu chỉnh: Giải quyết lỗi thiết kế và lỗi lập trình còn tiềm ẩn trong hệ thống sau khi cài đặt. - Bảo trì thích nghi: Sửa đổi hệ thống để phù hợp với các thay đổi của môi trường. - Bảo trì hoàn thiện: Cải tiến hệ thống theo nhu cầu mới. - Bảo trì phòng ngừa: Phòng ngừa các thay đổi trong tương lai. Quản trị bảo trì hệ thống: - Quản trị nhân sự trong hệ thống. - Đo lường hiệu quả bảo trì hệ thống (Số lượng lỗi, khoảng thời gian giữa các lỗi, kiểu lỗi). - Kiểm soát các yêu cầu bảo trì. Thiết kế công việc, kế hoạch dự án Yêu cầubảo trì, hệ thống hiện thời Hệ thống hiện thời, đặc tả về yêu cầu thay đổi Hệ thống mới, tài liệu, đào tạo và hỗ trợ Thứ hạng ưu tiên, đặc tả về yêu cầu bảo trì phân công nhân sự 1.0 Quản trị các yêu cầu bảo trì 4.0 Triển khai các thay đổi 3.0 Thiết kế các thay đổi 2.0 Chuyển đổi các yêu cầu Hồ sơ dự án Tài liệu về hệ thống hiện tại, các yêu cầu BT Các đặc tả về yêu cầu Yêu cầu thay đổi Các bước của quá trình bảo trì hệ thống 6.3. Đánh giá sau cài đặt - Đánh giá dự án xem có đúng thời gian, tiến độ không. - Đánh giá hệ thống: xem xét hệ thống có đạt mục tiêu đề ra không (Đánh giá sau một thời gian hoạt động). - Báo cáo tổng kết dự án. - Dự án hoàn thành đúng kế hoạch, đáp ứng nhu cầu kế hoạch. KẾT LUẬN Do đặc thù trong lĩnh vực sản xuất kinh doanh của công ty là sản xuất và kinh doanh các loại gạch men và gạch ốp lát, có nhiều loại hàng, nhóm hàng nên việc quản lý sản phẩm tại công ty có nhiều khó khăn. Qui trình sản xuất và kinh doanh của công ty cũng có những đặc thù riêng nên việc quản lý tiêu thụ sản phẩm của công ty được thực hiên hầu hết qua các kênh phân phối là các đại lý và các cửa hàng kinh doanh. Đề tài “phân tích và thiết kế hệ thống thông tin quản lý bán hàng tại công ty Gạch ốp lát Hà Nội” đã được khảo sát thực tế tại công ty Gạch ốp lát Hà Nội nên đã đáp ứng được các mục đích và các yêu cầu đề ra. Chương trình đã giải quyết tốt những yêu cầu đặt ra là quản lý được các khách hàng, các sản phẩm, qui trình xuất, nhập hàng hoá vật tư, quản lý công nợ khách hàng…cũng như lập được các báo cáo quản trị cần thiết theo yêu cầu của người quản lý và nhà lãnh đạo. Trong chương trình quản lý bán hàng này ngoài việc cập nhật các chứng từ phiếu nhập hàng, phiếu thu tiền công nợ khách hàng, viết hoá đơn bán hàng cho khách hàng,... một cách nhanh chóng, thuận tiện , chương trình còn đưa ra một hệ thống các báo cáo quản trị thích hợp. Các báo cáo này đã đáp ứng được hầu hết các yêu cầu của nhà quản lý, người lãnh đạo giúp họ có được những cái nhìn tổng quan về tình hình bán hàng và hoạt động sản xuất kinh doanh của doanh nghiệp mình. Từ đó giúp họ có thể đưa ra những chính sách chiến lược, những điều chỉnh kịp thời về tình hình sản xuất kinh doanh và hoạt động bán hàng của công ty. Ngoài ra chương trình còn có chức năng ưu điểm nữa là các phiếu xuất và hoá đơn bán hàng có thể được xuất sang Microsoft Excel. Điều này giúp cho việc kiểm tra và tổng hợp số liệu một cách chính xác và đáp ứng các yêu cầu khi cần thiết. Tuy vậy, đề tài cũng cần được hoàn thiện ở một số khía cạnh, đó là cùng với sự phát triển của Internet và thương mại điện tử, công ty đang có phương hướng triển khai việc đặt hàng, thanh toán và thực hiện các giao dịch thông qua Internet. Vấn đề này chưa được đề cập ở đây. Đó cũng chính là vấn đề cần được hoàn thiện để giải quyết và đáp ứng các yêu cầu đặt ra. DANH MỤC 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, NXB Thống kê, Hà Nội, 2000. Sử dụng và khai thác Microsoft Visual Foxpro 6.0, Nguyễn Ngọc Minh (Chủ biên), NXB Giáo dục, 2000. Giáo trình Cơ sở dữ liệu SQL, Access, Trần Công Uẩn, NXB Thống kê, 2000. Phân tích và thiết kế hệ thống thông tin, Nguyễn văn Ba, NXB Đại học Quốc Gia HN, 2003 . Những bài thực hành Visual Foxpro, VN-Guide, NXB Thống kê, 2002. 6. Giáo trình Cấu trúc dữ liệu và giải thuật, PTS Hàn Viết Thuận, NXB Thống kê -Hà nội 1999. 7. Phân tích thiết kế hệ thống thông tin quản lý, ThS Đinh Thế Hiển, NXB Thống kê. Phân tích thiết kế các hệ thống thông tin hiện đại, Nguyễn Văn Vỵ, NXB Thống kê, 2000. Les systèmes d’infomation de gestion, James O’ Brien, De Borck Universitè. PHỤ LỤC Thủ tục Startup chương trình : SET CENTURY ON SET CLOCK STATUS SET ESCAPE OFF SET EXCLUSIVE OFF SET EXACT OFF SET DATE TO FRENCH SET SAFETY SET STATUS ON SET HEADING OFF SET REPROCESS TO -1 SET REFRESH TO 1, 1 SET SCOREBOARD OFF SET MULTILOCKS ON SET STATUS BAR ON SET TALK OFF SET HOURS TO 24 SET DELETED ON CLEAR WINDOW CLEAR ALL ON ERROR ********************8 SET DEFAULT TO c:\chuongtrinh set talk off set safety off set clock off with _screen .icon='c:\chuongtrinh\icon\a.ico' .caption='Chuong trinh quan ly ban hang - Cong ty gach op lat Ha noi' .controlbox=.F. .closable=.F. .maxbutton=.F. .Minbutton=.F. .Height=600 .Width=800 .Windowstate=2 endwith Do ReleToolbar DO FORM c:\chuongtrinh\scx\loginht.scx DO FORM c:\chuongtrinh\scx\Startup.scx DO c:\chuongtrinh\menu\mainmenu.mpr SET PATH TO c:\chuongtrinh\scx Read event clear event ***************************** Procedure ReleToolbar If wexist([Database designer]) hide wind([Database designer]) endif If wexist([report controls]) hide wind([report controls]) endif If wexist([report designer]) hide wind([report designer]) endif If wexist([form controls]) hide wind([form controls]) endif If wexist([form designer]) hide wind([form designer]) endif If wexist([color palette]) hide wind([color palette]) endif If wexist([layout]) hide wind([layout]) endif If wexist([query designer]) hide wind([query designer]) endif If wexist([view designer]) hide wind([view designer]) endif If wexist ([standard]) hide wind([standard]) endif If wexist ([print preview]) hide wind([print preview]) endif return Thủ tục Them_Click của form Danh mục vật tư: IF this.Parent.them.Caption ="\<Thêm" then BEGIN TRANSACTION this.Parent.them.Caption="\<Lưu" this.Parent.sua.Caption="\<Hủy" this.Parent.xoa.Enabled = .F. this.Parent.dau.Enabled = .F. this.Parent.truoc.Enabled = .F. this.Parent.sau.Enabled = .F. this.Parent.cuoi.Enabled = .F. this.Parent.thoat.Enabled = .F. this.Parent.xem.Enabled = .F. thisform.txtdongia.ReadOnly = .f. thisform.txtdongia2.ReadOnly = .f. thisform.txtdvtinh.ReadOnly = .f. thisform.txtmahang.ReadOnly = .f. thisform.txttenhang.ReadOnly = .f. thisform.txtngaysx.ReadOnly = .f. thisform.txtnoisx.ReadOnly = .f. APPEND BLANK ELSE this.Parent.them.Caption="\<Thêm" this.Parent.sua.Caption="\<Sửa" this.Parent.xoa.Enabled = .t. this.Parent.dau.Enabled = .t. this.Parent.truoc.Enabled = .t. this.Parent.sau.Enabled = .t. this.Parent.cuoi.Enabled = .t. this.Parent.thoat.Enabled = .t. this.Parent.xem.Enabled = .t. thisform.txtdongia.ReadOnly = .t. thisform.txtdongia2.ReadOnly = .t. thisform.txtdvtinh.ReadOnly = .t. thisform.txtmahang.ReadOnly = .t. thisform.txttenhang.ReadOnly = .t. thisform.txtngaysx.ReadOnly = .t. thisform.txtnoisx.ReadOnly = .t. END TRANSACTION ENDIF thisform.txtmahang.SetFocus thisform.Refresh Thủ tục Sua_click của form Danh mục vật tư: IF this.Parent.sua.Caption ="\<Sửa" then BEGIN TRANSACTION this.Parent.them.Caption="\<Lưu" this.Parent.sua.Caption="\<Hủy" this.Parent.xoa.Enabled = .F. this.Parent.dau.Enabled = .F. this.Parent.truoc.Enabled = .F. this.Parent.sau.Enabled = .F. this.Parent.cuoi.Enabled = .F. this.Parent.thoat.Enabled = .F. this.Parent.xem.Enabled = .F. thisform.txtdongia.ReadOnly = .f. thisform.txtdongia2.ReadOnly = .f. thisform.txtdvtinh.ReadOnly = .f. thisform.txtmahang.ReadOnly = .f. thisform.txttenhang.ReadOnly = .f. thisform.txtngaysx.ReadOnly = .f. thisform.txtnoisx.ReadOnly = .f. ELSE this.Parent.them.Caption="\<Thêm" this.Parent.sua.Caption="\<Sửa" this.Parent.xoa.Enabled = .t. this.Parent.dau.Enabled = .t. this.Parent.truoc.Enabled = .t. this.Parent.sau.Enabled = .t. this.Parent.cuoi.Enabled = .t. this.Parent.thoat.Enabled = .t. this.Parent.xem.Enabled = .t. thisform.txtdongia.ReadOnly = .t. thisform.txtdongia2.ReadOnly = .t. thisform.txtdvtinh.ReadOnly = .t. thisform.txtmahang.ReadOnly = .t. thisform.txttenhang.ReadOnly = .t. thisform.txtngaysx.ReadOnly = .t. thisform.txtnoisx.ReadOnly = .t. ROLLBACK IF EOF() SKIP -1 ELSE SKIP 1 ENDIF ENDIF thisform.txtmahang.SetFocus thisform.Refresh Thủ tuc Xoa_click của form Danhmục vật tư: SELECT dmh IF MESSAGEBOX("Bạn muốn xoá bản ghi này chứ?",20,"Chu y!")=6 DELETE CLOSE TABLES ALL SELECT 1 SET EXCLUSIVE ON USE dmh PACK IF !EOF() SKIP ENDIF IF EOF() AND !BOF() SKIP -1 ENDIF ENDIF thisform.Refresh Thủ tục tiến lùi các bản ghi: Dau_click: SELECT dmh IF NOT BOF() GO top this.Parent.dau.Enabled=.f. this.Parent.truoc.Enabled=.f. ELSE =MESSAGEBOX("Đã đến bản ghi đầu rồi.",20,"Thong bao")=6 then this.Parent.dau.Enabled=.f. this.Parent.truoc.Enabled=.f. ENDIF this.Parent.sau.Enabled=.t. this.Parent.cuoi.Enabled=.t. thisform.Refresh Truoc_click: SELECT dmh IF NOT BOF() SKIP -1 ELSE =MESSAGEBOX("Đã đến bản ghi đầu rồi.",20,"Thong bao")=6 then this.Parent.dau.Enabled=.f. this.Parent.truoc.Enabled=.f. ENDIF this.Parent.sau.Enabled=.t. this.Parent.cuoi.Enabled=.t. thisform.Refresh Sau_click: SELECT dmh IF NOT EOF() SKIP 1 ELSE =MESSAGEBOX("Đã đến bản ghi cuối rồi.",20,"Thong bao")=6 then this.Parent.sau.Enabled=.f. this.Parent.cuoi.Enabled=.f. ENDIF this.Parent.dau.Enabled=.t. this.Parent.truoc.Enabled=.t. thisform.Refresh Cuoi_click: SELECT dmh IF NOT EOF() GO bottom this.Parent.sau.Enabled=.f. this.Parent.cuoi.Enabled=.f. ELSE =MESSAGEBOX("Đã đến bản ghi cuối rồi.",20,"Thong bao")=6 then this.Parent.sau.Enabled=.f. this.Parent.cuoi.Enabled=.f. ENDIF this.Parent.dau.Enabled=.t. this.Parent.truoc.Enabled=.t. thisform.Refresh Thủ tục Moi_click của Form Hóa đơn bán hàng: THISFORM.txtSopx.setfocus THISFORM.txtSopx.gotfocus THISFORM.txtNgaypx.value="" THISFORM.txtmakh.value="" thisform.lbltenkh.Caption="" thisform.lbldiachi.Caption="" THISFORM.txtdg.value="" *+!+********************************* THISFORM.cmgButton.cmdLuu.Enabled= .T. THISFORM.cmgButton.cmdMoi.Enabled= .F. THISFORM.cmgButton.cmdxoa.Enabled= .T. THISFORM.cmgButton.cmdSua.Enabled= .T. THISFORM.cmgButton.cmdtim.Enabled= .T. THISFORM.TxtSopx.Enabled= .F. THISFORM.TxtNgaypx.Enabled= .T. THISFORM.Txtmakh.Enabled= .T. THISFORM.TxtDG.Enabled= .T. THISFORM.grdpx.colMahang.text1.value="" THISFORM.grdpx.colTenhang.text1.value="" THISFORM.grdpx.colDvt.text1.value="" THISFORM.grdpx.colMakho.text1.value="" THISFORM.grdpx.colSoluong.text1.value="" THISFORM.grdpx.coldongia.text1.value="" *+!+********************************* * Them dong moi vao Grid SELECT 1 APPEND BLANK * Tu dong tang so phieu SELECT 0 USE [C:\chuongtrinh\dbfs\hoadon.DBF] ALIAS M_hd GO bottom THISFORM.TxtSopx.Value=RECNO()+1 USE THISFORM.Refresh THISFORM.TxtNgaypx.SetFocus thisform.grdpx.Refresh Thủ tục Luu_click của Form Hóa đơn bán hàng: * Cho phep cac nut THISFORM.cmgButton.cmdLuu.Enabled= .F. THISFORM.cmgButton.cmdMoi.Enabled= .T. THISFORM.cmgButton.cmdxoa.Enabled= .F. THISFORM.cmgButton.cmdSua.Enabled= .F. THISFORM.cmgButton.cmdtim.Enabled= .T. ********************************** * cap nhat vao bang : hoadon.DBF SELECT 0 USE C:\chuongtrinh\dbfs\hoadon.DBF ALIAS M_hd APPEND BLANK SCATTER MEMVAR M.Sohd=THISFORM.txtSopx.Value M.Ngayhd=THISFORM.txtNgaypx.Value M.makh=thisform.txtmakh.Value M.Diengiai=THISFORM.TxtDg.Value GATHER MEMVAR RELEASE ALL USE * Cap nhap vao table : cthoadon.DBF SELECT 3 USE C:\chuongtrinh\dbfs\cthoadon.DBF ALIAS cthoadon SCATTER MEMVAR BLANK M.Sohd=THISFORM.TxtSopx.Value M.Mahang=THISFORM.Grdpx.ColMahang.Text1.Value M.SoLuong=THISFORM.Grdpx.ColSoluong.Text1.Value M.Makho=THISFORM.Grdpx.colMakho.Text1.Value APPEND BLANK GATHER MEMVAR RELEASE ALL USE * Xoa tat ca cac bien RELEASE ALL thisform.Refresh Thủ tục Sua_click của Form Hóa đơn bán hàng: * Cho phep THISFORM.cmgButton.cmdLuu.Enabled= .F. THISFORM.cmgButton.cmdMoi.Enabled= .T. THISFORM.cmgButton.cmdxoa.Enabled= .F. THISFORM.cmgButton.cmdSua.Enabled= .F. THISFORM.cmgButton.cmdTim.Enabled= .T. *********************************** thisform.txtSopx.ReadOnly=.f. thisform.txtNgaypx.ReadOnly=.f. thisform.txtmakh.ReadOnly=.f. thisform.txtdg.ReadOnly=.f. thisform.grdpx.ReadOnly = .F. thisform.grdpx.colMahang.text1.ReadOnly = .F. thisform.txtSopx.Enabled = .T. thisform.txtNgaypx.Enabled = .T. thisform.txtmakh.Enabled = .T. thisform.txtdg.Enabled = .T. thisform.grdpx.colMahang.text1.Enabled = .T. thisform.grdpx.colTenhang.text1.Enabled = .T. thisform.grdpx.colDvt.text1.Enabled = .T. thisform.grdpx.colMakho.text1.Enabled = .T. thisform.grdpx.colSoluong.text1.Enabled = .T. thisform.grdpx.coldongia.text1.Enabled = .T. thisform.grdpx.colthanhtien.text1.Enabled = .T. thisform.txtNgaypx.SetFocus Thủ tục Lostfocus của TxtMaKh trên Form Hóa đơn bán hàng: ON KEY LAbEl ENTER KEYBOARD CHR(23) SELECT 0 USE C:\chuongtrinh\dbfs\dmkh.DBF ALIAS M_dmkh IF EMPTY(THISFORM.Txtmakh.Value) THEN BROWSE FONT '.VnArial',10 NOMODIFY SCATTER MEMVAR THISFORM.Txtmakh.Value=M.makh THISFORM.Lbltenkh.Caption=ALLTRIM(M.tenkh) thisform.lbldiachi.Caption =ALLTRIM(M.diachi) RELEASE ALL ENDIF ON KEY LABEl ENTER USE *********************************** Thủ tục Lostfocus cua Text Mã hàng của grid trên Form Hóa đơn bán hàng: on key label enter keyboard chr(23) IF EMPTY(THISFORM.GRdpx.colMahang.text1.Value)=.T. THEN SELECT 0 USE [c:\chuongtrinh\dbfs\dmh] ALIAS M_dmh BROWSE FONT '.VnArial',10 SCATTER MEMVAR strma=M.mahang * Lay tu bang vao Grid THISFORM.GRdpx.COlMahang.TExt1.Value=strma THISFORM.Grdpx.ColTenhang.Text1.Value=M.TenHang THISFORM.Grdpx.ColDvt.Text1.Value=M.Dvtinh THISFORM.Grdpx.coldongia.Text1.Value=M.Dongia2 USE ENDIF on key label enter Thủ tục Lostfocus cua Text Thành tiền trong Grid trên Form Hóa đơn bán hàng: * Cho phep nguoi dung co them mat hang trong phieu nay nua khong IF MESSAGEBOX('Bạn muốn nhập nữa không?',4,'Thong bao!')=6 THEN SELECT 1 APPEND BLANK RELEASE ALL SELECT 0 USE C:\chuongtrinh\dbfs\cthoadon.DBF ALIAS P_ctpx SCATTER MEMVAR BLANK M.Sohd=THISFORM.TxtSopx.Value M.Mahang=THISFORM.Grdpx.ColMahang.Text1.Value M.SoLuong=THISFORM.Grdpx.ColSoluong.Text1.Value M.Makho=THISFORM.Grdpx.colMakho.Text1.Value APPEND BLANK GATHER MEMVAR RELEASE ALL USE THISFORM.Grdpx.ColMahang.Text1.SetFocus THISFORM.Grdpx.Refresh ELSE thisform.cmgButton.cmdLuu.SetFocus ENDIF THISFORM.Refresh Thủ tục tìm kiếm hóa đơn bán hàng, hiện thông tin trên Form Hóa đơn bán hàng, nếu tìm thấy có thể sửa: * Thiet lap moi truong lam viec SET TALK OFF SET SAFETY OFF SET EXAC OFF SET DELETE OFF SET DATE FRENCH ********************************************** * Mở bảng con : cthoadon.dbf SELECT 0 USE C:\Chuongtrinh\dbfs\cthoadon.DBF INDEX ON sohd TO hd_sohd USE C:\Chuongtrinh\dbfs\cthoadon.DBF INDEX hd_sohd ALIAS P_HangXuat ********************************************** * Mở bảng cha : hoadon.DBF SELECT 0 USE C:\Chuongtrinh\dbfs\hoadon.DBF INDEX ON sohd TO pnk USE C:\Chuongtrinh\dbfs\hoadon.DBF INDEX pnk ALIAS M_pnk * Thiet lap moi quan he SET RELATION TO sohd INTO P_HangXuat SELECT P_HangXuat.sohd,P_HangXuat.MaHang,P_HangXuat.SoLuong,; M_pnk.Ngayhd, M_pnk.DienGiai,M_pnk.makh,P_HangXuat.Makho; FROM M_pnk,P_HangXuat; WHERE P_HangXuat.sohd=M_pnk.sohd; INTO DBF C:\chuongtrinh\dbf_tmp\Phieu_Hang USE ********************************************** * Mo ket qua chung va loc theo yeu cau ngay SELECT 0 USE C:\Chuongtrinh\dbf_tmp\Phieu_Hang.DBF SELECT *FROM Phieu_Hang; WHERE (Phieu_Hang.Ngayhd BETWEEN CTOD(_dTu_Ngay) AND CTOD(_dDen_Ngay)); INTO DBF C:\Chuongtrinh\dbf_tmp\HD_Theo_Ngay USE ********************************************** * Ket qua Duoc loc Theo Ngay SELECT 0 USE C:\Chuongtrinh\dbf_tmp\HD_Theo_Ngay INDEX ON Mahang TO d_Mahang USE C:\Chuongtrinh\dbf_tmp\HD_Theo_Ngay INDEX d_Mahang ALIAS P_TheoNgay ********************************************** * Lay: fields cua mat hang tu: dmh.dbf SELECT 0 USE C:\chuongtrinh\dbfs\dmh.dbf INDEX ON Mahang TO dmh_Mahang USE C:\chuongtrinh\dbfs\dmh.dbf INDEX dmh_Mahang ALIAS M_dmh SET RELATION TO Mahang INTO P_TheoNgay SELECT P_TheoNgay.sohd,P_TheoNgay.Ngayhd,P_TheoNgay.makh,; P_TheoNgay.DienGiai, P_TheoNgay.Mahang,M_dmh.TenHang,; M_dmh.dvtinh,P_TheoNgay.Makho, P_TheoNgay.SoLuong,M_dmh.dongia2,; P_TheoNgay.SoLuong*M_dmh.dongia2 as thanhtien; FROM M_dmh,P_TheoNgay; WHERE P_TheoNgay.Mahang=M_dmh.Mahang; INTO DBF C:\chuongtrinh\dbf_tmp\KQ_CUOI.dbf USE ********************************************** * Lay theo :SO phieu nhap SELECT 0 USE C:\chuongtrinh\dbf_tmp\KQ_CUOI.dbf ALIAS H_CUOI INDEX ON sohd TO kq_sohd SELECT *FROM H_CUOI; WHERE VAL(ALLTRIM(sohd)) BETWEEN VAL(_strTu_so) AND VAL(_strDen_So); INTO DBF C:\chuongtrinh\dbf_tmp\PHIEU_XUAT.dbf USE ********************************************** * Loc theo ma nhan vien SELECT 0 USE C:\chuongtrinh\dbf_tmp\PHIEU_XUAT.dbf ALIAS H_PNhap SELECT *FROM H_PNhap; WHERE makh=UPPER(ALLTRIM(_strMa_nv)); INTO DBF C:\chuongtrinh\dbf_tmp\HD_XUAT.dbf * BROWSE USE ********************************************** SELECT 0 USE C:\chuongtrinh\dbf_tmp\HD_XUAT.dbf USE CLOSE ALL Thủ tục đọc số thành chữ: *......................... Hàm đổi số ............................ * Doi so thanh chu de in chung tu FUNCTION Docso PARAMETER So, DonViTinh, Doc_So_Bon * SO: So can doi * DonViTinh: Don vi tinh khi doc thanh chu (VND, USD,...) * Doc_So_Bon: Doc so 4 la "bon" hay "tu" , neu = [T] - [tu], nguoc lai la [bon] PRIVATE SoChu IF PARAMETER() < 3 Doc_So_Bon = [] ENDIF IF PARAMETER() < 2 DonViTinh = [] ENDIF Tu_Bon = ' bốn' IF UPPER(Doc_So_Bon) = 'T' Tu_Bon = ' tư' ENDIF DIMENSION MangChuSo( 10 ) STOR [ không] TO MangChuSo(1) STOR [ một] TO MangChuSo(2) STOR [ hai] TO MangChuSo(3) STOR [ ba] TO MangChuSo(4) STOR [ bốn] TO MangChuSo(5) STOR [ năm] TO MangChuSo(6) STOR [ sáu] TO MangChuSo(7) STOR [ bảy] TO MangChuSo(8) STOR [ tám] TO MangChuSo(9) STOR [ chín] TO MangChuSo(10) SoChu = [] IF So < 0 So = - So SoChu = SoChu + " âm" ENDIF So_sau_dau_phay = So - INT(So) ****Doc phan nguyen truoc So = INT(So) &&Vi ben duoi co doan S = LEFT(ALLT(S), LEN(ALLT(S)) - 1) ; && cho nen phai cho so 0 vao de neu doc so 0 thi no khong bi mat chu "g" IF So = 0 SoChu = SoChu + " " + 'không0' ELSE &&Cong them cac so khong vao dang truoc chuoi de duoc chan cac to hop 3 so So = ALLT(STR(So,16)) IF MOD(LEN(So) , 3 ) = 1 So = '00' + So ENDIF IF MOD(LEN (So), 3 ) = 2 So = '0' + So ENDIF So_Nhom = LEN(So)/3 Stt_Nhom = So_Nhom Stt_So = 1 &&Doc theo tung nhom 3 so DO WHILE Stt_So <= (LEN(So) - 2) &&Cho den vi tri cua chu so dau tien cua nhom cuoi cung So_Phu = SUBSTR(So, Stt_So, 3) Stt_Nhom = ROUND((LEN(So) - Stt_So +1) / 3, 0) IF LEN(DOI_SO_CHU_NHOM(So_Phu, Stt_Nhom, So_Nhom)) > 0 IF Stt_Nhom < 5 &&Nho hon mot ty thi phai cng them dau phay SoChu = SoChu + DOI_SO_CHU_NHOM(So_Phu, Stt_Nhom, So_Nhom) + [,] ELSE SoChu = SoChu + DOI_SO_CHU_NHOM(So_Phu, Stt_Nhom, So_Nhom) ENDIF ELSE SoChu = SoChu + DOI_SO_CHU_NHOM(So_Phu, Stt_Nhom, So_Nhom) ENDIF Stt_So = Stt_So + 3 ENDDO ENDIF SoChu = LEFT(ALLT(SoChu), LEN(ALLT(SoChu)) - 1) ****Doc phan thap phan * Neu chu so dau tien sau dau phay khac khong thi doc nhu phan so nguyen IF So_sau_dau_phay > 0 SoChu = SoChu + " phẩy" So_sau_dau_phay = ALLTR(STR(So_sau_dau_phay, 8, 6)) &&Chi doc den 6 chu so sau dau phay So_sau_dau_phay = SUBS(So_sau_dau_phay, 3, LEN(So_sau_dau_phay) - 2) &&Cat lay phan sau dau phay IF LEFT(So_sau_dau_phay, 1) '0' &&Cat nhung so 0 o ben phai do STR() di DO WHILE RIGHT(So_sau_dau_phay, 1) = '0' So_sau_dau_phay = LEFT(So_sau_dau_phay, LEN(So_sau_dau_phay) - 1) ENDDO &&Cong them cac so khong vao dang truoc chuoi de duoc chan cac to hop 3 so IF MOD(LEN(So_sau_dau_phay) , 3 ) = 1 So_sau_dau_phay = '00' + So_sau_dau_phay ENDIF IF MOD(LEN(So_sau_dau_phay), 3 ) = 2 So_sau_dau_phay = '0' + So_sau_dau_phay ENDIF So_Nhom = ROUND(LEN(So_sau_dau_phay) / 3,0) Stt_Nhom = So_Nhom Stt_So = 1 &&Doc theo tung nhom 3 so DO WHILE Stt_So <= (LEN(So_sau_dau_phay) - 2)&&Cho den vi tri cua chu so dau tien cua nhom cuoi cung So_Phu = SUBSTR(So_sau_dau_phay, Stt_So, 3) Stt_Nhom = ROUND ((LEN (So_sau_dau_phay) - Stt_So +1) / 3,0) SoChu = SoChu + DOI_SO_CHU_NHOM( So_Phu, Stt_Nhom, So_Nhom) Stt_So = Stt_So + 3 ENDDO ELSE * Neu chu so dau tien sau dau phay = 0 thi doc tung chu so mot &&Cat nhung so 0 o ben phai do STR() di DO WHILE RIGHT(So_sau_dau_phay, 1) = '0' So_sau_dau_phay = LEFT(So_sau_dau_phay, LEN(So_sau_dau_phay) - 1) ENDDO &&Doc lan luot tung chu so sau dau phay FOR i =1 TO LEN(So_sau_dau_phay) j = SUBS(So_sau_dau_phay, i, 1) SoChu = SoChu + MangChuSo(VAL(j) +1 ) ENDFOR ENDIF ENDIF SoChu = ALLTR(UPPER(LEFT(SoChu, 1)) + SUBS(SoChu, 2) + [ ] + DonViTinh) RETURN SoChu *......................... Function DOI_SO_CHU_NHOM ............................ FUNCTION DOI_SO_CHU_NHOM PARAMETER Nhom_So, Stt_Nhom, So_Nhom * Nhom_So: Nhom 3 so can doc * Stt_Nhom: Stt cua nhom trong tong so cac nhom * So_Nhom: Tong so nhom cua so can doc PRIVATE Tram, Chuc, Don_Vi, Tram_Chu, Chuc_Chu, Don_Vi_Chu, Nhom_Chu Nhom_Chu = '' Tram = LEFT(Nhom_So,1) Chuc = SUBSTR(Nhom_So,2,1) Don_Vi = RIGHT(Nhom_So,1) Tram_Chu = MangChuSo(VAL(Tram) +1 ) Chuc_Chu = MangChuSo(VAL(Chuc) +1 ) Don_Vi_Chu = MangChuSo(VAL(Don_Vi) +1 ) IF (Tram '0') .OR. ((Stt_Nhom = 1) .AND. (Stt_Nhom < So_Nhom)) Nhom_Chu = Nhom_Chu + Tram_Chu + ' trăm' ENDIF IF ALLTR(Chuc_Chu) 'không' IF ALLTR(Chuc_Chu) 'một' Nhom_Chu = Nhom_Chu + Chuc_Chu + ' mươi' IF ALLTR(Don_Vi_Chu) 'năm' IF ALLTR(Don_Vi_Chu) 'không' IF ALLTR(Don_Vi_Chu) = 'một' Nhom_Chu = Nhom_Chu + ' mốt' ELSE IF (ALLTR(Don_Vi_Chu) = 'bốn') .AND. (Stt_Nhom > 1) Nhom_Chu = Nhom_Chu + Tu_Bon ELSE Nhom_Chu = Nhom_Chu + Don_Vi_Chu ENDIF ENDIF ENDIF ELSE Nhom_Chu = Nhom_Chu + ' lăm' ENDIF ELSE Nhom_Chu = Nhom_Chu + ' mười' IF ALLTR(Don_Vi_Chu) 'năm' IF ALLTR(Don_Vi_Chu) 'không' Nhom_Chu = Nhom_Chu + Don_Vi_Chu ENDIF ELSE Nhom_Chu = Nhom_Chu + ' lăm' ENDIF ENDIF ELSE IF ALLTR(Don_Vi_Chu) 'không' Nhom_Chu = Nhom_Chu + ' linh' IF ALLTR(Don_Vi_Chu) 'bốn' Nhom_Chu = Nhom_Chu + Don_Vi_Chu ELSE Nhom_Chu = Nhom_Chu + Tu_Bon ENDIF ENDIF ENDIF IF (Tram = '0') .AND. (Chuc = '0') .AND. (Don_Vi '0') .AND. (Stt_Nhom > 1) Nhom_Chu = Don_Vi_Chu ENDIF IF (Tram = '0') .AND. (Chuc = '0') .AND. (Don_Vi '0') .AND. (So_Nhom = 1) Nhom_Chu = Don_Vi_Chu ENDIF DO CASE CASE Stt_Nhom = 2 Nhom_Chu = Nhom_Chu + ' nghìn' CASE Stt_Nhom = 3 Nhom_Chu = Nhom_Chu + ' triệu' CASE Stt_Nhom = 4 Nhom_Chu = Nhom_Chu + ' tỷ' CASE Stt_Nhom = 5 Nhom_Chu = Nhom_Chu + ' nghìn' CASE Stt_Nhom = 6 Nhom_Chu = Nhom_Chu + ' triệu' ENDCASE IF (Tram = '0') .AND. (Chuc = '0') .AND. (Don_Vi = '0') Nhom_Chu = '' ENDIF RETURN Nhom_Chu Nguyễn Văn Tình – Lớp Tin học 42A – Khoa Tin học Kinh Tế - ĐH KTQD Thời điểm Khách hàng Quản lý bán hàng Quản lý kho Kế toán thu 2.2.1. Sơ đồ IFD của bộ phận bán hàng Luận văn tốt nghiệp đại học - 58 - Lãnh đạo Báo cáo In báo cáo Đơn đặt hàng Xét duyệt đơn đặt hàng Lưu trữ Xử lý Hoá đơn bán hàng Giao dịch Hợp đồng Báo cáo Báo cáo Hoá đơn thanh toán Phiếu xuất Báo cáo xuất nhập tồn Hình 19: Sơ đồ IFD của bộ phận bán hàng Nguyễn Văn Tình – Lớp Tin học 42A – Khoa Tin học Kinh Tế - ĐH KTQD Thời điểm Nhà cung cấp Quản lý mua hàng Quản lý kho Kế toán chi 2.2.2. Sơ đồ IFD của bộ phận mua hàng Luận văn tốt nghiệp đại học - 59 - Lãnh đạo In báo cáo Giới thiệu hàng Sổ đơn hàng Xử lý Đơn đặt hàng Báo cáo Đặt hàng Hợp đồng Báo cáo Báo cáo Ra quyết định mua hàng Hoá đơn thanh toán Phiếu nhập kho Báo cáo Xuất nhập tồn Đơn đặt mua hàng Quyết định mua hàng Hình 20: Sơ đồ IFD của bộ phận mua hàng Nguyễn Văn Tình – Lớp Tin học 42A – Khoa Tin học Kinh Tế - ĐH KTQD Thời điểm Quản lý mua hàng Quản lý kho Quản lý bán hàng Kế toán 2.2.3. Sơ đồ IFD của bộ phận quản lý kho Luận văn tốt nghiệp đại học - 60 - Lãnh đạo Lập báo cáo Quyết định mua hàng Kiểm duyệt và nhận hàng Lưu trữ Hoá đơn bán hàng Báo cáo xuất nhập tồn Mua hàng Đơn đặt hàng Phiếu nhập hàng Bán hàng Nguyễn Văn Tình – Lớp Tin học 42A – Khoa Tin học Kinh Tế - ĐH KTQD Thời điểm Hình 21: Sơ đồ IFD của bộ phận quản lý kho Khách hàng Quản lý bán hàng Quản lý kho Kế toán thu 2.3.4. Sơ đồ IFD của bộ phận thu tiền Chuyên đề thực tập tốt nghiệp -61- Lãnh đạo Lập báo cáo thu Phiếu thu Sổ theo dõi công nợ Xử lý Báo cáo Thanh toán Phiếu thu Hoá đơn bán hàng Phiếu thu Xử lý thu tiền Hình 22: Sơ đồ IFD của bộ phận kế toán

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

  • doc36205.doc
Tài liệu liên quan