Đề tài Xây dựng quản lý bán hàng tại công ty cổ phần thiết bị máy tính Thiên An

Trên đây là toàn bộ báo cáo thực tập tốt nghiệp về đề tài “Quản lý bán hàng”. Công việc chính của đề tài này là khai thác thiết kế xây dựng chương trình quản lý bán hàng tại công ty Cổ phần thiết bị máy tính Thiên An, xem xét quá trình xuất nhập, tồn kho hàng tại công ty, sau đó thực hiện làm báo cáo tổng hợp. Qua khảo sát mô hình quản lý bán hàng, nhập hàng và hàng tồn kho, phân tích hệ thống hiện tại quản lý đã xây dựng chương trình cơ bản đáp ứng được các yêu cầu về: - Quản lý được tương đối đầy đủ những chức năng bán hàng, nhập hàng, cập nhật thông tin hàng hóa. - Bảo đảm được công việc của kho là quản lý xuất nhập tồn kho. - Sử dụng thuận tiện dễ dàng nhập dữ liệu cũng như tra cứu thông tin. - Chương trình có thể phát triển khi có những yêu cầu cần thiết trong công việc. - Vì thời gian có hạn nên chương trình có dữ liệu còn nhỏ, chưa đưa ra được hết những báo cáo chi tiết. Hướng phát triển - Hệ thống sẽ được nâng cấp nhiều hơn khi có sự giúp đỡ, góp ý nhiệt tình của phòng quản lý tại công ty Cổ phần thiết bị máy tính Thiên An để trở thành một phần mềm hệ thống quản lý bán hàng với quy mô lớn. Với thời gian đặt ra lúc này về báo cáo thực tập tốt nghiệp về cơ bản đã hoàn thành. Cơ sở dữ liệu đã được thiết kế đầy đủ, tuy nhiên một số vấn đề nhỏ chưa được phân tích. Do thời gian hạn chế, chưa có điều kiện khảo sát chi tiết, lấy đầy đủ thông tin của hệ thống nên còn nhiều dữ liệu khác không được đưa vào đề tài này.

doc115 trang | Chia sẻ: aloso | Lượt xem: 1839 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng quản lý bán hàng tại công ty cổ phần thiết bị máy tính Thiên An, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
iên tập trung nỗ lực của mình vì sự thành công tại bộ phận chuyển đổi thử nghiệm. Khi bộ phận quản lý nhận thấy quá trình chuyển đổi đã thành công ở một bộ phận có thể tiến hành triển khai cho phần còn lại của tổ chức. Các vấn đề vấp phải trong khi chuyển đổi cục bộ sẽ được giải quyết trước khi triển khai đối với các bộ phận khác. Phương pháp cài đặt thí điểm cục bộ tỏ ra đơn giản đối với người sử dụng vì họ chỉ làm việc với một hệ thống, nhưng vẫn là gánh nặng đối với bộ phận quản lý hệ thống thông tin khi phải quản trị hai hệ thống một lúc. Cũng cần lưu ý rằng, nếu các bộ phận khác nhau có nhu cầu chia sẻ dữ liệu thì cần thiết phải viết thêm những chương trình để đảm bảo tính đồng bộ giữa hệ thống cũ và hệ thống mới khi áp dụng cài đặt cục bộ. + Chuyển đổi theo giai đoạn: Đây là phương pháp chuyển đổi từ hệ thống thông tin cũ sang hệ thống thông tin mới một cách dần dần, bắt đầu bằng một hay một vài mô đun và sau đó là mở rộng dần việc chuyển đổi sang toàn bộ hệ thống mới. Những phần khác nhau của các hệ thống cũ và mới được sử dụng phối hợp với nhau cho tới khi toàn bộ hệ thống mới được cài đặt xong. Cũng giống như phương pháp thí điểm cục bộ, chuyển đổi theo giai đoạn cũng nhằm hạn chế thấp nhất rủi ro có thể xảy ra, vì nếu có thì chúng cũng phân tán đều theo thời gian và không gian. Mặt khác phương pháp này cho phép tận dụng một số lợi thế của hệ thống mới, trước khi hệ thống được cài đặt hoàn chỉnh. Cũng trong phương pháp này, hệ thống mới và hệ thống cần thay thế phải có khả năng cùng tồn tại chia sẻ dữ liệu nên cần phải viết những chương trình cầu nối giữa các cơ sở dữ liệu và các chương trình của hệ thống cũ và hệ thống mới. Đôi khi phương pháp này không thực thi được nếu hệ thống cũ và mới không tương thích đến mức độ một số phần của hệ thống cũ không thể thay thế dần được. Phương pháp chuyển đổi theo giai đoạn sẽ đưa đến hàng loạt các phiên bản khác nhau của hệ thống và vấn đề là cần kiểm soát tốt các phiên bản đó, quá trình chuyển đổi được lặp lại ở từng giai đoạn và cần một thời gian chuyển đổi tương đối dài. * Nội dung cài đặt hệ thống thông tin bao gồm: + Lập kế hoạch: Cần phải xây dựng kế hoạch chuyển đổi một cách chi tiết vì nó phải kết hợp với những hoạt động đang tiến hành của tổ chức. + Chuyển đổi kỹ thuật: Phần cứng, phần mềm, dữ liệu. + Chuyển đổi về mặt tổ chức: đào tạo, sửa đổi quy chế. 2.6 Giới thiệu về công nghệ phần mềm Mỗi dự án phần mềm không phụ thuộc vào quy mô, do phức tạp hoặc lĩnh vực ứng dụng đều có thể chia thành 3 giai đoạn được biểu diễn trong hình vẽ sau đây. Xác định Giai đoạn 1 Phân tích yêu cầu Lập kế hoạch Phát triển Giai đoạn 2 Thiết kế Lập trình Kiểm thủ Bảo trì Giai đoạn 3 Bảo trì sửa đổi Bảo trì thích nghi Bảo trì hoàn thiện Giai đoạn 1: Trả lời cho câu hỏi cái gì? về bản chất chính là xác định 1 cách cụ thể và chính xác bài toán đặt ra. Người ta thường gọi một cách vắn tắt là xác định P trên cơ sở xác định chính xác p người ta đưa ra giải pháp phần mềm S (Salution). Vì thế việc định danh bài toán đầu tư tức là xác định P càng chính xác bao nhiêu thì việc xác định các giải pháp P càng hiệu quả bấy nhiêu Giai đoạn 2: Trả lời cho câu hỏi thể nào? Về bản chất đây chính là công đoạn xây dựng và thiết kế PM. Giai đoạn 3: Trả lời cho câu hỏi thay đổi ra sao? Mà nội dung chủ yếu của nó liên quan đến sản phẩm sau khi đã thương mại hoá trên thị trường. 2.6.1 Vòng đời phát triển của phần mềm Trong công nghệ phần mềm người ta đưa ra khái niệm vòng đời phát triển của phần mềm nhằm mục đích phân đoạn toàn bộ quá trình từ khi ra đời đến khi phát triển 1 phần mềm để có những biện pháp thích ứng vào từng giai đoạn với mục đích phần mềm ngày càng phát triển. C.Nghệ H.Thống Phân tích Thiết kế Mã hóa Kiểm thử Bảo trì Người ta thường dùng 1 mô hình gọi mô hình thác nước để biểu diễn vòng đời phát triển của phần mềm và được biểu diễn trong hình vẽ sau đây: Ý nghĩa của mô hình này: là các bậc ở phía bên trên sẽ tác động bao trùm đến tất cả các thứ bậc ở phía dưới và càng ở những thứ bậc cuối thác nước ngày càng phải chịu những thứ bậc ở bên trên. Chúng ta lần lượt xem xét những nội dung chính của các công đoạn. - Công nghệ hệ thống: Đây là phương pháp luận tổng quát phân tích và sản xuất 1 phần mềm với yêu cầu và đánh giá một cách toàn diện tất cả các tác động và ảnh hưởng của phần mềm và công nghệ hệ thống hiện diện ở mọi công đoạn tiếp sau. - Phân tích: Mục đích của công đoạn phân tích là xác định rõ mục tiêu của phần mềm những ràng buộc về thiết kế và công nghệ và định rõ miền áp dụng của phần mềm. - Thiết kế: Đây là công đoạn có vai trò đặc biệt quan trong công nghệ phần mềm vì mục đích của nó là đưa ra một hồ sơ thiết kế phần mềm hoàn chỉnh làm cơ sở để lập trình. - Mã hóa: Khái niệm mã hóa trong công nghệ phần mềm khác với khái niệm mã hóa thông thường. Mã hóa trong công nghệ phần mềm được hiểu là quá trình dịch từ bản vẽ thiết kế thành ngôn ngữ lập trình cụ thể. Cũng như trong xây dựng quy trình thiết kế tương ứng với quá trình thiết kế 1 công trình xây dựng còn lập trình chính là quá trình thi công. – Kiểm thử: Đây là công đoạn tiến hàng kiểm tra toàn bộ phần mềm (test) trong đó tiến hành kiểm tra hệ thống, kiểm tra các thủ tục của phần mềm. – Bảo trì: Đây là công đoạn thực hiện sau khi phần mềm đã được đưa vào sử dụng và được tiến hành theo 3 hình thức: - Bảo trì sửa đổi. - Bảo trì thích nghi - Bảo trì hoàn thiện 2.6.2 Các qui trình trong công nghệ phần mềm Các qui trình trong công nghệ phần mềm có mối liên quan mật thiết với nhau và đều theo một nguyên tắc công đoạn đứng sau sẽ tiếp nhận sản phẩm của công đoạn đứng ngay trước nó như các dữ liệu đầu vào. Vì vậy chất lượng phần mềm phụ thuộc đồng thời vào tất cả các công đoạn chứ không chỉ phụ thuộc vào công đoạn trực tiếp mà nó đang thực hiện. Qui trình 1: Xây dựng và quản lý hợp đồng phần mềm. Để đảm bảo tính thống nhất cho các qui trình chúng ta xem xét tài liệu thiết kế của FPT tương đối bao quát đối với các công ty phần mềm hiện nay. Mỗi qui trình đều được đưa ra dưới dạng chuẩn ngắn gọn gồm 5 vấn đề chính. Mục đích của qui trình Dấu hiệu của qui trình Các tham số của qui trình Lưu đồ của qui trình Phân đoạn các hoạt động của qui trình. * Mục đích Mục đích của qui trình xây dựng và quản lý hợp đồng phần mềm là tiến trình gặp gỡ khách hàng, khởi thảo hợp đồng phần mềm rồi tiến tới ký kết và thực hiện hợp đồng phần mềm. Đây là công đoạn đầu tiên của toàn bộ quá trình sản xuất một phần mềm công nghiệp do đó người thực hiện chức danh cán bộ kinh doanh phần mềm không chỉ đòi hỏi am hiểu về tin học mà phải có kiến thức về hợp đồng kinh tế và khả năng giao tiếp với khách hàng. * Dấu hiệu Qui trình xây dựng và quản lý hợp đồng phần mềm được đặc trưng bởi các dấu hiệu sau đây Soạn thảo và ký kết hợp đồng phần mềm. Theo dõi thực hiện hợp đồng phần mềm. Thanh toán, thanh lý hợp đồng phần mềm. MĐ KT Đề xuẩt HĐPM Lập g.pháp PM S.thảo HĐPM Theo dõi t.hiện TT,T.lý HĐPM HSơ q.trình thứ 1 K.Tra k.chấp nhận chấp nhận * Lưu đồ (sơ đồ khối) Qui trình 2: Qui trình xác định yêu cầu * Mục đích Qui trình xác định yêu cầu trong nghệ phần mềm có mục đích chính là định hướng một cách cụ thể các yêu cầu của khách hàng về phần mềm tương lai. Ở giai đoạn ký kết hợp đồng phần mềm cơ bản khách hàng mới phác họa ra các mong muốn còn kỹ sư phần mềm cũng chưa thể mô hình hóa toàn bộ các chức năng phần mềm sẽ được thiết kế. Do đó công đoạn xác định yêu cầu có vị trí đặc biệt quan trọng vì tính chất này mới là công đoạn có liên quan đến chất lượng của phần mềm sau này: * Các dấu hiệu Quá trình xác định yêu cầu trong công nghệ phần mềm được đặc trưng bởi các dấu hiệu sau đây: Phân tích nghiệp vụ chuyên sâu Lập mô hình hoạt động của hệ thống Đây là 2 vấn đề đặc biệt quan trọng vạch rõ sự khác biệt giữa phần mềm này và phần mềm khác, bản chất của phân tích nghiệp vụ chuyên sâu là người cán bộ xác định yêu cầu phải nêu được những đặc trưng chuyên biệt cơ bản nhất của phần mềm đó so với phần mềm khác. Còn lập mô hình hoạt động của hệ thống BFD, IFD, DFD * Lưu đồ MĐ KT Lập KH xđyc Phân tích n.vụ Lập BFD Lập IFD Lập DFD HSơ q.trình thứ2 KT KH k.chấp nhận chấp nhận Qui trình 3: Qui trình thiết kế trong công nghệ phần mềm * Mục đích: Sau khi đã có hợp đồng phần mềm và xác định hồ sơ yêu cầu của phần mềm của khách hàng người ta chuyển qua qui trình thứ 3 là qui trình thiết kế. Đây là qui trình có vai trò đặc biệt quan trọng vì hồ sơ thiết kế chính là nền tảng để dựa vào đó xây dựng nên phần mềm. Đặc biệt trong giai đoạn hiện nay khi đã có các công cụ lập trình tự động thì người ta yêu cầu các chuyên gia lập trình phải biết đọc bản vẽ thiết kế để nắm được cấu trúc tổng quát của phần mềm còn lập trình có thể giao cho máy thực hiện. * Các dấu hiệu Qui trình thiết kế trong hợp đồng phần mềm được đặc trưng bởi các dấu hiệu sau đây: Thiết kế kiến trúc Thiết kế kỹ thuật Trong đó phần thiết kế kỹ thuật được chia thành 4 công đoạn nhỏ Thiết kế dữ liệu Thiết kế chương trình Thiết kế giao diện MĐ KT Thiết kế kiến trúc TK dữ liệu TK chương trình TK giao diện TK các cc c.đặt Hồ sơ thiết kế Duyệt TKKT Lập KH thiết kế Thiết kế công cụ cài đặt * Lưu đồ k.duyệt duyệt Qui trình 4: Qui trình lập trình trong công nghệ phần mềm * Mục đích Trên cơ sở của hồ sơ thiết kế người ta lựa chọn một ngôn ngữ lập trình nào đó để chuyển đổi bản vẽ thiết kế thành một phần mềm. Công đoạn này thường được gọi dưới cái tên là thi công phần mềm. * Các dấu hiệu Qui trình lập trình trong công nghệ phần mềm được đặc trưng bởi các dấu hiệu sau đây. Lập trình thư viện chung Lập trình các modul Tích hợp các hệ thống MĐ KT LT thư viện chung LT các modul Tích hợp HS q.trình 4 Duyệt TKKT Lập KH lập trình * Lưu đồ k.duyệt duyệt Qui trình thứ 5: Qui trình test trong công nghệ phần mềm * Mục đích Sau công đoạn lập trình chúng ta đã có một phần mềm được các kỹ sư phần mềm thực hiện qui trình Test chương trình. Nhưng trước khi đưa ra thị trường phần mềm phải trải qua một qui trình Test rất nghiêm ngặt bao gồm Test hệ thống, test theo các tiêu chuẩn nhiệm thu và test theo yêu cầu của khách hàng. Trong lĩnh vực công nghệ phần mềm test chương trình là một nghề nghiệp đặc biệt không chỉ đòi hỏi về chuyên môn mà phải có kiến thức sâu rộng về rất nhiều lĩnh vực * Các dấu hiệu Qui trình test trong công nghệ phần mềm được đặc trưng bởi các dấu hiệu sau đây Lập các kịch bản test (scenanio) Test hệ thống Test nhiệm thu Test theo yêu cầu của khách hàng Trong qui trình test vấn đề lập kịch bản có vai trò đặc biệt quan trọng vì đây chính là nền tảng là chìa khóa để xác định được bản chất của phần mềm. Để có một kịch bản hiệu quả người cán bộ test phải có những am hiểu chuyên sâu về lĩnh vực mà phần mềm đã sử dụng. * Lưu đồ MĐ KT Kịch bản test Test HT Test nhịêm thu Test theo t/c KH Duyệt TKKT Lập KH test Lập HS test k.duyệt duyệt Qui trình 6: Qui trình triển khai trong công nghệ phần mềm * Mục đích Qui trình triển khai là qui trình cuối cùng trong công đoạn sản xuất một phần mềm công nghiệp. Mục đích của công đoạn này là cài đặt phần mềm cho khách hàng, đào tạo sử dụng và bàn giao cho khách hàng. * Các dấu hiệu Qui trình triển khai trong công nghệ phần mềm được đặc trưng bởi các dấu hiệu sau đây. Cài đặt máy chủ Cài đặt máy trạm Đào tạo sử dụng Lập biên bản bàn giao cho khách hàng * Lưu đồ MĐ KT Lập giải pháp t.khai Cài đặt server Cài đặt m.trạm Đào tạo s.dụng Kiểm tra giải pháp Lập KH t.khai Biên bản k.thông qua thông qua CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH QUẢN LÝ BÁN HÀNG 3.1 Các chức năng xử lý hệ thống thông tin"Quản lý bán hàng " của công ty Cổ phần thiết bị máy tính Thiên An 3.1.1 Chức năng quản lý hệ thống: Chức năng này có nhiệm vụ đăng nhập vào hệ thống, quản trị người dùng và hướng dẫn chung cho người sử dụng. 3.1.2 Chức năng quản lý hàng nhập: Dựa vào số liệu kiểm kê kho, số liệu yêu cầu cần mua của bộ phận bán hàng các phiếu chào hàng của các hãng cung cấp, đồng thời kết hợp với thông tin của thị trường, bộ phận mua hàng lập bảng dự trù thông qua sự kiểm duyệt của ban giám đốc sau đó liên hệ với nhà cung cấp để thoả thuận hợp đồng mua hàng cập nhật thông tin mua hàng. 3.1.3 Chức năng quản lý hàng xuất (bán): Khi có khách hàng có nhu cầu cần mua hàng, chức năng này sẽ có nhiệm vụ điền tất cả các thông tin liên quan đến khách hàng mà đã được lưu trữ. Nếu là khách hàng mới phải thêm vào danh mục khách hàng. Nếu là khách đã tồn tại phải kiểm tra lại thông tin xem có chính xác không? Sau đó bộ phận bán hàng lần lượt duyệt các mặt hàng khách yêu cầu, kiểm tra số lượng mặt hàng mà công ty có thể bán. Có thể xảy ra các trường hợp sau: Mặt hàng này công ty không có hoặc hệ thống thông tin chào hàng không có trong công ty. Trường hợp này phải từ chối bán hàng. Công ty có đủ số lượng, quy cách cũng như yêu cầu:Trường hợp này tiếp tục thoả thuận về giá cả. Công ty không có các mặt hàng này nhưng hệ thống thông tin chào hàng có các thông tin liên quan đến mặt hàng này, qua đó bộ phận tiếp thị có thể trao đổi với khách hàng. Nếu khách hàng chấp nhận thì bộ phận bán hàng sẽ đề nghị với bộ phận nhập hàng liên hệ với nhà cung cấp để khẳng định lại việc đặt hàng. Sở dĩ như vậy là để tăng độ tin cậy của phiếu chào hàng của các nhà cung cấp. Công ty có đầy đủ số lượng và quy cách mặt hàng theo yêu cầu của khách nhưng trong kho không còn đủ số lượng và quy cách do bán hết hoặc còn thiếu thì có thể thảo luận với khách hàng về việc cung cấp tiếp các mặt hàng còn lại. Khi đã thống nhất được với khách hàng về sản phẩm mua, giá cả và tính sãn sàng của hàng hóa,chức năng sẽ có nhiệm vụ liệt kê thông tin hàng cần mua và tính giá tiền. Đơn giá so với đơn giá chính người bán hàng có thể thay đổi theo quy định của phòng quản lý bán hàng, cuối tháng sẽ tính lãi xuất kinh doanh. 3.1.4 Chức năng tìm kiếm: Khi nhà quản lý có nhu cầu kiểm tra lại thông tin hóa đơn, chức năng này sẽ có nhiệm vụ cung cấp các hóa đơn đã nhập, các hóa đơn đã bán, các phiếu xuất… 3.1.5 Chức năng báo cáo và in ấn: Khi thực hiện làm các hoá đơn xuất nhập tồn kho xong thì người dùng cần phải in ra báo cáo xuất nhập tồn kho một cách chi tiết nhất… 3.2. Một số ký hiệu dùng trong sơ đồ: 3.2.1 Chức năng: Trong sơ đồ dòng dữ liệu, chức năng hay tiến trình là một quá trình biến đổi thông tin. Từ thông tin đầu vào nó biến đổi, tổ chức lại thông tin, bổ sung thông tin hoặc tạo ra thông tin mới, tổ chức thành thông tin đầu ra, phục vụ cho các hoạt động của hệ thống như lưu vào kho dữ liệu hoặc gửi cho các tiến trình hay đối tượng khác. Tên chức năng 3.2.2 Dòng dữ liệu Tên dòng dữ liệu Là việc cung cấp thông tin vào, ra khỏi một tiến trình. Mỗi dòng dữ liệu phải có tên gắn kèm với nó. 3.2.3 Kho dữ liệu: Là nơi biểu diễn thông tin cần cất giữ để một hoặc nhiều chức năng sử dụng dưới dạng vật lý, các dữ liệu trong kho có thể là các tệp tài liệu cất trong văn phòng hay các tệp lưu trong nó nhưng ở đây ta chỉ quan tâm đến thông tin chứa trong nó. Tên kho dữ liệu 3.3 Mô tả hoạt động hệ thống 3.3.1 Sơ đồ BFD : QUẢN LÝ BÁN HÀNG Khách hàng Thủ tục thanh toán Marketing Yêu cầu bán hàng Nhận đơn đặt hàng Xử lý đơn đặt hàng Kiểm tra hàng hoá Lưu đơn đặt hàng Quản lý thông tin khách hàng Theo dõi nhu cầu khách hàng Lưu trữ thông tin Kiểm tra hàng hoá Làm thủ tục thanh toán In hoá đơn Giới thiệu hàng hoá Báo giá Ghi thông tin về khách hàng 3.3.2. Sơ đồ luồng dữ liệu: Thanh to¸n Thông tin NCC Phiếu xuất hàng Th«ng tin kh¸ch hµng QUẢN LÝ BÁN HÀNG Kh¸ch hµng Nhµ cung cÊp Phßng qu¶n lý Yêu cầu mua hàng Từ chối bán hàng Gửi đơn đặt hàng Phiếu giao hàng Göi b¸o c¸o Tr¶ lêi kÕt qu¶ 3.3.3 Sơ đồ DFD: * Mức 0: Tonkho Hàng + Phiếu xuất Hàng bán QUẢN LÝ XUẤT HÀNG QUẢN LÝ NHẬP HÀNG Dmhang Phieuxuat Tr¶ lêi kÕt qu¶ T×m kiÕm th«ng tin Từ chối bán hàng Yªu cÇu mua hàng Kh¸ch hµng T×m kiÕm B¸o c¸o Th«ng tin kh¸ch hµng Göi ®¬n ®Æt hµng Hàng KM Hangmua Dmncc Nhµ cung cÊp Dmhang Dmkhach HDmuaH Phieunhap Dmhang Dmkhach Dmhang Thanh to¸n Th«ng tin nhµ cung cÊp Gửi báo cáo Trả lời kết quả NHÀ CUNG CẤP Hµng + Hãa ®¬n LËp b¸o c¸o nhËp 3.3.4 Sơ đồ DFD mức 1: * Mức 1 - Sơ đồ tìm kiếm: phßng qu¶n lý Khachhang T×m kiÕm kh¸ch hµng T×m kiÕm th«ng tin T×m kiÕm th«ng tin Th«ng tin tr¶ lêi T×m kiÕm th«ng tin T×m kiÕm hãa ®¬n Tìm kiếm sản phẩm Th«ng tin tr¶ lêi Hoadonxuat Nhaphang Hoadonnhap Th«ng tin tr¶ lêi Hanghoa * Mức 1 - Sơ đồ nhập hàng DS mÆt hµng nhËp B¸o c¸o nhËp Th«ng tin nhµ c2 dù trï Nhµ cung cÊp T×m nhµ CC Sè hiÖu mÆt hµng mua Th­¬ng l­îng Mua hµng Nhµ cung cÊp Hµng Danh s¸ch mÆt hµng nhËp LËp b¸o c¸o nhËp DS nhµ cung cÊp Giao hµng §èi chiÕu * Mức 1 - Sơ đồ xuất hàng Kh¸ch hµng Yªu cÇu mua hµng ChÊp nhËn Tõ chèi Ghi danh s¸ch hµng tiªu thô Tµi chÝnh B¸o c¸o xuÊt LËp b¸o c¸o xuÊt §èi chiÕu Göi DS MÆt hµng tiªu thô PhiÕu y/c ho¸ ®¬n xuÊt DS kh¸ch mua * Mức 1 - Sơ đồ Báo cáo: B¶n thèng kª nhËp B¶n danh môc NCC B¶n danh môc kh¸ch Yªu cÇu thèng kª B¶n thèng kª b¸n Yªu cÇu thèng kª Phßng qu¶n lý Thống kê hàng xuất Thống kê hàng nhập B¸o c¸o tån kho In danh môc NCC In danh môc kh¸ch Tonkho Hangban Hangban Dmkhach B¶n b¸o c¸o tån Dmncc 3.4 Thiết kế phần mềm 3.4.1 Thiết kế kiến trúc. Đăng nhập lại Hướng dẫn sử dụng Thoát Nhân viên QUẢN LÝ BÁN HÀNG Quản lý danh mục Quản lý công nợ Tìm kiếm Báo cáo Quản lý hệ thống Nhà cung cấp Khách hàng Hàng hoá Hoá đơn nhập Hoá đơn bán Nhà cung cấp Khách hàng Tim kiếm hoá đơn nhập Tìm kiếm hoá đơn bán Tìm kiếm Khách hàng BC hàng nhập BC hàng bán BC hàng tồn Doanh thu bán hàng Công nợ nhà cung cấp Công nợ khách hàng 3.4.2 Sơ đồ quan hệ thực thể - ERD Cửa hàng Nhà cung cấp Khách hàng Mặt hàng Có Mua Bán Có Có Hoá đơn 3.4.3 Mô hình quan hệ 3.5 Chuẩn hoá dữ liệu: Sau khi đã chuẩn 3NF, ta có bảng dữ liệu sau: Tên bảng Khoá chính Trường dữ liệu HangHoa Mahang Mahang, Tenhang, DVTinh, Giaban, Gianhap, MaNCC NhaCungCap MaNCC MaNCC, TenNCC, DiachiNCC, DienthoaiNCC KhachHang MaKH MaKH, TenKH, DiachiKH, DienthoaiKH ChiTietBan SoHDB SoHDB, Mahang, Tenhang, DVTinh, Giaban, Luongban ChiTietNhap SoHDN SoHDN, Mahang, Tenhang, DVTinh, Gianhap, Luongnhap HoaDonBan MaKH, SoHDB SoHDB, Ngaylap, MaKH, HTTT, Tongthanhtien, Tongthanhtien2 HoaDonNhap MaNCC, SoHDN SoHDN, Ngaylap, MaNCC, HTTT, Tongthanhtien, Tongthanhtien2 HoaDonThanhToanBan SoHDTTB SoHDTTB, MaKH, SoHDB, Tongthanhtien, Sotientra, Conlai, Mahang HoaDonThanhToanNhap SoHDTTN SoHDTTN, MaNCC, SoHDN, Tongthanhtien, Sotientra, Conlai NhanVien MaNV MaNV, TenNV, Matkhau 3.6 Thiết kế cơ sở dữ liệu. Từ mối quan hệ các thực thể và các thuộc tính đã phân tính ta tiến hành xây dựng bảng cơ sở dữ liệu như sau: 3.6.1. HangHoa(Mahang, Tenhang, DVTinh, Giaban,Gianhap, MaNCC) STT Tên trường Kiểu Độ rộng Ghi chú 1 Mahang Text 5 Mã hàng 2 Tenhang Text 30 Tên hàng 3 DVTinh Text 10 Đơn vị tính 4 Giaban Number Long Integer Giá bán 5 Gianhap Number Long Integer Giá nhập 6 MaNCC Text 5 Mã nhà cung cấp 3.6.2. NhaCungCap (MaNCC, TenNCC, DiachiNCC, DienthoaiNCC) STT Tên trường Kiểu Độ rộng Ghi chú 1 MaNCC Text 5 Mã nhà cung cấp 2 TenNCC Text 30 Tên nhà cung cấp 3 DiachiNCC Text 30 Địa chỉ nhà cung cấp 4 DienthoaiNCC Text 10 Số điện thoại 2.6.3. KhachHang (MaKH, TenKH, DiachiKH, DienthoaiKH) STT Tên trường Kiểu Độ rộng Ghi chú 2 MaKH Text 5 Mã khách 3 TenKH Text 30 Tên khách 4 DiachiKH Text 50 Địa chỉ 5 DienthoaiKH Text 10 Số điện thoại 3.6.4. ChiTietBan (SoHDB, Mahang, Tenhang, DVTinh, Giaban, Luongban) STT Tên trường Kiểu Độ rộng Ghi chú 1 SoHDB Text 5 Số hoá đơn bán 2 Mahang Text 30 Mã hàng 3 Tenhang Text 30 Tên hàng 4 DVTinh Text 10 Đơn vị tính 5 Giaban Number Long Integer Giá bán 6 Luongban Number Long Integer Lượng bán 3.6.5. ChiTietNhap (SoHDN, Mahang, Tenhang, DVTinh, Gianhap, Luongnhap) STT Tên trường Kiểu Độ rộng Ghi chú 1 SoHDN Text 5 Số hoá đơn bán 2 Mahang Text 30 Mã hàng 3 Tenhang Text 30 Tên hàng 4 DVTinh Text 10 Đơn vị tính 5 Gianhap Number Long Integer Giá nhập 6 Luongnhap Number Long Integer Lượng nhập 3.6.6 HoaDonBan(SoHDB, Ngaylap, MaKH, HTTT, Tongthanhtien, Tongthanhtien2) STT Tên trường Kiểu Độ rộng Ghi chú 1 SoHDB Text 5 Số hoá đơn bán 2 Ngaylap Date 10 Ngày lập 3 MaKH Text 5 Mã khách hàng 4 HTTT Text 15 Hình thức thanh toán 5 Tongthanhtien Number Long Integer Tổng thành tiền 6 Tongthanhtien2 Number Long Integer Tổng thành tiền nợ 3.6.7 HoaDonNhap(SoHDN, Ngaylap, MaNCC, HTTT, Tongthanhtien, Tongthanhtien2) STT Tên trường Kiểu Độ rộng Ghi chú 1 SoHDN Text 5 Số hoá đơn bán 2 Ngaylap Date 10 Ngày lập 3 MaNCC Text 5 Mã nhà cung cấp 4 HTTT Text 15 Hình thức thanh toán 5 Tongthanhtien Number Long Integer Tổng thành tiền 6 Tongthanhtien2 Number Long Integer Tổng thành tiền nợ 3.6.8. HoaDonThanhToanBan(SoHDTTB, MaKH, SoHDB, Tongthanhtien, Sotientra, Conlai, Mahang) STT Tên trường Kiểu Độ rộng Ghi chú 1 SoHDTTB Text 5 Số hoá đơn bán thanh toán bán 2 SoHDB Text 5 Số hoá đơn bán 3 MaKH Text 5 Mã khách hàng 4 Tongthanhtien Number 12 Tổng thành tiền 5 Sotientra Number 12 Số tiền trả 6 Conlai Number 12 Số tiền còn lại 7 Mahang Text 5 Mã hàng 3.6.9 HoaDonThanhToanNhap(SoHDTTN, MaNCC, SoHDN, Tongthanhtien, Sotientra, Conlai) STT Tên trường Kiểu Độ rộng Ghi chú 1 SoHDTTN Text 5 Số hoá đơn bán thanh toán nhập 2 SoHDN Text 5 Số hoá đơn nhập 3 MaNCC Text 5 Mã Nhà cung cấp 4 Tongthanhtien Number 12 Tổng thành tiền 5 Sotientra Number 12 Số tiền trả 6 Conlai Number 12 Số tiền còn lại 3.6.10 NhanVien(MaNV, TenNV, Matkhau) STT Tên trường Kiểu Độ rộng Ghi chú 1 MaNV Text 5 Mã nhân viên 2 TenTN Text 15 Tên truy nhập 3 Matkhau Text 6 Mật khẩu 3.7. Các modul chương trình 3.7.1 Modul đăng nhập i = 0 Bắt đầu Nhập tên người dùng và mật khẩu Kiểm tra tên, mật khẩu Thông báo mật khẩu sai i = i+1 I=3 Kết thúc Vào Form chính Đ S S Đ 3.7.2 Modul cập nhật dữ liệu Chọn danh mục cần cập nhật Bắt đầu Nạp dữ liệu theo từng trường Dữ liệu thoả mãn điều kiện Kết thúc Cập nhật dữ liệu Đ S Báo lỗi Nhập lại dữ liệu 3.7.3 Modul bán hàng Vào form danh mục khách hàng Bắt đầu Nhập thông tin đặt hàng Kiểm tra thông tin Hiển thị thông tin đặt hàng Đặt hàng Kết thúc Đ S S Đ Nhập sai thông tin Nhập lại Đóng form cập nhật hàng hoá Đ S 3.7.4 Modul In hoá đơn Thông tin hàng hoá và thông tin khách hàng Bắt đầu Kiểm tra hàng hoá Nhập số tiền Kết thúc Đ S In hoá đơn 1 MODULE XỬ LÝ ĐẶT HÀNG CƠ SỞ DỮ LIỆU LƯU ĐẶT HÀNG 21 XUẤT MODULE XỬ LÝ HÓA ĐƠN 3 THÔNG TIN HÀNG HOÁ HÓA ĐƠN XUẤT MODULE XỬ LÝ NHẬP HÀNG 4 MODULE XỬ LÝ XUẤT HÀNG NHẬP HÀNG XUẤT HÀNG LƯU LƯU 51 BÁO CÁO THÁNG XUẤT MODULE XỬ LÝ LẬP HÓA ĐƠN XUẤT 6 MODULE XỬ LÝ TÌM KIẾM 8 9 10 11 MODULE QUẢN LÝ NGƯỜI DÙNG MODULE XỬ LÝ HÀNG HOÁ MODULE XỬ LÝ LOẠI HÀNG MODULE XỬ LÝ NHẬP HÀNG MODULE XỬ LÝ XUẤT HÀNG 12 13 NGƯỜI QUẢN TRỊ MODULE CẬP NHẬT THÔNG TIN KHÁCH SẠN CẤU HÌNH HỆ THỐNG 3.8 Mô hình xử lý các Modul chính của hệ thống 3.9. Thiết kế giao diện 3.9.1 Form Menu Chức năng quản lý chung chương trình bao gồm: các menu con trú dẫn đến các Form. 3.9.1.2 Menu quản lý hệ thống 3.9.1.3 Menu quản lý danh mục 3.9.1.4 Menu quản lý công nợ 3.9.1.5 Menu tìm kiếm 3.9.1.6 Menu báo cáo 3.9.2 Form đăng nhập hệ thống: Trước tiên muốn sử dụng được hệ thống “Quản lý bán hàng” ta cần phải biết các đăng nhập vào hệ thống. Thực hiện vào Menu “Quản lý hệ thống” chọn menu con “Đăng nhập lại”, xuất hiện một giao diện cho người sử dụng nhập tên và mật khẩu, nếu nhập không chính xác sẽ có thông báo nhập lại. Khi tên và mật khẩu đã chính xác thì hệ thống quản lý mới được mở khoá. 3.9.3. Form danh sách nhân viên: Khi đăng nhập thành công bạn có thể xem và thêm thông tin về nhân viên trong hệ thống. Nếu đăng ký trùng tên và mật khẩu đã có chương trình sẽ yêu cầu nhập lại. 3.9.4. Form hướng dẫn sử dụng 3.9.5 Menu quản lý danh mục 3.9.5.1. Form cập nhật danh mục hàng Khi cần thêm một danh mục hàng hóa, ta kích vào nút “thêm” khi đó ta tiến hành nhập mã hàng, tên hàng, đơn vị tính,… vào các ô text. Khi nhập thông tin xong kích vào nút “Lưu” để ghi lại thông tin vào cơ sở dữ liệu. Mã lệnh chương trình của form: Dim Conn As New ADODB.Connection Dim RsMaHang As New ADODB.Recordset Dim NapTuDong As New ADODB.Recordset Dim RsTimLuongTon As New ADODB.Recordset Private Sub NapCmbMaHang() Dim SQL As String SQL = " Select MaHang From HangHoa Order by MaHang" RsMaHang.Open SQL, Conn CmbMaHang.Clear Do While Not RsMaHang.EOF CmbMaHang.AddItem RsMaHang!MaHang RsMaHang.MoveNext Loop RsMaHang.Close End Sub Private Sub KhongChoUpDate() GrdHH.AllowUpdate = False End Sub Private Sub ChoPhepUpDate() GrdHH.AllowUpdate = True CmbMaHang.Locked = False TxtTenHang.Locked = False TxtDVTinh.Locked = False TxtGiaNhap.Locked = False TxtGiaBan.Locked = False TxtLuongTon.Locked = False End Sub Private Sub CmbMaHang_Click() Dim Str As String Str = "SELECT TenHang, DVTinh,GiaNhap,GiaBan,LuongTon FROM HangHoa WHERE MaHang ='" & CmbMaHang.Text & "'" NapTuDong.Open Str, Conn TxtTenHang.Text = NapTuDong!TenHang TxtDVTinh.Text = NapTuDong!DVTinh TxtGiaNhap.Text = NapTuDong!GiaNhap TxtGiaBan.Text = NapTuDong!GiaBan TxtLuongTon.Text = NapTuDong!LuongTon NapTuDong.Close End Sub Private Sub CmdChon_Click(Index As Integer) Dim SQL As String SQL = " SELECT LuongTon FROM HangHoa WHERE MaHang = '" & CmbMaHang.Text & "'" RsTimLuongTon.Open SQL, Conn, adOpenKeyset, adLockPessimistic If RsTimLuongTon!LuongTon > 0 Then MsgBox "Kh«ng Söa §­îc Do §· Ph¸t Sinh Giao DÞch !", vbInformation + vbOKOnly, " C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An " Else ChoPhepUpDate End If RsTimLuongTon.Close End Sub Private Sub CmdLuu_Click(Index As Integer) Dim SQL As String TxtLuongTonTuDo = 0 SQL = "INSERT INTO HangHoa VALUES ('" & CmbMaHang.Text & "','" & TxtTenHang.Text & "','" & TxtDVTinh.Text & "','" & TxtGiaNhap.Text & "','" & TxtGiaBan.Text & "','" & TxtLuongTonTuDo.Text & "')" Conn.Execute SQL MsgBox " §· L­u Thµnh C«ng", vbInformation, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdodcHH.Refresh NapCmbMaHang CmbMaHang.Text = "" TxtTenHang.Text = "" TxtDVTinh.Text = "" TxtGiaNhap.Text = "" TxtGiaBan.Text = "" TxtLuongTon.Text = "" GrdHH.AllowUpdate = False End Sub Private Sub Form_Load() AdodcHH.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" NapAdodcHH NapCmbMaHang KhongChoUpDate End Sub Private Sub NapAdodcHH() AdodcHH.CommandType = adCmdText AdodcHH.RecordSource = "SELECT * FROM HangHoa ORDER BY MaHang" AdodcHH.Refresh End Sub Private Sub CmdFirst_Click() AdodcHH.Recordset.MoveFirst End Sub Private Sub cmdPri_Click() If AdodcHH.Recordset.BOF = False Then AdodcHH.Recordset.MovePrevious Else MsgBox "Kh«ng Cßn B¶n Ghi Nµo N÷a ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdodcHH.Recordset.MoveFirst End If End Sub Private Sub cmdNext_Click() If AdodcHH.Recordset.EOF = False Then AdodcHH.Recordset.MoveNext Else MsgBox "Kh«ng Cßn B¶n Ghi Nµo N÷a ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdodcHH.Recordset.MoveLast End If End Sub Private Sub CmdLast_Click() AdodcHH.Recordset.MoveLast End Sub Private Sub CmdThem_Click() Dim TraLoi As Integer TraLoi = MsgBox("B¹n Muèn Thªm B¶n Ghi Míi ?", vbInformation + vbYesNo, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An") If TraLoi = vbNo Then AdodcHH.Refresh Exit Sub Else AdodcHH.Recordset.AddNew ChoPhepUpDate CmbMaHang.SetFocus End If End Sub Private Sub CmdSua_Click() Dim SQL As String Dim TraLoi As Integer TraLoi = MsgBox("B¹n Muèn Söa Th«ng Tin Cña B¶n Ghi ?", vbInformation + vbYesNo, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An") If TraLoi = vbNo Then AdodcHH.Refresh Exit Sub Else SQL = "UPDATE HangHoa SET TenHang = '" & TxtTenHang.Text & "',DVTinh = '" & TxtDVTinh.Text & "',GiaNhap = '" & TxtGiaNhap.Text & "',GiaBan = '" & TxtGiaBan.Text & "' WHERE MaHang ='" & CmbMaHang.Text & "'" Conn.Execute SQL KhongChoUpDate SQL = "UPDATE ChiTietNhap SET TenHang = '" & TxtTenHang.Text & "',DVTinh = '" & TxtDVTinh.Text & "' ,GiaNhap = '" & TxtGiaNhap.Text & "' WHERE MaHang= '" & CmbMaHang.Text & "'" Conn.Execute SQL SQL = "UPDATE ChiTietBan SET TenHang = '" & TxtTenHang.Text & "',DVTinh = '" & TxtDVTinh.Text & "' ,GiaBan = '" & TxtGiaBan.Text & "' WHERE MaHang= '" & CmbMaHang.Text & "'" Conn.Execute SQL MsgBox " §· Söa Thµnh C«ng", vbInformation, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdodcHH.Refresh End If End Sub Private Sub CmdXoa_Click() Dim SQL, SQL2 As String SQL = " SELECT LuongTon FROM HangHoa WHERE MaHang = '" & CmbMaHang.Text & "'" RsTimLuongTon.Open SQL, Conn, adOpenKeyset, adLockPessimistic If RsTimLuongTon!LuongTon > 0 Then MsgBox "Kh«ng Xo¸ §­îc Do §· Ph¸t Sinh Giao DÞch !", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" Else SQL2 = "DELETE FROM HangHoa WHERE MaHang = '" & CmbMaHang.Text & "'" Conn.Execute SQL2 MsgBox " §· Xo¸ Thµnh C«ng", vbInformation, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdodcHH.Refresh NapCmbMaHang CmbMaHang.Text = "" TxtTenHang.Text = "" TxtDVTinh.Text = "" TxtGiaNhap.Text = "" TxtGiaBan.Text = "" TxtLuongTon.Text = "" End If RsTimLuongTon.Close End Sub Private Sub CmdVeMain_Click() FrmHangHoa.Visible = False FrmMain.Visible = True End Sub 3.9.5.2 Form danh mục nhà cung cấp Khi đặt hàng tại nhà cung cấp mới, nếu nhà cung cấp đó đã có trong hệ thống quản lý thi chúng ta lấy trực tiếp, ngược lại nếu nhà cung cấp chưa được lưu giữ trong hệ thống thì chúng ta cần phải nhập thêm vào cơ sở dữ liệu. Nhập thông tin cần của một nhà cung cấp, sau khi nhập đầy đủ thông tin thực hiện vào nút “Lưu” để ghi thông tin vào cơ sở dữ liệu. 3.9.5.3 Form cập nhật danh mục khách hàng. Khi có khách hàng mua sản phẩm cua công ty, nếu cần lưu trữ thông tin khách hàng thì kích vào nút “Thêm” thực hiện quá trình nhập thông tin khách hàng. Nhập thông tin khách hàng xong kích vào nút “Lưu” để ghi lại thông tin khách hàng vào cơ sở dữ liệu. 3.9.5.4. Form hoá đơn nhập hàng Khi thêm một hóa đơn nhập hàng kích vào nút lệnh “Thêm”. Nguồn hàng nhập từ nhà cung cấp nào thì chọn mã nhà cung cấp đó, lúc đó thông tin liên quan đến nhà cung cấp sẽ được hiển thị trong những hộp text. Bên dưới là danh sách các mặt hàng được nhập vào hóa đơn, khi bạn nhập đầy đủ thông tin kích vào nút “Ghi” để lưu dữ liệu vào trong hệ thống, sau đó thì thoát khỏi form nhập hoá đơn. Mã lệnh chương trình của form: Dim Conn As New ADODB.Connection Dim KiemTraLuuHH, KiemTraLuuHD As Integer Dim RsMaNCC As New ADODB.Recordset Dim RsMaHang As New ADODB.Recordset Dim RsTimLuongTon As New ADODB.Recordset Dim RsTimLuongNhap As New ADODB.Recordset Dim RsKiemTraChiTietNhap1 As New ADODB.Recordset Dim RsKiemTraChiTietNhap2 As New ADODB.Recordset Dim RsTimGhiNoNCC As New ADODB.Recordset Dim HienThiGrid As New ADODB.Recordset Dim NapTuDong As New ADODB.Recordset Private Sub NapToolTip() CmdThemMH.ToolTipText = " Thªm MÆt Hµng Míi" CmdLuuMH.ToolTipText = " L­u MÆt Hµng Võa NhËp " CmdChonMH.ToolTipText = "Chän MÆt Hµng " CmdSuaMH.ToolTipText = "Söa Th«ng Tin Cña MÆt Hµng" CmdXoaMH.ToolTipText = "Xo¸ MÆt Hµng Võa Chän" CmdThemHoaDon.ToolTipText = "Thªm Ho¸ §¬n" CmdLuuHoaDon.ToolTipText = "L­u Ho¸ §¬n" CmdSuaHoaDon.ToolTipText = "Söa Ho¸ §¬n" CmdXoaHoaDon.ToolTipText = "Xo¸ Ho¸ §¬n" CmdThoat.ToolTipText = "Tho¸t" End Sub Private Sub KhongChoUpDate() TxtSoHDN.Locked = True TxtNgayLap.Locked = True CmbMaNCC.Locked = True TxtTongThanhTien.Locked = True TxtTongThanhTien2.Locked = True CmbMaHang.Locked = True TxtTenHang.Locked = True TxtDVTinh.Locked = True TxtGiaNhap.Locked = True TxtLuongNhap.Locked = True GrdDMHangNhap.AllowDelete = False End Sub Private Sub ChoUpdate() TxtSoHDN.Locked = False TxtNgayLap.Locked = False CmbMaNCC.Locked = False TxtTongThanhTien.Locked = False TxtTongThanhTien2.Locked = False CmbMaHang.Locked = False TxtTenHang.Locked = False TxtDVTinh.Locked = False TxtGiaNhap.Locked = False TxtLuongNhap.Locked = False GrdDMHangNhap.AllowDelete = True End Sub Private Sub NapCmbMaNCC() Dim SQL As String SQL = " Select MaNCC From NhaCungCap Order by MaNCC" RsMaNCC.Open SQL, Conn CmbMaNCC.Clear Do While Not RsMaNCC.EOF CmbMaNCC.AddItem RsMaNCC!MaNCC RsMaNCC.MoveNext Loop RsMaNCC.Close End Sub Private Sub NapCmbMaHang() Dim SQL As String SQL = " Select MaHang From HangHoa Order by MaHang" RsMaHang.Open SQL, Conn CmbMaHang.Clear Do While Not RsMaHang.EOF CmbMaHang.AddItem RsMaHang!MaHang RsMaHang.MoveNext Loop RsMaHang.Close End Sub Private Sub NapOption() If TxtHTTT.Text = "Thanh To¸n Ngay" Then Option1.Value = True Else Option2.Value = True End If If TxtSoHDN.Text = "" Then TxtHTTT.Text = "" Option1.Value = False Option2.Value = False End If End Sub Private Sub CmdChonMH_Click() NapCmbMaHang TxtTenHang.Text = "" TxtGiaNhap.Text = "" TxtLuongNhap.Text = "" TxtDVTinh.Text = "" ChoUpdate CmbMaHang.SetFocus End Sub Private Sub Form_Load() KiemTraLuuHD = 0 AdoCTN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" AdoHDN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" NapAdoHDN NapAdoCTN Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" NapOption TinhThanhTien HienThiGrid.Open "Select * From ChiTietNhap", Conn, adOpenDynamic, adLockOptimistic NapToolTip KhongChoUpDate End Sub Private Sub NapAdoCTN() AdoCTN.CommandType = adCmdText AdoCTN.RecordSource = " SELECT * FROM ChiTietNhap WHERE SoHDN='" & TxtSoHDN.Text & "'" AdoCTN.Refresh End Sub Private Sub NapAdoHDN() AdoHDN.CommandType = adCmdText AdoHDN.RecordSource = "SELECT SoHDN, NgayLap, MaNCC, HTTT, TongThanhTien, TongThanhTien2 FROM HoaDonNhap Order by SoHDN" AdoHDN.Refresh End Sub Private Sub CmbMaHang_Click() Dim Str As String Str = "SELECT TenHang,DVTinh, GiaNhap FROM HangHoa WHERE HangHoa.MaHang='" & CmbMaHang.Text & "'" NapTuDong.Open Str, Conn TxtTenHang.Text = NapTuDong!TenHang TxtDVTinh.Text = NapTuDong!DVTinh TxtGiaNhap.Text = NapTuDong!GiaNhap TxtLuongNhap.SetFocus NapTuDong.Close End Sub Private Sub TinhThanhTien() Dim ThanhTien As New ADODB.Recordset Dim Str As String If TxtSoHDN.Text "" Then Str = "SELECT SUM(LuongNhap*GiaNhap) AS TongThanhTien From ChiTietNhap GROUP BY SoHDN AND SoHDN='" & TxtSoHDN.Text & "'" ThanhTien.Open Str, Conn TxtTongThanhTien.Text = ThanhTien!TongThanhTien ThanhTien.Close End If If TxtHTTT.Text = "Ghi Nî" Then TxtTongThanhTien2.Text = 0 - Val(TxtTongThanhTien.Text) Else TxtTongThanhTien2.Text = Val(TxtTongThanhTien.Text) End If If TxtHTTT.Text = "" Then TxtTongThanhTien2.Text = "" End If End Sub Private Sub CmdThemHoaDon_Click() AdoHDN.Recordset.AddNew ChoUpdate TxtSoHDN.Text = "" CmbMaNCC.Text = "" Option1.Value = False Option2.Value = False TxtHTTT.Text = "" TxtNgayLap.Text = "" TxtTongThanhTien.Text = "" TxtTongThanhTien2.Text = "" CmbMaHang.Text = "" TxtTenHang.Text = "" TxtDVTinh.Text = "" TxtGiaNhap.Text = "" TxtLuongNhap.Text = "" NapAdoCTN NapCmbMaNCC NapCmbMaHang TxtSoHDN.SetFocus End Sub Private Sub CmdLuuHoaDon_Click() KiemTraLuuHD = 1 Dim SQL As String TxtTuDoText.Text = "" TxtTuDoSo = 0 If TxtSoHDN.Text = "" Or CmbMaNCC.Text = "" Or TxtHTTT.Text = "" Or TxtNgayLap.Text = "" Or CmbMaHang.Text = "" Or TxtLuongNhap.Text = "" Then MsgBox "B¹n Ch­a NhËp §ñ Th«ng Tin ! ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" Exit Sub End If SQL = "DELETE FROM HoaDonNhap WHERE SoHDN='" & TxtSoHDN.Text & "'" Conn.Execute SQL SQL = "INSERT INTO HoaDonNhap VALUES ('" & TxtSoHDN.Text & "','" & TxtNgayLap.Text & "','" & CmbMaNCC.Text & "','" & TxtHTTT.Text & "'," & TxtTongThanhTien.Text & "," & TxtTongThanhTien2.Text & ")" Conn.Execute SQL If TxtHTTT.Text = "Ghi Nî" Then SQL = "INSERT INTO HoaDonThanhToanNhap VALUES ('" & TxtTuDoText.Text & "','" & CmbMaNCC.Text & "','" & TxtSoHDN.Text & "'," & TxtTongThanhTien.Text & "," & TxtTuDoSo.Text & "," & TxtTongThanhTien.Text & ")" Conn.Execute SQL End If KhongChoUpDate MsgBox " §· L­u Thµnh C«ng", vbInformation, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdoHDN.Refresh CmbMaHang.Text = "" TxtTenHang.Text = "" TxtDVTinh.Text = "" TxtGiaNhap.Text = "" TxtLuongNhap.Text = "" End Sub Private Sub CmdSuaHoaDon_Click() AdoHDN.Recordset.Update TinhThanhTien End Sub Private Sub CmdXoaHoaDon_Click() MsgBox " Kh«ng Xo¸ §­îc Do §· Ph¸t Sinh Giao DÞch ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" End Sub Private Sub CmdThoat_Click() If KiemTraLuuHH = 1 And KiemTraLuuHD = 0 Then MsgBox "B¹n Ch­a L­u Ho¸ §¬n ?", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" Exit Sub End If FrmHoaDonNhapHang.Visible = False FrmMain.Visible = True End Sub Private Sub CmdThemMH_Click() Dim TraLoi As Integer TraLoi = MsgBox("B¹n Muèn Thªm B¶n Ghi Míi ?", vbInformation + vbYesNo, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An") If TraLoi = vbNo Then AdoCTN.Refresh Exit Sub Else NapCmbMaHang TxtTenHang.Text = "" TxtGiaNhap.Text = "" TxtLuongNhap.Text = "" TxtDVTinh.Text = "" ChoUpdate CmbMaHang.SetFocus End If End Sub Private Sub CmdLuuMH_Click() KiemTraLuuHH = 1 Dim SQL As String Dim RsKiemTraChiTietNhap As New ADODB.Recordset Dim RsKiemTraHangHoa As New ADODB.Recordset Dim TraLoi As Integer If TxtLuongNhap.Text = "" Then MsgBox "Ch­a Cã L­îng NhËp ! ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An""" Exit Sub End If SQL = "SELECT MaHang FROM ChiTietNhap WHERE MaHang='" + CmbMaHang.Text + "'" RsKiemTraChiTietNhap1.Open SQL, Conn If RsKiemTraChiTietNhap1.EOF Then SQL = "INSERT INTO ChiTietNhap VALUES ('" & TxtSoHDN.Text & "','" & CmbMaHang.Text & "','" & TxtTenHang.Text & "','" & TxtDVTinh.Text & "'," & TxtGiaNhap.Text & "," & TxtLuongNhap.Text & ")" Conn.Execute SQL TinhThanhTien MsgBox " §· L­u Thµnh C«ng", vbInformation, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdoCTN.Refresh SQL = "UPDATE HangHoa SET LuongTon =" & TxtLuongNhap.Text & " WHERE MaHang='" & CmbMaHang.Text & "'" Conn.Execute SQL Else SQL = "SELECT MaHang FROM ChiTietNhap WHERE MaHang='" + CmbMaHang.Text + "' and SoHDN='" + TxtSoHDN.Text + "'" RsKiemTraChiTietNhap2.Open SQL, Conn If RsKiemTraChiTietNhap2.EOF Then SQL = "INSERT INTO ChiTietNhap VALUES ('" & TxtSoHDN.Text & "','" & CmbMaHang.Text & "','" & TxtTenHang.Text & "','" & TxtDVTinh.Text & "'," & TxtGiaNhap.Text & "," & TxtLuongNhap.Text & ")" Conn.Execute SQL TinhThanhTien MsgBox " §· L­u Thµnh C«ng", vbInformation, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdoCTN.Refresh SQL = " SELECT LuongTon FROM HangHoa WHERE MaHang='" & CmbMaHang.Text & "'" RsTimLuongTon.Open SQL, Conn, adOpenKeyset, adLockPessimistic RsTimLuongTon!LuongTon = RsTimLuongTon!LuongTon + Val(TxtLuongNhap.Text) RsTimLuongTon.Update RsTimLuongTon.Close Else TraLoi = MsgBox(" MÆt Hµng Nµy §· Cã Trong Ho¸ §¬n Råi ! " + Chr(13) + Chr(10) + " B¹n Cã Muèn Céng Dån L­îng NhËp Kh«ng ? ", vbInformation + vbYesNo, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An") If TraLoi = vbNo Then AdoCTN.Refresh Exit Sub Else SQL = " SELECT LuongNhap FROM ChiTietNhap WHERE MaHang='" & CmbMaHang.Text & "' AND SoHDN='" & TxtSoHDN & "'" RsTimLuongNhap.Open SQL, Conn, adOpenKeyset, adLockPessimistic RsTimLuongNhap!LuongNhap = RsTimLuongNhap!LuongNhap + Val(TxtLuongNhap.Text) RsTimLuongNhap.Update RsTimLuongNhap.Close TinhThanhTien MsgBox " §· L­u Thµnh C«ng", vbInformation, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdoCTN.Refresh SQL = " SELECT LuongTon FROM HangHoa WHERE MaHang='" & CmbMaHang.Text & "'" RsTimLuongTon.Open SQL, Conn, adOpenKeyset, adLockPessimistic RsTimLuongTon!LuongTon = RsTimLuongTon!LuongTon + Val(TxtLuongNhap.Text) RsTimLuongTon.Update RsTimLuongTon.Close End If End If RsKiemTraChiTietNhap2.Close End If RsKiemTraChiTietNhap1.Close KhongChoUpDate AdoCTN.Refresh cmdPri_Click cmdNext_Click End Sub Private Sub CmdSuaMH_Click() Dim SQL As String Dim TraLoi As Integer TraLoi = MsgBox("B¹n Muèn Söa Th«ng Tin Cña B¶n Ghi ?", vbInformation + vbYesNo, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An") If TraLoi = vbNo Then AdoCTN.Refresh Exit Sub Else SQL = "UPDATE ChiTietNhap SET MaHang= '" & CmbMaHang.Text & "',LuongNhap=" & TxtLuongNhap.Text & ",GiaNhap=" & TxtGiaNhap.Text & " WHERE MaHang= '" & CmbMaHang.Text & "' AND SoHDN='" & TxtSoHDN.Text & "'" Conn.Execute SQL TinhThanhTien AdoCTN.Refresh SQL = "UPDATE HangHoa SET LuongTon =" & TxtLuongNhap.Text & " WHERE MaHang='" & CmbMaHang.Text & "'" Conn.Execute SQL KhongChoUpDate End If End Sub Private Sub CmdXoaMH_Click() Dim SQL As String SQL = "DELETE FROM ChiTietNhap WHERE MaHang= '" & CmbMaHang.Text & "' AND SoHDN='" & TxtSoHDN.Text & "'" Conn.Execute SQL TinhThanhTien AdoCTN.Refresh End Sub Private Sub Option1_Click() Option1.Value = True Option2.Value = False TxtHTTT.Text = "Thanh To¸n Ngay" End Sub Private Sub Option2_Click() Option2.Value = True Option1.Value = False TxtHTTT.Text = "Ghi Nî" End Sub Private Sub CmdFirst_Click() AdoHDN.Recordset.MoveFirst NapOption NapAdoCTN TinhThanhTien End Sub Private Sub cmdPri_Click() If AdoHDN.Recordset.BOF = False Then AdoHDN.Recordset.MovePrevious NapOption NapAdoCTN TinhThanhTien Else MsgBox "Kh«ng Cßn B¶n Ghi Nµo N÷a ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdoHDN.Recordset.MoveFirst NapOption NapAdoCTN TinhThanhTien End If End Sub Private Sub cmdNext_Click() If AdoHDN.Recordset.EOF = False Then AdoHDN.Recordset.MoveNext NapOption NapAdoCTN TinhThanhTien Else MsgBox "Kh«ng Cßn B¶n Ghi Nµo N÷a ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdoHDN.Recordset.MoveLast NapOption NapAdoCTN TinhThanhTien End If End Sub Private Sub CmdLast_Click() AdoHDN.Recordset.MoveLast NapOption NapAdoCTN TinhThanhTien End Sub Private Sub Command1_Click() AdoCTN.Recordset.MoveFirst End Sub Private Sub Command2_Click() If AdoCTN.Recordset.BOF = False Then AdoCTN.Recordset.MovePrevious Else MsgBox "Kh«ng Cßn B¶n Ghi Nµo N÷a ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdoCTN.Recordset.MoveFirst End If End Sub Private Sub Command3_Click() If AdoCTN.Recordset.EOF = False Then AdoCTN.Recordset.MoveNext Else MsgBox "Kh«ng Cßn B¶n Ghi Nµo N÷a ", vbInformation + vbOKOnly, "C«ng ty cæ phÇn thiÕt bÞ m¸y tÝnh Thiªn An" AdoCTN.Recordset.MoveLast End If End Sub Private Sub Command4_Click() AdoCTN.Recordset.MoveLast End Sub 3.9.5.5. Form hoá đơn bán hàng Khi thêm một hóa đơn bán hàng kích vào nút lệnh “Thêm”. Muốn bán cho khách hàng nào ta chọn mã khách, rồi chọn mã hàng muốn bán, lúc đó thông tin liên quan đến mặt hàng sẽ được hiển thị trong những hộp text. Bên dưới là danh sách các mặt hàng được đưa vào hóa đơn, khi bạn nhập đầy đủ thông tin kích vào nút “Ghi” để lưu dữ liệu vào trong hệ thống. 3.9.6 Menu Quản lý công nợ Khi có khách hàng mua, công ty có các hình thức thanh toán đối với nhà cung cấp và khách hàng. Thông tin một nhà cung cấp và khách hàng đã được lưu trong cơ sở dữ liệu danh mục nhà cung cấp và danh mục khách hàng. Khi muốn thanh toán cho nhà cung cấp hay khách hàng thì chọn mã nhà cung cấp hay mã khách hàng để chọn. Sau khi thực hiện xong thì lưu lại để làm báo cáo. 3.9.6.1 Form nhà cung cấp. 3.9.6.2 Form khách hàng. 3.9.7 Tìm kiếm 3.9.7.1. Form Tìm kiếm hoá đơn nhập Khi có nhu cầu tìm kiếm một hoá đơn nhập nào đó thì chọn mã nhà cung cấp, ta sẽ thấy các hoá đơn nhập hàng của nhà cung cấp đó hiện ra. Mã lệnh chương trình: Dim Conn As New ADODB.Connection Dim RsMaNCC As New ADODB.Recordset Dim NapTuDong As New ADODB.Recordset Private Sub CmdThoat_Click() FrmTKHoaDonNhap.Visible = False FrmMain.Visible = True End Sub Private Sub NapCmbMaNCC() Dim SQL As String SQL = " Select Distinct MaNCC From HoaDonNhap Order by MaNCC" RsMaNCC.Open SQL, Conn CmbMaNCC.Clear Do While Not RsMaNCC.EOF CmbMaNCC.AddItem RsMaNCC!MaNCC RsMaNCC.MoveNext Loop RsMaNCC.Close End Sub Private Sub Form_Load() AdoHDN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" NapAdoHDN NapCmbMaNCC CmbMaNCC.Text = "" End Sub Private Sub NapAdoHDN() AdoHDN.CommandType = adCmdText AdoHDN.RecordSource = " SELECT SoHDN, NgayLap,HTTT ,TongThanhTien FROM HoaDonNhap WHERE MaNCC = '" & CmbMaNCC.Text & "' Order by SoHDN" AdoHDN.Refresh End Sub Private Sub CmbMaNCC_Click() Dim Str As String Str = "SELECT TenNCC FROM NhaCungCap WHERE MaNCC='" & CmbMaNCC.Text & "'" NapTuDong.Open Str, Conn TxtTenNCC.Text = NapTuDong!TenNCC NapTuDong.Close NapAdoHDN End Sub 3.9.7.2. Form Tìm kiếm hoá đơn bán hàng Khi có nhu cầu tìm kiếm một hoá đơn bán hàng nào đó thì chọn mã khách hàng, ta sẽ thấy các hoá đơn bán hàng của khách hàng đó hiện ra. Mã lệnh chương trình: Dim Conn As New ADODB.Connection Dim RsMaKH As New ADODB.Recordset Dim NapTuDong As New ADODB.Recordset Private Sub CmdThoat_Click() FrmTKHoaDonBan.Visible = False FrmMain.Visible = True End Sub Private Sub NapCmbMaKH() Dim SQL As String SQL = " Select Distinct MaKH From HoaDonBan Order by MaKH" RsMaKH.Open SQL, Conn CmbMaKH.Clear Do While Not RsMaKH.EOF CmbMaKH.AddItem RsMaKH!MaKH RsMaKH.MoveNext Loop RsMaKH.Close End Sub Private Sub Form_Load() AdoHDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data\QLBH.mdb;Persist Security Info=False" NapAdoHDB NapCmbMaKH CmbMaKH.Text = "" End Sub Private Sub NapAdoHDB() AdoHDB.CommandType = adCmdText AdoHDB.RecordSource = " SELECT SoHDB, NgayLap,HTTT ,TongThanhTien FROM HoaDonBan WHERE MaKH = '" & CmbMaKH.Text & "' Order by SoHDB" AdoHDB.Refresh End Sub Private Sub CmbMaKH_Click() Dim Str As String Str = "SELECT TenKH FROM KhachHang WHERE MaKH='" & CmbMaKH.Text & "'" NapTuDong.Open Str, Conn TxtTenKH.Text = NapTuDong!TenKH NapTuDong.Close NapAdoHDB End Sub 3.9.8. Menu báo cáo 3.9.8.1 Báo cáo hàng nhập 3.9.8.2 Báo cáo hàng bán 3.9.8.3 Báo cáo hàng tồn 3.9.8.4 Báo cáo doanh thu bán hàng 3.9.8.5 Báo cáo công nợ nhà cung cấp 3.9.8.6 Báo cáo công nợ khách hàng KẾT LUẬN Trên đây là toàn bộ báo cáo thực tập tốt nghiệp về đề tài “Quản lý bán hàng”. Công việc chính của đề tài này là khai thác thiết kế xây dựng chương trình quản lý bán hàng tại công ty Cổ phần thiết bị máy tính Thiên An, xem xét quá trình xuất nhập, tồn kho hàng tại công ty, sau đó thực hiện làm báo cáo tổng hợp. Qua khảo sát mô hình quản lý bán hàng, nhập hàng và hàng tồn kho, phân tích hệ thống hiện tại quản lý đã xây dựng chương trình cơ bản đáp ứng được các yêu cầu về: - Quản lý được tương đối đầy đủ những chức năng bán hàng, nhập hàng, cập nhật thông tin hàng hóa. - Bảo đảm được công việc của kho là quản lý xuất nhập tồn kho. - Sử dụng thuận tiện dễ dàng nhập dữ liệu cũng như tra cứu thông tin. - Chương trình có thể phát triển khi có những yêu cầu cần thiết trong công việc. - Vì thời gian có hạn nên chương trình có dữ liệu còn nhỏ, chưa đưa ra được hết những báo cáo chi tiết. Hướng phát triển - Hệ thống sẽ được nâng cấp nhiều hơn khi có sự giúp đỡ, góp ý nhiệt tình của phòng quản lý tại công ty Cổ phần thiết bị máy tính Thiên An để trở thành một phần mềm hệ thống quản lý bán hàng với quy mô lớn. Với thời gian đặt ra lúc này về báo cáo thực tập tốt nghiệp về cơ bản đã hoàn thành. Cơ sở dữ liệu đã được thiết kế đầy đủ, tuy nhiên một số vấn đề nhỏ chưa được phân tích. Do thời gian hạn chế, chưa có điều kiện khảo sát chi tiết, lấy đầy đủ thông tin của hệ thống nên còn nhiều dữ liệu khác không được đưa vào đề tài này. Trong thời gian làm báo cáo thực tập tốt nghiệp tôi đã hết sức cố gắng làm việc nghiêm túc với sự giúp đỡ tận tình của PGS TS Trương Văn Tú và các nhân viên trong công ty Thiên An. Tuy nhiên do không đủ điều kiện về thời gian cũng như kinh nghiệm còn hạn chế nên đề tài thực tập tốt nghiệp của tôi vẫn còn có những thiếu sót. Vì vậy, tôi rất mong được sự đóng góp ý kiến của các thầy cô giáo cũng như các bạn để đề tài thực tập tốt nghiêp của tôi có thể được hoàn chỉnh hơn nữa. Hµ Néi, ngµy 05 th¸ng 06 n¨m 2008 Sinh viªn thùc hiÖn Phạm Thị Huyên TÀI LIỆU THAM KHẢO 1. Phân tích và thiết kế hệ thống Nxb Hà Nội Tác giả: Nguyễn Văn Ba 2. Phân tích và thiết kế hệ thống thông tin ĐHBK Hà Nội Tác giả: Thạch Bình Cường 3. Microsoft visual basic 6.0 và lập trình CSDL - Nxb Giáo dục Tác giả: GSTS Nguyễn Hữu Anh 4. Lập trình Cơ Sở Dữ Liệu Visual Basic 6.0 - Nxb trẻ Tác giả: Đậu Quang Tuấn 5. Nhập môn CSDL Miicrosoft access - Nxb thống kê Tác giả: Trung tâm tin học ngoại ngữ Trí Đức 6. Tự học Access 2002 - Nxb trẻ Tác giả: Phạm Hồng Thái MỤC LỤC

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

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