private void buttonDel_Click(object sender, EventArgs e) { //пробуем совершить действие try { //если в listView выбран элемент if (listViewSyplySet.SelectedItems.Count == 1) { //ищем элемент из таблицы по тегу SyppySet syppy = listViewSyplySet.SelectedItems[0].Tag as SyppySet; //удаляем из модели базы данных Program.wftDb.SyppySet.Remove(syppy); //сохраняем изменения Program.wftDb.SaveChanges(); //отображаем обновленный список ShowSupplySet(); } //очищаем все поля comboBoxAgents.SelectedItem = null; comboBoxClients.SelectedItem = null; comboBoxRealEstate.SelectedItem = null; textBoxPrice.Text = ""; } //если возникает какая-то ошибка catch { MessageBox.Show("Невозможно удалить, эта запись используются", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void buttonAdd_Click(object sender, EventArgs e) { //Проверяем, что все поля (раскрывающихся списков и текствого поля) были заполнены if (comboBoxAgents.SelectedItem != null && comboBoxClients.SelectedItem != null && comboBoxRealEstate != null && textBoxPrice.Text != "") { //создаем новый экземпляр класса Предложение SyppySet supply = new SyppySet(); //из выбранной строки в comboBoxAgents отделяем Id риэлтора (он отделен точкой) и делаем ссылку supply.IdAgent supply.IdAgent = Convert.ToInt32(comboBoxAgents.SelectedItem.ToString().Split('.')[0]); //точно также отделяем и заносим Id клиента supply.IdClient = Convert.ToInt32(comboBoxClients.SelectedItem.ToString().Split('.')[0]); //точно также отделяем и заносим Id объекта недвижимости supply.IdRealEstate = Convert.ToInt32(comboBoxRealEstate.SelectedItem.ToString().Split('.')[0]); //цена объекта недвижимости чаще всего превосходит миллион, поэтому используем Int64 supply.Price = Convert.ToInt64(textBoxPrice.Text); //добавляем в таблицу SupplySet новый объект недвижимости supply Program.wftDb.SyppySet.Add(supply); //сохраняем изменения в модели wftDb Program.wftDb.SaveChanges(); ShowSupplySet(); } else { MessageBox.Show("Данные не выбраны", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void buttonEdit_Click(object sender, EventArgs e) { //если в listView выбран элемент if (listViewSyplySet.SelectedItems.Count == 1) { //ищем элемент из таблицы по тегу SyppySet syppy = listViewSyplySet.SelectedItems[0].Tag as SyppySet; //указываем, что может быть изменено syppy.IdAgent = Convert.ToInt32(comboBoxAgents.SelectedItem.ToString().Split('.')[0]); syppy.IdClient = Convert.ToInt32(comboBoxClients.SelectedItem.ToString().Split('.')[0]); syppy.IdRealEstate = Convert.ToInt32(comboBoxRealEstate.SelectedItem.ToString().Split('.')[0]); syppy.Price = Convert.ToInt64(textBoxPrice.Text); //Сохраняем изменения в модели wftDb (экземпляр которой был создан ранее) Program.wftDb.SaveChanges(); ShowSupplySet(); } }
private void listViewSyplySet_SelectedIndexChanged(object sender, EventArgs e) { //если в listView выбран по тегу if (listViewSyplySet.SelectedItems.Count == 1) { SyppySet syppy = listViewSyplySet.SelectedItems[0].Tag as SyppySet; //указываем, что может быть изменено //находим в comboBoxAgents необходимую строку по Id риэлтора из supply.IdAgent и задаем ее отображение comboBox-y comboBoxAgents.SelectedIndex = comboBoxAgents.FindString(syppy.IdAgent.ToString()); //точно также поступаем с comboBoxClients и comboBoxRealEstate comboBoxClients.SelectedIndex = comboBoxClients.FindString(syppy.IdClient.ToString()); comboBoxRealEstate.SelectedIndex = comboBoxRealEstate.FindString(syppy.IdRealEstate.ToString()); textBoxPrice.Text = syppy.Price.ToString(); } else { //если не выбран ни один элемент, задаем пустые элементы comboBoxAgents.SelectedItem = null; comboBoxClients.SelectedItem = null; comboBoxRealEstate.SelectedItem = null; textBoxPrice.Text = ""; } }
void Deductions() { if (comboBoxSupply.SelectedItem != null && comboBoxDemand.SelectedItem != null) { //находим в базе предложение и потребность с выбранными номерами SyppySet syppySet = Program.wftDb.SyppySet.Find(Convert.ToInt32(comboBoxSupply.SelectedItem.ToString().Split('.')[0])); DemandSet demandSet = Program.wftDb.DemandSet.Find(Convert.ToInt32(comboBoxDemand.SelectedItem.ToString().Split('.')[0])); //расчитываем отчисления компании для клиента-покупателя (3% от стоимости недвижимости), выводим textCustomerCompanyDeductions double customerCompanyDeductions = syppySet.Price * 0.03; textBoxCustomerCompanyDeductions.Text = customerCompanyDeductions.ToString("0.00"); //расчитываем отчисления риелтору для клиента-покупателя (комиссия указана в таблице AgentSet), выводим в textBoxAgentCustomerDeductions if (demandSet.AgentSet.DealShare != null) { double agentCustomerDeductions = customerCompanyDeductions * Convert.ToDouble(demandSet.AgentSet.DealShare) / 100.00; textBoxAgentCustomerDeductions.Text = agentCustomerDeductions.ToString("0.00"); } else { //если комиссия не указана, то автоматическуие берется 45% double agentCustomerDeductions = customerCompanyDeductions * 0.45; textBoxAgentCustomerDeductions.Text = agentCustomerDeductions.ToString("0.00"); } } else { textBoxCustomerCompanyDeductions.Text = ""; textBoxAgentCustomerDeductions.Text = ""; } if (comboBoxSupply.SelectedItem != null) { //находим в базе предложение с выбранным номером SyppySet syppySet = Program.wftDb.SyppySet.Find(Convert.ToInt32(comboBoxSupply.SelectedItem.ToString().Split('.')[0])); //расчитываем отчисления компании для клиента-продавца //если продается квартира double sellerCompanyDeductions; if (syppySet.RealEstateSet.Type == 0) { sellerCompanyDeductions = 36000 + syppySet.Price * 0.01; textBoxSellerCompanyDeductions.Text = sellerCompanyDeductions.ToString("0.00"); } //если продается дом else if (syppySet.RealEstateSet.Type == 1) { sellerCompanyDeductions = 30000 + syppySet.Price * 0.01; textBoxSellerCompanyDeductions.Text = sellerCompanyDeductions.ToString("0.00"); } //если продается земля else { sellerCompanyDeductions = 30000 + syppySet.Price * 0.02; textBoxSellerCompanyDeductions.Text = sellerCompanyDeductions.ToString("0.00"); } //расчитываем отчисления риелтору для клиента-покупателя (комиссия указана в таблице AgentSet) if (syppySet.AgentSet.DealShare != null) { double agentSellerDeductions = sellerCompanyDeductions * Convert.ToDouble(syppySet.AgentSet.DealShare) / 100.00; textBoxAgentSellerDeductions.Text = agentSellerDeductions.ToString("0.00"); } else { //если комиссия не указана, то автоматически берется 45% double agentSellerDeductions = sellerCompanyDeductions * 0.45; textBoxAgentSellerDeductions.Text = agentSellerDeductions.ToString("0.00"); } } else { textBoxSellerCompanyDeductions.Text = ""; textBoxAgentSellerDeductions.Text = ""; textBoxCustomerCompanyDeductions.Text = ""; textBoxAgentCustomerDeductions.Text = ""; } }