private void cbMatHangXuat_SelectedValueChanged(object sender, EventArgs e) { ComboBox cb = sender as ComboBox; if (cb.SelectedValue != null) { MatHang mh = cb.SelectedValue as MatHang; cbMatHangXuat.Tag = mh; } }
private void cbGiaXuat_Click(object sender, EventArgs e) { conn.Open(); string tenHang = cbMatHangXuat.Text; List <int> ls = new List <int>(); if (tenHang != "")//kiểm tra xem đã nhập mặt hàng hay chưa { try { MatHang mh = cbMatHangXuat.Tag as MatHang;// lấy thông tin mặt hàng đã được nhập từ cbMatHangNhap.Tag //lấy giá xuất của mặt hàng hiện đang có trong kho //cùng một mặt hàng nhưng giá nhập tại các thời điểm( các lô hàng nhập kho) khác nhau sẽ có giá xuất khác nhau //việc chọn này sẽ giúp ta biết chính xác mình muốn xuất đi mặt hàng thuộc lô hàng nào string idMatHang = mh.id; string sql = @"select giaXuat from ChiTietPhieuNhap where idMatHang = N'" + idMatHang + @"' and trangThai > 0"; SqlCommand cmd = new SqlCommand(); cmd.CommandText = sql; cmd.Connection = conn; DbDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { int index = reader.GetOrdinal("giaXuat"); int gia = Convert.ToInt32(reader.GetValue(index)); ls.Add(gia); } } else { MessageBox.Show(@"Trong kho hiện đang hết " + mh.ten + @"!"); } } catch { } finally { conn.Close(); } cbGiaXuat.DataSource = ls; } else { MessageBox.Show(@"Hãy nhập tên hàng trước!"); conn.Close(); } }
private void cbMatHangXuat_Click(object sender, EventArgs e) { conn.Open(); List <MatHang> ls = new List <MatHang>(); try { SqlCommand cmd = new SqlCommand(); string sql = @"select MatHang.id,MatHang.ten,MatHang.idDonVi,DonVi.ten as tenDV from MatHang,DonVi where MatHang.idDonVi=DonVi.id"; cmd.CommandText = sql; cmd.Connection = conn; DbDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { MatHang mh = new MatHang(); int idIndex = reader.GetOrdinal("id"); mh.id = Convert.ToString(reader.GetValue(idIndex)); int tenIndex = reader.GetOrdinal("ten"); mh.ten = Convert.ToString(reader.GetValue(tenIndex)); int idDonViIndex = reader.GetOrdinal("idDonVi"); mh.idDonVi = Convert.ToInt32(reader.GetValue(idDonViIndex)); int tenDVIndex = reader.GetOrdinal("tenDV"); mh.tenDonVi = Convert.ToString(reader.GetValue(tenDVIndex)); ls.Add(mh); } } } catch { MessageBox.Show(@"Load danh sách mặt hàng thất bại!"); } finally { conn.Close(); } cbMatHangXuat.DataSource = ls; cbMatHangXuat.DisplayMember = "ten"; }
private void btnAddXuat_Click(object sender, EventArgs e) { //Lấy dữ liệu đầu vào MatHang mh = cbMatHangXuat.Tag as MatHang; int giaXuatHang = Convert.ToInt32(cbGiaXuat.Text); int soLuongXuat = Convert.ToInt32(nudSoLuongXuat.Value); if (cbMatHangXuat.Text != "" && cbGiaXuat.Text != "")//Kiểm tra thông tin đã nhập hay chưa { //Lấy danh sách tồn kho của mặt hàng với giá vừa được nhập vào TonKho tk = new TonKho(); conn.Open(); string sql = @"select idMatHang,giaXuat,sum(trangThai) as tonKho from ChiTietPhieuNhap where idMatHang =N'" + mh.id + @"' and giaXuat =N'" + giaXuatHang.ToString() + @"' group by idMatHang,giaXuat"; SqlCommand cmd = new SqlCommand(); cmd.CommandText = sql; cmd.Connection = conn; DbDataReader reader = cmd.ExecuteReader(); try { if (reader.HasRows) { while (reader.Read()) { int idIndex = reader.GetOrdinal("idMatHang"); tk.id = Convert.ToString(reader.GetValue(idIndex)); int giaIndex = reader.GetOrdinal("giaXuat"); tk.gia = Convert.ToInt32(reader.GetValue(giaIndex)); int tonKhoIndex = reader.GetOrdinal("tonKho"); tk.soLuongTon = Convert.ToInt32(reader.GetValue(tonKhoIndex)); } } } catch { MessageBox.Show(@"Lỗi khi kiểm tra tồn kho " + mh.ten); } finally { reader.Close(); reader.Dispose(); } //Thêm mat hang vao hoa don ChiTietPhieuXuat item = new ChiTietPhieuXuat(); item.maHang = mh.id; item.tenHang = mh.ten; item.donVi = mh.tenDonVi; item.giaXuat = giaXuatHang; item.soLuong = soLuongXuat; item.thanhTien = giaXuatHang * soLuongXuat; //Nếu hóa đơn chưa có mặt hàng nào if (lsChiTietPhieuXuat.Count == 0) { if (soLuongXuat <= tk.soLuongTon && soLuongXuat > 0) { lsChiTietPhieuXuat.Add(item); } else { MessageBox.Show(@"số lượng tồn kho không đủ hoặc bạn nhập vào số âm khi chưa có mặt hàng này trong phiếu! Hiện tại " + item.tenHang + @" với giá " + item.giaXuat.ToString() + @"chỉ còn " + tk.soLuongTon.ToString() + @" (" + item.donVi + @")"); } } else //trường hợp hóa đơn đã có nội dung { bool daCoMatHang = false; //kiểm tra mặt hàng đã có trong hóa đơn hay chưa foreach (ChiTietPhieuXuat tg in lsChiTietPhieuXuat) { if (item.maHang == tg.maHang)//nếu đã có { daCoMatHang = true; int sl = item.soLuong + tg.soLuong; if (sl <= 0)//nếu tổng số thêm vào nhỏ hơn hoặc bằng 0 thì xóa mặt hàng khỏi hóa đơn { lsChiTietPhieuXuat.Remove(tg); } else if (sl <= tk.soLuongTon)// nếu tổng số lượng thêm vào >0 và <= số lượng tồn kho { lsChiTietPhieuXuat.Add(item); } else { MessageBox.Show(@"tồn kho không đủ!"); } } } if (daCoMatHang == false) { if (soLuongXuat <= tk.soLuongTon && soLuongXuat > 0) { lsChiTietPhieuXuat.Add(item); } else { MessageBox.Show(@"Tồn kho không đủ hoặc số lượng mặt hàng thêm vào đang âm!"); } } } //Hiển thị nội dung hóa đơn cho người dùng int chay = 0; lsvPhieuXuat.Items.Clear(); foreach (ChiTietPhieuXuat i in lsChiTietPhieuXuat) { chay++; ListViewItem itemTG = new ListViewItem(chay.ToString()); itemTG.SubItems.Add(i.maHang); itemTG.SubItems.Add(i.tenHang); itemTG.SubItems.Add(i.soLuong.ToString()); itemTG.SubItems.Add(i.donVi); itemTG.SubItems.Add(i.giaXuat.ToString()); itemTG.SubItems.Add(i.thanhTien.ToString()); lsvPhieuXuat.Items.Add(itemTG); } conn.Close(); //sau khi thêm xong tiến hành làm trống lại các mục cbMatHangXuat.Text = ""; cbGiaXuat.Text = ""; nudSoLuongXuat.Value = 0; } else { MessageBox.Show(@"Hãy nhập tên mặt hàng và chọn giá hàng!"); } }
private void btnAddNhap_Click(object sender, EventArgs e) { try { MatHang mh = cbMatHangNhap.Tag as MatHang; int soLuong = Convert.ToInt32(nudSoLuongNhap.Value); int giaNhap = Convert.ToInt32(tbGiaNhap.Text); int giaXuat = Convert.ToInt32(tbGiaXuat.Text); //Thêm bản ghi mặt hàng vào dah sách ci tiết hóa đơn ChiTietHoaDon item = new ChiTietHoaDon(); item.maHang = mh.id; item.tenHang = mh.ten; item.donVi = mh.tenDonVi; item.giaNhap = giaNhap; item.giaXuat = giaXuat; item.soLuong = soLuong; item.thanhTien = giaNhap * soLuong; if (lsChiTietHoaDon.Count == 0) { lsChiTietHoaDon.Add(item); } else { foreach (ChiTietHoaDon tg in lsChiTietHoaDon) { if (item.tenHang == tg.tenHang) { int sluong = item.soLuong + tg.soLuong; if (sluong <= 0) { //xóa mặt hàng khỏi hóa đơn lsChiTietHoaDon.Remove(tg); } else { tg.soLuong = sluong; } } } } lsvPhieuNhap.Items.Clear(); int chay = 0; int sum = 0; foreach (ChiTietHoaDon tg in lsChiTietHoaDon) { chay++; ListViewItem itemTG = new ListViewItem(chay.ToString()); itemTG.SubItems.Add(tg.maHang); itemTG.SubItems.Add(tg.tenHang); itemTG.SubItems.Add(tg.giaNhap.ToString()); itemTG.SubItems.Add(tg.giaXuat.ToString()); itemTG.SubItems.Add(tg.soLuong.ToString()); itemTG.SubItems.Add(tg.donVi); itemTG.SubItems.Add(tg.thanhTien.ToString()); lsvPhieuNhap.Items.Add(itemTG); sum = sum + tg.thanhTien; } tbTongNhap.Text = sum.ToString(); } catch { MessageBox.Show(@"Không convert được dữ liệu nhập vào hoặc bạn còn đang để trống thông tin!"); } }