// CHI TIẾT HÓA ĐƠN private void btnThemChiTietHD_Click(object sender, RoutedEventArgs e) { try { double tmp1 = (from p in db.DbDonGia where p.MaDonGia == cbMaDonGia.Text select p.DenKw).Single(); double tmp2 = (from m in db.DbDonGia where m.MaDonGia == cbMaDonGia.Text select m.TuKw).Single(); double tmp3 = (from m in db.DbDonGia where m.MaDonGia == cbMaDonGia.Text select m.SoTien).Single(); var ct = new ChiTietHoadon { MaDonGia = cbMaDonGia.Text, SoHoaDon = cbSoHoaDon.Text, SoLuongKw = (tmp1 - tmp2) }; db.DbChiTietHoaDon.Add(ct); db.SaveChanges(); var TinhTien = (from n in db.DbHoaDon where n.SoHoaDon == cbSoHoaDon.Text select n).Single(); TinhTien.ThanhTien = (tmp1 - tmp2) * tmp3; db.SaveChanges(); MessageBox.Show("Thêm thành công"); dgrThongTinChiTietHD.ItemsSource = db.DbChiTietHoaDon.ToList();; dgrHoaDon.ItemsSource = db.DbHoaDon.ToList(); txtSoLuongKw.Text = ""; } catch { MessageBox.Show("Không được bỏ trống thông tin"); } }
void ChoosePhones() { var cRow = dgvPhones.CurrentCell.RowIndex; var PhoneID = Int32.Parse(dgvPhones.Rows[cRow].Cells[0].FormattedValue.ToString()); using (var ctx = new PhoneStoreManageEntities()) { var lastDBillID = (from db in ctx.ChiTietHoadons orderby db.MaCTHD descending select db.MaCTHD).FirstOrDefault(); var newDeBill = new ChiTietHoadon { MaCTHD = lastDBillID + 1, MaHD = billID, MaDT = PhoneID }; ctx.ChiTietHoadons.Add(newDeBill); ctx.SaveChanges(); //var countPhone = (from db in ctx.ChiTietHoadons where db.MaHD == billID && db.MaDT == PhoneID select db).Count(); var detailBill = (from db in ctx.ChiTietHoadons where db.MaHD == billID select new { db.DienThoai.MaDT, //db.MaHD, db.DienThoai.MauDienThoai.TenDT, db.DienThoai.Mau, db.DienThoai.Gia }); //.Distinct(); dgvDetailBillPhones.DataSource = detailBill.ToList(); dgvDetailBillPhones.Columns[0].Visible = false; dgvDetailBillPhones.Refresh(); LoadPhones(); } }
private void ChoosePhones() { var cRow = dgvPhones.CurrentCell.RowIndex; var PhoneID = Int32.Parse(dgvPhones.Rows[cRow].Cells[0].FormattedValue.ToString()); using (var ctx = new PhoneStoreManageEntities()) { var check = (from p in ctx.DienThoais where p.MaDT == PhoneID select p.SoLuong).FirstOrDefault(); if (check > 0) { var lastDBillID = (from db in ctx.ChiTietHoadons orderby db.MaCTHD descending select db.MaCTHD).FirstOrDefault(); var newDeBill = new ChiTietHoadon { MaCTHD = lastDBillID + 1, MaHD = billID, MaDT = PhoneID }; ctx.ChiTietHoadons.Add(newDeBill); ctx.SaveChanges(); LoadPhones(); dgvPhones.CurrentCell = dgvPhones[1, cRow]; dgvPhones.Rows[cRow].Selected = true; var detailBill = (from b in ctx.ChiTietHoadons select new { b.MaHD, b.MaDT, b.DienThoai.MauDienThoai.TenDT, b.DienThoai.Mau, b.DienThoai.GiaBan }).Distinct(); var countList = from db in ctx.ChiTietHoadons join p in ctx.DienThoais on db.MaDT equals p.MaDT join b in ctx.HoaDons on db.MaHD equals b.MaHD group db by new { db.MaHD, db.MaDT, db.DienThoai.GiaBan } into dbs orderby dbs.Key.MaHD select new { dbs.Key, Count = dbs.Count(), Total = dbs.Count() * dbs.Key.GiaBan }; var query = from bill in detailBill join list in countList on new { bill.MaHD, bill.MaDT } equals new { list.Key.MaHD, list.Key.MaDT } into result from r in result.DefaultIfEmpty() where bill.MaHD == billID select new { bill.TenDT, bill.Mau, bill.GiaBan, r.Count, r.Total }; dgvDetailBillPhones.DataSource = query.ToList(); dgvDetailBillPhones.Columns[0].HeaderText = "Điện thoại"; dgvDetailBillPhones.Columns[1].HeaderText = "Màu"; dgvDetailBillPhones.Columns[2].HeaderText = "Giá"; dgvDetailBillPhones.Columns[3].HeaderText = "Số lượng"; dgvDetailBillPhones.Columns[4].HeaderText = "Thành tiền"; dgvDetailBillPhones.Refresh(); lblTotalMoney.Text = (from q in ctx.HoaDons where q.MaHD == billID select q.Tongtien).FirstOrDefault().ToString(); } } }