Tài sản là cơ sở vật chất không thể thiếu trong nền kinh tế quốc dân cũng như trong hoạt động sản xuất kinh doanh của bất kể doanh nghiệp nào. Đối với doanh nghiệp, tài sản là cơ sở đánh giá trình độ công nghệ và năng lực sản xuất, cạnh tranh của doanh nghiệp. Việc sử dụng và quản lý tài sản trong doanh nghiệp ảnh hưởng trực tiếp đến chất lượng sản phẩm, dịch vụ, giá thành, đến khả năng cạnh tranh và phát triển của doanh nghiệp. Trong môi trường kinh doanh tính cạnh tranh ngày càng tăng và tiến bộ của khoa học kỹ thuật ngày một phát triển, thì việc quản lý tài sản doanh nghiệp đòi hỏi phải được tổ chức khoa học, hợp lý hơn và hiệu quả hơn. Tài sản phải trải qua nhiều chu kỳ kinh doanh mới hoàn thành đủ một vòng quay của vốn bỏ ra ban đầu. Như vậy quản lý tài sản là một nhiệm vụ tất yếu. Nó là một phần trong chiến lược kinh doanh của doanh nghiệp, giúp cho nhà quản lý tốt số vốn bỏ ra ban đầu để có biện pháp điều hành sản xuất kinh doanh một cách hợp lý và đề ra những phương hướng đúng đắn, nâng cao hiệu quả trong quá trình sản xuất kinh doanh và khẳng định được vị thế của doanh nghiệp trên thị trường. Tại Công ty TNHH Kiểm toán Quốc tế PNT hiện nay, về cơ bản, công tác quản lý tài sản được thực hiện theo mô hình gồm 2 bộ phận: bộ phận quản lý hiện vật là Phòng kế hoạch tổng hợp; bộ phận quản lý sổ sách là Phòng kế toán và soát xét. Mô hình quản lý dựa trên quan điểm: tài sản được gắn liền với kế hoạch kinh doanh của từng phòng ban, bộ phần này giám sát bộ phận kia để đảm bảo tính khách quan. Mô hình này phát sinh một số bất cập trong quá trình quản lý làm cho hiệu quả quản lý, sử dụng tài sản chưa cao. Do việc quản lý tài sản dựa trên nhiều người, mỗi tài sản lại có một đặc điểm quản lý riêng chính vì vậy phát sinh một số vấn đề như sau: - Thông tin rời rạc không tập trung, mỗi nhân viên quản lý một hoặc một số loại tài sản riêng biệt. - Nhiều công việc lặp lại do được thực hiện riêng lẻ bởi từng người. - Dữ liệu lưu trữ trung lặp tại nhiều nơi, không nhất quán. Các cấp lãnh đạo không thể tìm kiếm, truy vấn thông tin quản lý theo yêu cầu mà phải chờ đợi nhân viên chuyên trách tổng hợp báo cáo. Mà việc tổng hợp báo cáo chủ yếu thông qua Excel nên mất rất nhiều thời gian và đòi hỏi người sử dụng phải có vốn kiến thức Excel khá vững. - Các thông tin bảo mật kém, dễ dang bị mất và rò rỉ thông tin. - Còn quá nhiều chức năng, công việc được thực hiện thủ công. - Không theo dõi kịp thời được biến động của tài sản. - Khó khăn trong việc lập kế hoạch phát triển, tái bổ sung. Từ những phân tích, đánh giá nêu trên có thể thấy rằng mô hình quản lý tài sản hiện tại cần phải được hoàn thiện để loại bỏ được những bất cập trong việc quản lý tài sản là vô cùng cần thiết. Xuất phát từ nhu cầu thực tiễn và để tin học hóa công tác quản lý tài sản tại Công ty TNHH Kiểm toán Quốc tế PNT, tác giả đã chọn để tài: “Phát triển Hệ thống thông tin Quản lý Tài sản tại Công ty TNHH Kiểm toán Quốc tế PNT”. Chương 1: Tác giả đề cập tới các khái niệm cơ bản về tài sản, thông tin, dữ liệu, tổ chức, hệ thống thông tin, hệ thống thông tin quản lý và đặc biệt là cơ sở phương pháp luận phát triển hệ thống thông tin. Chương 2: Chương này tác giả giới thiệu tổng quan về Công ty TNHH Kiểm toán Quốc tế PNT, lĩnh vực kinh doanh, quy trình làm việc của từng bộ phận trong Công ty. Tác giả giới thiệu về quy trình quản lý tài sản hiện tại của Công ty, chức năng của từng phân hệ quản lý tài sản. Phân hệ quản lý nào đạt yêu cầu và phân hệ quản lý nào còn chưa tốt. Đồng thời, tác giả tiến hành phân tích các thành phần của hệ thống thông tin quản lý tài sản hiện tại của Công ty về các vấn đề như: Con người, phần cứng, phần mềm, mạng truyền thông. Qua đó, tác giả có những đánh giá về đóng góp và bất cẩp của hệ thống hiện tại. Chương 3: Áp dụng những nghiên cứu cơ sở lý luận ở Chương 1 và những đánh giá hệ thống quản lý tài sản ở Chương 2. Chương 3 Tác giả tiến hành phát triển hệ thống thông tin quản lý tài sản tại Công ty TNHH Kiểm toán Quốc tế PNT. Qua những đánh giá Chương 2 phân hệ quản lý tài sản “tiền” là phân hệ chức năng cấp thiết cần được ưu tiên phát triển đưa vào khai thác càng sớm càng tốt. Ứng dụng cơ sở lý luận phát triển hệ thống thông tin quản lý tài sản tại chương 1, tác giả đặt mục tiêu xác định một cách chi tiết và chính xác những yêu cầu mà phân hệ quản lý tiền phải làm để đạt được những mục tiêu quản lý hiệu. Đảm bảo hệ thống quản lý tiền thực hiện được những yêu cầu được đưa ra bởi lãnh đạo Công ty.
0 TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - - PHÙNG TRUNG ĐỨC PHÁT TRIỂN HỆ THỐNG THÔNG TIN QUẢN LÝ TÀI SẢN TẠI CÔNG TY TNHH KIỂM TỐN QUỐC TẾ PNT CHUN NGÀNH: HỆ THỐNG THƠNG TIN QUẢN LÝ LUẬN VĂN THẠC SĨ KINH DOANH VÀ QUẢN LÝ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS LÊ VĂN NĂM HÀ NỘI – 2015 LỜI CAM ĐOAN Tác giả xin cam đoan luận văn cơng trình nghiên cứu khoa học độc lập tác giả Các tài liệu, tư liệu sử dụng luận văn có nguồn gốc rõ ràng, kết nghiên cứu trình lao động trung thực tác giả Hà Nội, ngày tháng năm 2015 TÁC GIẢ LUẬN VĂN Phùng Trung Đức LỜI CẢM ƠN Tác giả xin gửi lời cảm ơn sâu sắc tới: Trường Đại học Kinh tế quốc dân, Viện Đào tạo sau Đại học Trường Đại học Kinh tế quốc dân, Khoa hệ thống thông tin quản lý Trường Đại học Kinh tế quốc dân, Công ty TNHH Kiểm toán Quốc tế PNT tạo điều kiện giúp đỡ tác giả hoàn thành luận văn Tác giả xin chân thành cảm ơn PGS.TS Lê Văn Năm trực tiếp hướng dẫn, tận tình bảo, giúp đỡ suốt trình tác giả thực luận văn Thầy giúp tác giả có khả tổng hợp tri thức khoa học, kiến thức thực tiễn quản lý phương pháp nghiên cứu khoa học Thầy góp ý, bảo việc định hướng hoàn thiện luận văn Tác giả xin cảm ơn thầy, cô giáo Trường Đại học Kinh tế quốc dân giúp đỡ, góp ý, động viên tác giả suốt trình học tập nghiên cứu Xin trân trọng cảm ơn./ Hà Nội, ngày tháng năm 2015 TÁC GIẢ LUẬN VĂN Phùng Trung Đức MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC TỪ VIẾT TẮT DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ TĨM TẮT LUẬN VĂN i PHẦN MỞ ĐẦU .1 CHƯƠNG 1: CƠ SỞ PHƯƠNG PHÁP LUẬN ĐỂ PHÁT TRIỂN HỆ THỐNG THÔNG TIN QUẢN LÝ TÀI SẢN .5 1.1 CÁC KHÁI NIỆM CƠ BẢN 1.1.1 Tài sản cách phân loại 1.1.2 Thông tin liệu 1.1.3 Tổ chức góc độ quản lý 1.1.4 Hệ thống thông tin 12 1.2 TỔNG QUAN HỆ THỐNG THÔNG TIN QUẢN LÝ .16 1.2.1 Đầu vào, đầu hệ thống thông tin quản lý 16 1.2.2 Chức hệ thống thông tin quản lý 18 1.3 VỊNG ĐỜI PHÁT TRIỂN HỆ THỐNG THƠNG TIN 18 1.3.1 Xác định, lựa chọn lập kế hoạch cho hệ thống 19 1.3.2 Phân tích hệ thống 20 1.3.3 Thiết kế hệ thống 34 1.3.4 Triển khai hệ thống 35 1.3.5 Bảo trì hệ thống 39 CHƯƠNG 2: GIỚI THIỆU TỔNG QUAN VỀ CƠNG TY TNHH KIỂM TỐN QUỐC TẾ PNT, VẤN ĐỀ QUẢN LÝ TÀI SẢN TẠI CÔNG TY 41 2.1 TỔNG QUAN VỀ CƠNG TY THHH KIỂM TỐN QUỐC TẾ PNT 41 2.1.1 Sơ lược công ty TNHH Kiểm toán Quốc tế PNT .41 2.1.2 Lịch sử hình thành phát triển 42 2.1.3 Cơ cấu tổ chức Cơng ty TNHH Kiểm tốn quốc tế PNT 43 2.1.4 Đặc điểm kinh doanh Công ty 45 2.1.5 Đặc điểm dịch vụ cung cấp Công ty 45 2.1.6 Công tác quản lý tài sản Cơng ty Kiểm tốn Quốc tế PNT 47 2.2 THỰC TRẠNG HỆ THỐNG THÔNG TIN QUẢN LÝ TÀI SẢN HIỆN TẠI 53 2.2.1 Con người tổ chức 53 2.2.2 Phần mềm .53 2.2.3 Phần cứng, mạng truyền thông .54 2.2.4 Đánh giá đóng góp hệ thống thơng tin Công ty .55 2.3.5 Những tồn hệ thống .55 2.3.6 Phương pháp để phát triển hệ thống thông tin quản lý tài sản 56 CHƯƠNG 3: PHÁT TRIỂN HỆ THỐNG THÔNG TIN QUẢN LÝ TÀI SẢN TẠI CƠNG TY TNHH KIỂM TỐN QUỐC TẾ PNT .57 3.1 XÁC ĐỊNH CÁC YÊU CẦU CỦA HTTT QUẢN LÝ TÀI SẢN 57 3.1.1 Xác định yêu cầu hệ thống 57 3.1.2 Mức độ ưu tiên phát triển yêu cầu hệ thống 58 3.2 PHÁT TRIỂN PHÂN HỆ QUẢN LÝ TIỀN 59 3.2.1 Phân tích hệ thống phân hệ quản lý tiền 59 3.2.2 Thiết kế kiến trúc hệ thống .73 3.2.3 Thiết kế sở liệu 75 3.2.4 Thiết kế giải thuật 79 3.2.5 Thiết kế giao diện 82 3.3 ĐỀ XUẤT GIẢI PHÁP TRANG BỊ CƠ SỞ HẠ TẦNG (PHẦN CỨNG) CHO HTTT QUẢN LÝ TÀI SẢN 88 3.4 KẾ HOẠCH CÀI ĐẶT, BẢO TRÌ, ĐÀO TẠO NGƯỜI SỬ DỤNG .89 KẾT LUẬN 92 DANH MỤC TÀI LIỆU THAM KHẢO PHỤ LỤC DANH MỤC TỪ VIẾT TẮT BCTC Báo cáo tài CNTT Cơng nghệ thơng tin CSDL Cơ sở liệu GTGT Giá trị gia tăng GBN Giấy báo nợ GBC Giấy báo có HTTT Hệ thống thơng tin KT Kế toán KTT Kế toán trưởng LAN Local Area Network NH Ngân hàng RAM Random Access Memory TSCĐ Tài sản cố định TSLĐ Tài sản lưu động TNHH Trách nhiệm hữu hạn TNDN Thu nhập doanh nghiệp UNC Ủy nhiệm chi USB Universal Serial Bus PNT Công ty TNHH Kiểm toán quốc tế PNT […] Nguồn tài liệu tham khảo DANH MỤC BẢNG BIỂU Bảng 2.1: Bảng tổng hợp công nợ phải thu khách hàng 49 Bảng 2.2: Bảng phân bổ CCDC 51 Bảng 2.3: Bảng phân bổ TSCĐ 52 Bảng 3.1: Chức hệ thống thông tin quản lý tài sản 57 Bảng 3.2: Bảng danh mục KHACHHANG 75 Bảng 3.3: Bảng danh mục NHANVIEN 75 Bảng 3.4: Bảng danh mục GIAYBAO 75 Bảng 3.5: Bảng danh mục TAIKHOAN 76 Bảng 3.6: Bảng danh mục PHIEUTC 77 Bảng 3.7: Bảng danh mục tài khoản ứng dụng 77 Bảng 3.8: Mơ hình quan hệ thực thể 78 Bảng 3.9: So sánh hệ thống cũ khơng có máy chủ hệ thống 88 DANH MỤC HÌNH VẼ Hình 1.1: Các yếu tố cấu thành hệ thống thông tin 12 Hình 1.2: Mơ hình thác nước vòng đời hệ thống 19 Hình 1.3: Sơ đồ ngữ cảnh hệ thống đặt bữa ăn 30 Hình 1.4: Ký pháp sử dụng mơ hình phân chức 27 Hình 1.5.: Sơ đồ BFD quản lý kho hàng 27 Hình 1.6: Các ký pháp biểu đồ luống liệu DFD 31 Hình 2.1: Sơ đồ cấu tổ chức Cơng ty TNHH Kiểm tốn Quốc tế PNT 43 Hình 2.2: Quy trình ghi sổ kế tốn theo hình thức kế tốn nhật ký chung ………… 51 Hình 3.1: Sơ đồ chức kinh doanh – BFD .62 Hình 3.2: Sơ đồ mức ngữ cảnh phần mềm quản lý tiền .63 Hình 3.4: Biểu đồ luồng liệu mức tiến trình 1.0 65 Hình 3.5: Sơ đồ luồng liệu mức tiến trình 2.0 66 Hình 3.6: Biểu đồ luồng liệu mức tiến trình 3.0 67 Hình 3.7: Biểu đồ luồng liệu mức tiếng trình 4.0 68 Hình 3.8: Biểu đồ luồng liệu mức tiến trình 5.0 69 Hình 3.9: Sơ đồ luồng thông tin IFD thu tiền mặt 70 Hình 3.10: Sơ đồ luồng thơng tin IFD chi tiền mặt .71 Hình 3.11: Sơ đồ luồng thơng tin IFD thu tiền gửi 72 Hình 3.12: Sơ đồ luồng thông tin IFD chi tiền gửi 72 Hình 3.13: Sơ đồ thiết kế kiến trúc hệ thống 74 Hình 3.14: Giải thuật đăng nhập hệ thống .79 Hình 3.15: Giải thuật xử lý liệu 80 Hình 3.16: Giải thuật lập báo cáo .81 TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - - PHÙNG TRUNG ĐỨC PHÁT TRIỂN HỆ THỐNG THÔNG TIN QUẢN LÝ TÀI SẢN TẠI CƠNG TY TNHH KIỂM TỐN QUỐC TẾ PNT CHUN NGÀNH: HỆ THỐNG THƠNG TIN QUẢN LÝ TĨM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI – 2015 i Tài sản sở vật chất thiếu kinh tế quốc dân hoạt động sản xuất kinh doanh doanh nghiệp Đối với doanh nghiệp, tài sản sở đánh giá trình độ cơng nghệ lực sản xuất, cạnh tranh doanh nghiệp Việc sử dụng quản lý tài sản doanh nghiệp ảnh hưởng trực tiếp đến chất lượng sản phẩm, dịch vụ, giá thành, đến khả cạnh tranh phát triển doanh nghiệp Trong mơi trường kinh doanh tính cạnh tranh ngày tăng tiến khoa học kỹ thuật ngày phát triển, việc quản lý tài sản doanh nghiệp đòi hỏi phải tổ chức khoa học, hợp lý hiệu Tài sản phải trải qua nhiều chu kỳ kinh doanh hoàn thành đủ vòng quay vốn bỏ ban đầu Như quản lý tài sản nhiệm vụ tất yếu Nó phần chiến lược kinh doanh doanh nghiệp, giúp cho nhà quản lý tốt số vốn bỏ ban đầu để có biện pháp điều hành sản xuất kinh doanh cách hợp lý đề phương hướng đắn, nâng cao hiệu trình sản xuất kinh doanh khẳng định vị doanh nghiệp thị trường Tại Cơng ty TNHH Kiểm tốn Quốc tế PNT nay, bản, công tác quản lý tài sản thực theo mơ hình gồm phận: phận quản lý vật Phòng kế hoạch tổng hợp; phận quản lý sổ sách Phòng kế tốn sốt xét Mơ hình quản lý dựa quan điểm: tài sản gắn liền với kế hoạch kinh doanh phòng ban, phần giám sát phận để đảm bảo tính khách quan Mơ hình phát sinh số bất cập trình quản lý làm cho hiệu quản lý, sử dụng tài sản chưa cao Do việc quản lý tài sản dựa nhiều người, tài sản lại có đặc điểm quản lý riêng phát sinh số vấn đề sau: - Thông tin rời rạc không tập trung, nhân viên quản lý loại tài sản riêng biệt - Nhiều công việc lặp lại thực riêng lẻ người PHỤ LỤC Một số mã code chức phần mềm quản lý tiền **************************Quản lý tài khoản*************************** #include "appaccount.h" #include "databasemanager.h" #include #include #include #include static QString sha1(const QString &plain) { QByteArray cipherBytes = QCryptographicHash::hash(plain.toUtf8(), QCryptographicHash::Sha1); return QString(cipherBytes.toBase64()); } bool AppAccount::selectAll(QList &results) { QString cmd = "select id, ten_tk, mat_khau, quyen_han from tk_ung_dung"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); if (!query.exec(cmd)) return false; while (query.next()) { AppAccount ac; ac.id = query.value(0).toInt(); ac.ten_tk = query.value(1).toString(); ac.mat_khau = query.value(2).toString(); ac.quyen_han = query.value(3).toInt(); results.append(QVariant::fromValue(ac)); } return true; } bool AppAccount::isValid(const QString &user, const QString &pass, int *resultPermission) { QString cmd = "select quyen_han from tk_ung_dung where ten_tk=:ten_tk and mat_khau=:mat_khau"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":ten_tk", user); query.bindValue(":mat_khau", sha1(pass)); if (query.exec() && query.next()) { *resultPermission = query.value(0).toInt(); return true; } return false; } bool AppAccount::insert() { QString cmd = "insert into tk_ung_dung(ten_tk, mat_khau, quyen_han) "; cmd += "values (:ten_tk, :mat_khau, :quyen_han)"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":ten_tk", ten_tk); query.bindValue(":mat_khau", sha1(mat_khau)); query.bindValue(":quyen_han", quyen_han); if (query.exec()) { id = query.lastInsertId().toInt(); return true; } return false; } bool AppAccount::update() { QString cmd = "update tk_ung_dung set ten_tk=:ten_tk, mat_khau=:mat_khau, "; cmd += "quyen_han=:quyen_han where id=:id"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":ten_tk", ten_tk); query.bindValue(":mat_khau", sha1(mat_khau)); query.bindValue(":quyen_han", quyen_han); query.bindValue(":id", id); return query.exec(); } bool AppAccount::del() { QString cmd = "delete from tk_ung_dung where id=:id"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":id", id); return query.exec(); } **********************Quản lý tài khoản ngân hàng********************** #include "bankaccount.h" #include "databasemanager.h" #include #include bool BankAccount::selectAll(QList &results) { QString cmd = "select id, ngan_hang, so_tk, ten_tk, loai_tk from tk_ngan_hang"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); if (!query.exec(cmd)) return false; while (query.next()) { BankAccount ba; ba.id = query.value(0).toInt(); ba.ngan_hang = query.value(1).toString(); ba.so_tk = query.value(2).toString(); ba.ten_tk = query.value(3).toString(); ba.loai_tk = query.value(4).toString(); results.append(QVariant::fromValue(ba)); } return true; } bool BankAccount::insert() { QString cmd = "insert into tk_ngan_hang(ngan_hang, so_tk, ten_tk, loai_tk) "; cmd += "values (:ngan_hang, :so_tk, :ten_tk, :loai_tk)"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":ngan_hang", ngan_hang); query.bindValue(":so_tk", so_tk); query.bindValue(":ten_tk", ten_tk); query.bindValue(":loai_tk", loai_tk); if (query.exec()) { id = query.lastInsertId().toInt(); return true; } return false; } bool BankAccount::update() { QString cmd = "update tk_ngan_hang set ngan_hang=:ngan_hang, so_tk=:so_tk, "; cmd += "ten_tk=:ten_tk, loai_tk=:loai_tk where id=:id"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":ngan_hang", ngan_hang); query.bindValue(":so_tk", so_tk); query.bindValue(":ten_tk", ten_tk); query.bindValue(":loai_tk", loai_tk); query.bindValue(":id", id); return query.exec(); } bool BankAccount::del() { QString cmd = "delete from tk_ngan_hang where id=:id"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":id", id); return query.exec(); } ****************************Quản lý khách hàng*********************** #include "customer.h" #include "databasemanager.h" #include #include bool Customer::selectAll(QList &results) { QString cmd = "select id, ho_ten, dia_chi, tai_khoan, ngan_hang from khach_hang"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); if (!query.exec(cmd)) return false; while (query.next()) { Customer customer; customer.id = query.value(0).toInt(); customer.ho_ten = query.value(1).toString(); customer.dia_chi = query.value(2).toString(); customer.tai_khoan = query.value(3).toString(); customer.ngan_hang = query.value(4).toString(); results.append(QVariant::fromValue(customer)); } return true; } bool Customer::insert() { QString cmd = "insert into khach_hang(ho_ten, dia_chi, tai_khoan, ngan_hang) "; cmd += "values (:ho_ten, :dia_chi, :tai_khoan, :ngan_hang)"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":ho_ten", ho_ten); query.bindValue(":dia_chi", dia_chi); query.bindValue(":tai_khoan", tai_khoan); query.bindValue(":ngan_hang", ngan_hang); if (query.exec()) { id = query.lastInsertId().toInt(); return true; } return false; } bool Customer::update() { QString cmd = "update khach_hang set ho_ten=:ho_ten, dia_chi=:dia_chi, "; cmd += "tai_khoan=:tai_khoan, ngan_hang=:ngan_hang where id=:id"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":ho_ten", ho_ten); query.bindValue(":dia_chi", dia_chi); query.bindValue(":tai_khoan", tai_khoan); query.bindValue(":ngan_hang", ngan_hang); query.bindValue(":id", id); return query.exec(); } bool Customer::del() { QString cmd = "delete from khach_hang where id=:id"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); query.prepare(cmd); query.bindValue(":id", id); return query.exec(); } **************************Quản lý giấy báo*************************** #include "giaybao.h" #include "databasemanager.h" #include #include #include #include #include bool GiayBao::selectAll(QList &results) { QString cmd = "select id, so_giay_bao, loai, so_tien, ngay_thang, "; cmd += "chi_tiet, id_nhan_vien, id_khach_hang, id_tai_khoan from giay_bao"; QSqlQuery query(DatabaseManager::getInstance()->getDatabase()); if (!query.exec(cmd)) return false; while (query.next()) { GiayBao gb; gb.id = query.value(0).toInt(); gb.so_giay_bao = query.value(1).toString(); gb.loai = query.value(2).toInt(); gb.so_tien = query.value(3).toInt(); gb.ngay_thang = query.value(4).toDate(); gb.chi_tiet = query.value(5).toString(); gb.id_nhan_vien = query.value(6).toInt(); gb.id_khach_hang = query.value(7).toInt(); gb.id_tai_khoan = query.value(8).toInt(); results.append(QVariant::fromValue(gb)); } return true; } bool GiayBao::selectByDate(QList &results, const QDate &start, const QDate &end, int type) { QString cmd = "select id, so_giay_bao, loai, so_tien, ngay_thang, chi_tiet from giay_bao "; cmd += "where ngay_thang >= :start_date and ngay_thang = :start_date and ngay_thang