protected void Page_Init(object sender, EventArgs e) { _GiftCertificateId = AlwaysConvert.ToInt(Request.QueryString["GiftCertificateId"]); _GiftCertificate = GiftCertificateDataSource.Load(_GiftCertificateId); if (_GiftCertificate == null) { Response.Redirect("MyAccount.aspx"); } if ((_GiftCertificate.OrderItem.Order.UserId != AbleContext.Current.UserId) && (!AbleContext.Current.User.IsInRole("Admin"))) { Response.Redirect("MyAccount.aspx"); } if (!Page.IsPostBack) { //UPDATE CAPTION if (_GiftCertificate.SerialNumber == null || _GiftCertificate.SerialNumber.Length == 0) { Caption.Text = "Not Assigned. Gift Certificate is not validated yet."; } else { Caption.Text = String.Format(Caption.Text, _GiftCertificate.Name, _GiftCertificate.OrderItem.Order.OrderNumber); } BindGiftCertificate(); } }
protected void Page_Load(object sender, EventArgs e) { _OrderId = AbleCommerce.Code.PageHelper.GetOrderId(); _GiftCertificateId = AlwaysConvert.ToInt(Request.QueryString["GiftCertificateId"]); _GiftCertificate = GiftCertificateDataSource.Load(_GiftCertificateId); if (_GiftCertificate == null) { RedirectBack(); } if (!Page.IsPostBack) { SerialNumber.Text = _GiftCertificate.SerialNumber; Name.Text = _GiftCertificate.Name; Balance.Text = string.Format("{0:F2}", _GiftCertificate.Balance); ExpireDate.NullableSelectedDate = _GiftCertificate.ExpirationDate; if (!string.IsNullOrEmpty(_GiftCertificate.SerialNumber)) { ReGenerateSerialNumberLbl.Visible = true; GenerateSerialNumberLbl.Visible = false; } else { ReGenerateSerialNumberLbl.Visible = false; GenerateSerialNumberLbl.Visible = true; } } }
protected void GiftCertificatesGrid_RowCommand(object sender, GridViewCommandEventArgs e) { int GiftCertificateId = AlwaysConvert.ToInt(e.CommandArgument); GiftCertificate gc = GiftCertificateDataSource.Load(GiftCertificateId); if (gc == null) { return; } IGiftCertKeyProvider provider = AbleContext.Container.Resolve <IGiftCertKeyProvider>(); if (e.CommandName.Equals("Generate")) { gc.SerialNumber = provider.GenerateGiftCertificateKey(); gc.AddActivatedTransaction(); gc.Save(); GiftCertificatesGrid.DataBind(); } else if (e.CommandName.Equals("Deactivate")) { gc.SerialNumber = ""; gc.AddDeactivatedTransaction(); gc.Save(); GiftCertificatesGrid.DataBind(); } }
/// <summary> /// Submits an authorization request /// </summary> /// <param name="authorizeRequest">The authorization request</param> /// <returns>Transaction that represents the result of the authorization request</returns> public override Transaction DoAuthorize(AuthorizeTransactionRequest authorizeRequest) { Transaction transaction = new Transaction(); transaction.PaymentGatewayId = this.PaymentGatewayId; //always use authorize capture. transaction.TransactionType = TransactionType.AuthorizeCapture; string serialNumber = authorizeRequest.Payment.AccountData; GiftCertificate gc = GiftCertificateDataSource.LoadForSerialNumber(serialNumber); string errorMessage = string.Empty; if (gc == null) { errorMessage = "No gift certificate found with given serial number."; } else if (gc.IsExpired()) { errorMessage = "Gift certificate is expired."; } else if (gc.Balance < authorizeRequest.Amount) { errorMessage = "Gift certificate does not have enough balance to complete this transaction."; } else { LSDecimal newAmount = gc.Balance - authorizeRequest.Amount; gc.Balance = newAmount; GiftCertificateTransaction trans = new GiftCertificateTransaction(); trans.TransactionDate = LocaleHelper.LocalNow; trans.Amount = authorizeRequest.Amount; trans.OrderId = authorizeRequest.Payment.OrderId; trans.Description = string.Format("An amount of {0:lc} used in purchase. Remaining balance is {1:lc}.", authorizeRequest.Amount, newAmount); gc.Transactions.Add(trans); gc.Save(); } if (string.IsNullOrEmpty(errorMessage)) { transaction.TransactionStatus = TransactionStatus.Successful; transaction.ResponseCode = "0"; transaction.ResponseMessage = "SUCCESS"; transaction.Amount = authorizeRequest.Amount; } else { transaction.TransactionStatus = TransactionStatus.Failed; transaction.ResponseCode = "1"; transaction.ResponseMessage = errorMessage; transaction.Amount = authorizeRequest.Amount; } return(transaction); }
protected void Page_Init(object sender, EventArgs e) { _GiftCertificateId = AlwaysConvert.ToInt(Request.QueryString["GiftCertificateId"]); _GiftCertificate = GiftCertificateDataSource.Load(_GiftCertificateId); if (_GiftCertificate == null) { Response.Redirect("Default.aspx"); } if (!Page.IsPostBack) { //UPDATE CAPTION Caption.Text = String.Format(Caption.Text, _GiftCertificate.Name, _GiftCertificate.OrderItem.Order.Id); BindGiftCertificate(); } }
protected void Page_Init(object sender, EventArgs e) { _GiftCertificateId = AlwaysConvert.ToInt(Request.QueryString["GiftCertificateId"]); _GiftCertificate = GiftCertificateDataSource.Load(_GiftCertificateId); if (_GiftCertificate == null) { Response.Redirect("Default.aspx"); } if (!Page.IsPostBack) { BindTransactions(); Caption.Text = string.Format(Caption.Text, _GiftCertificate.Name); } }
protected void MultipleRowDelete_Click(object sender, EventArgs e) { // Looping through all the rows in the GridView foreach (GridViewRow row in GiftCertificatesGrid.Rows) { CheckBox checkbox = (CheckBox)row.FindControl("DeleteCheckbox"); if ((checkbox != null) && (checkbox.Checked)) { // Retreive the GiftCertificateId int giftCertificateId = Convert.ToInt32(GiftCertificatesGrid.DataKeys[row.RowIndex].Value); GiftCertificate gc = GiftCertificateDataSource.Load(giftCertificateId); if (gc != null) { gc.Delete(); } } } GiftCertificatesGrid.DataBind(); }
protected bool IsDeleteable(int giftCertificateId) { GiftCertificate gc = GiftCertificateDataSource.Load(giftCertificateId); if (HasSerialNumber(gc) && !gc.IsExpired()) { // IF ZERO BALANCE WITH ACTIVE GIFT CERTIFICATE if (gc.Balance == 0) { return(true); } else { return(false); } } else { return(true); } }
protected void GiftCertificateButton_Click(object sender, EventArgs e) { if (Page.IsValid) { bool checkOut = true; if (CheckingOut != null) { // CREATE THE PAYMENT OBJECT Payment payment = GetPayment(); CheckingOutEventArgs c = new CheckingOutEventArgs(payment); CheckingOut(this, c); checkOut = !c.Cancel; } if (checkOut) { Basket basket = AbleContext.Current.User.Basket; GiftCertificateNumber.Text = StringHelper.StripHtml(GiftCertificateNumber.Text); GiftCertificate gc = GiftCertificateDataSource.LoadForSerialNumber(GiftCertificateNumber.Text); if (gc == null) { GiftCertPaymentErrors.Text = "This is not a valid gift certificate : " + GiftCertificateNumber.Text; } else if (gc.Balance <= 0) { GiftCertPaymentErrors.Text = "There is no balance left for this gift certificate : " + GiftCertificateNumber.Text; } else if (gc.IsExpired()) { GiftCertPaymentErrors.Text = "This gift certificate is expired : " + GiftCertificateNumber.Text; } else if (AlreadyInUse(basket, gc)) { GiftCertPaymentErrors.Text = "This gift certificate is already applied to your basket : " + GiftCertificateNumber.Text; } else { // process this gift certificate decimal basketTotal = basket.Items.TotalPrice(); BasketItem bitem = new BasketItem(); bitem.Basket = basket; bitem.OrderItemType = OrderItemType.GiftCertificatePayment; bitem.Price = -(gc.Balance > basketTotal ? basketTotal : gc.Balance); bitem.Quantity = 1; bitem.Name = gc.Name; bitem.Sku = gc.SerialNumber; basket.Items.Add(bitem); basket.Save(); decimal remBalance = basket.Items.TotalPrice(); if (remBalance > 0) { GiftCertPaymentErrors.Text = string.Format("A payment of {0} will be made using gift certificate {1}. It will leave a balance of {2} for this order. Please make additional payments.", gc.Balance.LSCurrencyFormat("lc"), GiftCertificateNumber.Text, remBalance.LSCurrencyFormat("lc")); } else { //payment done. process checkout ICheckoutService checkoutService = AbleContext.Resolve <ICheckoutService>(); CheckoutRequest checkoutRequest = new CheckoutRequest(basket); CheckoutResponse checkoutResponse = checkoutService.ExecuteCheckout(checkoutRequest); if (checkoutResponse.Success) { if (CheckedOut != null) { CheckedOut(this, new CheckedOutEventArgs(checkoutResponse)); } Response.Redirect(AbleCommerce.Code.NavigationHelper.GetReceiptUrl(checkoutResponse.Order.OrderNumber)); } else { IList <string> warningMessages = checkoutResponse.WarningMessages; if (warningMessages.Count == 0) { warningMessages.Add("The order could not be submitted at this time. Please try again later or contact us for assistance."); } if (CheckedOut != null) { CheckedOut(this, new CheckedOutEventArgs(checkoutResponse)); } } } } if (!string.IsNullOrEmpty(GiftCertPaymentErrors.Text)) { GiftCertErrorsPanel.Visible = true; } } } }
public static bool HasGiftCertificates() { return(GiftCertificateDataSource.CountForStatus(GiftCertificateStatus.Active) > 0); }