public void bntCreate_Click(Object sender, EventArgs e)
        {
            #region Инициализация объектов
            var user        = (Users)Session["userinsession"];
            var rolesList   = Application["RolesList"] as List <Roles>;
            var currentRole = (Roles)rolesList.SingleOrDefault(u => u.Name.ToLower() == user.Role.ToLower());

            var withoutMoney = Convert.ToInt32(cbWithoutMoney.Checked);

            var tbAgreedCostValue = 0.00;
            double.TryParse(tbAgreedCost.Text, out tbAgreedCostValue);

            var tbGruzobozCostValue = 0.00;
            double.TryParse(tbGruzobozCost.Text, out tbGruzobozCostValue);

            var tbDeliveryCostValue = 0.00;
            double.TryParse(tbDeliveryCost.Text, out tbDeliveryCostValue);

            var ticket = new DAL.DataBaseObjects.Tickets
            {
                ID                    = Convert.ToInt32(hfID.Value),
                ChangeDate            = DateTime.Now,
                DeliveryDate          = Convert.ToDateTime(tbDeliveryDate.Text),
                AgreedCost            = Convert.ToDecimal(tbAgreedCostValue),
                Note                  = tbNote.Text,
                RecipientStreetPrefix = ddlRecipientStreetPrefix.SelectedValue,
                RecipientStreet       = TicketsHelper.RecipientStreetCleaner(tbRecipientStreet.Text),
                RecipientStreetNumber = tbRecipientStreetNumber.Text,
                RecipientKorpus       = tbRecipientKorpus.Text,
                RecipientKvartira     = tbRecipientKvartira.Text,
                BoxesNumber           = Convert.ToInt32(tbBoxesNumber.Text),
                RecipientFirstName    = tbRecipientFirstName.Text,
                RecipientLastName     = tbRecipientLastName.Text,
                RecipientThirdName    = tbRecipientThirdName.Text,
                TtnNumber             = tbTtnNumber.Text,
                TtnSeria              = tbTtnSeria.Text,
                OtherDocuments        = tbOtherDocuments.Text,
                RecipientPhone        = tbRecipientPhone.Text,
                RecipientPhoneTwo     = tbRecipientPhone2.Text,
                PassportNumber        = tbPassportNumber.Text,
                PassportSeria         = tbPassportSeria.Text,
                DeliveryCost          = cbIsDeliveryCost.Checked ? Convert.ToDecimal(tbDeliveryCostValue) : 0,
                CityID                = Convert.ToInt32(hfCityID.Value),
                SenderCityID          = Convert.ToInt32(hfSenderCityID.Value),
                SenderStreetName      = tbSenderStreetName.Text,
                SenderStreetNumber    = tbSenderStreetNumber.Text,
                SenderStreetPrefix    = ddlSenderStreetPrefix.SelectedValue,
                SenderHousing         = tbSenderHousing.Text,
                SenderApartmentNumber = tbSenderApartmentNumber.Text,
                WithoutMoney          = withoutMoney,
                NoteChanged           = !string.IsNullOrEmpty(Page.Request.Params["id"]) ? 1 : 0
            };

            Delivery.DAL.DataBaseObjects.Tickets checkTicket = new Delivery.DAL.DataBaseObjects.Tickets();
            checkTicket.ID = ticket.ID;
            checkTicket.GetById();
            if (new UserCost().GetCostByUserID(checkTicket.UserID) == null || Convert.ToDecimal(tbGruzobozCostValue) == 0)
            {
                ticket.GruzobozCost = Convert.ToDecimal(tbGruzobozCostValue);
            }

            //метод на удаление (переход со старой системы заявок)
            if (!lblOldGoods.Visible)
            {
                ticket.AssessedCost = GetAssessedCost();
            }

            #endregion

            if (ddlUserTrack.Visible)
            {
                ticket.TrackIDUser = Convert.ToInt32(ddlUserTrack.SelectedValue);
            }

            #region Обнуление соглассованной стоимости и за доставку при соответствующих условиях
            if (cbAgreedCostIsNull.Checked)
            {
                ticket.AgreedCost = 0;
            }

            if (cbDeliveryCostIsNull.Checked)
            {
                ticket.DeliveryCost = 0;
            }
            #endregion

            #region Запись города
            ticket.CityID = Convert.ToInt32(hfCityID.Value);
            #endregion

            #region Проверки на валидность, фильтрация статуса и курьера
            if (lblAdmissionDate.Text == String.Empty)
            {
                AddGodsInPanel(Convert.ToInt32(hfHowManyControls.Value));
                lblError.Text = "Введите дату!";
                return;
            }

            if (String.IsNullOrEmpty(hfCityID.Value))
            {
                AddGodsInPanel(Convert.ToInt32(hfHowManyControls.Value));
                lblError.Text = "Выберите населенный пункт!";
                return;
            }

            var errorText = TicketsFilter.OverChangeFilter(ref ticket, hfDriverID.Value, hfStatusID.Value, hfStatusDescription.Value, hfAdmissionDate.Value, tbStatusDescription.Text, ddlStatus.SelectedValue, tbDeliveryDate.Text, ddlDrivers.SelectedValue, hfStatusIDOld.Value, currentRole);
            if (errorText != null)
            {
                AddGodsInPanel(Convert.ToInt32(hfHowManyControls.Value));
                lblError.Text = errorText;
                return;
            }
            #endregion

            if (hfWharehouse.Value != "")
            {
                int whVal = 0;
                if (Int32.TryParse(hfWharehouse.Value, out whVal))
                {
                    ticket.WharehouseId = whVal;
                }
            }

            ticket.Update(user.ID, OtherMethods.GetIPAddress(), "UserTicketEdit");
            GoodsCount = GoodsHelper.GoodsCount(hfFullSecureID.Value);
            UpdateGoods(GoodsCount, user.ID);

            FinalyRedirect();
        }