HDBH
HDBH
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ThucTapChuyenNganh.Class;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Rebar;
using COMExcel = Microsoft.Office.Interop.Excel;
namespace ThucTapChuyenNganh.Forms
{
public partial class Hoadonbanhang : Form
{
public Hoadonbanhang()
{
InitializeComponent();
}
DataTable tblcthdb;
DataTable tblkh;
private void Hoadonbanhang_Load(object sender, EventArgs e)
{
btnThemhoadon.Enabled = true;
btnLuu.Enabled = false;
btnHuyhoadon.Enabled = false;
btnInhoadon.Enabled = false;
txtMahoadon.ReadOnly = true;
txtTennhanvien.ReadOnly = true;
txtMakhachhang.ReadOnly = true;
txtTenkhachhang.Enabled = false;
txtDiachi.Enabled = false;
txtDienthoai.Enabled = true ;
cboManhanvien.Enabled = false;
txtTenhang.ReadOnly = true;
txtDongia.ReadOnly = true;
txtThanhtien.ReadOnly = true;
txtTongtien.ReadOnly = true;
txtGiamgia.Text = "0";
txtTongtien.Text = "0";
//Class.Function.Fillcombo("SELECT MaKH, TenKH FROM tblkhachhang",
cboMakhachhang, "MaKH", "TenKH");
//cboManhanvien.SelectedIndex = -1;
Class.Function.Fillcombo("SELECT MaNV, TenNV FROM tblnhanvien",
cboManhanvien, "MaNV", "MaNV");
cboManhanvien.SelectedIndex = -1;
Class.Function.Fillcombo("select MaSP, TenSP from tblsanpham",
cboMasanpham, "MaSP", "TenSP");
cboMasanpham.SelectedIndex = -1;
Class.Function.Fillcombo("SELECT MaHDB FROM tblchitiethoadonban",
cboMahoadon, "MaHDB", "MaHDB");
cboMahoadon.SelectedIndex = -1;
// Hiển thị mã nhân viên mới lên TextBox hoặc sử dụng cho mục đích
khác
txtMakhachhang.Text = newCustomerID;
txtTenkhachhang.Enabled = true;
txtDiachi.Enabled = true;
//txtTenkhachhang.Text = "";
//txtDiachi.Text = "";
}
else
{
MessageBox.Show("Đã có khách hàng", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
Load_ThongtinKH();
}
}
private void Load_ThongtinKH()
{
string str;
str = "select MaKH from tblkhachhang where DienThoai = '" +
txtDienthoai.Text + "'";
txtMakhachhang.Text = Class.Function.GetFieldValues(str);
str = "select TenKH from tblkhachhang where DienThoai = '" +
txtDienthoai.Text + "'";
txtTenkhachhang.Text = Class.Function.GetFieldValues(str);
str = "select DiaChi from tblkhachhang where DienThoai = '" +
mskDienthoai.Text + "'";
txtDiachi.Text = Class.Function.GetFieldValues(str);
str = "insert into tblkhachhang(MaKH, TenKH, DiaChi, DienThoai) values
(N'" + txtMakhachhang.Text.Trim() + "', N '" + txtTenkhachhang.Text.Trim() + "',
N'" + txtDiachi.Text.Trim() + "', '" + txtDienthoai.Text.Trim() + "')";
Function.RunSql(str);
}
private void btnThemsanpham_Click(object sender, EventArgs e)
{
ResetValuesHang();
// Kiểm tra các trường dữ liệu có được nhập đầy đủ không
if (string.IsNullOrEmpty(txtMahoadon.Text))
{
MessageBox.Show("Vui lòng nhập mã hóa đơn.", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (cboMasanpham.SelectedIndex == -1)
{
MessageBox.Show("Vui lòng chọn sản phẩm.", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrEmpty(txtSoluong.Text) || !
int.TryParse(txtSoluong.Text, out int soluong) || soluong <= 0)
{
MessageBox.Show("Vui lòng nhập số lượng hợp lệ.", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
exRange.Range["A2:B2"].MergeCells = true;
exRange.Range["A2:B2"].HorizontalAlignment =
COMExcel.XlHAlign.xlHAlignCenter;
exRange.Range["A2:B2"].Value = "A10CT1 - Nam Trung Yên - Cầu Giấy - Hà
Nội";
exRange.Range["A3:B3"].MergeCells = true;
exRange.Range["A3:B3"].HorizontalAlignment =
COMExcel.XlHAlign.xlHAlignCenter;
exRange.Range["A3:B3"].Value = "Điện thoại: (09)49910666";
exRange.Range["C2:E2"].Font.Size = 16;
exRange.Range["C2:E2"].Font.Name = "Times new roman";
exRange.Range["C2:E2"].Font.Bold = true;
exRange.Range["C2:E2"].Font.ColorIndex = 3; //Màu đỏ
exRange.Range["C2:E2"].MergeCells = true;
exRange.Range["C2:E2"].HorizontalAlignment =
COMExcel.XlHAlign.xlHAlignCenter;
exRange.Range["C2:E2"].Value = "HÓA ĐƠN BÁN HÀNG";
// Biểu diễn thông tin chung của hóa đơn bán
sql = "SELECT a.MaHDB, a.Ngayban, a.Tongtien, b.TenKH, b.Diachi,
b.Dienthoai, c.TenNV FROM tblhoadonban AS a, tblkhachhang AS b, tblnhanvien AS c
WHERE a.MaHDB = N'" + txtMahoadon.Text + "' AND a.MaKH = b.MaKH AND a.MaNV =
c.MaNV";
tblThongtinHD = Function.GetDataToTable(sql);
exRange.Range["B6:C9"].Font.Size = 12;
exRange.Range["B6:C9"].Font.Name = "Times new roman";
exRange.Range["B6:B6"].Value = "Mã hóa đơn:";
exRange.Range["C6:E6"].MergeCells = true;
exRange.Range["C6:E6"].Value = tblThongtinHD.Rows[0][0].ToString();
exRange.Range["B7:B7"].Value = "Khách hàng:";
exRange.Range["C7:E7"].MergeCells = true;
exRange.Range["C7:E7"].Value = tblThongtinHD.Rows[0][3].ToString();
exRange.Range["B8:B8"].Value = "Địa chỉ:";
exRange.Range["C8:E8"].MergeCells = true;
exRange.Range["C8:E8"].Value = tblThongtinHD.Rows[0][4].ToString();
exRange.Range["B9:B9"].Value = "Điện thoại:";
exRange.Range["C9:E9"].MergeCells = true;
exRange.Range["C9:E9"].Value = tblThongtinHD.Rows[0][5].ToString();
//Lấy thông tin các mặt hàng
sql = "SELECT b.TenSP, a.Soluong, b.DonGiaBan, a.Giamgia,
(a.SoLuong*b.DonGiaBan*(1-a.GiamGia)) " + "FROM tblChitiethoadonban AS a ,
tblsanpham AS b WHERE a.MaHDB = N'" + txtMahoadon.Text + "' AND a.MaSP = b.MaSP";
tblThongtinHang = Function.GetDataToTable(sql);
//Tạo dòng tiêu đề bảng
exRange.Range["A11:F11"].Font.Bold = true;
exRange.Range["A11:F11"].HorizontalAlignment =
COMExcel.XlHAlign.xlHAlignCenter;
exRange.Range["C11:F11"].ColumnWidth = 12;
exRange.Range["A11:A11"].Value = "STT";
exRange.Range["B11:B11"].Value = "Tên hàng";
exRange.Range["C11:C11"].Value = "Số lượng";
exRange.Range["D11:D11"].Value = "Đơn giá";
exRange.Range["E11:E11"].Value = "Giảm giá";
exRange.Range["F11:F11"].Value = "Thành tiền";
for (hang = 0; hang <= tblThongtinHang.Rows.Count - 1; hang ++)
{
//Điền số thứ tự vào cột 1 từ dòng 12
exSheet.Cells[1][hang + 12] = hang + 1;
for (cot = 0; cot <= tblThongtinHang.Columns.Count - 1; cot++)
//Điền thông tin hàng từ cột thứ 2, dòng 12
exSheet.Cells[cot + 2][hang + 12] = tblThongtinHang.Rows[hang]
[cot].ToString();
}
exRange = exSheet.Cells[cot][hang + 14];
exRange.Font.Bold = true;
exRange.Value2 = "Tổng tiền:";
exRange = exSheet.Cells[cot + 1][hang + 14];
exRange.Font.Bold = true;
exRange.Value2 = tblThongtinHD.Rows[0][2].ToString();
exRange = exSheet.Cells[1][hang + 15]; //Ô A1
exRange.Range["A1:F1"].MergeCells = true;
exRange.Range["A1:F1"].Font.Bold = true;
exRange.Range["A1:F1"].Font.Italic = true;
exRange.Range["A1:F1"].HorizontalAlignment =
COMExcel.XlHAlign.xlHAlignRight;
exRange.Range["A1:F1"].Value = "Bằng chữ: " +
Function.ChuyenSoSangChu(tblThongtinHD.Rows[0][2].ToString());
exRange = exSheet.Cells[4][hang + 17]; //Ô A1
exRange.Range["A1:C1"].MergeCells = true;
exRange.Range["A1:C1"].Font.Italic = true;
exRange.Range["A1:C1"].HorizontalAlignment =
COMExcel.XlHAlign.xlHAlignCenter;
DateTime d = Convert.ToDateTime(tblThongtinHD.Rows[0][1]);
exRange.Range["A1:C1"].Value = "Hà Nội, ngày " + d.Day + " tháng " +
d.Month + " năm " + d.Year;
exRange.Range["A2:C2"].MergeCells = true;
exRange.Range["A2:C2"].Font.Italic = true;
exRange.Range["A2:C2"].HorizontalAlignment
=COMExcel.XlHAlign.xlHAlignCenter;
exRange.Range["A2:C2"].Value = "Nhân viên bán hàng";
exRange.Range["A6:C6"].MergeCells = true;
exRange.Range["A6:C6"].Font.Italic = true;
exRange.Range["A6:C6"].HorizontalAlignment =
COMExcel.XlHAlign.xlHAlignCenter;
exRange.Range["A6:C6"].Value = tblThongtinHD.Rows[0][6];
exSheet.Name = "Hóa đơn nhập";
exApp.Visible = true;
}
}
}