1.1. Tình hình thực tại của hệ thống Công ty TNHH MTV dịch vụ và thương mại Bảo Minh đang hoạt động trên lĩnh vực cung cấp các sản phẩm vật liệu xây dựng, các linh kiện thiết bị máy móc. 1.2. Mô hình quản lý 1.2.1.Quản lý khách hàng Hoạt động này được áp dụng đối với những khách hàng thường xuyên của Công ty. Thêm mới, sửa chữa và xóa bỏ thông tin khách hàng. Thông tin về khách hàng bao gồm mã khách hàng, tên khách hàng, địa chỉ, điện thoại liên hệ và một số thông tin khác. Tất cả thông tin về khách hàng đều được lưu trữ lại. 1.2.2. Quản lý thông tin sản phẩm, dịch vụ Thêm mới hàng hóa, dịch vụ khi được đưa về, sửa các thông tin, xóa các thông tin hàng không còn kinh doanh nữa. Các thông tin về hàng bao gồm: mã hàng, tên hàng, mô tả hàng, thời gian bảo hành, nhà sản xuất, số lượng hiện có. Những thông tin về hàng được nhân viên quản lý kho hàng cung cấp khi hàng được chuyển đến kho. 1.2.3. Hoạt động kinh doanh của công ty Khách hàng có thể đặt hàng thông qua nhiều hình thức như gọi điện thoại, gửi email ... hoặc đến trực tiếp Công ty để tham quan và ký hợp đồng lắp đặt dịch vụ, sản phẩm. Khi khách hàng muốn sử dụng dịch vụ, sản phẩm, sẽ có nhân viên tư vấn cung cấp hang hoá, đến tận nơi chăm sóc và làm hợp đồng với khách hàng. Sau khi ký hợp đồng, công ty sẽ tiến hành cung cấp các thiết bị cần thiết đến địa chỉ khách hàng, thông tin khách hàng, sẽ được lưu trữ lại để quản lý.
BỘ GIÁO DỤC & ĐÀO TẠO VIỆN ĐẠI HỌC MỞ HÀ NỘI -*** - BÁO CÁO THỰC TẬP TỐT NGHIỆP QUẢN LY BÁN HÀNG CÔNG TY CỔ PHẦN PHÁT TRIỂN THƯƠNG MẠI KHANG THỊNH PHÁT Họ tên : Tạ Văn Khánh Ngày sinh : 23/07/1987 Ngành : Công nghệ thông tin HÀ NỘI - 2018 MỤC LỤC CHƯƠNG1 KHẢO SÁT THỰC TRẠNG 1.1 Tình hình thực của hệ thống .1 1.2 Mô hình quản ly 1.2.1.Quản lý khách hàng 1.2.2 Quản lý thông tin sản phẩm, dịch vu 1.2.3 Hoạt động kinh doanh của công ty .1 1.3 Chức của hệ thống 1.4 Quy trình nghiệp vu .3 1.5 Các nhược điểm, hạn chế của hệ thống cu 1.6 Các vấn đề cần được nghiên cứu thay đổi CHƯƠNG PHÂN TÍCH HỆ THỐNG .5 2.1 Yêu cầu của hệ thống mới 2.1.1 Tính khoa học của hệ thống 2.1.2 Tính công nghệ của hệ thống 2.2 Sơ đồ hệ thống 2.2.1 Sơ đồ luồng dữ liệu 2.3 Sơ đồ Use Case 18 2.3.1 Sơ đồ Use Case tổng thê 18 2.3.2 Sơ đồ Use Case nhập hàng .18 2.3.3 Sơ đồ Use Case ký hợp đồng hòa mạng .19 2.3.4 Sơ đồ Use Case bảo hành .19 2.3.5 Sơ đồ Use Case sửa chữa .20 2.3.6 Sơ đồ Use Case báo cáo doanh thu 20 2.4 Sơ đồ lớp 21 2.5 Sơ đồ tuần tự 22 2.5.1 Sơ đồ tuần tự hoạt động cập nhật danh muc khách hàng 22 2.5.2 Sơ đồ tuần tự hoạt động bán hàng 22 2.5.3 Sơ đồ tuần tự hoạt động nhập hàng 23 2.5.4 Sơ đồ tuần tự hoạt động bảo hành 23 2.5.5 Sơ đồ tuần tự hoạt động sửa chữa .24 2.6 Sơ đồ trạng thái 24 2.6.1 Đối tượng KhachHang 24 2.6.1 Đối tượng NhaCungCap 25 2.6.2 Đối tượng NhanVien 26 2.6.3 Đối tượng Hang 27 2.6.4 Đối tượng HangSanXuat .28 2.6.5 Đối tượng PhieuNhap 29 2.6.6 Đối tượng PhieuXuat 30 CHƯƠNG THIẾT KẾ HỆ THỐNG 32 3.1 Thiết kế CSDL 32 3.1.1 Mơ hình thực thê liên kết ER 32 3.1.2 Mơ hình CSDL quan hệ 35 3.2 Thiết kế chương trình 37 3.2.1 Lựa chọn cơng cu lập trình 37 3.2.2 Lựa chọn CSDL 38 3.2.3 Thiết kế chương trình 38 CHƯƠNG1 KHẢO SÁT THỰC TRẠNG 1.1 Tình hình thực của hệ thống Công ty TNHH MTV dịch vu thương mại Bảo Minh hoạt động lĩnh vực cung cấp sản phẩm vật liệu xây dựng, linh kiện thiết bị máy móc 1.2 Mơ hình quản ly 1.2.1.Quản ly khách hàng Hoạt động được áp dung đối với những khách hàng thường xuyên của Công ty Thêm mới, sửa chữa xóa bỏ thơng tin khách hàng Thơng tin khách hàng bao gồm mã khách hàng, tên khách hàng, địa chỉ, điện thoại liên hệ số thông tin khác Tất thông tin khách hàng được lưu trữ lại 1.2.2 Quản ly thông tin sản phẩm, dịch vu Thêm hàng hóa, dịch vu được đưa về, sửa thơng tin, xóa thơng tin hàng không còn kinh doanh nữa Các thông tin hàng bao gồm: mã hàng, tên hàng, mô tả hàng, thời gian bảo hành, nhà sản xuất, số lượng hiện có Những thơng tin hàng được nhân viên quản lý kho hàng cung cấp hàng được chuyên đến kho 1.2.3 Hoạt động kinh doanh của công ty Khách hàng có thê đặt hàng thơng qua nhiều hình thức gọi điện thoại, gửi email đến trực tiếp Công ty đê tham quan ký hợp đồng lắp đặt dịch vu, sản phẩm Khi khách hàng ḿn sử dung dịch vu, sản phẩm, sẽ có nhân viên tư vấn cung cấp hang hoá, đến tận nơi chăm sóc làm hợp đờng với khách hàng Sau ký hợp đồng, công ty sẽ tiến hành cung cấp thiết bị cần thiết đến địa khách hàng, thông tin khách hàng, sẽ được lưu trữ lại đê quản lý 1.3 Chức của hệ thống Công việc Lưu thông tin đơn đặt hàng Lưa thông tin hàng Lưu thông tin khách hàng Lưu thông tin hóa đơn Lưu thơng tin phiếu bảo hành Lưu thơng tin nhân viên Thay đổi mật khẩu,thêm tài khoản Hiên thị danh sách sản phẩm Hiên thị danh sách khách hàng Hiên thị danh sách nhân viên Hiên thị danh sách hóa đơn Hiên thị danh sách phiếu chuyên hàng Hiên thị danh sách phiếu bảo hành Hiên thị danh sách người dùng Tìm kiếm sản phẩm Tìm kiếm khách hàng Tìm kiếm hóa đơn Tìm kiếm đơn hàng Tìm phiếu bảo hành Lọc danh sách người dung theo nhóm Tính tiền nhóm sản phẩm In hóa đơn Thớng kê doanh thu Loại công việc Lưu trữ Lưu trữ Lưu trữ Lưu trữ Lưu trữ Lưu trữ Lưu trữ Kế xuất Kế xuất Kế xuất Kế xuất Kế xuất Kế xuất Kế xuất Tra cứu Tra cứu Tra cứu Tra cứu Tra cứu Tra cứu Tính tốn Thớng kê Thớng kê Bảng 1.1 Bảng chức của hệ thống Ghi Chú Thêm, sửa, xóa Thêm, sửa, xóa Thêm, sửa, xóa Thêm, sửa, xóa Thêm, sửa, xóa Thêm, sửa, xóa Thêm, sửa, xóa 1.4 Quy trình nghiệp vu Tên hành động Lưu thông tin đơn đặt hàng Lưu thông tin hàng Lưu thơng tin khách hàng Lưu thơng tin hóa đơn Lập phiếu bảo hành Lưu thông tin nhân viên Thay đổi mật khẩu, thêm tàikhoản Hiên thị danh sách sản phẩm Hiên thị danh sách khách hàng Hiên thị danh sách nhân viên Hiên thị danh sách hóa đơn Hiên thị danh sách phiếu chuyên hàng Hiên thị danh sách phiếu bảo hành Hiên thị danh sách người dùng Tìm kiếm sản phẩm Tìm kiếm khách hàng Tìm kiếm hóa đơn Tìm kiếm đơn hàng Tìm phiếu bảo hành Lọc danh sách người dùng theo nhóm Tính tiền nhóm sản phẩm In hóa đơn Thớng kê doanh thu Kiểu thực Chương trình Chương trình Chương trình Chương trình Văn Chương trình Chương trình Chương trình Người thực Nhân viên bán hàng Mô tả Nhận thông tin đơn đặt hàng lưu vào CSDL Nhân viên bán hàng Nhân viên quản lý Nhận thông tin khách hàng lưu vào CSDL Nhân viên bán hàng Nhân viên bán hàng Nhân viên quản lý Viết hóa đơn gửi cho khách hàng đê họ toán lưu lại của hóa đơn Lập phiếu bảo hành cho sản phẩm Thêm sửa xóa Nhân viên quản lý Quản lý tài khoản sử dung phần mềm Nhân viên bán hàng Thơng kê tình trạng sản phẩm Nhân viên bán hàng Nhân viên bán hàng Tra cứu thông tin Nhân viên bán hàng Tra cứu thông tin Nhân viên bán hàng Tra cứu thông tin Nhân viên bán hàng Tra cứu thông tin Nhân viên bán hàng Tra cứu thông tin Nhân viên bán hàng Nhân viên bán hàng Tra cứu thông tin Tra cứu thông tin Nhân viên bán hàng Nhân viên bán hàng Nhân viên bán hàng Nhân viên bán hàng Tra cứu thông tin Tra cứu thông tin Tra cứu thông tin Nhân viên bán hàng Thống kê doanh thu theo nhóm sản phẩm Nhân viên bán hàng Nhân viên bán hàng Bảng 1.2 Bảng quy trình nghiệp vu 1.5 Các nhược điểm, hạn chế của hệ thống cu Hệ thống nhập dữ liệu yêu cầu nhiều thơng tin gây dễ nhầm lẫn sai xót Giao diện phần mềm thiếu trực quan, khó sử dung Báo cáo thống kê chưa đầy đủ thông tin cần thiết cho khâu quản lý 1.6 Các vấn đề cần được nghiên cứu thay đổi Thay đổi giao diện phần mềm dễ thao tác, sử dung, cu thê thông tin nhập xuất của khâu quản lý hàng không cần u cầu tồn thơng tin chi tiết, cần nhân viên thu thập thông tin cốt lõi liên quan đến hệ thống quản lý của công ty Chỉ sử dung hình thức tốn cho loại mặt hàng tránh lan man gây lúng túng cho khách hàng ví du đối với sản phẩm phu kiện usb nhân viên yêu cầu toán quầy còn sản phẩm case máy tính viết hóa đơn toán với thu ngân Việc sẽ sinh bất cập quản lý mặt hàng hệ thớng quản lý, có thê nhân viên sẽ qn nhập lại thơng tin hóa đơn với khách hàng toán trực tiếp quầy CHƯƠNG PHÂN TÍCH HỆ THỐNG 2.1 Yêu cầu của hệ thống mới 2.1.1 Tính khoa học của hệ thống Hệ thống đáp ứng được yêu cầu của Công ty Hệ thống đựơc thiết kế hoàn chỉnh đủ chức mà khách hàng u cầu, có thê thêm sớ chức khác từ bên nhà thiết kế đê phù hợp với chương trình Hệ thớng được thiết kế theo modul đê dễ dàng xử lý lỗi dễ dàng nâng cấp hệ thống 2.1.2 Tính công nghệ của hệ thống Hệ thống phải đầy đủ chức tương ứng của chức thực hiện nhưkhi muốn thực hiện chức lưu trữ phải theo chuẩn của lưu trữ, muốn thực hiện chức kế xuất phải theo chuẩn của kế xuất, muốn thống kê phải theo ch̉n của thớng kê 2.2 Sơ đồ hệ thống Mô tả chức năng: Quản lý danh muc - Nhân viên + Thông tin vào: Thông tin nhân viên của Công ty + Thông tin ra: Danh sách thông tin nhân viên - Nhà cung cấp + Thông tin vào: Thông tin chi tiết nhà cung cấp + Thông tin ra: Danh sách thông tin nhà cung cấp sản phẩm cho công ty đại lý - Hãng sản xuất + Thông tin vào: Thông tin chi tiết hãng sản xuất của sản phẩm + Thông tin ra: Danh sách hãng sản xuất của sản phẩm kinh doanh - Hàng + Thông tin vào: Thông tin chi tiết hàng kinh doanh chuẩn bị thêm đê kinh doanh + Thông tin ra: Danh sách hàng sắp kinh doanh Nhập xuất: - Nhập + Thông tin vào: Thông tin nhập hàng (Ngày, , giá , …) + Thông tin ra: Danh sách thông tin phiếu nhập - Xuất + Thông tin vào: Thông tin xuất hàng (Ngày, , giá , …) + Thông tin ra: Danh sách thông tin phiếu xuất (Hàng, giá, thời gian, …) Dịch vu: - Dịch vu + Thơng tin vào: Thơng tin sản phẩm xuất, tình trạng sản phẩm, sửa chữa, bảo hành, chi phí + Thông tin ra: Danh sáchthông tin sản phẩm xuất, tình trạng sản phẩm, sửa chữa, bảo hành, chi phí Báo cáo thông tin + Thông tin vào: Các tiêu chí lọc thông tin + Thông tin ra: Danh sách thông tin chi tiết sản phẩm, xuất của nhân viên, doanh thu, … 2.2.1 Sơ đồ luồng dữ liệu - Sơ đồ LDL mức khung cảnh Hình 2.2 Sơ đồ LDL mức khung cảnh MaNhaCungCap from PhieuNhap where MaPhieuNhap = " + maPhieu + ""); } else { txtNgayNhap.Text = DateTime.Now.ToShortDateString(); } } Đầu tiên gọi sử dung hàm hienthicomboboxđã được viết sẵn thư viện đê lấy dữ liệu nhà cung cấp nhân viên gán lại cho combobox hiên thị form Sau sẽ kiêm tra biến tổng maPhieu, biến bằng sẽ gán ngày hiện vào text boxtxtNgayNhaptrên form ngược lại sẽ thực hiện chức cập nhật thông tin (chức của nút Sửa form PhieuNhap) Sự kiện click vào nút lưu sẽ gọi đến hàm privatevoid btnLuu_Click(object sender, EventArgs e): Class PhieuNhapTT.cs privatevoid btnLuu_Click(object sender, EventArgs e) { if (maPhieu != 0) { string s = "Update PhieuNhap set NgayNhap = N'" + txtNgayNhap.Text + "', MaNhanVien = " + cbxNhanVien.SelectedValue.ToString() + ", MaNhaCungCap = " + cbxNhaCungCap.SelectedValue.ToString() + " where MaPhieuNhap = " + maPhieu + ""; if (!tvh.thucthisql(s)) return; } else { string s = "insert into PhieuNhap(NgayNhap, MaNhanVien, MaNhaCungCap) values (N'" + txtNgayNhap.Text + "', " + cbxNhanVien.SelectedValue.ToString() + ", " + cbxNhaCungCap.SelectedValue.ToString() + ")"; if (!tvh.thucthisql(s)) return; } this.Close(); } Hàm kiêm tra biến tởng maPhieunếu bằng sẽ sử dung hàmthucthisql(s)với biến s câu lệnh sql có chức thêm dữ liệu vào database với thông tin được lấy form rồi ngắt hàm sử dung 63 lệnhthis.Close();đê đóng form lại Nếu maPhieukhác sẽthực hiện chức cập nhật thơng tin (chức của nút Sửa form PhieuNhap) Sau form PhieuNhapTTđóng lại hàmbtnThem_Clicksẽ thực hiện nớt chức của chạy vào hàm hienthidatagridview(dataGridView1, "select * from vPhieuNhap");đê gán lại dữ liệu của vPhieuNhap vào lưới dữ liệudataGridView1 Hàm sự kiện ấn nút Sửa bên Phiếu nhậpbtnSua_Click(object sender, EventArgs e) Class PhieuNhap.cs privatevoid btnSua_Click(object sender, EventArgs e) { PhieuNhapTT f = newPhieuNhapTT(int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString())) ; f.ShowDialog(); tvh.hienthidatagridview(dataGridView1, "select * from vPhieuNhap"); } Hàm khởi tạo FormPhieuNhapTTvới biến truyền vào giá trị cột đầu tiên của lưới dữ liệu dataGridView1(giá trị mã phiếu nhập) tức form hiên thị đê sửa đổi dữ liệuvà hiên thị lên hình kiêuShowDialog(); Hàm khởi tạo của formPhieuNhapTTpublic PhieuNhapTT(int mP = 0) Class PhieuNhapTT.cs publicint maPhieu; public PhieuNhapTT(int mP = 0) { maPhieu = mP; InitializeComponent(); } Trong lớp PhieuNhapTTsử dung biến tổng dạng công cộngmaPhieuvà hàm khởi tạo sẽ biến truyền vào kiêu sớmP Kèm theo hàm PhieuNhapTT_Loadcũng sẽ được chạy form bật lên: Class PhieuNhapTT.cs 64 privatevoid PhieuNhapTT_Load(object sender, EventArgs e) { tvh.hienthicombobox(cbxNhaCungCap, "NhaCungCap", "TenNhaCungCap", "MaNhaCungCap"); tvh.hienthicombobox(cbxNhanVien, "NhanVien", "TenNhanVien", "MaNhanVien"); if (maPhieu != 0) { lblMa.Text = maPhieu.ToString(); tvh.hienthitextbox(txtNgayNhap, "select NgayNhap from PhieuNhap where MaPhieuNhap = " + maPhieu + ""); cbxNhanVien.SelectedValue = tvh.layDuLieu("select MaNhanVien from PhieuNhap where MaPhieuNhap = " + maPhieu + ""); cbxNhaCungCap.SelectedValue = tvh.layDuLieu("select MaNhaCungCap from PhieuNhap where MaPhieuNhap = " + maPhieu + ""); } else { txtNgayNhap.Text = DateTime.Now.ToShortDateString(); } } Đầu tiên gọi sử dung hàm hienthicomboboxđã được viết sẵn thư viện đê lấy dữ liệu nhà cung cấp nhân viên gán lại cho combobox hiên thị form Sau sẽ kiêm tra biến tởng maPhieu, biến bằng sẽ thực hiện chức thêm thông tin (chức của nút Thêm form PhieuNhap) Ngược lại khác sẽ sử dung biến maPhieutruyền vào hàm layDuLieu (đã được cài sẵn thư viện) đê lấy lại dữ liệu có sẵn của mã phiếu được chọn gán vào control hiên thị form Sự kiện click vào nút lưu sẽ gọi đến hàm privatevoid btnLuu_Click(object sender, EventArgs e): Class PhieuNhapTT.cs privatevoid btnLuu_Click(object sender, EventArgs e) { if (maPhieu != 0) { string s = "Update PhieuNhap set NgayNhap = N'" + txtNgayNhap.Text + "', MaNhanVien = " + cbxNhanVien.SelectedValue.ToString() + ", MaNhaCungCap = " + cbxNhaCungCap.SelectedValue.ToString() + " where MaPhieuNhap = " + maPhieu + ""; 65 if (!tvh.thucthisql(s)) return; } else { string s = "insert into PhieuNhap(NgayNhap, MaNhanVien, MaNhaCungCap) values (N'" + txtNgayNhap.Text + "', " + cbxNhanVien.SelectedValue.ToString() + ", " + cbxNhaCungCap.SelectedValue.ToString() + ")"; if (!tvh.thucthisql(s)) return; } this.Close(); } Hàm kiêm tra biến tổng maPhieunếu bằng sẽthực hiện chức thêm mớithơng tin (chức của nút Thêm form PhieuNhap) Nếu khác sử dung hàmthucthisql(s)với biến s câu lệnh sql có chức cập nhật dữ liệu vào ghi có mã maPhieutrong database với thơng tin được lấy form Cuối sử dung lệnhthis.Close();đê đóng form lại Sau form PhieuNhapTTđóng lại hàmbtnSua_Click sẽ thực hiện nớt chức của chạy vào hàm hienthidatagridview(dataGridView1, "select * from vPhieuNhap");đê gán lại dữ liệu của vPhieuNhap vào lưới dữ liệudataGridView1 Hàm sự kiện ấn nút Xóa bên Phiếu nhậpbtnXoa_Click(object sender, EventArgs e) Class PhieuNhap.cs privatevoid btnXoa_Click(object sender, EventArgs e) { if (MessageBox.Show("Bạn có chắc chắn ḿn xóa?", "Chú ý", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; string s = "delete PhieuNhap where MaPhieuNhap = "+dataGridView1.CurrentRow.Cells[0].Value.ToString()+""; if (tvh.thucthisql(s)) tvh.hienthidatagridview(dataGridView1, "select * from vPhieuNhap"); } 66 Đầu tiên sử dung hàm MessageBox.Show của winform đê hiên thị form xác nhận xóa dữ liệu với nútYesNo, hàm trả giá trịDialogResult.NohoặcDialogResult.Yes, đặt điều kiện ifđê kiêm tra kết trả làDialogResult.Nothì sẽ ngắt hàm ngược lại sẽ thực hiện hàm thucthisql(s)với câu lệnh sql xóa dữ liệu theo giá trị cột mã dòng dữ liệu được chọn lưới Hàmthucthisql(s)trả giá trịtrue false nên sẽ đặt điều kiện if đê kiêm tra xem có xóa được dữ liệu hay khơng Nếu có sẽ sử dung hàm hienthidatagridviewđê cập nhật lại dữ liệu lưới dữ liệudataGridView1 Hàm sự kiện ấn nút thêm bên Chi tiếtphiếu nhậpprivatevoid btnThem_Click(object sender, EventArgs e) Class PhieuNhap.cs privatevoid btnThemTT_Click(object sender, EventArgs e) { PhieuNhapChiTietTT f = newPhieuNhapChiTietTT(int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToS tring()), 0); f.ShowDialog(); tvh.hienthidatagridview(dataGridView2, "select * from vThongTinNhap where MPN = " + dataGridView1.CurrentRow.Cells[0].Value.ToString() + ""); } Hàm khởi tạo FormPhieuNhapTTvới biến truyền vào mã phiếu xuất được chọn bên dataGridView1 tức form hiên thị đê thêm dữ liệuvà hiên thị lên hình kiêuShowDialog(); Hàm khởi tạo của formPhieuNhapChiTietTTpublic PhieuNhapChiTietTT(int mp, int mttp = 0) Class PhieuNhapChiTietTT.cs publicint maPhieu; publicint maThongTinNhap; ThuVienHam tvh = newThuVienHam(); public PhieuNhapChiTietTT(int mp, int mttp = 0) { maPhieu = mp; maThongTinNhap = mttp; InitializeComponent(); } 67 Trong lớp PhieuNhapChiTietTT sử dung hai biến tổng dạng công cộngmaPhieu, maThongTinNhapvà hàm khởi tạo sẽ gán giá trị cho hai biến tương ứng bằng biến truyền vào kiêu sốmP, mttp Ở biến mttp được cài đặt giá trị mặc định form được khởi tạo mà khơng có giá trị truyền vào cho mttp, mttp sẽ nhận giá trị Kèm theo hàm PhieuNhapTT_Loadcũng sẽ được chạy form bật lên: Class PhieuNhapChiTietTT.cs privatevoid PhieuNhapTT_Load(object sender, EventArgs e) { tvh.hienthicombobox(cbxHang, "Hang", "TenHang", "MaHang"); lblMa.Text = maPhieu.ToString(); if (maThongTinNhap != 0) { string s = " from ThongTinNhap where MaPhieuNhap = " + maPhieu + " and MaThongTinNhap = "+maThongTinNhap+""; lblMaChiTiet.Text = maThongTinNhap.ToString(); tvh.hienthitextbox(txtDonGia, "select DonGia"+ s); cbxHang.SelectedValue = tvh.layDuLieu("select MaHang" + s); tvh.hienthitextbox(txtSoLuong, "select SoLuong" + s); } } Đầu tiên gọi sử dung hàm hienthicomboboxđã được viết sẵn thư viện đê lấy dữ liệu hàng gán lại cho combobox hiên thị form Sau sẽ kiêm tra biến tởng maThongTinNhap, biến bằng sẽ khơng làm ngược lại sẽ thực hiện chức cập nhật thông tin (chức của nút Thêm form PhieuNhap) Sự kiện click vào nút lưu sẽ gọi đến hàm privatevoid btnLuu_Click(object sender, EventArgs e): Class PhieuNhapChiTietTT.cs privatevoid btnLuu_Click(object sender, EventArgs e) { if (maThongTinNhap != 0) { string s = "Update ThongTinNhap set MaHang = N'" + cbxHang.SelectedValue.ToString() + "', SoLuong = " + txtSoLuong.Text + ", DonGia = " + txtDonGia.Text + " where MaPhieuNhap = " + maPhieu + " and 68 MaThongTinNhap = " + maThongTinNhap + ""; if (!tvh.thucthisql(s)) return; } else { string s = "insert into ThongTinNhap(MaPhieuNhap, MaHang, SoLuong, DonGia) values ("+maPhieu+"," + cbxHang.SelectedValue.ToString() + ", " + txtSoLuong.Text + ", " + txtDonGia.Text + ")"; if (!tvh.thucthisql(s)) return; } this.Close(); } Hàm kiêm tra biến tổng maThongTinNhap bằng sẽ sử dung hàmthucthisql(s)với biến s câu lệnh sql có chức thêm dữ liệu vào database với thông tin được lấy form rời ngắt hàm sử dung lệnhthis.Close();đê đóng form lại Nếu maThongTinNhap khác sẽthực hiện chức cập nhật thông tin (chức của nút Sửa form PhieuNhap) Sau form PhieuNhapChiTietTT đóng lại hàmbtnThemTT_Clicksẽ thực hiện nớt chức của chạy vào hàm hienthidatagridview(dataGridView2, "select * from vThongTinNhap where MPN = " + dataGridView1.CurrentRow.Cells[0].Value.ToString() + "");đê gán lại dữ liệu của vThongTinNhaptheo mã phiếu nhập được chọnvào lưới dữ liệudataGridView2 Hàm sự kiện ấn nút Sửa bên Chi tiết phiếu nhậpbtnSua_Click(object sender, EventArgs e) Class PhieuNhap.cs privatevoid btnSuaTT_Click(object sender, EventArgs e) { PhieuNhapChiTietTT f = newPhieuNhapChiTietTT(int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToS tring()), int.Parse(dataGridView2.CurrentRow.Cells[0].Value.ToString())); f.ShowDialog(); tvh.hienthidatagridview(dataGridView2, "select * from vThongTinNhap where MPN = " + dataGridView1.CurrentRow.Cells[0].Value.ToString() + ""); } 69 Hàm khởi tạo FormPhieuNhapChiTietTTvới biến truyền vào giá trị cột đầu tiên của lưới dữ liệu dataGridView1(giá trị mã phiếu nhập) giá trị cột đầu tiên của lưới dữ liệu dataGridView2(giá trị mã thông tin phiếu nhập) tức form hiên thị đê sửa đổi dữ liệuvà hiên thị lên hình kiêuShowDialog(); Hàm khởi tạo của formPhieuNhapChiTietTTpublic PhieuNhapChiTietTT(int mp, int mttp = 0) Class PhieuNhapChiTietTT.cs publicint maPhieu; publicint maThongTinNhap; ThuVienHam tvh = newThuVienHam(); public PhieuNhapChiTietTT(int mp, int mttp = 0) { maPhieu = mp; maThongTinNhap = mttp; InitializeComponent(); } Trong lớp PhieuNhapChiTietTT sử dung hai biến tổng dạng công cộngmaPhieu, maThongTinNhapvà hàm khởi tạo sẽ gán giá trị cho hai biến tương ứng bằng biến truyền vào kiêu sốmP, mttp Ở biến mttp được cài đặt giá trị mặc định form được khởi tạo mà khơng có giá trị truyền vào cho mttp, mttp sẽ nhận giá trị Kèm theo hàm PhieuNhapTT_Loadcũng sẽ được chạy form bật lên: Class PhieuNhapChiTietTT.cs privatevoid PhieuNhapTT_Load(object sender, EventArgs e) { tvh.hienthicombobox(cbxHang, "Hang", "TenHang", "MaHang"); lblMa.Text = maPhieu.ToString(); if (maThongTinNhap != 0) { string s = " from ThongTinNhap where MaPhieuNhap = " + maPhieu + " and MaThongTinNhap = "+maThongTinNhap+""; lblMaChiTiet.Text = maThongTinNhap.ToString(); tvh.hienthitextbox(txtDonGia, "select DonGia"+ s); cbxHang.SelectedValue = tvh.layDuLieu("select MaHang" + s); tvh.hienthitextbox(txtSoLuong, "select SoLuong" + s); } } 70 Đầu tiên gọi sử dung hàm hienthicomboboxđã được viết sẵn thư viện đê lấy dữ liệu hàng gán lại cho combobox hiên thị form Sau sẽ kiêm tra biến tổng maThongTinNhap, biến bằng sẽ khơng làm ngược lại sẽ sử dung hai biến tổng maPhieu, maThongTinNhapđê thêm điều kiện cho câu lệnh sql lấy giá trị của ghi có sẵn sql gán lại cho control form Sự kiện click vào nút lưu sẽ gọi đến hàm privatevoid btnLuu_Click(object sender, EventArgs e): Class PhieuNhapChiTietTT.cs privatevoid btnLuu_Click(object sender, EventArgs e) { if (maThongTinNhap != 0) { string s = "Update ThongTinNhap set MaHang = N'" + cbxHang.SelectedValue.ToString() + "', SoLuong = " + txtSoLuong.Text + ", DonGia = " + txtDonGia.Text + " where MaPhieuNhap = " + maPhieu + " and MaThongTinNhap = " + maThongTinNhap + ""; if (!tvh.thucthisql(s)) return; } else { string s = "insert into ThongTinNhap(MaPhieuNhap, MaHang, SoLuong, DonGia) values ("+maPhieu+"," + cbxHang.SelectedValue.ToString() + ", " + txtSoLuong.Text + ", " + txtDonGia.Text + ")"; if (!tvh.thucthisql(s)) return; } this.Close(); } Hàm kiêm tra biến tởng maPhieunếu bằng sẽthực hiện chức thêm mớithông tin (chức của nút Thêm form PhieuNhap) Nếu khác sử dung hàmthucthisql(s)với biến s câu lệnh sql có chức cập nhật dữ liệu vào ghi có mã maPhieutrong database với thông tin được lấy form Ći sử dung lệnhthis.Close();đê đóng form lại Sau form PhieuNhapChiTietTT đóng lại hàmbtnSuaTT_Click sẽ thực hiện nớt chức của chạy vào hàm hienthidatagridview(dataGridView2, "select 71 * from vThongTinNhap where MPN = " + dataGridView1 CurrentRow Cells[0].Value.ToString() + ""); đê gán lại dữ liệu của vThongTinNhap theo mã phiếu nhập được chọnvào lưới dữ liệudataGridView2 Hàm sự kiện ấn nút Xóa bên Chi tiếtphiếu nhậpbtnXoa_Click(object sender, EventArgs e) Class PhieuNhap.cs privatevoid btnXoaTT_Click(object sender, EventArgs e) { if (MessageBox.Show("Bạn có chắc chắn ḿn xóa?", "Chú ý", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; string s = "delete ThongTinNhap where MaPhieuNhap = " + dataGridView1.CurrentRow.Cells[0].Value.ToString() + " and MaThongTinNhap = " + dataGridView2.CurrentRow.Cells[0].Value.ToString() + ""; if (tvh.thucthisql(s)) tvh.hienthidatagridview(dataGridView2, "select * from vThongTinNhap where MPN = " + dataGridView1.CurrentRow.Cells[0].Value.ToString() + ""); } Đầu tiên sử dung hàm MessageBox Show của winform đê hiên thị form xác nhận xóa dữ liệu với nút YesNo, hàm trả giá trịDialogResult NohoặcDialogResult Yes, đặt điều kiện ifđê kiêm tra kết trả làDialogResult.Nothì sẽ ngắt hàm ngược lại sẽ thực hiện hàm thucthisql(s)với câu lệnh sql xóa dữ liệu theo giá trị cột mã dòng dữ liệu được chọn lưới Hàmthucthisql(s)trả giá trịtrue false nên sẽ đặt điều kiện if đê kiêm tra xem có xóa được dữ liệu hay khơng Nếu có sẽ sử dung hàm hien thi datagridview đê cập nhật lại dữ liệu lưới dữ liệudataGridView2 72 - Xuất hàng Hình 3.14 Muc xuất hàng Mô tả chức năng: Cột bên trái danh sách phiếu xuất, người dùng cập nhật thông tin bằng cách ấn vào nút cột bên trái Thông tin phiếu nhập sẽ hiên thị đầy đủ sau thao tác Cột bên phải danh sách sản phẩm nằm phiếu xuất Khi chọn phiếu xuất, danh sách sẽ được lọc theo phiếu xuất chọn Người dùng có thê cập nhật thơng tin sản phẩm xuất bằng ba nút cột bên phải 73 - Dịch vu Hình 3.15 Muc dịch vu Mô tả chức năng: Người dùng cần biết được mã phiếu xuất đê chọn sản phẩm muốn sử dung dịch vu Nhập mã dịch vu vào tìm kiếm ấn tìm kiếm Cột bên trái danh sách hàng của mã phiếu xuất tìm kiếm sau ấn tìm kiếm Người dùng ấn vào sản phẩm sẽ hiện danh sách dịch vu của sản phẩm Cột bên phải danh sách dịch vu mà sản phẩm thực hiện, người dùng có thê cập nhật thơng tin dịch vu của sản phẩm bằng ba nút bên - Muc báo cáo Hình 3.16 Muc báo cáo 74 Các chức năng: + Báo cáohàng tồn kho Chức giúp báo cáo danh sách hàng nhập sau tháng Hình 3.17 Form báo cáo hàng tồn kho + Báo cáonhập xuất theo sản phẩm Người dùng chọn nhập xuất chọn sản phẩm cần báo cáo ấn nút đê hiên thị danh sách in Hình 3.18 Form báo cáo nhập xuất theo sản phẩm 75 + Báo cáobán hàng theo ngày của nhân viên Chức báo cáo lượng hàng bán theo ngày, tính toán chiết khấu, tởng hóa đơn của nhân viên bán Hình 3.19 Form báo cáo bán theo ngày của nhân viên Em xin chân thành cảm ơn thầy cô giáo tận tình giúp đỡ với những gợi ý quan trọng của giúp nhóm em śt thời gian thực hiện đề tài thực tập tốt nghiệp Em xin chân thành cảm ơn! 76 Cộng hòa xã hội chủ nghĩa Việt Nam Độc lập- Tự do- Hạnh phúc NHẬN XÉT THỰC TẬP TỐT NGHIỆP Họ tên sinh viên: Tạ Văn Khánh Sinh ngày: 23/07/1987 Viện Đại học Mở Hà Nội Thực tập tại: Công ty cổ phần phát triên thương mại Khang Thịnh Phát Địa chỉ: Tầng 2, sớ nhà 565, đường Giải Phóng, Giáp Bát, Hồng Mai, Hà Nội Nội dung thực tập: Về tinh thần, thái độ, y thức tổ chức kỷ luật: Về công việc được giao: Hà Nội, Ngày CÁN BỘ HƯỚNG DẪN tháng năm 2018 XÁC NHẬN CỦA ĐƠN VỊ THỰC TẬP Giám đốc ... của hệ thống Công ty TNHH MTV dịch vu thương mại Bảo Minh hoạt động lĩnh vực cung cấp sản phẩm vật liệu xây dựng, linh kiện thiết bị máy móc 1.2 Mơ hình quản ly 1.2.1 .Quản ly khách... đến kho 1.2.3 Hoạt động kinh doanh của công ty Khách hàng có thê đặt hàng thơng qua nhiều hình thức gọi điện thoại, gửi email đến trực tiếp Công ty đê tham quan ký hợp đồng lắp đặt dịch... của Công ty + Thông tin ra: Danh sách thông tin nhân viên - Nhà cung cấp + Thông tin vào: Thông tin chi tiết nhà cung cấp + Thông tin ra: Danh sách thông tin nhà cung cấp sản phẩm cho công ty