private void txtTimKiem_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Enter) { ListView lsv = LayMenuMon(); if (lsv == null) { return; } lsv.Items.Clear(); lsv.LargeImageList.Images.Clear(); // Tìm kiếm món if (radMenuMon.Checked) { List <MonDTO> dsMon = MonBUS.LayDanhSachMon(loaiDangChon, txtTimKiem.Text); LayDanhSachMon(lsv, dsMon); } // Tìm kiếm topping else { List <ToppingDTO> dsTopping = ToppingBUS.LayDanhSachTopping(loaiDangChon, txtTimKiem.Text); LayDanhSachTopping(lsv, dsTopping); } } }
private void btnKhoiPhuc_Click(object sender, EventArgs e) { if (chkMAConSuDung.Checked) { try { MonDTO mon = new MonDTO(); mon.MaMon = txtMaMon.Text; mon.MaLoaiMon = cboLoaiMon.SelectedValue.ToString(); mon.TenMon = txtTenMon.Text; mon.DonGia = Convert.ToInt32(txtDonGia.Text); mon.TrangThai = true; if (MonBUS.KhoiPhuc(mon)) { //MessageBox.Show("Khôi phục món ăn thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.None); LamMoi(); LoadDSMon(); } } catch { MessageBox.Show("Khôi phục món ăn thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); mon = null; } } }
private void btnXoa_Click(object sender, EventArgs e) { if (txtTenMon.Text == "" || txtDonGia.Text == "" || cboLoaiMon.SelectedValue.ToString() == "" || chkTrangThai.Checked == false || picHinh.Image == null) { MessageBox.Show("Bạn chưa nhập đầy đủ hoặc bỏ trống thông tin món ăn", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { if (DialogResult.Yes == MessageBox.Show("Bạn có chắc chắn muốn xóa món ăn này không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { string maMon = txtMaMon.Text; if (MonBUS.XoaMon(maMon)) { //MessageBox.Show("Xóa món ăn thành công","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.None); LamMoi(); LoadDSMon(); XoaForm(true); } else { MessageBox.Show("Xóa món ăn thất bại", "Thong báo", MessageBoxButtons.OK, MessageBoxIcon.None); } } } }
private void LayDanhSachLoaiMon() { List <LoaiMonDTO> dsLoaiMon = LoaiMonBUS.LayDanhSachLoaiMon(); foreach (LoaiMonDTO loaiMon in dsLoaiMon) { MaterialFlatButton btn = new MaterialFlatButton(); btn.Text = loaiMon.TenLoaiMon + " (" + MonBUS.LaySoLuongMonTheoLoai(loaiMon.MaLoaiMon) + ")"; btn.Name = loaiMon.MaLoaiMon.ToString(); btn.AutoSize = false; btn.Size = new Size(140, 60); btn.Dock = DockStyle.Left; btn.Tag = loaiMon; btn.Click += new EventHandler(ChonLoai); panelLoai.Controls.Add(btn); btn.BringToFront(); } MaterialFlatButton btnTatCa = new MaterialFlatButton(); btnTatCa.Text = "Tất cả" + " (" + MonBUS.LaySoLuongMonTheoLoai(0) + ")";; btnTatCa.Name = "0"; btnTatCa.AutoSize = false; btnTatCa.Size = new Size(140, 60); btnTatCa.Dock = DockStyle.Left; btnTatCa.Tag = new LoaiMonDTO(); btnTatCa.Click += new EventHandler(ChonLoai); panelLoai.Controls.Add(btnTatCa); }
private void frmThemLop_Load(object sender, EventArgs e) { try { dtDanhSachMon = MonBUS.GetTable(); dtgvDSMon.DataSource = dtDanhSachMon; DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn(); checkboxColumn.Width = 30; checkboxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dtgvDSMon.Columns.Insert(0, checkboxColumn); // add checkbox header Rectangle rect = dtgvDSMon.GetCellDisplayRectangle(0, -1, true); // set checkbox header to center of header cell. +1 pixel to position correctly. rect.X = rect.Location.X + (rect.Width / 4); CheckBox checkboxHeader = new CheckBox(); checkboxHeader.Name = "checkboxHeader"; checkboxHeader.Size = new Size(18, 18); checkboxHeader.Location = rect.Location; checkboxHeader.CheckedChanged += new EventHandler(checkboxHeader_CheckedChanged); dtgvDSMon.Controls.Add(checkboxHeader); cmbNamHoc.DataSource = NamHocBUS.GetList(); cmbNamHoc.DisplayMember = "TenNamHoc"; cmbNamHoc.ValueMember = "MaNamHoc"; } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
private void LoadDSMon(string timKiem = "", bool trangThai = true) { if (chkMAConSuDung.Checked == false) { List <MonDTO> lstMon = MonBUS.LayDanhSachMon(timKiem, trangThai); dgvDSMon.DataSource = lstMon; } else { dgvDSMon.DataSource = MonBUS.LayDSMonAnBiXoa(); dgvDSMon.CurrentCell = null; XoaForm(false); btnCapNhat.Hide(); btnThem.Hide(); btnXoa.Hide(); btnLamMoi.Hide(); btnKhoiPhuc.Show(); if (dgvDSMon.Rows.Count > 0) { btnKhoiPhuc.Enabled = true; } else { btnKhoiPhuc.Enabled = false; } chkTrangThai.Checked = false; picHinh.Image = null; } }
public void HienMonTheoLoai(int maMon) { List <MonDTO> lsMon = MonBUS.LayDanhSachMon(maMon); rpvBaoCao.LocalReport.ReportEmbeddedResource = path + "rptMonTheoLoai.rdlc"; rpvBaoCao.LocalReport.DataSources.Add(new ReportDataSource("DSMON", lsMon)); rpvBaoCao.RefreshReport(); }
private void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e) { //Lấy mã loại truyền từ report cha int maLoai = int.Parse(e.Parameters["paMaLoai"].Values[0]); //Lấy dữ liệu cho report con List <MonDTO> lsMon = MonBUS.LayDanhSachMon(maLoai); //Đỗ dữ liệu cho report con e.DataSources.Add(new ReportDataSource("DSMON", lsMon)); }
private void LoadDSCTHD() { DataGridViewComboBoxColumn cboMon = (DataGridViewComboBoxColumn)dgvCTHDBanHang.Columns["colMaMon"]; cboMon.DataSource = MonBUS.LayDanhSachMon(""); cboMon.DisplayMember = "TenMon"; cboMon.ValueMember = "MaMon"; dgvCTHDBanHang.DataSource = CTHDBanHangBUS.LayDSCTHDBanHang(_hdBH.MaHD); }
private void SetCTHDBanHang() { if (cthd == null) { cthd = new CTHDBanHangDTO(); } cthd.MaHD = hdBH.MaHD; cthd.SoLuong = Convert.ToInt32(txtSoLuong.Text); cthd.DonGia = MonBUS.LayDonGiaMonAn(cthd.MaMon); cthd.GhiChu = (rtbGhiChu.Text == "") ? "" : rtbGhiChu.Text; }
//Load DSCTHDBanHang theo mã HD private void LoadChiTietHD(int maHD) { //Load món ăn vào column mã món ăn DataGridViewComboBoxColumn cboMaMon = (DataGridViewComboBoxColumn)dgvDSCTHDThanhToan.Columns["colMaMon"]; cboMaMon.DataSource = MonBUS.LayDanhSachMon(""); cboMaMon.DisplayMember = "TenMon"; cboMaMon.ValueMember = "MaMon"; dgvDSCTHDThanhToan.AutoGenerateColumns = false; dgvDSCTHDThanhToan.DataSource = CTHDBanHangBUS.LayChiTietHD(maHD); dgvDSCTHDThanhToan.CurrentCell = null; }
private void LamMoiMon(bool state = true) { txtMaMon.Text = MonBUS.LayMaMonMoiNhat() + 1 + ""; txtTenMon.Text = txtGiaTienMon.Text = string.Empty; cmbLoaiMon.SelectedIndex = 0; picHinhMon.Image = Properties.Resources.default_product; btnThemMon.Enabled = state; btnXoaMon.Enabled = !state; btnSuaMon.Enabled = !state; btnKhoiPhucMon.Enabled = !state; openFileDialog1.FileName = ""; }
private void layDanhSachMon() { try { listMonHoc.DataSource = MonBUS.GetTable(txtThongTinTimKiem.Text); listMonHoc.DisplayMember = "TenMon"; listMonHoc.ValueMember = "MaMon"; } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
private void DuaThongTinVaoCTHD() { if (cthd != null) { lblTenMon.Text = MonBUS.LayTenMonAn(cthd.MaMon); lblDonGia.Text = cthd.DonGia.ToString(); txtSoLuong.Text = cthd.SoLuong.ToString(); rtbGhiChu.Text = cthd.GhiChu; } else { lblTenMon.Text = lblDonGia.Text = txtSoLuong.Text = rtbGhiChu.Text = string.Empty; } }
private void btnKhoiPhucMon_Click(object sender, EventArgs e) { if (MonBUS.KhoiPhucMon(Convert.ToInt32(txtMaMon.Text))) { MessageBox.Show("Khôi phục thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); QLM_LoadDanhSachMonDaXoa(GetTimKiemMon(), Convert.ToInt32(cmbTimKiemTheoLoaiMon.SelectedValue)); LamMoiMon(); dgvMon.ClearSelection(); } else { MessageBox.Show("Khôi phục thất bại!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void LoadDSCTHDBanHang() { //Load Tên món ăn vào cột mã món ăn trong dgvCTHDThanhToan DataGridViewComboBoxColumn cboMon = (DataGridViewComboBoxColumn)dgvCTHDThanhToan.Columns["colMaMon"]; cboMon.DataSource = MonBUS.LayDanhSachMon(""); cboMon.DisplayMember = "TenMon"; cboMon.ValueMember = "MaMon"; //Load vào dữ liệu CTHD vào dgvCTHDThanhToan dgvCTHDThanhToan.DataSource = CTHDBanHangBUS.LayDSCTHDBanHang(hdBH.MaHD); dgvCTHDThanhToan.CurrentCell = null; AddStatus(-1); }
private void btnThem_Click(object sender, EventArgs e) { if (mon == null) { if (txtTenMon.Text == "" || txtDonGia.Text == "" || cboLoaiMon.SelectedValue.ToString() == "" || chkTrangThai.Checked == false || picHinh.Image == null) { MessageBox.Show("Bạn chưa nhập đầy đủ hoặc bỏ trống thông tin món ăn", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { MonDTO mon = new MonDTO(); mon.MaMon = txtMaMon.Text; mon.MaLoaiMon = cboLoaiMon.SelectedValue.ToString(); mon.TenMon = txtTenMon.Text; if (txtDonGia.Text == "") { mon.DonGia = 0; } else { mon.DonGia = Convert.ToInt32(txtDonGia.Text); } mon.TrangThai = chkTrangThai.Checked; if (openFileDialog1.FileName != "") // Kiểm tra chọn file chưa { string fileName = txtMaMon.Text + "_" + DateTime.Now.ToFileTime(); string extension = Path.GetExtension(openFileDialog1.FileName); mon.HinhAnh = fileName + extension; } if (MonBUS.ThemMon(mon)) { File.Copy(openFileDialog1.FileName, "image\\" + mon.HinhAnh, true); //MessageBox.Show("Thêm món ăn mới thành công","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.None); LamMoi(); LoadDSMon(); XoaForm(true); } else { MessageBox.Show("Thêm món ăn thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); mon = null; } } } }
void XoaForm(bool t) { if (t) { txtMaMon.Text = MonBUS.LayMaMonLonNhat(); txtDonGia.Text = txtTenMon.Text = string.Empty; cboLoaiMon.SelectedValue = -1; picHinh.Image = null; } else { txtMaMon.Text = txtDonGia.Text = txtTenMon.Text = string.Empty; cboLoaiMon.SelectedValue = -1; picHinh.Image = null; } }
private void listMonHoc_MouseClick(object sender, MouseEventArgs e) { try { if (listMonHoc.SelectedIndex >= 0) { monDTO = MonBUS.GetRecord(Int32.Parse(listMonHoc.SelectedValue.ToString())); txtTenMonHocUpdate.Text = monDTO.TenMon; } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
private void btnXoaMon_Click(object sender, EventArgs e) { if (DialogResult.Yes == MessageBox.Show("Bạn có chắc chắn muốn xoá món này không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)) { if (MonBUS.XoaMon(Convert.ToInt32(txtMaMon.Text))) { MessageBox.Show("Xoá thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); LamMoiMon(); QLM_LoadDanhSachMon(GetTimKiemMon(), Convert.ToInt32(cmbTimKiemTheoLoaiMon.SelectedValue)); dgvMon.ClearSelection(); } else { MessageBox.Show("Xoá thất bại!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void btnSuaMon_Click(object sender, EventArgs e) { MonDTO mon = new MonDTO(); mon.MaMon = Convert.ToInt32(txtMaMon.Text); mon.TenMon = txtTenMon.Text; mon.LoaiMon = Convert.ToInt32(cmbLoaiMon.SelectedValue); if (openFileDialog1.FileName != "") { string tenFile = DateTime.Now.ToFileTime() + "_" + mon.MaMon; string extension = Path.GetExtension(openFileDialog1.SafeFileName); mon.Hinh = tenFile + extension; File.Copy(openFileDialog1.FileName, "img\\products\\" + tenFile + extension); } else { if (picHinhMon.Image != Properties.Resources.user_account) { mon.Hinh = dgvMon.CurrentRow.Cells["colHinh"].Value.ToString(); } } if (txtGiaTienMon.Text != "") { mon.GiaTien = Convert.ToDouble(txtGiaTienMon.Text); } else { mon.GiaTien = 0; } mon.TrangThai = true; if (MonBUS.SuaMon(mon)) { MessageBox.Show("Sửa thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); LamMoiMon(); QLM_LoadDanhSachMon(GetTimKiemMon(), Convert.ToInt32(cmbTimKiemTheoLoaiMon.SelectedValue)); dgvMon.ClearSelection(); } else { MessageBox.Show("Sửa thất bại!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); mon = null; } }
private void btnThemMon_Click(object sender, EventArgs e) { try { if (txtTenMon.Text == "") { MessageBox.Show("Phải nhập tên môn học"); return; } MonDTO monDTO = new MonDTO(); monDTO.TenMon = txtTenMon.Text; MonBUS.Insert(monDTO); MessageBox.Show("Thêm môn thành công"); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
private void btnThemMon_Click(object sender, EventArgs e) { if (txtTenMon.Text == "") { MessageBox.Show("Vui lòng nhập đủ thông tin!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } MonDTO mon = new MonDTO(); mon.TenMon = txtTenMon.Text; mon.LoaiMon = Convert.ToInt32(cmbLoaiMon.SelectedValue); if (openFileDialog1.FileName != "") { string tenFile = DateTime.Now.ToFileTime() + "_" + (MonBUS.LayMaMonMoiNhat() + 1).ToString(); string extension = Path.GetExtension(openFileDialog1.SafeFileName); mon.Hinh = tenFile + extension; File.Copy(openFileDialog1.FileName, "img\\products\\" + tenFile + extension, true); } if (txtGiaTienMon.Text != "") { mon.GiaTien = Convert.ToDouble(txtGiaTienMon.Text); } else { mon.GiaTien = 0; } mon.TrangThai = true; if (MonBUS.ThemMon(mon)) { MessageBox.Show("Thêm thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); LamMoiMon(); QLM_LoadDanhSachMon(GetTimKiemMon(), Convert.ToInt32(cmbTimKiemTheoLoaiMon.SelectedValue)); dgvMon.ClearSelection(); } else { MessageBox.Show("Thêm thất bại!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); mon = null; } }
private void LoadDSMonAn(ListView lsvMonAn, string maLoai) { List <MonDTO> ls = MonBUS.LayDSMonAnTheoLoai(maLoai); for (int i = 0; i < ls.Count; i++) { ListViewItem lvi = new ListViewItem(ls[i].TenMon); lvi.SubItems.Add(ls[i].MaMon); lvi.SubItems.Add(ls[i].DonGia.ToString()); lvi.SubItems.Add(ls[i].HinhAnh); if (File.Exists("image\\" + ls[i].HinhAnh)) { byte[] byteHA = File.ReadAllBytes("image\\" + ls[i].HinhAnh); MemoryStream ms = new MemoryStream(byteHA); Image img = Image.FromStream(ms); imlMonAn.Images.Add(img); lvi.ImageIndex = imlMonAn.Images.Count - 1; } lsvMonAn.Items.Add(lvi); } }
private void btnCapNhat_Click(object sender, EventArgs e) { if (txtTenMon.Text == "" || txtDonGia.Text == "" || cboLoaiMon.SelectedValue.ToString() == "" || chkTrangThai.Checked == false) { MessageBox.Show("Bạn chưa nhập đầy đủ hoặc bỏ trống thông tin món ăn", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else { MonDTO mon = new MonDTO(); mon.MaMon = txtMaMon.Text; mon.MaLoaiMon = cboLoaiMon.SelectedValue.ToString(); mon.TenMon = txtTenMon.Text; mon.DonGia = Convert.ToInt32(txtDonGia.Text); if (openFileDialog1.FileName != "") { string fileName = txtMaMon.Text + '_' + DateTime.Now.ToFileTime() + ".jpg"; mon.HinhAnh = fileName; File.Copy(openFileDialog1.FileName, "image\\" + fileName, true); } else { string fileName = MonBUS.LayTenHinhHienTai(txtMaMon.Text); mon.HinhAnh = fileName; } mon.TrangThai = chkTrangThai.Checked; if (MonBUS.SuaMon(mon)) { //MessageBox.Show("Cập nhật món ăn thành công","Thông báo",MessageBoxButtons.OK,MessageBoxIcon.None); LamMoi(); LoadDSMon(); XoaForm(true); } else { MessageBox.Show("Cập nhật món ăn thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); mon = null; } } }
private void btnCapNhatMonHoc_Click(object sender, EventArgs e) { try { DialogResult result = MessageBox.Show("Bạn có chắc muốn cập nhật môn học này không?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (result == DialogResult.Yes) { monDTO.TenMon = txtTenMonHocUpdate.Text; MonBUS.UpdateRecord(monDTO); MessageBox.Show("Cập nhật môn học thành công"); layDanhSachMon(); } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
private void btnXoaMonHoc_Click(object sender, EventArgs e) { try { DialogResult result = MessageBox.Show("Bạn có chắc muốn xóa môn học này không?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (result == DialogResult.Yes) { MonBUS.Delete(monDTO.MaMon); MessageBox.Show("Xóa môn học thành công"); layDanhSachMon(); txtTenMonHocUpdate.Text = ""; } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } }
private void LoadDSMonAnTimKiem(string strTK) { lsvTimKiem.Clear(); lsvTimKiem.LargeImageList = imlMonAn; List <MonDTO> ls = MonBUS.LayDanhSachMon(strTK); for (int i = 0; i < ls.Count; i++) { ListViewItem lvi = new ListViewItem(ls[i].TenMon); lvi.SubItems.Add(ls[i].MaMon); lvi.SubItems.Add(ls[i].DonGia.ToString()); lvi.SubItems.Add(ls[i].HinhAnh); if (File.Exists("image\\" + ls[i].HinhAnh)) { byte[] byteHA = File.ReadAllBytes("image\\" + ls[i].HinhAnh); MemoryStream ms = new MemoryStream(byteHA); Image img = Image.FromStream(ms); imlMonAn.Images.Add(img); lvi.ImageIndex = imlMonAn.Images.Count - 1; } lsvTimKiem.Items.Add(lvi); } }
public void refreshMonData() { dtDanhSachMon = MonBUS.GetTable(); dtgvDSMon.DataSource = dtDanhSachMon; ((CheckBox)dtgvDSMon.Controls.Find("checkboxHeader", true)[0]).Checked = false; }
private void TaiDuLieu() { for (int i = 0; i < panelLoai.Controls.Count; i++) { Control ctrl = panelLoai.Controls[i]; if (ctrl.GetType() == typeof(MaterialFlatButton)) { if (ctrl.Tag.GetType() == typeof(LoaiMonDTO)) { ImageList iml = new ImageList(); iml.ColorDepth = ColorDepth.Depth32Bit; iml.ImageSize = new Size(64, 64); ListView lsv = new ListView(); lsv.Tag = ctrl.Tag; lsv.LargeImageList = iml; lsv.Name = ctrl.Name; lsv.ShowGroups = true; lsv.TileSize = new Size(230, 100); lsv.GridLines = true; lsv.FullRowSelect = true; lsv.View = View.Tile; lsv.Dock = DockStyle.Fill; lsv.Font = new Font("Segoe UI", 14.25F); TaoGroupMon(lsv); lsv.Columns.Add("Tên món"); lsv.Columns.Add("Đơn giá"); lsv.Click += new EventHandler(ThemMon); List <MonDTO> lsMon = MonBUS.LayDanhSachMon(Convert.ToInt32(lsv.Name)); LayDanhSachMon(lsv, lsMon); panelMenu.Controls.Add(lsv); } } } List <LoaiToppingDTO> lsLoaiTopping = LoaiToppingBUS.LayDanhSachLoaiTopping(); foreach (LoaiToppingDTO loaiTopping in lsLoaiTopping) { ImageList iml = new ImageList(); iml.ColorDepth = ColorDepth.Depth32Bit; iml.ImageSize = new Size(80, 80); ListView lsv = new ListView(); lsv.Tag = loaiTopping; lsv.LargeImageList = iml; lsv.Name = loaiTopping.MaLoaiTopping + ""; lsv.ShowGroups = true; lsv.TileSize = new Size(230, 100); lsv.GridLines = true; lsv.FullRowSelect = true; lsv.View = View.Tile; lsv.Dock = DockStyle.Fill; lsv.Font = new Font("Segoe UI", 14.25F); TaoGroupTopping(lsv); lsv.Columns.Add("Tên món"); lsv.Columns.Add("Đơn giá"); lsv.Click += new EventHandler(ThemTopping); List <ToppingDTO> lsTopping = ToppingBUS.LayDanhSachTopping(loaiTopping.MaLoaiTopping); LayDanhSachTopping(lsv, lsTopping); panelMenu.Controls.Add(lsv); } panelMenu.Controls["0"].Visible = true; panelMenu.Controls["0"].BringToFront(); }