Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
2,79 MB
Nội dung
Khóa luận tốt nghiệp MỤC LỤC Trang MỤC LỤC .i DANH MỤC HÌNH ẢNH .v DANH MỤC BẢNG BIỂU vii Lý chọn đề tài Mục tiêu nghiên cứu uế Đối tượng phạm vi nghiên cứu H Phương pháp nghiên cứu Dự kiến kết đạt đề tài tế Kết cấu đề tài NỘI DUNG NGHIÊN CỨU h CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ PHÁT TRIỂN HỆ THỐNG THÔNG TIN QUẢN in LÝ họ cK 1.1 Tổng quan hệ thống thông tin quảnlý 1.1.1 Khái niệm hệ thống thông tin quảnlý 1.1.2 Các loại thông tin quảnlý 1.1.3 Cấu trúc hệ thống thông tin quảnlý 1.1.4 Quy trình phát triển hệ thống thơng tin quảnlý ại 1.1.4.1 Khái niệm quy trình phát triển hệ thống thông tin quảnlý Đ 1.1.4.2 Giới thiệu mơ hình thác nước 1.2 Ngônngữ lập trình C# 1.3 Tổng quantảng lập trình NET Framework 11 1.3.1 Giới thiệu NET Framework 11 1.3.2 Các thành phần NET Framework 12 1.3.3 Nềntảng lập trình NET Framework 4.5 .12 1.3.3.1 Tổng quantảng NET Framework 4.5 12 1.3.3.2 Các tính NET Framework 4.5 14 SVTH: Nguyễn Thị Yến Nhi Trang i Khóa luận tốt nghiệp 1.4 Tổng quan kiến trúc ADO NET 15 1.5 Hệ quản trị sở liệu SQL Server 16 1.5.1 Ngơnngữ truy vấn có cấu trúc (SQL - Structure Query Language) .16 1.5.1.1 Khái niệm SQL 16 1.5.1.2 Đặc điểm SQL 16 1.5.1.3 Vai trò SQL 16 1.5.2 Microsoft SQL Server 17 uế 1.5.2.1 Tổng quan Microsoft SQL Server .17 1.5.2.2 Thành phần Microsoft SQL Server 17 H 1.6 Các phương pháp nghiên cứu, giải pháp công nghệ ứng dụng để xâydựng tế phầnmềm 18 1.6.1 Phương pháp lập trình hướng chức (Procedure – Oriented Programming) 18 h 1.6.1.1 Giới thiệu 18 in 1.6.1.2 Các khái niệm 19 1.6.2 Sử dụng mơ hình lớp thiết kế 21 họ cK CHƯƠNG 2: BÀI TOÁN QUẢNLÝBÁNHÀNGTẠIĐẠILÝXEMÁY 24 2.1 Mơ tả tốn 24 2.2 Xác định yêu cầu 26 CHƯƠNG 3: XÂYDỰNGPHẦNMỀMQUẢNLÝBÁNHÀNGTẠIĐẠILÝXE ại MÁY 27 3.1 Phân tích hệ thống Quảnlýbánhàngđạilýxemáy 27 Đ 3.1.1 Phân tích yêu cầu 27 3.1.1.1 Quảnlý hệ thống 27 3.1.1.2 Quảnlý danh mục .27 3.1.1.3 Quảnlýbánhàng 27 3.1.1.4 Quảnlý nhập mua .27 3.1.1.5 Quảnlý công nợ - tồn kho đầu kỳ 28 3.1.1.6 Thống kê báo cáo 28 3.1.2 Sơ đồ chức (BFD – Business Function Diagram) 28 SVTH: Nguyễn Thị Yến Nhi Trang ii Khóa luận tốt nghiệp 3.1.3 Sơ đồ ngữ cảnh (Context Diagram) .30 3.1.4 Sơ đồ luồng liệu (DFD – Data Flow Diagram) 31 3.1.4.1 Sơ đồ phân rã mức 32 3.1.4.2 Sơ đồ phân rã mức cho chức 1.0 33 3.1.4.3 Sơ đồ phân rã mức cho chức 2.0 33 3.1.4.4 Sơ đồ phân rã mức cho chức 3.0 34 3.1.4.5 Sơ đồ phân rã mức cho chức 4.0 34 uế 3.1.4.6 Sơ đồ phân rã mức cho chức 5.0 34 3.1.4.7 Sơ đồ phân rã mức cho chức 6.0 35 H 3.1.5 Sơ đồ luồng thông tin (IFD – Information Flow Diagram) 35 tế 3.1.5.1 Sơ đồ luồng thông tin nhập mua .35 3.1.5.2 Sơ đồ luồng thông tin bánhàng 36 h 3.2 Thiết kế 36 in 3.2.1 Thiết kế sở liệu 36 họ cK 3.2.1.1 Xác định thực thể thuộc tính thực thể 36 3.2.1.2 Sơ đồ thực thể mối quan hệ (ERD – Entity Relationship Diagram) 39 3.2.1.3 Chuyển mối quan hệ thành lược đồ quan hệ 39 3.2.1.4 Chuẩn hóa sở liệu 41 3.2.2 Thiết kế thuật toán .47 ại 3.2.2.1 Kí hiệu sử dụng .47 3.2.2.2 Một số giải thuật chương trình 47 Đ 3.2.3 Thiết kế giao diện 52 3.3 Xâydựng thử nghiệm 54 PHẦN KẾT LUẬN 55 TÀI LIỆU THAM KHẢO 57 PHỤ LỤC 58 SVTH: Nguyễn Thị Yến Nhi Trang iii Khóa luận tốt nghiệp DANH MỤC CHỮ VIẾT TẮT STT Ký hiệu (viết tắt) Diễn giải BLL Business Logic Layers (lớp logic nghiệp vụ) CLR Common Language Runtime (Bộ thực thi ngônngữ chung) CSDL Cơ sở liệu DAL Data Access Layers (lớp truy cập liệu) IDE Integrated Developement Environment (Mơi trường phát triển tích hợp) GTGT Giá trị gia tăng KH Khách hàng NCC Nhà cung cấp NM Nhập mua 10 PC Phiếu chi 11 PT Phiếu thu 12 SQL Structured Query Language (ngơn ngữ truy vấn có cấu trúc) 13 TT Thơng tin 14 TS Tiến sĩ Đ ại họ cK in h tế H uế SVTH: Nguyễn Thị Yến Nhi Trang iv Khóa luận tốt nghiệp DANH MỤC HÌNH ẢNH Trang Hình 1.1 Mơ hình thác nước Hình 1.2 Kiến trúc NET Framework 11 Hình 1.3 Mơ hình NET Framework 4.5 13 Hình 1.4 Kiến trúc mơ hình lớp 21 uế Hình 3.1 Sơ đồ chức Quảnlýbánhàngđạilýxemáy 28 Hình 3.2 Sơ đồ chức Quảnlý hệ thống 29 H Hình 3.3 Sơ đồ chức Quảnlý danh mục 29 tế Hình 3.4 Sơ đồ chức QuảnlýBánhàng 29 Hình 3.5 Sơ đồ chức Quảnlý Kho 30 h Hình 3.6 Sơ đồ chức Thống kê 30 in Hình 3.7 Sơ đồ ngữ cảnh hệ thống quảnlýbánhàngđạilýxemáy 31 họ cK Hình 3.8 Sơ đồ luồng liệu mức 32 Hình 3.9 Sơ đồ luồng liệu mức cho chức 1.0 33 Hình 3.10 Sơ đồ luồng liệu mức cho chức 2.0 33 Hình 3.11 Sơ đồ luồng liệu mức cho chức 3.0 34 Hình 3.12 Sơ đồ luồng liệu mức cho chức 4.0 34 ại Hình 3.13 Sơ đồ luồng liệu mức cho chức 5.0 34 Đ Hình 3.14 Sơ đồ luồng liệu mức cho chức 6.0 35 Hình 3.15 Sơ đồ luồng thơng tin nhập mua 35 Hình 3.16 Sơ đồ luồng thơng tin bánhàng 36 Hình 3.17 Sơ đồ thực thể mối quan hệ 39 Hình 3.18 Giải thuật đăng nhập 47 Hình 3.19 Giải thuật cập nhật liệu 48 Hình 3.20 Giải thuật xóa liệu 49 SVTH: Nguyễn Thị Yến Nhi Trang v Khóa luận tốt nghiệp Hình 3.21 Giải thuật nhập kho 50 Hình 3.22 Giải thuật bánhàng 51 Hình 3.23 Giao diện trang chủ 52 Hình 3.24 Giao diện hóa đơn 52 Hình 3.25 Giao diện phiếu thu 53 Hình 3.26 Giao diện báo cáo tồn kho 53 uế Hình 3.27 Giao diện xâydựngphầnmềm Visial Studio 2012 54 Đ ại họ cK in h tế H Hình 3.28 Giao diện quảnlý liệu SQL Server 2012 54 SVTH: Nguyễn Thị Yến Nhi Trang vi Khóa luận tốt nghiệp DANH MỤC BẢNG BIỂU Trang Bảng 3.1 Cấu trúc liệu bảng Chứng Từ (B00DmCt) 41 Bảng 3.2 Cấu trúc liệu bảng Trạng Thái Chứng Từ (B00DocStatus) 41 Bảng 3.3 Cấu trúc liệu bảng Người Dùng (B00UserList) 41 Bảng 3.4 Cấu trúc liệu bảng Khách Hàng (B20Customer) 41 Bảng 3.5 Cấu trúc liệu bảng Linh Kiện (B20Item) 42 uế Bảng 3.6 Cấu trúc liệu bảng Định Mức Linh Kiện (B20ItemNorm) 42 Bảng 3.7 Cấu trúc liệu bảng Kho (B20Warehouse) 42 H Bảng 3.8 Cấu trúc liệu bảng Đầu Phiếu (B30AccDoc) 43 tế Bảng 3.9 Cấu trúc liệu bảng Phiếu Chi (B30AccDocCashPayment) 43 Bảng 3.10 Cấu trúc liệu bảngPhiếu Thu (B30AccDocCashReceipt) 44 h Bảng 3.11 Cấu trúc liệu bảng Phiếu Xuất (B30AccDocInventory) 44 in Bảng 3.12 Cấu trúc liệu bảng Phiếu Nhập (B30AccDocPurchase) 44 Bảng 3.13 Cấu trúc liệu bảng Hóa Đơn (B30AccDocSales) 45 họ cK Bảng 3.14 Cấu trúc liệu bảngBảng Giá (B30BizDoc) 45 Bảng 3.15 Cấu trúc liệu bảng Chi Tiết Bảng Giá (B30BizDocPriceTableDealer) 46 Bảng 3.16 Cấu trúc liệu bảng Công Nợ Đầu Kỳ (B30OpenBalance) 46 Bảng 3.17 Cấu trúc liệu bảng Tồn Kho Đầu Kỳ (B30OpenInventory) 46 Đ ại Bảng 3.18 Bảng kí hiệu sơ đồ thuật toán 47 SVTH: Nguyễn Thị Yến Nhi Trang vii Khóa luận tốt nghiệp PHẦN MỞ ĐẦU Lý chọn đề tài Những năm gần đây, ngành công nghệ thơng tin phát triển cách nhanh chóng có nhiều bước tiến vượt bậc Tuy sau nhiều nước, ngành công nghệ thông tin nước ta có tốc độ nhanh ứng dụng rộng rãi nhiều lĩnh vực kinh tế, góp phần thúc đẩy phát triển xã hội Một lĩnh vực ứng dụng tin học hóa phổ biến nước uế ta lĩnh vực hệ thống thông tin quảnlý Tin học hóa quảnlý giúp cho H nhà quảnlý điều hành công việc cách khoa học, xác hiệu Tất quan, công ty, tổ chức muốn tin học hóa vào hoạt động quảnlý tế Hiệu quảnlý lĩnh vực nhà quảnlýquan tâm điều phụ thuộc nhiều vào hệ thống thông tin mà cụ thể chương trình quảnlýdựa in h máy tính Nó giúp người giải phóng sức lao động, thực cơng việc cách hiệu mà hình thức quảnlý thủ công giấy trước quảnlý triệt để họ cK nên thường xuyên xảy nhầm lẫn, sai số, thất lạc số liệu gây thời gian, công sức mà hiệu mang lại không cao Quảnlýbánhàng doanh nghiệp cơng việc quan trọng, đòi hỏi phậnquảnlý phải thực nhiều nghiệp vụ phức tạp Một doanh nghiệp muốn phát ại triển khả sản xuất để đáp ứng nhu cầu khách hàng cách hiệu khơng thể thiếu hệ thống thông tin hỗ trợ thường xuyên kịp thời Vì thế, việc tin học Đ hóa cơng tác quản lý, khai thác điều hành kinh doanh đòi hỏi ngày cấp thiết hết Tại cửa hàngxe máy, tồn chế quảnlý thủ công chủ cửa hàng nhân viên quảnlýquan tâm đến vấn đề ứng dụng công nghệ tin học vào công tác quảnlý nhằm giảm bớt sức lao động người, tiết kiệm thời gian, giúp cho công tác quảnlý gọn nhẹ, đáp ứng nhanh chóng, kịp thời cho nhu cầu quảnlý mình, góp phần nâng cao hiệu kinh doanh cửa hàng SVTH: Nguyễn Thị Yến Nhi Trang Khóa luận tốt nghiệp Chính lí trên, tác giả định chọn đề tài: “Xây dựngphầnmềmquảnlýbánhàngđạilýxemáydựatảngWinformngônngữ C#” để làm đề tài cho khóa luận Mục tiêu nghiên cứu * Mục tiêu tổng quát: Trên sở phân tích nghiệp vụ quảnlýbánhàng quy trình quảnlý cơng xâydựngphầnmềmQuảnlýbánhàngđạilýxemáy H * Mục tiêu cụ thể: uế nợ đạilýxemáy hiểu rõ quy trình xâydựngphần mềm, tác giả tiến hành - Nghiên cứu nắm vững quy trình bán hàng, quy trình quảnlý thơng tin tế tình hình cơng nợ phải trả khách hàng cửa hàng cửa hàng nhà cung cấp h - Nghiên cứu cơng cụ, tảng lập trình sử dụng để xâydựng hệ in thống: ADO NET, C Sharp, MS SQL Server 2012 họ cK - Hiểu rõ quy trình xâydựng phát triển hệ thống thơng tin quảnlý - XâydựngphầnmềmQuảnlýbánhàngđạilýxemáy Đối tượng phạm vi nghiên cứu * Đối tượng nghiên cứu: - Các quy trình quảnlýbánhàngquảnlý công nợ đạilýxemáy ại - Cơ chế, cách thức hoạt động nghiệp vụ lưu trữ, quảnlýbánhàngquản Đ lý công nợ đạilýxemáy - Các công cụ, tảng lập trình để xâydựng hệ thống: ADO NET, C Sharp, MS SQL Server 2012 - Quy trình xây dựng, phát triển hệ thống thông tin quảnlý * Phạm vi nghiên cứu: - Không gian: Khảo sát thực tế quy trình nghiệp vụ quảnlýbánhàngquảnlý công nợ đạilýxemáy - Thời gian: Từ ngày 19/01/2016 đến hết ngày 15/05/2016 SVTH: Nguyễn Thị Yến Nhi Trang Khóa luận tốt nghiệp Phương pháp nghiên cứu Để nghiên cứu quy trình quảnlýbán hàng, quảnlý cơng nợ xâydựngphầnmềmquảnlýbánhàng phù hợp với yêu cầu thực tế đạilýxe máy, tác giả sử dụng phương pháp trình thực đề tài: - Phương pháp thu thập thông tin: + Phương pháp quan sát: trực tiếp quan sát hệ thống quảnlýbánhàngquảnlý công nợ đạilýxe máy, để phân tích ưu nhược điểm, quy trình uế hệ thống quảnlý công nợ H + Phương pháp thu thập tài liệu: chủ động tìm kiếm nghiên cứu tài liệu liên quan đến đề tài thực hiện, để từ nắm vững quy định quảnlýbánhàng tế quảnlý công nợ giúp xâydựngphầnmềm đạt yêu cầu + Phương pháp vấn: vấn trình quảnlýbánhàng in h quảnlý công nợ tại cửa hàng, yêu cầu mong muốn nhân viên quảnlý chủ cửa hàng việc quảnlýbánhàng công nợ nhằm khắc phục họ cK xâydựngphần mền đáp ứng nhu cầu nguyện vọng người sử dụng - Phương pháp mơ hình hóa: sử dụng mơ hình, sơ đồ để mơ tả lại quy trình, nghiệp vụ quảnlýbánhàngquảnlý công nợ cửa hàng - Phương pháp phát triển hệ thống thông tin: Dựa thông tin thu để tiến hành phân tích, thiết kế phầnmềm bao gồm chức phần ại mềmxâydựng thơng qua q trình mơ hình hóa phần mềm, chuẩn hóa sở liệu Đ mã hóa để đưa sản phẩm phầnmềm phù hợp với yêu cầu Dự kiến kết đạt đề tài - Nắm vững quy trình quảnlýbán hàng, quy trình quảnlý cơng nợ khách hàng nhà cung cấp - Nắm rõ cơng cụ, tảng lập trình sử dụng để xâydựng hệ thống - Hiểu rõ quy trình xây dựng, phát triển hệ thống thơng tin quảnlý - Xâydựngphầnmềm hoàn chỉnh Quảnlýbánhàngđạilýxemáy SVTH: Nguyễn Thị Yến Nhi Trang Khóa luận tốt nghiệp PHẦN KẾT LUẬN Hiện nay, công nghệ thông tin ứng dụng rộng rãi hầu hết lĩnh vực đời sống ngày mở rộng, đặc biệt cơng cụ hỗ trợ đắc lực cho công tác quảnlý Đối với công tác quảnlýbánhàng phức tạp, dễ nhầm lẫn sai sót nhu cầu tin học hóa, đại hóa cần thiết Việc sử dụngphầnmềmquảnlýbánhàng giúp doanh nghiệp nâng cao hiệu công tác quản lý, tạo điều kiện cho doanh nghiệp hoạt động bền vững ổn định uế Với mong muốn xâydựngphầnmềmquảnlýbánhàng dành riêng cho đạilýxemáy nhằm hỗ trợ đem lại hiệu cao cho công tác quảnlýbán hàng, H cho phép chủ cửa hàng kiểm sốt điều khiển hoạt động kinh doanh cách hiệu tế nhất, tác giả tiến hành xâydựngphầnmềmquảnlýbánhàng cho đạilýxemáy h Khóa luận thực nhằm giúp cho cá nhân, tổ chức tiếp cận hiểu in rõ hệ thống quảnlý thông tin xâydựng công nghệ NET tảng mơ hình lớp Trong q trình thực đề tài, tác giả đạt kết họ cK sau: - Về mặt lý luận, tác giả nắm vững quy trình quảnlýbánhàngquảnlý công nợ đạilýxe máy, nắm bắt cách thức xâydựngphầnmềmquảnlýbánhàng Tác giả vận dụng công cụ Visual Studio 2012 SQL Server 2012 tảng lập trình để xâydựng hồn chỉnh phầnmềm ại Quảnlýbánhàngđạilýxemáy Đ - Về mặt thực tiễn, tác giả xâydựngphầnmềmquảnlýbánhàng tương đối hồn thiện với tính sau: + Cho phép người quảnlý kiểm sốt điều khiển tồn q trình quản lý, cung cấp thơng tin phản hồi xác Ngồi ra, giúp cho chủ doanh nghiệp nắm vững tình hình sản xuất kinh doanh doanh nghiệp thông qua báo cáo mà khơng nhiều thời gian, đồng thời kiểm tra báo cáo công nợ phải thu – phải trả để chủ doanh nghiệp tổng hợp đưa định hợp lý kịp thời cho việc kinh doanh doanh nghiệp SVTH: Nguyễn Thị Yến Nhi Trang 55 Khóa luận tốt nghiệp + Phầnmềm có giao diện thân thiện, thuận tiện cho người sử dụng, dễ dàng sử dụngquảnlý Hỗ trợ nhiều chức phù hợp với thực tế việc tìm kiếm, trao đổi, cập nhật, quảnlý thông tin Nhìn chung, phầnmềm ứng dụng vào việc quảnlýđạilýxemáy hoàn toàn khả thi, đáp ứng nhiều nhu cầu cho công tác quảnlýbánhàng Tuy nhiên phầnmềm tồn hạn chế như: chưa áp dụng đầy đủ quy trình kế tốn vào quảnlý cơng nợ Hy vọng thời gian tới, với trau dồi thêm kiến thức, tác giả có uế thể hồn thiện thiếu sót để phầnmềmquảnlý tốt nữa, bổ sung điều chỉnh thêm số tính để phầnmềm ngày hoạt động có hiệu Đ ại họ cK in h tế H hơn, ứng dụng công nghệ vào việc quảnlý sở liệu phầnmềm SVTH: Nguyễn Thị Yến Nhi Trang 56 Khóa luận tốt nghiệp TÀI LIỆU THAM KHẢO [1] Trần Nguyên Phong Giáo trình SQL Trường đại học Khoa học Huế Khoa cơng nghệ thông tin Huế, 2004 [2] Hàn Viết Thuận Giáo trình hệ thống thơng tin quản lý, Trường đại học Kinh tế quốc dân, Khoa tin học kinh tế Nhà xuất đại học Kinh tế quốc dân Hà Nội, 2008 [3] Dương Quang Thiện, Lập trình liệu dùng ADO.NET C# Nhà xuất Đ ại họ cK in h tế H [4] Wikipedia Tiếng Việt, http://vi.wikipedia.org/ uế tổng hợp TP.HCM, xuất 2005 SVTH: Nguyễn Thị Yến Nhi Trang 57 Khóa luận tốt nghiệp PHỤ LỤC Phụ lục 1: Code bảng Đối tượng tế H uế using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using BLL; using DevExpress.XtraGrid.Menu; using DevExpress.XtraEditors; Đ ại họ cK in h namespace QuanLyBanHang { public partial class UcCustomer : UserControl { public UcCustomer() { InitializeComponent(); } B20Customer_BLL khbll = new B20Customer_BLL(); int MaKhCu = 0; int id; private void UC_Customer_Load(object sender, EventArgs e) { txt_code.Text = new B20Customer_BLL().B20Customer_GetDocNo().Rows[0][0].ToString(); gridControl1.DataSource = khbll.B20Customer_GetData(); } private void navBarItem1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { gridControl1.DataSource = khbll.B20Customer_GetData(); } SVTH: Nguyễn Thị Yến Nhi Trang 58 Khóa luận tốt nghiệp Đ ại họ cK in h tế H uế private void navBarItem2_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { gridControl1.DataSource = khbll.B20Customer_GetData_NotIsActive(); } void itemEdit_Click(object sender, EventArgs e) { DataRow dr = grid_Customer.GetFocusedDataRow(); int Id = int.Parse(dr["Id"].ToString()); DialogResult dialogResult = XtraMessageBox.Show("Bạn có muốn khơi phục khách hàng khơng ?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dialogResult == DialogResult.Yes) { khbll.B20Customer_Update_ReIsActive(Id); XtraMessageBox.Show("Khôi phục thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); gridControl1.DataSource = khbll.B20Customer_GetData_NotIsActive(); } else if (dialogResult == DialogResult.No) { } } void itemDelete_Click(object sender, EventArgs e) { DataRow dr = grid_Customer.GetFocusedDataRow(); int Id = int.Parse(dr["Id"].ToString()); DialogResult dialogResult = XtraMessageBox.Show("Bạn có muốn xóa khách hàng khơng ?", "Thơng báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dialogResult == DialogResult.Yes) { khbll.B20Customer_Update_IsActive(Id); XtraMessageBox.Show("Xóa thành cơng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); gridControl1.DataSource = khbll.B20Customer_GetData(); } SVTH: Nguyễn Thị Yến Nhi Trang 59 Khóa luận tốt nghiệp else if (dialogResult == DialogResult.No) { } Đ ại họ cK in h tế H uế } private void navBarItem1_LinkClicked_1(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { gridControl1.DataSource = khbll.B20Customer_GetData(); TT = 0; simpleButton1.Enabled = true; simpleButton3.Enabled = true; } private void navBarItem2_LinkClicked_1(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { gridControl1.DataSource = khbll.B20Customer_GetData_NotIsActive(); TT = 1; simpleButton1.Enabled = false; simpleButton3.Enabled = false; } int TT = 0; private void grid_Customer_PopupMenuShowing_1(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) { if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Row) { if (TT == 0) { GridViewMenu menu = e.Menu as GridViewMenu; DevExpress.Utils.Menu.DXMenuItem itemDelete = new DevExpress.Utils.Menu.DXMenuItem("Xóa"); itemDelete.Click += new EventHandler(itemDelete_Click); menu.Items.Add(itemDelete); } else { GridViewMenu menu = e.Menu as GridViewMenu; SVTH: Nguyễn Thị Yến Nhi Trang 60 Khóa luận tốt nghiệp Đ ại họ cK in h tế H uế DevExpress.Utils.Menu.DXMenuItem itemEdit = new DevExpress.Utils.Menu.DXMenuItem("Khôi phục"); itemEdit.Click += new EventHandler(itemEdit_Click); menu.Items.Add(itemEdit); } } } private void but_dong_Click(object sender, EventArgs e) { txt_code.Text = ""; txt_name.Text = ""; txt_phone.Text = ""; txt_address.Text = ""; } private void simpleButton1_Click(object sender, EventArgs e) { try { DialogResult dg = MessageBox.Show("Bạn muốn cập nhật thông tin này?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dg == DialogResult.Yes) { string MaKh = txt_code.Text; string TenKH = txt_name.Text; string SDT = txt_phone.Text; string DiaChi = txt_address.Text; DataTable dt = khbll.B20Customer_CheckSameDocNo(MaKhCu); int Count = dt.Rows.Count; if (Count == 0) { khbll.B20Customer_Insert(MaKh, TenKH, SDT, DiaChi, true); } else { khbll.B20Customer_Update(id, MaKh, TenKH, SDT, DiaChi, true); } UC_Customer_Load(sender, e); SVTH: Nguyễn Thị Yến Nhi Trang 61 Khóa luận tốt nghiệp } } catch //(Exception ex) { MessageBox.Show("Lỗi! Vui lòng kiểm tra lại"); } Đ ại họ cK in h tế H uế } private void grid_Customer_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { DataRow row = grid_Customer.GetFocusedDataRow(); id = int.Parse(row["Id"].ToString()); MaKhCu = int.Parse(row["Id"].ToString()); txt_code.Text = row["Code"].ToString(); txt_name.Text = row["Name"].ToString(); txt_phone.Text = (row["PhoneNumber"].ToString()); txt_address.Text = row["Address"].ToString(); } private void simpleButton3_Click(object sender, EventArgs e) { txt_code.Text = new B20Customer_BLL().B20Customer_GetDocNo().Rows[0][0].ToString(); txt_name.Text = ""; txt_phone.Text = ""; txt_address.Text = ""; } } } Phụ lục 2: Code bảng Hoá đơn using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Linq; SVTH: Nguyễn Thị Yến Nhi Trang 62 Khóa luận tốt nghiệp using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraEditors; using System.Data.SqlClient; using BLL; using DevExpress.XtraGrid.Menu; Đ ại họ cK in h tế H uế namespace QuanLyBanHang { public partial class UcAccDocSales : DevExpress.XtraEditors.XtraUserControl { private class Item { public string Name; public int Value; public Item(string name, int value) { Name = name; Value = value; } public override string ToString() { return Name; } } public UcAccDocSales() { InitializeComponent(); } string _lienket = ""; string _SoHdCu = ""; B20Customer_BLL khbll = new B20Customer_BLL(); B30AccDoc_BLL dpbll = new B30AccDoc_BLL(); B30AccDocSales_BLL cthd = new B30AccDocSales_BLL(); B20Item_BLL lkbll = new B20Item_BLL(); B20Warehouse_BLL kbll = new B20Warehouse_BLL(); private void UcAccDoc_Load(object sender, EventArgs e) SVTH: Nguyễn Thị Yến Nhi Trang 63 Khóa luận tốt nghiệp { gridControl1.DataSource = cthd.B30AccDoc_GetDataAccDocSales_IsActive(); gridControl2.DataSource = cthd.B30AccDocSales_GetData0(); lkdoituong.Properties.DataSource = khbll.B20Customer_GetCodeAndName(); lkdoituong.Properties.ValueMember = "Mã khách hàng"; lkdoituong.Properties.DisplayMember = "Tên khách hàng"; Đ ại họ cK in h tế H uế repositoryItemLookUpEdit2.DataSource = lkbll.B20Item_GetCodeAndName(); repositoryItemLookUpEdit2.ValueMember = "Mã linh kiện"; repositoryItemLookUpEdit2.DisplayMember = "Tên linh kiện"; repositoryItemLookUpEdit3.DataSource = kbll.B20Warehouse_GetCodeAndName(); repositoryItemLookUpEdit3.ValueMember = "Mã kho"; repositoryItemLookUpEdit3.DisplayMember = "Tên kho"; comboBox1.Items.Add(new Item("VNĐ", 1)); comboBox1.Items.Add(new Item("USD", 2)); } int TT = 0; private void navBarItem3_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { gridControl1.DataSource = cthd.B30AccDoc_GetDataAccDocSales_IsActive(); TT = 0; } private void navBarItem4_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { gridControl1.DataSource = cthd.B30AccDoc_GetDataAccDocSales_NotIsActive(); TT = 1; } void itemEdit_Click(object sender, EventArgs e) { SVTH: Nguyễn Thị Yến Nhi Trang 64 Khóa luận tốt nghiệp Đ ại họ cK in h tế H uế DataRow dr = gridView1.GetFocusedDataRow(); int Id = int.Parse(dr["Id"].ToString()); DialogResult dialogResult = XtraMessageBox.Show("Bạn có muốn khôi phục thông tin không ?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dialogResult == DialogResult.Yes) { dpbll.B30AccDoc_Update_ReIsActive(Id); XtraMessageBox.Show("Khôi phục thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); gridControl1.DataSource = cthd.B30AccDoc_GetDataAccDocSales_NotIsActive(); gridControl2.DataSource = cthd.B30AccDocSales_GetData0(); } else if (dialogResult == DialogResult.No) { } } void itemDelete_Click(object sender, EventArgs e) { DataRow dr = gridView1.GetFocusedDataRow(); int Id = int.Parse(dr["Id"].ToString()); DialogResult dialogResult = XtraMessageBox.Show("Bạn có muốn xóa thơng tin khơng ?", "Thơng báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dialogResult == DialogResult.Yes) { dpbll.B30AccDoc_Update_IsActive(Id); XtraMessageBox.Show("Xóa thành cơng", "Thơng báo", MessageBoxButtons.OK, MessageBoxIcon.Information); gridControl1.DataSource = cthd.B30AccDoc_GetDataAccDocSales_IsActive(); gridControl2.DataSource = cthd.B30AccDocSales_GetData0(); } else if (dialogResult == DialogResult.No) { } SVTH: Nguyễn Thị Yến Nhi Trang 65 Khóa luận tốt nghiệp Đ ại họ cK in h tế H uế } private void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) { if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Row) { if (TT == 0) { GridViewMenu menu = e.Menu as GridViewMenu; DevExpress.Utils.Menu.DXMenuItem itemDelete = new DevExpress.Utils.Menu.DXMenuItem("Xóa"); itemDelete.Click += new EventHandler(itemDelete_Click); menu.Items.Add(itemDelete); } else { GridViewMenu menu = e.Menu as GridViewMenu; DevExpress.Utils.Menu.DXMenuItem itemEdit = new DevExpress.Utils.Menu.DXMenuItem("Khôi phục"); itemEdit.Click += new EventHandler(itemEdit_Click); menu.Items.Add(itemEdit); } } } string Stt1 = ""; private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { DataRow row = gridView1.GetFocusedDataRow(); _lienket = row["DocNo"].ToString(); Stt1 = row["Stt"].ToString(); if (_lienket == null) { _lienket = ""; } gridControl2.DataSource = cthd.B30AccDocSales_GetDataIsGroupStt(Stt1); _SoHdCu = row["DocNo"].ToString(); SVTH: Nguyễn Thị Yến Nhi Trang 66 Khóa luận tốt nghiệp tế H if (int.Parse(row["DocStatus"].ToString()) == 0) { cbdahoanthien.Checked = false; } else { cbdahoanthien.Checked = true; } uế txtSochungtu.Text = row["DocNo"].ToString(); dtngaychungtu.EditValue = DateTime.Parse(row["DocDate"].ToString()); lkdoituong.Text = (row["CustomerCode"].ToString()); txtnguoidaidien.Text = row["Person"].ToString(); txtdiachi.Text = row["Address"].ToString(); comboBox1.Text = row["CurrencyCode"].ToString(); Đ ại họ cK in h } private void simpleButton1_Click_1(object sender, EventArgs e) { try { DialogResult dg = MessageBox.Show("Bạn muốn cập nhật thông tin này?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dg == DialogResult.Yes) { string SoChungTu = txtSochungtu.Text; DateTime NgayChungTu = Convert.ToDateTime(dtngaychungtu.EditValue); string DoiTuong = lkdoituong.Text.ToString(); string NguoiDaiDien = txtnguoidaidien.Text; string MaTienTe = comboBox1.Text.ToString(); string DiaChi = txtdiachi.Text; int TrangThai; if (cbdahoanthien.Checked == false) { TrangThai = 1; } else SVTH: Nguyễn Thị Yến Nhi Trang 67 Khóa luận tốt nghiệp { TrangThai = 0; Đ ại họ cK in h tế H uế } DataTable dt = dpbll.B30AccDoc_CheckSameDocNo(_SoHdCu); int Count = dt.Rows.Count; if (Count == 0) { dpbll.B30AccDoc_Insert(SoChungTu, NgayChungTu, DoiTuong, NguoiDaiDien, DiaChi, MaTienTe, TrangThai, "HD"); for (int i = 0; i