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.Ecommerce;
using CMS.GlobalHelper;
using CMS.UIControls;
using CMS.SettingsProvider;
// Edited object
[EditedObject(PredefinedObjectType.SUPPLIER, "supplierid")]
// Title
[Title("Objects/Ecommerce_Supplier/object.png", "com.supplier.edit", "newedit_supplier", ExistingObject = true)]
[Title("Objects/Ecommerce_Supplier/new.png", "supplier_List.NewItemCaption", "newedit_supplier", NewObject = true)]
public partial class CMSModules_Ecommerce_Pages_Tools_Suppliers_Supplier_Edit : CMSSuppliersPage
{
#region "Variables"
protected int mSupplierId = 0;
protected int editedSiteId = -1;
#endregion
protected void Page_Load(object sender, EventArgs e)
{
rfvDisplayName.ErrorMessage = GetString("supplier_Edit.errorEmptyDisplayName");
string currentSupplier = GetString("supplier_Edit.NewItemCaption");
// Get supplier ID from querystring
mSupplierId = QueryHelper.GetInteger("supplierid", 0);
editedSiteId = ConfiguredSiteID;
if (mSupplierId > 0)
{
SupplierInfo supplierObj = EditedObject as SupplierInfo;
if (supplierObj != null)
{
currentSupplier = supplierObj.SupplierDisplayName;
// Store site id of edited supplier
editedSiteId = supplierObj.SupplierSiteID;
//Check site id of edited supplier
CheckEditedObjectSiteID(editedSiteId);
// Fill editing form
if (!RequestHelper.IsPostBack())
{
LoadData(supplierObj);
// Show that the supplier was created or updated successfully
if (QueryHelper.GetBoolean("saved", false))
{
// Show message
ShowChangesSaved();
}
}
}
}
// Initializes page title breadcrumbs control
string[,] breadcrumbs = new string[2, 3];
breadcrumbs[0, 0] = GetString("supplier_Edit.ItemListLink");
breadcrumbs[0, 1] = "~/CMSModules/Ecommerce/Pages/Tools/Suppliers/Supplier_List.aspx?siteId=" + SiteID;
breadcrumbs[0, 2] = "";
breadcrumbs[1, 0] = FormatBreadcrumbObjectName(currentSupplier, editedSiteId);
breadcrumbs[1, 1] = "";
breadcrumbs[1, 2] = "";
CurrentMaster.Title.Breadcrumbs = breadcrumbs;
AddMenuButtonSelectScript("Suppliers", "");
}
///
/// Load data of editing supplier.
///
/// Supplier object
protected void LoadData(SupplierInfo supplierObj)
{
EditedObject = supplierObj;
txtSupplierFax.Text = supplierObj.SupplierFax;
txtSupplierEmail.Text = supplierObj.SupplierEmail;
txtSupplierPhone.Text = supplierObj.SupplierPhone;
txtSupplierDisplayName.Text = supplierObj.SupplierDisplayName;
txtSupplierName.Text = supplierObj.SupplierName;
chkSupplierEnabled.Checked = supplierObj.SupplierEnabled;
}
///
/// Sets the data to database.
///
protected void btnOK_Click(object sender, EventArgs e)
{
// Check module permissions
bool global = (editedSiteId <= 0);
if (!ECommerceContext.IsUserAuthorizedToModifySupplier(global))
{
if (global)
{
RedirectToAccessDenied("CMS.Ecommerce", "EcommerceGlobalModify");
}
else
{
RedirectToAccessDenied("CMS.Ecommerce", "EcommerceModify OR ModifySuppliers");
}
}
string errorMessage = new Validator().
NotEmpty(txtSupplierDisplayName.Text.Trim(), GetString("supplier_Edit.errorEmptyDisplayName")).
IsCodeName(txtSupplierName.Text.Trim(), GetString("general.invalidcodename")).Result;
// Validate email format if not empty
if (errorMessage == "")
{
if ((txtSupplierEmail.Text.Trim() != "") && (!ValidationHelper.IsEmail(txtSupplierEmail.Text.Trim())))
{
errorMessage = GetString("supplier_Edit.errorEmailFormat");
}
}
if (errorMessage == "")
{
SupplierInfo supplierObj = null;
// Supplier code name must be unique
string siteWhere = (ConfiguredSiteID > 0) ? " AND (SupplierSiteID = " + ConfiguredSiteID + " OR SupplierSiteID IS NULL)" : "";
DataSet ds = SupplierInfoProvider.GetSuppliers("SupplierName = N'" + SqlHelperClass.GetSafeQueryString(txtSupplierName.Text.Trim(), false) + "'" + siteWhere, null, 1, null);
if (!DataHelper.DataSourceIsEmpty(ds))
{
supplierObj = new SupplierInfo(ds.Tables[0].Rows[0]);
}
if ((supplierObj == null) || (supplierObj.SupplierID == mSupplierId))
{
if (supplierObj == null)
{
supplierObj = SupplierInfoProvider.GetSupplierInfo(mSupplierId);
if (supplierObj == null)
{
// Create new supplier
supplierObj = new SupplierInfo();
supplierObj.SupplierSiteID = ConfiguredSiteID;
}
}
supplierObj.SupplierFax = txtSupplierFax.Text.Trim();
supplierObj.SupplierEmail = txtSupplierEmail.Text.Trim();
supplierObj.SupplierPhone = txtSupplierPhone.Text.Trim();
supplierObj.SupplierDisplayName = txtSupplierDisplayName.Text.Trim();
supplierObj.SupplierName = txtSupplierName.Text.Trim();
supplierObj.SupplierEnabled = chkSupplierEnabled.Checked;
// Save changes
SupplierInfoProvider.SetSupplierInfo(supplierObj);
URLHelper.Redirect("Supplier_Edit.aspx?supplierid=" + Convert.ToString(supplierObj.SupplierID) + "&saved=1&siteId=" + SiteID);
}
else
{
// Show error message
ShowError(GetString("com.suppliernameexists"));
}
}
else
{
// Show error message
ShowError(errorMessage);
}
}
}