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