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(); } }