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 = "Orders.General")] public partial class CMSModules_Ecommerce_Pages_Tools_Orders_Order_Edit_General : CMSOrdersPage { #region "Variables" protected int orderId = 0; protected int originalStatusId = 0; protected int originalCompanyAddressId = 0; protected int customerId = 0; #endregion #region "Page events" protected override void OnPreInit(EventArgs e) { customerId = QueryHelper.GetInteger("customerid", 0); CustomerID = customerId; base.OnPreInit(e); } protected void Page_Load(object sender, EventArgs e) { // Register the dialog script ScriptHelper.RegisterDialogScript(this); ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "RefreshPageScript", ScriptHelper.GetScript("function RefreshPage() { window.location.replace(window.location.href); }")); ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "AddressChange", ScriptHelper.GetScript(" function AddressChange(AddressId) { if (AddressId > 0) { document.getElementById('" + hdnAddress.ClientID + "').value = AddressId; " + ClientScript.GetPostBackEventReference(btnChange, "") + " } } ")); string urlsScript = string.Format("var customerEditUrl = {0}; var addressEditUrl = {1};", ScriptHelper.GetString(URLHelper.ResolveUrl("Order_Edit_Customer.aspx")), ScriptHelper.GetString(URLHelper.ResolveUrl("Order_Edit_Address.aspx"))); ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "DialogUrls", ScriptHelper.GetScript(urlsScript)); addressElem.DropDownSingleSelect.AutoPostBack = true; addressElem.DropDownSingleSelect.SelectedIndexChanged += new EventHandler(DropDownSingleSelect_SelectedIndexChanged); // controls initialization lblOrderId.Text = GetString("order_edit.orderidlabel"); lblOrderDate.Text = GetString("order_edit.orderdatelabel"); lblInvoiceNumber.Text = GetString("order_edit.invoicenumberlabel"); lblStatus.Text = GetString("order_edit.orderstatuslabel"); lblCustomer.Text = GetString("order_edit.customerlabel"); lblNotes.Text = GetString("order_edit.ordernotelabel"); btnEditCustomer.Text = GetString("general.edit"); lblCompanyAddress.Text = GetString("order_edit.lblCompanyAddress"); btnNewAddress.Text = GetString("general.new"); btnEditAddress.Text = GetString("general.edit"); btnEditCustomer.Visible = ECommerceContext.IsUserAuthorizedForPermission("ReadCustomer"); // get order ID from url orderId = QueryHelper.GetInteger("orderid", 0); // get order info from database and fill the form OrderInfo oi = OrderInfoProvider.GetOrderInfo(orderId); if (oi != null) { // Check order site ID CheckOrderSiteID(oi.OrderSiteID); originalCompanyAddressId = oi.OrderCompanyAddressID; originalStatusId = oi.OrderStatusID; customerId = oi.OrderCustomerID; statusElem.SiteID = oi.OrderSiteID; addressElem.CustomerID = customerId; // Initialize javascript to button clicks btnEditCustomer.OnClientClick = "EditCustomer(" + customerId + "); return false;"; btnNewAddress.OnClientClick = "AddAddress('" + customerId + "'); return false;"; if (!RequestHelper.IsPostBack()) { // initialize form InitializeForm(oi); // show that the Order was updated successfully if (QueryHelper.GetString("saved", "") == "1") { ShowChangesSaved(); } } } // Enable edit address only if address selected btnEditAddress.Enabled = addressElem.AddressID != 0; // If order is paid if ((oi != null) && (oi.OrderIsPaid)) { // Disable specific controls orderDate.Enabled = false; btnEditCustomer.Enabled = false; addressElem.Enabled = false; btnEditAddress.Enabled = false; btnNewAddress.Enabled = false; } } protected override void OnPreRender(EventArgs e) { if (addressElem.AddressID > 0) { btnEditAddress.OnClientClick = "EditAddress('" + customerId + "','" + addressElem.AddressID + "'); return false;"; } base.OnPreRender(e); } #endregion #region "Event handlers" protected void DropDownSingleSelect_SelectedIndexChanged(object sender, EventArgs e) { hdnAddress.Value = addressElem.AddressID.ToString(); // Enable edit address only if address selected btnEditAddress.Enabled = addressElem.AddressID != 0; } /// /// On btnOK button click. /// /// Sender /// Event argument protected void btnOK_Click(object sender, EventArgs e) { // check 'EcommerceModify' permission if (!ECommerceContext.IsUserAuthorizedForPermission("ModifyOrders")) { RedirectToAccessDenied("CMS.Ecommerce", "EcommerceModify OR ModifyOrders"); } string errorMessage = ValidateForm(); if (errorMessage == "") { OrderInfo oi = OrderInfoProvider.GetOrderInfo(orderId); if (oi != null) { oi.OrderDate = orderDate.SelectedDateTime; oi.OrderNote = txtNotes.Text; oi.OrderStatusID = statusElem.OrderStatusID; oi.OrderCompanyAddressID = addressElem.AddressID; // update orderinfo OrderInfoProvider.SetOrderInfo(oi); URLHelper.Redirect("Order_Edit_General.aspx?orderid=" + Convert.ToString(oi.OrderID) + "&saved=1"); } else { // Show error message ShowError(GetString("order_edit.ordernotexist")); } } // Show error message if (errorMessage != "") { // Show error message ShowError(errorMessage); } } #endregion #region "Methods" /// /// Initialize the form with order values. /// protected void InitializeForm(OrderInfo orderInfo) { lblOrderIdValue.Text = Convert.ToString(orderInfo.OrderID); orderDate.SelectedDateTime = orderInfo.OrderDate; lblInvoiceNumberValue.Text = HTMLHelper.HTMLEncode(Convert.ToString(orderInfo.OrderInvoiceNumber)); txtNotes.Text = orderInfo.OrderNote; CustomerInfo ci = CustomerInfoProvider.GetCustomerInfo(customerId); if (ci != null) { lblCustomerName.Text = HTMLHelper.HTMLEncode(ci.CustomerFirstName + " " + ci.CustomerLastName); } statusElem.OrderStatusID = originalStatusId; addressElem.AddressID = originalCompanyAddressId; } /// /// Validates form input fields. /// protected string ValidateForm() { // Validate order date for emptiness string errorMessage = (orderDate.SelectedDateTime.CompareTo(DataHelper.DATETIME_NOT_SELECTED) == 0) ? GetString("order_edit.dateerr") : ""; if (errorMessage == "") { if (!orderDate.IsValidRange()) { errorMessage = GetString("general.errorinvaliddatetimerange"); } // Validate order date for wrong format if (ValidationHelper.GetDateTime(orderDate.SelectedDateTime, DataHelper.DATETIME_NOT_SELECTED) == DataHelper.DATETIME_NOT_SELECTED) { errorMessage = GetString("order_edit.datewrongformat"); } if ((originalCompanyAddressId > 0) && (errorMessage == "")) { if (addressElem.AddressID == 0) { errorMessage = GetString("order_edit.emptycompanyaddress"); } } } return errorMessage; } #endregion }