Пример #1
0
        //Вычисление времени на вынос
        public static async Task <string> CalcZoneTATime(DateTime TZ, string shift, string nn, string zname)
        {
            if (shift != "0:00")
            {
                int h   = Int32.Parse(shift.Split(new char[] { ':' })[0]);
                int m   = Int32.Parse(shift.Split(new char[] { ':' })[1]);
                int _nn = Int32.Parse(nn);

                string selectDDelays = "Select Delay from Delays where Flag=1 and Type='Вынос' and Zone='",
                       connstr       = ConfigurationManager.AppSettings.Get("connstr");


                //string name = ((Button)sender).Name;
                //вычисляем оттяжку на вынос
                double TADelay = await DBselect.CalculateDelay(connstr, zname, selectDDelays + zname + "'");

                //double TADelay = DBselect.CalculateDelay(connstr, zname, selectTADelays + zname + "'").Result;
                //вычисляем время для цветовой зоны и добавляем время оттяжки если оно есть
                //в функцию TimeCalc.CalculateNear подставляем значения переменных из App.Config для каждой цветовой зоны при
                string tEdit = Convert.ToDateTime(TimeCalc.CalculateTaway(TZ, h, m, _nn)).AddMinutes(Convert.ToDouble(TADelay)).ToShortTimeString();

                //Сравниваем вычисленное время по цветовой зоне с временами на стопе, если совпадает, то прибавляем 10 мин, и сравниваем далее, времена в списке отсортированы по возрастанию
                return(tEdit);
            }
            else
            {
                return("");
            }
        }
Пример #2
0
        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            timeStops.Items.Clear();
            List <string> List = new List <string>();

            List = DBselect.CalculateTimes(connstr, label11.Text, selectTimes + label11.Text + "' and DateofStop>='" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "' order by DateofStop,Time").Result;
            foreach (string s in List)
            {
                timeStops.Items.Add(s);
            }
        }
Пример #3
0
        public static async Task <string> CalcBlueZoneTime(DateTime TZ, string shift, string nn, string zname, List <string> ListTimes)
        {
            if (shift != "0:00")
            {
                int h   = Int32.Parse(shift.Split(new char[] { ':' })[0]);
                int m   = Int32.Parse(shift.Split(new char[] { ':' })[1]);
                int _nn = Int32.Parse(nn);

                string selectDDelays = "Select Delay from Delays where Flag=1 and Type='Пеший' and Zone='",
                       connstr       = ConfigurationManager.AppSettings.Get("connstr");


                //string name = ((Button)sender).Name;
                //вычисляем оттяжку на доставку
                double WDelay = DBselect.CalculateDelay(connstr, zname, selectDDelays + zname + "'").Result;
                //double TADelay = DBselect.CalculateDelay(connstr, zname, selectTADelays + zname + "'").Result;
                //вычисляем время для цветовой зоны и добавляем время оттяжки если оно есть
                //в функцию TimeCalc.CalculateNear подставляем значения переменных из App.Config для каждой цветовой зоны при
                //string tEdit = Convert.ToDateTime(TimeCalc.CalculateNear(TZ, h, m, _nn)).AddMinutes(Convert.ToDouble(DDelay)).ToShortTimeString();
                string tEdit = Convert.ToDateTime(TimeCalc.CalculateNear(TZ, h, m, _nn)).AddMinutes(Convert.ToDouble(WDelay)).ToShortTimeString();

                if (TZ > timeFromString && TZ < timeToString)
                {
                    tEdit = Convert.ToDateTime(TimeCalc.CalculateNear(TZ.AddMinutes(Convert.ToInt32(Form1.ReadS("timeAddMinutes"))), h, m, _nn)).AddMinutes(Convert.ToDouble(WDelay)).ToShortTimeString();
                }
                else
                {
                    tEdit = Convert.ToDateTime(TimeCalc.CalculateNear(TZ, h, m, _nn)).AddMinutes(Convert.ToDouble(WDelay)).ToShortTimeString();
                }


                //Сравниваем вычисленное время по цветовой зоне с временами на стопе, если совпадает, то прибавляем 10 мин, и сравниваем далее, времена в списке отсортированы по возрастанию
                foreach (string s in ListTimes)
                {
                    if (tEdit == s)
                    {
                        tEdit = Convert.ToDateTime(tEdit).AddMinutes(10).ToShortTimeString();
                    }
                }

                return(tEdit);
            }
            else
            {
                return("");
            }
        }
Пример #4
0
        //Функция объединяющая весь сбор информации по всем рестам кроме перцев
        //Из-за особенностей хранения данных по Акция для Перцев не возможно передавать при нажатии на кнопку каждого ресторана Имя ресторана, потому что нужно слово 'Перцы' для всех 7 кнопок
        void GetAllInfo(object sender, string[] tParams, string oname)
        {
            string bluez,
                   lightgreenz,
                   greenz,
                   yellowz,
                   orangez,
                   redz,
                   grayz;


            this.Refresh();
            dateTimePicker1.Text = DateTime.Now.ToShortDateString();
            button16.Visible     = false;
            TimeWindowResize();
            restName.Text = ((Button)sender).Text;
            string zname = ((Button)sender).Name;

            label11.Text = zname;
            DateTime TZ = DateTime.Now;

            curTime.Text = TZ.ToLongTimeString();
            List <string> ListTimes  = new List <string>();
            List <string> ListDish   = new List <string>();
            List <string> ListOffers = new List <string>();

            string whenStops = DateTime.Now.ToString("yyyy-MM-dd");

            ListTimes  = DBselect.CalculateTimes(connstr, zname, selectTimes + zname + "' and DateofStop>='" + whenStops + "' order by DateOfStop,Time").Result;
            ListDish   = DBselect.SelectDishStops(connstr, zname, selectDishes + zname + "'order by Dish").Result;
            ListOffers = DBselect.SelectOffers(connstr, zname, selectOffers + oname + "'").Result;

            double TADelay = DBselect.CalculateDelay(connstr, zname, selectTADelays + zname + "'").Result;
            double DDelay  = DBselect.CalculateDelay(connstr, zname, selectDDelays + zname + "'").Result;

            if (DDelay != 0)
            {
                delay_label.Text = "+" + DDelay.ToString();
            }
            else
            {
                delay_label.Text = "";
            }

            TimeSpan timeFrom = new TimeSpan(Convert.ToInt32(ReadS("timeFromHour")), Convert.ToInt32(ReadS("timeFromMinutes")), 0);
            TimeSpan timeTo   = new TimeSpan(Convert.ToInt32(ReadS("timeToHour")), Convert.ToInt32(ReadS("timeToMinutes")), 0);
            TimeSpan timeAdd  = new TimeSpan(Convert.ToInt32(ReadS("timeAddHour")), Convert.ToInt32(ReadS("timeAddMinutes")), 0);

            bluez       = CalculateFinal.CalcBlueZoneTime(TZ, tParams[0], tParams[7], zname, ListTimes).Result;
            lightgreenz = CalculateFinal.CalcZoneTime(TZ, tParams[1], tParams[7], zname, ListTimes).Result;
            greenz      = CalculateFinal.CalcZoneTime(TZ, tParams[2], tParams[7], zname, ListTimes).Result;
            yellowz     = CalculateFinal.CalcZoneTime(TZ, tParams[3], tParams[7], zname, ListTimes).Result;
            orangez     = CalculateFinal.CalcZoneTime(TZ, tParams[4], tParams[7], zname, ListTimes).Result;
            redz        = CalculateFinal.CalcZoneTime(TZ, tParams[5], tParams[7], zname, ListTimes).Result;
            grayz       = CalculateFinal.CalcZoneTime(TZ, tParams[6], tParams[7], zname, ListTimes).Result;


            if (bluez != "")
            {
                blueTZ.Text = bluez + ReturnMinutes(tParams[0]);
            }
            else
            {
                blueTZ.Text = bluez;
            }

            if (lightgreenz != "")
            {
                lgreenTZ.Text = lightgreenz + ReturnMinutes(tParams[1]);
            }
            else
            {
                lgreenTZ.Text = lightgreenz;
            }

            if (greenz != "")
            {
                greenTZ.Text = greenz + ReturnMinutes(tParams[2]);
            }
            else
            {
                greenTZ.Text = greenz;
            }

            if (yellowz != "")
            {
                yellowTZ.Text = yellowz + ReturnMinutes(tParams[3]);
            }
            else
            {
                yellowTZ.Text = yellowz;
            }

            if (orangez != "")
            {
                orangeTZ.Text = orangez + ReturnMinutes(tParams[4]);
            }
            else
            {
                orangeTZ.Text = orangez;
            }

            if (redz != "")
            {
                redTZ.Text = redz + ReturnMinutes(tParams[5]);
            }
            else
            {
                redTZ.Text = redz;
            }

            if (grayz != "")
            {
                grayTZ.Text = grayz + ReturnMinutes(tParams[6]);
            }
            else
            {
                grayTZ.Text = grayz;
            }


            /*blueTZ.Text = bluez + ReturnMinutes(tParams[0]);
            *  lgreenTZ.Text = lightgreenz + ReturnMinutes(tParams[1]);
            *  //lgreenTZ.Text = "";
            *  greenTZ.Text = greenz + ReturnMinutes(tParams[2]);
            *  yellowTZ.Text = yellowz + ReturnMinutes(tParams[3]);
            *  orangeTZ.Text = orangez + ReturnMinutes(tParams[4]);
            *  redTZ.Text = redz + ReturnMinutes(tParams[5]);
            *  grayTZ.Text = grayz + ReturnMinutes(tParams[6]);*/



            tawayTZ.Text = CalculateFinal.CalcZoneTATime(TZ, tParams[8], tParams[9], zname).Result;

            foreach (string dish in ListDish)
            {
                dishStops.Items.Add(dish);
            }
            foreach (string time in ListTimes)
            {
                timeStops.Items.Add(time);
            }
            foreach (string offer in ListOffers)
            {
                richTextBox1.AppendText(offer);
                richTextBox1.AppendText("\n");
                offersList.Items.Add(offer);
                bool isInt = Int32.TryParse(offer.Substring(0, 1), out int r);
                if (isInt == true)
                {
                    offersList.SetSelected(offersList.FindString(offer), true);
                }
            }
        }