public string AddDONDATDA(DONDATDA_ViewModel model, ref string mess, ref int idhoadontt) { using (var db = new RestaurantManagerDataEntities()) { using (var trans = db.Database.BeginTransaction()) { try { var check = db.DONDATDAs.FirstOrDefault(x => x.iddondat == model.iddondat); if (check == null) { var DONDATDA = new DONDATDA { ngaydat = model.ngaydat, ban = model.ban, idkh = model.idkh, CreateBy = model.CreateBy, CreateDate = DateTime.Now, }; var result = db.DONDATDAs.Add(DONDATDA); db.SaveChanges(); foreach (D_DONDATDA_ViewModel item in model.D_DONDATDA) { var D_DONDATDA = new D_DONDATDA { iddondat = DONDATDA.iddondat, idmon = item.idmon, sldat = item.sldat, CreateBy = model.CreateBy, CreateDate = DateTime.Now, }; db.D_DONDATDA.Add(D_DONDATDA); } db.SaveChanges(); //trừ nguyên liệu món ăn đi foreach (D_DONDATDA_ViewModel item in model.D_DONDATDA) { var conthuc = db.CONGTHUCs.AsNoTracking().Where(x => x.idmon == item.idmon).ToList(); foreach (var iNlieu in conthuc) { var nlieu = db.NLIEUx.FirstOrDefault(x => x.idhang == iNlieu.idhang); if (nlieu != null) { var slton = nlieu.slton.Value; int.TryParse(iNlieu.hamluong, out int hamluong); if (slton < hamluong * item.sldat) { var monan = db.MONANs.AsNoTracking().FirstOrDefault(x => x.idmon == item.idmon); mess = "warning"; return(String.Format("Món {0} đã hết nguyên liệu {1}!", monan.temon, nlieu.tenhang)); } slton -= hamluong * item.sldat; nlieu.slton = slton; } } } db.SaveChanges(); //Lưu hóa đơn thanh toán var modelHOADONTT = new HOADONTT_ViewModel { iddondat = result.iddondat, ngayhd = model.ngaydat.Value, thoigian = DateTime.Now, idkh = model.idkh, thungan = model.CreateBy, CreateBy = model.CreateBy, ModifyBy = model.CreateBy }; List <D_HOADONTT_ViewModel> lstD_HOADONTT = new List <D_HOADONTT_ViewModel>(); foreach (D_DONDATDA_ViewModel item in model.D_DONDATDA) { var D_HOADONTT = new D_HOADONTT_ViewModel { idmon = item.idmon, slban = item.sldat, tenmon = item.tenmon, dongiaban = item.dongiamon, CreateBy = model.CreateBy, ModifyBy = model.CreateBy, }; lstD_HOADONTT.Add(D_HOADONTT); } var hoadontt = new HOADONTTBll().AddHOADONTT(modelHOADONTT); if (hoadontt != null) { trans.Commit(); mess = "success"; idhoadontt = hoadontt.idhoadontt; return("Thanh toán thành công!"); } mess = "error"; idhoadontt = 0; return("Thanh toán không thành công!"); } else { check.ngaydat = model.ngaydat; check.ban = model.ban; check.idkh = model.idkh; check.ModifyBy = model.ModifyBy; check.ModifyDate = DateTime.Now; db.SaveChanges(); mess = "success"; idhoadontt = 0; return("Cập nhật món ăn thành công!"); } } catch (Exception ex) { trans.Rollback(); mess = "error"; idhoadontt = 0; return(ex.Message); } } } }
private void btnAddHoaDon_Click(object sender, EventArgs e) { try { if (txtiddondat.Text == "" || txtiddondat.EditValue == null) { XtraMessageBox.Show("Bạn phải chọn đơn đặt đồ ăn!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int.TryParse(txtiddondat.EditValue.ToString(), out int iddondat); if (iddondat <= 0) { XtraMessageBox.Show("Bạn phải chọn đơn đặt đồ ăn!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (txtCustomerPay.Text == "" || txtCustomerPay.EditValue == null) { XtraMessageBox.Show("Bạn chưa nhập tiền khách đưa!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } double.TryParse(txtCustomerPay.EditValue.ToString(), out double CustomerPay); double.TryParse(txtTotalAmount.EditValue.ToString(), out double TotalAmount); int.TryParse(lueKhachHang.EditValue.ToString(), out int idkh); if (CustomerPay <= 0) { XtraMessageBox.Show("Tiền khách đưa phải lớn hơn 0!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (CustomerPay < TotalAmount) { XtraMessageBox.Show("Tiền khách đưa phải lớn hơn hoặc bằng tổng tiền!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var model = new HOADONTT_ViewModel { iddondat = iddondat, ngayhd = dtpngaydat.Value, thoigian = DateTime.Now, idkh = idkh, //D_HOADONTT= lstD_DONDATDA, thungan = Properties.Settings.Default.NameLog, CreateBy = Properties.Settings.Default.NameLog, ModifyBy = Properties.Settings.Default.NameLog }; List <D_HOADONTT_ViewModel> lstD_HOADONTT = new List <D_HOADONTT_ViewModel>(); foreach (D_DONDATDA_ViewModel item in lstD_DONDATDA) { var D_HOADONTT = new D_HOADONTT_ViewModel { idmon = item.idmon, slban = item.sldat, tenmon = item.tenmon, dongiaban = item.dongiamon, CreateBy = Properties.Settings.Default.NameLog, ModifyBy = Properties.Settings.Default.NameLog, }; lstD_HOADONTT.Add(D_HOADONTT); } if (lstD_HOADONTT.Count() <= 0) { XtraMessageBox.Show("Không có món ăn", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } model.D_HOADONTT = lstD_HOADONTT; var resultData = new HOADONTTBll().AddHOADONTT(model); if (resultData != null) { LoadGrid(); var HOADONTT = new HOADONTTBll().GetHOADONTT(resultData.idhoadontt); var D_HOADONTT = new HOADONTTBll().GetListD_HOADONTT(resultData.idhoadontt); XtraMessageBoxArgs args = new XtraMessageBoxArgs(); args.Caption = "Thông báo"; args.Text = "Thanh toá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) { using (frmPrint frm = new frmPrint()) { frm.PrintHOADONTT(HOADONTT, D_HOADONTT); frm.ShowDialog(); } ClearDisplay(); } ClearDisplay(); return; } XtraMessageBox.Show("Thanh toán không thành công", "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; } }