Beispiel #1
0
        // если введён номер карты, найти её и пересчитать сумму к оплате
        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();
        }
Beispiel #2
0
        // при открытии формы, если у пилота есть карта, показать её
        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();
        }
Beispiel #3
0
        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
        }
Beispiel #4
0
        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);
                }
            }
        }
Beispiel #5
0
        // сохраним пилота
        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();
            //    }
        }