public static void Refund(Usr actionUsr, TicketSet tickets, bool refundIncludeBookingFee, decimal chargeToPromoter) { if (tickets != null) { List<Ticket> ticketList = new List<Ticket>(); tickets.Reset(); foreach (Ticket ticket in tickets) ticketList.Add(ticket); Refund(actionUsr, ticketList, refundIncludeBookingFee, chargeToPromoter); } }
private void DisplayDoorList() { if (!EndAllTicketRunsPanel.Visible) { List<int> ticketRunKs = new List<int>(); foreach (RepeaterItem ri in TicketRunSelectRepeater.Items) { if (((CheckBox)ri.FindControl("TicketRunCheckBox")).Checked) { ticketRunKs.Add(Convert.ToInt32(((TextBox)ri.FindControl("TicketRunKTextBox")).Text)); ((HtmlTableRow)ri.FindControl("TicketRunRow")).Attributes.Remove("class"); } else ((HtmlTableRow)ri.FindControl("TicketRunRow")).Attributes.Add("class", "HideOnPrint"); } if (ticketRunKs.Count == 0) { DoorlistGridView.Visible = false; HideOnPrintP.Visible = false; NoTicketsToDisplay = true; return; } //TemplateField firstNameColumn = (TemplateField)DoorlistGridView.Columns[0]; //TemplateField lastNameColumn = (TemplateField)DoorlistGridView.Columns[1]; //TemplateField codeColumn = (TemplateField)DoorlistGridView.Columns[2]; //TemplateField cardNumberEndColumn = (TemplateField)DoorlistGridView.Columns[3]; //TemplateField ticketRunNameColumn = (TemplateField)DoorlistGridView.Columns[4]; //TemplateField ticketsColumn = (TemplateField)DoorlistGridView.Columns[5]; //TemplateField cv2Column = (TemplateField)DoorlistGridView.Columns[6]; //DoorlistGridView.Columns.Clear(); Q selectTicketRunQ = new Q(); selectTicketRunQ = new Q(Ticket.Columns.TicketRunK, ticketRunKs[0]); for (int i = 1; i < ticketRunKs.Count; i++) { selectTicketRunQ = new Or(selectTicketRunQ, new Q(Ticket.Columns.TicketRunK, ticketRunKs[i])); } Query ticketQuery = new Query(new And(selectTicketRunQ, Ticket.ValidTicketsQ, new Or(new Q(Ticket.Columns.IsFraud, QueryOperator.IsNull, null), new Q(Ticket.Columns.IsFraud, false)) )); ticketQuery.Columns = new ColumnSet(Ticket.Columns.K, Ticket.Columns.FirstName, Ticket.Columns.LastName, Ticket.Columns.Code, Ticket.Columns.CardNumberEnd, Ticket.Columns.Quantity, Ticket.Columns.TicketRunK, Ticket.Columns.CardCheckedByPromoter, Ticket.Columns.CardCheckAttempts, Promoter.Columns.WillCheckCardsForPurchasedTickets); ticketQuery.TableElement = new Join( new Join(Ticket.Columns.TicketRunK, TicketRun.Columns.K), Promoter.Columns.K, TicketRun.Columns.PromoterK); ticketQuery.ExtraSelectElements.Add("TicketRunPriceName", "CASE WHEN LEN([TicketRun].[Name]) > 0 THEN '£' + CONVERT(varchar(9), CONVERT(money,[TicketRun].[Price])) + ' : ' + [TicketRun].[Name] ELSE '£' + CONVERT(varchar(9), CONVERT(money,[TicketRun].[Price])) END"); for (int i = 0; i < 8; i++) { DoorlistGridView.Columns[i].Visible = false; } TemplateField codeColumn = null; if (ListOrderBy.Equals(DoorlistOrderBy.FirstName)) { ticketQuery.OrderBy = new OrderBy(new OrderBy(Ticket.Columns.FirstName), new OrderBy(Ticket.Columns.LastName)); //DoorlistGridView.Columns.Add(firstNameColumn); //DoorlistGridView.Columns.Add(lastNameColumn); //DoorlistGridView.Columns.Add(codeColumn); //DoorlistGridView.Columns.Add(cardNumberEndColumn); DoorlistGridView.Columns[0].Visible = true; DoorlistGridView.Columns[1].Visible = true; codeColumn = (TemplateField)DoorlistGridView.Columns[2]; DoorlistGridView.Columns[2].Visible = true; DoorlistGridView.Columns[3].Visible = true; } else if (ListOrderBy.Equals(DoorlistOrderBy.LastName)) { ticketQuery.OrderBy = new OrderBy(new OrderBy(Ticket.Columns.LastName), new OrderBy(Ticket.Columns.FirstName)); //DoorlistGridView.Columns.Add(lastNameColumn); //DoorlistGridView.Columns.Add(firstNameColumn); //DoorlistGridView.Columns.Add(codeColumn); //DoorlistGridView.Columns.Add(cardNumberEndColumn); DoorlistGridView.Columns[1].Visible = true; DoorlistGridView.Columns[4].Visible = true; codeColumn = (TemplateField)DoorlistGridView.Columns[6]; DoorlistGridView.Columns[6].Visible = true; DoorlistGridView.Columns[7].Visible = true; } else if (ListOrderBy.Equals(DoorlistOrderBy.CardNumberEnd)) { ticketQuery.OrderBy = new OrderBy(new OrderBy(Ticket.Columns.CardNumberEnd), new OrderBy(Ticket.Columns.FirstName), new OrderBy(Ticket.Columns.LastName)); //DoorlistGridView.Columns.Add(cardNumberEndColumn); //DoorlistGridView.Columns.Add(firstNameColumn); //DoorlistGridView.Columns.Add(lastNameColumn); //DoorlistGridView.Columns.Add(codeColumn); DoorlistGridView.Columns[3].Visible = true; DoorlistGridView.Columns[4].Visible = true; DoorlistGridView.Columns[5].Visible = true; codeColumn = (TemplateField)DoorlistGridView.Columns[6]; DoorlistGridView.Columns[6].Visible = true; } else if (ListOrderBy.Equals(DoorlistOrderBy.Code)) { ticketQuery.OrderBy = new OrderBy(new OrderBy(Ticket.Columns.Code), new OrderBy(Ticket.Columns.FirstName), new OrderBy(Ticket.Columns.LastName)); //DoorlistGridView.Columns.Add(codeColumn); //DoorlistGridView.Columns.Add(firstNameColumn); //DoorlistGridView.Columns.Add(lastNameColumn); //DoorlistGridView.Columns.Add(cardNumberEndColumn); codeColumn = (TemplateField)DoorlistGridView.Columns[2]; DoorlistGridView.Columns[2].Visible = true; DoorlistGridView.Columns[4].Visible = true; DoorlistGridView.Columns[5].Visible = true; DoorlistGridView.Columns[7].Visible = true; } //DoorlistGridView.Columns.Add(ticketRunNameColumn); //DoorlistGridView.Columns.Add(ticketsColumn); //DoorlistGridView.Columns.Add(cv2Column); TicketSet doorlistTickets = new TicketSet(ticketQuery); if (doorlistTickets.Count == 0) { DoorlistGridView.Visible = false; NoTicketsToDisplay = true; uiNoTickets.Visible = true; HideOnPrintP.Visible = false; return; } HideOnPrintP.Visible = true; uiNoTickets.Visible = false; DoorlistGridView.Visible = true; codeColumn.Visible = false; TemplateField cv2Column = (TemplateField)DoorlistGridView.Columns[10]; cv2Column.Visible = false; foreach (Ticket ticket in doorlistTickets) { if (codeColumn.Visible == false && ticket.Code.Length > 0) { codeColumn.Visible = true; } if (cv2Column.Visible == false && ticket.ExtraSelectElements["Promoter_WillCheckCardsForPurchasedTickets"].ToString() == bool.TrueString) { cv2Column.Visible = true; } if (codeColumn.Visible && cv2Column.Visible) break; } doorlistTickets.Reset(); if (codeColumn.Visible) AddCodeListItemToOrderByDropDownList(); DoorlistGridView.DataSource = doorlistTickets; DoorlistGridView.DataBind(); } }
private void GetSearchResults() { // Query the database based on the search parameters // Set the returned results to be the data source of the GridView Query q = new Query(); List<Q> QueryConditionList = new List<Q>(); q.OrderBy = new OrderBy(Ticket.Columns.K, OrderBy.OrderDirection.Descending); QueryConditionList.Add(Ticket.SoldTicketsQ); if (this.TicketRunKTextBox.Text.Trim().Length > 0) QueryConditionList.Add(new Q(Ticket.Columns.TicketRunK, Convert.ToInt32(TicketRunKTextBox.Text))); if (this.FirstNameTextBox.Text.Trim().Length > 0) { QueryConditionList.Add(new Q(Ticket.Columns.FirstName, QueryOperator.TextStartsWith, this.FirstNameTextBox.Text.Trim())); //q.TableElement = new Join(Ticket.Columns.BuyerUsrK, Usr.Columns.K); } if (this.LastNameTextBox.Text.Trim().Length > 0) { QueryConditionList.Add(new Q(Ticket.Columns.LastName, QueryOperator.TextStartsWith, this.LastNameTextBox.Text.Trim())); //q.TableElement = new Join(Ticket.Columns.BuyerUsrK, Usr.Columns.K); } if (this.uiUsersAutoComplete.Value != null && !this.uiUsersAutoComplete.Value.Equals("")) QueryConditionList.Add(new Q(Ticket.Columns.BuyerUsrK, Convert.ToInt32(this.uiUsersAutoComplete.Value))); if (this.uiPromotersAutoComplete.Value != null && !uiPromotersAutoComplete.Value.Equals("")) { QueryConditionList.Add(new Q(TicketRun.Columns.PromoterK, Convert.ToInt32(uiPromotersAutoComplete.Value))); if(q.TableElement != null && q.TableElement is Join) q.TableElement = new Join(q.TableElement, new TableElement(TablesEnum.TicketRun), QueryJoinType.Inner, Ticket.Columns.TicketRunK, TicketRun.Columns.K); else q.TableElement = new Join(Ticket.Columns.TicketRunK, TicketRun.Columns.K); } if(this.CardDigitsTextBox.Text.Trim().Length > 0) QueryConditionList.Add(new Q(Ticket.Columns.CardNumberEnd, this.CardDigitsTextBox.Text.Trim())); if(this.PostCodeTextBox.Text.Trim().Length > 0) QueryConditionList.Add(new Q(Ticket.Columns.AddressPostcode, QueryOperator.TextStartsWith, this.PostCodeTextBox.Text.Trim())); if (this.FeedbackDropDownList.SelectedValue != "") { if (this.FeedbackDropDownList.SelectedValue == Ticket.FeedbackEnum.None.ToString()) { QueryConditionList.Add(new Or(new Q(Ticket.Columns.Feedback, QueryOperator.IsNull, null), new Q(Ticket.Columns.Feedback, Convert.ToInt32(FeedbackDropDownList.SelectedValue)))); } else QueryConditionList.Add(new Q(Ticket.Columns.Feedback, Convert.ToInt32(FeedbackDropDownList.SelectedValue))); } if (this.StatusDropDownList.SelectedValue != "") { if (this.StatusDropDownList.SelectedValue == "0") { QueryConditionList.Add(new Q(Ticket.Columns.Cancelled, QueryOperator.IsNull, null)); } QueryConditionList.Add(new Q(Ticket.Columns.Cancelled, Convert.ToBoolean(StatusDropDownList.SelectedValue))); } if(QueryConditionList.Count > 0) q.QueryCondition = new And(QueryConditionList.ToArray()); TicketSet searchResultTickets = new TicketSet(q); SearchResultsTicketsGridView.AllowPaging = (searchResultTickets.Count > SearchResultsTicketsGridView.PageSize); SearchResultsTicketsGridView.DataSource = searchResultTickets; SearchResultsTicketsGridView.Visible = true; SearchResultsTicketsGridView.DataBind(); ErrorLabel.Visible = false; ErrorLabel.Text = "Details missing on tickets, please fix:<ul>"; searchResultTickets.Reset(); foreach (Ticket ticket in searchResultTickets) { // Check for details missing for tickets created with the new ticket system if (ticket.BuyDateTime > Vars.TICKETS_NEW_SYSTEM_START_DATE && (ticket.LastName.Trim().Length == 0 || ticket.FirstName.Trim().Length == 0 || ticket.CardNumberEnd.Trim().Length == 0 || ticket.InvoiceItemK == 0)) { ErrorLabel.Visible = true; ErrorLabel.Text += "<li>Ticket #" + ticket.K.ToString() + "</li>"; } } // Check for tickets potentially paid for, but not enabled. Tickets up to K = 4200 have been verified. Query notEnabledTicketsQuery = new Query(new And(new Q(Ticket.Columns.Enabled, 0), new Q(Ticket.Columns.InvoiceItemK, QueryOperator.GreaterThan, 0), new Q(Ticket.Columns.K, QueryOperator.GreaterThan, 4200))); notEnabledTicketsQuery.Columns = new ColumnSet(Ticket.Columns.K); TicketSet notEnabledTickets = new TicketSet(notEnabledTicketsQuery); foreach (Ticket ticket in notEnabledTickets) { ErrorLabel.Visible = true; ErrorLabel.Text += "<li>Ticket #" + ticket.K.ToString() + " is not enabled</li>"; } ErrorLabel.Text += "</ul>"; if (searchResultTickets == null || searchResultTickets.Count == 0) { SearchResultsMessageLabel.Text = "* Zero results for your search. Please verify your search criteria."; SearchResultsMessageLabel.Visible = true; } }