コード例 #1
0
ファイル: OrderDishViewModel.cs プロジェクト: AlCher2018/KDS
 private void setLocalDTFields()
 {
     // ожидаемое время начала приготовления для автоматического перехода в состояние приготовления
     _dtCookingStartEstimated = this.CreateDate.AddSeconds(this.DelayedStartTime);
     // время приготовления
     _tsCookingEstimated  = TimeSpan.FromSeconds(this.EstimatedTime);
     _strCookingEstimated = AppLib.GetAppStringTS(_tsCookingEstimated);
 }
コード例 #2
0
        private void updateWaitTimer()
        {
            TimeSpan ts = (_appOrder.IsExistOrderEstimateDT
                ? _appOrder.OrderCookingBaseDT - DateTime.Now
                : DateTime.Now - _appOrder.OrderCookingBaseDT);

            ts = getRoundedTimeSpan(ts, 1d);

            _tbWaitTime.Text = AppLib.GetAppStringTS(ts);
            //Debug.Print(_tbWaitTime.Text);
        }
コード例 #3
0
ファイル: OrderPanel1.xaml.cs プロジェクト: AlCher2018/KDS
        private void updateCookingTimer()
        {
            if (_cookingEstDate == DateTime.MinValue)
            {
                return;
            }

            TimeSpan ts = (_cookingEstMinutes == 0 ? DateTime.Now - _cookingEstDate : _cookingEstDate - DateTime.Now);

            ts = getRoundedTimeSpan(ts, 1d);
            string tss = AppLib.GetAppStringTS(ts);

            if (this.tbCookingTimer.Text != tss)
            {
                this.tbCookingTimer.Text = tss;
            }
        }
コード例 #4
0
ファイル: OrderDishViewModel.cs プロジェクト: AlCher2018/KDS
        // время, отображаемое на панели блюда
        private string getViewTimerString()
        {
            // для ИНГРЕДИЕНТОВ
            if ((this.ParentUID != null) && (this.ParentUID.Length > 0))
            {
                // отключен флажок НЕЗАВИСИМОСТИ (IsIngredientsIndependent == false) и ВЫКЛЮЧЕН флажок показа таймера ShowTimerOnDependIngr
                bool b1          = (bool)WpfHelper.GetAppGlobalValue("IsIngredientsIndependent", false),
                     b2          = (bool)WpfHelper.GetAppGlobalValue("ShowTimerOnDependIngr", false);
                bool isShowTimer = b1 || (!b1 && b2);
                if (isShowTimer == false)
                {
                    return(null);
                }
            }

            // текущее значение таймера
            string timerString = this.WaitingTimerString;

            // состояние "Ожидание" начала готовки
            if (this.Status == OrderStatusEnum.WaitingCook)
            {
                // если есть "Готовить через" - отображаем время начала автомат.перехода в сост."В процессе" по убыванию
                if (this.DelayedStartTime != 0)
                {
                    TimeSpan ts = _dtCookingStartEstimated - DateTime.Now;
                    timerString = AppLib.GetAppStringTS(ts);
                    if (ts.Ticks < 0)
                    {
                        if (this.EstimatedTime > 0)
                        {
                            timerString = _strCookingEstimated;
                        }
                        else
                        {
                            timerString = "";
                        }
                    }
                }
                // если есть время приготовления, то отобразить время приготовления
                else if (this.EstimatedTime != 0)
                {
                    timerString = _strCookingEstimated;
                }
                else
                {
                    // по умолчанию отправить
                    timerString = "";
                }
            }

            // другие состояния
            else
            {
                TimeSpan tsTimerValue = AppLib.GetTSFromString(this.WaitingTimerString);

                // состояние "В процессе" - отображаем время приготовления по убыванию от планового времени приготовления,
                // если нет планового времени приготовления, то сразу отрицат.значения
                if (this.Status == OrderStatusEnum.Cooking)
                {
                    tsTimerValue = _tsCookingEstimated - (tsTimerValue.Ticks < 0 ? tsTimerValue.Negate() : tsTimerValue);
                }

                else
                {
                    // состояние "Готово/ПодтвГотово" - счетчик по убыванию от ExpectedTake (период, в течение которого официант должен забрать блюдо)
                    if ((!_isUseReadyConfirmed && (this.Status == OrderStatusEnum.Ready)) ||
                        (_isUseReadyConfirmed && (this.Status == OrderStatusEnum.ReadyConfirmed)))
                    {
                        if (!_expTakeTS.IsZero())
                        {
                            tsTimerValue = _expTakeTS - (tsTimerValue.Ticks < 0 ? tsTimerValue.Negate() : tsTimerValue);
                        }
                    }
                    // есть ПодтвГотово, находимся в состоянии Готово и _autoGotoReadyConfirmPeriod не равен 0 - счетчик по убыванию от _autoGotoReadyConfirmPeriod (период, по истечении которого происходит автоматический переход в состояние ПодтвГотово)
                    //  && (_savedReadyTS.IsZero() == false)  -- зачем?
                    else if (_isUseReadyConfirmed &&
                             (!_autoGotoReadyConfirmTS.IsZero()) &&
                             (this.Status == OrderStatusEnum.Ready))
                    {
                        tsTimerValue = _autoGotoReadyConfirmTS - (tsTimerValue - _savedReadyTS);
                        _enableTimerToAutoReadyConfirm = (tsTimerValue.TotalSeconds > 0);
                    }
                }

                timerString = AppLib.GetAppStringTS(tsTimerValue);
            }

            return(timerString);
        }