Ejemplo n.º 1
0
        protected void btnChange_OnClick(Object sender, EventArgs e)
        {
            var userInSession = (Users)Session["userinsession"];
            var user          = new Users {
                ID = Convert.ToInt32(tbUID.Text)
            };

            user.GetById();

            if (userInSession.Role != Users.Roles.SuperAdmin.ToString() && (user.Role == Users.Roles.Admin.ToString() || user.Role == Users.Roles.SuperAdmin.ToString()) && user.ID != userInSession.ID)
            {
                lblError.Text     = "Изменять пароль других администраторов может только администратор+!";
                errorDiv.CssClass = "loginError";
                return;
            }


            if (!string.IsNullOrEmpty(user.Password))
            {
                user.Password = OtherMethods.HashPassword(tbNewPassword.Text);
                user.Update(userInSession.ID, OtherMethods.GetIPAddress(), "ChangePasswords");
                lblError.Text     = "Обновлен пароль пользователя: " + user.Name + " " + user.Family + " (" + user.Email + ")";
                errorDiv.CssClass = "loginNotError";
                if (user.Email.Contains("@"))
                {
                    EmailMethods.MailSend("Ваш новый пароль", "Ваш новый пароль: " + tbNewPassword.Text, user.Email);
                }
            }
            else
            {
                lblError.Text     = "Пользователь не найден!";
                errorDiv.CssClass = "loginError";
            }
        }
Ejemplo n.º 2
0
        protected void btnSave_OnClick(Object sender, EventArgs e)
        {
            var param = Context.Items["sacredlink"].ToString();

            if (string.IsNullOrEmpty(param))
            {
                Response.Redirect("~/usernotification/6");
            }
            var base64Email = param.Remove(0, 32);

            byte[] byteEmail = Convert.FromBase64String(base64Email);
            var    email     = System.Text.Encoding.UTF8.GetString(byteEmail);
            var    password  = param.Substring(0, 32);
            var    user      = new Users {
                Email = email
            };

            user.GetByEmail();
            if (user.Password != password || string.IsNullOrEmpty(user.ID.ToString()))
            {
                Response.Redirect("~/usernotification/6");
            }
            else
            {
                user.Password = OtherMethods.HashPassword(tbNewPassword.Text);
                user.Update();
                EmailMethods.MailSend("Ваш новый пароль", "Ваш новый пароль: " + tbNewPassword.Text, user.Email);
                Response.Redirect("~/usernotification/7");
            }
        }
Ejemplo n.º 3
0
 public string WantPayment(string userid, string appkey)
 {
     if (appkey != Globals.Settings.AppServiceSecureKey)
     {
         return("invalid app key");
     }
     try
     {
         var          emails = BackendHelper.TagToValue("want_payment_address").Split(new[] { ',' });
         const string title  = "Поступил новый запрос на расчет";
         var          user   = new Users {
             ID = Convert.ToInt32(userid)
         };
         user.GetById();
         var body = String.Format("От клиента #{0} ({1} {2}, {3})", user.ID, user.Name, user.Family, user.Phone);
         EmailMethods.MailSend(title, body, emails); //отправка емейла кассирам
         var issuancelist = new IssuanceLists()
         {
             UserID = user.ID,
             IssuanceListsStatusID = 1,
             Comment = String.Format("Для клиента #{0} ({1} {2}, {3})", user.ID, user.Name, user.Family, user.Phone)
         };
         string result;
         if (DateTime.Now.Hour < 13)
         {
             issuancelist.IssuanceDate = DateTime.Now;
             result = "ok-now";
         }
         else
         {
             issuancelist.IssuanceDate = DateTime.Now.AddDays(1);
             result = "ok-tommorow";
         }
         issuancelist.Create();
         const string titleForUser = "******";
         var          titleForBody = "Для улучшения качества обслуживания по своевременному расчету по Вашим заявкам, " +
                                     "ввиду: погодных условий, несвоевременной явки клиентов и создания очередей, с 14.01 по 31.01.2016 года" +
                                     " внесены изменения в графике работы бухгалтерии: <br/>" +
                                     "• Заявки, оформленные до 13.00 – расчет на завтра;<br/>" +
                                     "• Заявки, оформленные после 13.00 – расчет на послезавтра;<br/>" +
                                     "В связи с этими изменениями ваша заявка на расчет будет обработана";
         if (result == "ok-tommorow")
         {
             titleForBody += " послезавтра, либо в ближайший рабочий день";
         }
         else
         {
             titleForBody += " завтра, либо в ближайший рабочий день";
         }
         EmailMethods.MailSendHTML(titleForUser, titleForBody, user.Email); //отправка емейла пользователю
         return(result);
     }
     catch (Exception)
     {
         return("invalid data");
     }
 }
Ejemplo n.º 4
0
        public void bntEdit_Click(Object sender, EventArgs e)
        {
            var userSession = (Users)Session["userinsession"];
            var user        = new Users
            {
                ID = userSession.ID
            };

            user.GetById();

            lblError.Text = String.Empty;
            var loginCorrectly = UsersHelper.UserLoginChecker(tbLogin.Text.Trim());
            var emailCorrectly = UsersHelper.UserEmailChecker(tbEmail.Text.Trim());

            var registrationPosible = true;

            if (!emailCorrectly && user.Email != tbEmail.Text)
            {
                lblError.Text      += "Пользователь с таким e-mail'ом уже есть в нашей базе!<br/>";
                registrationPosible = false;
            }

            if (!loginCorrectly && user.Login != tbLogin.Text)
            {
                lblError.Text      += "Пользователь с таким логином уже есть в нашей базе!<br/>";
                registrationPosible = false;
            }

            //окончательная проверка
            if (!registrationPosible)
            {
                return;
            }

            user.Login      = tbLogin.Text.Trim();
            user.Email      = tbEmail.Text.Trim();
            user.Phone      = tbContactPhoneNumbers.Text;
            user.ChangeDate = DateTime.Now;
            user.Update();

            var          body = "Вы изменили личные данные. Ваш логин: " + user.Login + ", ваш е-mail: " + user.Email + ", ваш телефон: " + user.Phone;
            const string subj = "Изменение личных данных";

            EmailMethods.MailSend(subj, body, user.Email);
            Page.Response.Redirect("~/UserUI/Default.aspx");
        }
Ejemplo n.º 5
0
        public void bntCreate_Click(Object sender, EventArgs e)
        {
            var id            = Page.Request.Params["id"];
            var userInSession = (Users)Session["userinsession"];

            if (id == null)
            {
                lblError.Text = String.Empty;
                var loginCorrectly = UsersHelper.UserLoginChecker(tbLogin.Text.Trim());
                var emailCorrectly = UsersHelper.UserEmailChecker(tbEmail.Text.Trim());

                var registrationPosible = true;
                if (!emailCorrectly)
                {
                    lblError.Text      += "Пользователь с таким e-mail'ом уже есть в нашей базе!<br/>";
                    registrationPosible = false;
                }

                if (!loginCorrectly)
                {
                    lblError.Text      += "Пользователь с таким логином уже есть в нашей базе!<br/>";
                    registrationPosible = false;
                }

                //окончательная проверка
                if (!registrationPosible)
                {
                    return;
                }

                var manager = new Users
                {
                    Name       = tbName.Text,
                    Family     = tbFamily.Text,
                    Email      = tbEmail.Text,
                    Login      = tbLogin.Text,
                    Password   = OtherMethods.HashPassword(tbPassword.Text),
                    Status     = Convert.ToInt32(ddlStatus.SelectedValue),
                    Role       = ddlRole.SelectedValue,
                    CreateDate = DateTime.Now,

                    Address      = tbAddress.Text,
                    Phone        = tbPhone.Text,
                    PhoneHome    = tbPhoneHome.Text,
                    PhoneWorkOne = tbPhoneWorkOne.Text,
                    PhoneWorkTwo = tbPhoneWorkTwo.Text,
                    BirthDay     = Convert.ToDateTime(tbBirthDay.Text),
                    DateOfIssue  = Convert.ToDateTime(tbDateOfIssue.Text),

                    PassportSeria       = tbPassportSeria.Text,
                    PassportNumber      = tbPassportNumber.Text,
                    PersonalNumber      = tbPersonalNumber.Text,
                    ROVD                = tbROVD.Text,
                    Validity            = Convert.ToDateTime(tbValidity.Text),
                    RegistrationAddress = tbRegistrationAddress.Text,
                };
                manager.Create();

                var          body = "Вы зарегистрированы на сайте " + BackendHelper.TagToValue("current_app_address") + " в качестве " + manager.Role + ". Ваш логин: " + manager.Login + ", ваш е-mail: " + manager.Email;
                const string subj = "Регистрация нового работника";
                EmailMethods.MailSend(subj, body, manager.Email);
            }
            else
            {
                var manager = new Users {
                    ID = Convert.ToInt32(id)
                };
                manager.GetById();
                var oldRole = manager.Role;
                lblError.Text = String.Empty;
                var loginCorrectly = UsersHelper.UserLoginChecker(tbLogin.Text.Trim());
                var emailCorrectly = UsersHelper.UserEmailChecker(tbEmail.Text.Trim());

                var registrationPosible = true;
                if (!emailCorrectly && manager.Email != tbEmail.Text)
                {
                    lblError.Text      += "Пользователь с таким e-mail'ом уже есть в нашей базе!<br/>";
                    registrationPosible = false;
                }

                if (!loginCorrectly && manager.Login != tbLogin.Text)
                {
                    lblError.Text      += "Пользователь с таким логином уже есть в нашей базе!<br/>";
                    registrationPosible = false;
                }

                //окончательная проверка
                if (!registrationPosible)
                {
                    return;
                }

                manager.Name                  = tbName.Text.Trim();
                manager.Family                = tbFamily.Text.Trim();
                manager.Email                 = tbEmail.Text.Trim();
                manager.Login                 = tbLogin.Text.Trim();
                manager.Status                = Convert.ToInt32(ddlStatus.SelectedValue);
                manager.Role                  = ddlRole.SelectedValue;
                manager.ChangeDate            = DateTime.Now;
                manager.AccessOnlyByWhiteList = cbAccessOnlyByWhiteList.Checked ? 1 : 0;

                manager.Address      = tbAddress.Text;
                manager.Phone        = tbPhone.Text;
                manager.PhoneHome    = tbPhoneHome.Text;
                manager.PhoneWorkOne = tbPhoneWorkOne.Text;
                manager.PhoneWorkTwo = tbPhoneWorkTwo.Text;
                manager.BirthDay     = Convert.ToDateTime(tbBirthDay.Text);
                manager.DateOfIssue  = Convert.ToDateTime(tbDateOfIssue.Text);
                manager.Skype        = tbSkype.Text.Trim();

                manager.PassportSeria       = tbPassportSeria.Text;
                manager.PassportNumber      = tbPassportNumber.Text;
                manager.PersonalNumber      = tbPersonalNumber.Text;
                manager.ROVD                = tbROVD.Text;
                manager.Validity            = Convert.ToDateTime(tbValidity.Text);
                manager.RegistrationAddress = tbRegistrationAddress.Text;
                //если суперадмин - выставляем ему роль суперадмина и статус активировано
                if (oldRole == Users.Roles.SuperAdmin.ToString())
                {
                    divRole.Visible   = false;
                    divStatus.Visible = false;
                    manager.Role      = oldRole;
                }

                manager.Update(userInSession.ID, OtherMethods.GetIPAddress(), "ManagerEdit");

                var          body = "Ваш профиль на " + BackendHelper.TagToValue("current_app_address") + " был изменен. Ваша роль: " + manager.Role + ", ваш логин: " + manager.Login + ", ваш е-mail: " + manager.Email + ", ваше имя: " + manager.Name + ", ваша фамилия: " + manager.Family + ", ваш статус: " + ddlRole.SelectedValue;
                const string subj = "Изменение профиля работника";
                EmailMethods.MailSend(subj, body, manager.Email);
            }
            Page.Response.Redirect("~/ManagerUI/Menu/Souls/ManagersView.aspx");
        }
Ejemplo n.º 6
0
        public List <TicketsCreateResult> CreateTickets(List <TicketToCreate> tickets, int id)
        {
            List <TicketsCreateResult> result = new List <TicketsCreateResult>();

            selectProfilesDataSet = dm.QueryWithReturnDataSet(string.Format("SELECT * FROM `usersprofiles` WHERE `UserID` = {0} AND `StatusID` = 1", id)).Tables[0];
            ////////////////

            string userDiscount;
            int    userID;

            int rowsCount        = 0;
            int rowsSuccessCount = 0;

            var user = new Users
            {
                ID = id
            };

            user.GetById();

            userID = user.ID;

            if (user.Role != Users.Roles.User.ToString())
            {
                userDiscount = "0";
                userID       = 1;
            }
            else
            {
                userDiscount = user.Discount.ToString();
            }

            int num = 0;

            foreach (TicketToCreate row in tickets)
            {
                bool          norm        = true;
                List <string> errors      = new List <string>();
                Tickets       ticket      = new Tickets();
                int?          profileType = null;

                TicketsCreateResult resultTicket = new TicketsCreateResult();
                resultTicket.number = num.ToString();
                num++;

                /// проверка профиля
                foreach (DataRow rowProfile in selectProfilesDataSet.Rows)
                {
                    string selectProfileName = String.IsNullOrEmpty(rowProfile["CompanyName"].ToString())
                        ? String.Format("{0} {1}", rowProfile["FirstName"], rowProfile["LastName"])
                        : rowProfile["CompanyName"].ToString();
                    if (selectProfileName == row.ProfileName)
                    {
                        ticket.UserProfileID = Convert.ToInt32(rowProfile["ID"].ToString());
                        ticket.UserID        =
                            UsersHelper.GetUserIdByUserProfileId(Convert.ToInt32(ticket.UserProfileID));

                        profileType = Convert.ToInt32(rowProfile["TypeID"].ToString());
                        if (profileType == 2)
                        {
                            ticket.PrintNaklInMap = 1;
                            ticket.PrintNakl      = 0;
                        }
                        else
                        {
                            ticket.PrintNaklInMap = 0;
                            ticket.PrintNakl      = 1;
                        }

                        break;
                    }
                }
                if (ticket.UserProfileID == null)
                {
                    norm = false;
                    errors.Add("неверный профиль");
                }
                /// проверка ID города
                ///
                int cityId;
                if (Int32.TryParse(row.CityID, out cityId) != false)
                {
                    if (CityHelper.CityIDToCityName(row.CityID.ToString()) != null)
                    {
                        ticket.CityID = Convert.ToInt32(row.CityID.ToString());
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверный ID города");
                    }
                }
                else
                {
                    norm = false;
                    errors.Add("неверный ID города");
                }
                ///
                /// Проверка типа улицы
                if (row.StreetPrefix == null || RecipientStreetPrefixes.Contains(row.StreetPrefix))
                {
                    ticket.RecipientStreetPrefix = row.StreetPrefix;
                }
                else
                {
                    norm = false;
                    errors.Add("неверный префикс улицы");
                }

                ///
                /// Проверка района
                if (row.StreetName != string.Empty)
                {
                    ticket.RecipientStreet = row.StreetName;
                }
                else
                {
                    norm = false;
                    errors.Add("не введена улица");
                }
                ///
                ///
                int houseNumber;
                if (Int32.TryParse(row.HouseNumber, out houseNumber))
                {
                    ticket.RecipientStreetNumber = houseNumber.ToString();
                }
                else
                {
                    norm = false;
                    errors.Add("неверный номер дома");
                }
                /// Заполнение корпуса и квартиры
                if (row.Korpus != string.Empty)
                {
                    ticket.RecipientKorpus = row.Korpus;
                }
                if (row.Kvartira != string.Empty)
                {
                    ticket.RecipientKvartira = row.Kvartira;
                }
                ///
                /// Проверка фамилии, имени и отчества
                if (row.FirstName == null || row.SecondName == null || row.ThirdName == null ||
                    row.FirstName.Length < 2 || row.SecondName.Length < 2 || row.ThirdName.Length < 2)
                {
                    norm = false;
                    errors.Add("неверные ФИО");
                }
                else
                {
                    ticket.RecipientFirstName = row.FirstName;
                    ticket.RecipientLastName  = row.SecondName;
                    ticket.RecipientThirdName = row.ThirdName;
                }
                ///
                /// Проверка номеров телефона
                string input1 = row.FirstTelefonNumber;
                string input2 = row.SecondTelefonNumber;

                int numMatches1 = 0;
                if (input1 != null)
                {
                    foreach (Match m in Regex.Matches(input1, patternPhone))
                    {
                        numMatches1++;
                    }
                }
                int numMatches2 = 0;
                if (input2 != null)
                {
                    foreach (Match m in Regex.Matches(input2, patternPhone))
                    {
                        numMatches2++;
                    }
                }

                if (row.FirstTelefonNumber == string.Empty || numMatches1 != 1)
                {
                    norm = false;
                    errors.Add("неверный 1 номер телефона");
                }
                else
                {
                    ticket.RecipientPhone = row.FirstTelefonNumber;
                }

                if (row.SecondTelefonNumber != string.Empty && numMatches2 != 1)
                {
                    norm = false;
                    errors.Add("неверный 2 номер телефона");
                }
                else
                {
                    if (row.SecondTelefonNumber != string.Empty)
                    {
                        ticket.RecipientPhoneTwo = row.SecondTelefonNumber;
                    }
                }
                ///
                /// Проверка стоимости доставки для получателя
                string patternCost = @"^\d+,\d{2}$";

                if (row.RecieverCost != string.Empty)
                {
                    //if (Regex.Matches(row.ItemArray[12].ToString(), patternCost).Count == 1)
                    try
                    {
                        ticket.DeliveryCost = Convert.ToDecimal(row.RecieverCost);
                    }
                    catch
                    {
                        norm = false;
                        errors.Add("неверная стоимость для получателя");
                    }
                }
                else
                {
                    ticket.DeliveryCost = 0;
                }
                ///
                /// Проверка товаров
                List <Goods> goods = new List <Goods>();
                if (row.Goods == null || row.Goods.Count == 0)
                {
                    norm = false;
                    errors.Add("не введены товары");
                }
                else
                {
                    foreach (TicketGood good in row.Goods)
                    {
                        if (string.IsNullOrEmpty(good.GoodName) || string.IsNullOrEmpty(good.GoodModel) || string.IsNullOrEmpty(good.GoodCount) || string.IsNullOrEmpty(good.GoodCost))
                        {
                            norm = false;
                            errors.Add("неверно заполнены товары");
                            goods = new List <Goods>();
                            break;
                        }
                        string goodDesc  = good.GoodName;
                        string goodModel = good.GoodModel;
                        string goodCost  = good.GoodCost;
                        string goodCount = good.GoodCount;
                        ///
                        var titleForCheck = new Titles();
                        titleForCheck.Name = goodDesc.Trim();
                        titleForCheck.GetByName();
                        if (titleForCheck.ID == 0)
                        {
                            norm = false;
                            errors.Add("неверно заполнены товары: товар не найден");
                            goods = new List <Goods>();
                            break;
                        }

                        int count;
                        if (Int32.TryParse(goodCount, out count) == false)
                        {
                            norm = false;
                            errors.Add("неверно заполнены товары: не верное количество");
                            goods = new List <Goods>();
                            break;
                        }

                        if (Regex.Matches(goodCost, patternCost).Count != 1)
                        {
                            norm = false;
                            errors.Add("неверно заполнены товары: не верная цена");
                            goods = new List <Goods>();
                            break;
                        }

                        Goods goodCreate = new Goods()
                        {
                            Description = OtherMethods.BeInUseReplace(goodDesc).Trim(),
                            Model       = goodModel.Trim(),
                            Number      = Convert.ToInt32(goodCount),
                            Cost        = Convert.ToDecimal(goodCost)
                        };
                        goods.Add(goodCreate);
                    }
                    ///
                    /// Получение стоимости за товары
                    ticket.AssessedCost = 0;
                    foreach (Goods good in goods)
                    {
                        ticket.AssessedCost += good.Number * good.Cost;
                    }
                    ///
                    /// Проверка количества грузовых мест
                    int boxesNumber;
                    if (row.BoxCount != string.Empty)
                    {
                        if (Int32.TryParse(row.BoxCount, out boxesNumber) != false)
                        {
                            ticket.BoxesNumber = boxesNumber;
                        }
                        else
                        {
                            norm = false;
                            errors.Add("неверно введено количество коробок");
                        }
                    }
                    else
                    {
                        ticket.BoxesNumber = 1;
                    }
                }
                ///
                /// Проверка даты отправки
                //if (Regex.Matches(row.ItemArray[15].ToString(), patternDate).Count == 1)
                //{
                DateTime date1;
                try
                {
                    date1 = Convert.ToDateTime(Convert.ToDateTime(row.SendDate).ToString("dd-MM-yyyy"));

                    DateTime date2 = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("dd-MM-yyyy"));

                    if (ticket.CityID != null)
                    {
                        var city = new City()
                        {
                            ID = Convert.ToInt32(row.CityID)
                        };
                        city.GetById();

                        //var city = allCity.First(u => u.ID == Convert.ToInt32(ticket.CityID));
                        var district = new Districts {
                            ID = Convert.ToInt32(city.DistrictID)
                        };
                        district.GetById();
                        var selectDayOfWeek = Convert.ToDateTime(Convert.ToDateTime(row.SendDate).ToString("dd-MM-yyyy")).DayOfWeek;
                        if ((selectDayOfWeek == DayOfWeek.Monday && district.Monday != 1) ||
                            (selectDayOfWeek == DayOfWeek.Tuesday && district.Tuesday != 1) ||
                            (selectDayOfWeek == DayOfWeek.Wednesday && district.Wednesday != 1) ||
                            (selectDayOfWeek == DayOfWeek.Thursday && district.Thursday != 1) ||
                            (selectDayOfWeek == DayOfWeek.Friday && district.Friday != 1) ||
                            (selectDayOfWeek == DayOfWeek.Saturday && district.Saturday != 1) ||
                            (selectDayOfWeek == DayOfWeek.Sunday && district.Sunday != 1))
                        {
                            norm = false;
                            errors.Add("отправка возможна только в дни отправки");
                        }

                        if (date1 < date2 && ticket.CityID != 11)
                        {
                            norm = false;
                            errors.Add("отправка в города отличные от Минска возможна только на следующий день после создания заявки!");
                        }

                        if (date1 < Convert.ToDateTime(DateTime.Now.ToString("dd-MM-yyyy")) && ticket.CityID == 11)
                        {
                            norm = false;
                            errors.Add("доставка по Минску возможна только с текущего дня и далее!");
                        }

                        ticket.DeliveryDate = date1;
                    }
                }
                catch (Exception)
                {
                    norm = false;
                    errors.Add("неверная дата");
                }
                //}
                //else
                //{
                //norm = false;
                //errors.Add("неверный формат даты отправки");
                //}
                ///
                /// Комментарии
                if (row.Comments != string.Empty)
                {
                    ticket.Note = row.Comments;
                }
                ///
                /// Проверка данных документов
                if (profileType == 2 || profileType == 3)
                {
                    if (Regex.Matches(row.TTNSeria, patternTTNSeria).Count == 1)
                    {
                        ticket.TtnSeria = row.TTNSeria;
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверно введена ТТН серия");
                    }

                    if (Regex.Matches(row.TTNNmber, patternTTNNumber).Count == 1)
                    {
                        ticket.TtnNumber = row.TTNNmber;
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверно введен ТТН номер");
                    }
                }
                else
                {
                    ticket.TtnNumber = string.Empty;
                    ticket.TtnSeria  = string.Empty;
                }

                ticket.OtherDocuments = row.OtherDocuments;
                ///
                /// Проверка серии и номера паспорта
                if (!string.IsNullOrEmpty(ticket.PassportNumber) || !string.IsNullOrEmpty(ticket.PassportSeria))
                {
                    if (Regex.Matches(row.PassportSeria, patternTTNSeria).Count == 1)
                    {
                        ticket.PassportSeria = row.PassportSeria;
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверно введена серия паспорта");
                    }

                    if (Regex.Matches(row.PassportNumber, patternTTNNumber).Count == 1)
                    {
                        ticket.PassportNumber = row.PassportNumber;
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверно введен номер паспорта");
                    }
                }
                ///
                /// Подсчет стоимости за услугу
                List <GoodsFromAPI> goodsAPI = new List <GoodsFromAPI>();
                foreach (Goods good in goods)
                {
                    GoodsFromAPI goodAPI = new GoodsFromAPI()
                    {
                        Description = good.Description,
                        Number      = good.Number
                    };
                    goodsAPI.Add(goodAPI);
                }

                if (goodsAPI.Count > 0)
                {
                    var gruzobozCost = Calculator.Calculate(goodsAPI, Convert.ToInt32(ticket.CityID), userID, Convert.ToInt32(ticket.UserProfileID), profileType.ToString(), ticket.AssessedCost.ToString(), Convert.ToInt32(userDiscount));
                    //если стоимость за услугу не конвертируется в decimal - значит записываем 0
                    try
                    {
                        ticket.GruzobozCost = Decimal.Parse(gruzobozCost);
                    }
                    catch (Exception)
                    {
                        ticket.GruzobozCost = 0;
                    }
                    ///
                    /// Расчет веса
                    ticket.Weight = GoodsHelper.GoodsWeight(goodsAPI);
                }

                ///
                /// Заполнение полей склада
                if (warehouses.Rows.Count == 0)
                {
                    norm = false;
                    errors.Add("ошибка склада");
                }
                DataRow rowWareHouses = warehouses.Rows[0];

                if (ticket.SenderCityID != null || !string.IsNullOrEmpty(ticket.SenderHousing) || !string.IsNullOrEmpty(ticket.SenderStreetName) ||
                    !string.IsNullOrEmpty(ticket.SenderStreetNumber) || !string.IsNullOrEmpty(ticket.SenderStreetPrefix) || !string.IsNullOrEmpty(ticket.SenderApartmentNumber))
                {
                    ticket.SenderApartmentNumber = rowWareHouses["ApartmentNumber"].ToString();
                    ticket.SenderCityID          = Convert.ToInt32(rowWareHouses["CityID"].ToString());
                    ticket.SenderHousing         = rowWareHouses["Housing"].ToString();
                    ticket.SenderStreetName      = rowWareHouses["StreetName"].ToString();
                    ticket.SenderStreetNumber    = rowWareHouses["StreetNumber"].ToString();
                    ticket.SenderStreetPrefix    = rowWareHouses["StreetPrefix"].ToString();
                }
                else
                {
                    if (Int32.TryParse(row.SenderCityID, out cityId) != false)
                    {
                        if (CityHelper.CityIDToCityName(row.SenderCityID.ToString()) != null)
                        {
                            ticket.SenderCityID = Convert.ToInt32(row.SenderCityID.ToString());
                        }
                        else
                        {
                            norm = false;
                            errors.Add("неверный ID города отправки");
                        }
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверный ID города");
                    }
                    ///
                    /// Проверка типа улицы
                    if (RecipientStreetPrefixes.Contains(row.SenderStreetPrefix))
                    {
                        ticket.SenderStreetPrefix = row.SenderStreetPrefix;
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверный префикс улицы отправки");
                    }

                    ///
                    /// Проверка района
                    if (row.SenderStreetName != string.Empty)
                    {
                        ticket.SenderStreetName = row.SenderStreetName;
                    }
                    else
                    {
                        norm = false;
                        errors.Add("не введена улица отправки");
                    }
                    ///
                    ///
                    if (Int32.TryParse(row.SenderHouseNumber, out houseNumber))
                    {
                        ticket.SenderStreetNumber = houseNumber.ToString();
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверный номер дома отправки");
                    }
                    /// Заполнение корпуса и квартиры
                    if (row.SenderKorpus != string.Empty)
                    {
                        ticket.SenderHousing = row.SenderKorpus;
                    }
                    if (row.Kvartira != string.Empty)
                    {
                        ticket.SenderApartmentNumber = row.SenderKvartira;
                    }
                }


                ///
                /// СОЗДАНИЕ ЗАЯВКИ
                ///

                string error = string.Empty;
                foreach (string errorMsg in errors)
                {
                    error += errorMsg;
                    error += ", ";
                }
                rowsError.Add(error);

                if (norm == true)
                {
                    try
                    {
                        rowsSuccessCount++;

                        //записываем хеши для заявки
                        if (user.Role != Users.Roles.User.ToString())
                        {
                            ticket.SecureID     = OtherMethods.CreateUniqId("1" + DateTime.Now.ToString("yyMdHms") + tickets.IndexOf(row));
                            ticket.FullSecureID = OtherMethods.CreateFullUniqId("1" + DateTime.Now.ToString("yyMdHms") + tickets.IndexOf(row));
                        }
                        else
                        {
                            ticket.SecureID     = OtherMethods.CreateUniqId(user.ID + DateTime.Now.ToString("yyMdHms") + tickets.IndexOf(row));
                            ticket.FullSecureID = OtherMethods.CreateFullUniqId(user.ID + DateTime.Now.ToString("yyMdHms") + tickets.IndexOf(row));
                        }

                        resultTicket.ID = ticket.SecureID;


                        for (int j = 0; j < goods.Count; j++) //сохраняем заявки
                        {
                            goods[j].TicketFullSecureID = ticket.FullSecureID;
                            goods[j].Create();
                        }
                        ticket.Create();
                        #region Отправка емейла логистам

                        var logistRb      = BackendHelper.TagToValue("logist_rb_email");
                        var logistMinsk   = BackendHelper.TagToValue("logist_minsk_email");
                        var isMinskRegion = BackendHelper.TagToValue("logist_minsk_region");
                        var senderCity    = new City {
                            ID = Convert.ToInt32(ticket.SenderCityID)
                        };
                        senderCity.GetById();

                        if (isMinskRegion != "true")
                        {
                            if (!string.IsNullOrEmpty(logistRb) && senderCity.DistrictID != 10)
                            {
                                try
                                {
                                    EmailMethods.MailSend("Создана новая заявка с забором в РБ",
                                                          String.Format("Заявка #{0}, {1}", ticket.SecureID, senderCity.Name), logistRb, true);
                                }
                                catch (Exception)
                                {
                                    // ignored
                                }
                            }
                            else
                            {
                                if (!string.IsNullOrEmpty(logistMinsk) && !(ticket.SenderCityID == 11 && ticket.SenderStreetName.ToLower() == BackendHelper.TagToValue("loading_point_street").ToLower() &&
                                                                            ticket.SenderStreetNumber == BackendHelper.TagToValue("loading_point_street_number")))
                                {
                                    try
                                    {
                                        EmailMethods.MailSend("Создана новая заявка с забором в Минске и районе",
                                                              String.Format("Заявка #{0}, {1}", ticket.SecureID, senderCity.Name), logistMinsk, true);
                                    }
                                    catch (Exception)
                                    {
                                        // ignored
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(logistRb) && senderCity.RegionID != 1)
                            {
                                try
                                {
                                    EmailMethods.MailSend("Создана новая заявка с забором в РБ",
                                                          String.Format("Заявка #{0}, {1}", ticket.SecureID, senderCity.Name), logistRb, true);
                                }
                                catch (Exception)
                                {
                                    // ignored
                                }
                            }
                            else
                            {
                                if (!string.IsNullOrEmpty(logistMinsk) && !(ticket.SenderCityID == 11 && ticket.SenderStreetName.ToLower() == BackendHelper.TagToValue("loading_point_street") &&
                                                                            ticket.SenderStreetNumber == BackendHelper.TagToValue("loading_point_street_number")))
                                {
                                    try
                                    {
                                        EmailMethods.MailSend("Создана новая заявка с забором в Минске и области",
                                                              String.Format("Заявка #{0}, {1}", ticket.SecureID, senderCity.Name), logistMinsk, true);
                                    }
                                    catch (Exception)
                                    {
                                        // ignored
                                    }
                                }
                            }
                        }
                        #endregion

                        resultTicket.desc = "Заявка создана";
                    }
                    catch (Exception ex)
                    {
                        resultTicket.desc = "Заявка не создана";
                    }
                }
                else
                {
                    resultTicket.desc = error;
                }

                result.Add(resultTicket);
            }


            ////////////////

            return(result);
        }
Ejemplo n.º 7
0
        protected void ImportXLS_Click(object sender, EventArgs e)
        {
            DataSet result = new DataSet();
            string  message;

            if (FileUploader.HasFile)
            {
                result = ReadXLSMethods.ReadXLS(FileUploader.PostedFile.InputStream);
                if (result.Tables.Count == 0)
                {
                    labelStatus.Text = "Неверный тип файла";
                    return;
                }

                var    id            = Page.Request.Params["id"];
                var    userInSession = (Users)Session["userinsession"];
                string userDiscount;
                int    userID;

                int rowsCount        = 0;
                int rowsSuccessCount = 0;

                var user = new Users
                {
                    ID       = UserID,
                    Login    = userInSession.Login,
                    Email    = userInSession.Email,
                    Name     = userInSession.Name,
                    Family   = userInSession.Family,
                    Role     = userInSession.Role,
                    RussRole = UsersHelper.RoleToRuss(userInSession.Role),
                    IsCourse = userInSession.IsCourse
                };
                userID = user.ID;

                if (user.Role != Users.Roles.User.ToString())
                {
                    userDiscount = "0";
                    userID       = 1;
                }
                else
                {
                    userDiscount = user.Discount.ToString();
                }

                int i = 0;
                result.Tables[0].Columns.Add(new DataColumn());
                result.Tables[0].Columns.Add(new DataColumn());
                foreach (DataColumn column in result.Tables[0].Columns)
                {
                    column.ColumnName = i++.ToString();
                }

                if (result.Tables[0].Columns.Count < 22)
                {
                    labelStatus.Text = "Недостаточное количество колонок в таблице";
                    return;
                }

                if (result.Tables[0].Rows.Count == 0)
                {
                    labelStatus.Text = "Пустая таблица";
                    return;
                }

                rowsCount = result.Tables[0].Rows.Count;

                foreach (DataRow row in result.Tables[0].Rows)
                {
                    bool          norm        = true;
                    List <string> errors      = new List <string>();
                    Tickets       ticket      = new Tickets();
                    int?          profileType = null;

                    /// проверка профиля
                    foreach (DataRow rowProfile in selectProfilesDataSet.Rows)
                    {
                        string selectProfileName = String.IsNullOrEmpty(rowProfile["CompanyName"].ToString())
                            ? String.Format("{0} {1}", rowProfile["FirstName"], rowProfile["LastName"])
                            : rowProfile["CompanyName"].ToString();
                        if (selectProfileName == row.ItemArray[0].ToString())
                        {
                            ticket.UserProfileID = Convert.ToInt32(rowProfile["ID"].ToString());
                            ticket.UserID        =
                                UsersHelper.GetUserIdByUserProfileId(Convert.ToInt32(ticket.UserProfileID));

                            profileType = Convert.ToInt32(rowProfile["TypeID"].ToString());
                            if (profileType == 2)
                            {
                                ticket.PrintNaklInMap = 1;
                                ticket.PrintNakl      = 0;
                            }
                            else
                            {
                                ticket.PrintNaklInMap = 0;
                                ticket.PrintNakl      = 1;
                            }

                            break;
                        }
                    }
                    if (ticket.UserProfileID == null)
                    {
                        norm = false;
                        errors.Add("неверный профиль");
                    }
                    /// проверка ID города
                    ///
                    int cityId;
                    if (Int32.TryParse(row.ItemArray[1].ToString(), out cityId) != false)
                    {
                        if (CityHelper.CityIDToCityName(row.ItemArray[1].ToString()) != null)
                        {
                            ticket.CityID = Convert.ToInt32(row.ItemArray[1].ToString());
                        }
                        else
                        {
                            norm = false;
                            errors.Add("неверный ID города");
                        }
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверный ID города");
                    }
                    ///
                    /// Проверка типа улицы
                    if (RecipientStreetPrefixes.Contains(row.ItemArray[2].ToString()))
                    {
                        ticket.RecipientStreetPrefix = row.ItemArray[2].ToString();
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверный префикс улицы");
                    }

                    ///
                    /// Проверка района
                    if (row.ItemArray[3].ToString() != string.Empty)
                    {
                        ticket.RecipientStreet = row.ItemArray[3].ToString();
                    }
                    else
                    {
                        norm = false;
                        errors.Add("не введена улица");
                    }
                    ///
                    ///
                    int houseNumber;
                    if (Int32.TryParse(row.ItemArray[4].ToString(), out houseNumber) == true)
                    {
                        ticket.RecipientStreetNumber = houseNumber.ToString();
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверный номер дома");
                    }
                    /// Заполнение корпуса и квартиры
                    if (row.ItemArray[5].ToString() != string.Empty)
                    {
                        ticket.RecipientKorpus = row.ItemArray[5].ToString();
                    }
                    if (row.ItemArray[6].ToString() != string.Empty)
                    {
                        ticket.RecipientKvartira = row.ItemArray[6].ToString();
                    }
                    ///
                    /// Проверка фамилии, имени и отчества
                    if (row.ItemArray[7].ToString().Length < 2 || row.ItemArray[8].ToString().Length < 2 || row.ItemArray[9].ToString().Length < 2)
                    {
                        norm = false;
                        errors.Add("неверные ФИО");
                    }
                    else
                    {
                        ticket.RecipientFirstName = row.ItemArray[7].ToString();
                        ticket.RecipientLastName  = row.ItemArray[8].ToString();
                        ticket.RecipientThirdName = row.ItemArray[9].ToString();
                    }
                    ///
                    /// Проверка номеров телефона
                    string input1 = row.ItemArray[10].ToString();
                    string input2 = row.ItemArray[11].ToString();

                    int numMatches1 = 0;
                    foreach (Match m in Regex.Matches(input1, patternPhone))
                    {
                        numMatches1++;
                    }
                    int numMatches2 = 0;
                    foreach (Match m in Regex.Matches(input2, patternPhone))
                    {
                        numMatches2++;
                    }

                    if (row.ItemArray[10].ToString() == string.Empty || numMatches1 != 1)
                    {
                        norm = false;
                        errors.Add("неверный 1 номер телефона");
                    }
                    else
                    {
                        ticket.RecipientPhone = row.ItemArray[10].ToString();
                    }

                    if (row.ItemArray[11].ToString() != string.Empty && numMatches2 != 1)
                    {
                        norm = false;
                        errors.Add("неверный 2 номер телефона");
                    }
                    else
                    {
                        if (row.ItemArray[11].ToString() != string.Empty)
                        {
                            ticket.RecipientPhoneTwo = row.ItemArray[11].ToString();
                        }
                    }
                    ///
                    /// Проверка стоимости доставки для получателя
                    string patternCost = @"^\d+,\d{2}$";

                    if (row.ItemArray[12].ToString() != string.Empty)
                    {
                        //if (Regex.Matches(row.ItemArray[12].ToString(), patternCost).Count == 1)
                        try
                        {
                            ticket.DeliveryCost = Convert.ToDecimal(row.ItemArray[12].ToString());
                        }
                        catch
                        {
                            norm = false;
                            errors.Add("неверная стоимость для получателя");
                        }
                    }
                    else
                    {
                        ticket.DeliveryCost = 0;
                    }
                    ///
                    /// Проверка товаров
                    List <Goods>  goods    = new List <Goods>();
                    List <string> goodsStr = row.ItemArray[13].ToString().Split(';').ToList();
                    if (goodsStr.Count == 0)
                    {
                        norm = false;
                        errors.Add("не введены товары");
                    }
                    foreach (string goodStr in goodsStr)
                    {
                        List <string> goodParams = goodStr.Split('|').ToList();
                        if (goodParams.Count != 4)
                        {
                            norm = false;
                            errors.Add("неверно заполнены товары");
                            goods = new List <Goods>();
                            break;
                        }
                        string goodDesc  = goodParams[0];
                        string goodModel = goodParams[1];
                        string goodCost  = goodParams[2];
                        string goodCount = goodParams[3];
                        ///
                        var titleForCheck = new Titles();
                        titleForCheck.Name = goodDesc.Trim();
                        titleForCheck.GetByName();
                        if (titleForCheck.ID == 0)
                        {
                            norm = false;
                            errors.Add("неверно заполнены товары");
                            goods = new List <Goods>();
                            break;
                        }

                        int count;
                        if (Int32.TryParse(goodCount, out count) == false)
                        {
                            norm = false;
                            errors.Add("неверно заполнены товары");
                            goods = new List <Goods>();
                            break;
                        }

                        if (Regex.Matches(goodCost, patternCost).Count != 1)
                        {
                            norm = false;
                            errors.Add("неверно заполнены товары");
                            goods = new List <Goods>();
                            break;
                        }

                        Goods good = new Goods()
                        {
                            Description = OtherMethods.BeInUseReplace(goodDesc).Trim(),
                            Model       = goodModel.Trim(),
                            Number      = Convert.ToInt32(goodCount),
                            Cost        = Convert.ToDecimal(goodCost)
                        };
                        goods.Add(good);
                    }
                    ///
                    /// Получение стоимости за товары
                    ticket.AssessedCost = 0;
                    foreach (Goods good in goods)
                    {
                        ticket.AssessedCost += good.Number * good.Cost;
                    }
                    ///
                    /// Проверка количества грузовых мест
                    int boxesNumber;
                    if (row.ItemArray[14].ToString() != string.Empty)
                    {
                        if (Int32.TryParse(row.ItemArray[14].ToString(), out boxesNumber) != false)
                        {
                            ticket.BoxesNumber = boxesNumber;
                        }
                        else
                        {
                            norm = false;
                            errors.Add("неверно введено количество коробок");
                        }
                    }
                    else
                    {
                        ticket.BoxesNumber = 1;
                    }
                    ///
                    /// Проверка даты отправки
                    //if (Regex.Matches(row.ItemArray[15].ToString(), patternDate).Count == 1)
                    //{
                    DateTime date1;
                    try
                    {
                        date1 = Convert.ToDateTime(Convert.ToDateTime(row.ItemArray[15].ToString()).ToString("dd-MM-yyyy"));

                        DateTime date2 = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("dd-MM-yyyy"));

                        if (ticket.CityID != null)
                        {
                            var allCity  = Application["CityList"] as List <City>;
                            var city     = allCity.First(u => u.ID == Convert.ToInt32(ticket.CityID));
                            var district = new Districts {
                                ID = Convert.ToInt32(city.DistrictID)
                            };
                            district.GetById();
                            var selectDayOfWeek = Convert.ToDateTime(Convert.ToDateTime(row.ItemArray[15].ToString()).ToString("dd-MM-yyyy")).DayOfWeek;
                            if ((selectDayOfWeek == DayOfWeek.Monday && district.Monday != 1) ||
                                (selectDayOfWeek == DayOfWeek.Tuesday && district.Tuesday != 1) ||
                                (selectDayOfWeek == DayOfWeek.Wednesday && district.Wednesday != 1) ||
                                (selectDayOfWeek == DayOfWeek.Thursday && district.Thursday != 1) ||
                                (selectDayOfWeek == DayOfWeek.Friday && district.Friday != 1) ||
                                (selectDayOfWeek == DayOfWeek.Saturday && district.Saturday != 1) ||
                                (selectDayOfWeek == DayOfWeek.Sunday && district.Sunday != 1))
                            {
                                norm = false;
                                errors.Add("отправка возможна только в дни отправки");
                            }

                            if (date1 < date2 && ticket.CityID != 11)
                            {
                                norm = false;
                                errors.Add("отправка в города отличные от Минска возможна только на следующий день после создания заявки!");
                            }

                            if (date1 < Convert.ToDateTime(DateTime.Now.ToString("dd-MM-yyyy")) && ticket.CityID == 11)
                            {
                                norm = false;
                                errors.Add("доставка по Минску возможна только с текущего дня и далее!");
                            }

                            ticket.DeliveryDate = date1;
                        }
                    }
                    catch (Exception)
                    {
                        norm = false;
                        errors.Add("неверная дата");
                    }
                    //}
                    //else
                    //{
                    //norm = false;
                    //errors.Add("неверный формат даты отправки");
                    //}
                    ///
                    /// Комментарии
                    if (row.ItemArray[16].ToString() != string.Empty)
                    {
                        ticket.Note = row.ItemArray[16].ToString();
                    }
                    ///
                    /// Проверка данных документов
                    if (profileType == 2 || profileType == 3)
                    {
                        if (Regex.Matches(row.ItemArray[17].ToString(), patternTTNSeria).Count == 1)
                        {
                            ticket.TtnSeria = row.ItemArray[17].ToString();
                        }
                        else
                        {
                            norm = false;
                            errors.Add("неверно введена ТТН серия");
                        }

                        if (Regex.Matches(row.ItemArray[18].ToString(), patternTTNNumber).Count == 1)
                        {
                            ticket.TtnNumber = row.ItemArray[18].ToString();
                        }
                        else
                        {
                            norm = false;
                            errors.Add("неверно введен ТТН номер");
                        }
                    }
                    else
                    {
                        ticket.TtnNumber = string.Empty;
                        ticket.TtnSeria  = string.Empty;
                    }

                    ticket.OtherDocuments = row.ItemArray[19].ToString();
                    ///
                    /// Проверка серии и номера паспорта
                    if (Regex.Matches(row.ItemArray[20].ToString(), patternTTNSeria).Count == 1)
                    {
                        ticket.PassportSeria = row.ItemArray[20].ToString();
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверно введена серия паспорта");
                    }

                    if (Regex.Matches(row.ItemArray[21].ToString(), patternTTNNumber).Count == 1)
                    {
                        ticket.PassportNumber = row.ItemArray[21].ToString();
                    }
                    else
                    {
                        norm = false;
                        errors.Add("неверно введен номер паспорта");
                    }
                    ///
                    /// Подсчет стоимости за услугу
                    List <GoodsFromAPI> goodsAPI = new List <GoodsFromAPI>();
                    foreach (Goods good in goods)
                    {
                        GoodsFromAPI goodAPI = new GoodsFromAPI()
                        {
                            Description = good.Description,
                            Number      = good.Number
                        };
                        goodsAPI.Add(goodAPI);
                    }

                    if (goodsAPI.Count > 0)
                    {
                        var gruzobozCost = Calculator.Calculate(goodsAPI, Convert.ToInt32(ticket.CityID), userID, Convert.ToInt32(ticket.UserProfileID), profileType.ToString(), ticket.AssessedCost.ToString(), Convert.ToInt32(userDiscount));
                        //если стоимость за услугу не конвертируется в decimal - значит записываем 0
                        try
                        {
                            ticket.GruzobozCost = Decimal.Parse(gruzobozCost);
                        }
                        catch (Exception)
                        {
                            ticket.GruzobozCost = 0;
                        }
                        ///
                        /// Расчет веса
                        ticket.Weight = GoodsHelper.GoodsWeight(goodsAPI);
                    }

                    ///
                    /// Заполнение полей склада
                    if (warehouses.Rows.Count == 0)
                    {
                        norm = false;
                        errors.Add("ошибка склада");
                    }
                    DataRow rowWareHouses = warehouses.Rows[0];

                    ticket.SenderApartmentNumber = rowWareHouses["ApartmentNumber"].ToString();
                    ticket.SenderCityID          = Convert.ToInt32(rowWareHouses["CityID"].ToString());
                    ticket.SenderHousing         = rowWareHouses["Housing"].ToString();
                    ticket.SenderStreetName      = rowWareHouses["StreetName"].ToString();
                    ticket.SenderStreetNumber    = rowWareHouses["StreetNumber"].ToString();
                    ticket.SenderStreetPrefix    = rowWareHouses["StreetPrefix"].ToString();
                    ///
                    /// СОЗДАНИЕ ЗАЯВКИ
                    ///

                    string error = string.Empty;
                    foreach (string errorMsg in errors)
                    {
                        error += errorMsg;
                        error += ", ";
                    }
                    rowsError.Add(error);

                    string color;
                    if (errors.Count != 0)
                    {
                        color = "redRow";
                    }
                    else
                    {
                        color = "greenRow";
                    }
                    rowsColor.Add(color);

                    if (norm == true)
                    {
                        if (id == null)
                        {
                            rowsSuccessCount++;

                            //записываем хеши для заявки
                            if (user.Role != Users.Roles.User.ToString())
                            {
                                ticket.SecureID     = OtherMethods.CreateUniqId("1" + DateTime.Now.ToString("yyMdHms"));
                                ticket.FullSecureID = OtherMethods.CreateFullUniqId("1" + DateTime.Now.ToString("yyMdHms"));
                            }
                            else
                            {
                                ticket.SecureID     = OtherMethods.CreateUniqId(user.ID + DateTime.Now.ToString("yyMdHms"));
                                ticket.FullSecureID = OtherMethods.CreateFullUniqId(user.ID + DateTime.Now.ToString("yyMdHms"));
                            }

                            for (int j = 0; j < goods.Count; j++) //сохраняем заявки
                            {
                                goods[j].TicketFullSecureID = ticket.FullSecureID;
                                goods[j].Create();
                            }
                            ticket.Create();
                            #region Отправка емейла логистам

                            var logistRb      = BackendHelper.TagToValue("logist_rb_email");
                            var logistMinsk   = BackendHelper.TagToValue("logist_minsk_email");
                            var isMinskRegion = BackendHelper.TagToValue("logist_minsk_region");
                            var senderCity    = new City {
                                ID = Convert.ToInt32(ticket.SenderCityID)
                            };
                            senderCity.GetById();

                            if (isMinskRegion != "true")
                            {
                                if (!string.IsNullOrEmpty(logistRb) && senderCity.DistrictID != 10)
                                {
                                    try
                                    {
                                        EmailMethods.MailSend("Создана новая заявка с забором в РБ",
                                                              String.Format("Заявка #{0}, {1}", ticket.SecureID, senderCity.Name), logistRb, true);
                                    }
                                    catch (Exception)
                                    {
                                        // ignored
                                    }
                                }
                                else
                                {
                                    if (!string.IsNullOrEmpty(logistMinsk) && !(ticket.SenderCityID == 11 && ticket.SenderStreetName.ToLower() == BackendHelper.TagToValue("loading_point_street").ToLower() &&
                                                                                ticket.SenderStreetNumber == BackendHelper.TagToValue("loading_point_street_number")))
                                    {
                                        try
                                        {
                                            EmailMethods.MailSend("Создана новая заявка с забором в Минске и районе",
                                                                  String.Format("Заявка #{0}, {1}", ticket.SecureID, senderCity.Name), logistMinsk, true);
                                        }
                                        catch (Exception)
                                        {
                                            // ignored
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (!string.IsNullOrEmpty(logistRb) && senderCity.RegionID != 1)
                                {
                                    try
                                    {
                                        EmailMethods.MailSend("Создана новая заявка с забором в РБ",
                                                              String.Format("Заявка #{0}, {1}", ticket.SecureID, senderCity.Name), logistRb, true);
                                    }
                                    catch (Exception)
                                    {
                                        // ignored
                                    }
                                }
                                else
                                {
                                    if (!string.IsNullOrEmpty(logistMinsk) && !(ticket.SenderCityID == 11 && ticket.SenderStreetName.ToLower() == BackendHelper.TagToValue("loading_point_street") &&
                                                                                ticket.SenderStreetNumber == BackendHelper.TagToValue("loading_point_street_number")))
                                    {
                                        try
                                        {
                                            EmailMethods.MailSend("Создана новая заявка с забором в Минске и области",
                                                                  String.Format("Заявка #{0}, {1}", ticket.SecureID, senderCity.Name), logistMinsk, true);
                                        }
                                        catch (Exception)
                                        {
                                            // ignored
                                        }
                                    }
                                }
                            }
                            #endregion
                        }
                    }
                }

                for (int j = 0; j < result.Tables[0].Rows.Count; j++)
                {
                    result.Tables[0].Rows[j][22] = rowsError[j];
                    result.Tables[0].Rows[j][23] = rowsColor[j];
                }

                labelStatus.Text = "Успешно импортировано " + rowsSuccessCount.ToString() +
                                   " из " + rowsCount.ToString() + " заявок";
                ListXML.DataSource = result.Tables[0];
                ListXML.DataBind();
            }
        }