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)"; }
// ОБНОВИТЬ СТАТУС "ВЧЕРАШНИХ" ЗАКАЗОВ // "вчерашние" заказы - это заказы, у которых 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); }