コード例 #1
0
        public static void StartRegister()
        {
            // No network card or bad network setup
            if (RegisterId == null)
            {
                PosDialogWindow.ShowDialog(MainWindow.Singleton,
                                           Strings.CanNotDetermineTheRegisterIDCheckNetworkSetup, Strings.Error);
                return;
            }
#if !DEMO
            // Are and physical register drawers even setup?
            if ((DeviceManager.ActiveCashDrawer1 == null) &&
                (DeviceManager.ActiveCashDrawer2 == null))
            {
                PosDialogWindow.ShowDialog(MainWindow.Singleton,
                                           Strings.ThereAreNoPhysicalCashRegisterDrawersSetup, Strings.Error);
                return;
            }

            // Are both register drawers assigned to other employees already?
            bool drawer1Available, drawer2Available;
            RegisterManager.CheckAvailable(out drawer1Available, out drawer2Available);
            if (!drawer1Available && !drawer2Available)
            {
                bool bothDrawersSetup = ((DeviceManager.ActiveCashDrawer1 != null) &&
                                         (DeviceManager.ActiveCashDrawer2 != null));
                PosDialogWindow.ShowDialog(MainWindow.Singleton,
                                           (bothDrawersSetup ? Strings.BothDrawersAre : Strings.TheRegisterDrawerIs) +
                                           Strings.AlreadyBeingUsedBy +
                                           (bothDrawersSetup ? Strings.OtherEmployees : Strings.AnotherEmployee),
                                           Strings.Error);
                return;
            }
#endif
            PosDialogWindow            window  = RegisterDrawerStartControl.CreateInDefaultWindow();
            RegisterDrawerStartControl control = window.DockedControl as RegisterDrawerStartControl;

            PosDialogWindow.ShowPosDialogWindow(MainWindow.Singleton, window);
            if (!window.ClosedByUser &&
                (control.StartingAmount != null))
            {
                RegisterManager.ActiveRegisterDrawer =
                    RegisterDrawer.Add(RegisterId.Value,
                                       0, // TODO: Set RegisterSubId to the physical register drawer used
                                       SessionManager.ActiveEmployee.Id, control.StartingAmount.Value);

                // Resetup command buttons
                OrderEntryCommands.SetupNoOrderCommands();

                // Open the register so the drawer can be placed in it
                OpenCashDrawer();
            }
        }