/// <summary> /// Bán hàng và cập nhật số lượng hàng hóa tồn kho /// </summary> /// <param name="MAKHO"></param> /// <param name="MAHH"></param> /// <param name="SOLUONG"></param> /// <param name="DONGIABAN"></param> /// <param name="NGAYBAN"></param> public static void Creat(long MAKHO, long MAHH, long SOLUONG, long DONGIABAN, DateTime NGAYBAN) { /* Tạo mới record bán hàng */ BAN_HANG bh = new BAN_HANG(); bh.MAKHO = MAKHO; bh.MAHH = MAHH; bh.SO_LUONG = SOLUONG; bh.DON_GIA_BAN = DONGIABAN; bh.NGAY_BAN = NGAYBAN.Date; bh.CREATED_TIME = DateTime.Now; bh.CHI_TIET_BAN_HANG = ""; DataInstance.Instance().DBContext().AddToBAN_HANG(bh); DataInstance.Instance().DBContext().SaveChanges(); /* Cập nhật số lượng tồn kho */ List <CXuatHangChiTiet> chitiet = new List <CXuatHangChiTiet>(); long _soluong = bh.SO_LUONG; foreach (NHAP_HANG nh in (from _nh in DataInstance.Instance().DBContext().NHAP_HANG where _nh.SL_CON_LAI > 0 where _nh.MAHH == bh.MAHH orderby _nh.NGAY_NHAP ascending select _nh)) { var sub_SL = nh.SL_CON_LAI; nh.SL_CON_LAI = _soluong >= nh.SL_CON_LAI ? 0 : nh.SL_CON_LAI - _soluong; /* Cập nhật chi tiết số lượng, đơn giá để tính lãi lỗi*/ long __subSL = nh.SL_CON_LAI > 0 ? _soluong : sub_SL; if (__subSL > 0) { chitiet.Add(new CXuatHangChiTiet() { NHAPHANGID = nh.ID, SOLUONG = nh.SL_CON_LAI > 0 ? _soluong : sub_SL, DONGIA = nh.DON_GIA_MUA }); } _soluong = _soluong >= sub_SL ? _soluong - sub_SL : 0; DataInstance.Instance().DBContext().SaveChanges(); if (_soluong == 0) { break; } } bh.CHI_TIET_BAN_HANG = JsonConvert.SerializeObject(chitiet); DataInstance.Instance().DBContext().SaveChanges(); }
private void buttonADD_Click(object sender, EventArgs e) { try { BAN_HANG bh = new BAN_HANG(); bh.MAHH = long.Parse(comboBoxHANGHOA.SelectedValue.ToString()); bh.MAKHO = long.Parse(comboBoxKHO.SelectedValue.ToString()); bh.NGAY_BAN = DateTime.Now.Date; bh.SO_LUONG = long.Parse(textBoxSOLUONG.Text); bh.DON_GIA_BAN = long.Parse(textBoxDONGIABAN.Text); bh.CREATED_TIME = DateTime.Now; if (bh.SO_LUONG == 0 || bh.DON_GIA_BAN == 0) { MessageBox.Show("Số lượng và đơn giá không được bằng 0", "Lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } long lton = (from ton in DataInstance.Instance().DBContext().NHAP_HANG where ton.MAKHO == bh.MAKHO where ton.MAHH == bh.MAHH select ton.SL_CON_LAI).Sum(); if (bh.SO_LUONG > lton) { MessageBox.Show("Số lượng bán hàng lớn hơn số lượng tồn. \nCòn tồn: " + lton.ToString(), "Lỗi số lượng!", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MBanHang.Creat(bh.MAKHO, bh.MAHH, bh.SO_LUONG, bh.DON_GIA_BAN, bh.NGAY_BAN); textBoxSOLUONG.Text = "0"; textBoxSOLUONG.Select(); textBoxSOLUONG.SelectAll(); comboBoxKHO_SelectedIndexChanged(sender, e); } catch (Exception ex) { MessageBox.Show("Số lượng hoặc đơn giá nhập vào không đúng. Chỉ chấp nhận số"); } }