Exemplo n.º 1
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();
 }
        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);
            }
        }
        public static bool Set_History_As_Current(BOL.Terminal_Queue.objTerminalQueue terminal_queue)
        {
            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       = terminal_queue.transaction_id,
                    terminal_id          = terminal_queue.terminal_id,
                    transaction_queue_id = terminal_queue.transaction_queue_id,
                    is_done = false
                });

                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.º 5
0
        void MainEvent_OnDataConfirm(object obj)
        {
            if (obj != null)
            {
                if (((BOL.Task.objTask)obj).terminal_id == this.Terminal.id)
                {
                    switch (((BOL.Task.objTask)obj).type)
                    {
                    case BOL.Task.objTask.MessageType.NextQueue:
                        DAL.Task.Task_Repository.Delete_Task((BOL.Task.objTask)obj);
                        Queue = DAL.Terminal_Queue.TerminalQueue_Repository.GetCurrentQueue(this.Terminal);
                        lblQueueNumber.Text = Queue.ToString();
                        if (Queue.id > 0)
                        {
                            count = 0;
                            Timer.Start();
                            Anounce_Message("Client number " + Queue.ToString() + ", please proceed to " + Terminal.name);
                        }
                        break;

                    case BOL.Task.objTask.MessageType.Recall:
                        DAL.Task.Task_Repository.Delete_Task((BOL.Task.objTask)obj);
                        Queue = DAL.Terminal_Queue.TerminalQueue_Repository.GetCurrentQueue(this.Terminal);
                        lblQueueNumber.Text = Queue.ToString();
                        if (Queue.id > 0)
                        {
                            count = 0;
                            Timer.Start();
                            Anounce_Message("Client number " + Queue.ToString() + ", please proceed to " + Terminal.name);
                        }
                        break;

                    case BOL.Task.objTask.MessageType.QueueForward:
                        DAL.Task.Task_Repository.Delete_Task((BOL.Task.objTask)obj);
                        Queue = DAL.Terminal_Queue.TerminalQueue_Repository.GetCurrentQueue(this.Terminal);
                        lblQueueNumber.Text = Queue.ToString();
                        break;

                    case BOL.Task.objTask.MessageType.RefreshTerminal:
                        DAL.Task.Task_Repository.Delete_Task((BOL.Task.objTask)obj);
                        Queue = DAL.Terminal_Queue.TerminalQueue_Repository.GetCurrentQueue(this.Terminal);
                        lblQueueNumber.Text = Queue.ToString();
                        break;

                    default:
                        //nothing
                        break;
                    }
                    ;
                }
            }
        }
        public static bool ReturnQueue(BOL.Terminal_Queue.objTerminalQueue queue)
        {
            using (var conn = DAL.Base.ConnectionManager.Connection)
            {
                var statement = "SELECT " +
                                "TRQ.*, TNQ.* " +
                                "FROM " +
                                "terminal_queue TRQ " +
                                "INNER JOIN transaction_queue TNQ ON TRQ.transaction_queue_id = TNQ.id " +
                                "WHERE " +
                                "TNQ.queue_number = @queue_number AND DATE(TNQ.date_time) = CURRENT_DATE() AND TRQ.terminal_id != @terminal_id AND TRQ.is_done = @is_done " +
                                "ORDER BY " +
                                "TRQ.id DESC, TNQ.id DESC " +
                                "LIMIT 1";

                BOL.Terminal_Queue.objTerminalQueue Previous = conn.Query <BOL.Terminal_Queue.objTerminalQueue, BOL.Transaction_Queue.objTransactionQueue, BOL.Terminal_Queue.objTerminalQueue>(statement,
                                                                                                                                                                                                (TRQ, TNQ) => { TRQ.objTransactionQueue = TNQ; return(TRQ); },
                                                                                                                                                                                                new
                {
                    is_done      = true,
                    terminal_id  = queue.terminal_id,
                    queue_number = queue.objTransactionQueue.queue_number
                }).SingleOrDefault();

                if (Previous != null)
                {
                    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 = Previous.terminal_id,
                        queue_number    = queue.objTransactionQueue.queue_number
                    });

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

                    return(true);
                }

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

                return(false);
            }
        }
Exemplo n.º 7
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 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);
            }
        }