public void GetMoney(string query)
        {
            var searchString = query;
            var dm           = new DataManager();
            var eur          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedEUR`) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var usd          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedUSD`) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var rur          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedRUR`) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);

            var allInBLR        = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM((`ReceivedUSD`*`CourseUSD`)+(`ReceivedRUR`*`CourseRUR`)+(`ReceivedEUR`*`CourseEUR`)) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allGruzobozCost = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(`GruzobozCost`) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allAssessedCost = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(`AssessedCost` + `DeliveryCost`) " + searchString + " AND `AgreedCost` = 0").Tables[0].Rows[0][0], CultureInfo.CurrentCulture);

            //если нет согласованных стоимостей - записываем ее равной 0
            var allAgreedCostString =
                Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(`AgreedCost` + `DeliveryCost`) " + searchString +
                                                           " AND `AgreedCost` > 0").Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allAgreedCost = !String.IsNullOrEmpty(allAgreedCostString) ? allAgreedCostString : "0";

            double allAssessedCostValue = 0.0;

            Double.TryParse(allAssessedCost, out allAssessedCostValue);

            double allAgreedCostValue = 0.0;

            Double.TryParse(allAgreedCost, out allAgreedCostValue);


            var allAgreedAssessedCostValue = allAssessedCostValue + allAgreedCostValue;
            //к выдаче

            double allGruzobozCostValue = 0.0;

            Double.TryParse(allGruzobozCost, out allGruzobozCostValue);

            double allInBLRValue = 0.0;

            Double.TryParse(allInBLR, out allInBLRValue);

            var overToIssuance       = allAgreedAssessedCostValue - allGruzobozCostValue - allInBLRValue;
            var overToIssuanceString = String.Empty;

            if (overToIssuance > 0)
            {
                overToIssuanceString = "<b>" + MoneyMethods.MoneySeparator(overToIssuance.ToString()) + "</b> BLR;";
            }
            else
            {
                overToIssuanceString = "<b>0</b> BLR (+ забрать у клиента <span style =\"color: red; font-weight: bold;\">" + MoneyMethods.MoneySeparator(overToIssuance.ToString().Replace("-", "")) + "</span> BLR);";
            }

            lblReceivedBLRUser.Text = overToIssuanceString;


            lblReceivedEUROver.Text = lblReceivedEURUser.Text = MoneyMethods.MoneySeparator(eur);
            lblReceivedRUROver.Text = lblReceivedRURUser.Text = MoneyMethods.MoneySeparator(rur);
            lblReceivedUSDOver.Text = lblReceivedUSDUser.Text = MoneyMethods.MoneySeparator(usd);

            lblReceivedBLROverWithCourse.Text = MoneyMethods.MoneySeparator(allInBLR);
            lblOverGruzobozCost.Text          = MoneyMethods.MoneySeparator(allGruzobozCost);
        }
示例#2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            AppKey = Globals.Settings.AppServiceSecureKey;
            var controlTicketID = String.Empty;
            var idListString    = Request.QueryString["id"];

            if (!String.IsNullOrEmpty(idListString))
            {
                var deliveryCost = 0.00;

                List <string> idList    = idListString.Split('-').ToList();
                var           sqlString = String.Empty;
                foreach (var id in idList)
                {
                    sqlString       = sqlString + "T.ID = " + id + " OR ";
                    controlTicketID = id;

                    double cost;
                    if (double.TryParse(MoneyMethods.AgreedAssessedDeliveryCosts(id.ToString()), out cost))
                    {
                        deliveryCost += cost;
                    }
                }
                var fullSqlString = "SELECT * FROM `tickets` as T JOIN `city` as C on T.CityID = C.ID WHERE " + sqlString.Remove(sqlString.Length - 3) + "ORDER BY C.Name ASC";
                var dm            = new DataManager();
                var dataset       = dm.QueryWithReturnDataSet(fullSqlString);
                lblGruzobozCost.Text = MoneyMethods.MoneySeparator(
                    dm.QueryWithReturnDataSet("SELECT SUM(T.`GruzobozCost`) FROM `tickets` as T JOIN `city` as C on T.CityID = C.ID WHERE " + sqlString.Remove(sqlString.Length - 3)).Tables[0].Rows[0][0].ToString());

                lblDeliveryCost.Text = MoneyMethods.MoneySeparator(deliveryCost);

                var i = 1;
                dataset.Tables[0].Columns.Add("PNumber", typeof(String));
                foreach (DataRow row in dataset.Tables[0].Rows)
                {
                    row["PNumber"] = i++;
                }
                lvAllPrint.DataSource = dataset;
                lvAllPrint.DataBind();

                var ticket = new Tickets {
                    ID = Convert.ToInt32(controlTicketID)
                };
                ticket.GetById();
                DriverName          = lblDriver.Text = DriversHelper.DriverIDToFioToPrint(ticket.DriverID.ToString());
                lblDriverPhone.Text = DriversHelper.DriverIDToPhone(ticket.DriverID.ToString());

                lblTrack.Text         = lblTrack2.Text = CityHelper.CityToTrack(Convert.ToInt32(ticket.CityID), ticket.ID.ToString());
                lblOperatorName.Text  = CityHelper.CityToTrackOperatorName(Convert.ToInt32(ticket.CityID));
                lblOperatorPhone.Text = CityHelper.CityToTrackOperatorPhone(Convert.ToInt32(ticket.CityID));
            }

            lblDate.Text = DateTime.Now.AddDays(1).ToString("dd.MM.yyyy");

            if (String.IsNullOrEmpty(idListString) || lvAllPrint.Items.Count == 0)
            {
                Page.Visible = false;
                Response.Write(Resources.PrintResources.PrintMapEmptyText);
            }
        }
示例#3
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            tbWeight.Text = MoneyMethods.MoneySeparator(WeightValue);
            var userInSession = (Users)Session["userinsession"];
            var rolesList     = Application["RolesList"] as List <Roles>;
            var currentRole   = (Roles)rolesList.SingleOrDefault(u => u.Name.ToLower() == userInSession.Role.ToLower());

            if (currentRole.ActionControlWeight != 1)
            {
                tbWeight.Enabled = false;
            }
        }
示例#4
0
        public void GetMoney(string query)
        {
            var searchString = "FROM (" + query + ") as R";
            var dm           = new DataManager();
            var eur          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(ReceivedEUR) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var usd          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(ReceivedUSD) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var rur          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(ReceivedRUR) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);

            var allInBLR        = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(ReceivedUSD * CourseUSD + ReceivedRUR * CourseRUR + ReceivedEUR * CourseEUR) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allGruzobozCost = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(GruzobozCost) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allAssessedCost = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(AssessedCost + DeliveryCost) " + searchString + " Where AgreedCost = 0 AND WithoutMoney = 0").Tables[0].Rows[0][0], CultureInfo.CurrentCulture);

            //если нет согласованных стоимостей - записываем ее равной 0
            var allAgreedCostString =
                Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(AgreedCost) " + searchString +
                                                           " Where (AgreedCost > 0 OR WithoutMoney = 1)").Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allAgreedCost = !String.IsNullOrEmpty(allAgreedCostString) ? allAgreedCostString : "0";

            double allAssessedCostValue = 0.0;

            Double.TryParse(allAssessedCost, out allAssessedCostValue);

            double allAgreedCostValue = 0.0;

            Double.TryParse(allAgreedCost, out allAgreedCostValue);


            var allAgreedAssessedCostValue = allAssessedCostValue + allAgreedCostValue;
            //к выдаче

            double allGruzobozCostValue = 0.0;

            Double.TryParse(allGruzobozCost, out allGruzobozCostValue);

            double allInBLRValue = 0.0;

            Double.TryParse(allInBLR, out allInBLRValue);

            var overToIssuance       = allAgreedAssessedCostValue - allInBLRValue - ((sddlProfileType.SelectedValue != "0" && !String.IsNullOrEmpty(sddlProfileType.SelectedValue) && sddlProfileType.SelectedValue == "3") ? 0 : allGruzobozCostValue);
            var overToIssuanceString = String.Empty;

            if (overToIssuance > 0)
            {
                overToIssuanceString = "<b>" + MoneyMethods.MoneySeparator(overToIssuance.ToString()) + "</b> BLR";
            }
            else
            {
                overToIssuanceString = "<b>0</b> BLR (+ забрать у клиента <span style =\"color: red; font-weight: bold;\">" + MoneyMethods.MoneySeparator(overToIssuance.ToString().Replace("-", "")) + "</span> BLR)";
            }

            lblReceivedBLRUser.Text  = overToIssuanceString;
            lblOverGruzobozCost.Text = MoneyMethods.MoneySeparator(allGruzobozCost);
        }
示例#5
0
        public String GetSearchString()
        {
            var searchString         = String.Empty;
            var searchDriverIdString = String.Empty;
            var searchDateString     = String.Empty;
            var searchParametres     = new Dictionary <String, String>();

            //формируем строку поика для водителей
            if (sddlDrivers.SelectedValue != "0" && !String.IsNullOrEmpty(sddlDrivers.SelectedValue))
            {
                searchDriverIdString = searchDriverIdString + "`DriverID` = '" + sddlDrivers.SelectedValue + "'";
            }


            var date1 = stbDeliveryDate1.Text.Split('/');
            var date2 = stbDeliveryDate2.Text.Split('/');

            //формируем cтроку для поиска по Date
            if (!string.IsNullOrEmpty(stbDeliveryDate1.Text) && !string.IsNullOrEmpty(stbDeliveryDate2.Text))
            {
                searchDateString = "(`DeliveryDate` BETWEEN '" +
                                   Convert.ToDateTime(stbDeliveryDate1.Text).ToString("yyyy-MM-dd") + "' AND '" +
                                   Convert.ToDateTime(stbDeliveryDate2.Text).ToString("yyyy-MM-dd") + "')";
            }
            else
            {
                if (!string.IsNullOrEmpty(stbDeliveryDate1.Text))
                {
                    searchDateString = "`DeliveryDate` = '" + Convert.ToDateTime(stbDeliveryDate1.Text).ToString("yyyy-MM-dd") + "'";
                }
            }

            //формируем конечный запрос для поиска
            searchParametres.Add("DriverID", searchDriverIdString);
            searchParametres.Add("DeliveryDate", searchDateString);
            var searchStringPart = searchParametres.Where(searchParametre => !string.IsNullOrEmpty(searchParametre.Value)).Aggregate(searchString, (current, searchParametre) => current + searchParametre.Value + " AND ");

            searchString = searchStringPart.Length < 4 ? "FROM tickets WHERE (StatusID = 3 OR StatusID = 5 OR StatusID = 7 OR StatusID = 12)" : String.Format("FROM tickets WHERE (StatusID = 3 OR StatusID = 5 OR StatusID = 7 OR StatusID = 12) AND {0}", searchStringPart.Remove(searchStringPart.Length - 4));

            var dm = new DataManager();
            var allAssessedWithDeliveryCostString = dm.QueryWithReturnDataSet("SELECT SUM(`AssessedCost` + `DeliveryCost`) " + searchString + " AND `AgreedCost` = 0").Tables[0].Rows[0][0].ToString();
            var allAgreedWithDeliveryCostString   = dm.QueryWithReturnDataSet("SELECT SUM(`AgreedCost`) " + searchString + " AND `AgreedCost` > 0 ").Tables[0].Rows[0][0].ToString();

            allAssessedWithDeliveryCostString = allAssessedWithDeliveryCostString == String.Empty ? "0" : allAssessedWithDeliveryCostString;
            allAgreedWithDeliveryCostString   = allAgreedWithDeliveryCostString == String.Empty ? "0" : allAgreedWithDeliveryCostString;
            var allAssessedWithDeliveryCost = Convert.ToDecimal(allAssessedWithDeliveryCostString);
            var allAgreedWithDeliveryCost   = Convert.ToDecimal(allAgreedWithDeliveryCostString);

            AgreedAssessedWithDeliveryCost = MoneyMethods.MoneySeparator(allAssessedWithDeliveryCost + allAgreedWithDeliveryCost);

            return(searchString);
        }
示例#6
0
 protected void Page_Load(object sender, EventArgs e)
 {
     tbPril2Weight.Text = MoneyMethods.MoneySeparator(Pril2Weight);
     if (Pril2Weight == "0" || String.IsNullOrEmpty(Pril2Weight))
     {
         lblPril2Weight.Text = MoneyMethods.MoneySeparator(Weight);
     }
     else
     {
         lblPril2Weight.Text      = MoneyMethods.MoneySeparator(Pril2Weight);
         lblPril2Weight.ForeColor = Color.Red;
     }
 }
        private void GetMoney(string query)
        {
            var searchString   = query;
            var dm             = new DataManager();
            var allEURString   = dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedEUR`) " + searchString).Tables[0].Rows[0][0].ToString();
            var allRURString   = dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedRUR`) " + searchString).Tables[0].Rows[0][0].ToString();
            var allUSDString   = dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedUSD`) " + searchString).Tables[0].Rows[0][0].ToString();
            var allBLRString   = dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedBLR`) " + searchString).Tables[0].Rows[0][0].ToString();
            var allInBLRString = dm.QueryWithReturnDataSet("SELECT SUM((`ReceivedUSD`*`CourseUSD`)+(`ReceivedRUR`*`CourseRUR`)+(`ReceivedEUR`*`CourseEUR`)+`ReceivedBLR`) " + searchString).Tables[0].Rows[0][0].ToString();
            var allAssessedWithDeliveryCostString = dm.QueryWithReturnDataSet("SELECT SUM(`AssessedCost` + `DeliveryCost`) " + searchString + " AND `AgreedCost` = 0").Tables[0].Rows[0][0].ToString();
            var allAgreedWithDeliveryCostString   = dm.QueryWithReturnDataSet("SELECT SUM(`AgreedCost`) " + searchString + " AND `AgreedCost` > 0").Tables[0].Rows[0][0].ToString();

            allEURString   = allEURString == String.Empty ? "0" : allEURString;
            allRURString   = allRURString == String.Empty ? "0" : allRURString;
            allUSDString   = allUSDString == String.Empty ? "0" : allUSDString;
            allBLRString   = allBLRString == String.Empty ? "0" : allBLRString;
            allInBLRString = allInBLRString == String.Empty ? "0" : allInBLRString;
            allAssessedWithDeliveryCostString = allAssessedWithDeliveryCostString == String.Empty ? "0" : allAssessedWithDeliveryCostString;
            allAgreedWithDeliveryCostString   = allAgreedWithDeliveryCostString == String.Empty ? "0" : allAgreedWithDeliveryCostString;


            var allAssessedWithDeliveryCost = Convert.ToDecimal(allAssessedWithDeliveryCostString);
            var allAgreedWithDeliveryCost   = Convert.ToDecimal(allAgreedWithDeliveryCostString);

            var allAgreedAssessedWithDeliveryCost = allAssessedWithDeliveryCost + allAgreedWithDeliveryCost;

            var allBLR = Convert.ToDecimal(allInBLRString);

            var difference = allBLR - allAgreedAssessedWithDeliveryCost;

            var differenceString = String.Empty;

            if (difference > 0)
            {
                differenceString = "<span style =\"color: green;\">" + MoneyMethods.MoneySeparator(difference.ToString()) + "</span>";
            }
            else
            {
                differenceString = "<span style =\"color: red;\">" + MoneyMethods.MoneySeparator(difference.ToString().Replace("-", "")) + "</span>";
            }

            lblReceivedEUROver.Text = MoneyMethods.MoneySeparator(allEURString);
            lblReceivedRUROver.Text = MoneyMethods.MoneySeparator(allRURString);
            lblReceivedUSDOver.Text = MoneyMethods.MoneySeparator(allUSDString);
            lblReceivedBLROver.Text = MoneyMethods.MoneySeparator(allBLRString);

            lblAgreedAssessedCost.Text = MoneyMethods.MoneySeparator(allAgreedAssessedWithDeliveryCost.ToString());
            lblAllReceivedInBLR.Text   = MoneyMethods.MoneySeparator(allBLR.ToString());
            lblDifference.Text         = differenceString;
        }
示例#8
0
        private void GetMoney(string query)
        {
            var searchString          = query;
            var dm                    = new DataManager();
            var allGruzobozCostString = dm.QueryWithReturnDataSet("SELECT SUM(`GruzobozCost`) " + searchString).Tables[0].Rows[0][0].ToString();

            if (allGruzobozCostString == String.Empty)
            {
                allGruzobozCostString = "0";
            }

            var allGruzobozCost = Convert.ToDecimal(allGruzobozCostString);

            lblGruzobozCostOver.Text = MoneyMethods.MoneySeparator(allGruzobozCost.ToString());
        }
示例#9
0
        protected void Page_Load(object sender, EventArgs e)
        {
            OtherMethods.ActiveRightMenuStyleChanche("hlNewsFeed", this.Page);
            Page.Title = PagesTitles.ManagerNewsFromFeedView + BackendHelper.TagToValue("page_title_part");

            var userInSession = (Users)Session["userinsession"];

            if (Request.Params["title"] != null)
            {
                var news = new News {
                    TitleUrl = Request.Params["title"].ToString()
                };
                news.GetByTitleUrl();
                if (!IsPostBack && news.NewsTypeID == 1)
                {
                    lblTitle.Text      = news.Title;
                    lblBody.InnerHtml  = news.Body;
                    lblCreateDate.Text = news.CreateDate.ToString();
                    var dm = new DataManager();
                    var isUserViewCount = Convert.ToInt32(MoneyMethods.MoneySeparator(
                                                              dm.QueryWithReturnDataSet(
                                                                  String.Format("select count(*) from `usertonewsview` WHERE `UserID` = {0} AND `NewsID` = {1};", userInSession.ID, news.ID)
                                                                  ).Tables[0].Rows[0][0].ToString()
                                                              ));

                    //записываем данные о инфе, что усер просмотрел новость
                    if (isUserViewCount == 0)
                    {
                        var userView = new UserToNewsView {
                            UserID = userInSession.ID, NewsID = news.ID
                        };
                        userView.Create();
                    }

                    //пересчитываем просмотренные новости
                    //обновляем\задаем авторизационную куку с данными пользователя
                    AuthenticationMethods.SetUserCookie(userInSession);
                }
                else
                {
                    Response.Redirect("~/ManagerUI/Menu/NewsFeed/NewsFeedView.aspx");
                }
            }
            else
            {
                Response.Redirect("~/ManagerUI/Menu/NewsFeed/NewsFeedView.aspx");
            }
        }
示例#10
0
        public void GetMoney(string query)
        {
            var userType = Request.QueryString["type"];

            var searchString = "FROM (" + query + ") as R";
            var dm           = new DataManager();
            var eur          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(ReceivedEUR) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var usd          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(ReceivedUSD) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var rur          = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(ReceivedRUR) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);

            var allInBLR        = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(ReceivedUSD * CourseUSD + ReceivedRUR * CourseRUR + ReceivedEUR * CourseEUR) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allGruzobozCost = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(GruzobozCost) " + searchString).Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allAssessedCost = Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(AssessedCost + DeliveryCost) " + searchString + " Where AgreedCost = 0 AND WithoutMoney = 0").Tables[0].Rows[0][0], CultureInfo.CurrentCulture);

            //если нет согласованных стоимостей - записываем ее равной 0
            var allAgreedCostString =
                Convert.ToString(dm.QueryWithReturnDataSet("SELECT SUM(AgreedCost) " + searchString +
                                                           " Where (AgreedCost > 0 OR WithoutMoney = 1)").Tables[0].Rows[0][0], CultureInfo.CurrentCulture);
            var allAgreedCost = !String.IsNullOrEmpty(allAgreedCostString) ? allAgreedCostString : "0";

            double allAssessedCostValue = 0.0;

            Double.TryParse(allAssessedCost, out allAssessedCostValue);

            double allAgreedCostValue = 0.0;

            Double.TryParse(allAgreedCost, out allAgreedCostValue);


            var allAgreedAssessedCostValue = allAssessedCostValue + allAgreedCostValue;
            //к выдаче

            double allGruzobozCostValue = 0.0;

            Double.TryParse(allGruzobozCost, out allGruzobozCostValue);

            double allInBLRValue = 0.0;

            Double.TryParse(allInBLR, out allInBLRValue);

            var overToIssuance       = allAgreedAssessedCostValue - allInBLRValue - ((userType != "0" && !String.IsNullOrEmpty(userType) && (userType == "3" || userType == "2")) ? 0 : allGruzobozCostValue);
            var overToIssuanceString = String.Empty;

            overToIssuanceString = "<b>" + MoneyMethods.MoneySeparator(overToIssuance.ToString()) + "</b> BLR";

            lblReceivedBLRUser.Text  = overToIssuanceString;
            lblOverGruzobozCost.Text = MoneyMethods.MoneySeparator(allGruzobozCost);
        }
示例#11
0
        public void ListViewDataBind()
        {
            var user   = (Users)Session["userinsession"];
            var userId = user.Role != Users.Roles.User.ToString() ? 1 : user.ID;
            var dm     = new DataManager();
            var ds     = dm.QueryWithReturnDataSet(GetSearchString(userId.ToString()));

            ds.Tables[0].Columns.Add("ProfileType", typeof(String));
            ds.Tables[0].Columns.Add("OverallCost", typeof(String));
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                row["ProfileType"] = UsersProfilesHelper.UserTypeToStr2(UsersProfilesHelper.UserProfileIdToType(Convert.ToInt32(row["UserProfileID"].ToString())).ToString());
                row["OverallCost"] = MoneyMethods.MoneySeparator(MoneyMethods.OveralCostForCheck(MoneyMethods.AgreedAssessedCosts(row["ID"].ToString()), row["DeliveryCost"].ToString()));
            }

            lblAllResult.Text       = ds.Tables[0].Rows.Count.ToString();
            lvAllTickets.DataSource = ds;
            lvAllTickets.DataBind();

            foreach (ListViewDataItem items in lvAllTickets.Items)
            {
                var deleteLink = (LinkButton)items.FindControl("lbDelete");
                var status     = (HiddenField)items.FindControl("lblStatusID");
                if (status.Value != "1")
                {
                    deleteLink.Visible = false;
                }
            }

            foreach (ListViewDataItem items in lvAllTickets.Items)
            {
                CheckBox         chkBoxRows = (CheckBox)items.FindControl("cbSelect");
                ListViewItem     item       = (ListViewItem)chkBoxRows.Parent.NamingContainer;
                ListViewDataItem dataItem   = (ListViewDataItem)item;
                Label            labelID    = (Label)(lvAllTickets.Items[dataItem.DisplayIndex]).FindControl("lblSecureID");
                string           lbID       = labelID.Text.ToString();

                if (this.checkIDs.Contains(lbID))
                {
                    chkBoxRows.Checked = true;
                }
            }
        }
示例#12
0
        protected void lvDataPager_PreRender(object sender, EventArgs e)
        {
            var dm = new DataManager();
            var ds = dm.QueryWithReturnDataSet(GetSearchString());

            lblAllResult.Text      = ds.Tables[0].Rows.Count.ToString();
            lvAllTracks.DataSource = ds;
            lvAllTracks.DataBind();
            foreach (var item in lvAllTracks.Items)
            {
                var hfCategoryName = (HiddenField)item.FindControl("hfCategoryName");
                var lblDdPrice     = (Label)item.FindControl("lblDDPrice");
                var lblSdPrice     = (Label)item.FindControl("lblSDPrice");
                lblDdPrice.Text =
                    MoneyMethods.MoneySeparator(Calculator.Calculate(
                                                    new List <GoodsFromAPI> {
                    new GoodsFromAPI {
                        Description = hfCategoryName.Value, Number = 1
                    }
                },
                                                    13, 1, 239, "2", null, null, true));
                lblSdPrice.Text =
                    MoneyMethods.MoneySeparator(Calculator.Calculate(
                                                    new List <GoodsFromAPI> {
                    new GoodsFromAPI {
                        Description = hfCategoryName.Value, Number = 1
                    }
                },
                                                    13, 1, 239, "1", null, null));
            }

            #region  едирект на первую страницу при поиске
            if (lvAllTracks.Items.Count == 0 && lvDataPager.TotalRowCount != 0)
            {
                lvDataPager.SetPageProperties(0, lvDataPager.PageSize, false);
                lvAllTracks.DataBind();
            }
            #endregion
        }
 public void GetCityForAutocompliteJSON(string query, string appkey)
 {
     if (appkey == Globals.Settings.AppServiceSecureKey)
     {
         var js = new JavaScriptSerializer {
             MaxJsonLength = Int32.MaxValue
         };
         var allCityFromApp           = Application["CityList"] as List <City>;
         var allCityList              = new List <AllCityForAutocompliteResult>();
         var coefficientDeviationCost = Convert.ToDouble(BackendHelper.TagToValue("coefficient_deviation_cost")); //множительный коэфициент добавочной стоимости отклонения от основного города
         foreach (
             City city in
             allCityFromApp.Where(
                 u =>
                 ((u.Name.ToLower()
                   .Replace("ё", "е")
                   .Replace("ъ", "ь")
                   .Trim()
                   .Contains(query.ToLower().Replace("ё", "е").Replace("ъ", "ь").Trim()) &&
                   u.Blocked == 0) ||
                  u.ID.ToString().Equals(query))
                 ).OrderBy(u => u.Name).Take(250))
         {
             allCityList.Add(new AllCityForAutocompliteResult()
             {
                 value        = CityHelper.CityIDToAutocompleteString(city),
                 data         = city.ID.ToString(),
                 cost         = MoneyMethods.MoneySeparatorForCityTableView((city.DistanceFromCity * Convert.ToDecimal(coefficientDeviationCost)).ToString()),
                 deliverydate =
                     DistrictsHelper.DeliveryDateStringToRuss(DistrictsHelper.DeliveryDateString(city.DistrictID)),
                 deliveryterms =
                     DistrictsHelper.DeliveryTermsToRuss(DistrictsHelper.DeliveryTerms(city.DistrictID))
             });
         }
         Context.Response.ContentType = "application/json; charset=UTF-8";
         Context.Response.Write("{\"query\": \"Unit\",\"suggestions\": " + js.Serialize(allCityList) + "}");
     }
 }
示例#14
0
        private void GetMoney(string query)
        {
            var searchString = query;
            var dm           = new DataManager();
            var allEURString = dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedEUR`) " + searchString).Tables[0].Rows[0][0].ToString();
            var allRURString = dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedRUR`) " + searchString).Tables[0].Rows[0][0].ToString();
            var allUSDString = dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedUSD`) " + searchString).Tables[0].Rows[0][0].ToString();
            var allBLRString = dm.QueryWithReturnDataSet("SELECT SUM(`ReceivedBLR`) " + searchString).Tables[0].Rows[0][0].ToString();

            if (allEURString == String.Empty)
            {
                allEURString = "0";
            }
            if (allRURString == String.Empty)
            {
                allRURString = "0";
            }
            if (allUSDString == String.Empty)
            {
                allUSDString = "0";
            }
            if (allBLRString == String.Empty)
            {
                allBLRString = "0";
            }

            var allEUR = Convert.ToDecimal(allEURString);
            var allRUR = Convert.ToDecimal(allRURString);
            var allUSD = Convert.ToDecimal(allUSDString);
            var allBLR = Convert.ToDecimal(allBLRString);

            lblReceivedEUROver.Text = MoneyMethods.MoneySeparator(allEUR.ToString());
            lblReceivedRUROver.Text = MoneyMethods.MoneySeparator(allRUR.ToString());
            lblReceivedUSDOver.Text = MoneyMethods.MoneySeparator(allUSD.ToString());
            lblReceivedBLROver.Text = MoneyMethods.MoneySeparator(allBLR.ToString());
        }
示例#15
0
        public void btnSendPrice_Click(Object sender, EventArgs e)
        {
            var id = Page.Request.Params["id"];

            //читаем старый файл
            if (!Directory.Exists(HttpContext.Current.Server.MapPath("~/Temp/SendedPrices/")))
            {
                Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/Temp/SendedPrices/"));
            }
            var fileName = "Прайс " + BackendHelper.TagToValue("official_name") + " (" + OtherMethods.CreateUniqId(id + DateTime.Now.ToString("hh:mm:ssttzz")) + ").xls";
            var dataFile = HttpContext.Current.Server.MapPath("~/Temp/SendedPrices/" + fileName);
            var dm       = new DataManager();

            //получаем данные отправителя прайса из сотрудников
            var userInSession   = (Users)Session["userinsession"];
            var emailSenderData = new Users()
            {
                ID = userInSession.ID
            };

            emailSenderData.GetById();

            var ds = new DataSet();
            var ifUserHaveAssignSection = dm.QueryWithReturnDataSet(String.Format("SELECT * FROM `userstocategory` WHERE `UserID` = {0}", id));

            if (ifUserHaveAssignSection.Tables[0].Rows.Count == 0)
            {
                ds = dm.QueryWithReturnDataSet(
                    "SELECT Name as 'Наименование', " +
                    "MarginCoefficient as 'Юр. лицо', " +
                    "MarginCoefficient as 'Физ. лицо', " +
                    "MarginCoefficient as 'Физ. лица в скид.' " +
                    "FROM `titles` ORDER BY `Name`");
            }
            else
            {
                ds = dm.QueryWithReturnDataSet(String.Format(
                                                   "SELECT C.Name as 'Наименование', " +
                                                   "C.MarginCoefficient as 'Юр. лицо', " +
                                                   "C.MarginCoefficient as 'Физ. лицо', " +
                                                   "C.MarginCoefficient as 'Физ. лица в скид.' " +
                                                   "FROM `titles` C WHERE C.`CategoryID` IN (SELECT `CategoryID` FROM `userstocategory` WHERE `UserID` = {0})  ORDER BY C.`Name`", id));
            }
            var goodList    = new List <GoodsFromAPI>();
            var goods       = new GoodsFromAPI();
            var tableToSend = "<table class='table' style='width: 100%; border-collapse: collapse;'><tr>" +
                              "<th style='border: 1px solid #666666; padding: 3px 6px; text-align: left;'>Наименование</th>" +
                              "<th style='border: 1px solid #666666; padding: 3px 6px;'>ЮЛ/ТТН</th>" +
                              "<th style='border: 1px solid #666666; padding: 3px 6px;'>ФЛ/Регион</th>" +
                              "<th style='border: 1px solid #666666; padding: 3px 6px;'>ФИЗ. Л. регион/область</th>" +
                              "</tr>";

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                goodList.Clear();
                goods.Description   = row[0].ToString();
                goods.Number        = 1;
                goods.IsAdditional  = 0;
                goods.WithoutAkciza = 0;
                goods.Coefficient   = 0;
                goodList.Add(goods);


                row[1]       = Calculator.Calculate(goodList, 187, Convert.ToInt32(id), null, "2"); //за обычный город берем Петриков
                row[2]       = Calculator.Calculate(goodList, 187, Convert.ToInt32(id), null, "1"); //за обычный город берем Петриков
                row[3]       = Calculator.Calculate(goodList, 16, Convert.ToInt32(id), null, "1");  //за скидочный город берем Гродно
                tableToSend += string.Format("<tr>" +
                                             "<td style='border: 1px solid #666666; padding: 3px 6px; text-align: left;'>{0}</td>" +
                                             "<td style='border: 1px solid #666666; padding: 3px 6px;'>{1}</td>" +
                                             "<td style='border: 1px solid #666666; padding: 3px 6px;'>{2}</td>" +
                                             "<td style='border: 1px solid #666666; padding: 3px 6px;'>{3}</td>" +
                                             "</tr>", row[0], MoneyMethods.MoneySeparator(row[1].ToString()), MoneyMethods.MoneySeparator(row[2].ToString()), MoneyMethods.MoneySeparator(row[3].ToString()));
            }
            tableToSend += "</table>";
            DataRow emptyRow = ds.Tables[0].NewRow();
            DataRow newRow   = ds.Tables[0].NewRow();

            newRow[0] = String.Format("Наш {5}: {1} {2}, тел.: {0}, email: {3}, skype: {4}", emailSenderData.PhoneWorkOne, emailSenderData.Name, emailSenderData.Family, emailSenderData.Email, emailSenderData.Skype, userInSession.RussRole.ToLower());
            ds.Tables[0].Rows.Add(emptyRow);
            ds.Tables[0].Rows.Add(newRow);
            ds.Tables[0].TableName = "Прайс " + BackendHelper.TagToValue("not_official_name");

            Workbook book = Workbook.Load(HttpContext.Current.Server.MapPath("~/" + BackendHelper.TagToValue("comprop_tpl_file_name")));

            AddDataTableToWorkBook(ds.Tables[0], ref book);
            var user = new Users()
            {
                ID = Convert.ToInt32(id)
            };

            user.GetById();
            book.Save(dataFile);
            var emailNotification = new EmailNotifications {
                Name = "comprop_message"
            };

            emailNotification.GetByName();
            EmailMethods.MailSendHTML(
                string.Format(emailNotification.Title, BackendHelper.TagToValue("not_official_name")),
                string.Format(emailNotification.Body,
                              emailSenderData.PhoneWorkOne,
                              emailSenderData.Name,
                              emailSenderData.Family,
                              emailSenderData.Email,
                              emailSenderData.Skype,
                              tableToSend,
                              userInSession.RussRole.ToLower(),
                              BackendHelper.TagToValue("official_name"),
                              BackendHelper.TagToValue("current_app_address"),
                              BackendHelper.TagToValue("not_official_name")),
                user.Email,
                dataFile,
                true);

            Session["flash:now"] = "<span style='color: green; font-size: bold'>Прайс отправлен!</span>";
            Page.Response.Redirect("~/ManagerUI/Menu/Souls/ClientEdit.aspx?id=" + id);
        }
示例#16
0
        public static void CreateXlsFile(HttpResponse responce, DataSet ds, String fileName, string exportType)
        {
            //создаем динамический гридвью, который можно как угодно вертеть
            var gridView = new GridView
            {
                AllowPaging = false,
                DataSource  = ds.Tables[0]
            };

            gridView.DataBind();

            var sGenName = fileName + ".xls";

            responce.Clear();
            responce.Buffer = true;
            responce.AddHeader("content-disposition", "attachment;filename=" + sGenName);
            responce.Charset     = "";
            responce.ContentType = "application/vnd.ms-excel";
            var sw = new StringWriter();
            var hw = new HtmlTextWriter(sw);

            for (var i = 0; i < gridView.Rows.Count; i++)
            {
                //добавляем стиль к строкам
                gridView.Rows[i].Attributes.Add("class", "textmode");
                //var index = gridView.Rows.IndexOf(currentRow);
                if (exportType == "users")
                {
                    try
                    {
                        gridView.Rows[i].Cells[6].Text  = UsersHelper.UserStatusToText(Convert.ToInt32(gridView.Rows[i].Cells[6].Text));
                        gridView.Rows[i].Cells[9].Text  = OtherMethods.CheckboxView(Convert.ToInt32(gridView.Rows[i].Cells[9].Text));
                        gridView.Rows[i].Cells[10].Text = OtherMethods.CheckboxView(Convert.ToInt32(gridView.Rows[i].Cells[10].Text));
                    }
                    catch (Exception)
                    {
                    }
                }

                if (exportType == "profiles")
                {
                    try
                    {
                        gridView.Rows[i].Cells[8].Text  = UsersProfilesHelper.UserProfileTypeToText(Convert.ToInt32(gridView.Rows[i].Cells[8].Text));
                        gridView.Rows[i].Cells[9].Text  = UsersProfilesHelper.UserProfileStatusToText(Convert.ToInt32(gridView.Rows[i].Cells[9].Text));
                        gridView.Rows[i].Cells[24].Text = OtherMethods.CheckboxView(Convert.ToInt32(gridView.Rows[i].Cells[24].Text));
                    }
                    catch (Exception)
                    {
                    }
                }

                if (exportType == "clients")
                {
                    try
                    {
                        gridView.Rows[i].Cells[7].Text = UsersHelper.UserStatusStadyToText(Convert.ToInt32(gridView.Rows[i].Cells[7].Text));
                    }
                    catch (Exception)
                    {
                    }
                }

                if (exportType == "calculation")
                {
                    try
                    {
                        gridView.Rows[i].Cells[0].Text = OtherMethods.DateConvert(gridView.Rows[i].Cells[0].Text);
                        gridView.Rows[i].Cells[1].Text = UsersProfilesHelper.UserProfileIDToFullFamilyOrCompanyname(gridView.Rows[i].Cells[1].Text);
                        gridView.Rows[i].Cells[3].Text = OtherMethods.TicketStatusToTextWithoutColor(gridView.Rows[i].Cells[3].Text);
                        gridView.Rows[i].Cells[4].Text = MoneyMethods.AgreedAssessedDeliveryCosts(gridView.Rows[i].Cells[4].Text);
                        gridView.Rows[i].Cells[6].Text = (Convert.ToDecimal(MoneyMethods.AgreedAssessedDeliveryCosts(gridView.Rows[i].Cells[6].Text)) - Convert.ToDecimal(gridView.Rows[i].Cells[5].Text)).ToString();
                        gridView.Rows[i].Cells[8].Text = WebUtility.HtmlDecode(gridView.Rows[i].Cells[8].Text)
                                                         .Replace("comment-history-body", "")
                                                         .Replace("comment-history-name", "")
                                                         .Replace("comment-history-date", "")
                                                         .Replace("div", "")
                                                         .Replace("span", "")
                                                         .Replace("class", "")
                                                         .Replace(" =", "");
                        gridView.Rows[i].Cells[9].Text = DriversHelper.DriverIdToName(gridView.Rows[i].Cells[9].Text);
                    }
                    catch (Exception)
                    {
                    }
                }
            }
            gridView.RenderControl(hw);

            //стиль приведение чисел к строкам
            const string style = @"<style> .textmode { mso-number-format:\@; } </style>";

            responce.Write(style);
            responce.Output.Write(sw.ToString());
            responce.Flush();
            responce.End();
        }
示例#17
0
        public static void GenerateXmlFile(string idListString, string data)
        {
            List <string> idList = idListString.Split('-').ToList();
            var           output = "<?xml version=\"1.0\"?> \r\n" +
                                   "\t<SmartRoutes.Data SchemaVersion=\"3\"> \r\n" +
                                   "\t\t<Variants> \r\n" +
                                   "\t\t\t<Variant> \r\n" +
                                   "\t\t\t\t<OrderCategoryExchangeCode>1891378909</OrderCategoryExchangeCode> \r\n" +
                                   "\t\t\t\t<Date>" + Convert.ToDateTime(data).ToString("yyyy-MM-dd") +
                                   "T00:00:00+03:00</Date> \r\n" +
                                   "\t\t\t\t<N>1</N> \r\n" +
                                   "\t\t\t\t<DataReading>Historical</DataReading> \r\n" +

                                   "\t\t\t\t<Characteristics> \r\n" +
                                   "\t\t\t\t\t<Characteristic> \r\n" +
                                   "\t\t\t\t\t\t<ExchangeCode>12345678</ExchangeCode> \r\n" +
                                   "\t\t\t\t\t\t<Title>Оцен./Согл. + за доставку</Title> \r\n" +
                                   "\t\t\t\t\t\t<Type>Number</Type> \r\n" +
                                   "\t\t\t\t\t\t<Notes>стоимость груза + за доставку</Notes> \r\n" +
                                   "\t\t\t\t\t</Characteristic> \r\n" +
                                   "\t\t\t\t</Characteristics> \r\n" +

                                   "\t\t\t\t<Orders> \r\n";

            if (!String.IsNullOrEmpty(idListString))
            {
                foreach (var id in idList)
                {
                    var ticket = new Tickets {
                        ID = Convert.ToInt32(id)
                    };
                    ticket.GetById();
                    var address = String.Empty;
                    if (!String.IsNullOrEmpty(ticket.RecipientKorpus))
                    {
                        address = String.Format("Беларусь, {0} область, {2}, {3} {4}, {5}/{6}",
                                                CityHelper.CityIDToRegionName(ticket.CityID.ToString()),
                                                CityHelper.CityIDToDistrictName(ticket.CityID.ToString()),
                                                CityHelper.CityNameFilter(CityHelper.CityIDToCityNameWithotCustom(ticket.CityID.ToString())),
                                                ticket.RecipientStreetPrefix,
                                                ticket.RecipientStreet,
                                                ticket.RecipientStreetNumber,
                                                ticket.RecipientKorpus);
                    }
                    else
                    {
                        address = String.Format("Беларусь, {0} область, {2}, {3} {4}, {5}",
                                                CityHelper.CityIDToRegionName(ticket.CityID.ToString()),
                                                CityHelper.CityIDToDistrictName(ticket.CityID.ToString()),
                                                CityHelper.CityNameFilter(CityHelper.CityIDToCityNameWithotCustom(ticket.CityID.ToString())),
                                                ticket.RecipientStreetPrefix,
                                                ticket.RecipientStreet,
                                                ticket.RecipientStreetNumber);
                    }

                    var goodsObj = new Goods {
                        TicketFullSecureID = ticket.FullSecureID
                    };
                    var goodsDataSet = goodsObj.GetAllItems("ID", "ASC", "TicketFullSecureID");
                    var goodsString  =
                        goodsDataSet.Tables[0].Rows.Cast <DataRow>()
                        .Aggregate(String.Empty,
                                   (current, goods) => current + String.Format("{0} {1}; ", goods[2], goods[3]))
                        .Replace("&", "");

                    output += "\t\t\t\t\t<Order> \r\n" +
                              "\t\t\t\t\t\t<ExchangeCode>" + ticket.SecureID + "</ExchangeCode> \r\n" +
                              "\t\t\t\t\t\t<Title>" + goodsString + "</Title> \r\n" +
                              "\t\t\t\t\t\t<Phone>" + ticket.RecipientPhone + "</Phone> \r\n" +
                              "\t\t\t\t\t\t<Code>" + ticket.SecureID + "</Code> \r\n" +
                              "\t\t\t\t\t\t<LoadingAddress> \r\n" +
                              "\t\t\t\t\t\t\t<Location>Беларусь, Минск, Кальварийская улица, 4</Location> \r\n" +
                              "\t\t\t\t\t\t\t<Latitude>0.9408116799</Latitude> \r\n" +
                              "\t\t\t\t\t\t\t<Longitude>0.4806493073</Longitude> \r\n" +
                              "\t\t\t\t\t\t</LoadingAddress> \r\n" +
                              "\t\t\t\t\t\t<UnloadingAddress> \r\n" +
                              "\t\t\t\t\t\t\t<Location>" + address + "</Location> \r\n" +
                              "\t\t\t\t\t\t</UnloadingAddress> \r\n" +
                              //время у клиента в xml-формате "PT30M" означает "30 минут"
                              "\t\t\t\t\t\t<UnloadingDuration>" + "PT10M" + "</UnloadingDuration>" +
                              "\t\t\t\t\t\t<CargoProperties>\r\n" +
                              "\t\t\t\t\t\t\t<Property>\r\n" +
                              "\t\t\t\t\t\t\t\t<CharacteristicExchangeCode>12345678</CharacteristicExchangeCode>\r\n" +
                              "\t\t\t\t\t\t\t\t<Value>" +
                              MoneyMethods.MoneySeparator(MoneyMethods.AgreedAssessedDeliveryCosts(ticket.ID.ToString())) +
                              "</Value>\r\n" +
                              "\t\t\t\t\t\t\t</Property>\r\n" +
                              "\t\t\t\t\t\t</CargoProperties>\r\n" +

                              "\t\t\t\t\t</Order> \r\n";
                }
                output += "   \t\t\t\t</Orders> \r\n" +
                          "\t\t\t</Variant> \r\n" +
                          "\t\t</Variants> \r\n" +
                          "\t</SmartRoutes.Data>";
                File.WriteAllText(HttpContext.Current.Server.MapPath("~/SendData.xml"), output);
            }
        }
示例#18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            AppKey = Globals.Settings.AppServiceSecureKey;
            var    controlTicketID = String.Empty;
            var    dm           = new DataManager();
            var    idListString = IdList = Request.QueryString["id"];
            var    withUrMarker = Request.QueryString["with_ur"];
            string whereUrSql;

            if (!String.IsNullOrEmpty(withUrMarker))
            {
                cbWithUr.Checked = true;
                whereUrSql       = " ";
            }
            else
            {
                whereUrSql       = " AND U.`TypeID` = '1' ";
                cbWithUr.Checked = false;
            }

            if (!String.IsNullOrEmpty(idListString))
            {
                List <string> idList    = idListString.Split('-').ToList();
                var           sqlString = String.Empty;
                foreach (var id in idList)
                {
                    sqlString       = sqlString + "T.ID = " + id + " OR ";
                    controlTicketID = id;
                }
                var fullSqlString = "SELECT * FROM `tickets` as T " +
                                    "JOIN `city` as C " +
                                    "ON T.CityID = C.ID " +
                                    "JOIN `usersprofiles` as U " +
                                    "ON T.`UserProfileID` = U.`ID` " +
                                    "WHERE ((" + sqlString.Remove(sqlString.Length - 3) + ") AND T.PrintNakl = '1' AND T.NotPrintInPril2 ='0'" + whereUrSql + ") "  //AND (T.StatusID ='3' OR T.StatusID = '19')
                ;

                var     dataset    = dm.QueryWithReturnDataSet(fullSqlString);
                var     iter       = 1;
                var     overBoxes  = 0;
                var     overWeight = 0;
                decimal overCost   = 0;
                DriverID = String.Empty;
                dataset.Tables[0].Columns.Add("PorID");
                dataset.Tables[0].Columns.Add("Pril2CostOrCost");

                foreach (DataRow row in dataset.Tables[0].Rows)
                {
                    row["PorID"] = iter.ToString();
                    iter++;
                    DriverID    = row["DriverID"].ToString();
                    overBoxes  += Convert.ToInt32(row["BoxesNumber"]);
                    overWeight += String.IsNullOrEmpty(row["Weight"].ToString()) ? 0 : Convert.ToInt32(row["Weight"]);

                    var zero = 0.00;
                    if (Convert.ToDouble(row["Pril2Cost"]) != zero)
                    {
                        overCost += Convert.ToDecimal(row["Pril2Cost"]);
                        row["Pril2CostOrCost"] = row["Pril2Cost"];
                    }
                    else
                    {
                        overCost += Convert.ToInt32(row["AgreedCost"]) != 0 ? Convert.ToDecimal(row["AgreedCost"]) : Convert.ToDecimal(row["AssessedCost"]);
                        row["Pril2CostOrCost"] = Convert.ToInt32(row["AgreedCost"]) != 0 ? row["AgreedCost"] : row["AssessedCost"];
                    }
                }

                lvAllPrint.DataSource = dataset;
                lvAllPrint.DataBind();

                try
                {
                    DriverName = dm.QueryWithReturnDataSet(String.Format("SELECT `FIO` FROM `drivers` WHERE `id` = {0}", DriverID)).Tables[0].Rows[0][0].ToString();
                }
                catch (Exception)
                {
                    DriverName = "Не назначен";
                }

                lblDriver.Text     = lblDriver2.Text = DriversHelper.DriverIDToNameZP(DriverID);
                lblOverNumber.Text = dataset.Tables[0].Rows.Count.ToString();
                lblOverCost.Text   = lblOverCost2.Text = lblOverCost3.Text = MoneyMethods.MoneySeparator(overCost.ToString());
                lblCostWord.Text   = MoneyHelper.ToRussianString(overCost);

                Inpnaklnumber.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklNumber` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();
                Inpseria.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklSeria` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();
                Inpdate.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklDate` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();

                overGruzobozCost.Text =
                    MoneyMethods.MoneySeparator(
                        MoneyMethods.GruzobozCostLoweringPercentage(
                            dm.QueryWithReturnDataSet(
                                "SELECT SUM(`GruzobozCost`) " +
                                "FROM `tickets` T " +
                                "JOIN `usersprofiles` as U " +
                                "ON T.`UserProfileID` = U.`ID` " +
                                "WHERE ((" + sqlString.Remove(sqlString.Length - 3) + ") AND T.PrintNakl = '1' AND T.NotPrintInPril2 ='0'" + whereUrSql + ")" //AND (T.StatusID ='3' OR T.StatusID = '19')
                                ).Tables[0].Rows[0][0].ToString()
                            )
                        );

                var ticket = new Tickets {
                    ID = Convert.ToInt32(controlTicketID)
                };
                ticket.GetById();

                var notVisibleCount =
                    dm.QueryWithReturnDataSet(
                        "SELECT COUNT(*) " +
                        "FROM `tickets` as T " +
                        "JOIN `usersprofiles` as U " +
                        "ON T.`UserProfileID` = U.`ID` " +
                        "WHERE ((" + sqlString.Remove(sqlString.Length - 3) + ") AND T.PrintNakl = '1' AND T.NotPrintInPril2 ='1'" + whereUrSql + ")").Tables[0].Rows[0][0].ToString(); //AND (T.StatusID ='3' OR T.StatusID = '19')
                btnReload.Enabled = notVisibleCount == "0";

                //рассчет недостающих коробок и веса СТАРТ

                var notVisibleTicketsTable = dm.QueryWithReturnDataSet(
                    "SELECT T.Weight, T.AgreedCost, T.AssessedCost, T.BoxesNumber " +
                    "FROM `tickets` as T " +
                    "JOIN `usersprofiles` as U " +
                    "ON T.`UserProfileID` = U.`ID` " +
                    "WHERE ((" + sqlString.Remove(sqlString.Length - 3) + ") AND T.PrintNakl = '1' AND NotPrintInPril2 ='1'" + whereUrSql + ")").Tables[0]; //AND (T.StatusID ='3' OR T.StatusID = '19')

                foreach (DataRow row in notVisibleTicketsTable.Rows)
                {
                    overBoxes  += Convert.ToInt32(row["BoxesNumber"]);
                    overWeight += String.IsNullOrEmpty(row["Weight"].ToString()) ? 0 : Convert.ToInt32(row["Weight"]);
                }

                lblOverBoxes.Text = overBoxes.ToString();
                lblBoxesWord.Text = NumberToRussianString.NumberToString(
                    Convert.ToInt64(overBoxes), NumberToRussianString.WordGender.Masculine);
                lblOverWeight.Text = overWeight.ToString();
                lblWeightWord.Text = NumberToRussianString.NumberToString(
                    Convert.ToInt64(overWeight), NumberToRussianString.WordGender.Masculine);
                //рассчет недостающих коробок и веса КОНЕЦ

                if (OneCMethods.IfFileExist())
                {
                    btnCSVStart.Enabled = false;
                }
                else
                {
                    btnCSVAdd.Enabled = false;
                    btnCSVEnd.Enabled = false;
                }
            }

            if (String.IsNullOrEmpty(idListString) || lvAllPrint.Items.Count == 0)
            {
                Page.Visible = false;
                if (String.IsNullOrEmpty(idListString))
                {
                    Response.Write(Resources.PrintResources.PrintNaklPrilEmptyText);
                }
                else
                {
                    Response.Write(Resources.PrintResources.PrintNaklPrilEmptyText +
                                   String.Format("<br/><center><a href=\"{0}&with_ur=1\">печать с юр. лицами</a><center>", Request.RawUrl));
                }
                Page.Visible = false;
            }
        }
示例#19
0
        public void CalculateNewCost(string idForMySql, decimal excessCost, DataTable visibleTicketsTable)
        {
            var withUrMarker = Request.QueryString["with_ur"];
            var whereUrSql   = String.Empty;

            if (!String.IsNullOrEmpty(withUrMarker))
            {
                whereUrSql = "" + whereUrSql + " ";
            }
            var dm           = new DataManager();
            var searchString = "FROM `tickets` T JOIN `usersprofiles` as U ON T.`UserProfileID` = U.`ID` WHERE (" + idForMySql.Remove(idForMySql.Length - 3) + ")";
            //общее количество коробок на приложение
            var allAssessedCostString = dm.QueryWithReturnDataSet("SELECT SUM(T.AssessedCost) " + searchString + " AND T.AgreedCost = 0 AND T.PrintNakl = '1'" + whereUrSql + "").Tables[0].Rows[0][0].ToString(); //AND (T.StatusID ='3' OR T.StatusID = '19')
            var allAgreedCostString   = dm.QueryWithReturnDataSet("SELECT SUM(T.AgreedCost) " + searchString + " AND T.AgreedCost > 0 AND T.PrintNakl = '1'" + whereUrSql + "").Tables[0].Rows[0][0].ToString();   //AND (T.StatusID ='3' OR T.StatusID = '19')

            if (String.IsNullOrEmpty(allAssessedCostString))
            {
                allAssessedCostString = "0";
            }

            if (String.IsNullOrEmpty(allAgreedCostString))
            {
                allAgreedCostString = "0";
            }
            var allCost = Convert.ToDecimal(allAssessedCostString) + Convert.ToDecimal(allAgreedCostString);
            var finish  = false;

            //Если старое количество коробок всех заявок в приложении совпадает с новым количеством коробок всех видемых заявок, то не пересчитываем количество коробок СТАРТ
            var allVisibleReCost = Convert.ToDecimal(dm.QueryWithReturnDataSet("SELECT SUM(T.Pril2Cost) " + searchString + " AND T.PrintNakl = '1' AND NotPrintInPril2 ='0')" + whereUrSql + "").Tables[0].Rows[0][0]); //AND (T.StatusID ='3' OR T.StatusID = '19')

            if (allCost == allVisibleReCost)
            {
                finish = true;
            }
            //Если старое количество коробок всех заявок в приложении совпадает с новым количеством коробок всех видимых заявок, то не пересчитываем количество коробок КОНЕЦ

            while (!finish)
            {
                var excessCostNew             = excessCost;
                var fullAddedCostForIteration = 0;
                var lastTicketId = 0;
                foreach (DataRow ticketRow in visibleTicketsTable.Rows)
                {
                    lastTicketId = Convert.ToInt32(ticketRow["ID"]);
                    var ticket = new Tickets {
                        ID = lastTicketId
                    };
                    ticket.GetById();

                    var ticketCost = ticket.AgreedCost == 0? ticket.AssessedCost : ticket.AgreedCost;
                    var ticketCostPercentFromAllCost = Math.Round(Convert.ToDecimal(ticketCost * 100 / allCost)); //процентная зависимость начального веса заявки от суммы начальных весов всех видимых заявок
                    var addedCost = Convert.ToInt32(Math.Round(excessCost * ticketCostPercentFromAllCost / 100)); //добавочный вес для текущей заявки

                    //округление
                    addedCost = Convert.ToInt32(MoneyMethods.MoneyRounder100(Convert.ToDecimal(addedCost)));

                    excessCostNew = excessCostNew - addedCost;

                    if (ticket.Pril2Cost == 0)
                    {
                        ticket.Pril2Cost = ticketCost + addedCost;
                    }
                    else
                    {
                        ticket.Pril2Cost = ticket.Pril2Cost + addedCost;
                    }

                    fullAddedCostForIteration += addedCost;

                    ticket.Update();
                }

                //если пробежав все заявки ни к одной не были добавлены коробки - инизиализируем финиш (записываем оставшиеся коробки к последней заявке и выходим из цикла)
                if (fullAddedCostForIteration <= 0)
                {
                    var ticket = new Tickets {
                        ID = lastTicketId
                    };
                    ticket.GetById();
                    var ticketCost = ticket.AgreedCost == 0 ? ticket.AssessedCost : ticket.AgreedCost;

                    if (ticket.Pril2Cost == 0)
                    {
                        ticket.Pril2Cost = ticketCost + excessCostNew;
                    }
                    else
                    {
                        ticket.Pril2Cost = ticket.Pril2Cost + excessCostNew;
                    }
                    ticket.Update();
                    finish = true;
                }
                excessCost = excessCostNew; //записываем сколько веса осталось перераспределить
            }

            //рассчет новых параметров КОНЕЦ
        }
示例#20
0
        protected void Page_Load(object sender, EventArgs e)
        {
            AppKey = Globals.Settings.AppServiceSecureKey;
            var controlTicketID = String.Empty;
            var idListString    = Request.QueryString["id"];
            var withUrMarker    = Request.QueryString["with_ur"];
            var ticketsCount    = 0;

            if (!String.IsNullOrEmpty(idListString))
            {
                List <string> idList    = idListString.Split('-').ToList();
                var           sqlString = String.Empty;
                foreach (var id in idList)
                {
                    sqlString       = sqlString + "T.`ID` = " + id + " OR ";
                    controlTicketID = id;
                }
                string fullSqlString;

                if (String.IsNullOrEmpty(withUrMarker))
                {
                    cbWithUr.Checked = false;
                    fullSqlString    = "SELECT T.`SecureID`, T.`ID`, T.`BoxesNumber`, T.`Weight`, T.`AgreedCost`, T.`AssessedCost`, T.`DriverID` " +
                                       "FROM `tickets` T " +
                                       "JOIN `usersprofiles` as U " +
                                       "ON T.`UserProfileID` = U.`ID` " +
                                       "WHERE (" + sqlString.Remove(sqlString.Length - 3) + ") AND `PrintNakl` = '1' AND U.`TypeID` = '1' AND (T.StatusID ='3' OR T.StatusID = '19')";
                }
                else
                {
                    cbWithUr.Checked = true;
                    fullSqlString    = "SELECT T.`SecureID`, T.`ID`, T.`BoxesNumber`, T.`Weight`, T.`AgreedCost`, T.`AssessedCost`, T.`DriverID` " +
                                       "FROM `tickets` T " +
                                       "JOIN `usersprofiles` U " +
                                       "ON T.`UserProfileID` = U.`ID` " +
                                       "WHERE (" + sqlString.Remove(sqlString.Length - 3) + ") AND (T.`PrintNaklInMap` = '0' OR U.`TypeID` = '1') AND (T.StatusID ='3' OR T.StatusID = '19')" +
                                       "ORDER BY T.`ID` DESC";
                }

                var     dm         = new DataManager();
                var     dataset    = dm.QueryWithReturnDataSet(fullSqlString);
                var     overBoxes  = 0;
                var     overWeight = 0;
                decimal overCost   = 0;
                var     driverID   = String.Empty;
                foreach (DataRow row in dataset.Tables[0].Rows)
                {
                    driverID    = row["DriverID"].ToString();
                    overBoxes  += Convert.ToInt32(row["BoxesNumber"]);
                    overWeight += String.IsNullOrEmpty(row["Weight"].ToString()) ? 0 : Convert.ToInt32(row["Weight"]);
                    overCost   += Convert.ToInt32(row["AgreedCost"]) != 0 ? Convert.ToDecimal(row["AgreedCost"]) : Convert.ToDecimal(row["AssessedCost"]);
                    ticketsCount++;
                }

                lblCar.Text    = DriversHelper.DriverIDToCarZP(driverID);
                lblDriver.Text = lblDriver2.Text = lblDriver3.Text = DriversHelper.DriverIDToNameZP(driverID);
                lblCost.Text   = lblCost2.Text = lblCost3.Text = lblCost4.Text = MoneyMethods.MoneySeparator(overCost.ToString());
                lblBoxes2.Text = lblBoxes3.Text = overBoxes.ToString();
                lblWeight.Text = lblWeight2.Text = overWeight.ToString();

                lblCostWord.Text = MoneyHelper.ToRussianString(overCost);

                lblWeightWord.Text = NumberToRussianString.NumberToString(
                    Convert.ToInt64(overWeight), NumberToRussianString.WordGender.Masculine);

                lblBoxesWord.Text = NumberToRussianString.NumberToString(
                    Convert.ToInt64(overBoxes), NumberToRussianString.WordGender.Masculine);

                Inpnaklnumber.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklNumber` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();
                Inpseria.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklSeria` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();
                Inpdate.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklDate` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();
                Inpputevoi.Text =
                    dm.QueryWithReturnDataSet("SELECT `Putevoi` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();

                var ticket = new Tickets {
                    ID = Convert.ToInt32(controlTicketID)
                };
                ticket.GetById();
            }

            #region Сообщение, если накладная пустая
            if (String.IsNullOrEmpty(idListString) || ticketsCount == 0)
            {
                Page.Visible = false;
                if (String.IsNullOrEmpty(idListString))
                {
                    Response.Write(Resources.PrintResources.PrintNaklEmptyText);
                }
                else
                {
                    Response.Write(Resources.PrintResources.PrintNaklEmptyText +
                                   String.Format("<br/><center><a href=\"{0}&with_ur=1\">печать с юр. лицами</a><center>", Request.RawUrl));
                }
            }
            #endregion
        }
示例#21
0
        protected void Page_Load(object sender, EventArgs e)
        {
            AppKey = Globals.Settings.AppServiceSecureKey;
            var controlTicketID = String.Empty;
            var idListString    = TicketIdList = Request.QueryString["id"];
            var withUrMarker    = Request.QueryString["with_ur"];

            if (!String.IsNullOrEmpty(idListString))
            {
                List <string> idList    = idListString.Split('-').ToList();
                var           sqlString = String.Empty;
                foreach (var id in idList)
                {
                    sqlString       = sqlString + "T.`ID` = " + id + " OR ";
                    controlTicketID = id;
                }
                string fullSqlString;
                if (String.IsNullOrEmpty(withUrMarker))
                {
                    cbWithUr.Checked = false;
                    fullSqlString    =
                        "SELECT T.`SecureID`, T.`ID`, T.`BoxesNumber`, T.`Weight`, T.`AgreedCost`, T.`AssessedCost`, T.`DriverID` " +
                        "FROM `tickets` T " +
                        "JOIN `usersprofiles` U " +
                        "ON T.`UserProfileID` = U.`ID` " +
                        "WHERE (" + sqlString.Remove(sqlString.Length - 3) +
                        ") AND U.`TypeID` = '1' AND (T.StatusID ='3' OR T.StatusID = '19')" +
                        "ORDER BY T.`ID` DESC";
                }
                else
                {
                    cbWithUr.Checked = true;
                    fullSqlString    =
                        "SELECT T.`SecureID`, T.`ID`, T.`BoxesNumber`, T.`Weight`, T.`AgreedCost`, T.`AssessedCost`, T.`DriverID` " +
                        "FROM `tickets` T " +
                        "JOIN `usersprofiles` U " +
                        "ON T.`UserProfileID` = U.`ID` " +
                        "WHERE (" + sqlString.Remove(sqlString.Length - 3) + ") AND (T.`PrintNaklInMap` = '0' OR U.`TypeID` = '1') AND (T.StatusID ='3' OR T.StatusID = '19')" +
                        "ORDER BY T.`ID` DESC";
                }

                var     dm         = new DataManager();
                var     dataset    = dm.QueryWithReturnDataSet(fullSqlString);
                var     iter       = 1;
                var     overBoxes  = 0;
                var     overWeight = 0;
                decimal overCost   = 0;
                DriverID = String.Empty;
                dataset.Tables[0].Columns.Add("PorID");

                foreach (DataRow row in dataset.Tables[0].Rows)
                {
                    row["PorID"] = iter.ToString();
                    iter++;
                    DriverID    = row["DriverID"].ToString();
                    overBoxes  += Convert.ToInt32(row["BoxesNumber"]);
                    overWeight += String.IsNullOrEmpty(row["Weight"].ToString()) ? 0 : Convert.ToInt32(row["Weight"]);
                    overCost   += Convert.ToInt32(row["AgreedCost"]) != 0 ? Convert.ToDecimal(row["AgreedCost"]) : Convert.ToDecimal(row["AssessedCost"]);
                }
                lvAllPrint.DataSource = dataset;
                lvAllPrint.DataBind();

                try
                {
                    DriverName = dm.QueryWithReturnDataSet(String.Format("SELECT CONCAT(`FirstName`, ' ',  `LastName`, ' ', `ThirdName`) FROM `drivers` WHERE `id` = {0}", DriverID)).Tables[0].Rows[0][0].ToString();
                }
                catch (Exception)
                {
                    DriverName = "Не назначен";
                }

                lblDriver.Text     = lblDriver2.Text = DriversHelper.DriverIDToNameZP(DriverID);
                lblOverNumber.Text = dataset.Tables[0].Rows.Count.ToString();
                lblOverCost.Text   = lblOverCost2.Text = MoneyMethods.MoneySeparator(overCost.ToString());

                lblCostWord.Text = MoneyHelper.ToRussianString(overCost);

                lblOverBoxes.Text = overBoxes.ToString();
                lblBoxesWord.Text = NumberToRussianString.NumberToString(
                    Convert.ToInt64(overBoxes), NumberToRussianString.WordGender.Masculine);
                lblOverWeight.Text = overWeight.ToString();
                lblWeightWord.Text = NumberToRussianString.NumberToString(
                    Convert.ToInt64(overWeight), NumberToRussianString.WordGender.Masculine);

                Inpnaklnumber.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklNumber` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();
                Inpseria.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklSeria` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();
                Inpdate.Text =
                    dm.QueryWithReturnDataSet("SELECT `NaklDate` FROM `printdata`").Tables[0].Rows[0][0]
                    .ToString();

                var ticket = new Tickets {
                    ID = Convert.ToInt32(controlTicketID)
                };
                ticket.GetById();
            }

            if (String.IsNullOrEmpty(idListString) || lvAllPrint.Items.Count == 0)
            {
                Page.Visible = false;
                if (String.IsNullOrEmpty(idListString))
                {
                    Response.Write(Resources.PrintResources.PrintNaklPrilEmptyText);
                }
                else
                {
                    Response.Write(Resources.PrintResources.PrintNaklPrilEmptyText +
                                   String.Format("<br/><center><a href=\"{0}&with_ur=1\">печать с юр. лицами</a><center>", Request.RawUrl));
                }
                Page.Visible = false;
            }
        }
示例#22
0
        public static string StatusChangeFilter(ref Tickets ticket, string cDriverIdString, string cStatusIdString, string cStatusDescription, string cAdmissionDateString, string nStatusDescription, string nStatusIdString, string nDeliveryDateString, Roles currentRole)
        {
            #region Обработка входящих параметров
            int?     cStatusId;
            int?     nStatusId;
            int?     cDriverId;
            DateTime nDeliveryDate = Convert.ToDateTime("01.01.0001 0:00:00");
            try
            {
                cStatusId = Convert.ToInt32(cStatusIdString);
                nStatusId = Convert.ToInt32(nStatusIdString);
                cDriverId = Convert.ToInt32(cDriverIdString);
            }
            catch (Exception)
            {
                return("Неверный формат входных данных!");
            }

            try
            {
                if (nStatusId == 4 || nStatusId == 11)
                {
                    nDeliveryDate = Convert.ToDateTime(nDeliveryDateString);
                }
            }
            catch (Exception)
            {
                return("Неверный формат входных данных (d)!");
            }
            #endregion

            #region  Проверки на доступность обновления заявки
            //если заявка изменяется из текущего статуса "Завершено" в любой другой новый, то проверяем права пользователя на изменение заявок в текущем статусе "Завершено"
            if (cStatusId == 6 && nStatusId != 6 && currentRole.ActionCompletedStatus == 1)
            {
                return(String.Format("У вас нет прав на изменение статуса заявки в статусе \"{0}\"!", TicketStatusesResources.Completed));
            }

            #region Проверка на права выставления конкретного статуса
            if (cStatusId != 1 && nStatusId == 1 && currentRole.StatusNotProcessed != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.NotProcessed));
            }

            if (cStatusId != 2 && nStatusId == 2 && currentRole.StatusInStock != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.InStock));
            }

            if (cStatusId != 3 && nStatusId == 3 && currentRole.StatusOnTheWay != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.OnTheWay));
            }

            if (cStatusId != 4 && nStatusId == 4 && currentRole.StatusTransferInStock != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Transfer_InStock));
            }

            if (cStatusId != 5 && nStatusId == 5 && currentRole.StatusProcessed != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Processed));
            }

            if (cStatusId != 6 && nStatusId == 6 && currentRole.StatusCompleted != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Completed));
            }

            if (cStatusId != 7 && nStatusId == 7 && currentRole.StatusRefusingInCourier != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Refusing_InCourier));
            }

            if (cStatusId != 8 && nStatusId == 8 && currentRole.StatusReturnInStock != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Return_InStock));
            }

            if (cStatusId != 9 && nStatusId == 9 && currentRole.StatusCancelInStock != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Cancel_InStock));
            }

            if (cStatusId != 10 && nStatusId == 10 && currentRole.StatusCancel != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Cancel));
            }

            if (cStatusId != 11 && nStatusId == 11 && currentRole.StatusTransferInCourier != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Transfer_InCourier));
            }

            if (cStatusId != 12 && nStatusId == 12 && currentRole.StatusDelivered != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Delivered));
            }

            if (cStatusId != 13 && nStatusId == 13 && currentRole.StatusExchangeInCourier != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Exchange_InCourier));
            }

            if (cStatusId != 14 && nStatusId == 14 && currentRole.StatusDeliveryFromClientInCourier != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.DeliveryFromClient_InCourier));
            }

            if (cStatusId != 15 && nStatusId == 15 && currentRole.StatusExchangeInStock != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Exchange_InStock));
            }

            if (cStatusId != 16 && nStatusId == 16 && currentRole.StatusDeliveryFromClientInStock != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.DeliveryFromClient_InStock));
            }

            if (cStatusId != 17 && nStatusId == 17 && currentRole.StatusRefusalOnTheWay != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Refusal_OnTheWay));
            }

            if (cStatusId != 18 && nStatusId == 18 && currentRole.StatusRefusalByAddress != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Refusal_ByAddress));
            }

            if (cStatusId != 19 && nStatusId == 19 && currentRole.StatusUpload != 1)
            {
                return(String.Format("У вас нет прав выставлять статус \"{0}\"",
                                     TicketStatusesResources.Upload));
            }
            #endregion

            //если заявка изменяется из текущего статуса "Обработана" в новый статус, отличный от "Завершено", то проверяем не запрещено ли это пользователю правами
            if (cStatusId == 5 && nStatusId != 5 && nStatusId != 6 && currentRole.ActionDisallowDeliveredToCompletedStatus == 1)
            {
                return(String.Format("У вас нет прав  изменять статусы заявок в статусе \"{1}\" на статусы отличные от статуса \"{0}\"!",
                                     TicketStatusesResources.Completed,
                                     TicketStatusesResources.Processed));
            }

            //если заявка изменяется из текущего статуса "Не обработана" в новый статусы "на складе" и "перенос на складе"
            if (cStatusId == 1 && nStatusId != 1 && (nStatusId == 2 || nStatusId == 4))
            {
                return(String.Format("Нельзя изменять статусы заявок в статусе \"{0}\" на статусы \"{1}\" и \"{2}\"! Для перевода заявок на склад используйте печать чеков.",
                                     TicketStatusesResources.NotProcessed,
                                     TicketStatusesResources.InStock,
                                     TicketStatusesResources.Transfer_InStock));
            }

            /*при изменении заявки без водителя на новый статус, отличный от ("Не обработан", "На складе", "Перенос (на складе)", "Отмена", "Отмена (на складе)",
             * "Завершено", "Обмен (на складе)", "Доставка от клиента (на складе)") возвращаем ошибку*/
            if (cDriverId == 0 && nStatusId != 1 && nStatusId != 2 && nStatusId != 3 && nStatusId != 4 && nStatusId != 6 && nStatusId != 9 && nStatusId != 10 && nStatusId != 15 && nStatusId != 16)
            {
                return("Не все статусы обновлены! У некоторых заявок отсутствует водитель!");
            }

            /*если водитель не назначен, то проверяем права на изменение заявки без водителя в новый статус "Завершено"*/
            if (cDriverId == 0 && nStatusId == 6 && cStatusId != 6 && currentRole.ActionAllowChangeInCompletedWithoutDriver != 1)
            {
                return(String.Format("У вас нет прав изменять статусы заявок без водителя в статус \"{0}\"", TicketStatusesResources.Completed));
            }
            #endregion

            #region Присвоение нового и старого статуса заявке (если все проверки пройдены)
            //если текущий статус не равен новому - записываем изменения статуса
            if (cStatusId != nStatusId)
            {
                ticket.StatusIDOld = cStatusId;
                ticket.StatusID    = nStatusId;
            }
            //note: при изменении статуса у новой заявки старый в логи не пишется, так как заявка создается уже со старым статусом "Не обработана"
            #endregion

            #region  Обновление связанных данных
            //если новая расшифровка статуса не пустая, то записываем её (работает только для заявок в определенных ниже статусах)
            if (!String.IsNullOrEmpty(nStatusDescription) && (nStatusId == 4 || nStatusId == 7 || nStatusId == 8 || nStatusId == 9 || nStatusId == 10 || nStatusId == 11))
            {
                ticket.StatusDescription = nStatusDescription;
            }

            /*если новая расшифровка всё еще пустая - записываем старую если она есть
             *(нужно, так как при пакетном назначении заявкам расшифровки статуса не возможно получить старый статус каждой заявки в текстбокс)*/
            if (String.IsNullOrEmpty(nStatusDescription))
            {
                ticket.StatusDescription = cStatusDescription;
            }

            //если текущая дата приема на склад отсутствует и текущие статусы заявок "На складе" или "Перенос (на складе)", то записываем в дата приема текущее время
            if ((String.IsNullOrEmpty(cAdmissionDateString) || cAdmissionDateString == "01.01.0001 0:00:00") &&
                (nStatusId == 2 || nStatusId == 4))
            {
                ticket.AdmissionDate = DateTime.Now;
            }

            //если новый статус "Перенос (на складе)" или "Перенос (у курьера)", то записываем новую дату переноса
            if (nStatusId == 4 || nStatusId == 11)
            {
                ticket.DeliveryDate = nDeliveryDate;
            }

            //если текущий статус изменен на новый "Завершено", то записываем дату завершения (дата перевода заявки в статус "Завершено")
            if (nStatusId == 6 && cStatusId != 6)
            {
                ticket.CompletedDate = DateTime.Now;
            }

            //если текущий статус изменен на новый "Обработано", то записываем дату обработки (дату перевода заявки в новый статус "Обработано")
            // и шлем письма, указанные в бекенде, если заявки перешли в "Обработанно" для определнного клиента (АГС)
            if (nStatusId == 5 && cStatusId != 5)
            {
                ticket.ProcessedDate = DateTime.Now;
                var tempTicket = new Tickets {
                    ID = ticket.ID
                };
                tempTicket.GetById();
                if (tempTicket.UserID == 794)
                {
                    var emailIist = BackendHelper.TagToValue("ags_event_email_list").Split(new[] { ',' });
                    EmailMethods.MailSendHTML("АГС - новая заявка в статусе 'Обработано'", String.Format("АГС, заявка перешла в статус 'Обработано'<br/>" +
                                                                                                         "ID заявки: <b>{0}</b>", tempTicket.SecureID), emailIist);
                }
            }

            //если текущий статус изменен на новый "Перенос (на складе)", то шлем письмо на заданые емейлы и обнуляем водителя
            if (nStatusId == 4 && cStatusId != 4)
            {
                var email      = BackendHelper.TagToValue("transfer_in_stock_event_email");
                var tempTicket = new Tickets {
                    ID = ticket.ID
                };
                tempTicket.GetById();
                EmailMethods.MailSendHTML("Новый перевод заявки в статус 'Перенос (на складе)'", String.Format("Новый перевод заявки в статус 'Перенос (на складе)'<br/>" +
                                                                                                               "ID заявки: <b>{0}</b>", tempTicket.SecureID), email);
                ticket.DriverID = 0;
            }

            //если текущий статус "Не обработано" изменен на новый "На складе" или "Перенос (на складе)", и текущее время между 21.00 и 24.00, то шлем письмо на заданые емейлы
            var cHour = DateTime.Now.Hour;
            if ((nStatusId == 2 || nStatusId == 4) && cStatusId == 1 && cHour >= 21 && cHour <= 24)
            {
                var email      = BackendHelper.TagToValue("late_entries_event_email");
                var tempTicket = new Tickets {
                    ID = ticket.ID
                };
                tempTicket.GetById();
                EmailMethods.MailSendHTML("Поздний принос груза на склад", String.Format("Еще один груз принесли после 21.00<br/>" +
                                                                                         "ID заявки: <b>{0}</b><br/>" +
                                                                                         "ID пользователя: <b>{1}</b><br/>", tempTicket.SecureID, tempTicket.UserID), email);
            }

            //если текущий статус меняется на новый "В пути" или на "Отказ (у курьера)" - меняем привезенное бабло на 0 (для кассы)
            if (nStatusId == 3 || nStatusId == 7)
            {
                ticket.ReceivedEUR = 0;
                ticket.ReceivedBLR = 0;
                ticket.ReceivedUSD = 0;
                ticket.ReceivedRUR = 0;
            }

            //если заявка переходит из статусов "На складе" или "Не обработано" в статусы "Отмена" или "Отмена на складе"
            if ((cStatusId == 2 || cStatusId == 1) && (nStatusId == 9 || nStatusId == 10))
            {
                var tempTicket = new Tickets {
                    ID = ticket.ID
                };
                tempTicket.GetById();
                string[] emailList         = new string[2];
                var      managerEmail      = UsersHelper.GetUserAttachedManager(Convert.ToInt32(tempTicket.UserID)).Email;
                var      salesManagerEmail = UsersHelper.GetUserAttachedSalesManager(Convert.ToInt32(tempTicket.UserID)).Email;
                if (!String.IsNullOrEmpty(managerEmail))
                {
                    emailList[0] = managerEmail;
                }
                if (!String.IsNullOrEmpty(salesManagerEmail))
                {
                    emailList[1] = managerEmail;
                }
                EmailMethods.MailSendHTML("Отмена заявки", String.Format("Заявка перешла в статус '{0}'<br/><br/>" +
                                                                         "Заявка: <b>{1}</b> (ID: {2})<br/>" +
                                                                         "Отправитель: <b>{3}</b> (UID: {4})<br/>" +
                                                                         "Профиль: <b>{5}</b> тел.:{6}<br/>" +
                                                                         "Город доставки: <b>{7}</b> (CID: {8})<br/>" +
                                                                         "Получатель: <b>{9}</b> (тел: {10})<br/><br/>" +
                                                                         "Причина отмены: <b>{11}</b><br/>",
                                                                         OtherMethods.TicketStatusToText(tempTicket.StatusID.ToString()),
                                                                         tempTicket.SecureID,
                                                                         GoodsHelper.GoodsToString(tempTicket.FullSecureID),
                                                                         UsersHelper.UserIDToFullName(tempTicket.UserID.ToString()),
                                                                         tempTicket.UserID,
                                                                         UsersProfilesHelper.UserProfileIDToFullFamilyOrCompanyname(tempTicket.UserProfileID.ToString()),
                                                                         UsersProfilesHelper.UserProfileToPhone(tempTicket.UserProfileID.ToString()),
                                                                         CityHelper.CityIDToCityNameWithotCustom(tempTicket.CityID.ToString()),
                                                                         tempTicket.CityID,
                                                                         tempTicket.RecipientFirstName + " " + tempTicket.RecipientLastName + " " + tempTicket.RecipientThirdName,
                                                                         tempTicket.RecipientPhone + ";" + tempTicket.RecipientPhoneTwo,
                                                                         tempTicket.StatusDescription
                                                                         ), emailList);
            }

            //если заявка переходит из статуса "В пути" в статусы отличные от "Завершено", "Доставлено", "Обработано", "В пути"
            if (cStatusId == 3 && nStatusId != 6 && nStatusId != 12 && nStatusId != 5 && nStatusId != 3)
            {
                var tempTicket = new Tickets {
                    ID = ticket.ID
                };
                tempTicket.GetById();
                string[] emailList         = new string[2];
                var      managerEmail      = UsersHelper.GetUserAttachedManager(Convert.ToInt32(tempTicket.UserID)).Email;
                var      salesManagerEmail = UsersHelper.GetUserAttachedSalesManager(Convert.ToInt32(tempTicket.UserID)).Email;
                if (!String.IsNullOrEmpty(managerEmail))
                {
                    emailList[0] = managerEmail;
                }
                if (!String.IsNullOrEmpty(salesManagerEmail))
                {
                    emailList[1] = managerEmail;
                }
                EmailMethods.MailSendHTML("Изменен статус заявки в пути", String.Format("Заявка в пути перешла в статус '{0}'<br/><br/>" +
                                                                                        "Заявка: <b>{1}</b> (ID: {2})<br/>" +
                                                                                        "Отправитель: <b>{3}</b> (UID: {4})<br/>" +
                                                                                        "Профиль: <b>{5}</b> тел.:{6}<br/>" +
                                                                                        "Город доставки: <b>{7}</b> (CID: {8})<br/>" +
                                                                                        "Получатель: <b>{9}</b> (тел: {10})<br/><br/>" +
                                                                                        "Курьер: <b>{11}</b><br/>",
                                                                                        OtherMethods.TicketStatusToText(tempTicket.StatusID.ToString()),
                                                                                        tempTicket.SecureID,
                                                                                        GoodsHelper.GoodsToString(tempTicket.FullSecureID),
                                                                                        UsersHelper.UserIDToFullName(tempTicket.UserID.ToString()),
                                                                                        tempTicket.UserID,
                                                                                        UsersProfilesHelper.UserProfileIDToFullFamilyOrCompanyname(tempTicket.UserProfileID.ToString()),
                                                                                        UsersProfilesHelper.UserProfileToPhone(tempTicket.UserProfileID.ToString()),
                                                                                        CityHelper.CityIDToCityNameWithotCustom(tempTicket.CityID.ToString()),
                                                                                        tempTicket.CityID,
                                                                                        tempTicket.RecipientFirstName + " " + tempTicket.RecipientLastName + " " + tempTicket.RecipientThirdName,
                                                                                        tempTicket.RecipientPhone + ";" + tempTicket.RecipientPhoneTwo,
                                                                                        DriversHelper.DriverIdToName(tempTicket.DriverID.ToString())
                                                                                        ), emailList);
            }

            //если текущий статус изменен на новый "Отказ (в пути)", то величину "За услугу (GruzobozCost)" делим попалам
            if (nStatusId == 17 && cStatusId != 17)
            {
                var tempTicket = new Tickets {
                    ID = ticket.ID
                };
                tempTicket.GetById();
                if (tempTicket.GruzobozCost != null)
                {
                    ticket.GruzobozCost = MoneyMethods.MoneyRounder100(Convert.ToDecimal(tempTicket.GruzobozCost / 2));
                }
            }

            //фиксирование в заявке даты возврата, если заявка перешла из старого статуса в новый статус 8, 15, 16, 9
            if ((nStatusId == 8 && cStatusId != 8) || (nStatusId == 9 && cStatusId != 9) || (nStatusId == 15 && cStatusId != 15) || (nStatusId == 16 && cStatusId != 16))
            {
                ticket.ReturnDate = DateTime.Now;
            }
            #endregion

            return(null); //возвращаем null, что равно отсутствию ошибок
        }
示例#23
0
        protected void Page_Load(object sender, EventArgs e)
        {
            OtherMethods.ActiveRightMenuStyleChanche("hlApiLogs", this.Page);
            OtherMethods.ActiveRightMenuStyleChanche("hlContent", this.Page);
            Page.Title = PagesTitles.ManagerApiLogsView + BackendHelper.TagToValue("page_title_part");

            #region Блок доступа к странице
            var userInSession = (Users)Session["userinsession"];
            var rolesList     = Application["RolesList"] as List <Roles>;
            var currentRole   = (Roles)rolesList.SingleOrDefault(u => u.Name.ToLower() == userInSession.Role.ToLower());
            if (currentRole.PageApiLogView != 1)
            {
                Response.Redirect("~/Error.aspx?id=1");
            }
            #endregion

            var dm = new DataManager();
            if (!IsPostBack)
            {
                stbCreateDate1.Text = DateTime.Now.ToString("dd-MM-yyyy");
                var dataSet1 = dm.QueryWithReturnDataSet("SELECT DISTINCT ApiType FROM apilog ORDER BY UserID ASC");
                sddApiType.DataSource     = dataSet1;
                sddApiType.DataTextField  = "ApiType";
                sddApiType.DataValueField = "ApiType";
                sddApiType.DataBind();
                sddApiType.Items.Insert(0, new ListItem("Все", string.Empty));

                var dataSet2 = dm.QueryWithReturnDataSet("SELECT DISTINCT ApiName FROM apilog ORDER BY UserID ASC");
                sddApiName.DataSource     = dataSet2;
                sddApiName.DataTextField  = "ApiName";
                sddApiName.DataValueField = "ApiName";
                sddApiName.DataBind();
                sddApiName.Items.Insert(0, new ListItem("Все", string.Empty));

                var dataSet3 = dm.QueryWithReturnDataSet("SELECT DISTINCT MethodName FROM apilog ORDER BY UserID ASC");
                sddMethodName.DataSource     = dataSet3;
                sddMethodName.DataTextField  = "MethodName";
                sddMethodName.DataValueField = "MethodName";
                sddMethodName.DataBind();
                sddMethodName.Items.Insert(0, new ListItem("Все", string.Empty));
            }

            var whereBetween = String.Empty;
            if (!string.IsNullOrEmpty(stbCreateDate1.Text) && !string.IsNullOrEmpty(stbCreateDate2.Text))
            {
                whereBetween = "WHERE (CreateDate BETWEEN '" +
                               Convert.ToDateTime(stbCreateDate1.Text).ToString("yyyy-MM-dd") + "' AND '" +
                               Convert.ToDateTime(stbCreateDate2.Text).ToString("yyyy-MM-dd") + "')";
            }

            if (!string.IsNullOrEmpty(stbCreateDate1.Text) && string.IsNullOrEmpty(stbCreateDate2.Text))
            {
                whereBetween = "WHERE (CreateDate BETWEEN '" +
                               Convert.ToDateTime(stbCreateDate1.Text).ToString("yyyy-MM-dd") + "' AND '" +
                               Convert.ToDateTime(stbCreateDate1.Text).AddYears(1).ToString("yyyy-MM-dd") + "')";
            }

            if (string.IsNullOrEmpty(stbCreateDate1.Text) && !string.IsNullOrEmpty(stbCreateDate2.Text))
            {
                whereBetween = "WHERE (CreateDate BETWEEN '" +
                               Convert.ToDateTime(stbCreateDate2.Text).AddYears(-2).ToString("yyyy-MM-dd") + "' AND '" +
                               Convert.ToDateTime(stbCreateDate2.Text).ToString("yyyy-MM-dd") + "')";
            }

            var dataSetForStatInfo = dm.QueryWithReturnDataSet("" +
                                                               "SELECT COUNT(DISTINCT `UserID`) FROM `apilog` " + whereBetween + ";" +
                                                               "SELECT SUM(`ResponseBodyLenght`) FROM `apilog` " + whereBetween + ";" +
                                                               "SELECT COUNT(DISTINCT `ApiKey`) FROM `apilog` " + whereBetween + ";" +
                                                               "SELECT COUNT(*) FROM `apilog` " + whereBetween + ";");
            var dataSetForTopQuery = dm.QueryWithReturnDataSet("SELECT UserID, COUNT(*) as NumberOfQuery FROM `apilog` " + whereBetween + " GROUP BY UserID ORDER BY NumberOfQuery DESC LIMIT 4;");
            var dataSetForTopInfo  = dm.QueryWithReturnDataSet("SELECT UserID, SUM(`ResponseBodyLenght`) as InfoCount FROM `apilog` " + whereBetween + " GROUP BY UserID ORDER BY InfoCount DESC LIMIT 4;");
            lblFirstByInfo.Text     = lblFirstByQuery.Text = lblSecondByInfo.Text = lblSecondByQuery.Text =
                lblThirdByInfo.Text = lblThirdByQuery.Text = lblFourthByInfo.Text = lblFourthByQuery.Text = String.Empty;

            lblUsersCount.Text =
                MoneyMethods.MoneySeparator(dataSetForStatInfo.Tables[0].Rows[0][0]
                                            .ToString());
            var responceBobyLenghtSummInBitString = dataSetForStatInfo.Tables[1].Rows[0][0]
                                                    .ToString();
            decimal responceBobyLenghtSummInBit = 0;
            if (!String.IsNullOrEmpty(responceBobyLenghtSummInBitString))
            {
                responceBobyLenghtSummInBit = Convert.ToDecimal(responceBobyLenghtSummInBitString);
            }
            lblInfoCount.Text = String.Format("{1} Mb / {0} Kb",
                                              MoneyMethods.MoneySeparator(responceBobyLenghtSummInBit),
                                              MoneyMethods.MoneySeparator(Convert.ToDecimal(responceBobyLenghtSummInBit) / 1048576));
            lblApiKeysCount.Text = MoneyMethods.MoneySeparator(dataSetForStatInfo.Tables[2].Rows[0][0].ToString());
            lblQueriesCount.Text = MoneyMethods.MoneySeparator(dataSetForStatInfo.Tables[3].Rows[0][0].ToString());
            var currentAppAddress = BackendHelper.TagToValue("current_app_address");
            if (dataSetForTopQuery.Tables[0].Rows.Count >= 1)
            {
                lblFirstByQuery.Text = String.Format("<a href='http://{2}/ManagerUI/Menu/Souls/ClientEdit.aspx?id={3}'>{0}</a>: {1}",
                                                     UsersHelper.UserIDToFullName(dataSetForTopQuery.Tables[0].Rows[0][0].ToString()),
                                                     dataSetForTopQuery.Tables[0].Rows[0][1],
                                                     currentAppAddress,
                                                     dataSetForTopQuery.Tables[0].Rows[0][0]);
            }
            if (dataSetForTopQuery.Tables[0].Rows.Count >= 2)
            {
                lblSecondByQuery.Text = String.Format("<a href='http://{2}/ManagerUI/Menu/Souls/ClientEdit.aspx?id={3}'>{0}</a>: {1}",
                                                      UsersHelper.UserIDToFullName(dataSetForTopQuery.Tables[0].Rows[1][0].ToString()),
                                                      dataSetForTopQuery.Tables[0].Rows[1][1],
                                                      currentAppAddress,
                                                      dataSetForTopQuery.Tables[0].Rows[1][0]);
            }
            if (dataSetForTopQuery.Tables[0].Rows.Count >= 3)
            {
                lblThirdByQuery.Text = String.Format("<a href='http://{2}/ManagerUI/Menu/Souls/ClientEdit.aspx?id={3}'>{0}</a>: {1}",
                                                     UsersHelper.UserIDToFullName(dataSetForTopQuery.Tables[0].Rows[2][0].ToString()),
                                                     dataSetForTopQuery.Tables[0].Rows[2][1],
                                                     currentAppAddress,
                                                     dataSetForTopQuery.Tables[0].Rows[2][0]);
            }
            if (dataSetForTopQuery.Tables[0].Rows.Count >= 4)
            {
                lblFourthByQuery.Text = String.Format("<a href='http://{2}/ManagerUI/ClientEdit.aspx?id={3}'>{0}</a>: {1}",
                                                      UsersHelper.UserIDToFullName(dataSetForTopQuery.Tables[0].Rows[3][0].ToString()),
                                                      dataSetForTopQuery.Tables[0].Rows[3][1],
                                                      currentAppAddress,
                                                      dataSetForTopQuery.Tables[0].Rows[3][0]);
            }


            if (dataSetForTopInfo.Tables[0].Rows.Count >= 1)
            {
                lblFirstByInfo.Text = String.Format("<a href='http://{2}/ManagerUI/Menu/Souls/ClientEdit.aspx?id={3}'>{0}</a>: {1} Mb",
                                                    UsersHelper.UserIDToFullName(dataSetForTopInfo.Tables[0].Rows[0][0].ToString()),
                                                    MoneyMethods.MoneySeparator(Convert.ToDecimal(dataSetForTopInfo.Tables[0].Rows[0][1]) / 1048576),
                                                    currentAppAddress,
                                                    dataSetForTopInfo.Tables[0].Rows[0][0]);
            }
            if (dataSetForTopInfo.Tables[0].Rows.Count >= 2)
            {
                lblSecondByInfo.Text = String.Format("<a href='http://{2}/ManagerUI/Menu/Souls/ClientEdit.aspx?id={3}'>{0}</a>: {1} Mb",
                                                     UsersHelper.UserIDToFullName(dataSetForTopInfo.Tables[0].Rows[1][0].ToString()),
                                                     MoneyMethods.MoneySeparator(Convert.ToDecimal(dataSetForTopInfo.Tables[0].Rows[1][1]) / 1048576),
                                                     currentAppAddress,
                                                     dataSetForTopInfo.Tables[0].Rows[1][0]);
            }
            if (dataSetForTopInfo.Tables[0].Rows.Count >= 3)
            {
                lblThirdByInfo.Text = String.Format("<a href='http://{2}/ManagerUI/Menu/Souls/ClientEdit.aspx?id={3}'>{0}</a>: {1} Mb",
                                                    UsersHelper.UserIDToFullName(dataSetForTopInfo.Tables[0].Rows[2][0].ToString()),
                                                    MoneyMethods.MoneySeparator(Convert.ToDecimal(dataSetForTopInfo.Tables[0].Rows[2][1]) / 1048576),
                                                    currentAppAddress,
                                                    dataSetForTopInfo.Tables[0].Rows[2][0]);
            }
            if (dataSetForTopInfo.Tables[0].Rows.Count >= 4)
            {
                lblFourthByInfo.Text = String.Format("<a href='http://{2}/ManagerUI/ClientEdit.aspx?id={3}'>{0}</a>: {1} Mb",
                                                     UsersHelper.UserIDToFullName(dataSetForTopInfo.Tables[0].Rows[3][0].ToString()),
                                                     MoneyMethods.MoneySeparator(Convert.ToDecimal(dataSetForTopInfo.Tables[0].Rows[3][1]) / 1048576),
                                                     currentAppAddress,
                                                     dataSetForTopInfo.Tables[0].Rows[3][0]);
            }

            if (BackendHelper.TagToValue("allow_unauth_api_request") == "true")
            {
                divOpenApi.Visible = true;
            }
        }
示例#24
0
        public void Page_Load(object sender, EventArgs e)
        {
            Page.Title = PagesTitles.ManagerDefaultTitle + BackendHelper.TagToValue("page_title_part");
            OtherMethods.ActiveRightMenuStyleChanche("hlMain", this.Page);
            var user = (Users)Session["userinsession"];

            lblUserName.Text = user.Name;
            lblUID.Text      = user.ID.ToString();
            lblLogin.Text    = user.Login;
            lblEmail.Text    = user.Email;
            lblRole.Text     = user.RussRole;

            var userInSession = (Users)Session["userinsession"];
            var rolesList     = Application["RolesList"] as List <Roles>;
            var currentRole   = (Roles)rolesList.SingleOrDefault(u => u.Name.ToLower() == userInSession.Role.ToLower());

            if (currentRole.Name == Users.Roles.SuperAdmin.ToString())
            {
                lbRestartSubMemcache.Visible = true;
            }
            var dm = new DataManager();

            lblAllUsers.Text =
                MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("SELECT COUNT(*) FROM `users` WHERE `Role` = 'User';").Tables[0].Rows[0][0].ToString());
            lblBlockedUsers.Text =
                MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("SELECT COUNT(*) FROM `users` WHERE `Role` = 'User' AND `Status` = 3;").Tables[0].Rows[0][0].ToString());
            lblActiveUsers.Text =
                MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("SELECT COUNT(*) FROM `users` WHERE `Role` = 'User' AND `Status` = 2;").Tables[0].Rows[0][0].ToString());
            lblNewUsers.Text =
                MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("SELECT COUNT(*) FROM `users` WHERE `Role` = 'User' AND `Status` = 1;").Tables[0].Rows[0][0].ToString());
            pnlUsers.Visible = true;

            if (currentRole.PageUserTicketView == 1 || currentRole.PageUserTicketNotProcessedView == 1 || currentRole.PageUserTicketByDeliveryOnMinsk == 1 || currentRole.PageUserTicketByDeliveryOnBelarus == 1)
            {
                lblTicketsAll.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `tickets`;").Tables[0].Rows[0][0].ToString());
                lblCreateToday.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet(String.Format("select count(*) from `tickets` WHERE (`CreateDate` > '{0}' AND `CreateDate` < '{1}' );", DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"))).Tables[0].Rows[0][0].ToString());
                lblNewToday.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet(String.Format("select count(*) from `tickets` WHERE (`CreateDate` > '{0}' AND `CreateDate` < '{1}' AND `StatusID` = 1);", DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"))).Tables[0].Rows[0][0].ToString());
                lblNewAll.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `tickets` WHERE `StatusID` = 1;").Tables[0].Rows[0][0].ToString());
                lblDeliveryToday.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet(String.Format("select count(*) from `tickets` WHERE (`DeliveryDate` = '{0}');", DateTime.Now.ToString("yyyy-MM-dd"))).Tables[0].Rows[0][0].ToString());
                lblDeliveryTomorow.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet(String.Format("select count(*) from `tickets` WHERE (`DeliveryDate` = '{0}');", DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"))).Tables[0].Rows[0][0].ToString());
                lblInProgress.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `tickets` WHERE `StatusID` = 3;").Tables[0].Rows[0][0].ToString());
                lblDelivered.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `tickets` WHERE `StatusID` = 12;").Tables[0].Rows[0][0].ToString());
                lblProcessed.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `tickets` WHERE `StatusID` = 5;").Tables[0].Rows[0][0].ToString());
                lblCompleted.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `tickets` WHERE `StatusID` = 6;").Tables[0].Rows[0][0].ToString());
                pnlTickets.Visible = true;
            }

            if (currentRole.PageCategoryView == 1)
            {
                lblTitles.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `titles`;").Tables[0].Rows[0][0].ToString());
                pnlCategory.Visible = true;
            }

            if (currentRole.PageCityView == 1)
            {
                lblCity.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `city`;").Tables[0].Rows[0][0].ToString());
                pnlCity.Visible = true;
            }

            if (currentRole.PageDriversView == 1)
            {
                lblDrivers.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("SELECT COUNT(*) FROM `drivers` WHERE `StatusID` = 1;").Tables[0].Rows[0][0].ToString());
                pnlDrivers.Visible = true;
            }

            if (currentRole.PageManagersView == 1)
            {
                lblManagers.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("SELECT COUNT(*) FROM `users` WHERE `Role` <> 'User';").Tables[0].Rows[0][0].ToString());
                pnlManagers.Visible = true;
            }

            if (currentRole.PageNewsView == 1)
            {
                lblNews.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `news`;").Tables[0].Rows[0][0].ToString());
                pnlNews.Visible = true;
            }

            if (currentRole.PageErrorsLogView == 1)
            {
                lblErrors.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `errorslog`;").Tables[0].Rows[0][0].ToString());
                pnlErrors.Visible = true;
            }

            if (currentRole.PageFeedbacksView == 1)
            {
                lblFeedback.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("SELECT COUNT(*) FROM `feedback` WHERE StatusID = 0;").Tables[0].Rows[0][0].ToString());
                pnlFeedback.Visible = true;
            }

            if (currentRole.PageTracksView == 1)
            {
                lblTracks.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `tracks`;").Tables[0].Rows[0][0].ToString());
                pnlTracks.Visible = true;
            }

            if (currentRole.PageLogsView == 1)
            {
                lblLogs.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `userslog`;").Tables[0].Rows[0][0].ToString());
                pnlLogs.Visible = true;
            }

            if (currentRole.PageApiLogView == 1)
            {
                lblApiLogs.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `apilog`;").Tables[0].Rows[0][0].ToString());
                pnlApiLogs.Visible = true;
            }

            if (currentRole.PageClientsView == 1)
            {
                lblCategory.Text =
                    MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `category`;").Tables[0].Rows[0][0].ToString());
                pnlClients.Visible = true;
            }

            lblProvidersView.Text =
                MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet("select count(*) from `providers`;").Tables[0].Rows[0][0].ToString());

            var lastNews = dm.QueryWithReturnDataSet("SELECT `CreateDate`, `Title`, `Body`, `TitleUrl` FROM `news` WHERE `NewsTypeID` = '1' ORDER BY ID DESC LIMIT 1;").Tables[0];

            if (lastNews.Rows.Count != 0)
            {
                lblNewsDate.Text  = Convert.ToDateTime(lastNews.Rows[0][0]).ToString("dd.MM.yyyy");
                lblNewsTitle.Text = lastNews.Rows[0][1].ToString();
                var body = lastNews.Rows[0][2].ToString();
                if (body.Length > 300)
                {
                    lblNewsText.Text = body.Remove(300, body.Length - 300) + "...";
                }
                else
                {
                    lblNewsText.Text = body;
                }
                hlNewsTitle.NavigateUrl = string.Format("~/ManagerUI/Menu/NewsFeed/NewsFromFeedView.aspx?title={0}", lastNews.Rows[0][3].ToString());
            }

            //пересчитываем просмотренные новости
            //обновляем\задаем авторизационную куку с данными пользователя
            AuthenticationMethods.SetUserCookie(userInSession);

            //механизм нотификаций
            lblStatus.Text = String.Empty;
            if (Session["flash:now"] != null && Session["flash:now"].ToString() != String.Empty)
            {
                lblStatus.Text       = Session["flash:now"].ToString();
                Session["flash:now"] = String.Empty;
            }
        }
示例#25
0
        public void btnSendComProp_Click(Object sender, EventArgs e)
        {
            //читаем старый файл
            if (!Directory.Exists(HttpContext.Current.Server.MapPath("~/Temp/SendedPrices/")))
            {
                Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/Temp/SendedPrices/"));
            }
            var fileName = "Прайс " + BackendHelper.TagToValue("not_official_name") + " (" + OtherMethods.CreateUniqId(tbEmail.Text + DateTime.Now.ToString("hh:mm:ssttzz")) + ").xls";
            var dataFile = HttpContext.Current.Server.MapPath("~/Temp/SendedPrices/" + fileName);
            var dm       = new DataManager();

            //получаем данные отправителя прайса из сотрудников
            var userInSession   = (Users)Session["userinsession"];
            var emailSenderData = new Users()
            {
                ID = userInSession.ID
            };

            emailSenderData.GetById();

            var categoryIds         = string.Empty;
            var haveCheckedCategory = false;

            foreach (var items in lvAllCategory.Items)
            {
                var hfCategoryId = (HiddenField)items.FindControl("hfCategoryId");
                var cbCategory   = (CheckBox)items.FindControl("cbCategory");
                if (cbCategory.Checked)
                {
                    categoryIds        += string.Format("{0},", hfCategoryId.Value);
                    haveCheckedCategory = true;
                }
            }

            DataSet ds;

            if (!haveCheckedCategory)
            {
                ds = dm.QueryWithReturnDataSet(
                    "SELECT Name as 'Наименование', " +
                    "MarginCoefficient as 'Юр. лицо', " +
                    "MarginCoefficient as 'Физ. лицо', " +
                    "MarginCoefficient as 'Физ. лица в скид.' " +
                    "FROM `titles` ORDER BY `Name`");
            }
            else
            {
                categoryIds = categoryIds.Remove(categoryIds.Length - 1, 1);
                ds          = dm.QueryWithReturnDataSet(String.Format(
                                                            "SELECT C.Name as 'Наименование', " +
                                                            "C.MarginCoefficient as 'Юр. лицо', " +
                                                            "C.MarginCoefficient as 'Физ. лицо', " +
                                                            "C.MarginCoefficient as 'Физ. лица в скид.' " +
                                                            "FROM `titles` C WHERE C.`CategoryID` IN ({0})  ORDER BY C.`Name`", categoryIds));
            }
            var goodList    = new List <GoodsFromAPI>();
            var goods       = new GoodsFromAPI();
            var tableToSend = "<table class='table' style='width: 100%; border-collapse: collapse;'><tr>" +
                              "<th style='border: 1px solid #666666; padding: 3px 6px; text-align: left;'>Наименование</th>" +
                              "<th style='border: 1px solid #666666; padding: 3px 6px;'>По РБ</th>" +
                              "<th style='border: 1px solid #666666; padding: 3px 6px;'>По Минску</th>" +
                              "</tr>";

            List <ModelSortingCosts> table_list = new List <ModelSortingCosts>();
            DataTable sortedDS = new DataTable();

            sortedDS.Columns.Add(string.Format("Наименование", 0), typeof(string));
            sortedDS.Columns.Add(string.Format("Дверь/Дверь", 1), typeof(string));
            sortedDS.Columns.Add(string.Format("Склад/Дверь", 2), typeof(string));
            sortedDS.Columns.Add(string.Format("По Минску", 3), typeof(string));

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                ModelSortingCosts row_list = new ModelSortingCosts();

                goodList.Clear();
                goods.Description   = row[0].ToString();
                goods.Number        = 1;
                goods.IsAdditional  = 0;
                goods.WithoutAkciza = 0;
                goods.Coefficient   = 0;
                goodList.Add(goods);

                row_list.name      = row[0].ToString();
                row_list.costDD    = Calculator.Calculate(goodList, 187, 1, 239, "1", null, null, true);
                row_list.costSD    = Calculator.Calculate(goodList, 187, 1, 239, "1");
                row_list.costMinsk = Calculator.Calculate(goodList, 11, 1, 239, "1");

                table_list.Add(row_list);
            }
            table_list = table_list.OrderBy(x => x.costSD).ToList();
            foreach (ModelSortingCosts model in table_list)
            {
                DataRow dsRow = sortedDS.NewRow();
                dsRow[0] = model.name;
                dsRow[1] = model.costDD;
                dsRow[2] = model.costSD;
                dsRow[3] = model.costMinsk;
                sortedDS.Rows.Add(dsRow);
            }

            foreach (ModelSortingCosts row in table_list)
            {
                tableToSend += string.Format("<tr>" +
                                             "<td style='border: 1px solid #666666; padding: 3px 6px; text-align: left;'>{0}</td>" +
                                             "<td style='border: 1px solid #666666; padding: 3px 6px;'>{1}</td>" +
                                             "<td style='border: 1px solid #666666; padding: 3px 6px;'>{2}</td>" +
                                             "</tr>", row.name, MoneyMethods.MoneySeparator(row.costDD.ToString()), MoneyMethods.MoneySeparator(row.costSD.ToString()), MoneyMethods.MoneySeparator(row.costMinsk.ToString()));
            }
            tableToSend += "</table>";
            DataRow emptyRow = sortedDS.NewRow();
            DataRow newRow   = sortedDS.NewRow();

            newRow[0] = String.Format("тел.: {0}, email: {3}, skype: {4}", emailSenderData.PhoneWorkOne, emailSenderData.Name, emailSenderData.Family, emailSenderData.Email, emailSenderData.Skype, userInSession.RussRole.ToLower());
            sortedDS.Rows.Add(emptyRow);
            sortedDS.Rows.Add(newRow);
            sortedDS.TableName = "Прайс" + BackendHelper.TagToValue("not_official_name");

            Workbook book = Workbook.Load(HttpContext.Current.Server.MapPath("~/OtherFiles/" + BackendHelper.TagToValue("comprop_tpl_file_name")));

            AddDataTableToWorkBook(sortedDS, ref book);
            book.Save(dataFile);
            var emailNotification = new EmailNotifications {
                Name = "comprop_guest_message"
            };

            emailNotification.GetByName();
            EmailMethods.MailSendHTML(tbSubject.Text, string.Format(emailNotification.Body,
                                                                    emailSenderData.PhoneWorkOne,
                                                                    emailSenderData.Name,
                                                                    emailSenderData.Family,
                                                                    emailSenderData.Email,
                                                                    emailSenderData.Skype,
                                                                    tableToSend,
                                                                    userInSession.RussRole.ToLower(),
                                                                    BackendHelper.TagToValue("official_name"),
                                                                    BackendHelper.TagToValue("current_app_address"),
                                                                    BackendHelper.TagToValue("not_official_name")),
                                      tbEmail.Text,
                                      dataFile,
                                      false);

            Session["flash:now"] = "<span style='color: white;'>Комерческое предложение успешно отправлено на e-mail <b>" + tbEmail.Text + "</b>!</span>";
            Page.Response.Redirect("~/ManagerUI/Menu/Documents/SendComProp.aspx");
        }
示例#26
0
        protected void ListViewDataBind()
        {
            var dm = new DataManager();
            var ds = dm.QueryWithReturnDataSet("select * from `users` WHERE Role <> \"User\" ORDER BY Family ASC;");

            lvAllManager.DataSource = ds;
            lvAllManager.DataBind();

            #region  едирект на первую страницу при поиске
            if (lvAllManager.Items.Count == 0 && lvDataPager.TotalRowCount != 0)
            {
                lvDataPager.SetPageProperties(0, lvDataPager.PageSize, false);
                lvAllManager.DataBind();
            }
            #endregion

            var user        = (Users)Session["userinsession"];
            var rolesList   = Application["RolesList"] as List <Roles>;
            var currentRole = (Roles)rolesList.SingleOrDefault(u => u.Name.ToLower() == user.Role.ToLower());

            if (currentRole.PageManagerEdit != 1)
            {
                hlManagerCreate.Visible = false;
            }

            foreach (ListViewDataItem items in lvAllManager.Items)
            {
                var lbEditLink                = (HyperLink)items.FindControl("lbEdit");
                var lbDeleteLink              = (LinkButton)items.FindControl("lbDelete");
                var idManager                 = (Label)items.FindControl("lblID");
                var hfRoleText                = (HiddenField)items.FindControl("hfRole");
                var lblLinkedClientsCount     = (Label)items.FindControl("lblLinkedClientsCount");
                var lblLinkedUsersTicketCount = (Label)items.FindControl("lblLinkedUsersTicketCount");

                if ((hfRoleText.Value == Users.Roles.Admin.ToString() || hfRoleText.Value == Users.Roles.SuperAdmin.ToString()) && user.Role != Users.Roles.SuperAdmin.ToString())
                {
                    lbEditLink.Visible   = false;
                    lbDeleteLink.Visible = false;
                }

                if (hfRoleText.Value == Users.Roles.SuperAdmin.ToString() && user.Role == Users.Roles.SuperAdmin.ToString())
                {
                    lbEditLink.Visible   = true;
                    lbDeleteLink.Visible = false;
                }

                if (idManager.Text == user.ID.ToString())
                {
                    lbDeleteLink.Visible = false;
                    lbEditLink.Visible   = true;
                }

                if (currentRole.ActionManagersDelete != 1)
                {
                    lbDeleteLink.Visible = false;
                }

                if (currentRole.PageManagerEdit != 1)
                {
                    lbEditLink.Visible = false;
                }

                if (hfRoleText.Value == Users.Roles.Manager.ToString())
                {
                    lblLinkedClientsCount.Text = dm.QueryWithReturnDataSet(
                        String.Format("SELECT COUNT(*) FROM `Users` WHERE `ManagerID` = {0}",
                                      idManager.Text)).Tables[0].Rows[0][0]
                                                 .ToString();

                    lblLinkedUsersTicketCount.Text = MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet(
                                                                                     String.Format("SELECT COUNT(*) FROM Tickets T JOIN Users U ON T.`UserID` = U.`ID` WHERE (U.`ManagerID` = {0}) AND (T.CreateDate BETWEEN '{1}' AND '{2}')",
                                                                                                   idManager.Text,
                                                                                                   Convert.ToDateTime(stbDate1.Text).ToString("yyyy-MM-dd"),
                                                                                                   Convert.ToDateTime(stbDate2.Text).ToString("yyyy-MM-dd")))
                                                                                 .Tables[0].Rows[0][0].ToString());
                }

                if (hfRoleText.Value == Users.Roles.SalesManager.ToString())
                {
                    lblLinkedClientsCount.Text = dm.QueryWithReturnDataSet(
                        String.Format("SELECT COUNT(*) FROM `Users` WHERE `SalesManagerID` = {0}",
                                      idManager.Text)).Tables[0].Rows[0][0]
                                                 .ToString();


                    lblLinkedUsersTicketCount.Text = MoneyMethods.MoneySeparator(dm.QueryWithReturnDataSet(
                                                                                     String.Format("SELECT COUNT(*) FROM Tickets T JOIN Users U ON T.`UserID` = U.`ID` WHERE `SalesManagerID` = {0} AND (T.CreateDate BETWEEN '{1}' AND '{2}')",
                                                                                                   idManager.Text,
                                                                                                   Convert.ToDateTime(stbDate1.Text).ToString("yyyy-MM-dd"),
                                                                                                   Convert.ToDateTime(stbDate2.Text).ToString("yyyy-MM-dd")))
                                                                                 .Tables[0].Rows[0][0].ToString());
                }
            }
        }
示例#27
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.Title = PagesTitles.ManagerUserTicketEditTitle + BackendHelper.TagToValue("page_title_part");
            OtherMethods.ActiveRightMenuStyleChanche("hlTickets", this.Page);
            Form.DefaultButton = btnCreate.UniqueID;
            AppKey             = Globals.Settings.AppServiceSecureKey;
            FirstUserApiKey    = Globals.Settings.FirstUserApiKey;

            #region Блок доступа к странице
            var userInSession = (Users)Session["userinsession"];
            var rolesList     = Application["RolesList"] as List <Roles>;
            var currentRole   = Role = (Roles)rolesList.SingleOrDefault(u => u.Name.ToLower() == userInSession.Role.ToLower());
            if (currentRole.PageUserTicketEdit != 1)
            {
                Response.Redirect("~/Error.aspx?id=1");
            }
            #endregion

            #region Блок доступа к данным на странице
            IsVisibleUserProfileData = true;
            IsVisibleUserAccountData = true;

            if (currentRole.PageUserProfileView == 0)
            {
                IsVisibleUserProfileData = false;
            }

            if (currentRole.PageClientsView == 0)
            {
                IsVisibleUserAccountData = false;
            }

            trUserProfileData.Visible = IsVisibleUserProfileData;
            trUserAccountData.Visible = IsVisibleUserAccountData;
            #endregion

            #region  едирект на страницу всех заявок если заявки нет
            if (Page.Request.Params["id"] == null || Page.Request.Params["id"] == String.Empty)
            {
                Page.Response.Redirect("~/ManagerUI/Menu/Tickets/UserTicketView.aspx");
            }
            #endregion

            if (!IsPostBack)
            {
                #region Загрузка tickets по SecureID или FullSecureID. Метод на очистку.
                DAL.DataBaseObjects.Tickets ticket;
                if (Page.Request.Params["id"].Length > 7)
                {
                    ticket = new DAL.DataBaseObjects.Tickets {
                        FullSecureID = Page.Request.Params["id"]
                    };
                    ticket.GetByFullSecureId();
                }
                else
                {
                    ticket = new DAL.DataBaseObjects.Tickets {
                        SecureID = Page.Request.Params["id"]
                    };
                    ticket.GetBySecureId();
                }
                #endregion

                #region Создание форм для груза
                GoodsCount = GoodsHelper.GoodsCount(ticket.FullSecureID);
                hfHowManyControls.Value = GoodsCount.ToString();
                AddGodsInPanel(GoodsCount);
                #endregion

                #region Заполнение созданных формы
                var goods = new Goods {
                    TicketFullSecureID = ticket.FullSecureID
                };
                var ds            = goods.GetAllItems("ID", "ASC", "TicketFullSecureID");
                var goodsIterator = 1;
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    var tbGoodsDescription = (TextBox)pnlBooks.FindControl("tbGoodsDescription" + goodsIterator);
                    var tbGoodsModel       = (TextBox)pnlBooks.FindControl("tbGoodsModel" + goodsIterator);
                    var tbGoodsNumber      = (TextBox)pnlBooks.FindControl("tbGoodsNumber" + goodsIterator);
                    var tbGoodsCost        = (TextBox)pnlBooks.FindControl("tbGoodsCost" + goodsIterator);
                    var hfGoodsID          = (HiddenField)pnlBooks.FindControl("hfGoodsID" + goodsIterator);
                    var hfWithoutAkciza    = (HiddenField)pnlBooks.FindControl("hfWithoutAkciza" + goodsIterator);

                    var hfGoodsNumber      = (HiddenField)pnlBooks.FindControl("hfGoodsNumber" + goodsIterator);
                    var hfGoodsCost        = (HiddenField)pnlBooks.FindControl("hfGoodsCost" + goodsIterator);
                    var hfGoodsDescription = (HiddenField)pnlBooks.FindControl("hfGoodsDescription" + goodsIterator);
                    var hfGoodsModel       = (HiddenField)pnlBooks.FindControl("hfGoodsModel" + goodsIterator);

                    tbGoodsDescription.Text = hfGoodsDescription.Value = row["Description"].ToString();
                    tbGoodsModel.Text       = hfGoodsModel.Value = row["Model"].ToString();
                    tbGoodsNumber.Text      = hfGoodsNumber.Value = row["Number"].ToString();
                    tbGoodsCost.Text        = hfGoodsCost.Value = MoneyMethods.MoneySeparator(row["Cost"].ToString());
                    hfGoodsID.Value         = row["ID"].ToString();
                    hfWithoutAkciza.Value   = row["WithoutAkciza"].ToString();
                    goodsIterator++;
                }
                #endregion

                #region Вывод старых грузов. Метод на очистку.
                if (GoodsCount == 0)
                {
                    lblOldGoods.Visible = true;
                    lblOldGoods.Text    = "<b>" + OtherMethods.GoodsStringFromTicketID(ticket.ID.ToString()) + "</b><br/>";
                }
                #endregion

                #region Инициализация сущностей
                var user = new Users();
                user.ID = Convert.ToInt32(ticket.UserID);
                user.GetById();

                #region Блок конфигурации удаления заявки
                if (currentRole.ActionUserTicketDelete != 1)
                {
                    btnDelete.Visible = false;
                }
                #endregion

                var profile = new UsersProfiles();
                profile.ID = Convert.ToInt32(ticket.UserProfileID);
                profile.GetById();
                #endregion

                #region блок общей информации

                SpecialClient = user.SpecialClient;

                hfID.Value                = ticket.ID.ToString();
                hfDriverID.Value          = ticket.DriverID.ToString();
                hfStatusID.Value          = ticket.StatusID.ToString();
                hfStatusIDOld.Value       = ticket.StatusIDOld.ToString();
                hfStatusDescription.Value = ticket.StatusDescription;
                hfAdmissionDate.Value     = ticket.AdmissionDate.ToString();

                hfUserID.Value          = UserID = ticket.UserID.ToString();
                hfUserDiscount.Value    = user.Discount.ToString();
                hfUserProfileType.Value = profile.TypeID.ToString();
                hfFullSecureID.Value    = ticket.FullSecureID;
                lblID.Text                 = ticket.SecureID;
                hlUser.Text                = user.Family + ' ' + user.Name;
                hlUser.NavigateUrl         = "~/ManagerUI/Menu/Souls/ClientEdit.aspx?id=" + ticket.UserID;
                hlProfile.Text             = profile.TypeID == 1 ? (profile.FirstName + ' ' + profile.LastName) : profile.CompanyName;
                hlProfile.NavigateUrl      = "~/ManagerUI/Menu/Souls/ProfileView.aspx?id=" + ticket.UserProfileID;
                lblProfileType.Text        = UsersProfilesHelper.UserProfileTypeToText(Convert.ToInt32(profile.TypeID));
                lblCreateDate.Text         = OtherMethods.DateConvert(ticket.CreateDate.ToString());
                lblAdmissionDate.Text      = OtherMethods.DateConvert(ticket.AdmissionDate.ToString());
                lblDeliveryDateStatic.Text = OtherMethods.DateConvert(ticket.DeliveryDate.ToString());
                lblIsExchange.Text         = ticket.IsExchange == 0 ? "нет" : "да";
                cbWithoutMoney.Checked     = ticket.WithoutMoney != 0;
                lblNN.Text                 = ticket.PrintNaklInMap == 0 ? "нет" : "да";
                lblPN.Text                 = ticket.PrintNakl == 0 ? "нет" : "да";
                if (String.IsNullOrEmpty(ticket.Comment))
                {
                    tdComment.Visible = false;
                }
                else
                {
                    lblComment.Text = WebUtility.HtmlDecode(ticket.Comment);
                }
                var regionText = CityHelper.CityToTrack(Convert.ToInt32(ticket.CityID), ticket.ID.ToString());
                if (ticket.TrackIDUser != 0 || regionText == "Не задано")
                {
                    ddlUserTrack.Visible = true;
                    lblTrack.Visible     = false;

                    var region = new Tracks();
                    ddlUserTrack.DataSource     = region.GetAllItems();
                    ddlUserTrack.DataTextField  = "Name";
                    ddlUserTrack.DataValueField = "ID";
                    ddlUserTrack.DataBind();
                    ddlUserTrack.Items.Insert(0, new ListItem("Не задано", "0"));
                    ddlUserTrack.SelectedValue = Convert.ToString(ticket.TrackIDUser);
                }
                else
                {
                    lblTrack.Text = regionText;
                }

                if (string.IsNullOrEmpty(lblAdmissionDate.Text))
                {
                    lblAdmissionDate.Text = "Груз пока не на складе";
                }
                #endregion

                #region блок информации, заполняемой пользователем
                AssessedCost         = MoneyMethods.MoneySeparator(ticket.AssessedCost.ToString());
                hfAssessedCost.Value = ticket.AssessedCost.ToString();
                lblAssessedCost.Text = MoneyMethods.MoneySeparator(ticket.AssessedCost.ToString());

                tbDeliveryCost.Text = MoneyMethods.MoneySeparator(ticket.DeliveryCost.ToString());
                ddlRecipientStreetPrefix.SelectedValue = ticket.RecipientStreetPrefix;
                tbRecipientStreet.Text              = ticket.RecipientStreet;
                tbRecipientStreetNumber.Text        = ticket.RecipientStreetNumber;
                tbRecipientKorpus.Text              = ticket.RecipientKorpus;
                tbRecipientKvartira.Text            = ticket.RecipientKvartira;
                tbRecipientPhone.Text               = ticket.RecipientPhone;
                tbRecipientPhone2.Text              = ticket.RecipientPhoneTwo;
                ddlSenderStreetPrefix.SelectedValue = ticket.SenderStreetPrefix;
                tbSenderStreetName.Text             = ticket.SenderStreetName;
                tbSenderStreetNumber.Text           = ticket.SenderStreetNumber;
                tbSenderHousing.Text         = ticket.SenderHousing;
                tbSenderApartmentNumber.Text = ticket.SenderApartmentNumber;
                tbNote.Text               = ticket.Note;
                tbBoxesNumber.Text        = string.IsNullOrEmpty(ticket.BoxesNumber.ToString()) ? "1" : ticket.BoxesNumber.ToString();
                tbDeliveryDate.Text       = Convert.ToDateTime(ticket.DeliveryDate).ToString("dd-MM-yyyy");
                tbRecipientFirstName.Text = ticket.RecipientFirstName;
                tbRecipientLastName.Text  = ticket.RecipientLastName;
                tbRecipientThirdName.Text = ticket.RecipientThirdName;
                tbTtnSeria.Text           = ticket.TtnSeria;
                tbTtnNumber.Text          = ticket.TtnNumber;
                tbOtherDocuments.Text     = ticket.OtherDocuments;
                tbPassportNumber.Text     = ticket.PassportNumber;
                tbPassportSeria.Text      = ticket.PassportSeria;

                if (!String.IsNullOrEmpty(ticket.DeliveryCost.ToString()) && ticket.DeliveryCost != 0)
                {
                    cbIsDeliveryCost.Checked = true;
                }

                //автокомплит наименования
                var titles          = new Titles();
                var availableTitles = titles.GetAllItems("Name", "ASC", null).Tables[0].Rows.Cast <DataRow>().Aggregate(String.Empty, (current, items) => current + ("\"" + items["Name"] + "\","));
                AvailableTitles = availableTitles.Remove(availableTitles.Length - 1);
                #endregion

                #region Заполнение города
                var allCity = Application["CityList"] as List <City>;
                if (allCity != null)
                {
                    tbCity.Text    = CityHelper.CityIDToAutocompleteString(allCity.FirstOrDefault(u => u.ID == ticket.CityID));
                    hfCityID.Value = ticket.CityID.ToString();

                    var senderCity = allCity.First(u => u.ID == ticket.SenderCityID);
                    tbSenderCity.Text    = CityHelper.CityIDToAutocompleteString(senderCity);
                    hfSenderCityID.Value = ticket.SenderCityID.ToString();
                }
                #endregion

                hfWharehouse.Value = ticket.WharehouseId.ToString();

                #region блок информации, заполняемой менеджером
                ddlStatus.DataSource     = DAL.DataBaseObjects.Tickets.TicketStatuses;
                ddlStatus.DataTextField  = "Value";
                ddlStatus.DataValueField = "Key";
                ddlStatus.DataBind();
                ddlStatus.SelectedValue = Convert.ToString(ticket.StatusID);

                var ddrivers = new Drivers {
                    StatusID = 1
                };
                var dataSet5 = ddrivers.GetAllActivatedDrivers();
                dataSet5.Tables[0].Columns.Add("FIOAndID", typeof(string), "'(' + ID + ') ' + FirstName + ' ' + SUBSTRING(LastName,1,1) + '.' +  SUBSTRING(ThirdName,1,1) + '.'");
                ddlDrivers.DataSource     = dataSet5;
                ddlDrivers.DataTextField  = "FIOAndID";
                ddlDrivers.DataValueField = "ID";
                ddlDrivers.DataBind();
                ddlDrivers.Items.Insert(0, new ListItem("Водитель не назначен", "0"));

                tbAgreedCost.Text   = MoneyMethods.MoneySeparator(ticket.AgreedCost.ToString());
                tbGruzobozCost.Text = MoneyMethods.MoneySeparator(ticket.GruzobozCost.ToString());

                #region Блок блокировки полей
                if (currentRole.ActionControlGruzobozCost != 1)
                {
                    tbGruzobozCost.Enabled = false;
                }
                if (currentRole.ActionStatusAdd != 1)
                {
                    ddlStatus.Enabled           = false;
                    tbDeliveryDate.Enabled      = false;
                    tbStatusDescription.Enabled = false;
                }
                if (currentRole.ActionDriverAdd != 1)
                {
                    ddlDrivers.Enabled = false;
                }
                if (currentRole.ActionAllowChangeMoneyAndCourse != 1)
                {
                    tbAgreedCost.Enabled   = false;
                    tbGruzobozCost.Enabled = false;
                }
                #endregion

                //если id водителя 0 или -1 - водитель не назначен
                if (ticket.DriverID != 0 && ticket.DriverID != -1)
                {
                    ddlDrivers.SelectedValue = ticket.DriverID.ToString();
                }
                else
                {
                    ddlDrivers.SelectedValue = "0";
                }

                //если статусы На складе (перенесен), Отказ (у курьера), Возврат (на складе), Отмена (на складе), Отмена то показываем почему
                if (ddlStatus.SelectedValue == "7" || ddlStatus.SelectedValue == "8" || ddlStatus.SelectedValue == "4" || ddlStatus.SelectedValue == "9" || ddlStatus.SelectedValue == "10")
                {
                    lblStatusDescription.Visible = true;
                    tbStatusDescription.Visible  = true;
                    tbStatusDescription.Text     = ticket.StatusDescription;
                }
                #endregion

                #region Ограничения на правку текстбоксов
                //если админ или статусы "Не обработана" или "На складе" или "На складе (перенесено)", или "Отмена" или "Отмена (на складе)" - можно изменять все поля пользователя
                if (currentRole.ActionDisallowEditSomeFieldInTickets != 1 &&
                    (ddlStatus.SelectedValue == "1" || ddlStatus.SelectedValue == "2" || ddlStatus.SelectedValue == "4" || ddlStatus.SelectedValue == "9" || ddlStatus.SelectedValue == "10") &&
                    currentRole.ActionDisallowTicketChangeWithoutManagerInfo != 1)
                {
                    tbCity.Enabled =
                        tbRecipientStreetNumber.Enabled                                                       =
                            tbRecipientKorpus.Enabled                                                         =
                                tbRecipientFirstName.Enabled                                                  =
                                    tbRecipientLastName.Enabled                                               =
                                        tbRecipientThirdName.Enabled                                          =
                                            tbRecipientKvartira.Enabled                                       =
                                                tbRecipientPhone.Enabled                                      =
                                                    tbBoxesNumber.Enabled                                     =
                                                        tbDeliveryDate.Enabled                                =
                                                            tbOtherDocuments.Enabled                          =
                                                                tbTtnNumber.Enabled                           =
                                                                    tbTtnSeria.Enabled                        =
                                                                        tbPassportNumber.Enabled              =
                                                                            tbPassportSeria.Enabled           =
                                                                                tbRecipientPhone2.Enabled     =
                                                                                    tbRecipientStreet.Enabled =
                                                                                        tbNote.Enabled        = true;
                    for (var i = 1; i <= GoodsCount; i++)
                    {
                        var tbGoodsDescription = (TextBox)pnlBooks.FindControl("tbGoodsDescription" + i);
                        var tbGoodsModel       = (TextBox)pnlBooks.FindControl("tbGoodsModel" + i);
                        var tbGoodsNumber      = (TextBox)pnlBooks.FindControl("tbGoodsNumber" + i);
                        tbGoodsDescription.Enabled = true;
                        tbGoodsModel.Enabled       = true;
                        tbGoodsNumber.Enabled      = true;
                    }
                }

                if (currentRole.ActionDisallowTicketChangeWithoutManagerInfo == 1)
                {
                    ddlUserTrack.Enabled         = false;
                    tbRecipientFirstName.Enabled = false;
                    tbRecipientLastName.Enabled  = false;
                    tbRecipientThirdName.Enabled = false;
                }

                //только админ может изменять курсы
                if (currentRole.ActionAllowChangeMoneyAndCourse == 1 && currentRole.ActionDisallowTicketChangeWithoutManagerInfo != 1)
                {
                    cbIsDeliveryCost.Enabled   =
                        tbDeliveryCost.Enabled = true;

                    for (var i = 1; i <= GoodsCount; i++)
                    {
                        var tbGoodsCost = (TextBox)pnlBooks.FindControl("tbGoodsCost" + i);
                        tbGoodsCost.Enabled = true;
                    }
                }
                #endregion
            }

            if (!String.IsNullOrEmpty(hfCityID.Value))
            {
                var coefficientDeviationCost = Convert.ToDouble(BackendHelper.TagToValue("coefficient_deviation_cost"));
                var city = new City {
                    ID = Convert.ToInt32(hfCityID.Value)
                };
                city.GetById();
                var district = new Districts {
                    ID = Convert.ToInt32(city.DistrictID)
                };
                district.GetById();
                lblCityCost.Text         = MoneyMethods.MoneySeparatorForCityTableView((city.DistanceFromCity * Convert.ToDecimal(coefficientDeviationCost)).ToString());
                lblCityDeliveryDate.Text =
                    DistrictsHelper.DeliveryDateStringToRuss(DistrictsHelper.DeliveryDateString(city.DistrictID));
                lblCityDeliveryTerms.Text =
                    DistrictsHelper.DeliveryTermsToRuss(DistrictsHelper.DeliveryTerms(city.DistrictID));
            }
        }
示例#28
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            var ticket = new Tickets {
                ID = Convert.ToInt32(TicketID)
            };

            ticket.GetById();
            AssessedCost = MoneyMethods.MoneySeparator(ticket.AssessedCost);

            pnlOldTickets.Visible = false;
            pnlNewTickets.Visible = true;

            #region Создаем датасеты с четными и нечетными грузами
            var goods = new Goods {
                TicketFullSecureID = ticket.FullSecureID
            };
            var ds1 = goods.GetAllItems("ID", "ASC", "TicketFullSecureID");
            var ds2 = new DataSet();

            double allCost;
            if (Cost == null)
            {
                allCost = ticket.Pril2Cost == 0 ? Convert.ToDouble(AssessedCost) : Convert.ToDouble(MoneyMethods.MoneySeparator(ticket.Pril2Cost));
            }
            else
            {
                allCost = Convert.ToDouble(MoneyMethods.MoneySeparator(Cost));
            }
            double c = Convert.ToDouble(ticket.Pril2Cost == 0 ? AssessedCost : MoneyMethods.MoneySeparator(ticket.Pril2Cost));
            if (Cost != null && Number != null)
            {
                double sumCost = 0;
                foreach (DataRow row in ds1.Tables[0].Rows.Cast <DataRow>())
                {
                    row["Cost"] = MoneyMethods.MoneySeparator(Convert.ToDouble(row["Cost"]) + ((double.Parse(Cost, CultureInfo.InvariantCulture) - c) / ds1.Tables[0].Rows.Count));
                    //row["Number"] = Number;
                    sumCost += Convert.ToDouble(row["Cost"]);
                }
                if (sumCost != allCost)
                {
                    foreach (DataRow row in ds1.Tables[0].Rows.Cast <DataRow>())
                    {
                        row["Cost"] = MoneyMethods.MoneySeparator(Convert.ToDouble(row["Cost"]) + (allCost - sumCost));
                        //row["Number"] = Convert.ToInt32(Convert.ToDouble(allCost) / sumCost);
                        row["Number"] = 2;
                        break;
                    }
                }
            }

            ds2 = ds1.Copy();
            //делаем ds1 только с нечетными элементами
            foreach (DataRow row in ds1.Tables[0].Rows.Cast <DataRow>().Where(row => Convert.ToInt32(row["ID"]) % 2 == 0))
            {
                row.Delete();
            }

            //делаем ds2 только с четными элементами
            foreach (DataRow row in ds2.Tables[0].Rows.Cast <DataRow>().Where(row => Convert.ToInt32(row["ID"]) % 2 != 0))
            {
                row.Delete();
            }
            #endregion

            #region Выравниваем колличество столбцов в датасетах
            ds1.AcceptChanges();
            ds2.AcceptChanges();

            var ds1RowsNumber = ds1.Tables[0].Rows.Count;
            var ds2RowsNumber = ds2.Tables[0].Rows.Count;
            var ds1InLeft     = true;
            //если нечетных элементов больше чем четных - добавляем к четным еще один (нужно для корректной отрисовки заказ-поручения)
            if (ds1RowsNumber > ds2RowsNumber)
            {
                var row = ds2.Tables[0].NewRow();
                ds2.Tables[0].Rows.Add(row);
            }

            //если четных элементов больше чем нечетных - добавляем к нечетным еще один (нужно для корректной отрисовки заказ-поручения)
            if (ds1RowsNumber < ds2RowsNumber)
            {
                var row = ds1.Tables[0].NewRow();
                ds1.Tables[0].Rows.Add(row);
                ds1InLeft = false;
            }
            #endregion

            #region дополняем датасеты до 3-х элементов (нужно при отрисовке)
            ds1.AcceptChanges();
            ds2.AcceptChanges();
            var dataSetsRowsNumber = ds1.Tables[0].Rows.Count;

            while (dataSetsRowsNumber < 3)
            {
                var row1 = ds1.Tables[0].NewRow();
                var row2 = ds2.Tables[0].NewRow();
                ds1.Tables[0].Rows.Add(row1);
                ds2.Tables[0].Rows.Add(row2);
                ds1.AcceptChanges();
                ds2.AcceptChanges();
                dataSetsRowsNumber = ds1.Tables[0].Rows.Count;
            }
            #endregion

            if (ds1InLeft)
            {
                lvAllGoods1.DataSource = ds1;
                lvAllGoods1.DataBind();

                lvAllGoods2.DataSource = ds2;
                lvAllGoods2.DataBind();
            }
            else
            {
                lvAllGoods1.DataSource = ds2;
                lvAllGoods1.DataBind();

                lvAllGoods2.DataSource = ds1;
                lvAllGoods2.DataBind();
            }

            var lblOveralGoodsCostInListView = (Label)lvAllGoods2.FindControl("lblOveralGoodsCostInListView");
            if (Cost == null)
            {
                lblOveralGoodsCostInListView.Text = ticket.Pril2Cost == 0 ? AssessedCost : MoneyMethods.MoneySeparator(ticket.Pril2Cost);
            }
            else
            {
                lblOveralGoodsCostInListView.Text = MoneyMethods.MoneySeparator(Cost);
            }

            var lblNumber = (Label)lvAllGoods1.FindControl("lblNumber");
            lblNumber.Text = ticket.Pril2BoxesNumber == 0 ? String.Format("кол.:<span class=\"validBoxesNumber\">{0}</span> ", ticket.BoxesNumber) : String.Format("кол.:<span class=\"validBoxesNumber\">{0}</span>", ticket.Pril2BoxesNumber);

            var lblCost = (Label)lvAllGoods1.FindControl("lblCost");
            lblCost.Text = ticket.Pril2Cost == 0 ? String.Format("ст.:<span class=\"validCost\">{0}</span>", AssessedCost) : String.Format("ст.:<span class=\"validCost\">{0}</span>", MoneyMethods.MoneySeparator(ticket.Pril2Cost));
        }