public HOADONM AddHOADONM(HOADONM model, List <D_HOADONM> details, string loginUser) { using (var db = new RestaurantManagerDataEntities()) { using (var trans = db.Database.BeginTransaction()) { try { var check = db.HOADONMs.FirstOrDefault(x => x.idhoadonm == model.idhoadonm); if (check == null) { var pnhap = db.PNHAPs.AsNoTracking().FirstOrDefault(x => x.idpnhap == model.idpnhap); var pgiao = db.GIAOHANGs.AsNoTracking().FirstOrDefault(x => x.idpgiao == pnhap.idpgiao); model.CreateBy = loginUser; model.CreateDate = DateTime.Now; var result = db.HOADONMs.Add(model); db.SaveChanges(); foreach (D_HOADONM item in details) { item.idhoadonm = result.idhoadonm; item.CreateBy = loginUser; item.CreateDate = DateTime.Now; db.D_HOADONM.Add(item); } db.SaveChanges(); //cập nhật lại số lượng và giá nguyên liệu foreach (D_HOADONM item in details) { var Nlieu = db.NLIEUx.FirstOrDefault(x => x.idhang == item.idhang); if (Nlieu != null) { Nlieu.slton += item.slmua; Nlieu.dongianl = item.dongiamua; Nlieu.ModifyBy = loginUser; Nlieu.ModifyDate = DateTime.Now; } } db.SaveChanges(); trans.Commit(); return(result); } return(null); } catch (Exception ex) { trans.Rollback(); return(null); } } } }
private void btnAddHoaDon_Click(object sender, EventArgs e) { try { if (txtidpnhap.Text == "" || txtidpnhap.EditValue == null) { XtraMessageBox.Show("Bạn phải chọn phiếu nhập!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int.TryParse(txtidpnhap.EditValue.ToString(), out int idpnhap); if (idpnhap <= 0) { XtraMessageBox.Show("Bạn phải chọn phiếu nhập!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } double.TryParse(txtTotalAmount.EditValue.ToString(), out double TotalAmount); var ngaymua = dtpngaydat.Value; var model = new HOADONM { idpnhap = idpnhap, ngaymua = ngaymua }; List <D_HOADONM> lstD_HOADONM = new List <D_HOADONM>(); foreach (D_PNHAP_ViewModel item in lstD_PNHAP) { var details = new D_HOADONM { idhang = item.idhang, slmua = item.slnhan.Value, dongiamua = item.dongiamh, }; lstD_HOADONM.Add(details); } if (lstD_HOADONM.Count() <= 0) { XtraMessageBox.Show("Không có dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var resultData = new HOADONMBll().AddHOADONM(model, lstD_HOADONM, Properties.Settings.Default.NameLog); if (resultData != null) { LoadGrid(); XtraMessageBoxArgs args = new XtraMessageBoxArgs(); args.Caption = "Thông báo"; args.Text = "Xuất hóa đơn thành công!\n Bạn có muốn in hóa đơn ?"; args.Buttons = new DialogResult[] { DialogResult.OK, DialogResult.Cancel }; args.Showing += Args_Showing; var result = XtraMessageBox.Show(args); if (result == DialogResult.OK) { var HOADONM = new HOADONMBll().GetHOADONM(resultData.idhoadonm); var D_HOADONM = new HOADONMBll().GetLisD_HOADONM(resultData.idhoadonm); using (frmPrint frm = new frmPrint()) { frm.PrintHOADONM(HOADONM, D_HOADONM); frm.ShowDialog(); } return; } //XtraMessageBox.Show(msg, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); ClearDisplay(); return; } // XtraMessageBox.Show(msg, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); ClearDisplay(); return; } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }