// если введён номер карты, найти её и пересчитать сумму к оплате private void findCard(string cardNumber) { discountCard = admin.model.getCardByNumber(cardNumber); if (discountCard != null) { if (discountCard.IsBlocked == true) { discountPercentValue_label.Text = "заблокирована"; discountCard = null; } else { if (admin.model.isCardUsedInRaceData(discountCard.Id, Convert.ToInt32(Race.RaceID), PilotID) == true) { discountPercentValue_label.Text = "Карта уже используется в этом заезде"; discountCard = null; } else { discountCard_textBox1.Text = discountCard.Number; discountPercentValue_label.Text = discountCard.DiscountCardGroup.PercentOfDiscount.ToString(); discountPercent_label.Visible = true; } } } else { discountPercentValue_label.Text = ""; } CalculateSumForPayment(); }
// при открытии формы, если у пилота есть карта, показать её private void loadDiscountCard() { #region если у пилота есть скидочная карта, покажем её discountPercentValue_label.Text = ""; discountPercent_label.Visible = false; discountCard = admin.model.getCardByUserId(PilotID); if (discountCard != null) { if (discountCard.IsBlocked == true) { discountPercentValue_label.Text = "заблокирована"; discountCard = null; } else { discountCard_textBox1.Text = discountCard.Number; discountPercentValue_label.Text = discountCard.DiscountCardGroup.PercentOfDiscount.ToString(); discountPercent_label.Visible = true; } } else { discountPercentValue_label.Text = ""; } #endregion CalculateSumForPayment(); }
bool IsHalfModesEnabled = false; // разрешены ли заезды на половину времени заезда public CashOperations(int ID, RaceClass R, AdminControl ad, double sale = 0) { InitializeComponent(); admin = ad; discountCard = null; PilotID = ID; User = admin.model.GetPilot(PilotID); int idDefaultRaceMode = Convert.ToInt32(admin.Settings["default_race_mode_id"]); Race = R; int idGroup = Convert.ToInt32(User["gr"]); Sum = Convert.ToDouble(admin.GetPrice(admin.GetWeekDayNumber(R.Date), Convert.ToInt32(R.Hour), idDefaultRaceMode, idGroup));// R.RaceSum; // ci = new comboBoxItem(null, -1); // ci.selectComboBoxValueById(userSelectedMode_comboBox1, idDefaultRaceMode); // userSelectedMode_comboBox1.SelectedIndex = 0; labelSmooth1.Text = "Полная стоимость билета - " + Sum.ToString() + " грн"; cashFromPilot_textBox3.Text = priceForCurrentRace_textBox5.Text = Sum.ToString(); certificateDiscount = sale; LoadData(); InSale = labelSmooth5.Visible = userSelectedMode_comboBox1.Visible = Convert.ToBoolean(admin.Settings["racesale"] ?? false); sale_onelap = Convert.ToInt32(admin.Settings["sale_onelap"] ?? 0); sale_half = Convert.ToInt32(admin.Settings["sale_half"] ?? 0); IsHalfModesEnabled = priceForHalfMode_label.Visible = halfModes_comboBox.Visible = Convert.ToBoolean(admin.Settings["halfModesEnabled"] ?? false); #region заполним список режимов заезда List <Hashtable> data = admin.model.GetAllRaceModes(" and is_deleted <> 1 "); halfModes_comboBox.Items.Clear(); for (int i = 0; i < data.Count; i++) { comboBoxItem someItem = new comboBoxItem(Convert.ToString(data[i]["name"]), Convert.ToInt32(data[i]["id"])); halfModes_comboBox.Items.Add(someItem); } ci.selectComboBoxValueById(halfModes_comboBox, idDefaultRaceMode); #endregion }
private void fillDiscountCards(int idPilot = -1) { cards_comboBox2.Items.Clear(); ci = new comboBoxItem("[нет]", -1); cards_comboBox2.Items.Add(ci); cards_comboBox2.SelectedIndex = 0; IEnumerable <model.DiscountCard> cards; // режим редактирования if (idPilot > -1) { // получить все неназначенные и свою cards = (from ca in admin.model.getAllDiscountCards() where ca.owner == null || ca.idOwner == idPilot select ca).OrderBy(m => m.Number); } else { // получить все неназначенные cards = admin.model.getAllDiscountCards().Where(m => m.owner == null).OrderBy(m => m.Number); } for (int i = 0; i < cards.Count(); i++) { ci = new comboBoxItem(cards.ElementAt(i).Number, cards.ElementAt(i).Id); cards_comboBox2.Items.Add(ci); } if (idPilot != -1) { model.DiscountCard userCard = (from ca in admin.model.getAllDiscountCards() where ca.idOwner == idPilot select ca).Take(1).SingleOrDefault(); if (userCard != null) { ci.selectComboBoxValueById(cards_comboBox2, userCard.Id); } } }
// сохраним пилота private void button1_Click(object sender, EventArgs e) { name_textBox2.Text = name_textBox2.Text.Trim(); lastName_textBox1.Text = lastName_textBox1.Text.Trim(); nick_textBox3.Text = nick_textBox3.Text.Trim().ToLower(); phone_textBox5.Text = phone_textBox5.Text.Trim(); if (checkPhoneNumber() == false) { return; } if (name_textBox2.Text.Trim().Length == 0) { MessageBox.Show("Необходимо указать имя пилота"); return; } if (lastName_textBox1.Text.Trim().Length == 0) { MessageBox.Show("Необходимо указать фамилию пилота"); return; } if (comboBox1.SelectedIndex == -1) { MessageBox.Show("Необходимо выбрать группу"); return; } // не разрешаем двум пилотам иметь одинаковые ники //if ((isEditMode == false && nick_textBox3.Text.Length > 0 // && admin.model.isNickUnique(nick_textBox3.Text) == false) || // (isEditMode == true && nick_textBox3.Text != pilotNick && // admin.model.isNickUnique(nick_textBox3.Text) == false)) //{ // MessageBox.Show("Пилот с таким никнеймом уже зарегистрирован"); // return; //} // если ник не указан, не разрешаем двум пилотам иметь одинаковое имя и фамилию if ((isEditMode == false && nick_textBox3.Text.Length == 0 && admin.model.isNameAndLastNameUnique(name_textBox2.Text, lastName_textBox1.Text) == false) || (isEditMode == true && nick_textBox3.Text.Length == 0 && (name_textBox2.Text != pilotName || lastName_textBox1.Text != pilotLastName) && admin.model.isNameAndLastNameUnique(name_textBox2.Text, lastName_textBox1.Text) == false ) ) { MessageBox.Show("Пилот с такими именем и фамилией уже зарегистрирован. Для различия пилотов, необходимо указать никнейм"); return; } /* * if (!isEditMode && admin.model.GetNewPilot(name_textBox2.Text, lastName_textBox1.Text, nick_textBox3.Text)) * { * MessageBox.Show("Увы, но такой пилот уже есть!"); * } * else * { */ /* * if (nick_textBox3.Text.Length < 3) * { * MessageBox.Show("Поле 'Никнейм' обязательно для заполнения и его значение должно быть не короче 3-х символов"); * return; * } */ Hashtable data = new Hashtable(); data["name"] = name_textBox2.Text; data["surname"] = lastName_textBox1.Text; data["nickname"] = nick_textBox3.Text; data["birthday"] = dateTimePicker1.Value; data["gender"] = radioButton1.Checked ? 1 : 0; data["email"] = textBox6.Text; data["tel"] = phone_textBox5.Text; data["group"] = admin.model.GetGroupID(comboBox1.Items[comboBox1.SelectedIndex].ToString()); data["banned"] = false; if (cards_comboBox2.SelectedIndex > 0) { data["barcode"] = cards_comboBox2.SelectedItem; } else { data["barcode"] = ""; } if (MainFilter != null) { MainFilter.Filter = nick_textBox3.Text; // " and name='" + textBox2.Text + "' and surname='" + textBox1.Text + "'"; } if (isEditMode) { admin.model.ChangePilot(data, PilotID); } else { model.users newPilot = admin.model.AddNewPilot(data); if (newPilot != null) { PilotID = newPilot.id; } } // не очень красиво написано. можно всё переделать, но будет слишком дорого if (editCard_checkBox1.Checked && cards_comboBox2.Items.Count > 0 && cards_comboBox2.SelectedIndex > -1) { // если указана карта, сохраним её. иначе освободим ранее выданную int pilotCardId = ci.getSelectedValue(cards_comboBox2); //найдём текущую карту пилота model.DiscountCard someCard = admin.model.getAllDiscountCards().Where(m => m.idOwner == PilotID).Take(1).SingleOrDefault(); if (someCard != null && pilotCardId == -1) { // раньше у пилота была карта, а теперь нету someCard.idOwner = null; admin.model.editDiscountCard(someCard); } else if (someCard != null && pilotCardId != someCard.Id) { // раньше у пилота была одна карта, а теперь другая someCard.idOwner = null; admin.model.editDiscountCard(someCard); someCard = admin.model.getAllDiscountCards().Where(m => m.Id == someCard.Id).Take(1).SingleOrDefault(); // освободим старую someCard.idOwner = -1; admin.model.editDiscountCard(someCard); // и займём новую someCard = admin.model.getAllDiscountCards().Where(m => m.Id == pilotCardId).Take(1).SingleOrDefault(); someCard.idOwner = PilotID; admin.model.editDiscountCard(someCard); } else if (someCard == null && pilotCardId > -1) { // раньше у пилота не было карты, а теперь есть someCard = admin.model.getAllDiscountCards().Where(m => m.Id == pilotCardId).Take(1).SingleOrDefault(); someCard.idOwner = PilotID; admin.model.editDiscountCard(someCard); } } this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); // } }