1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chủ đề 04 quản lý thông tin bảo hành thiết bị đã bán ra của một công ty kinh doanh máy tính môn lập trình hướng sự kiện

52 5 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 4,73 MB

Nội dung

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI TRUNG TÂM ĐÀO TẠO ELEARNING DANH SÁCH THÀNH VIÊN Đào Thái Duy - CSG514 Nguyễn Đình Duy - CSG514 Nguyễn Lê Hồng - CSG514 Phú Văn Kachu - CSG514 CHỦ ĐỀ 04: QUẢN LÝ THÔNG TIN BẢO HÀNH THIẾT BỊ ĐÃ BÁN RA CỦA MỘT CƠNG TY KINH DOANH MÁY TÍNH MƠN: LẬP TRÌNH HƯỚNG SỰ KIỆN - IT09 Giảng viên hướng dẫn: ThS Lê Hữu Dũng BÁO CÁO BÀI TẬP LỚN Hà Nội - Năm 2022 NHIỆM VỤ MÔN MỤC LỤC CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Giới thiệu toán: 1.2 Đánh giá đềề tài/s ản phẩm tương tự, liền quan 1.3 M ục tều c ủ a đềề tài 1.4 Phân công nhiệm vụ CHƯƠNG 2: XÁC ĐỊNH YÊU CẦU 2.1 Cơ sở liệu 2.2 Yều câều phâền mềềm: CHƯƠNG 3: PHÂN TÍCH & THIẾT KẾ 3.1 Phân tch H ệthôống vềề chức 3.2 Xây dựng mơ hình 3.3 Thiềốt kềố H ệthôống vềề Giao diện CHƯƠNG 4: KẾT LUẬN 49 5.1 Kềốt đạt 49 5.2 Chưa hoàn thành: 49 5.3 Hướng phát triển 49 TÀI LIỆU THAM KHẢO 50 CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Giới thiệu toán: - Phần mềm quản lý máy tính hỗ trợ người việc quản lý kinh doanh quản lý việc bảo hành thiết bị cửa hàng bán Giúp cửa hàng chủ động việc quản lý liên lạc với khách hàng, nhà phân phối… 1.2 Đánh giá đề tài/sản phẩm tương tự, liên quan - Phần mềm quản lý mang lại nhiều tiện ích cho người sử dụng như: + Tính tiện lợi: thao tác thực online nên đâu, cần có thiết bị kết nối internet người sử dụng dễ dàng kiểm tra tiến độ xử lý phiếu hẹn khách hàng chủ động liên lạc khách hoàn thành + Quản lý nhiều loại hàng dễ truy cập 1.3 Mục tiêu đề tài Chúng ta cần phải thiết kế cài đặt chương trình quản lý có chức sau: Quản lý hàng hóa: thêm, sửa, xóa thơng tin loại hàng mặt hàng, thời hạn bảo hành Hàng hóa bảo hành cơng ty bán Quản lý nhân viên: thêm, sửa, xóa thơng tin nhân viên (chỉ có người quản lý có quyền này) Quản lý khách hàng: thêm, sửa, xóa thơng tin khách hàng Một khách hàng bảo hành nhiều sản phẩm, có thu phí không 1.4 Phân công nhiệm vụ ST T Nội dung công việc Xây dựng CSDL, nhập liệu Thành viên Phụ trách Hỗ trợ Nguyễn Lê Hồng Đào Thái Duy Phú Văn Kachu Nguyễn Đình Duy 2 Tạo Form hóa đơn bảo hành, sản phẩm Tạo Form mặt hàng, nhà cung cấp Tạo Form nhân viên, loại sản phẩm Tạo Form nhóm hàng, phiếu nhận Tạo Form Main, Đăng nhập Tạo Form Chi tiết hóa đơn bảo hành Đào Thái Duy Nguyễn Lê Hồng Phú Văn Kachu Nguyễn Đình Duy Nguyễn Lê Hồng Phú Văn Kachu Nguyễn Đình Duy Đào Thái Duy Nguyễn Lê Hồng Nguyễn Đình Duy Phú Văn Kachu Đào Thái Duy Phú Văn Kachu Nguyễn Lê Hồng Nguyễn Đình Duy Đào Thái Duy Nguyễn Lê Hoàng Phú Văn Kachu Nguyễn Đình Duy Đào Thái Duy Nguyễn Lê Hồng Đào Thái Duy Phú Văn Kachu Nguyễn Đình Duy CHƯƠNG 2: XÁC ĐỊNH YÊU CẦU 2.1 Cơ sở liệu - Thiết kế SQL Server - Trong CSDL có bảng với trường, bảng phục vụ cho yêu cầu chương trình 2.2 Yêu cầu phần mềm: - Máy tình tối thiểu phải cài windows 8, ổ đĩa cứng khoản 40G để setup phần mềm ứng dụng visual studio 2015 Microsoft SQL server 2008 r2 CHƯƠNG 3: PHÂN TÍCH & THIẾT KẾ 3.1 Phân tích Hệ thống chức Phân tích cơng việc khơng thể thiếu trình xây dựng hệ quản trị máy tính Khơng thể đưa tin học hóa q trình quản lý mà khơng qua q trình phân tích Hiệu mang lại hệ thống độ sâu q trình ban đầu Mục đích xác định xem phận hệ thống nên xử lý máy tính phận người thực Tổng quan công tác quản lý ta thấy quản lý thư viện sử dụng máy tính, cơng việc thwm bớt sách, lưu trữ thông tin sách báo người làm, nên công việc tìm kiếm, cập nhật khó khăn chậm chạp số lượng sách báo nhiều Vì để tăng hiệu quả, giảm nhẹ công sức tiết kiệm thời gian tin học hóa vào hệ thống thư viện cần thiết việc tìm kiếm, sửa, hủy, thêm, bớt theo yêu cầu thực hồn tồn máy tính, giúp cho việc quản lý đạt hiệu cao có tính mềm dẻo tiện lợi muốn trước hết ta phải có phần phân tích thật tốt 3.2 Xây dựng mơ hình 3.2.1 Mơ hình quan hệ CSDL 2.2 Phân tích thiết kế Hệ thống Dữ liệu Dựa vào phân tích ta tạo table sau: - NhanVien: Usernam, Password, HoVaTen, DienThoai, DiaChi - NhomHang: ID, TenDVT, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat - MatHang: ID, IDNhomHang, TenMatHang, DonGiaBan, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat - ChiTietHoaDonBan: IDHoaDonBan, IDMatHang, DonGia, SL - HoaDonBanHang:IDHoaDon, IDSanPham, ThoiGianBHanh, ThoiGianKThuc, DonGia, NguoiBan, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat - SanPham: ID, TenSanPham, TrangThai, IDLoaiSanPham, SoLuong, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat - LoaiSanPham: ID, TenSanPham, DonGia, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat - ChiTietHoaDonBaoHanh : IDHoaDon, IDMatHang, SoLuong, DonGiaNhap - HoaDonBaoHanh: ID, NhanVienNhap, IDPhieuNhan, NgayNhap, DaNhap, TienThanhToan, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat - PhieuNhan: ID, TenKhachHang, DienThoai, DiaChi, TinhTrang, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat - ChiTietHoaDonNhap: IDHoaDon, IDMatHang, SL, DonGiaNhap - HoaDonNhap: ID, NhanVienNhap, IDNCC, NgayNhap, DaNhap, TienThanhToan, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat - NhaCungCap: ID, TenNCC, DienThoai, DiaChi, Email, NgayTao, NguoiTao, NgayCapNhat, NguoiCapNhat .2.3 Mô tả cấu trúc table * Table MatHang Stt Tên trường ID TenMatHang IDNhomHang DonGiaBan NgayTao NguoiTao NgayCapNhat NguoiCapNha Kiểu liệu int nvarchar(50) int int datetime varchar(50) datetime varchar(50) Ràng buộc PK Kiểu liệu int nvarchar(50) datetime varchar(50) datetime varchar(50) Ràng buộc PK Ghi FK t * Table NhomHang Stt Tên trường ID TenDVT NgayTao NguoiTao NgayCapNhat NguoiCapNha Ghi t * Table ChiTietHoaDonBan Stt Tên trường IDHoaDonBa Kiểu liệu bigint n IDMatHang int SL int DonGia int * Table HoaDonBanHang Stt Tên trường IDHoaDon IDSanPham ThoigianBHanh ThoiGianKThu Kiểu liệu int int datetime datetime c DonGia NguoiBan NgayTao NguoiTao NgayCapNhat 10 NguoiCapNhat * Table SanPham int varchar(50) datetime varchar(50) datetime varchar(50) Stt Kiểu liệu int nvarchar(50) tinyint int Tên trường ID TenSanPham TrangThai IDLoaiSanPha m SoLuong NgayTao NguoiTao NgayCapNhat NguoiCapNhat * Table LoaiSanPham Stt Tên trường ID TenLoaiSanPham DonGia NgayTao NguoiTao Ràng buộc PK Ghi PK Ràng buộc PK FK Ghi Ràng buộc PK Ghi FK int datetime varchar(50) datetime varchar(50) Kiểu liệu int nvarchar(50) varchar(50) datetime varchar(50) Ràng buộc PK Ghi NgayCapNhat datetime NguoiCapNhat varchar(50) * Table ChiTietHoaDonBaoHanh Stt Tên trường IDHoaDon IDMatHang SoLuong DonGiaNha Kiểu liệu bigint int int int Ràng buộc Ghi p * Table HoaDonBaoHanh Stt Tên trường ID NhanVienNhap IDPhieuNhan NgayNhap DaNhap TienThanhToan NgayTao NguoiTao NgayCapNhat 10 NguoiCapNhat * Table PhieuNhan Kiểu liệu int nvarchar(50) int datetime tinyint varchar(30) datetime varchar(50) datetime varchar(50) Ràng buộc PK Stt Tên trường ID TenKhachHang DienThoai DiaChi Kiểu liệu int nvarchar(50) varchar(50) nvarchar(150 Ràng buộc PK TinhTrang ) nvarchar(250 Ghi FK Ghi ) NgayTao datetime NguoiTao varchar(50) NgayCapNhat datetime NguoiCapNhat varchar(50) * Table ChiTietHoaDonNhap Stt Tên trường IDHoaDon IDMatHang SoLuong DonGiaNha Kiểu liệu int int int int Ràng buộc PK PK Ghi 35 if (r == null) { MessageBox.Show("Vui lịng chọn nhà cung cấp muốn xóa", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //var l = db.LoaiPhongs.SingleOrDefault(x => x.ID == int.Parse(r.Cells["id"].Value.ToString())); //48 khóa lại sau nhập 52 if (MessageBox.Show("Bạn thực muốn xóa nhà cung cấp " + r.Cells["tenncc"].Value.ToString() + " ?", "Xac nhận muốn xóa", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) //49 { try //50 { var ncc = db.NhaCungCaps.SingleOrDefault(x => x.ID == int.Parse(r.Cells["id"].Value.ToString())); //52 db.NhaCungCaps.DeleteOnSubmit(ncc); db.SubmitChanges(); MessageBox.Show("Xoa nhà cung cấp thành công", "Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); //46 } catch (Exception) { MessageBox.Show("Xóa nhà cung cấp thất bại", "Faile", MessageBoxButtons.OK, MessageBoxIcon.Error);//51 } ShowData(); txtDienThoai.Text = txtDiaChi.Text = txtEmail.Text = txtTenNCC.Text = null; r = null; } } } - Nhân viên: 36 * Code form NhanVien: public partial class frmNhanVien : Form { public frmNhanVien() { InitializeComponent(); } private CUAHANGMAYTINH_DatabaseDataContext db; private void frmNhanVien_Load(object sender, EventArgs e) { db = new CUAHANGMAYTINH_DatabaseDataContext(); ShowData(); dgvNhanVien.Columns["password"].Visible = false; dgvNhanVien.Columns["username"].HeaderText = "Tài khoản"; dgvNhanVien.Columns["hovaten"].HeaderText = "Họ tên"; dgvNhanVien.Columns["dienthoai"].HeaderText = "Điện thoại"; dgvNhanVien.Columns["diachi"].HeaderText = "Địa chỉ"; dgvNhanVien.Columns["username"].Width = 100; dgvNhanVien.Columns["hovaten"].Width = 200; dgvNhanVien.Columns["dienthoai"].Width = 100; dgvNhanVien.Columns["diachi"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } 37 private void ShowData() { dgvNhanVien.DataSource = from nv in db.NhanViens select new { nv.Username, nv.Password, nv.HoVaTen, nv.DienThoai, nv.DiaChi }; } private void btnThem_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtUsername.Text)) //7 { MessageBox.Show("Vui lòng nhập tài khoản nhân viên", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); //8 txtUsername.Select(); //9 return; } if (string.IsNullOrEmpty(txtPassword.Text)) //10 { MessageBox.Show("Vui lòng nhập mật khẩu", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); //11 txtPassword.Select(); //12 return; } // kiểm tra tồn TK CSDL var c = db.NhanViens.Where(x => x.Username.Trim().ToLower() == txtUsername.Text.Trim().ToLower()).Count(); if (c > 0) { MessageBox.Show("Tài khoản tồn tại", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); //11 txtUsername.Select(); //12 return; } var nv = new NhanVien(); nv.Username = txtUsername.Text.Trim().ToLower(); //17 nv.Password = txtPassword.Text; //18 38 nv.HoVaTen = txtHoVaTen.Text; nv.DienThoai = txtDienThoai.Text; nv.DiaChi = txtDiaChi.Text; db.NhanViens.InsertOnSubmit(nv); db.SubmitChanges(); //22 MessageBox.Show("Thêm nhân viên thành công", "Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); ShowData(); //23 txtDiaChi.Text = txtDienThoai.Text = txtHoVaTen.Text = txtPassword.Text = txtUsername.Text = null; //25 } private void btnSua_Click(object sender, EventArgs e) { if (r == null) { MessageBox.Show("Vui lòng chọn nhân viên muốn cập nhật", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var nv = db.NhanViens.SingleOrDefault(x => x.Username == r.Cells["username"].Value.ToString()); //40 nv.Password = txtPassword.Text; //41 nv.HoVaTen = txtHoVaTen.Text; //42 nv.DienThoai = txtDienThoai.Text; //42 nv.DiaChi = txtDiaChi.Text; //42 db.SubmitChanges(); //45 MessageBox.Show("Cập nhật nhân viên thành công", "Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); //46 ShowData(); txtDiaChi.Text = txtDienThoai.Text = txtHoVaTen.Text = txtPassword.Text = txtUsername.Text = null; r = null; } private void btnXoa_Click(object sender, EventArgs e) { if (r == null) { MessageBox.Show("Vui lịng chọn nhân viên muốn xóa", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } 39 //var l = db.LoaiPhongs.SingleOrDefault(x => x.ID == int.Parse(r.Cells["id"].Value.ToString())); //48 khóa lại sau nhập 52 if (MessageBox.Show("Bạn thực muốn xóa nhân viên" + r.Cells["username"].Value.ToString() + " ?", "Xac nhận muốn xóa", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) //49 { try //50 { var nv = db.NhanViens.SingleOrDefault(x => x.Username == r.Cells["username"].Value.ToString()); //52 db.NhanViens.DeleteOnSubmit(nv); db.SubmitChanges(); MessageBox.Show("Xoa nhân viên thành công", "Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); //46 ShowData(); txtDiaChi.Text = txtDienThoai.Text = txtHoVaTen.Text = txtPassword.Text = txtUsername.Text = null; r = null; } catch (Exception) { MessageBox.Show("Xóa nhân viên thất bại", "Faile", MessageBoxButtons.OK, MessageBoxIcon.Error);//51 } } } private DataGridViewRow r; //35 private void dgvNhanVien_CellClick_1(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { r = dgvNhanVien.Rows[e.RowIndex]; txtUsername.Text = r.Cells["username"].Value.ToString(); //38 txtPassword.Text = r.Cells["password"].Value.ToString(); //39 txtHoVaTen.Text = r.Cells["hovaten"].Value.ToString(); //39 txtDienThoai.Text = r.Cells["dienthoai"].Value.ToString(); //39 txtDiaChi.Text = r.Cells["diachi"].Value.ToString(); //39 } } } 40 + Danh mục bảo hành gồm: - Phiếu nhận: * Code form PhieuNhan: public partial class frmPhieuNhan : Form { public frmPhieuNhan() { InitializeComponent(); } private CUAHANGMAYTINH_DatabaseDataContext db; private string nhanvien = "admin"; private void frmPhieuNhan_Load(object sender, EventArgs e) { db = new CUAHANGMAYTINH_DatabaseDataContext(); ShowData(); dgvPhieuNhan.Columns["id"].Visible = false; // ẩn cột mã NCC dgvPhieuNhan.Columns["Tenkhachhang"].HeaderText = "Tên khách hàng"; dgvPhieuNhan.Columns["diachi"].HeaderText = "Địa chỉ"; dgvPhieuNhan.Columns["tinhtrang"].HeaderText = "Tình trạng"; dgvPhieuNhan.Columns["dienthoai"].HeaderText = "Điện thoại"; dgvPhieuNhan.Columns["diachi"].Width = 300; dgvPhieuNhan.Columns["dienthoai"].Width = 100; dgvPhieuNhan.Columns["tenkhachhang"].Width = 150; 41 dgvPhieuNhan.Columns["tinhtrang"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } private void ShowData() { var rs = from n in db.PhieuNhans select new { n.ID, n.TenKhachHang, n.DienThoai, n.TinhTrang, n.DiaChi }; dgvPhieuNhan.DataSource = rs; } private void btnThem_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtTenKH.Text)) { MessageBox.Show("Vui lòng chọn tên khách hàng", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtTenKH.Select(); return; } if (string.IsNullOrEmpty(txtDienThoai.Text)) { MessageBox.Show("Vui lòng nhập số điện thoại khách hàng", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); txtTenKH.Select(); return; } PhieuNhan ncc = new PhieuNhan(); ncc.TenKhachHang = txtTenKH.Text; ncc.DiaChi = txtDiaChi.Text; ncc.DienThoai = txtDienThoai.Text; ncc.TinhTrang = txtTinhTrang.Text; ncc.NgayTao = DateTime.Now; ncc.NguoiTao = nhanvien; db.PhieuNhans.InsertOnSubmit(ncc); db.SubmitChanges(); MessageBox.Show("Thêm khách hàng thành công", "Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); 42 ShowData(); txtDiaChi.Text = txtDienThoai.Text = txtTinhTrang.Text = txtTenKH.Text = null; } private DataGridViewRow r; private void dgvPhieuNhan_CellClick(object sender, DataGridViewCellEventArgs e) { if(e.RowIndex >= 0) { r = dgvPhieuNhan.Rows[e.RowIndex]; txtTenKH.Text = r.Cells["tenkhachhang"].Value.ToString(); //38 txtDienThoai.Text = r.Cells["dienthoai"].Value.ToString(); //39 txtDiaChi.Text = r.Cells["diachi"].Value.ToString(); //39 txtTinhTrang.Text = r.Cells["tinhtrang"].Value.ToString(); //39 } } private void btnSua_Click(object sender, EventArgs e) { if (r == null) { MessageBox.Show("Vui lòng chọn khách hàng muốn cập nhật", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var ncc = db.PhieuNhans.SingleOrDefault(x => x.ID == int.Parse(r.Cells["id"].Value.ToString())); //40 ncc.TenKhachHang = txtTenKH.Text; //41 ncc.DienThoai = txtDienThoai.Text; //42 ncc.TinhTrang = txtTinhTrang.Text; ncc.DiaChi = txtDiaChi.Text; ncc.NgayCapNhat = DateTime.Now; //43 ncc.NguoiCapNhat = nhanvien; //44 db.SubmitChanges(); //45 MessageBox.Show("Cập nhật khách hàng thành công", "Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); //46 ShowData(); txtTenKH.Text = txtTinhTrang.Text = txtDiaChi.Text = txtDienThoai.Text = null; r = null; } 43 private void btnXoa_Click(object sender, EventArgs e) { if (r == null) { MessageBox.Show("Vui lịng chọn khách hàng muốn xóa", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //var l = db.LoaiPhongs.SingleOrDefault(x => x.ID == int.Parse(r.Cells["id"].Value.ToString())); //48 khóa lại sau nhập 52 if (MessageBox.Show("Bạn thực muốn xóa khách hàng " + r.Cells["tenkhachhang"].Value.ToString() + " ?", "Xac nhận muốn xóa", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) //49 { try //50 { var ncc = db.PhieuNhans.SingleOrDefault(x => x.ID == int.Parse(r.Cells["id"].Value.ToString())); //52 db.PhieuNhans.DeleteOnSubmit(ncc); db.SubmitChanges(); MessageBox.Show("Xóa khách hàng thành cơng", "Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); //46 } catch (Exception) { MessageBox.Show("Xóa khách hàng thất bại", "Faile", MessageBoxButtons.OK, MessageBoxIcon.Error);//51 } ShowData(); txtDienThoai.Text = txtDiaChi.Text = txtTinhTrang.Text = txtTenKH.Text = null; r = null; } } } - Hóa đơn bảo hành: 44 * Code form HoaDonBaoHanh: public partial class frmHoaDonBaoHanh : Form { public frmHoaDonBaoHanh() { InitializeComponent(); } private CUAHANGMAYTINH_DatabaseDataContext db; private string nhanvien = "admin"; private void frmHoaDonBaoHanh_Load(object sender, EventArgs e) { db = new CUAHANGMAYTINH_DatabaseDataContext(); mtbNgayNhap.Text = DateTime.Now.ToString("dd/MM/yyyy"); cbbNhanVienNhap.DataSource = db.NhanViens; cbbNhanVienNhap.DisplayMember = "hovaten"; cbbNhanVienNhap.ValueMember = "username"; cbbNhanVienNhap.SelectedIndex = -1; cbbPhieuNhan.DataSource = db.PhieuNhans; cbbPhieuNhan.DisplayMember = "tenkhachhang"; cbbPhieuNhan.ValueMember = "id"; cbbPhieuNhan.SelectedIndex = -1; ShowData(); dgvHoaDonBaoHanh.Columns["danhap"].Visible = false; 45 dgvHoaDonBaoHanh.Columns["id"].HeaderText = "Mã phiếu nhập"; dgvHoaDonBaoHanh.Columns["Ngaynhap"].HeaderText = "Ngày nhập"; dgvHoaDonBaoHanh.Columns["tenkhachhang"].HeaderText = "Tên khách hàng"; dgvHoaDonBaoHanh.Columns["trangthai"].HeaderText = "Trạng thái"; dgvHoaDonBaoHanh.Columns["tongtien"].HeaderText = "Tổng tiền"; dgvHoaDonBaoHanh.Columns["dathanhtoan"].HeaderText = "Đã toán"; dgvHoaDonBaoHanh.Columns["id"].Width = 120; dgvHoaDonBaoHanh.Columns["ngaynhap"].Width = 100; dgvHoaDonBaoHanh.Columns["trangthai"].Width = 100; dgvHoaDonBaoHanh.Columns["tongtien"].Width = 100; dgvHoaDonBaoHanh.Columns["dathanhtoan"].Width = 100; dgvHoaDonBaoHanh.Columns["tenkhachhang"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dgvHoaDonBaoHanh.Columns["id"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvHoaDonBaoHanh.Columns["tongtien"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvHoaDonBaoHanh.Columns["dathanhtoan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; dgvHoaDonBaoHanh.Columns["trangthai"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvHoaDonBaoHanh.Columns["tongtien"].DefaultCellStyle.Format = "N0"; dgvHoaDonBaoHanh.Columns["dathanhtoan"].DefaultCellStyle.Format = "N0"; } private void btnThem_Click(object sender, EventArgs e) { DateTime ngaynhap; try { ngaynhap = DateTime.ParseExact(mtbNgayNhap.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture); } catch { MessageBox.Show("Ngày nhập không hợp lệ", "Loi liệu", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } 46 if (cbbNhanVienNhap.SelectedIndex < 0) { MessageBox.Show("Xin vui lòng chọn nhân viên nhập", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (cbbPhieuNhan.SelectedIndex < 0) { MessageBox.Show("Xin vui lòng chọn phiếu nhận", "Ràng buộc liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } try { var od = new HoaDonBaoHanh(); od.NhanVienNhap = cbbNhanVienNhap.SelectedValue.ToString(); od.IDPhieuNhan = int.Parse(cbbPhieuNhan.SelectedValue.ToString()); od.Ngaynhap = ngaynhap; od.NgayTao = DateTime.Now; od.NguoiTao = nhanvien; db.HoaDonBaoHanhs.InsertOnSubmit(od); db.SubmitChanges(); var idHDNhap = db.HoaDonBaoHanhs.Max(x => x.ID); //MessageBox.Show("Tạo hóa đơn nhập thành công"+idHDNhap, "Successfully", MessageBoxButtons.OK, MessageBoxIcon.Information); new frmChiTietHDBH(idHDNhap, 0).ShowDialog(); ShowData(); } catch (Exception ex) { MessageBox.Show("Lỗi:" + ex.Message, "Tạo phiếu nhận thất bại ", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ShowData() { var rs = from o in db.HoaDonBaoHanhs 47 join n in db.PhieuNhans on o.IDPhieuNhan equals n.ID join c in db.NhanViens on o.NhanVienNhap equals c.Username select new { id = o.ID, NgayNhap = o.Ngaynhap, tenkhachhang = n.TenKhachHang, danhap = o.DaNhap, trangthai = o.DaNhap == ? "Đã nhâp" : "Yêu cầu", tongtien = db.ChiTietHoaDonBaoHanhs.Where(x => x.IDHoaDon == o.ID).Sum(y => y.SoLuong * y.DonGiaNhap), dathanhtoan = o.TienThanhToan }; dgvHoaDonBaoHanh.DataSource = rs; } private DataGridViewRow r; private void dgvHoaDonBaoHanh_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if(e.RowIndex >= 0) { r = dgvHoaDonBaoHanh.Rows[e.RowIndex]; byte danhapkho = r.Cells["danhap"].Value == null ? (byte)0 : byte.Parse(r.Cells["danhap"].Value.ToString()); new frmChiTietHDBH(long.Parse(r.Cells["id"].Value.ToString()), danhapkho).ShowDialog(); ShowData(); } } } 48 CHƯƠNG 4: KẾT LUẬN Sau thời gian nhóm chúng em xây đựng ứng dụng quản lý, thời gian có hạn khả hạn chế với kinh nghiệm làm dự án chưa có nhiều nên nhóm em gặp nhiều khó khăn chắn có nhiều thiếu sót Em mong thầy bạn góp ý cho em hồn thành tốt đề tài 5.1 Kết đạt - Khảo sát nắm sơ lược quy trình quản lý ứng dụng - Xây dựng sở liệu giao diện cho chương trình hệ quản trị sở liệu Sql Server Visual Studio - Xây dựng chức quản lý 5.2 Chưa hoàn thành: - Các form HoaDonBaoHanh số form chưa xong, phần mềm phát sinh nhiều lỗi - Chưa có Stored Procedure lưu trữ CSDL 5.3 Hướng phát triển - Khả xử lý tất kiện, lỗi ý muốn tốt chương trình dùng thao tác lên chương trình - Hồn thiện tốt lập trình C#, ràng buộc liệu Nâng cao tính linh động chương trình - Nâng cao kỷ thuật lập trình hồn chỉnh thành phần cịn thiếu theo hướng chuyên nghiệp, chạy thử, khả đưa vào áp dụng thức tế khả quan Bảo mật liệu tốt 49 TÀI LIỆU THAM KHẢO - Giáo trình Trung tâm Đào tạo E-learning - Bài giảng Lập trình Hướng Sự Kiện, Nhóm tác giả, Khoa CNTT – Trường Đại học Mở Hà Nội - Các hướng dẫn trang Web Congdongcviet.com, CProject.com, Google… Youtube

Ngày đăng: 20/09/2023, 15:42

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w