Пример #1
0
        private void OnChangeRollCommand()
        {
            IsEnabled          = false;
            IsShowErrorMessage = false;
            var rollInfoViewModelA = ObserveWrapperHelper.GetInstance().Resolve <RollInfoViewModel>();

            rollInfoViewModelA.Mode            = RollInfoViewModelMode.ChangeRoll;
            rollInfoViewModelA.CurrentRollInfo = CurrentRollInfo;
            rollInfoViewModelA.Show();
            rollInfoViewModelA.Closed += delegate(object senderA, RollInfoEventArgs argsA)
            {
                IsEnabled = true;

                if (argsA == null)
                {
                    Log.Fatal("Информация о смене и бабине не определена! (Смена ленты билетов)");
                    throw new NullReferenceException("Информация о смене и бабине не определена!");
                }

                if (argsA.IsCancel)
                {
                    Log.Debug("Отмена смены ленты билетов");
                    return;
                }

                var isChange = !Equals(CurrentRollInfo, argsA.RollInfo);
                CurrentRollInfo = argsA.RollInfo ?? CurrentRollInfo;
                ChangeRollInfoToLog(CurrentRollInfo, isChange);

                OnPropertyChanged(() => CurrentTicketNumber);
                OnPropertyChanged(() => CurrentTicketSeries);
                OnPropertyChanged(() => TicketsLeft);
            };
        }
Пример #2
0
        private void OnWriteOffTicketsCommand()
        {
            IsEnabled = false;
            var ticketWriteOffViewModel = ObserveWrapperHelper.GetInstance().Resolve <TicketWriteOffViewModel>();

            ticketWriteOffViewModel.Show(CurrentRollInfo);
            ticketWriteOffViewModel.Closed += delegate(object sender, WriteOffEventArgs args)
            {
                IsEnabled = true;

                if (args == null || args.ChequeRows.IsNullOrEmpty())
                {
                    Log.Debug("Отмена списания порченых билетов.");
                    return;
                }

                var writeOffCheque = new Cheque
                {
                    MoneyType = (short)PaymentTypes.WriteOff,
                    OpenDate  = DateTime.Now,
                    CloseDate = DateTime.Now,
                    Rows      = args.ChequeRows.ToArray(),
                    Shift     = CurrentShift
                };

                SendChequeToServer(writeOffCheque);

                OnPropertyChanged(() => CurrentTicketNumber);
                OnPropertyChanged(() => TicketsLeft);
            };
        }
Пример #3
0
        private void NeedChangeRoll()
        {
            IsEnabled = false;
            var rollInfoViewModelA = ObserveWrapperHelper.GetInstance().Resolve <RollInfoViewModel>();

            rollInfoViewModelA.Mode            = RollInfoViewModelMode.NeedNewRoll;
            rollInfoViewModelA.CurrentRollInfo = CurrentRollInfo;
            rollInfoViewModelA.Show();
            rollInfoViewModelA.Closed += delegate(object sender, RollInfoEventArgs args)
            {
                IsEnabled = true;
                if (args.IsNull() || args.RollInfo.IsNull())
                {
                    Log.Fatal("Информация о смене и бабине не определена! (Необходимая смена ленты билетов)");
                    throw new NullReferenceException("Информация о смене и бабине не определена!");
                }

                CurrentRollInfo = args.RollInfo;
                ChangeRollInfoToLog(CurrentRollInfo, true);
                OnPropertyChanged(() => CurrentTicketNumber);
                OnPropertyChanged(() => CurrentTicketSeries);
                OnPropertyChanged(() => TicketsLeft);
                PrintTickets(PrinterName);
            };
        }
Пример #4
0
        private void OnCloseShiftCommand()
        {
            IsEnabled = false;
            var rollInfoViewModel = ObserveWrapperHelper.GetInstance().Resolve <RollInfoViewModel>();

            rollInfoViewModel.Mode            = RollInfoViewModelMode.CloseShift;
            rollInfoViewModel.CurrentRollInfo = CurrentRollInfo;
            rollInfoViewModel.Show();
            rollInfoViewModel.Closed += delegate(object sender, RollInfoEventArgs args)
            {
                IsEnabled = true;

                if (args == null)
                {
                    return;
                }

                if (args.IsCancel)
                {
                    Log.Debug("Отмена закрытия смены");
                    return;
                }

                ChangeRollInfoToLog(CurrentRollInfo, null);
                var closeDate = CurrentShift.CloseDate == new DateTime() ? DateTime.Now : CurrentShift.CloseDate;
                Log.Debug("Смена закрыта {0} – {1} {2}", CurrentShift.OpenDate, closeDate, CurrentShift.CashierName);

                var loginViewModel = ObserveWrapperHelper.GetInstance().Resolve <LoginViewModel>();
                loginViewModel.Show();
                ApplicationStaticHelper.IsValidExit = true;
                Close();
                Dispose();
            };
        }
Пример #5
0
        private void ResolvePaymentViewModel()
        {
            IsShowErrorMessage = false;

            #if !DEBUG || PRINT_DEBUG
            if (!PrinterDeviceHelper.IsPlug(PrinterName))
            {
                var message = "Принтер {0} не подключен!".F(PrinterName);
                Log.Debug(message);
                RightErrorMessage  = message;
                IsShowErrorMessage = true;
                return;
            }
            #endif

            IsEnabled = false;
            var paymentViewModel = ObserveWrapperHelper.GetInstance().Resolve <PaymentViewModel>();
            paymentViewModel.Total = Total;
            paymentViewModel.Show();
            paymentViewModel.PaymentReached += delegate(object sender, PaymentEventArgs args)
            {
                IsEnabled = true;
                if (!args.PaymentType.HasValue)
                {
                    return;
                }

                _cheque.MoneyType = (short)args.PaymentType.Value;
                Log.Debug("Чек оплачен {0}.", args.PaymentType.Value.DescriptionOf());
                _chequeRows = new List <ChequeRow>();

                PrintCashVoucherToLog(_cashVoucherToPrint);
                PrintTickets(PrinterName);
            };
        }
Пример #6
0
        protected override void OnSettingsCommand()
        {
            IsEnabled = false;
            var settingsVM = ObserveWrapperHelper.GetInstance().Resolve <SettingsViewModel>();

            settingsVM.Show();
            settingsVM.CloseEventHandler += delegate
            {
                IsEnabled = true;
            };
        }
Пример #7
0
        private void OnReversalCommand()
        {
            IsEnabled = false;
            var reversalTicketViewModel = ObserveWrapperHelper.GetInstance().Resolve <ReversalTicketViewModel>();

            reversalTicketViewModel.Show();
            reversalTicketViewModel.Closed += delegate
            {
                IsEnabled = true;
            };
        }
Пример #8
0
        private void OnStartup(object sender, StartupEventArgs e)
        {
            Console.Out.WriteLine("Render Tier: {0}", Tier);

            SingleInstanceHelper.Make();

            var sb = new StringBuilder();

            sb.AppendLine();
            sb.AppendFormat("Запущена касса версии {0}", Assembly.GetExecutingAssembly().GetName().Version);
            Log.Info(sb);

            Loader(StaticHelper.IoCcontainer);
            var o = ObserveWrapperHelper.GetInstance();
            var relationsViewToViewModel = new Dictionary <Type, Type>
            {
                { o.GetWrappedType <LoginViewModel>(true), typeof(LoginView) },
                { o.GetWrappedType <MainViewModel>(true), typeof(MainView) },
                { o.GetWrappedType <PaymentViewModel>(true), typeof(PaymentView) },
                { o.GetWrappedType <RollInfoViewModel>(true), typeof(RollInfoView) },
                { o.GetWrappedType <InformationViewModel>(true), typeof(InformationView) },
                { o.GetWrappedType <SettingsViewModel>(true), typeof(SettingsView) },
                { o.GetWrappedType <TicketWriteOffViewModel>(true), typeof(TicketWriteOffView) },
                { o.GetWrappedType <ReversalTicketViewModel>(true), typeof(ReversalTicketView) }
            };

            ViewManager.RegisterViewViewModelRelations(relationsViewToViewModel);
            ViewModelManager.ActiveViewModels.CollectionChanged += ViewManager.OnViewModelsCoolectionChanged;

            #if LOGIN_DEBUG && PRINT_DEBUG
            Log.Warn("Запущено в режиме полной отладки!");
            #elif LOGIN_DEBUG
            Log.Warn("Запущено в режиме отладки авторизации!");
            #elif PRINT_DEBUG
            Log.Warn("Запущено в режиме отладки печати!");
            #elif DEBUG
            Log.Warn("Запущено в режиме отладки!");
            #else
            Log.Info("Запущено в продуктивном режиме.");
            #endif

            #if DEBUG && !LOGIN_DEBUG
            var startupWindowSeed = o.Resolve <MainViewModel>();
            startupWindowSeed.OpenSession();
            #else
            var startupWindowSeed = o.Resolve <LoginViewModel>();
            startupWindowSeed.Show();
            #endif
        }
Пример #9
0
        protected override void OnSettingsCommand()
        {
            IsEnabled = false;
            var settingsVM = ObserveWrapperHelper.GetInstance().Resolve <SettingsViewModel>();

            settingsVM.Show();
            settingsVM.CloseEventHandler += delegate(object sender, ResultEventArgs args)
            {
                IsEnabled = true;
                if (args == null)
                {
                    return;
                }

                if (args.Result == Result.Yes)
                {
                    OnLoadedCommand();
                }
            };
        }
Пример #10
0
        private void OnChangeRollCommand()
        {
            var rollInfoViewModelA = ObserveWrapperHelper.GetInstance().Resolve <RollInfoViewModel>();

            rollInfoViewModelA.Mode            = RollInfoViewModelMode.ChangeRoll;
            rollInfoViewModelA.CurrentRollInfo = CurrentRollInfo;
            rollInfoViewModelA.Show();
            rollInfoViewModelA.Closed += delegate(object senderA, RollInfoEventArgs argsA)
            {
                if (argsA == null)
                {
                    Log.Fatal("Информация о смене и бабине не определена! (Автоматический запрос на смену)");
                    throw new NullReferenceException("Информация о смене и бабине не определена!");
                }

                _rollInfoEventArgs = argsA;
                Close();
                Dispose();
            };
        }
Пример #11
0
        public void OpenSession()
        {
            ApplicationStaticHelper.IsValidExit = true;
            IsEnabled = false;
            //Отправляем ранее не отправленные на сервер
            SendChequeToServer(null);
            //TODO: Переопределить Show
            Show();
            var rollInfoViewModel = ObserveWrapperHelper.GetInstance().Resolve <RollInfoViewModel>();

            rollInfoViewModel.Mode = RollInfoViewModelMode.OpenShift;
            rollInfoViewModel.Show();
            rollInfoViewModel.Closed += delegate(object sender, RollInfoEventArgs args)
            {
                IsEnabled = true;

                if (args.IsNull() || args.IsCancel || args.RollInfo.IsNull())
                {
                    Log.Debug("Отмена открытия сессии");
                    var loginViewModel = ObserveWrapperHelper.GetInstance().Resolve <LoginViewModel>();
                    loginViewModel.Show();
                    Close();
                    Dispose();
                    return;
                }

                ApplicationStaticHelper.IsValidExit = false;

                CurrentRollInfo = args.RollInfo;
                CurrentShift    = args.Shift;

                OnPropertyChanged(() => CurrentTicketNumber);
                OnPropertyChanged(() => CurrentTicketSeries);
                OnPropertyChanged(() => TicketsLeft);
                ChangeRollInfoToLog(CurrentRollInfo, false);

                FillCollectionServices();

                Log.Debug("Смена открыта {0} {1}", CurrentShift.OpenDate, CurrentShift.CashierName);
            };
        }
Пример #12
0
 private void OnEnterCommand()
 {
     IsShowErrorMessage = false;
     BaseAPIStore.Logon(User.Login, Password);
     try
     {
         BaseAPI.isShiftOpen();
         var mainViewModel = ObserveWrapperHelper.GetInstance().Resolve <MainViewModel>();
         mainViewModel.PosTitle = PosTitle;
         mainViewModel.User     = User.UserDisplayName;
         mainViewModel.OpenSession();
         Close();
         Dispose();
     }
     catch (Exception e)
     {
         Log.Fatal(e);
         ErrorMessage       = "Не верный логин или пароль!";
         IsShowErrorMessage = true;
     }
 }
Пример #13
0
        private void OnCalculateCommand()
        {
            _cashVoucherToPrint = (CashVoucher <ICashVoucherItem>)ResultCashVoucher.SourceCollection;

            var ticketsNeed = Math.Abs(TicketsLeft - _cashVoucherToPrint.Sum(item => item.Count));

            if (ticketsNeed < 0)
            {
                IsEnabled = false;
                var informationViewModel = ObserveWrapperHelper.GetInstance().Resolve <InformationViewModel>();
                informationViewModel.Count           = ticketsNeed;
                informationViewModel.CurrentRollInfo = CurrentRollInfo;
                informationViewModel.Show();
                informationViewModel.Closed += delegate(object senderD, RollInfoEventArgs args)
                {
                    IsEnabled = true;
                    if (args.IsNull())
                    {
                        Log.Fatal("Информация о смене и бабине не определена! (Автоматический запрос на смену)");
                        throw new NullReferenceException("Информация о смене и бабине не определена!");
                    }

                    if (!args.IsCancel)
                    {
                        ChangeRollInfoToLog(args.RollInfo, true);
                        CurrentRollInfo = args.RollInfo;
                    }
                    else
                    {
                        Log.Debug("Отмена автоматического запроса на смену билетов");
                    }

                    ResolvePaymentViewModel();
                };
            }
            else
            {
                ResolvePaymentViewModel();
            }
        }