private void btnPhieuDatDichVu_Click(object sender, EventArgs e)
        {
            if (CheckStateToShow())
            {
                DTO_TiecCuoi tiec = new DTO_TiecCuoi();
                tiec.MaCa        = Convert.ToInt32(cboCa.SelectedValue.ToString());
                tiec.MaSanh      = Convert.ToInt32(cboSanh.SelectedValue.ToString());
                tiec.NgayDaiTiec = dtpNgayDaiTiec.Value.ToString("MM/dd/yyyy");
                DataTable re = BUS_NhanDatTiecCuoi.GetDate(tiec);
                if (re.Rows.Count > 0)
                {
                    MessageBox.Show("Chọn lại thời gian tổ chức tiệc: Ca, ngày đãi tiệc, vì thời gian đã bị trùng", "Thông báo");
                    return;
                }

                this.Size        = new Size(835, 570);
                this.MaximumSize = this.MinimumSize = new Size(835, 570);
                SetupStateControlTiecCuoi(true);
                pnlPhieuDichVu.Visible = true;
                lstDichVuInsert.Clear();
                lstChiTietDichVu.Clear();

                btnDatTiec.Enabled = false;
            }
            else
            {
                this.Size        = new Size(530, 570);
                this.MaximumSize = this.MinimumSize = new Size(530, 570);
                ShowNotification(true);
                MessageBox.Show("Thông tin khách hàng - điện thoại liên lạc phải được nhập đầy đủ trước", "Thông báo");
            }
        }
 private void LoadSanhAndCa()
 {
     try
     {
         DataTable result = BUS_NhanDatTiecCuoi.GetSanh();
         cboSanh.DataSource    = result;
         cboSanh.ValueMember   = result.Columns["MaSanh"].ToString();
         cboSanh.DisplayMember = result.Columns["TenSanh"].ToString();
         for (int i = 0; i < result.Rows.Count; i++)
         {
             lstGiaSanh.Add(Convert.ToDecimal(result.Rows[i][2].ToString()));
             lstSoLuongBanToiDaSanh.Add(Convert.ToInt32(result.Rows[i][3].ToString()));
         }
         result              = BUS_NhanDatTiecCuoi.GetCa();
         cboCa.DataSource    = result;
         cboCa.ValueMember   = result.Columns["MaCa"].ToString();
         cboCa.DisplayMember = result.Columns["TenCa"].ToString();
         //Set start selected index and value đơn giá bàn tối thiểu
         try
         {
             cboSanh.SelectedIndex = 0;
             cboSanh.SelectedItem  = 0;
         }
         catch (Exception ex)
         {
         }
         lblGiaSanh.Text       = lstGiaSanh[0].ToString();
         txtSoLuongBan.Text    = lstSoLuongBanToiDaSanh[0].ToString();
         SoLuongBanToiDa       = lstSoLuongBanToiDaSanh[0];
         grpThongTinBanAn.Text = "Đặt số bàn ăn - tối đa: " + SoLuongBanToiDa.ToString() + " bàn";
     }
     catch (Exception ex)
     {
     }
 }
        private void btnPhieuDatBan_Click(object sender, EventArgs e)
        {
            if (CheckStateToShow())
            {
                //Check infor tiệc cưới đã tồn tại hay chưa
                DTO_TiecCuoi tiec = new DTO_TiecCuoi();
                tiec.MaCa        = Convert.ToInt32(cboCa.SelectedValue.ToString());
                tiec.MaSanh      = Convert.ToInt32(cboSanh.SelectedValue.ToString());
                tiec.NgayDaiTiec = dtpNgayDaiTiec.Value.ToString("MM/dd/yyyy");
                DataTable re = BUS_NhanDatTiecCuoi.GetDate(tiec);
                if (re.Rows.Count > 0)
                {
                    MessageBox.Show("Chọn lại thời gian tổ chức tiệc: Ca, ngày đãi tiệc, vì thời gian đã bị trùng", "Thông báo");
                    return;
                }
                //Load new state cho phiếu đặt dịch vụ
                this.Size        = new Size(835, 570);
                this.MaximumSize = this.MinimumSize = new Size(835, 570);

                SetupStateControlTiecCuoi(true);
                pnlPhieuDichVu.Visible  = false;
                txtSoLuongBanDuTru.Text = "0";
                if (lstMonAnInsert != null)
                {
                    lstMonAnInsert.Clear();
                }
                if (lstChiTietDatBan != null)
                {
                    lstChiTietDatBan.Clear();
                }

                lblDonGiaDichVu.Text     = dtDichVu.Rows[cboDanhSachDichVu.SelectedIndex][2].ToString() + " VNĐ";
                txtSoLuongDichVuDat.Text = "1";
                txtDonGiaDatDichVu.Text  = lblDonGiaDichVu.Text.Substring(0, lblDonGiaDichVu.Text.Length - 4);
            }
            else
            {
                //trả về trạng thái ban đầu
                this.Size        = new Size(530, 570);
                this.MaximumSize = this.MinimumSize = new Size(530, 570);
                ShowNotification(true);
                MessageBox.Show("Thông tin khách hàng - điện thoại liên lạc phải được nhập đầy đủ trước", "Thông báo");
            }
        }
        private void btnDatTiec_Click(object sender, EventArgs e)
        {
            //Kiểm tra tiền đặt cọc
            if (txtTienDatCoc.Text == string.Empty)
            {
                txtTienDatCoc.Text = TienDatCocToiThieu.ToString();
            }
            if (!CheckRightTienDatCoc(txtTienDatCoc.Text))
            {
                MessageBox.Show("Tiền đặt cọc phải là bội số của 500 đồng", "Thông báo");
                return;
            }
            //Kiểm tra đã đặt hóa đơn chưa
            if (!CheckDatTiecState())
            {
                MessageBox.Show("Bạn bắt buộc phải đặt thực đơn ", "Thông báo");
                return;
            }

            //Confirm infor
            if (txtTenChuRe.Text == "" || txtTenCoDau.Text == "" || txtTienDatCoc.Text == "" || cboCa.SelectedIndex < 0 || cboSanh.SelectedIndex < 0 || txtTienDatCoc.Text == "")
            {
                ShowNotification(true);
                return;
            }
            if (DateTime.Compare(dtpNgayDaiTiec.Value, dtpNgayDatTiec.Value) < 0 || DateTime.Compare(dtpNgayDaiTiec.Value, dtpNgayDatTiec.Value) == 0)
            {
                MessageBox.Show("Ngày đãi tiệc phải sau ngày đặt tiệc ít nhất 1 ngày", "Thông báo");
                return;
            }
            //Add DTO
            dattieccuoi               = new DTO_TiecCuoi();
            dattieccuoi.TenChuRe      = txtTenChuRe.Text;
            dattieccuoi.TenCoDau      = txtTenCoDau.Text;
            dattieccuoi.NgayDaiTiec   = dtpNgayDaiTiec.Value.ToString("MM/dd/yyyy");
            dattieccuoi.NgayDatTiec   = dtpNgayDatTiec.Value.ToString("MM/dd/yyyy");
            dattieccuoi.TienCoc       = Convert.ToDecimal(txtTienDatCoc.Text);
            dattieccuoi.DienThoai     = txtDienThoai.Text;
            dattieccuoi.GhiChu        = txtGhiChuThongTinTiecCuoi.Text;
            dattieccuoi.MaCa          = Convert.ToInt32(cboCa.SelectedValue.ToString());
            dattieccuoi.MaSanh        = Convert.ToInt32(cboSanh.SelectedValue.ToString());
            dattieccuoi.MaNV          = 2; //Chưa thêm mã NV
            dattieccuoi.TinhTrangTiec = 1;

            //Kiểm tra thông tin phiếu;
            DTO_TiecCuoi tiec = new DTO_TiecCuoi();

            tiec.MaCa        = Convert.ToInt32(cboCa.SelectedValue.ToString());
            tiec.MaSanh      = Convert.ToInt32(cboSanh.SelectedValue.ToString());
            tiec.NgayDaiTiec = dtpNgayDaiTiec.Value.ToString("MM/dd/yyyy");
            DataTable re = BUS_NhanDatTiecCuoi.GetDate(tiec);

            if (re.Rows.Count > 0)
            {
                MessageBox.Show("Chọn lại thời gian tổ chức tiệc: Ca, ngày đãi tiệc, vì thời gian đã bị trùng", "Thông báo");
                return;
            }
            //tính chi phí 1 bàn tiệc
            decimal tongtien = 0;
            decimal sum = 0, sum1;

            sum1 = 0;
            foreach (var item in lstChiTietDatBan)
            {
                sum += item.DonGia;
            }
            sum1      = sum;
            sum       = sum * Convert.ToInt32(txtSoLuongBan.Text);
            tongtien += sum;
            sum       = 0;
            //tính chi phí của dịch vụ
            foreach (var item in lstChiTietDichVu)
            {
                sum += item.SoLuong * item.DonGia;
            }
            tongtien += sum;

            //Kiểm tra tiền cọc có >= 5%
            decimal minTiencoc = (decimal)(tongtien * 5) / 100;

            if (Convert.ToDecimal(txtTienDatCoc.Text) < minTiencoc)
            {
                MessageBox.Show("Tiền đặt cọc phải ít nhất bằng 5% tổng giá trị đặt tiệc - >=" + minTiencoc + " VNĐ");
                return;
            }
            //Thêm vào bảng tiệc cưới
            bool state      = BUS_NhanDatTiecCuoi.InsertTiecCuoi(dattieccuoi);
            int  matieccuoi = 0;

            if (state)
            {
                DataTable       r           = BUS_NhanDatTiecCuoi.GetLastID();
                DTO_PhieuDatBan phieudatban = new DTO_PhieuDatBan();
                phieudatban.MaTiecCuoi = Int32.Parse(r.Rows[0][0].ToString());
                matieccuoi             = phieudatban.MaTiecCuoi;
                if (txtSoLuongBan.Text == "")
                {
                    phieudatban.SoBan = SoLuongBanToiDa;
                }
                else
                {
                    phieudatban.SoBan = Int32.Parse(txtSoLuongBan.Text);
                }
                if (txtSoLuongBanDuTru.Text == "")
                {
                    phieudatban.SoBanDuTru = 0;
                }
                else
                {
                    phieudatban.SoBanDuTru = Int32.Parse(txtSoLuongBanDuTru.Text);
                }
                phieudatban.GhiChu = txtGhiChuThongTinTiecCuoi.Text;
                //tính đơn giá bàn

                phieudatban.DonGiaBan = sum1;
                bool statePhieu = BUS_NhanDatTiecCuoi.InsertPhieuDatBan(phieudatban);
                if (statePhieu)
                {
                    try
                    {
                        DataTable f             = BUS_NhanDatTiecCuoi.GetLastIDPhieu();
                        int       IDPhieuDatBan = Int32.Parse(f.Rows[0][0].ToString());
                        //Thêm phiếu đặt bàn
                        foreach (var item in lstChiTietDatBan)
                        {
                            item.MaPhieuDatBan = IDPhieuDatBan;
                            BUS_NhanDatTiecCuoi.InsertChiTietDatBan(item);
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
                else
                {
                    MessageBox.Show("Thêm phiếu đặt bàn ăn thất bại ", "Thông Báo");
                }

                //Thêm phiếu đặt dịch vụ
                try
                {
                    foreach (var item in lstChiTietDichVu)
                    {
                        item.MaTiecCuoi = matieccuoi;
                        BUS_NhanDatTiecCuoi.InsertChiTietDatDichVu(item);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Thêm phiếu đặt dịch vụ thất bại");
                }
                MessageBox.Show("Đặt tiệc cưới thành công ");

                try
                {
                    SetupDefaultControlState();
                    SetupFormSizeDefault(true);
                    LoadSanhAndCa();
                    IsCreateContract = IsCreateMenu = IsTakeWedding = false;
                    lstChiTietDatBan = new List <DTO_CT_PhieuDatBan>();
                    lstChiTietDichVu = new List <DTO_CT_PhieuDatDichVu>();
                    imgListDichVu    = new ImageList();
                    imgListMonAn     = new ImageList();
                    lstDichVuTiecCuoi.Items.Clear();
                    lstDanhSachMonThucDon.Items.Clear();

                    btnPhieuDatDichVu.Enabled = true;
                    btnPhieuDatBan.Enabled    = true;
                    IsCreateContract          = IsCreateMenu = IsCreateService = IsTakeWedding = false;
                    lstDichVuInsert.Clear();
                    lstMonAnInsert.Clear();
                    ShowNotification(false);

                    TienDatCocToiThieu = 0;
                    SetupStateControlTiecCuoi(false);
                    dtpNgayDatTiec.Enabled = false;
                    txtTienDatCoc.Text     = string.Empty;
                    txtTienDatCoc.ReadOnly = true;

                    //dịch vụ
                    txtDonGiaDatDichVu.Text  = lblDonGiaDichVu.Text.Substring(0, lblDonGiaDichVu.Text.Length - 4);
                    txtSoLuongDichVuDat.Text = "1";

                    //món ăn
                    txtSoLuongBan.Text      = SoLuongBanToiDa.ToString();
                    txtSoLuongBanDuTru.Text = "0";
                    txtDonGiaYeuCau.Text    = lblDonGiaMacDinh.Text.Substring(0, lblDonGiaMacDinh.Text.Length - 4);
                }
                catch (Exception ex)
                {
                }
            }
            else
            {
                MessageBox.Show("Đặt tiệc cưới thất bại");
            }
        }