@*using statement required for access to Constituencies object type when making REST call to CRM/Constituencies*@ @using Tessitura.Service.Client.CRM; @{ var hasConstituent = Model.OrderProductView.Constituent != null; var hasAddress = Model.Address != null; var hasElectronicAddress = Model.ElectronicAddress != null; var hasBooking = Model.Booking != null; var isInSpecialConstituency = false; var constituencyMessage = Model.GetPropertyValue("ConstituencyMessage") ?? "Thank you for being a part of Friend's Circle!"; var constituency = Model.GetPropertyValue("Constituency") ?? "FRC"; var hasState = hasAddress && Model.Address.State != null; var hasProducts = Model.OrderProductView.Products != null && Model.OrderProductView.Products.Count > 0; var hasPayments = Model.OrderProductView.Payments != null && Model.OrderProductView.Payments.Count() > 0; } @if (hasConstituent) { var url = "CRM/Constituencies?constituentId=" + Model.OrderProductView.Constituent.Id + "&includeAffiliations=true"; var constituencies = Model.RestClient.AtUrl(url).Get().ResponseObject; isInSpecialConstituency = constituencies != null && constituencies.Count(x => x.ConstituencyType.ShortDescription == constituency) > 0; } @{ var url2 = "CRM/Constituents/" + Model.OrderProductView.Constituent.Id + "/Detail?includeAffiliations=True"; var constituentDetail = Model.RestClient.AtUrl(url2).Get().ResponseObject; } @if (hasProducts) { /* PERFORMANCES */ var perfs = Model.OrderProductView.Products.Where(x => x.ProductClass.Description == "Performance"); // If the order has performances, loop through them and display them in a table if (perfs != null && perfs.Count() > 0) { } var giftCertificates = Model.OrderProductView.Products.Where(x => x.ProductClass.Description == "Gift Certificate"); var giftCertificateTotal = giftCertificates.Sum(x => -x.GiftCertificate.Amount); if (giftCertificates != null && giftCertificates.Count() > 0) { } } @if (hasPayments) { /* DONATIONS ON ACCOUNT */ var donationsOnAccount = Model.OrderProductView.Payments.Where(x => x.PaymentMethod.Description == "Donation On Account"); var onAccountTotal = donationsOnAccount.Sum(x => -x.Amount); var orderId = Model.OrderProductView.Id.ToString(); var url1 = "CRM/Issues?constituentId=" + Model.OrderProductView.Constituent.Id + "&categoryIds=14&activityTypeIds=42,84,83"; var issues = Model.RestClient.AtUrl(url1).Get().ResponseObject.Where(x => x.Notes != null && x.Notes.Contains(orderId)); // If the order has donation on account, loop through them and display them in a table if (donationsOnAccount != null && donationsOnAccount.Count() > 0) { } /* REFUND */ var creditCard = Model.OrderProductView.Payments.Where(x => x.PaymentMethod.Description == "Visa" || x.PaymentMethod.Description == "Mastercard" || x.PaymentMethod.Description == "Amex" || x.PaymentMethod.Description == "Diners" || x.PaymentMethod.Description == "Cheque" || x.PaymentMethod.Description == "Cash" || x.PaymentMethod.Description == "zPOS Amex" || x.PaymentMethod.Description == "zPOS Cheque Account" || x.PaymentMethod.Description == "zPOS Diners" || x.PaymentMethod.Description == "zPOS Mastercard" || x.PaymentMethod.Description == "zPOS Savings" || x.PaymentMethod.Description == "zPOS Visa"); var refundTotal = creditCard.Where(x => x.Amount < 0).Sum(x => -x.Amount); // If the order has donation on account, loop through them and display them in a table if (creditCard != null && creditCard.Count() > 0 && refundTotal > 0) { } }
@{ var state = hasState ? ", " + Model.Address.State.StateCode : ""; var electronicAddress = hasElectronicAddress ? Model.ElectronicAddress.Address : ""; }

Your Mozart's Clarinet Ticket Return Confirmation

Order Date: @Model.OrderProductView.OrderDateTime.Value.ToString("dd/MM/yyyy h:mmtt")
Order Number: @Model.OrderProductView.Id
@if (hasConstituent) { Customer Number: @Model.OrderProductView.Constituent.Id

}

Please retain this receipt for your reference.

@if (isInSpecialConstituency) { @constituencyMessage
} @if (hasConstituent) { Dear @if(!String.IsNullOrEmpty(@constituentDetail.FirstName)) {@constituentDetail.FirstName} else {@Model.OrderProductView.Constituent.DisplayName},

} Please find below the details of your ticket return for the cancelled Mozart's Clarinet performance. We thank you for your patronage and ongoing support during this time.

Our latest response to the current situation can be found by visiting brandenburg.com.au/updates.
Your cancelled Mozart's Clarinet ticket(s) have been exchanged into the following performance.
Performances
@{ var performanceTotal = @perfs.Sum(x => x.Performance.LineItem.TotalDue); } @foreach (var product in perfs) { var performance = product.Performance.LineItem.Performance; }
Description Location Seat(s) Price Total
@performance.Description
@performance.PerformanceDateTime.ToString("ddd dd/MM/yyyy h:mmtt")
@performance.Facility.Description
@foreach (var subLineItem in product.Performance.LineItem.SubLineItems) { @product.Performance.LineItem.SubLineItems[0].Zone.Description @product.Performance.LineItem.SubLineItems[0].Seat.Section.ShortDescription
}
@foreach (var subLineItem in product.Performance.LineItem.SubLineItems) { var seatRow = string.IsNullOrEmpty(subLineItem.Seat.Number) ? "TBD" : subLineItem.Seat.Row + "-" + subLineItem.Seat.Number; @seatRow
}
@foreach (var subLineItem in product.Performance.LineItem.SubLineItems) { var amount = string.Format("{0:C}", subLineItem.DueAmount); @amount : if (!String.IsNullOrEmpty(@subLineItem.PriceType.AliasDescription)){@subLineItem.PriceType.AliasDescription} else {@subLineItem.PriceType.Description}
}
@string.Format("{0:C}", product.Performance.LineItem.TotalDue)
Total Single Tickets: @string.Format("{0:C}", performanceTotal)
Fees: @string.Format("{0:C}", Model.OrderProductView.TotalFeeAmount)
Order Shipping Information
@if (Model.OrderProductView.DeliveryMethod.Id == -1) { Hold for Collection
Your tickets will be available for collection from the Venue Box Office from one hour prior to the performance } else if (Model.OrderProductView.DeliveryMethod.Id == 3) { Guest Ticket Desk
Please collect your tickets from the Brandenburg Guest Ticket Desk } else if (hasAddress) { Standard Australia Post
Please allow for additional time for your tickets to arrive in the post
@Model.Address.Street1
@Model.Address.City@state @Model.Address.PostalCode


}
The value of your cancelled tickets have been applied to a Gift Certificate.
Gift Certificates are valid for 36 months from the date of issue.
Gift Certificates
@foreach (var giftCertificate in giftCertificates) { var amount = -giftCertificate.GiftCertificate.Amount; }
Description Total
Gift Certificate Number: @giftCertificate.GiftCertificate.GiftCertificateNumber @string.Format("{0:C}", amount)
Total Gift Certificate: @string.Format("{0:C}", giftCertificateTotal)
Thank you for your generous donation, a tax receipt will be mailed to you separately.
Please allow for additional mailing time for your tax receipt to arrive in the post.
Donations
@foreach (var donation in donationsOnAccount) { }
Description Total
@* @foreach (var issue in issues) { @issue.Notes.Substring(13,@issue.Notes.IndexOf("Contrib Amount") - 14) } *@ Donation @string.Format("{0:C}", -donation.Amount)
Total Donations: @string.Format("{0:C}", onAccountTotal)
Please allow 3-5 business days for the transaction to process.
Refund
@foreach (var credit in creditCard) { if(credit.Amount < 0) { } }
Description Total
@credit.PaymentMethod.Description @if(!String.IsNullOrEmpty(@credit.LastFourCreditCardNumber)) {@credit.LastFourCreditCardNumber} else {} @string.Format("{0:C}", -credit.Amount)
Total Refund Amount: @string.Format("{0:C}", refundTotal)
Terms and Conditions
For more information on the Australian Brandenburg Orchestra Terms and Conditions, please click below.
TERMS & CONDITIONS
Contact Us
Australian Brandenburg Orchestra
Level 1, Coward Street
Mascot NSW 2020
Australia
Box office
+61 1300 782 856
tickets@brandenburg.com.au
Follow the Brandenburg on Facebook Follow the Brandenburg on Instagram Follow the Brandenburg on Twitter Follow the Brandenburg on YouTube