Example #1
0
        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);
                    }
                }
            }
        }
Example #2
0
        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;
            }
        }