Exemplo n.º 1
0
        public static List <BOL.Terminal.objTerminal> GetTerminalToTransfer(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "* " +
                                "FROM " +
                                "terminal " +
                                "WHERE " +
                                "active = @active_only AND id != @terminal_id";


                List <BOL.Terminal.objTerminal> List = conn.Query <BOL.Terminal.objTerminal>(statement,
                                                                                             new
                {
                    terminal_id = terminal.id,
                    active_only = true
                }).ToList();


                conn.Close();
                conn.Dispose();

                return(List);
            }
        }
        public static bool TransferQueue(BOL.Terminal.objTerminal target_terminal, BOL.Terminal_Queue.objTerminalQueue queue)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "INSERT INTO " +
                                "transaction_queue " +
                                "(transaction_id, terminal_id, queue_number, date_time) " +
                                "VALUES " +
                                "(@transaction_id, @target_terminal, @queue_number, CURRENT_TIMESTAMP())";

                statement += ";UPDATE " +
                             "terminal_queue " +
                             "SET " +
                             "is_done = @is_done " +
                             "WHERE " +
                             "id = @id";

                conn.Execute
                    (statement,
                    new
                {
                    id              = queue.id,
                    is_done         = true,
                    transaction_id  = queue.transaction_id,
                    target_terminal = target_terminal.id,
                    queue_number    = queue.objTransactionQueue.queue_number
                });

                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
Exemplo n.º 3
0
        public static bool Add(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "IFNULL(MAX(sorting), 0) + 1 " +
                                "FROM " +
                                "terminal";

                int next_sorting = conn.Query <int>(statement).SingleOrDefault();

                statement = "INSERT INTO terminal " +
                            "(name, description, title_color, number_color, background_color, active, sorting) " +
                            "VALUES " +
                            "(@name, @description, @title_color, @number_color, @background_color, @active, @sorting)";

                conn.Execute(statement,
                             new
                {
                    name             = terminal.name,
                    description      = terminal.description,
                    title_color      = terminal.title_color,
                    number_color     = terminal.number_color,
                    background_color = terminal.background_color,
                    active           = terminal.active,
                    sorting          = next_sorting
                });


                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
Exemplo n.º 4
0
        public static BOL.Terminal.objTerminal GetTerminal(long terminal_id)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "* " +
                                "FROM " +
                                "terminal " +
                                "WHERE " +
                                "id = @id";


                BOL.Terminal.objTerminal Terminal = conn.Query <BOL.Terminal.objTerminal>(statement,
                                                                                          new
                {
                    id = terminal_id
                }).SingleOrDefault();

                if (Terminal == null)
                {
                    Terminal = new BOL.Terminal.objTerminal();
                }

                conn.Close();
                conn.Dispose();

                return(Terminal);
            }
        }
Exemplo n.º 5
0
        public static bool Update(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "UPDATE " +
                                "terminal " +
                                "SET " +
                                "name = @name, " +
                                "description = @description, " +
                                "title_color = @title_color, " +
                                "number_color = @number_color, " +
                                "background_color = @background_color, " +
                                "active = @active " +
                                "WHERE " +
                                "id = @id";

                conn.Execute(statement,
                             new
                {
                    id               = terminal.id,
                    name             = terminal.name,
                    description      = terminal.description,
                    title_color      = terminal.title_color,
                    number_color     = terminal.number_color,
                    background_color = terminal.background_color,
                    active           = terminal.active
                });


                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
Exemplo n.º 6
0
        public static bool Delete(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "UPDATE " +
                                "terminal " +
                                "SET " +
                                "sorting = sorting - 1 " +
                                "WHERE " +
                                "sorting > @sorting";

                statement += ";DELETE FROM " +
                             "terminal " +
                             "WHERE " +
                             "id = @id";
                conn.Execute(statement,
                             new
                {
                    id      = terminal.id,
                    sorting = terminal.sorting
                });


                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
        public static BOL.Terminal_Queue.objTerminalQueue GetCurrentQueue(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "TRQ.*, TNQ.*,  T.* " +
                                "FROM " +
                                "terminal_queue TRQ " +
                                "INNER JOIN transaction_queue TNQ ON TRQ.transaction_queue_id = TNQ.id " +
                                "INNER JOIN transaction T ON TNQ.transaction_id = T.id " +
                                "WHERE " +
                                "TRQ.terminal_id = @terminal_id AND TRQ.is_done = @is_done AND DATE(TNQ.date_time) = CURRENT_DATE() " +
                                "ORDER BY " +
                                "TRQ.id DESC " +
                                "LIMIT 1";

                BOL.Terminal_Queue.objTerminalQueue Queue = conn.Query <BOL.Terminal_Queue.objTerminalQueue, BOL.Transaction_Queue.objTransactionQueue, BOL.Transaction.objTransaction, BOL.Terminal_Queue.objTerminalQueue>(statement,
                                                                                                                                                                                                                             (TRQ, TNQ, T) => { TRQ.objTransactionQueue = TNQ; TNQ.objTransaction = T; return(TRQ); },
                                                                                                                                                                                                                             new
                {
                    is_done     = false,
                    terminal_id = terminal.id,
                }).SingleOrDefault();

                if (Queue == null)
                {
                    Queue = new BOL.Terminal_Queue.objTerminalQueue();
                }

                conn.Close();
                conn.Dispose();

                return(Queue);
            }
        }
Exemplo n.º 8
0
 public vmTerminalForwarding(BOL.Terminal.objTerminal terminal, BOL.Terminal_Queue.objTerminalQueue queue)
 {
     this.Terminal = terminal;
     this.Queue    = queue;
     Buttons       = new ObservableCollection <Views.ucButton>();
     Update_Buttons_List();
 }
Exemplo n.º 9
0
        public TerminalControl(COMMON.DataEvent main_event, BOL.Terminal.objTerminal terminal, BOL.Display_Settings.objDisplaySettings display_setting)
        {
            InitializeComponent();

            this.Width  = display_setting.terminal_width;
            this.Height = display_setting.terminal_height;
            this.TerminalTitle.FontSize  = display_setting.terminal_name_fontsize;
            this.lblQueueNumber.FontSize = display_setting.queue_number_fontsize;
            this.Voice = new System.Speech.Synthesis.SpeechSynthesizer()
            {
                Volume = 100
            };
            this.MainEvent       = main_event;
            this.Terminal        = terminal;
            this.DefaultFontsize = lblQueueNumber.FontSize;
            this.Timer           = new System.Windows.Threading.DispatcherTimer()
            {
                Interval = new TimeSpan(0, 0, 1)
            };
            this.NotificationSound        = new SoundPlayer(Properties.Resources.doorbell_sound);
            this.Timer.Tick              += Timer_Tick;
            this.MainEvent.OnDataConfirm += MainEvent_OnDataConfirm;

            Initialize_Window();
        }
Exemplo n.º 10
0
        public vmTerminalEntry(COMMON.SaveMode.Mode mode, BOL.Terminal.objTerminal terminal)
        {
            this.Mode           = mode;
            this.Terminal       = terminal;
            this.Save_Command   = new COMMON.RelayCommand(Execute_Save, CanSave);
            this.Cancel_Command = new COMMON.RelayCommand(Execute_Cancel, CanCancel);

            Convert_StringToBrush();
        }
Exemplo n.º 11
0
        public static bool Move_Down(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "* " +
                                "FROM " +
                                "terminal " +
                                "WHERE " +
                                "sorting > @sorting " +
                                "ORDER BY " +
                                "sorting ASC " +
                                "LIMIT 1";

                BOL.Terminal.objTerminal previous_terminal = conn.Query <BOL.Terminal.objTerminal>(statement,
                                                                                                   new
                {
                    sorting = terminal.sorting
                }).SingleOrDefault();

                if (previous_terminal != null)
                {
                    statement = "UPDATE " +
                                "terminal " +
                                "SET " +
                                "sorting = @current_sorting " +
                                "WHERE " +
                                "id = @previous_id";
                    statement += ";UPDATE " +
                                 "terminal " +
                                 "SET " +
                                 "sorting = @previous_sorting " +
                                 "WHERE " +
                                 "id = @current_id";

                    conn.Execute(statement,
                                 new
                    {
                        current_sorting  = terminal.sorting,
                        previous_id      = previous_terminal.id,
                        previous_sorting = previous_terminal.sorting,
                        current_id       = terminal.id
                    });
                }

                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
Exemplo n.º 12
0
        public vmTermTrans(BOL.Terminal.objTerminal terminal)
        {
            TerminalTransactions = new ObservableCollection <BOL.Terminal_Transaction.objTerminalTransaction>();
            Transactions         = new ObservableCollection <BOL.Transaction.objTransaction>();
            Terminal             = terminal;

            this.Close_Command    = new COMMON.RelayCommand(this.Execute_Close, this.CanClose);
            this.AddNew_Command   = new COMMON.RelayCommand(this.Execute_AddNew, this.CanAddNew);
            this.Remove_Command   = new COMMON.RelayCommand(this.Execute_Remove, this.CanRemove);
            this.MoveUp_Command   = new COMMON.RelayCommand(this.Execute_MoveUp, this.CanMoveUp);
            this.MoveDown_Command = new COMMON.RelayCommand(this.Execute_MoveDown, this.CanMoveDown);

            Update_TerminalTransaction_List();
            Update_AvailableTransactions_List();
        }
Exemplo n.º 13
0
        //public Action CloseAction { get; set; }
        #endregion

        #region Constructors
        public vmTerminal(BOL.Terminal.objTerminal terminal, COMMON.DataEvent main_event)
        {
            this.Voice = new System.Speech.Synthesis.SpeechSynthesizer()
            {
                Volume = 100
            };
            this.Timer = new System.Windows.Threading.DispatcherTimer()
            {
                Interval = new TimeSpan(0, 0, 1)
            };
            Timer.Tick            += (s, a) => { Animate_Notification(); };
            this.NotificationSound = new SoundPlayer(Properties.Resources.doorbell_sound);

            Terminal  = terminal;
            MainEvent = main_event;
            MainEvent.OnDataConfirm += MainEvent_OnDataConfirm;
            IsVisible = Visibility.Visible;

            Initialize();
        }
        public static bool AddNew_Transaction(BOL.Terminal.objTerminal terminal, BOL.Transaction.objTransaction transaction)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "IFNULL(MAX(priority_level), 0) + 1 " +
                                "FROM " +
                                "terminal_transaction " +
                                "WHERE " +
                                "terminal_id = @terminal_id";

                int next_level = conn.Query <int>(statement,
                                                  new
                {
                    terminal_id = terminal.id
                }).SingleOrDefault();

                statement = "INSERT INTO " +
                            "terminal_transaction " +
                            "(terminal_id, transaction_id, priority_level) " +
                            "VALUES " +
                            "(@terminal_id, @transaction_id, @priority_level)";

                conn.Execute(statement,
                             new
                {
                    terminal_id    = terminal.id,
                    transaction_id = transaction.id,
                    priority_level = next_level
                });

                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
        public static List <BOL.Transaction.objTransaction> GetAvailableTransactions(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "* " +
                                "FROM " +
                                "transaction " +
                                "WHERE " +
                                "active = @active AND id NOT IN (SELECT transaction_id FROM terminal_transaction WHERE terminal_id = @terminal_id)";


                List <BOL.Transaction.objTransaction> List = conn.Query <BOL.Transaction.objTransaction>(statement,
                                                                                                         new
                {
                    active      = true,
                    terminal_id = terminal.id
                }).ToList();
                conn.Close();
                conn.Dispose();

                return(List);
            }
        }
Exemplo n.º 16
0
        public static BOL.Task.objTask GetTerminalClientTask(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "* " +
                                "FROM " +
                                "task " +
                                "WHERE " +
                                "type = @type AND terminal_id = @terminal_id " +
                                "ORDER BY " +
                                "id ASC " +
                                "LIMIT 1";

                BOL.Task.objTask Task = conn.Query <BOL.Task.objTask>(statement,
                                                                      new
                {
                    terminal_id = terminal.id,
                    type        = BOL.Task.objTask.MessageType.RefreshClientTerminal
                }).SingleOrDefault();

                if (Task != null)
                {
                    statement = "DELETE FROM " +
                                "task " +
                                "WHERE " +
                                "id = @id";

                    conn.Execute(statement, new { id = Task.id });
                }

                conn.Close();
                conn.Dispose();
                return(Task);
            }
        }
        public static List <BOL.Terminal_Queue.objTerminalQueue> GetTerminalQueueHistory(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "TRQ.*, TNQ.*, T.* " +
                                "FROM " +
                                "terminal_queue TRQ " +
                                "INNER JOIN transaction_queue TNQ ON TRQ.transaction_queue_id = TNQ.id " +
                                "INNER JOIN transaction T ON TNQ.transaction_id = T.id " +
                                "WHERE " +
                                "TRQ.terminal_id = @terminal_id AND DATE(TNQ.date_time) = CURRENT_DATE() AND TRQ.is_done = @is_done " +
                                "ORDER BY " +
                                "TRQ.id DESC";

                List <BOL.Terminal_Queue.objTerminalQueue> Queue = conn.Query <BOL.Terminal_Queue.objTerminalQueue, BOL.Transaction_Queue.objTransactionQueue, BOL.Transaction.objTransaction, BOL.Terminal_Queue.objTerminalQueue>(statement,
                                                                                                                                                                                                                                    (TRQ, TNQ, T) => { TRQ.objTransactionQueue = TNQ; TNQ.objTransaction = T; return(TRQ); },
                                                                                                                                                                                                                                    new
                {
                    is_done     = true,
                    terminal_id = terminal.id,
                }).ToList();

                conn.Close();
                conn.Dispose();

                return(Queue);
            }
        }
        public static bool Set_Waiting_As_Current(BOL.Transaction_Queue.objTransactionQueue transaction_queue, BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "UPDATE " +
                                "terminal_queue " +
                                "SET " +
                                "is_done = @previous_done " +
                                "WHERE " +
                                "terminal_id = @terminal_id";

                statement += ";INSERT INTO " +
                             "terminal_queue " +
                             "(terminal_id, transaction_queue_id, is_done) " +
                             "VALUES " +
                             "(@terminal_id, @transaction_queue_id, @is_done)";

                conn.Execute(statement,
                             new
                {
                    previous_done        = true,
                    transaction_id       = transaction_queue.objTransaction.id,
                    terminal_id          = terminal.id,
                    transaction_queue_id = transaction_queue.id,
                    is_done = false
                });

                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
        public static bool Next(BOL.Terminal.objTerminal terminal, BOL.Terminal_Queue.objTerminalQueue terminal_queue)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "UPDATE " +
                                "terminal_queue " +
                                "SET " +
                                "is_done = @is_done " +
                                "WHERE " +
                                "id = @id";

                conn.Execute(statement,
                             new
                {
                    id      = terminal_queue.id,
                    is_done = true
                });

                statement = "SELECT " +
                            "TQ.*, T.* " +
                            "FROM " +
                            "transaction_queue TQ " +
                            "INNER JOIN transaction T ON TQ.transaction_id = T.id " +
                            "WHERE " +
                            "TQ.terminal_id = @terminal_id AND TQ.id NOT IN (SELECT transaction_queue_id FROM terminal_queue) AND DATE(TQ.date_time) = CURRENT_DATE() " +
                            "ORDER BY " +
                            "TQ.id ASC " +
                            "LIMIT 1";

                BOL.Transaction_Queue.objTransactionQueue ForwardedQueue = conn.Query <BOL.Transaction_Queue.objTransactionQueue, BOL.Transaction.objTransaction, BOL.Transaction_Queue.objTransactionQueue>(statement,
                                                                                                                                                                                                             (TQ, T) => { TQ.objTransaction = T; return(TQ); },
                                                                                                                                                                                                             new
                {
                    terminal_id = terminal.id
                }).SingleOrDefault();

                if (ForwardedQueue == null)
                {
                    statement = "SELECT " +
                                "TQ.*, T.* " +
                                "FROM " +
                                "transaction_queue TQ " +
                                "INNER JOIN transaction T ON TQ.transaction_id = T.id " +
                                "INNER JOIN terminal_transaction TT ON T.id = TT.transaction_id " +
                                "WHERE " +
                                "TQ.id NOT IN (SELECT transaction_queue_id FROM terminal_queue) AND TT.terminal_id = @terminal_id AND TQ.terminal_id IS NULL AND DATE(TQ.date_time) = CURRENT_DATE() " +
                                "ORDER BY " +
                                "TT.priority_level ASC, TQ.queue_number ASC, TQ.id ASC " +
                                "LIMIT 1";

                    BOL.Transaction_Queue.objTransactionQueue TransQueue = conn.Query <BOL.Transaction_Queue.objTransactionQueue, BOL.Transaction.objTransaction, BOL.Transaction_Queue.objTransactionQueue>(statement,
                                                                                                                                                                                                             (TQ, T) => { TQ.objTransaction = T; return(TQ); },
                                                                                                                                                                                                             new
                    {
                        terminal_id = terminal.id
                    }).SingleOrDefault();

                    if (TransQueue == null)
                    {
                        return(false);
                    }

                    statement = "INSERT INTO " +
                                "terminal_queue " +
                                "(terminal_id, transaction_queue_id, is_done) " +
                                "VALUES " +
                                "(@terminal_id, @transaction_queue_id, @is_done)";

                    conn.Execute(statement,
                                 new
                    {
                        transaction_id       = TransQueue.objTransaction.id,
                        terminal_id          = terminal.id,
                        transaction_queue_id = TransQueue.id,
                        is_done = false
                    });

                    conn.Close();
                    conn.Dispose();

                    return(true);
                }

                statement = "INSERT INTO " +
                            "terminal_queue " +
                            "(terminal_id, transaction_queue_id, is_done) " +
                            "VALUES " +
                            "(@terminal_id, @transaction_queue_id, @is_done)";

                conn.Execute(statement,
                             new
                {
                    transaction_id       = ForwardedQueue.objTransaction.id,
                    terminal_id          = terminal.id,
                    transaction_queue_id = ForwardedQueue.id,
                    is_done = false
                });

                conn.Close();
                conn.Dispose();

                return(true);
            }
        }
Exemplo n.º 20
0
 public ucButton(BOL.Terminal.objTerminal terminal, BOL.Terminal_Queue.objTerminalQueue terminal_queue)
 {
     this.Terminal      = terminal;
     this.TerminalQueue = terminal_queue;
     this.Click_Command = new COMMON.RelayCommand(this.Execute_Click, this.CanClick);
 }
        public static List <BOL.Transaction_Queue.objTransactionQueue> GetWaitingList(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "TQ.*, T.* " +
                                "FROM " +
                                "transaction_queue TQ " +
                                "INNER JOIN transaction T ON TQ.transaction_id = T.id " +
                                "WHERE " +
                                "TQ.terminal_id = @terminal_id AND TQ.id NOT IN (SELECT transaction_queue_id FROM terminal_queue) AND DATE(TQ.date_time) = CURRENT_DATE() " +
                                "ORDER BY " +
                                "TQ.id ASC";

                IEnumerable <BOL.Transaction_Queue.objTransactionQueue> ForwardedQueue = conn.Query <BOL.Transaction_Queue.objTransactionQueue, BOL.Transaction.objTransaction, BOL.Transaction_Queue.objTransactionQueue>(statement,
                                                                                                                                                                                                                           (TQ, T) => { TQ.objTransaction = T; return(TQ); },
                                                                                                                                                                                                                           new
                {
                    terminal_id = terminal.id
                }).ToList();

                if (ForwardedQueue == null)
                {
                    ForwardedQueue = new List <BOL.Transaction_Queue.objTransactionQueue>();
                }

                statement = "SELECT " +
                            "TQ.*, T.* " +
                            "FROM " +
                            "transaction_queue TQ " +
                            "INNER JOIN transaction T ON TQ.transaction_id = T.id " +
                            "INNER JOIN terminal_transaction TT ON T.id = TT.transaction_id " +
                            "WHERE " +
                            "TQ.id NOT IN (SELECT transaction_queue_id FROM terminal_queue) AND TT.terminal_id = @terminal_id AND TQ.terminal_id IS NULL AND DATE(TQ.date_time) = CURRENT_DATE() " +
                            "ORDER BY " +
                            "TT.priority_level ASC, TQ.queue_number ASC, TQ.id ASC";

                IEnumerable <BOL.Transaction_Queue.objTransactionQueue> TransQueue = conn.Query <BOL.Transaction_Queue.objTransactionQueue, BOL.Transaction.objTransaction, BOL.Transaction_Queue.objTransactionQueue>(statement,
                                                                                                                                                                                                                       (TQ, T) => { TQ.objTransaction = T; return(TQ); },
                                                                                                                                                                                                                       new
                {
                    terminal_id = terminal.id
                }).ToList();

                if (TransQueue == null)
                {
                    TransQueue = new List <BOL.Transaction_Queue.objTransactionQueue>();
                }

                IEnumerable <BOL.Transaction_Queue.objTransactionQueue> WaitingList = ForwardedQueue.Union(TransQueue);

                conn.Close();
                conn.Dispose();

                return(WaitingList.ToList());
            }
        }
        public static List <BOL.Terminal_Transaction.objTerminalTransaction> GetTerminalTransactions(BOL.Terminal.objTerminal terminal)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "TT.*, T.* " +
                                "FROM " +
                                "terminal_transaction TT " +
                                "INNER JOIN transaction T ON TT.transaction_id = T.id " +
                                "WHERE " +
                                "TT.terminal_id = @terminal_id " +
                                "ORDER BY " +
                                "TT.priority_level ASC";

                List <BOL.Terminal_Transaction.objTerminalTransaction> Transactions = conn.Query <BOL.Terminal_Transaction.objTerminalTransaction, BOL.Transaction.objTransaction, BOL.Terminal_Transaction.objTerminalTransaction>(statement,
                                                                                                                                                                                                                                    (TT, T) => { TT.objTransaction = T; return(TT); },
                                                                                                                                                                                                                                    new
                {
                    terminal_id = terminal.id
                }).ToList();

                conn.Close();
                conn.Dispose();

                return(Transactions);
            }
        }