private void btnEdit_Click(object sender, EventArgs e) { try { if (ValidateData() == true) { ServicesBO aServiceBO = new ServicesBO(); Services aService = aServiceBO.Select_ByID(ID); aService.Name = txtName.Text; aService.CostRef = decimal.Parse(txtCost.Text); aService.Unit = txtUnit.Text.ToString(); aService.Status = cboStatus.SelectedIndex + 1; aService.Type = cboType.SelectedIndex + 1; aService.Disable = bool.Parse(cboDisable.Text); aService.IDServiceGroups = int.Parse(lueIDServiceGroup.EditValue.ToString()); aServiceBO.Update(aService); MessageBox.Show("Cập nhật dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); this.afrmLst_Services.ReloadData(); this.Close(); } } catch (Exception ex) { MessageBox.Show("frmUpd_Services.btnEdit_Click\n" + ex.ToString(), "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public frmRpt_SplitPayment_BookingHs(PaymentHallsEN aPaymentHallsEN, int indexSub) { InitializeComponent(); this.aPaymentHallsEN = aPaymentHallsEN; this.indexSub = indexSub; try { ReceptionTaskBO aReceptionTaskBO = new ReceptionTaskBO(); HallsBO aHallsBO = new HallsBO(); ServicesBO aServicesBO = new ServicesBO(); List<HallsEN> aListHallsEN = new List<HallsEN>(); aListHallsEN=this.aPaymentHallsEN.GetListHallsEN().Where(r => r.IndexSubHalls == this.indexSub).OrderBy(r => r.Sku).ToList(); totalMoneyHall = aListHallsEN.Sum(s => s.TotalCost); List<ServicesHallsEN> aListServicesHallsEN = new List<ServicesHallsEN>(); aListServicesHallsEN=this.aPaymentHallsEN.GetListServicesHallsEN().Where(r => r.IndexSubServices == this.indexSub).OrderBy(r => r.SkuHall).ToList(); totalMoneyService = aListServicesHallsEN.Sum(s => s.Total); lblCompany.Text = this.aPaymentHallsEN.NameCompany; lblGroup.Text =this.aPaymentHallsEN.NameCustomerGroup; lblNameCustomer.Text =this.aPaymentHallsEN.NameCustomer; lblIDBookingH.Text = Convert.ToString(this.aPaymentHallsEN.IDBookingH); //danh sach hoi truong this.DetailReportHall.DataSource = aListHallsEN; colSkuHall.DataBindings.Add("Text", this.DetailReportHall.DataSource, "Sku"); colCreateDate.DataBindings.Add("Text", this.DetailReportHall.DataSource, "Date", "{0:dd/MM/yyyy}"); colBookingHallCost.DataBindings.Add("Text", this.DetailReportHall.DataSource, "Cost", "{0:0,0}"); colPercentTax.DataBindings.Add("Text", this.DetailReportHall.DataSource, "PercentTax"); colPaymentMoneyHall.DataBindings.Add("Text", this.DetailReportHall.DataSource, "TotalMoney", "{0:0,0}"); //danh sach dich vu su dung this.DetailReportService.DataSource = aListServicesHallsEN; colService_Sku.DataBindings.Add("Text", this.DetailReportService.DataSource, "SkuHall"); colService_Name.DataBindings.Add("Text", this.DetailReportService.DataSource, "NameService"); colService_Date.DataBindings.Add("Text", this.DetailReportService.DataSource, "Date", "{0:dd/MM/yyyy}"); colService_Quantity.DataBindings.Add("Text", this.DetailReportService.DataSource, "Quantity", "{0:0,0}"); colService_Cost.DataBindings.Add("Text", this.DetailReportService.DataSource, "Cost", "{0:0,0}"); colService_PercentTax.DataBindings.Add("Text", this.DetailReportService.DataSource, "PercentTax"); colService_Money.DataBindings.Add("Text", this.DetailReportService.DataSource, "Total", "{0:0,0}"); //tong tien dich vu lblTotalMoneyServices.Text = String.Format("{0:0,0} (VND)",this.totalMoneyService); //tong tien hoi truong lblTotalMoneyHall.Text = String.Format("{0:0,0} (VND)",this.totalMoneyHall); //tong tien lblTotalMoney.Text = String.Format("{0:0,0}",aPaymentHallsEN.GetTotalMoneyBookingHBehindTax()); lblBookingMoney.Text = String.Format("{0:0,0}",this.aPaymentHallsEN.GetBookingMoney()); lblMoney.Text = String.Format("{0:0,0}", (aPaymentHallsEN.GetTotalMoneyBookingHBehindTax() - this.aPaymentHallsEN.GetBookingMoney())); } catch (Exception ex) { MessageBox.Show("frmRpt_PaymentBookingHs.frmRpt_PaymentBookingHs\n" + ex.ToString()); } }
public void ReloadData() { try { ServicesBO aServicesBO = new ServicesBO(); this.colPrice.DisplayFormat.FormatType = FormatType.Numeric; this.colPrice.DisplayFormat.FormatString = "{0:0,0}"; dgvServices.DataSource = aServicesBO.Select_All(); } catch (Exception ex) { MessageBox.Show("frmLst_Services.ReloadData\n" + ex.ToString(), "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnDel_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { try { ServicesBO aServicesBO = new ServicesBO(); int ID = int.Parse(grvService.GetFocusedRowCellValue("ID").ToString()); string Name = aServicesBO.Select_ByID(ID).Name; DialogResult result = MessageBox.Show("Bạn có muốn xóa dịch vụ " + Name + " này không?", "Xóa công ty", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { aServicesBO.Delete(ID); MessageBox.Show("Xóa thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); this.ReloadData(); } } catch (Exception ex) { MessageBox.Show("frmLst_Services.btnDel_ButtonClick\n" + ex.ToString(), "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void bnAdd_Click(object sender, EventArgs e) { try { if(this.CheckData()==true) { ServicesBO aServiceBO = new ServicesBO(); Services aService = new Services(); aService.Name = txtName.Text; aService.CostRef = string.IsNullOrEmpty(txtCost.Text) == true ? 0 : Convert.ToDecimal(txtCost.Text); aService.Unit = txtUnit.Text; aService.Status = 1; aService.Type = cboType.SelectedIndex + 1; aService.Disable = false; aService.IDServiceGroups = Convert.ToInt32(lueIDServiceGroup.EditValue); aServiceBO.Insert(aService); MessageBox.Show("Thêm mới thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information); if (this.afrmLst_Services != null) { this.afrmLst_Services.ReloadData(); } if (this.afrmTsk_BookingHall_Customer_New != null) { this.afrmTsk_BookingHall_Customer_New.CallBackService(aService); } if (this.afrmTsk_UseServices != null) { this.afrmTsk_UseServices.Reload(); } this.Close(); } } catch (Exception ex) { MessageBox.Show("frmIns_Services.bnAdd_Click\n" + ex.ToString(), "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void frmUpd_Services_Load(object sender, EventArgs e) { try { ServiceGroupsBO aServiceGroupsBO = new ServiceGroupsBO(); lueIDServiceGroup.Properties.DataSource = aServiceGroupsBO.Sel_all(); lueIDServiceGroup.Properties.DisplayMember = "Name"; lueIDServiceGroup.Properties.ValueMember = "ID"; ServicesBO aServiceBO = new ServicesBO(); Services aService = aServiceBO.Select_ByID(ID); lblIDService.Text = ID.ToString(); txtName.Text = aService.Name; txtCost.Text = String.Format("{0:0,0}",aService.CostRef); cboDisable.Text = aService.Disable.ToString(); cboStatus.SelectedIndex = Convert.ToInt32(aService.Status - 1); cboType.SelectedIndex = Convert.ToInt32(aService.Type - 1); txtUnit.Text = aService.Unit; lueIDServiceGroup.EditValue = aService.IDServiceGroups; } catch (Exception ex) { MessageBox.Show("frmUpd_Services.frmUpd_Services_Load\n" + ex.ToString(), "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void LoadServiceInBookingHall(int IDBookHall) { try { ServicesBO aServicesBO = new ServicesBO(); BookingHalls_ServicesBO aBookingHalls_ServicesBO = new BookingHalls_ServicesBO(); List<BookingHalls_Services> aListTemp = aBookingHalls_ServicesBO.Select_ByIDBookingHall(IDBookHall); BookingHall_ServiceEN aBookingHall_ServiceEN; for (int i = 0; i < aListTemp.Count; i++) { aBookingHall_ServiceEN = new BookingHall_ServiceEN(); aBookingHall_ServiceEN.ID = aListTemp[i].ID; aBookingHall_ServiceEN.Info = aListTemp[i].Info; aBookingHall_ServiceEN.Type = aListTemp[i].Type; aBookingHall_ServiceEN.Status = aListTemp[i].Status; aBookingHall_ServiceEN.Disable = aListTemp[i].Disable; aBookingHall_ServiceEN.IDBookingHall = aListTemp[i].IDBookingHall; aBookingHall_ServiceEN.IDService = aListTemp[i].IDService; aBookingHall_ServiceEN.Service_Name = aServicesBO.Select_ByID(aListTemp[i].IDService).Name; aBookingHall_ServiceEN.Service_Unit = aServicesBO.Select_ByID(aListTemp[i].IDService).Unit; aBookingHall_ServiceEN.Cost = aListTemp[i].Cost == null ? aListTemp[i].CostRef_Services : aListTemp[i].Cost; aBookingHall_ServiceEN.CostRef_Services = aListTemp[i].CostRef_Services; aBookingHall_ServiceEN.Date = aListTemp[i].Date; aBookingHall_ServiceEN.PercentTax = aListTemp[i].PercentTax; aBookingHall_ServiceEN.Quantity = aListTemp[i].Quantity; aListSelected.Add(aBookingHall_ServiceEN); } dgvServiceInHall.DataSource = aListSelected; dgvServiceInHall.RefreshDataSource(); } catch (Exception ex) { MessageBox.Show("frmIns_BookingHalls_Services.grvHalls_RowClick\n" + ex.ToString(), "Error ", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void grvListBookingHalls_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { int IDBookingHall = Convert.ToInt32(grvListBookingHalls.GetFocusedRowCellValue("ID")); ServicesBO aServicesBO = new ServicesBO(); BookingHalls_ServicesBO aBookingHalls_ServicesBO = new BookingHalls_ServicesBO(); List<BookingHall_ServiceEN> aListBookingHall_ServiceEN = new List<BookingHall_ServiceEN>(); List<BookingHalls_Services> aListTemp = aBookingHalls_ServicesBO.Select_ByIDBookingHall(IDBookingHall); BookingHall_ServiceEN aBookingHall_ServiceEN; for (int i = 0; i < aListTemp.Count; i++) { aBookingHall_ServiceEN = new BookingHall_ServiceEN(); aBookingHall_ServiceEN.ID = aListTemp[i].ID; aBookingHall_ServiceEN.Info = aListTemp[i].Info; aBookingHall_ServiceEN.Type = aListTemp[i].Type; aBookingHall_ServiceEN.Status = aListTemp[i].Status; aBookingHall_ServiceEN.Disable = aListTemp[i].Disable; aBookingHall_ServiceEN.IDBookingHall = aListTemp[i].IDBookingHall; aBookingHall_ServiceEN.IDService = aListTemp[i].IDService; aBookingHall_ServiceEN.Service_Name = aServicesBO.Select_ByID(aListTemp[i].IDService).Name; aBookingHall_ServiceEN.Service_Unit = aServicesBO.Select_ByID(aListTemp[i].IDService).Unit; aBookingHall_ServiceEN.Cost = aListTemp[i].CostRef_Services; aBookingHall_ServiceEN.CostRef_Services = aListTemp[i].CostRef_Services; aBookingHall_ServiceEN.Date = aListTemp[i].Date; aBookingHall_ServiceEN.PercentTax = aListTemp[i].PercentTax; aBookingHall_ServiceEN.Quantity = aListTemp[i].Quantity; aListBookingHall_ServiceEN.Add(aBookingHall_ServiceEN); } dgvServiceInBookingHall.DataSource = aListBookingHall_ServiceEN; dgvServiceInBookingHall.RefreshDataSource(); }
public void Reload() { BookingRoomsBO aBookingRoomsBO = new BookingRoomsBO(); RoomsBO aRoomsBO = new RoomsBO(); BookingRoomsEN aBookingRoomsEN = new BookingRoomsEN(); BookingRooms aBookingRooms = aBookingRoomsBO.Select_ByID(IDBookingRoom); aBookingRoomsEN.SetValue(aBookingRooms); aBookingRoomsEN.ID = aBookingRooms.ID; aBookingRoomsEN.RoomSku = aRoomsBO.Select_ByCodeRoom(aBookingRooms.CodeRoom, 1).Sku; this.lbCurrentRoom.Text = "Phòng số : " + aBookingRoomsEN.RoomSku; aListBookingRoom.Add(aBookingRoomsEN); dgvRooms.DataSource = aListBookingRoom; dgvRooms.RefreshDataSource(); ServicesBO aServicesBO = new ServicesBO(); aListService = aServicesBO.Select_ByType(2); dgvServices.DataSource = aListService; dgvServices.RefreshDataSource(); }
private void LoadServicesInRoom() { try { ServicesBO aServicesBO = new ServicesBO(); BookingRooms_ServicesBO aBookingRooms_ServicesBO = new BookingRooms_ServicesBO(); List<BookingRooms_Services> aListTemp = aBookingRooms_ServicesBO.Select_ByIDBookingRooms(this.IDBookingRoom); BookingRoom_ServiceEN aBookingRoom_ServiceEN; for (int i = 0; i < aListTemp.Count; i++) { aBookingRoom_ServiceEN = new BookingRoom_ServiceEN(); aBookingRoom_ServiceEN.ID = aListTemp[i].ID; aBookingRoom_ServiceEN.Info = aListTemp[i].Info; aBookingRoom_ServiceEN.Type = aListTemp[i].Type; aBookingRoom_ServiceEN.Status = aListTemp[i].Status; aBookingRoom_ServiceEN.Disable = aListTemp[i].Disable; aBookingRoom_ServiceEN.IDBookingRoom = aListTemp[i].IDBookingRoom; aBookingRoom_ServiceEN.IDService = aListTemp[i].IDService; aBookingRoom_ServiceEN.Service_Name = aServicesBO.Select_ByID(aListTemp[i].IDService).Name; aBookingRoom_ServiceEN.Service_Unit = aServicesBO.Select_ByID(aListTemp[i].IDService).Unit; aBookingRoom_ServiceEN.Cost = aListTemp[i].Cost == null ? aListTemp[i].CostRef_Services : aListTemp[i].Cost; aBookingRoom_ServiceEN.CostRef_Services = aListTemp[i].CostRef_Services; aBookingRoom_ServiceEN.Date = aListTemp[i].Date; aBookingRoom_ServiceEN.PercentTax = aListTemp[i].PercentTax; aBookingRoom_ServiceEN.Quantity = aListTemp[i].Quantity; aBookingRoom_ServiceEN.Tag = aListTemp[i].Tag; aListSelected.Add(aBookingRoom_ServiceEN); } dgvServiceInRoom.DataSource = aListSelected; dgvServiceInRoom.RefreshDataSource(); CustomersBO aCustomersBO = new CustomersBO(); lueUserInRoom.DataSource = aCustomersBO.SelectListCustomer_ByIDBookingRoom(this.IDBookingRoom); } catch (Exception ex) { MessageBox.Show("frmIns_BookingRooms_Services.grvRooms_RowClick\n" + ex.ToString(), "Error ", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void LoadService() { try { ServicesBO aServicesBO = new ServicesBO(); dgvService.DataSource = aServicesBO.Select_ServiceForHalls(); dgvService.RefreshDataSource(); } catch (Exception ex) { MessageBox.Show("frmTsk_BookingHall_Customer_New.LoadService\n" + ex.ToString(), "Error ", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
// truyền lại Service vừa thêm vào 2 List public void CallBackService(Services aServices) { try { this.LoadService(); ServicesBO aServicesBO = new ServicesBO(); ServiceUsedEN aServiceUsedEN = new ServiceUsedEN(); aServiceUsedEN.IDService = aServices.ID; aServiceUsedEN.NameService = aServices.Name; aServiceUsedEN.Cost = aServices.CostRef; aServiceUsedEN.CostRef_Service = aServices.CostRef; aServiceUsedEN.Unit = aServices.Unit; aServiceUsedEN.Quantity = 1; aServiceUsedEN.Tax = 10; aServiceUsedEN.DateUsed = dtpFrom.DateTime; if (this.aNewBookingHEN.aListBookingHallUsed.Where(a => a.CodeHall == CurrentCodeHall).ToList().Count > 0) { this.aNewBookingHEN.aListBookingHallUsed.Where(a => a.CodeHall == CurrentCodeHall).ToList()[0].InsertService(aServiceUsedEN); dgvServiceInHall.DataSource = this.aNewBookingHEN.aListBookingHallUsed.Where(a => a.CodeHall == CurrentCodeHall).ToList()[0].aListServiceUsed; dgvServiceInHall.RefreshDataSource(); } } catch (Exception ex) { MessageBox.Show("frmTsk_BookingHall_Customer_New.btnSelectService_ButtonClick\n" + ex.ToString(), "Error ", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void grvListBookingHalls_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { try { int IDBookingHall = Convert.ToInt32(grvListBookingHalls.GetFocusedRowCellValue("ID")); ServicesBO aServicesBO = new ServicesBO(); BookingHalls_ServicesBO aBookingHalls_ServicesBO = new BookingHalls_ServicesBO(); List<BookingHall_ServiceEN> aListBookingHall_ServiceEN = new List<BookingHall_ServiceEN>(); List<BookingHalls_Services> aListTemp = aBookingHalls_ServicesBO.Select_ByIDBookingHall(IDBookingHall); BookingHall_ServiceEN aBookingHall_ServiceEN; for (int i = 0; i < aListTemp.Count; i++) { aBookingHall_ServiceEN = new BookingHall_ServiceEN(); aBookingHall_ServiceEN.ID = aListTemp[i].ID; aBookingHall_ServiceEN.Info = aListTemp[i].Info; aBookingHall_ServiceEN.Type = aListTemp[i].Type; aBookingHall_ServiceEN.Status = aListTemp[i].Status; aBookingHall_ServiceEN.Disable = aListTemp[i].Disable; aBookingHall_ServiceEN.IDBookingHall = aListTemp[i].IDBookingHall; aBookingHall_ServiceEN.IDService = aListTemp[i].IDService; aBookingHall_ServiceEN.Service_Name = aServicesBO.Select_ByID(aListTemp[i].IDService).Name; aBookingHall_ServiceEN.Service_Unit = aServicesBO.Select_ByID(aListTemp[i].IDService).Unit; aBookingHall_ServiceEN.Cost = aListTemp[i].CostRef_Services; aBookingHall_ServiceEN.CostRef_Services = aListTemp[i].CostRef_Services; aBookingHall_ServiceEN.Date = aListTemp[i].Date; aBookingHall_ServiceEN.PercentTax = aListTemp[i].PercentTax; aBookingHall_ServiceEN.Quantity = aListTemp[i].Quantity; aListBookingHall_ServiceEN.Add(aBookingHall_ServiceEN); } dgvServiceInBookingHall.DataSource = aListBookingHall_ServiceEN; dgvServiceInBookingHall.RefreshDataSource(); } catch (Exception ex) { MessageBox.Show("frmTsk_UnpayBookingHs.grvListBookingHalls_RowClick\n" + ex.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void Reload() { try { BookingHallsBO aBookingHallsBO = new BookingHallsBO(); List<BookingHallsEN> aListBookingHall = new List<BookingHallsEN>(); BookingHallsEN aBookingHallsEN = new BookingHallsEN(); BookingHalls aBookingHalls = aBookingHallsBO.Select_ByID(IDBookingHall); aBookingHallsEN.ID = aBookingHalls.ID; aBookingHallsEN.HallSku = aHallsBO.Select_ByCodeHall(aBookingHalls.CodeHall, 1).Sku; aListBookingHall.Add(aBookingHallsEN); dtpDate.DateTime = aBookingHalls.Date.GetValueOrDefault(); dgvHalls.DataSource = aListBookingHall; dgvHalls.RefreshDataSource(); ServicesBO aServicesBO = new ServicesBO(); aListAvailable = aServicesBO.Select_ByType(1); dgvService.DataSource = aListAvailable; dgvService.RefreshDataSource(); } catch (Exception ex) { MessageBox.Show("frmIns_BookingHalls_Services.Reload\n" + ex.ToString(), "Error ", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void LoadServiceInBookingHall(int IDBookingHall) { try { ServicesBO aServicesBO = new ServicesBO(); BookingHalls_ServicesBO aBookingHalls_ServicesBO = new BookingHalls_ServicesBO(); List<BookingHalls_Services> aListTemp = aBookingHalls_ServicesBO.Select_ByIDBookingHall(IDBookingHall); BookingHall_ServiceEN aBookingHall_ServiceEN; for (int i = 0; i < aListTemp.Count; i++) { aBookingHall_ServiceEN = new BookingHall_ServiceEN(); aBookingHall_ServiceEN.ID = aListTemp[i].ID; aBookingHall_ServiceEN.Info = aListTemp[i].Info; aBookingHall_ServiceEN.Type = aListTemp[i].Type; aBookingHall_ServiceEN.Status = aListTemp[i].Status; aBookingHall_ServiceEN.Disable = aListTemp[i].Disable; aBookingHall_ServiceEN.IDBookingHall = aListTemp[i].IDBookingHall; aBookingHall_ServiceEN.IDService = aListTemp[i].IDService; aBookingHall_ServiceEN.Service_Name = aServicesBO.Select_ByID(aListTemp[i].IDService).Name; aBookingHall_ServiceEN.Service_Unit = aServicesBO.Select_ByID(aListTemp[i].IDService).Unit; aBookingHall_ServiceEN.Cost = aListTemp[i].Cost == null ? aListTemp[i].CostRef_Services : aListTemp[i].Cost; aBookingHall_ServiceEN.CostRef_Services = aListTemp[i].CostRef_Services; aBookingHall_ServiceEN.Date = aListTemp[i].Date; aBookingHall_ServiceEN.PercentTax = aListTemp[i].PercentTax; aBookingHall_ServiceEN.Quantity = aListTemp[i].Quantity; aBookingHall_ServiceEN.Tag = aListTemp[i].Tag; aListSelected.Add(aBookingHall_ServiceEN); } dgvServiceInHall.DataSource = aListSelected; dgvServiceInHall.RefreshDataSource(); CustomersBO aCustomersBO = new CustomersBO(); BookingRs_BookingHsBO aBookingRs_BookingHsBO = new BookingRs_BookingHsBO(); List<Customers> aListCustomerRoom = new List<Customers>(); List<Customers> aListCustomerHall = aCustomersBO.SelectListCustomer_ByIDBookingH(this.IDBookingHall); if (this.aNewPayment != null) { if (this.aNewPayment.IDBookingR > 0) { aListCustomerRoom = aCustomersBO.SelectListCustomer_ByIDBookingR(this.aNewPayment.IDBookingR.GetValueOrDefault(0)); } } aListCustomerHall.AddRange(aListCustomerRoom); lueUserInHall.DataSource = aListCustomerHall; } catch (Exception ex) { MessageBox.Show("frmIns_BookingHalls_Services.grvHalls_RowClick\n" + ex.ToString(), "Error ", MessageBoxButtons.OK, MessageBoxIcon.Error); } }