using System; using System.Data; using System.Collections; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using CMS.CMSHelper; using CMS.Ecommerce; using CMS.GlobalHelper; using CMS.UIControls; [Security(Resource = "CMS.Ecommerce", UIElements = "Customers.Credit")] public partial class CMSModules_Ecommerce_Pages_Tools_Customers_Customer_Edit_Credit_Edit : CMSCustomersPage { private int eventid = 0; private int customerId = 0; private int creditSiteId = -1; private CustomerInfo customer = null; protected void Page_Load(object sender, EventArgs e) { // Get site id of credits main currency creditSiteId = ECommerceHelper.GetSiteID(CMSContext.CurrentSiteID, ECommerceSettings.USE_GLOBAL_CREDIT); string currentCreditEvent = ""; string eventImage = ""; string title = ""; // Required field validator error messages initialization rfvEventName.ErrorMessage = GetString("Ecommerce.Customer.CreditEventNameEmpty"); txtEventCreditChange.EmptyErrorMessage = GetString("Ecommerce.Customer.CreditChangeFormat"); txtEventCreditChange.ValidationErrorMessage = txtEventCreditChange.EmptyErrorMessage; txtEventCreditChange.CurrencySiteID = creditSiteId; txtEventCreditChange.AllowZero = false; // Control initializations lblEventName.Text = GetString("CreditEvent_Edit.EventNameLabel"); lblEventDescription.Text = GetString("CreditEvent_Edit.EventDescriptionLabel"); lblEventDate.Text = GetString("CreditEvent_Edit.EventDateLabel"); lblEventCreditChange.Text = GetString("CreditEvent_Edit.EventCreditChangeLabel"); dtPickerEventDate.SupportFolder = "~/CMSAdminControls/Calendar"; // Get event ID eventid = QueryHelper.GetInteger("eventid", 0); CreditEventInfo creditEventObj = null; // Edit existing credit event if (eventid > 0) { creditEventObj = CreditEventInfoProvider.GetCreditEventInfo(eventid); EditedObject = creditEventObj; if (creditEventObj != null) { // Credit from another site if (creditEventObj.EventSiteID != creditSiteId) { EditedObject = null; } currentCreditEvent = creditEventObj.EventName; customerId = creditEventObj.EventCustomerID; } eventImage = "creditevent.png"; title = GetString("CreditEvent_Edit.HeaderCaption"); } // Create new credit event else { currentCreditEvent = GetString("CreditEvent_Edit.NewItemCaption"); if (!RequestHelper.IsPostBack()) { dtPickerEventDate.SelectedDateTime = DateTime.Now; } eventImage = "newcreditevent.png"; title = GetString("CreditEvent_Edit.NewItemCaption"); // Get customer id from querystring customerId = QueryHelper.GetInteger("customerid", 0); } customer = CustomerInfoProvider.GetCustomerInfo(customerId); // Check if customer belongs to current site if (!CheckCustomerSiteID(customer)) { customer = null; } // Fill editing form if ((customer != null) && (creditEventObj != null) && !RequestHelper.IsPostBack()) { LoadData(creditEventObj); // Show that the creditEvent was created or updated successfully if (QueryHelper.GetString("saved", "") == "1") { ShowChangesSaved(); } } // Initializes page title control InitializeMasterPage(title, eventImage, currentCreditEvent); // Check presence of main currency string currencyWarning = CheckMainCurrency(creditSiteId); if (!string.IsNullOrEmpty(currencyWarning)) { ShowWarning(currencyWarning, null, null); } } /// /// Initializes master page. /// private void InitializeMasterPage(string title, string eventImage, string currentCreditEvent) { // Set the master page title element CurrentMaster.Title.HelpName = "helpTopic"; CurrentMaster.Title.HelpTopicName = "newedit_credit_event"; // Set the tabs string[,] pageTitleTabs = new string[2, 3]; pageTitleTabs[0, 0] = GetString("CreditEvent_Edit.ItemListLink"); pageTitleTabs[0, 1] = "~/CMSModules/Ecommerce/Pages/Tools/Customers/Customer_Edit_Credit_List.aspx?customerid=" + customerId + "&siteId=" + SiteID; pageTitleTabs[0, 2] = ""; pageTitleTabs[1, 0] = currentCreditEvent; pageTitleTabs[1, 1] = ""; pageTitleTabs[1, 2] = ""; CurrentMaster.Title.Breadcrumbs = pageTitleTabs; } /// /// Load data of editing creditEvent. /// /// CreditEvent object protected void LoadData(CreditEventInfo creditEventObj) { txtEventName.Text = creditEventObj.EventName; txtEventDescription.Text = creditEventObj.EventDescription; txtEventCreditChange.Price = creditEventObj.EventCreditChange; dtPickerEventDate.SelectedDateTime = creditEventObj.EventDate; } /// /// Sets data to database. /// protected void btnOK_Click(object sender, EventArgs e) { if (customer == null) { return; } if (!ECommerceContext.IsUserAuthorizedToModifyCustomer()) { RedirectToAccessDenied("CMS.Ecommerce", "EcommerceModify OR ModifyCustomers"); } // Check if using global credit if (creditSiteId <= 0) { // Check Ecommerce global modify permission if (!ECommerceContext.IsUserAuthorizedForPermission("EcommerceGlobalModify")) { RedirectToAccessDenied("CMS.Ecommerce", "EcommerceGlobalModify"); } } // Validate values string errorMessage = ValidateForm(); if (errorMessage == "") { CreditEventInfo creditEventObj = CreditEventInfoProvider.GetCreditEventInfo(eventid); // if creditEvent doesnt already exist, create new one if (creditEventObj == null) { creditEventObj = new CreditEventInfo(); creditEventObj.EventCustomerID = customerId; creditEventObj.EventSiteID = creditSiteId; } creditEventObj.EventName = txtEventName.Text.Trim(); creditEventObj.EventDescription = txtEventDescription.Text.Trim(); creditEventObj.EventCreditChange = txtEventCreditChange.Price; creditEventObj.EventDate = dtPickerEventDate.SelectedDateTime; CreditEventInfoProvider.SetCreditEventInfo(creditEventObj); URLHelper.Redirect("Customer_Edit_Credit_Edit.aspx?customerid=" + customerId + "&eventid=" + Convert.ToString(creditEventObj.EventID) + "&saved=1&siteId=" + SiteID); } else { ShowError(errorMessage); } } /// /// Validates form input data and returns error message if occures. /// private string ValidateForm() { string errorMessage = ""; // Event name must be not empty if (txtEventName.Text.Trim() == "") { errorMessage = rfvEventName.ErrorMessage; } if (errorMessage == "") { errorMessage = txtEventCreditChange.Validate(true); } if (errorMessage == "") { if (!dtPickerEventDate.IsValidRange()) { errorMessage = GetString("general.errorinvaliddatetimerange"); } // Credit event date must be selected if (dtPickerEventDate.SelectedDateTime == DataHelper.DATETIME_NOT_SELECTED) { errorMessage = GetString("Ecommerce.Customer.CreditDateEmpty"); } // Credit event date has wrong format else if (ValidationHelper.GetDateTime(dtPickerEventDate.SelectedDateTime, DataHelper.DATETIME_NOT_SELECTED) == DataHelper.DATETIME_NOT_SELECTED) { errorMessage = GetString("Ecommerce.Customer.CreditDateFormat"); } } return errorMessage; } }