Exemple #1
0
		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;
			}
		}