using System; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; using CMS.CMSHelper; using CMS.Ecommerce; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.UIControls; public partial class CMSModules_Ecommerce_Controls_MyDetails_MyCredit : CMSAdminControl { private CurrencyInfo mCurrency = null; private int mCustomerId = 0; private double rate = 1; /// /// Site default currency object. /// private CurrencyInfo Currency { get { if (mCurrency == null) { mCurrency = ECommerceContext.CurrentCurrency; } if (mCurrency == null) { mCurrency = CurrencyInfoProvider.GetCurrencyInfo(CMSContext.CurrentSite.SiteDefaultCurrencyID); } return mCurrency; } } /// /// Customer ID. /// public int CustomerId { get { return mCustomerId; } set { mCustomerId = value; } } /// /// If true, control does not process the data. /// public override bool StopProcessing { get { return ValidationHelper.GetBoolean(ViewState["StopProcessing"], false); } set { ViewState["StopProcessing"] = value; } } /// /// Page load. /// protected void Page_Load(object sender, EventArgs e) { if (!StopProcessing) { if (CMSContext.CurrentUser.IsAuthenticated()) { // Get site id of credits main currency int creditSiteId = ECommerceHelper.GetSiteID(CMSContext.CurrentSiteID, ECommerceSettings.USE_GLOBAL_CREDIT); gridCreditEvents.HideControlForZeroRows = true; gridCreditEvents.IsLiveSite = IsLiveSite; gridCreditEvents.OnExternalDataBound += new OnExternalDataBoundEventHandler(gridCreditEvents_OnExternalDataBound); gridCreditEvents.OrderBy = "EventDate DESC, EventName ASC"; gridCreditEvents.WhereCondition = "EventCustomerID = " + CustomerId + " AND ISNULL(EventSiteID, 0) = " + creditSiteId; // Get total credit value double credit = CreditEventInfoProvider.GetTotalCredit(CustomerId, CMSContext.CurrentSiteID); if (Currency != null) { // Convert global credit to site main currency when using one string siteName = CMSContext.CurrentSiteName; rate = ExchangeRateInfoProvider.GetLastExchangeRate(Currency.CurrencyID, CMSContext.CurrentSiteID, ECommerceSettings.UseGlobalCredit(siteName)); credit = ExchangeRateInfoProvider.ApplyExchangeRate(credit, rate); } lblCreditValue.Text = CurrencyInfoProvider.GetFormattedPrice(credit, Currency); lblCredit.Text = GetString("Ecommerce.MyCredit.TotalCredit"); } else { // Hide if user is not authenticated Visible = false; } } } protected object gridCreditEvents_OnExternalDataBound(object sender, string sourceName, object parameter) { // Show only date part from date-time value switch (sourceName.ToLowerCSafe()) { case "eventdate": DateTime date = ValidationHelper.GetDateTime(parameter, DataHelper.DATETIME_NOT_SELECTED); if (date != DataHelper.DATETIME_NOT_SELECTED) { return date.ToShortDateString(); } else { return ""; } case "eventcreditchange": double credit = ExchangeRateInfoProvider.ApplyExchangeRate(ValidationHelper.GetDouble(parameter, 0), rate); return CurrencyInfoProvider.GetFormattedPrice(credit, Currency); } return parameter; } /// /// Overridden SetValue - because of MyAccount webpart. /// /// Name of the property to set /// Value to set public override void SetValue(string propertyName, object value) { base.SetValue(propertyName, value); switch (propertyName.ToLowerCSafe()) { case "customerid": CustomerId = ValidationHelper.GetInteger(value, 0); break; } } }