예제 #1
0
        private void OnPrintTicket()
        {
            List <Spot> spots = new List <Spot>();

            if (SelectedSpot.Status == ItemStatus.Printed)
            {
                ConfirmationBox cb = new ConfirmationBox
                {
                    Message = String.Format(
                        "Вы действительно желаете перепечатать билет № {0}, {1}, {2}, {3} ряд, {4} место?\nБланк {5} будет аннулирован.",
                        SelectedSpot.Id, SelectedSpot.SideName, SelectedSpot.SectorName, SelectedSpot.RowNum,
                        SelectedSpot.SeatNum, SelectedSpot.Blank.Key)
                };
                bool?result = cb.ShowDialog();
                if (result ?? false)
                {
                    SelectedSpot.Blank  = Access.Annul(SelectedSpot.Blank);
                    SelectedSpot.Status = ItemStatus.Sold;
                    spots.Add(SelectedSpot);
                    ProcessPrint(spots);
                }
            }

            if (SelectedSpot.Status == ItemStatus.Sold)
            {
                spots.Add(SelectedSpot);
                ProcessPrint(spots);
            }
        }
        private void OnCancelBlank()
        {
            ConfirmationBox cb = new ConfirmationBox
            {
                Message = String.Format("Функция отключена до выяснения подробностей аннулирования свободного бланка. Выбран бланк № {0}", SelectedBlank.Key)
            };
            bool?result = cb.ShowDialog();

            if (result ?? false)
            {
                SelectedBlank = Access.Annul(SelectedBlank);
            }
        }
예제 #3
0
        /// <summary>
        /// Handles OrderWindow PrintReservedTicket button event
        /// </summary>
        private void OnPrintReservedTicket()
        {
            List <Spot> spots = new List <Spot>();

            if (SelectedTicket.BlankId > 0)
            {
                ConfirmationBox cb = new ConfirmationBox
                {
                    Message = String.Format(
                        "Вы действительно желаете перепечатать билет № {0}, {1}, {2}, {3} ряд, {4} место?\nБланк № {5} будет аннулирован.",
                        SelectedTicket.Id, SelectedTicket.SideName, SelectedTicket.SectorName, SelectedTicket.RowNum,
                        SelectedTicket.SeatNum, SelectedTicket.BlankId)
                };
                bool?result = cb.ShowDialog();
                if (result ?? false)
                {
                    Blank blank = new Blank()
                    {
                        Id = SelectedTicket.BlankId
                    };
                    Access.Annul(blank);
                    SelectedTicket.BlankId = 0;
                }
            }

            if (SelectedTicket.Status == ItemStatus.Sold && SelectedTicket.BlankId == 0)
            {
                Blank[] blanks = Access.GetBlanks(0, 1, ItemStatus.OnSale);
                Spot    spot   = new Spot
                {
                    Id     = SelectedTicket.Id,
                    Status = SelectedTicket.Status,
                    Blank  = blanks[0]
                };
                SelectedTicket.BlankId = spot.Blank.Id;
                spots.Add(spot);
                ProcessPrint(spots);
            }

            ReloadOrder();
        }
예제 #4
0
        /// <summary>
        /// Handles OrderWindow PrintTickets button event
        /// </summary>
        private void OnPrintReservedTickets()
        {
            foreach (Ticket ticket in Tickets)
            {
                if (ticket.BlankId > 0)
                {
                    ConfirmationBox cb = new ConfirmationBox
                    {
                        Message = String.Format(
                            "Вы действительно желаете перепечатать билет № {0}, {1}, {2}, {3} ряд, {4} место?\nБланк № {5} будет аннулирован.",
                            ticket.Id, ticket.SideName, ticket.SectorName, ticket.RowNum, ticket.SeatNum, ticket.BlankId)
                    };
                    bool?result = cb.ShowDialog();
                    if (result ?? false)
                    {
                        Blank blank = new Blank()
                        {
                            Id = ticket.BlankId
                        };
                        Access.Annul(blank);
                        ticket.BlankId = 0;
                    }
                }
            }

            int validTickets = Tickets.Where(x => x.BlankId == 0).Count(x => x.Status == ItemStatus.Sold);

            Blank[] blanks = Access.GetBlanks(0, validTickets, ItemStatus.OnSale);

            if (blanks != null)
            {
                if (blanks.Length != validTickets)
                {
                    BlankStatus = "Количество бланков недостаточно для печати заказа";
                    return;
                }
            }
            else
            {
                BlankStatus = "У вас отсутствуют бланки";
                return;
            }
            List <Spot>          spots   = new List <Spot>();
            IEnumerable <Ticket> tickets = Tickets.Where(x => x.BlankId == 0 && x.Status == ItemStatus.Sold);
            int counter = 0;

            foreach (Ticket ticket in tickets)
            {
                if (blanks.Length > counter)
                {
                    Spot spot = new Spot
                    {
                        Id     = ticket.Id,
                        Status = ticket.Status,
                        Blank  = blanks[counter]
                    };
                    ticket.BlankId = spot.Blank.Id;
                    spots.Add(spot);
                    counter++;
                }
            }

            ProcessPrint(spots);
            ReloadOrder();
        }