예제 #1
0
        //------------Mở bàn------------------------
        private void btnMoBan_Click(object sender, EventArgs e)
        {
            if (indexTable == -1) // nếu chưa có bàn nào được chọn
            {
                MessageBox.Show("Chọn 1 Bàn Để Mở", "Thông Báo");
                return;
            }
            if (listBanAn.Items[indexTable].ImageIndex == 0)  // Nếu Bàn Đang Mở thì không thêm hóa đơn nữa
            {
                MessageBox.Show("Bàn Đang Mở", "Thông Báo");
                return;
            }
            // khi click thì thêm 1 hóa đơn vào bảng hóa đơn

            // nếu Thêm hóa đơn thành công thì Bàn sẽ màu xanh và trạng thái thành có người
            if (HoaDonOrder_BUS.ThemHoaDon(danhSachBanAn[indexTable].ID) == true && BanAn_BUS.SuaTrangThaiBanAn(danhSachBanAn[indexTable].ID) == true)
            {
                lbTrangThai.Text = "Có Người";
                listBanAn.Items[indexTable].ImageIndex = 0;

                lbBan.ForeColor       = Color.Green;
                lbTrangThai.ForeColor = Color.Green;

                MessageBox.Show("Đã Mở Bàn", "Thông Báo");
                panelOrderMon.Visible = true;
                return;
            }
            MessageBox.Show("Lỗi", "Thông Báo");
        }
예제 #2
0
        //Sửa Bàn Ăn
        private void btnSuaBanAn_Click_1(object sender, EventArgs e)
        {
            if (drBan == null)
            {
                MessageBox.Show("Chọn bàn muốn sửa");
                return;
            }
            BanAn_DTO banAnSua = new BanAn_DTO();

            banAnSua.ID     = int.Parse(drBan.Cells["ID"].Value.ToString());
            banAnSua.TenBan = txtTenBan.Text.ToString();

            /*
             * try
             * {
             *   banAnSua.ID = int.Parse(drBan.Cells["ID"].Value.ToString());
             *   banAnSua.TenBan = drBan.Cells["TenBan"].Value.ToString();
             * }
             * catch (Exception)
             * {
             *   return;
             * }*/

            if (BanAn_BUS.SuaBanAn(banAnSua))
            {
                drBan            = null;
                txtTenBan.Text   = "";
                lbTrangThai.Text = "";
                MessageBox.Show("Sửa thành công");
                LoadBanAn();
                return;
            }
            MessageBox.Show("Sửa thất bại");
        }
예제 #3
0
        private void LoadBanAn()
        {
            lstBanAn = BanAn_BUS.LoadBanAn();
            dtgrvDanhSachBan.DataSource = lstBanAn;

            if (lstBanAn == null)
            {
                return;
            }

            dtgrvDanhSachBan.Columns["ID"].HeaderText        = "ID";
            dtgrvDanhSachBan.Columns["TenBan"].HeaderText    = "Tên Bàn";
            dtgrvDanhSachBan.Columns["TrangThai"].HeaderText = "Trạng Thái";
            dtgrvDanhSachBan.Columns["Ngay"].HeaderText      = "Ngày";
            dtgrvDanhSachBan.Columns["IDBan"].Width          = 50;
            dtgrvDanhSachBan.Columns["TenBan"].Width         = 100;
            dtgrvDanhSachBan.Columns["TrangThai"].Width      = 100;
            dtgrvDanhSachBan.Columns["ID"].Visible           = false;
            if (lstBanAn != null)
            {
                lbSoBanHienCo.Text = (lstBanAn.Count).ToString();
            }
            else
            {
                lbSoBanHienCo.Text = "0";
            }
        }
예제 #4
0
        private void frmChuyenBan_Load(object sender, EventArgs e)
        {
            lsBanDangAn = BanAn_BUS.selectBanAnTheoTrangThai(1, int.Parse(frmMain.nhanVien.MaNH.Trim()), Mode);
            ComboBoxItemCollection coll = cbbox_BanCanChuyen.Properties.Items;

            coll.BeginUpdate();

            foreach (BanAn_DTO ban in lsBanDangAn)
            {
                String content = "Bàn " + ban.MaBan;
                coll.Add(content);
                coll.EndUpdate();
            }

            lsBanTrong = BanAn_BUS.selectBanAnTheoTrangThai(0, int.Parse(frmMain.nhanVien.MaNH.Trim()), Mode);
            ComboBoxItemCollection coll2 = cbbox_ChuyenSangBan.Properties.Items;

            coll2.BeginUpdate();

            foreach (BanAn_DTO ban in lsBanTrong)
            {
                String content = "Bàn " + ban.MaBan;
                coll2.Add(content);
                coll2.EndUpdate();
            }
            indexBanDangAn = indexBanTrong = -1;
        }
예제 #5
0
        //Sửa Bàn Ăn
        private void btnSuaBanAn_Click_1(object sender, EventArgs e)
        {
            if (TKDN.Substring(0, 2) == "NV")
            {
                MessageBox.Show("Chỉ có chức vụ quản lý mới được sử dụng chức năng này.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                if (drBan == null)
                {
                    MessageBox.Show("Chọn bàn muốn sửa");
                    return;
                }
                BanAn_DTO banAnSua = new BanAn_DTO();
                banAnSua.ID     = int.Parse(drBan.Cells["ID"].Value.ToString());
                banAnSua.TenBan = txtTenBan.Text.ToString();

                if (BanAn_BUS.SuaBanAn(banAnSua))
                {
                    drBan            = null;
                    txtTenBan.Text   = "";
                    lbTrangThai.Text = "";
                    MessageBox.Show("Sửa thành công");
                    LoadBanAn();
                    return;
                }
                MessageBox.Show("Sửa thất bại");
            }
        }
예제 #6
0
        // Xóa bàn ăn
        private void btnXoaBanAn_Click_1(object sender, EventArgs e)
        {
            if (TKDN.Substring(0, 2) == "NV")
            {
                MessageBox.Show("Chỉ có chức vụ quản lý mới được sử dụng chức năng này.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                if (drBan == null)
                {
                    MessageBox.Show("Chọn bàn muốn xóa");
                    return;
                }
                BanAn_DTO banAnXoa = new BanAn_DTO();
                banAnXoa.ID = int.Parse(drBan.Cells["ID"].Value.ToString());
                if (drBan.Cells["TrangThai"].Value.ToString() == "Có Người")
                {
                    MessageBox.Show("Không thể xóa bàn đang có người");
                    return;
                }

                /*if (MessageBox.Show("Xóa bàn sẽ xóa toàn bộ hóa đơn của bàn đó", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                 * {
                 *  try
                 *  {
                 *      HoaDon_BUS.XoaHoaDonCoIDBan(banAnXoa.ID); // xóa các hóa đơn có liên quan đến bàn đó
                 *  }
                 *  catch (Exception)
                 *  {
                 *      return;
                 *  }
                 */
                if (BanAn_BUS.XoaBanAn(banAnXoa))
                {
                    drBan            = null;
                    txtTenBan.Text   = "";
                    lbTrangThai.Text = "";
                    MessageBox.Show("Xóa thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadBanAn();

                    if (lstBanAn != null)
                    {
                        lbTrangThai.Text = (lstBanAn.Count).ToString();
                    }
                    else
                    {
                        lbTrangThai.Text = "0";
                    }

                    return;
                }

                else
                {
                    MessageBox.Show("Xóa thất bại !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
예제 #7
0
        void LoadBanAn()
        {
            lstBanAn = BanAn_BUS.LoadBanAn();
            cbChuyenBan.DataSource = lstBanAn;

            cbChuyenBan.SelectedIndex = 0;
            cbChuyenBan.DisplayMember = "TenBan";
            cbChuyenBan.ValueMember   = "ID";
        }
예제 #8
0
        // ------------- tìm kiếm bàn ăn ----------------------------
        private void txtTimKiem_TextChanged_1(object sender, EventArgs e)
        {
            List <BanAn_DTO> ketQua = BanAn_BUS.TimBanAn(txtTimKiem.Text);

            if (ketQua == null)
            {
                return;
            }
            dtgrvDanhSachBan.DataSource = ketQua;
        }
        private void btnThemBanAn_Click(object sender, EventArgs e)
        {
            Form_ThemBanAn openf = new Form_ThemBanAn();

            openf.Mode = mode;
            if (openf.ShowDialog() == DialogResult.OK)
            {
                BanAn_BUS.ThemBanAn(openf.BanAn, maNH);
                gridBanAn.DataSource = BanAn_BUS.DocBanAn(maNH);
            }
        }
예제 #10
0
        private void frmGhepBan_Load(object sender, EventArgs e)
        {
            indexBanDangAn = indexBan = -1;

            dtBanDangAn = HoaDon_BUS.SelectHoaDonTrong();
            load_Listview_BanDangDung();

            //thực tế thì có thể ghép các bàn đang ăn vào 1 bàn đang ăn
            //nhưng ở đây chỉ cho ghép vào 1 bàn trống => xuất hiện lost update
            lsBan = BanAn_BUS.selectBanAnTheoTrangThai(0, int.Parse(frmMain.nhanVien.MaNH.Trim()), Mode);
            load_CbboxBanTrong();
        }
예제 #11
0
        public void load_ListBoxBanAn()
        {
            lsBanAn = BanAn_BUS.selectBanAnTheoTrangThai(1, int.Parse(frmMain.nhanVien.MaNH.Trim()), Mode);

            listBoxBanAn.Items.Clear();
            int sl = lsBanAn.Count;

            for (int i = 0; i < sl; i++)
            {
                listBoxBanAn.Items.Add("Bàn " + lsBanAn[i].MaBan);
            }
            load_GridviewCTHD();
        }
예제 #12
0
        private void simpleButton3_Click(object sender, EventArgs e)
        {
            DateTime tgketthuc = DateTime.Now;
            float    tt;

            float.TryParse(TextEditTongTien.Text, out tt);
            if (maBan != -1)
            {
                HoaDon_BUS.UpdateKetThucHoaDon(maHD, tt, tgketthuc);
                BanAn_BUS.UpdateTrangThaiBanAn(maBan, 0);
                maBan = -1;
                maHD  = -1;
                UCtrlQLTBanAn_Load(null, null);
                load_GridviewCTHD();
            }
        }
예제 #13
0
        private void ButtonThanhToan_Click(object sender, EventArgs e)
        {
            if (indexTable == -1)
            {
                return;
            }
            if (listBanAn.Items[indexTable].ImageIndex == 1)
            {
                MessageBox.Show("Mở Bàn Để Thanh Tóan");
                return;
            }
            int tien = int.Parse(lbThanhTien.Text);

            CultureInfo cul           = new CultureInfo("vi-VN"); // định dạng tiền việt
            string      tienThanhToan = tien.ToString("c", cul);

            if (MessageBox.Show("Thanh Toán: " + tienThanhToan, "Thanh Toán", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
            {
                //  xóa hết món ăn trên bàn ăn đó
                HoaDonOrder_BUS.XoaThongTinHoaDon(HoaDonOrder_BUS.layIDHoaDon(danhSachBanAn[indexTable].ID));

                // update số tiền
                DateTime time          = DateTime.Now;
                string   ngayThanhToan = time.ToString("dd/MM/yyyy");
                try
                {
                    HoaDonOrder_BUS.UpdateHoaDon(1, ngayThanhToan, int.Parse(lbThanhTien.Text), danhSachBanAn[indexTable].ID);
                }
                catch (Exception)
                {
                    MessageBox.Show("Lỗi Rồi....");
                    return;
                }

                // sửa lại trạng thái bàn ăn thành trống
                BanAn_BUS.SuaTrangThaiBanAn2(danhSachBanAn[indexTable].ID);

                listBanAn.Items[indexTable].ImageIndex = 1;

                lbTrangThai.Text = "Trống";

                lbBan.ForeColor       = Color.Red;        // load lại màu chữ
                lbTrangThai.ForeColor = Color.Red;        // load lại màu chữ

                LoadHoaDon(danhSachBanAn[indexTable].ID); // sau khi xóa thì load lại hóa đơn
            }
        }
        private void UCtrlQLDanhSachBanAn_Load(object sender, EventArgs e)
        {
            gridLoaiBA.DataSource = LoaiBanAn_BUS.DocLoaiBanAn();
            gridKhuVuc.DataSource = KhuVuc_BUS.DocKhuVuc();
            gridBanAn.DataSource  = BanAn_BUS.DocBanAn(maNH);

            DataTable dt = LoaiBanAn_BUS.DocLoaiBanAn();

            if (dt.Rows.Count > 0)
            {
                ArrayMaBan = new string[dt.Rows.Count];
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow dr = dt.Rows[i];
                    ArrayMaBan[i] = dr[0].ToString();;
                }
            }
        }
예제 #15
0
        private void btnchuyenBan_Click(object sender, EventArgs e)
        {
            if (indexTable == -1)
            {
                MessageBox.Show("Chọn bàn muốn chuyển");
                return;
            }
            if (listBanAn.Items[indexTable].ImageIndex == 1)
            {
                MessageBox.Show("Mở bàn để chuyển bàn");
                return;
            }
            FormChuyenBan formChuyenBan = new FormChuyenBan();  // khởi tạo form chuyển bàn để lấy dữ liệu từ form

            formChuyenBan.ShowDialog();

            int idToTable = formChuyenBan.idToTable; // lấy id của bàn muốn chuyển đến

            if (formChuyenBan.chuyenBan == false)    // chuyển bàn = false thì không được chuyển
            {
                return;
            }

            // chuyển từ bàn có id là idfromTable đến bàn có id là idTotable
            if (HoaDonOrder_BUS.ChuyenBan(danhSachBanAn[indexTable].ID, idToTable))
            {
                BanAn_BUS.SuaTrangThaiBanAn2(danhSachBanAn[indexTable].ID); // cập nhật lại trạng thái cho bàn vừa bị chuyển thành trống
                BanAn_BUS.SuaTrangThaiBanAn(idToTable);                     // cập nhật lại trạng thái cho bàn được chuyển đến thành có người
                listBanAn.Clear();                                          // load lại bàn ăn
                LoadBanAn();

                LoadHoaDon(danhSachBanAn[indexTable].ID); // load lại hóa đơn

                // cập nhật lại màu chữ cho label
                lbTrangThai.Text      = "Trống";
                lbBan.ForeColor       = Color.Red;
                lbTrangThai.ForeColor = Color.Red;

                MessageBox.Show("Chuyển thành công");
                return;
            }
            MessageBox.Show("Chuyển thất bại !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
예제 #16
0
        private void LoadBanAn()
        {
            ;
            for (int i = 0; i < tableList.Count; i++)
            {
                Guna.UI.WinForms.GunaAdvenceTileButton gunaBtn = new Guna.UI.WinForms.GunaAdvenceTileButton()
                {
                    Width = BanAn_DAO.tableWidth, Height = BanAn_DAO.tableHeight
                };
                gunaBtn.Image              = Properties.Resources.icons8_tableware_48px;
                gunaBtn.Text               = tableList[i].TenBan;
                gunaBtn.BorderSize         = 3;
                gunaBtn.ForeColor          = Color.Black;
                gunaBtn.BorderColor        = Color.LightGray;
                gunaBtn.OnHoverBaseColor   = Color.Linen;
                gunaBtn.OnHoverBorderColor = Color.BlueViolet;
                gunaBtn.OnHoverForeColor   = Color.Black;
                gunaBtn.Font               = new Font("Arial", 11, FontStyle.Bold);

                gunaBtn.Click += btn_Click;
                if (tableList[i].TrangThai == "Trống")
                {
                    gunaBtn.DoubleClick += btn_DoubleClick;
                }

                tableID     = BanAn_BUS.layIDBanAn(tableList[i].TenBan);
                gunaBtn.Tag = tableList[i];

                switch (tableList[i].TrangThai)
                {
                case "Trống":
                    gunaBtn.BaseColor = Color.Linen;
                    break;

                default:
                    gunaBtn.BaseColor   = Color.Aqua;
                    gunaBtn.BorderSize  = 2;
                    gunaBtn.BorderColor = Color.BlueViolet;
                    break;
                }
                flpSoDoBan.Controls.Add(gunaBtn);
            }
        }
        public void XoaBanAn()
        {
            int flag = 0;

            int[] index = gridView_BanAn.GetSelectedRows();
            if (index.Length > 0)
            {
                if (DevExpress.XtraEditors.XtraMessageBox.Show("Bạn có muốn xóa dòng thứ " + (index[0] + 1).ToString(), "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    string maBanAn = gridView_BanAn.GetRowCellValue(index[0], "MaBan").ToString();
                    flag = BanAn_BUS.XoaBanAn(maBanAn);
                }
                if (flag != 0)
                {
                    DevExpress.XtraEditors.XtraMessageBox.Show("Xóa thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                //else
                //    DevExpress.XtraEditors.XtraMessageBox.Show("Không thể xóa Khu Vực khi còn Bàn Ăn thuộc Khu Vực", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #18
0
        // Thêm bàn ăn

        private void btnThemBanAn_Click(object sender, EventArgs e)
        {
            if (txtTenBan.Text == "")
            {
                MessageBox.Show("Nhập tên bàn");
                return;
            }
            BanAn_DTO banAn = new BanAn_DTO();

            banAn.TenBan    = txtTenBan.Text.ToString();
            banAn.TrangThai = "Trống";
            if (lstBanAn != null)
            {
                for (int i = 0; i < lstBanAn.Count; i++)
                {
                    if (ChuanHoaChuoi(banAn.TenBan.ToLower()) == ChuanHoaChuoi(lstBanAn[i].TenBan.ToLower()))
                    {
                        MessageBox.Show("Tên đã có rồi");
                        return;
                    }
                }
            }
            if (BanAn_BUS.ThemBanAn(banAn))
            {
                MessageBox.Show("Thêm thành công");
                LoadBanAn();
                if (lstBanAn != null)
                {
                    lbSoBanHienCo.Text = (lstBanAn.Count).ToString();
                }
                else
                {
                    lbSoBanHienCo.Text = "0";
                }
                txtTenBan.Text = "";
                return;
            }
            MessageBox.Show("Thêm thất bại");
        }
예제 #19
0
 private void LoadBanAn()
 {
     danhSachBanAn = BanAn_BUS.LoadBanAn();
     if (danhSachBanAn == null)
     {
         return;
     }
     for (int i = 0; i < danhSachBanAn.Count; i++)
     {
         banAn = new ListViewItem();
         if (danhSachBanAn[i].TrangThai == "Có Người")
         {
             banAn.ImageIndex = 0;
         }
         else
         {
             banAn.ImageIndex = 1;
         }
         banAn.Text = danhSachBanAn[i].TenBan;
         listBanAn.Items.Add(banAn);
     }
 }
        public void CapNhaBanAn()
        {
            //int flag = 0;
            //int[] index = gridView_BanAn.GetSelectedRows();
            //if (index.Length > 0)
            //{

            //    string maBanAn = gridView_BanAn.GetRowCellValue(index[0], "MaBan").ToString();
            //    string maKV = gridView_BanAn.GetRowCellValue(index[0], "MaKhuVuc").ToString();
            //    string TrangThai = gridView_BanAn.GetRowCellValue(index[0], "TrangThai").ToString();
            //    if (maBanAn != null)
            //    {
            //        DTO.BanAn_DTO BanAn = new DTO.BanAn_DTO();
            //       BanAn.MaBan = int.Parse(maBanAn);
            //      // BanAn.MaKhuVuc = int.Parse(maKV);
            //      // BanAn.TrangThai = int.Parse(TrangThai);
            //        flag = BanAn_BUS.CapNhatBanAn(BanAn);
            //    }
            //}
            //if (flag != 0)
            BanAn_BUS.DocBanAn(maNH);
            DevExpress.XtraEditors.XtraMessageBox.Show("Cập nhật thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
예제 #21
0
        private void btnDongY_Click(object sender, EventArgs e)
        {
            int count = listViewDSBanGhep.Items.Count;

            if (count <= 1)
            {
                MessageBox.Show("Ban phai chon it nhat 2 ban de ghep.");
                return;
            }

            if (indexBan != -1)
            {
                int mabanNew = lsBan[indexBan].MaBan;

                int maHDchon      = int.Parse(listViewDSBanGhep.Items[0].SubItems[2].Text);
                int maBanchon_old = int.Parse(listViewDSBanGhep.Items[0].SubItems[0].Text);
                BanAn_BUS.UpdateTrangThaiBanAn(maBanchon_old, 0);

                //doc lai cthd cua maHDchon de len danh sach kiem tra trung khoa chinh
                DataTable dtCthdChon = ChiTietHoaDon_BUS.SelectTableCTHD(maHDchon);

                for (int i = 1; i < count; i++)
                {
                    int maHDold  = int.Parse(listViewDSBanGhep.Items[i].SubItems[2].Text);
                    int maBanold = int.Parse(listViewDSBanGhep.Items[i].SubItems[0].Text);

                    //giai phong cac ban cu
                    BanAn_BUS.UpdateTrangThaiBanAn(maBanold, 0);

                    //voi moi maHDold, cong don chi tiet hoa don, kiem tra khoa chinh
                    DataTable dtCthdOld = ChiTietHoaDon_BUS.SelectTableCTHD(maHDold);
                    foreach (DataRow row in dtCthdOld.Rows)
                    {
                        int  n         = dtCthdChon.Rows.Count;
                        bool duplicate = false;
                        //chen cac dong cua cthoadon cu vao ct hoa don chung
                        //cong don so luong va thanh tien neu co mon an trung nhau
                        for (int j = 0; j < n; j++)
                        {
                            if ((int)dtCthdChon.Rows[j].ItemArray[1] == (int)row.ItemArray[1])
                            {
                                duplicate = true;
                                int     tongsl = (int)dtCthdChon.Rows[j].ItemArray[2] + (int)row.ItemArray[2];
                                DataRow newRow = dtCthdChon.NewRow();
                                newRow[0] = maHDchon;
                                newRow[1] = (int)dtCthdChon.Rows[j].ItemArray[1];
                                newRow[2] = tongsl;
                                newRow[3] = 0;      //tong tien se duoc tu dong tinh lai khi insert CTHD
                                dtCthdChon.Rows.Add(newRow);
                                dtCthdChon.Rows.RemoveAt(j);
                                break;
                            }
                        }

                        if (!duplicate)
                        {
                            //chen dong
                            DataRow newRow = dtCthdChon.NewRow();
                            newRow[0] = maHDchon;
                            newRow[1] = (int)row.ItemArray[1];
                            newRow[2] = (int)row.ItemArray[2];
                            newRow[3] = (double)row.ItemArray[3];
                            dtCthdChon.Rows.Add(newRow);
                        }
                    }
                    //xoa cthd cu
                    ChiTietHoaDon_BUS.DeleteCTHDtheoMaHD(maHDold);
                    //xoa hoa don cu
                    HoaDon_BUS.DeleteHoaDon(maHDold);
                }       //ket thuc vong lap cho cac ban ghep (tru ban dau)
                //xoa cthd moi (vi dtCthdChon da chua tat ca)       ;   nhu vay toan bo CTHD da dc xoa
                ChiTietHoaDon_BUS.DeleteCTHDtheoMaHD(maHDchon);

                //cap nhat hoa don chung
                HoaDon_BUS.UpdateMaBan(maHDchon, mabanNew);

                BanAn_BUS.UpdateTrangThaiBanAn(mabanNew, 1);
                //insert cac cthd moi
                foreach (DataRow row in dtCthdChon.Rows)
                {
                    ChiTietHoaDon_BUS.insertCTHD((int)row.ItemArray[0], (int)row.ItemArray[1], (int)row.ItemArray[2], Mode);
                }

                reloadListboxBanAn();
                this.Close();
            }
            else
            {
                MessageBox.Show("Vui long chon ban muon ghep den.");
            }
        }
 private void btnXoaBanAn_Click(object sender, EventArgs e)
 {
     XoaBanAn();
     gridBanAn.DataSource = BanAn_BUS.DocBanAn(maNH);
 }
예제 #23
0
        private void ButtonThanhToan_Click(object sender, EventArgs e)
        {
            if (indexTable == -1)
            {
                return;
            }
            if (listBanAn.Items[indexTable].ImageIndex == 1)
            {
                MessageBox.Show("Mở Bàn Để Thanh Tóan");
                return;
            }
            int tien = int.Parse(lbThanhTien.Text);

            CultureInfo cul           = new CultureInfo("vi-VN"); // định dạng tiền việt
            string      tienThanhToan = tien.ToString("c", cul);
            int         ID            = HoaDonOrder_BUS.layIDHoaDon(danhSachBanAn[indexTable].ID);

            if (MessageBox.Show("Thanh Toán: " + tienThanhToan, "Thanh Toán", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
            {
                //  xóa hết món ăn trên bàn ăn đó
                HoaDonOrder_BUS.XoaThongTinHoaDon(ID);

                // update số tiền
                DateTime time          = DateTime.Now;
                string   ngayThanhToan = time.ToString("dd/MM/yyyy");
                try
                {
                    HoaDonOrder_BUS.UpdateHoaDon(1, ngayThanhToan, int.Parse(lbThanhTien.Text), danhSachBanAn[indexTable].ID);
                }
                catch (Exception)
                {
                    MessageBox.Show("Lỗi Rồi....");
                    return;
                }
                Document             doc         = new Document(iTextSharp.text.PageSize.LETTER, 5, 5, 2, 2);
                string               timesTTF    = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "times.TTF");
                BaseFont             arial       = BaseFont.CreateFont(timesTTF, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
                iTextSharp.text.Font f_24_Bold   = new iTextSharp.text.Font(arial, 24, iTextSharp.text.Font.BOLD);
                iTextSharp.text.Font f_20_normal = new iTextSharp.text.Font(arial, 20, iTextSharp.text.Font.NORMAL);
                iTextSharp.text.Font f_20_Bold   = new iTextSharp.text.Font(arial, 20, iTextSharp.text.Font.BOLD);
                FileStream           os          = new FileStream(lbBan.Text.ToString() + ".pdf", FileMode.Create);

                using (os)
                {
                    //Khi báo lỗi tick vào ô itextsharp, lỗi này đã được itextsharp exception xử lý rồi nên sẽ không sao
                    //Sau khi skip exception của lỗi này thì chương trình vẫn chạy bình thường
                    //Lỗi này không xuất hiện khi chạy ứng dụng cài bằng file setup
                    PdfWriter wri = PdfWriter.GetInstance(doc, os);
                    doc.Open();
                    PdfPTable             table = new PdfPTable(1);
                    iTextSharp.text.Image JPEG  = iTextSharp.text.Image.GetInstance(stringIMAGE);
                    JPEG.BorderColor      = iTextSharp.text.BaseColor.WHITE;
                    JPEG.Alignment        = Element.ALIGN_CENTER;
                    table.WidthPercentage = 20;
                    table.AddCell(JPEG);

                    doc.Add(table);
                    PdfPTable table1 = new PdfPTable(1);
                    float[]   width  = new float[] { 20f, 40f };

                    PdfPCell cell1 = new PdfPCell(new Phrase("\nRESTAURANT", f_24_Bold));

                    PdfPCell cell3  = new PdfPCell(new Phrase("\nĐT: 0854402341 - 0333304558", f_20_normal));
                    PdfPCell cell4  = new PdfPCell(new Phrase("-----------------------------------------", f_20_normal));
                    PdfPCell cell5  = new PdfPCell(new Phrase("Hóa Đơn Thanh Toán", f_24_Bold));
                    PdfPCell cell6  = new PdfPCell(new Phrase($"Số HD: {ID}", f_20_normal));
                    PdfPCell cell7  = new PdfPCell(new Phrase("Ngày in:   " + lbNgay.Text.ToString() + "                 Giờ in: " + DateTime.Now.ToString("HH:mm:ss tt"), f_20_normal));
                    PdfPCell cell8  = new PdfPCell(new Phrase("Bàn:       " + lbBan.Text.ToString(), f_20_Bold));
                    PdfPCell cell9  = new PdfPCell(new Phrase($"Thu ngân:   {nv.TenNhanVien}", f_20_normal));
                    PdfPCell cell10 = new PdfPCell(new Phrase("Số khách: ", f_20_normal));

                    cell1.Border = iTextSharp.text.Rectangle.NO_BORDER;

                    cell3.Border  = iTextSharp.text.Rectangle.NO_BORDER;
                    cell4.Border  = iTextSharp.text.Rectangle.NO_BORDER;
                    cell5.Border  = iTextSharp.text.Rectangle.NO_BORDER;
                    cell6.Border  = iTextSharp.text.Rectangle.NO_BORDER;
                    cell7.Border  = iTextSharp.text.Rectangle.NO_BORDER;
                    cell8.Border  = iTextSharp.text.Rectangle.NO_BORDER;
                    cell9.Border  = iTextSharp.text.Rectangle.NO_BORDER;
                    cell10.Border = iTextSharp.text.Rectangle.NO_BORDER;

                    cell1.HorizontalAlignment = Element.ALIGN_JUSTIFIED_ALL;

                    cell3.HorizontalAlignment  = Element.ALIGN_CENTER;
                    cell4.HorizontalAlignment  = Element.ALIGN_CENTER;
                    cell5.HorizontalAlignment  = Element.ALIGN_CENTER;
                    cell6.HorizontalAlignment  = Element.ALIGN_JUSTIFIED;
                    cell7.HorizontalAlignment  = Element.ALIGN_JUSTIFIED;
                    cell8.HorizontalAlignment  = Element.ALIGN_JUSTIFIED;
                    cell9.HorizontalAlignment  = Element.ALIGN_JUSTIFIED;
                    cell10.HorizontalAlignment = Element.ALIGN_JUSTIFIED;

                    cell1.VerticalAlignment = Element.ALIGN_TOP;

                    cell3.VerticalAlignment = Element.ALIGN_CENTER;


                    table1.WidthPercentage     = 80;
                    table1.HorizontalAlignment = Element.ALIGN_CENTER;

                    table1.AddCell(cell1);
                    table1.AddCell(cell3);
                    table1.AddCell(cell4);
                    table1.AddCell(cell5);
                    table1.AddCell(cell6);
                    table1.AddCell(cell7);
                    table1.AddCell(cell8);
                    table1.AddCell(cell9);
                    table1.AddCell(cell10);
                    table1.SpacingAfter  = 5;
                    table1.SpacingBefore = 5;

                    doc.Add(table1);

                    PdfPTable pdfTable = new PdfPTable(dgvHoaDonOrder.Columns.Count);
                    pdfTable.DefaultCell.Padding = 3;
                    pdfTable.WidthPercentage     = 80;
                    pdfTable.HorizontalAlignment = Element.ALIGN_CENTER;
                    pdfTable.SpacingAfter        = 5;
                    pdfTable.SpacingBefore       = 5;
                    foreach (DataGridViewColumn column in dgvHoaDonOrder.Columns)
                    {
                        PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText, f_20_Bold));

                        cell.Border = iTextSharp.text.Font.BOLD + iTextSharp.text.Rectangle.BOTTOM_BORDER;
                        cell.HorizontalAlignment = Element.ALIGN_CENTER;

                        pdfTable.AddCell(cell);
                    }

                    foreach (DataGridViewRow row in dgvHoaDonOrder.Rows)
                    {
                        foreach (DataGridViewCell cell in row.Cells)
                        {
                            PdfPCell c = new PdfPCell(new Phrase(cell.Value.ToString(), f_20_normal));
                            c.Border = iTextSharp.text.Rectangle.NO_BORDER;
                            c.HorizontalAlignment = Element.ALIGN_CENTER;
                            pdfTable.AddCell(c);
                        }
                    }
                    doc.Add(pdfTable);

                    //Thành tiền
                    PdfPTable table2 = new PdfPTable(1);
                    PdfPCell  c1     = new PdfPCell(new Phrase("\nTổng Tiền:                                                       " + lbTongTienThanhToan.Text.ToString() + " VND", f_20_Bold));
                    PdfPCell  c2     = new PdfPCell(new Phrase("\nKhuyến Mãi:                                                             " + txtKhuyenMaiPhanTram.Text.ToString() + "%" + "\n\n\n", f_20_Bold));
                    PdfPCell  c3     = new PdfPCell(new Phrase("\nThành Tiền:                                                      " + lbThanhTien.Text.ToString() + " VND", f_20_Bold));
                    PdfPCell  c4     = new PdfPCell(new Phrase("\n\n\nHân hạnh được phục vụ quý khách !", f_20_normal));

                    c1.Border = iTextSharp.text.Font.BOLD;
                    c2.Border = iTextSharp.text.Rectangle.BOTTOM_BORDER;
                    c3.Border = iTextSharp.text.Rectangle.NO_BORDER;
                    c4.Border = iTextSharp.text.Rectangle.NO_BORDER;

                    c1.HorizontalAlignment = Element.ALIGN_JUSTIFIED;
                    c2.HorizontalAlignment = Element.ALIGN_JUSTIFIED;
                    c3.HorizontalAlignment = Element.ALIGN_JUSTIFIED;
                    c3.VerticalAlignment   = Element.ALIGN_CENTER;
                    c4.HorizontalAlignment = Element.ALIGN_CENTER;

                    table2.HorizontalAlignment = Element.ALIGN_CENTER;
                    table2.WidthPercentage     = 80;
                    table2.AddCell(c1);
                    table2.AddCell(c2);
                    table2.AddCell(c3);
                    table2.AddCell(c4);
                    table2.SpacingAfter  = 10;
                    table2.SpacingBefore = 10;
                    doc.Add(table2);



                    doc.Close();
                    System.Diagnostics.Process.Start(lbBan.Text.ToString() + ".pdf");
                }

                // sửa lại trạng thái bàn ăn thành trống
                BanAn_BUS.SuaTrangThaiBanAn2(danhSachBanAn[indexTable].ID);

                listBanAn.Items[indexTable].ImageIndex = 1;

                lbTrangThai.Text = "Trống";

                lbBan.ForeColor       = Color.Red;        // load lại màu chữ
                lbTrangThai.ForeColor = Color.Red;        // load lại màu chữ

                LoadHoaDon(danhSachBanAn[indexTable].ID); // sau khi xóa thì load lại hóa đơn
                panelOrderMon.SendToBack();
            }
        }