コード例 #1
0
        private void buttonDock_Click(object sender, RoutedEventArgs e)
        {
            RegisterContextMenu.IsOpen = false;
            int            registerSubId  = 0;
            RegisterDrawer registerDrawer =
                RegisterDrawer.GetFloating(SessionManager.ActiveEmployee.Id);

            if (registerDrawer == null)
            {
                PosDialogWindow.ShowDialog(
                    Types.Strings.RegisterMenuNotFloating, Types.Strings.Error);
                return;
            }
            if (registerSubId == 0)
            {
                DeviceManager.OpenCashDrawer1();
            }
            else if (registerSubId == 1)
            {
                DeviceManager.OpenCashDrawer2();
            }
            RegisterManager.DockRegisterDrawer(registerDrawer, registerSubId);
            OrderEntryCommands.SetupNoOrderCommands();
            PosDialogWindow.ShowDialog(
                Types.Strings.RegisterMenuDrawerIsNowDocked, Types.Strings.Notification);
            OrderEntryCommands.UpdateTicketDetailCommands();
        }
コード例 #2
0
        public void PrintRegisterReport(RegisterDrawer drawer)
        {
            ActionNotificationControl notification =
                ActionNotificationControl.Create(MainWindow.Singleton,
                                                 Types.Strings.RegisterMenuPreparingReport, Types.Strings.Notification);

            notification.Show();
            notification.ParentWindow.Closed += Notification_Closed;
            ReportManager.PrintRegisterReport(drawer, ParentWindow_Closed);
            notification.Close();
        }
コード例 #3
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();
            }
        }
コード例 #4
0
        public static bool DockRegisterDrawer(RegisterDrawer registerDrawer, int registerSubId)
        {
            // No network card or bad network setup
            if (RegisterId == null)
            {
                return(false);
            }
            RegisterMove registerMove =
                RegisterMove.GetOpen(SessionManager.ActiveEmployee.Id);

            registerMove.SetTarget(RegisterId.Value, registerSubId);
            ActiveRegisterDrawer = registerDrawer;
            ActiveRegisterDrawer.SetRegisterId(RegisterId.Value, registerSubId);
            return(true);
        }
コード例 #5
0
 public static void SetActiveRegisterDrawer()
 {
     ActiveRegisterDrawer = null;
     if (RegisterId == null)
     {
         return;
     }
     foreach (RegisterDrawer drawer in RegisterDrawer.GetOpen(RegisterId.Value))
     {
         if (drawer.EmployeeId == SessionManager.ActiveEmployee.Id)
         {
             ActiveRegisterDrawer = drawer;
             return;
         }
     }
 }
コード例 #6
0
        private void buttonCloseOut_Click(object sender, RoutedEventArgs e)
        {
            RegisterContextMenu.IsOpen = false;
            if (PosDialogWindow.ShowDialog(
                    Types.Strings.RegisterMenuConfirmDrawerClose,
                    Types.Strings.Confirmation, DialogButtons.YesNo) != DialogButton.Yes)
            {
                return;
            }
            RegisterManager.OpenCashDrawer();
            RegisterDrawer activeRegisterDrawer = RegisterManager.ActiveRegisterDrawer;

            RegisterManager.CloseActiveRegisterDrawer();
            OrderEntryCommands.UpdateTicketDetailCommands();
            PrintRegisterReport(activeRegisterDrawer);
        }
コード例 #7
0
 public static void CheckAvailable(out bool drawer1Available, out bool drawer2Available)
 {
     if (RegisterId == null)
     {
         drawer1Available = false;
         drawer2Available = false;
         return;
     }
     drawer1Available = true;
     drawer2Available = true;
     foreach (RegisterDrawer drawer in RegisterDrawer.GetOpen(RegisterId.Value))
     {
         if (drawer.RegisterSubId == 0)
         {
             drawer1Available = false;
         }
         if (drawer.RegisterSubId == 1)
         {
             drawer2Available = false;
         }
     }
 }
コード例 #8
0
 private static void ResetTransactionalTables()
 {
     SettingManager.SetStoreSetting("DailyIdOffset", 0);
     DayOfOperation.Reset(typeof(DayOfOperation));
     EmployeeTimesheet.Reset(typeof(EmployeeTimesheet));
     EmployeeTimesheetChangeLog.Reset(typeof(EmployeeTimesheetChangeLog));
     Lock.Reset(typeof(Lock));
     Party.Reset(typeof(Party));
     PartyInvite.Reset(typeof(PartyInvite));
     RegisterDeposit.Reset(typeof(RegisterDeposit));
     RegisterDrawer.Reset(typeof(RegisterDrawer));
     RegisterDrop.Reset(typeof(RegisterDrop));
     RegisterNoSale.Reset(typeof(RegisterNoSale));
     RegisterPayout.Reset(typeof(RegisterPayout));
     Ticket.Reset(typeof(Ticket));
     TicketCoupon.Reset(typeof(TicketCoupon));
     TicketDiscount.Reset(typeof(TicketDiscount));
     TicketItem.Reset(typeof(TicketItem));
     TicketItemOption.Reset(typeof(TicketItemOption));
     TicketItemReturn.Reset(typeof(TicketItemReturn));
     TicketPayment.Reset(typeof(TicketPayment));
     TicketRefund.Reset(typeof(TicketRefund));
     TicketVoid.Reset(typeof(TicketVoid));
 }