Exemple #1
0
        static DBOrderHelper()
        {
            _dbOrders = new List <Order>();
            tmpDishes = new List <OrderDish>();
            _ids      = new List <int>();
            _dishUIDs = new List <string>();

            _midnightShiftHour = AppProperties.GetDoubleProperty("MidnightShiftShowYesterdayOrders");
            // постоянные условия отбора блюд из БД:
            _sDishWhere = "(Quantity != 0)";
        }
Exemple #2
0
        // ОБНОВИТЬ СТАТУС "ВЧЕРАШНИХ" ЗАКАЗОВ
        // "вчерашние" заказы - это заказы, у которых CreateDate меньше начала текущего дня (полночь)
        // минус смещение от полуночи назад (MidnightShiftShowYesterdayOrders)
        // "Вчерашним" заказам статус устанавливается в 9 и они НЕ будут отображаться на КДСе.
        private bool updateYesterdayOrdersStatus()
        {
            // дата/время, КОГДА необходимо обновить статус вчерашних заказов
            DateTime dtUpdate = _currentDate.Add(AppLib.TimeOfAutoCloseYesterdayOrders);

            if (DateTime.Now < dtUpdate)
            {
                return(false);
            }

            AppLib.WriteLogOrderDetails(" - обновить статус вчерашних заказов... - START");
            _tmpDT = DateTime.Now;

            // дата/время, С КОТОРОГО заказы считаются "сегодяшними"
            double d1 = AppProperties.GetDoubleProperty("MidnightShiftShowYesterdayOrders");

            dtUpdate = DateTime.Today.AddHours(-d1);

            string sqlText = null;
            int    cntDishes = 0, cntOrders = 0, iAffected;
            bool   retVal = false;

            try
            {
                using (DBContext db = new DBContext())
                {
                    sqlText = string.Format("SELECT Id FROM [Order] WHERE (OrderStatusId < 3) AND (CreateDate < {0})", dtUpdate.ToSQLExpr());
                    DataTable dt = db.GetQueryTable(sqlText);

                    if (dt != null)
                    {
                        int orderId;
                        foreach (DataRow dtRow in dt.Rows)
                        {
                            orderId = System.Convert.ToInt32(dtRow[0]);
                            if (orderId > 0)
                            {
                                // обновить статус блюд
                                sqlText    = $"UPDATE [OrderDish] SET DishStatusId = 9 WHERE (OrderId={orderId.ToString()})";
                                iAffected  = db.ExecuteCommand(sqlText);
                                cntDishes += iAffected;

                                // обновить статус заказа
                                sqlText    = $"UPDATE [Order] SET OrderStatusId = 9, QueueStatusId = 9 WHERE (Id={orderId.ToString()})";
                                iAffected  = db.ExecuteCommand(sqlText);
                                cntOrders += iAffected;
                            }
                        }
                        dt.Dispose();
                    }
                }

                retVal = true;
            }
            catch (Exception ex)
            {
                AppLib.WriteLogErrorMessage(" - ошибка обновления заказов: {0} ({1})", ErrorHelper.GetShortErrMessage(ex), sqlText);
            }
            AppLib.WriteLogOrderDetails(" - обновлено заказов {0} (блюд {1}) - FINISH - {2}", cntOrders, cntDishes, _tmpPeriod());

            return(retVal);
        }