Exemple #1
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            if (!isChoosed)
            {
                MessageBox.Show("Вы должны выбрать задачу");
                return;
            }
            Builder.setTaskId(worker, Int32.Parse(taskds_st.tskID));
            Builder.setWhId(worker, Int32.Parse(taskds_st.wareHID));
            string buff = "UPDATE TASKS SET DRIVER_ID="; buff += worker.id;

            buff += " WHERE TASK_ID="; buff += worker.choodesTaskId;
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = buff;
            cmd.ExecuteNonQuery();
            sc.Close();
            DriverWork dw = new DriverWork(worker);

            dw.Show();
            this.Close();
        }
Exemple #2
0
        public bool checkREQ()
        {
            string        sql = "Select wh_id,good_id,AVAILABLE_QUANTITY from wh_goods where wh_id=";
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            try
            {
                using (DbDataReader reader1 = cmd.ExecuteReader())
                {
                    if (reader1.HasRows)
                    {
                        sc.Close();
                        return(true);
                    }
                    else
                    {
                        sc.Close();
                        return(false);
                    }
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
            return(false);
        }
Exemple #3
0
        private void reqSel(object sender, RoutedEventArgs e)
        {
            reqTask p = new reqTask();

            p = (reqTask)reqList.SelectedItem;
            if (p.reqID == "ID Запроса ")
            {
                return;
            }
            req_goods.Items.Clear();
            string sql = "Select good_id,quantity from order_list where order_id=";

            for (int i = 0; i < p.reqID.Length - 1; i++)
            {
                sql += p.reqID[i];
            }
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            reqGoods buff = new reqGoods();

            buff.goodID = "ID Товара ";
            buff.quan   = "Количество";
            req_goods.Items.Add(buff);
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            try
            {
                using (DbDataReader reader1 = cmd.ExecuteReader())
                {
                    if (reader1.HasRows)
                    {
                        while (reader1.Read())
                        {
                            buff = new reqGoods();
                            int idGood = reader1.GetOrdinal("good_id");
                            int quant  = reader1.GetOrdinal("quantity");
                            buff.goodID = reader1.GetInt32(idGood).ToString() + " ";
                            buff.quan   = reader1.GetInt32(quant).ToString();
                            req_goods.Items.Add(buff);
                        }
                    }
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
        }
Exemple #4
0
        private void Button_Click3(object sender, RoutedEventArgs e)
        {
            if (goodChAim.Text == null || goodChAim.Text == "")
            {
                MessageBox.Show("Поле ID товара, цена которого меняется не должно быть пустым");
                return;
            }
            if (newCost.Text == null || newCost.Text == "")
            {
                MessageBox.Show("Поле значения новой цены не должно быть пустым");
                return;
            }
            if (Int32.Parse(newCost.Text) < 0)
            {
                MessageBox.Show("Цена товара не должна быть отрицательной");
                return;
            }
            if (Int32.Parse(goodChAim.Text) <= 0)
            {
                MessageBox.Show("Недопустимое ID товара");
                return;
            }
            if (Int32.Parse(goodChAim.Text) > goodsQuant)
            {
                MessageBox.Show("Недопустимое ID товара");
                return;
            }

            string sql = "UPDATE G_NAMES SET COST="; sql += newCost.Text;

            sql += " WHERE GOOD_ID="; sql += goodChAim.Text;
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
            goods_id.Items.Clear();
            this.showGoods();
            MessageBox.Show("Изменения вступили в силу");
        }
Exemple #5
0
        public void showGoods()
        {
            InfGood buffd = new InfGood();

            buffd.gI  = "ID";
            buffd.gN  = "Название";
            buffd.cSt = " Цена";
            goods_id.Items.Add(buffd);
            string        sql = "Select good_id,good_name,cost from G_Names";
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            InfGood buff;

            try
            {
                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            goodsQuant++;
                            int    idI   = reader.GetOrdinal("good_id");
                            int    idN   = reader.GetOrdinal("good_name");
                            int    idCST = reader.GetOrdinal("cost");
                            int    idG   = reader.GetInt32(idI);
                            string name  = reader.GetString(idN);
                            int    cst   = reader.GetInt32(idCST);
                            buff      = new InfGood();
                            buff.gI   = idG.ToString();
                            buff.gN   = name;
                            buff.cSt  = " ";
                            buff.cSt += cst.ToString();
                            goods_id.Items.Add(buff);
                        }
                    }
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
        }
Exemple #6
0
        private void whSel(object sender, RoutedEventArgs e)
        {
            wareHouse p = new wareHouse();

            p = (wareHouse)warList.SelectedItem;
            if (p.whID == "ID Склада")
            {
                return;
            }
            warehouseGoods.Items.Clear();
            string sql = "Select wh_id,good_id,AVAILABLE_QUANTITY from wh_goods where wh_id=";

            sql += p.whID;
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            wareGoods buff = new wareGoods();

            buff.goodID = "ID Товара ";
            buff.quan   = "Количество ";
            warehouseGoods.Items.Add(buff);
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            try
            {
                using (DbDataReader reader1 = cmd.ExecuteReader())
                {
                    if (reader1.HasRows)
                    {
                        while (reader1.Read())
                        {
                            buff = new wareGoods();
                            int idGood = reader1.GetOrdinal("good_id");
                            int quant  = reader1.GetOrdinal("AVAILABLE_QUANTITY");
                            buff.goodID = reader1.GetInt32(idGood).ToString() + " ";
                            buff.quan   = reader1.GetInt32(quant).ToString();
                            warehouseGoods.Items.Add(buff);
                        }
                    }
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
        }
Exemple #7
0
        public DriverChill(Human h)
        {
            worker = h;
            InitializeComponent();
            //
            string        sql = "select task_id,wh_id from tasks where DRIVER_ID is NULL";
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            taskds buff;

            try
            {
                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            buff = new taskds();
                            int task_id = reader.GetOrdinal("task_id");
                            int wh_id   = reader.GetOrdinal("wh_id");
                            buff.tskID   = (reader.GetInt32(task_id)).ToString();
                            buff.wareHID = (reader.GetInt32(wh_id)).ToString();
                            taskers.Items.Add(buff);
                        }
                    }
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
            //
        }
Exemple #8
0
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            if (ReqGoodsNum == 0)
            {
                MessageBox.Show("Нельзя добавить пустой запрос");
                return;
            }

            ReqGood rg;
            ReqGood buff_rg;

            for (int i = 0; i < goods_lb.Items.Count; i++)
            {
                rg = goods_lb.Items[i] as ReqGood;
                if (rg.quantity <= 0)
                {
                    MessageBox.Show("Строка " + ((int)i + 1) + ". Количество должно быть положительным");
                    return;
                }
                if (rg.id <= 0)
                {
                    MessageBox.Show("Строка " + ((int)i + 1) + ". ID товаров должно быть положительным");
                    return;
                }
                if (rg.id > goodsQuant)
                {
                    MessageBox.Show("Строка " + ((int)i + 1) + ". Введено недоступное ID товара");
                    return;
                }
                for (int j = 0; j < goods_lb.Items.Count; j++)
                {
                    buff_rg = goods_lb.Items[j] as ReqGood;
                    if (j == i)
                    {
                        continue;
                    }
                    if (rg.id == buff_rg.id)
                    {
                        MessageBox.Show("ID товаров не должны повторяться");
                        return;
                    }
                }
            }
            ord.IsEnabled = false;
            int    order_id = (((((DateTime.Now.Year * 100 + DateTime.Now.Month) * 100 + DateTime.Now.Day) * 100 + DateTime.Now.Hour) * 100 + DateTime.Now.Minute) * 100 + DateTime.Now.Second);
            string sql      = "insert into orders (order_id,shop_id) values(";

            sql += order_id.ToString();
            sql += ",";
            sql += worker.shopId.ToString();
            sql += ")";
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            try
            {
                using (DbDataReader reader = cmd.ExecuteReader())
                {
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
            SqlCommand    cmd1 = new SqlCommand();
            SqlConnection sc1  = DBSQLServerUtils.GetDBConnection();

            sc1.Open();
            cmd1.Connection = sc1;
            ReqGood rg_s;

            for (int i = 0; i < goods_lb.Items.Count; i++)
            {
                rg_s             = goods_lb.Items[i] as ReqGood;
                sql              = "insert into order_list (order_id,good_id,quantity) values(";
                sql             += order_id.ToString();
                sql             += ",";
                sql             += rg_s.id.ToString();
                sql             += ",";
                sql             += rg_s.quantity.ToString();
                sql             += ")";
                cmd1.CommandText = sql;
                try
                {
                    using (DbDataReader reader2 = cmd1.ExecuteReader())
                    {
                    }
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                }
            }
            goods_lb.Items.Clear();
            ReqGoodsNum = 0;
            sc1.Close();
            Task.Delay(1000);
            ord.IsEnabled = true;
        }
Exemple #9
0
        private void Enter_Click(object sender, RoutedEventArgs e)
        {
            if (login.Text == "" || login.Text == null)
            {
                MessageBox.Show("Заполните поле логина");
                return;
            }
            if (pass.Text == "" || pass.Text == null)
            {
                MessageBox.Show("Заполните поле пароля");
                return;
            }
            string        sql = "Select id,position,pass, F_name, surname from workers";
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            try
            {
                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            int IdIndex   = reader.GetOrdinal("id");
                            int FNIndex   = reader.GetOrdinal("f_name");
                            int SNIndex   = reader.GetOrdinal("surname");
                            int PassIndex = reader.GetOrdinal("pass");
                            int PosIndex  = reader.GetOrdinal("position");
                            if (reader.GetString(FNIndex) + "_" + reader.GetString(SNIndex) == login.Text)
                            {
                                if (reader.GetInt32(PassIndex).ToString() == pass.Text.GetHashCode().ToString())
                                {
                                    Builder.setId(worker, reader.GetInt32(IdIndex));
                                    Builder.setName(worker, reader.GetString(FNIndex));
                                    Builder.setSName(worker, reader.GetString(SNIndex));
                                    if (reader.GetInt32(PosIndex) == 1)
                                    {
                                        sc.Close();
                                        DriverChill dc = new DriverChill(worker);

                                        dc.Show();

                                        this.Close();
                                        return;
                                    }
                                    if (reader.GetInt32(PosIndex) == 2)
                                    {
                                        sc.Close();
                                        Manager man = new Manager(worker);

                                        man.Show();

                                        this.Close();
                                        return;
                                    }
                                    if (reader.GetInt32(PosIndex) == 3)
                                    {
                                        string sqlShop = "Select shop_id from SHOPS_MANAGERS where worker_id=" + worker.id;
                                        sc.Close();
                                        sc.Open();
                                        cmd.Connection  = sc;
                                        cmd.CommandText = sqlShop;
                                        using (DbDataReader reader_sec = cmd.ExecuteReader())
                                        {
                                            if (reader_sec.HasRows)
                                            {
                                                while (reader_sec.Read())
                                                {
                                                    int ShopIdIndex = reader_sec.GetOrdinal("shop_id");
                                                    Builder.setShopId(worker, reader_sec.GetInt32(ShopIdIndex));
                                                }
                                            }
                                        }
                                        sc.Close();
                                        ShopOrdering so = new ShopOrdering(worker);
                                        so.Show();
                                        this.Close();
                                        return;
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Ошибка авторизации: P");
                                    return;
                                }
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Ошибка авторизации: L");
                    }
                }
                MessageBox.Show("Ошибка авторизации: NR");
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
        }
Exemple #10
0
        public Manager(Human h)
        {
            InitializeComponent();
            addGiT.IsEnabled = false;
            wareHouse buff;

            buff      = new wareHouse();
            buff.whID = "ID Склада";
            warList.Items.Add(buff);
            worker = h;

            string        sql = "Select wh_id from warehouses";
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            try
            {
                using (DbDataReader reader1 = cmd.ExecuteReader())
                {
                    if (reader1.HasRows)
                    {
                        while (reader1.Read())
                        {
                            buff = new wareHouse();
                            int idWH = reader1.GetOrdinal("wh_id");
                            buff.whID = reader1.GetInt32(idWH).ToString();
                            warList.Items.Add(buff);
                        }
                    }
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
            reqTask buff_t;

            buff_t        = new reqTask();
            buff_t.reqID  = "ID Запроса ";
            buff_t.shopID = "ID Магазина";
            sql           = "Select order_id,shop_id from orders";
            reqList.Items.Add(buff_t);
            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            try
            {
                using (DbDataReader reader1 = cmd.ExecuteReader())
                {
                    if (reader1.HasRows)
                    {
                        while (reader1.Read())
                        {
                            buff_t = new reqTask();
                            int idOR = reader1.GetOrdinal("order_id");
                            int idSH = reader1.GetOrdinal("shop_id");
                            buff_t.reqID  = reader1.GetInt32(idOR).ToString() + " ";
                            buff_t.shopID = reader1.GetInt32(idSH).ToString();
                            reqList.Items.Add(buff_t);
                        }
                    }
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
        }
Exemple #11
0
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            int access_quantity = 0;

            if (ready_quest.Items.IsEmpty)
            {
                MessageBox.Show("Невозможно создать пустую задачу");
                return;
            }
            bool          isExist = false;
            string        sql;
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            string[]   quants = new string[ready_quest.Items.Count];
            string[]   shopsIdentificators = new string[ready_quest.Items.Count];
            string     wareHouseId         = sourceWH.Text;
            taskObject tO;
            int        taskId = (((((DateTime.Now.Year * 100 + DateTime.Now.Month) * 100 + DateTime.Now.Day) * 100 + DateTime.Now.Hour) * 100 + DateTime.Now.Minute) * 100 + DateTime.Now.Second);
            //
            reqTask rT;

            for (int i = 0; i < ready_quest.Items.Count; i++)
            {
                tO = ready_quest.Items[i] as taskObject;
                if (tO.goodId == null || tO.goodId == "")
                {
                    MessageBox.Show("Поле id товара пусто в строке " + i + 1);
                    return;
                }
                if (tO.reqId == null || tO.reqId == "")
                {
                    MessageBox.Show("Поле id запроса пусто в строке " + i + 1);
                    return;
                }
                if (Int32.Parse(tO.goodId) <= 0)
                {
                    MessageBox.Show("ID товара должно быть больше нуля. Строка " + i + 1);
                    return;
                }
                if (Int32.Parse(tO.reqId) <= 0)
                {
                    MessageBox.Show("ID запроса должно быть больше нуля. Строка " + i + 1);
                    return;
                }
                for (int j = 0; j < reqList.Items.Count; j++)
                {
                    rT = reqList.Items[j] as reqTask;
                    if ((rT.reqID).GetHashCode() == (tO.reqId + " ").GetHashCode())
                    {
                        isExist = true;
                        shopsIdentificators[i] = rT.shopID;
                    }
                }
                if (!isExist)
                {
                    MessageBox.Show("Строка " + (i + 1) + ". Введённое ID не существует");
                    return;
                }
                isExist = false;
                sql     = "SELECT QUANTITY FROM ORDER_LIST WHERE ORDER_ID = ";
                sql    += tO.reqId;
                sql    += " AND GOOD_ID = ";
                sql    += tO.goodId;
                sc.Open();
                cmd.Connection  = sc;
                cmd.CommandText = sql;
                try
                {
                    using (DbDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                int qID = reader.GetOrdinal("QUANTITY");
                                quants[i] = reader.GetInt32(qID).ToString();
                            }
                        }
                    }
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                }
                finally
                {
                    sc.Close();
                }
            }
            //
            for (int i = 0; i < ready_quest.Items.Count; i++)
            {
                tO = ready_quest.Items[i] as taskObject;
                sc.Open();
                sql             = "SELECT QUANTITY FROM ORDER_LIST WHERE ORDER_ID = ";
                sql            += tO.reqId;
                sql            += " AND GOOD_ID = ";
                sql            += tO.goodId;
                cmd.Connection  = sc;
                cmd.CommandText = sql;
                try
                {
                    using (DbDataReader reader2 = cmd.ExecuteReader())
                    {
                        if (!reader2.HasRows)
                        {
                            MessageBox.Show("Строка " + (i + 1) + ". Запроса на этот товар не существует");
                            sc.Close();
                            return;
                        }
                    }
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                    sc.Close();
                    return;
                }
                finally
                {
                    sc.Close();
                }

                //
            }

            ////
            for (int i = 0; i < ready_quest.Items.Count; i++)
            {
                tO = ready_quest.Items[i] as taskObject;
                sc.Open();
                sql             = "SELECT * FROM WH_GOODS WHERE WH_ID = ";
                sql            += sourceWH.Text;
                sql            += " AND GOOD_ID = ";
                sql            += tO.goodId;
                sql            += " AND AVAILABLE_QUANTITY >= ";
                sql            += quants[i];
                cmd.Connection  = sc;
                cmd.CommandText = sql;
                try
                {
                    using (DbDataReader reader1 = cmd.ExecuteReader())
                    {
                        if (!reader1.HasRows)
                        {
                            MessageBox.Show("Товар с ID: " + tO.goodId + " и ID запроса: " + tO.reqId + " не может быть добавлен в задачу из-за нехватки на складе");
                            sc.Close();
                            continue;
                        }
                    }
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                    sc.Close();
                    return;
                }
                finally
                {
                    sc.Close();
                }
                sc.Open();

                tO              = ready_quest.Items[i] as taskObject;
                sql             = "UPDATE WH_GOODS SET AVAILABLE_QUANTITY = AVAILABLE_QUANTITY-" + quants[i] + " ";
                sql            += ",RESERVED_QUANTITY=RESERVED_QUANTITY+" + quants[i];
                sql            += " WHERE WH_ID=" + sourceWH.Text;
                sql            += " AND GOOD_ID= " + tO.goodId;
                cmd.Connection  = sc;
                cmd.CommandText = sql;
                try
                {
                    cmd.ExecuteReader();
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                    sc.Close();
                    return;
                }
                finally
                {
                    sc.Close();
                }
                tO   = ready_quest.Items[i] as taskObject;
                sql  = "INSERT INTO TASKS_GOODS(TASK_ID,SHOP_ID,GOOD_ID,QUANTITY) VALUES( ";
                sql += taskId.ToString();
                sql += ",";
                sql += shopsIdentificators[i];
                sql += ",";
                sql += tO.goodId.ToString();
                sql += ",";
                sql += quants[i];
                sql += ")";
                sc.Open();
                cmd.Connection  = sc;
                cmd.CommandText = sql;
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                    sc.Close();
                    return;
                }
                finally
                {
                    sc.Close();
                }
                tO   = ready_quest.Items[i] as taskObject;
                sql  = "DELETE FROM ORDER_LIST WHERE ORDER_ID = ";
                sql += tO.reqId.ToString();
                sql += " AND GOOD_ID = ";
                sql += tO.goodId.ToString();
                sc.Open();
                cmd.Connection  = sc;
                cmd.CommandText = sql;
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                    sc.Close();
                    return;
                }
                finally
                {
                    sc.Close();
                }
                access_quantity++;
            }
            if (access_quantity > 0)
            {
                sql  = "INSERT INTO TASKS(TASK_ID,WH_ID) VALUES( ";
                sql += taskId.ToString();
                sql += ",";
                sql += wareHouseId;
                sql += ")";
                sc.Open();
                cmd.Connection  = sc;
                cmd.CommandText = sql;
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                    sc.Close();
                    return;
                }
                finally
                {
                    sc.Close();
                }
            }
            reqTask buff;

            for (int i = 1; i < reqList.Items.Count; i++)
            {
                buff = reqList.Items[i] as reqTask;
                sc.Open();
                sql             = "SELECT * FROM ORDER_LIST WHERE ORDER_ID=";
                sql            += buff.reqID;
                cmd.Connection  = sc;
                cmd.CommandText = sql;
                try
                {
                    using (DbDataReader reader = cmd.ExecuteReader())
                    {
                        if (!reader.HasRows)
                        {
                            sc.Close();
                            sc.Open();
                            sql             = "DELETE FROM ORDERS WHERE ORDER_ID=";
                            sql            += buff.reqID;
                            cmd.Connection  = sc;
                            cmd.CommandText = sql;
                            cmd.ExecuteNonQuery();
                        }
                    }
                }
                catch (Exception ed)
                {
                    MessageBox.Show(ed + ed.StackTrace);
                    sc.Close();
                    return;
                }
                finally
                {
                    sc.Close();
                }
            }
            Manager man = new Manager(worker);

            man.Show();
            this.Close();
        }
Exemple #12
0
        public DriverWork(Human h)
        {
            worker = h;
            InitializeComponent();
            completeBut.IsEnabled = false;
            string sql = "select shop_id,good_id,quantity from tasks_goods where task_id=";

            sql += worker.choodesTaskId;
            SqlCommand    cmd = new SqlCommand();
            SqlConnection sc  = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection  = sc;
            cmd.CommandText = sql;
            thisTask ttbuff;

            try
            {
                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        thisTask.tskID = (worker.choodesTaskId).ToString();
                        while (reader.Read())
                        {
                            ttbuff = new thisTask();
                            int sbuff = reader.GetOrdinal("shop_id");
                            int gbuff = reader.GetOrdinal("good_id");
                            int qbuff = reader.GetOrdinal("quantity");
                            ttbuff.shopID = reader.GetInt32(sbuff).ToString();
                            ttbuff.goodID = reader.GetInt32(gbuff).ToString();
                            ttbuff.quant  = reader.GetInt32(qbuff).ToString();
                            tt.Add(ttbuff);
                        }
                    }
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
            sc.Open();
            cmd.Connection = sc;
            bool          isExist = false;
            shCoordinates buff;

            try
            {
                for (int i = 0; i < tt.Count; i++)
                {
                    sql             = "select shop_x,shop_y from shops where shop_id="; sql += tt[i].shopID;
                    cmd.CommandText = sql;
                    for (int j = 0; j < i; j++)
                    {
                        if (tt[i].shopID == tt[j].shopID)
                        {
                            isExist = true;
                            break;
                        }
                    }
                    if (isExist)
                    {
                        isExist = false;
                        continue;
                    }
                    buff       = new shCoordinates();
                    buff.shpID = tt[i].shopID;
                    using (DbDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.HasRows)
                        {
                            while (reader.Read())
                            {
                                int x_buff = reader.GetOrdinal("shop_x");
                                int y_buff = reader.GetOrdinal("shop_y");
                                buff.x = (reader.GetInt32(x_buff));
                                buff.y = (reader.GetInt32(y_buff));
                            }
                        }
                    }
                    shops.Add(buff);
                }
                sql             = "select wh_x,wh_y from warehouses where wh_id="; sql += worker.choodesWhId;
                cmd.CommandText = sql;
                buff            = new shCoordinates();
                buff.shpID      = "0";
                using (DbDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            int x_buff = reader.GetOrdinal("wh_x");
                            int y_buff = reader.GetOrdinal("wh_y");
                            buff.x = (reader.GetInt32(x_buff));
                            buff.y = (reader.GetInt32(y_buff));
                        }
                    }
                }
                shops.Add(buff);
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }

            #region Kommi
            double[,] kommi = new double[shops.Count, shops.Count];
            start_kommi     = new double[shops.Count, shops.Count];
            for (int i = 0; i < shops.Count; i++)
            {
                for (int j = 0; j < shops.Count; j++)
                {
                    if (i != j)
                    {
                        kommi[j, i]       = Math.Sqrt(Math.Pow(shops[i].x - shops[j].x, 2) + Math.Pow(shops[i].y - shops[j].y, 2));
                        start_kommi[j, i] = Math.Sqrt(Math.Pow(shops[i].x - shops[j].x, 2) + Math.Pow(shops[i].y - shops[j].y, 2));
                    }
                    else
                    {
                        kommi[i, j]       = Double.MaxValue;
                        start_kommi[i, j] = Double.MaxValue;
                    }
                }
            }

            double[] strings_min = new double[shops.Count];
            double[] columns_min = new double[shops.Count];
            double   min         = Double.MaxValue;


            while (route.Count != shops.Count)
            {
                min = Double.MaxValue;
                for (int i = 0; i < shops.Count; i++)
                {
                    min = Double.MaxValue;
                    for (int j = 0; j < shops.Count; j++)
                    {
                        if (kommi[i, j] == Double.MaxValue)
                        {
                            continue;
                        }
                        else
                        {
                            if (min > kommi[i, j])
                            {
                                min = kommi[i, j];
                            }
                        }
                    }
                    strings_min[i] = min;
                }
                for (int i = 0; i < shops.Count; i++)
                {
                    for (int j = 0; j < shops.Count; j++)
                    {
                        if (kommi[i, j] == Double.MaxValue)
                        {
                            continue;
                        }
                        else
                        {
                            kommi[i, j] -= strings_min[i];
                        }
                    }
                }
                min = Double.MaxValue;
                for (int i = 0; i < shops.Count; i++)
                {
                    min = Double.MaxValue;
                    for (int j = 0; j < shops.Count; j++)
                    {
                        if (kommi[j, i] == Double.MaxValue)
                        {
                            continue;
                        }
                        else
                        {
                            if (min > kommi[j, i])
                            {
                                min = kommi[j, i];
                            }
                        }
                    }
                    columns_min[i] = min;
                }
                ////
                for (int i = 0; i < shops.Count; i++)
                {
                    for (int j = 0; j < shops.Count; j++)
                    {
                        if (kommi[j, i] == Double.MaxValue)
                        {
                            continue;
                        }
                        else
                        {
                            kommi[j, i] -= columns_min[i];
                        }
                    }
                }
                ////

                zeroKl buffZK  = new zeroKl();
                double min_str = Double.MaxValue;
                double min_clm = Double.MaxValue;
                for (int i = 0; i < shops.Count; i++)
                {
                    for (int j = 0; j < shops.Count; j++)
                    {
                        if (kommi[i, j] == 0)
                        {
                            buffZK = new zeroKl();
                            for (int k = 0; k < shops.Count; k++)
                            {
                                if (k == j)
                                {
                                    continue;
                                }
                                if (min_str > kommi[i, k])
                                {
                                    min_str = kommi[i, k];
                                }
                            }
                            for (int k = 0; k < shops.Count; k++)
                            {
                                if (k == i)
                                {
                                    continue;
                                }
                                if (min_clm > kommi[k, j])
                                {
                                    min_clm = kommi[k, j];
                                }
                            }
                            buffZK.str  = i;
                            buffZK.col  = j;
                            buffZK.mark = min_str + min_clm;
                            zKLs.Add(buffZK);
                        }
                        min_str = Double.MaxValue;
                        min_clm = Double.MaxValue;
                    }
                }
                zeroKl with_max_mark = new zeroKl();
                with_max_mark.mark = 0;
                for (int i = 0; i < zKLs.Count; i++)
                {
                    if (with_max_mark.mark <= zKLs[i].mark)
                    {
                        with_max_mark.mark = zKLs[i].mark;
                        with_max_mark.str  = zKLs[i].str;
                        with_max_mark.col  = zKLs[i].col;
                    }
                }
                //
                route.Add(new stringsPare(shops[with_max_mark.str].shpID, shops[with_max_mark.col].shpID));
                kommi[with_max_mark.str, with_max_mark.col] = Double.MaxValue;
                kommi[with_max_mark.col, with_max_mark.str] = Double.MaxValue;
                for (int i = 0; i < shops.Count; i++)
                {
                    kommi[with_max_mark.str, i] = Double.MaxValue;
                    kommi[i, with_max_mark.col] = Double.MaxValue;
                }
                //
                with_max_mark.mark = 0;
                zKLs = new List <zeroKl>();
            }
            #endregion
        }
Exemple #13
0
        private void Button_Click1(object sender, RoutedEventArgs e)
        {
            if (et.Text == "" || et.Text == null)
            {
                MessageBox.Show("Поле конечного времени должно быть заполненным");
                return;
            }
            if (st.Text == "" || st.Text == null)
            {
                MessageBox.Show("Поле начального времени должно быть заполненным");
                return;
            }
            List <string> opers = new List <string>();
            string        sql   = "INSERT INTO DRIVERS_HAVE(DRIVER_ID,GOOD_ID,QUANTITY) VALUES(";
            string        buff  = "";
            SqlCommand    cmd   = new SqlCommand();
            SqlConnection sc    = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection = sc;
            try
            {
                for (int i = 0; i < tt.Count; i++)
                {
                    sql             = "SELECT * FROM SH_GOODS WHERE SH_ID=";
                    sql            += tt[i].shopID; sql += " and GOOD_ID=";
                    sql            += tt[i].goodID;
                    cmd.CommandText = sql;
                    using (DbDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.HasRows)
                        {
                            buff  = "UPDATE SH_GOODS SET QUANTITY=QUANTITY+";
                            buff += tt[i].quant;
                            buff += " WHERE SH_ID="; buff += tt[i].shopID;
                            buff += " and GOOD_ID="; buff += tt[i].goodID;
                        }
                        else
                        {
                            buff  = "INSERT INTO SH_GOODS(SH_ID,GOOD_ID,QUANTITY) VALUES(";
                            buff += tt[i].shopID;
                            buff += ","; buff += tt[i].goodID;
                            buff += ","; buff += tt[i].quant; buff += ")";
                        }
                        opers.Add(buff);
                        buff  = "UPDATE DRIVERS_HAVE SET QUANTITY=QUANTITY-";
                        buff += tt[i].quant;
                        buff += " WHERE DRIVER_ID="; buff += worker.id;
                        buff += " and GOOD_ID="; buff += tt[i].goodID;
                        opers.Add(buff);
                    }
                }
                for (int i = 0; i < opers.Count; i++)
                {
                    cmd.CommandText = opers[i];
                    cmd.ExecuteNonQuery();
                }
                sql             = "DELETE FROM DRIVERS_HAVE WHERE QUANTITY=0 and DRIVER_ID=";
                sql            += worker.id;
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();

                sql             = "DELETE FROM TASKS WHERE TASK_ID="; sql += worker.choodesTaskId;
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();

                sql             = "DELETE FROM TASKS_GOODS WHERE TASK_ID="; sql += worker.choodesTaskId;
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();


                int minutes = 0;
                if (DateTime.Parse(et.Text).Hour > DateTime.Parse(st.Text).Hour)
                {
                    minutes = (DateTime.Parse(et.Text).Hour - DateTime.Parse(st.Text).Hour) * 60;
                    if (DateTime.Parse(et.Text).Minute > DateTime.Parse(st.Text).Hour)
                    {
                        minutes += (DateTime.Parse(et.Text).Minute - DateTime.Parse(st.Text).Minute);
                    }
                    else
                    {
                        minutes += (DateTime.Parse(et.Text).Minute + 60 - DateTime.Parse(st.Text).Minute);
                    }
                }
                if (DateTime.Parse(et.Text).Hour < DateTime.Parse(st.Text).Hour)
                {
                    minutes = (DateTime.Parse(et.Text).Hour + 24 - DateTime.Parse(st.Text).Hour) * 60;
                    if (DateTime.Parse(et.Text).Minute > DateTime.Parse(st.Text).Hour)
                    {
                        minutes += (DateTime.Parse(et.Text).Minute - DateTime.Parse(st.Text).Minute);
                    }
                    else
                    {
                        minutes += (DateTime.Parse(et.Text).Minute + 60 - DateTime.Parse(st.Text).Minute);
                    }
                }
                sql  = "INSERT INTO REPORTS(TASK_ID,SUMTIME,LENG,NOTES) VALUES(";
                sql += worker.choodesTaskId; sql += ",";
                sql += minutes; sql += ",";
                sql += length; sql += ",'";
                if (hints.Text == "" || hints.Text == null)
                {
                    sql += " ";
                }
                else
                {
                    sql += hints.Text;
                }
                sql            += "')";
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
                if ((60 - length / (minutes / 60)) < 10)
                {
                    MessageBox.Show("Анализатор маршрута: данный маршрут оптимален");
                }
                else
                {
                    MessageBox.Show("Анализатор маршрута: данный маршрут не оптимален");
                }

                this.Close();
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
        }
Exemple #14
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            bool          isExist = false;
            string        sql     = "INSERT INTO DRIVERS_HAVE(DRIVER_ID,GOOD_ID,QUANTITY) VALUES(";
            SqlCommand    cmd     = new SqlCommand();
            SqlConnection sc      = DBSQLServerUtils.GetDBConnection();

            sc.Open();
            cmd.Connection = sc;
            try
            {
                for (int i = 0; i < tt.Count; i++)
                {
                    for (int j = 0; j < i; j++)
                    {
                        if (tt[i].goodID == tt[j].goodID && i != j)
                        {
                            isExist = true;
                            break;
                        }
                    }
                    if (isExist)
                    {
                        isExist = false;
                        continue;
                    }
                    sql             = "INSERT INTO DRIVERS_HAVE(DRIVER_ID,GOOD_ID,QUANTITY) VALUES(";
                    sql            += worker.id; sql += ",";
                    sql            += tt[i].goodID; sql += ",";
                    sql            += "0"; sql += ")";
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                }
                for (int i = 0; i < tt.Count; i++)
                {
                    sql             = "UPDATE DRIVERS_HAVE SET QUANTITY=QUANTITY+";
                    sql            += tt[i].quant; sql += " WHERE DRIVER_ID=";
                    sql            += worker.id; sql += " AND GOOD_ID=";
                    sql            += tt[i].goodID;
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                    sql             = "UPDATE WH_GOODS SET RESERVED_QUANTITY=RESERVED_QUANTITY-";
                    sql            += tt[i].quant; sql += " WHERE WH_ID=";
                    sql            += worker.choodesWhId; sql += " AND GOOD_ID=";
                    sql            += tt[i].goodID;
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                }
            }
            catch (Exception ed)
            {
                MessageBox.Show(ed + ed.StackTrace);
            }
            finally
            {
                sc.Close();
            }
            takeBut.IsEnabled = false;
            timeStatistic tsBuff;
            int           frID   = 0;
            int           toID   = 0;
            string        fromID = "0";

            for (int j = 0; j < route.Count; j++)
            {
                for (int i = 0; i < route.Count; i++)
                {
                    if (route[i].from == fromID)
                    {
                        tsBuff = new timeStatistic();
                        if (fromID == "0")
                        {
                            tsBuff.shpID = "Склад";
                        }
                        else
                        {
                            tsBuff.shpID = route[i].from;
                        }
                        for (int u = 0; u < shops.Count; u++)
                        {
                            if (route[i].from == shops[u].shpID)
                            {
                                frID = u;
                                break;
                            }
                        }
                        for (int u = 0; u < route.Count; u++)
                        {
                            if (route[i].to == shops[u].shpID)
                            {
                                toID = u;
                                break;
                            }
                        }

                        fromID = route[i].to;
                        destinations.Items.Add(tsBuff);
                        if (route[i].from == route[i].to)
                        {
                            break;
                        }
                        length += start_kommi[frID, toID];
                        break;
                    }
                }
            }
            completeBut.IsEnabled = true;
        }