2025-03-27 15:05:14 +08:00

412 lines
22 KiB
C#

using System;
using System.Configuration;
using System.Web.UI;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.CoreFrameWork;
using SuperMap.RealEstate.Web.UI;
using SuperMap.RealEstate.Web.UI.WebControls;
using SuperMap.RealEstate.Web.Utility;
using HSB = SuperMap.RealEstate.HighWay.Storage.Business;
using HWRB = SuperMap.RealEstate.HighWay.Running.Business;
using WorkFlowBusiness = SuperMap.RealEstate.WorkFlow.Instance.Business;
namespace SuperMap.RealEstate.HighWay.Compents.CommodityChange
{
/// <summary>
/// T_COMMODITY_商品管理 的WebUserControl
/// <summary>
public partial class Default : UserControl<Running.Business.RTCOMMODITY>
{
protected string _SERVERPART_ID = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[0];
protected string _SERVERPART_CODE = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[1];
protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[2];
protected string _BUSINESSTYPE = ConfigurationManager.AppSettings["BusinessType"].ToString();
//流程实例
Running.Business.HIGHWAYPROINST _HighWayProInst = null;
#region ->
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
return;
string RequestParameter = "";
if (!string.IsNullOrEmpty(WorkFlowGuid))
{
WorkFlow.Support.Business.Component _Component = new WorkFlow.Support.Business.Component(Transaction);
_Component.AddSearchParameter("COMPONENT_GUID", WorkFlowGuid);
if (_Component.Search())
{
if (_Component.Component_Url.Contains("?"))
{
foreach (string RequestStr in _Component.Component_Url.Split('?')[1].Split('&'))
{
RequestParameter += "&" + RequestStr.Split('=')[0] + "=" + RequestStr.Split('=')[1].ToEncrypt();
}
}
}
}
if (this.ModifyType == ModifyTypeEnum.ReadOnlyVisible || ModifyType == ModifyTypeEnum.ReadOnly)
{
ButtonNew.Visible = false;
BtnImport.Visible = false;
BtnOperateDate.Visible = false;
}
GridViewEx1.SelectingWithInit<Running.Business.COMMODITY>(ObjectDataSource1, GridPageEx1,
DictionaryHelper.GetDictionary(Transaction, "BUSINESSTYPE"),
Storage.Business.CommonHelper.GetDictionary(Transaction, "USERDEFINEDTYPE_ID",
"SELECT USERDEFINEDTYPE_ID,USERDEFINEDTYPE_NAME FROM HIGHWAY_STORAGE.T_USERDEFINEDTYPE"),
DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE"),
DictionaryHelper.GetDictionary(Transaction, "ISVALID").AsNewKeys("COMMODITY_STATE"));
//工具条按钮事件
GridViewEx1.SetOpenControl(ButtonNew, "/HighWay/Compents/CommodityChange/DefaultPage.aspx?HIGHWAYPROINST_ID=" +
_HighWayProInst.HIGHWAYPROINST_ID.ToEncrypt() + RequestParameter);
//导入商品
GridViewEx1.SetOpenControl(BtnImport, "/HighWay/Compents/CommodityChange/UpdateExcel.aspx?HIGHWAYPROINST_ID=" +
_HighWayProInst.HIGHWAYPROINST_ID_Encrypt + "&SERVERPART_CODE=" + (_HighWayProInst.__ProInst.Division_Code == null ?
_SERVERPART_CODE.ToEncrypt() : _HighWayProInst.__ProInst.Division_Code.ToEncrypt()) + RequestParameter);
GridViewEx1.SetOpenControl(BtnOperateDate, "/HighWay/Compents/CommodityChange/UpdateOPERATE_DATE.aspx?HIGHWAYPROINST_ID=" +
_HighWayProInst.HIGHWAYPROINST_ID_Encrypt + "&SERVERPART_CODE=" + (_HighWayProInst.__ProInst.Division_Code == null ?
_SERVERPART_CODE.ToEncrypt() : _HighWayProInst.__ProInst.Division_Code.ToEncrypt()), 500, 500);
//设置回车焦点按钮
//SetControlClientAction(ButtonSearch);
}
protected override void OnInit(EventArgs e)
{
Common.PageHelper.CreateHeaderStyle(Page);
_HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page);
base.ButtonVisible = false;
base.OnInit(e);
}
#endregion
#region ->
public override bool LoadData()
{
//加载对应的
string _COMMODITY_BARCODE = "", _TCOMMODITY_BARCODE = "";
foreach (HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE in (new HWRB.MODIFYFROMSTORAGE(_HighWayProInst)).FillCollection(
"WHERE HIGHWAYPROINST_ID =" + (_HighWayProInst.HIGHWAYPROINST_ID == null ? 0 : _HighWayProInst.HIGHWAYPROINST_ID)))
{
if (_MODIFYFROMSTORAGE.Table_Name == "T_COMMODITY" && _MODIFYFROMSTORAGE.Field_Name == "COMMODITY_ID")
{
Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction);
_COMMODITY.COMMODITY_ID = int.Parse(_MODIFYFROMSTORAGE.Field_Value);
if (_COMMODITY.Select())
{
if (_COMMODITY.COMMODITY_STATE > 0)
{
int ResultCode = _COMMODITY.IsDuplicateBarcode(_COMMODITY.COMMODITY_ID.ToString(), _COMMODITY.COMMODITY_BARCODE,
_COMMODITY.SERVERPART_ID.ToString(), _COMMODITY.BUSINESSTYPE.ToString(), _COMMODITY.PROVINCE_CODE.ToString(),
_BUSINESSTYPE, _PROVINCE_CODE, _SERVERPART_ID);
switch (ResultCode)
{
case 1:
if (new Storage.Business.COMMODITY(_COMMODITY).GetCount("WHERE COMMODITY_BARCODE = '" +
_COMMODITY.COMMODITY_BARCODE + "' AND BUSINESSTYPE = " + _COMMODITY.BUSINESSTYPE) > 0)
{
_COMMODITY_BARCODE += (_COMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE;
continue;
}
break;
case 2:
_TCOMMODITY_BARCODE += (_TCOMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE;
continue;
}
}
}
}
}
if (_COMMODITY_BARCODE != "" || _TCOMMODITY_BARCODE != "")
{
Page.Alert("注意:商品条码为" + (_COMMODITY_BARCODE == "" ? (_TCOMMODITY_BARCODE + "的商品已存在于统一定价类中!") :
_COMMODITY_BARCODE + "的商品已存在于您的服务区" + (_TCOMMODITY_BARCODE == "" ? "!" : ",商品条码为" +
_TCOMMODITY_BARCODE + "的商品已存在于统一定价类中!")) + "请验证后重新录入!");
}
return true;
}
#endregion
#region ->
public override bool Save(bool AutoBindData = true)
{
string _COMMODITY_BARCODE = "", _TCOMMODITY_BARCODE = "";
if ((new Running.Business.COMMODITY(this.Transaction)).ExecuteDataTable(
"SELECT COMMODITY_ID FROM HIGHWAY_RUNNING.V_COMMODITY WHERE COMMODITY_BARCODE IS NULL AND HIGHWAYPROINST_ID = " +
_HighWayProInst.HIGHWAYPROINST_ID).Rows.Count > 0)
{
throw new Exception("注意:请给空条码的商品填写或者生成条码!");
}
if (new Running.Business.MODIFYFROMSTORAGE(Transaction).GetCount("WHERE HIGHWAYPROINST_ID = " +
(_HighWayProInst.HIGHWAYPROINST_ID == null ? 0 : _HighWayProInst.HIGHWAYPROINST_ID) +
" AND TABLE_NAME='T_COMMODITY' AND FIELD_NAME='COMMODITY_ID'") == 0)
{
throw new Exception("注意:请新增商品信息然后转到下一环节!");
}
string _shopName = string.Empty;
foreach (HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE in (new HWRB.MODIFYFROMSTORAGE(_HighWayProInst)).FillCollection(
"WHERE HIGHWAYPROINST_ID =" + (_HighWayProInst.HIGHWAYPROINST_ID == null ? 0 : _HighWayProInst.HIGHWAYPROINST_ID)))
{
if (_MODIFYFROMSTORAGE.Table_Name == "T_COMMODITY" && _MODIFYFROMSTORAGE.Field_Name == "COMMODITY_ID")
{
Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction);
_COMMODITY.COMMODITY_ID = int.Parse(_MODIFYFROMSTORAGE.Field_Value);
if (_COMMODITY.Select())
{
if (_COMMODITY.COMMODITY_STATE > 0)
{
int ResultCode = _COMMODITY.IsDuplicateBarcode(_COMMODITY.COMMODITY_ID.ToString(), _COMMODITY.COMMODITY_BARCODE,
_COMMODITY.SERVERPART_ID.ToString(), _COMMODITY.BUSINESSTYPE.ToString(), _COMMODITY.PROVINCE_CODE.ToString(),
_BUSINESSTYPE, _PROVINCE_CODE, _SERVERPART_ID);
switch (ResultCode)
{
case 1:
if (new Storage.Business.COMMODITY(_COMMODITY).GetCount("WHERE COMMODITY_BARCODE = '" +
_COMMODITY.COMMODITY_BARCODE + "' AND BUSINESSTYPE = " + _COMMODITY.BUSINESSTYPE) > 0)
{
_COMMODITY_BARCODE += (_COMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE;
continue;
}
break;
case 2:
_TCOMMODITY_BARCODE += (_TCOMMODITY_BARCODE == "" ? "" : ",") + _COMMODITY.COMMODITY_BARCODE;
continue;
}
}
string _SHORTNAME = "";
HSB.SERVERPARTSHOP _SERVERPARTSHOP = new HSB.SERVERPARTSHOP(Transaction);
_SERVERPARTSHOP.AddSearchParameter("SERVERPART_ID", _COMMODITY.SERVERPART_ID);
_SERVERPARTSHOP.AddSearchParameter("SHOPTRADE", _COMMODITY.BUSINESSTYPE);
if (_SERVERPARTSHOP.Search())
{
_SHORTNAME = (!string.IsNullOrEmpty(_SERVERPARTSHOP.SHOPSHORTNAME) ?
_SERVERPARTSHOP.SHOPSHORTNAME : _SERVERPARTSHOP.SHOPNAME);
}
else
{
_SHORTNAME = DictionaryHelper.GetFieldEnumName("BUSINESSTYPE", _COMMODITY.BUSINESSTYPE.ToString(), Transaction);
}
if (string.IsNullOrEmpty(_shopName) || !_shopName.Contains(_SHORTNAME))
{
_shopName += (_shopName == "" ? "" : ",") + _SHORTNAME;
}
}
}
}
if (_COMMODITY_BARCODE != "" || _TCOMMODITY_BARCODE != "")
{
throw new Exception("注意:商品条码为" + (_COMMODITY_BARCODE == "" ? (_TCOMMODITY_BARCODE +
"的商品已存在于统一定价类中!") : _COMMODITY_BARCODE + "的商品已存在于您的服务区" + (_TCOMMODITY_BARCODE == "" ?
"!" : ",商品条码为" + _TCOMMODITY_BARCODE + "的商品已存在于统一定价类中!")) + "请验证后重新录入!");
}
//增加门店和备注信息
if (_HighWayProInst != null)
{
WorkFlowBusiness.ProInst _ProInst = new WorkFlowBusiness.ProInst(Transaction);
_ProInst.ProInst_ID = _HighWayProInst.Proinst_ID;
if (_ProInst.Select())
{
_HighWayProInst.HIGHWAYPROINST_DESC = _shopName.TrimEnd(',') + "【" +
_ProInst.ProDef_Name.Replace("审批", "") + "】";
_HighWayProInst.Update();
}
}
return base.Save(AutoBindData);
}
#endregion
#region ->
//查询
protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e)
{
GridViewEx1.Selecting<Running.Business.COMMODITY>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
}
protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e)
{
if (!string.IsNullOrEmpty(TextBox_Search.Text))
e.AddOrParams(GridViewSearch1, TextBox_Search.Text);
e.AddAndParams("1", 1);
//搜索选项的搜索条件过滤
e.SetOtherUserCustomWhereSqlString = @"COMMODITY_ID IN(SELECT FIELD_VALUE FROM HIGHWAY_RUNNING.T_MODIFYFROMSTORAGE
WHERE HIGHWAYPROINST_ID = " + _HighWayProInst.HIGHWAYPROINST_ID + ")";
//排序
e.AddOrderByParams(GridViewOrderBy1);
}
//翻页事件
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.Pagging<Running.Business.COMMODITY>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetOuterHtml(GridViewEx1, GridViewEx1.OuterHTML);
}
#endregion
#region ->
protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string _COMMODITY_ID = GridViewEx1.DataKeys[e.Row.RowIndex]["COMMODITY_ID"].ToEncrypt();
CallBackButton _CallBack_Delete = e.Row.FindControl("CallBack_Delete") as CallBackButton;
Page.SetControlClientAction(_CallBack_Delete, false);
HWRB.COMMODITY _RCOMMODITY = new HWRB.COMMODITY(Transaction);
Storage.Business.COMMODITY _COMMODITY = new Storage.Business.COMMODITY(Transaction);
_RCOMMODITY.COMMODITY_ID_Encrypt = _COMMODITY_ID;
_COMMODITY.COMMODITY_ID_Encrypt = _COMMODITY_ID;
if (_COMMODITY.Select() && _RCOMMODITY.Select())
{
if (_COMMODITY.BUSINESSTYPE != _RCOMMODITY.BUSINESSTYPE)
{
e.Row.Cells[2].Font.Bold = true;
e.Row.Cells[2].ToolTip = "原业态:" + DictionaryHelper.GetFieldEnumName(
"BUSINESSTYPE", _COMMODITY.BUSINESSTYPE.ToString(), Transaction);
}
if (_COMMODITY.COMMODITY_TYPE != _RCOMMODITY.COMMODITY_TYPE)
{
e.Row.Cells[3].Font.Bold = true;
try
{
Storage.Business.COMMODITYTYPE SCOMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
SCOMMODITYTYPE.COMMODITYTYPE_ID_Encrypt = _COMMODITY.COMMODITY_TYPE.ToEncrypt();
if (SCOMMODITYTYPE.Select())
{
e.Row.Cells[3].ToolTip = "原商品类型:" + SCOMMODITYTYPE.COMMODITYTYPE_NAME;
}
}
catch
{
e.Row.Cells[3].ToolTip = "原商品类型:" + _COMMODITY.COMMODITY_TYPE;
}
}
if (_COMMODITY.COMMODITY_NAME != _RCOMMODITY.COMMODITY_NAME)
{
e.Row.Cells[4].Font.Bold = true;
e.Row.Cells[4].ToolTip = "原商品名称:" + _COMMODITY.COMMODITY_NAME;
}
if (_COMMODITY.COMMODITY_BARCODE != _RCOMMODITY.COMMODITY_BARCODE)
{
e.Row.Cells[5].Font.Bold = true;
e.Row.Cells[5].ToolTip = "原商品条码:" + _COMMODITY.COMMODITY_BARCODE;
}
if (_COMMODITY.COMMODITY_EN != _RCOMMODITY.COMMODITY_EN)
{
e.Row.Cells[6].Font.Bold = true;
e.Row.Cells[6].ToolTip = "原拼音简码:" + _COMMODITY.COMMODITY_EN;
}
if (_COMMODITY.COMMODITY_UNIT != _RCOMMODITY.COMMODITY_UNIT)
{
e.Row.Cells[7].Font.Bold = true;
e.Row.Cells[7].ToolTip = "原商品单位:" + _COMMODITY.COMMODITY_UNIT;
}
if (_COMMODITY.COMMODITY_RULE != _RCOMMODITY.COMMODITY_RULE)
{
e.Row.Cells[8].Font.Bold = true;
e.Row.Cells[8].ToolTip = "原商品规格:" + _COMMODITY.COMMODITY_RULE;
}
if (_COMMODITY.COMMODITY_HOTKEY != _RCOMMODITY.COMMODITY_HOTKEY)
{
e.Row.Cells[10].Font.Bold = true;
e.Row.Cells[10].ToolTip = "原快捷键:" + _COMMODITY.COMMODITY_HOTKEY;
}
if (_COMMODITY.USERDEFINEDTYPE_ID != _RCOMMODITY.USERDEFINEDTYPE_ID)
{
e.Row.Cells[11].Font.Bold = true;
if (_COMMODITY.USERDEFINEDTYPE_ID != null)
{
Storage.Business.USERDEFINEDTYPE _USERDEFINEDTYPE = new HSB.USERDEFINEDTYPE(Transaction);
_USERDEFINEDTYPE.USERDEFINEDTYPE_ID = _COMMODITY.USERDEFINEDTYPE_ID;
if (_USERDEFINEDTYPE.Select())
{
e.Row.Cells[11].ToolTip = "原自定义类:" + _USERDEFINEDTYPE.USERDEFINEDTYPE_NAME;
}
}
}
if (_COMMODITY.COMMODITY_ORI != _RCOMMODITY.COMMODITY_ORI)
{
e.Row.Cells[14].Font.Bold = true;
e.Row.Cells[14].ToolTip = "原商品产地:" + _COMMODITY.COMMODITY_ORI;
}
if (_COMMODITY.COMMODITY_GRADE != _RCOMMODITY.COMMODITY_GRADE)
{
e.Row.Cells[15].Font.Bold = true;
e.Row.Cells[15].ToolTip = "原质量等级:" + _COMMODITY.COMMODITY_GRADE;
}
if (_COMMODITY.COMMODITY_STATE != _RCOMMODITY.COMMODITY_STATE)
{
e.Row.Cells[e.Row.Cells.Count - 3].Font.Bold = true;
e.Row.Cells[e.Row.Cells.Count - 3].ToolTip = "原商品状态:" + DictionaryHelper.GetFieldEnumName(
"COMMODITYSTATE", _COMMODITY.COMMODITY_STATE.ToString(), Transaction);
}
}
try
{
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
_COMMODITYTYPE.COMMODITYTYPE_ID_Encrypt = e.Row.Cells[3].Text.ToEncrypt();
if (_COMMODITYTYPE.Select())
{
e.Row.Cells[3].Text = _COMMODITYTYPE.COMMODITYTYPE_NAME;
}
}
catch { }
}
}
#endregion
#region ->
protected void CallBackButton_Edit_CallBackClick(object sender, ClientSetEventArgs e)
{
CallBackButton _button = (CallBackButton)sender;
GridViewRow _Row = (GridViewRow)_button.NamingContainer;
string _Key_ID = GridViewEx1.DataKeys[_Row.RowIndex][0].ToString();
e.ExcuteClientScript(GridViewEx1.GetOpenPopDialogClientScript("/HighWay/Compents/CommodityChange/COMMODITYPage.aspx?ID=" +
_Key_ID.ToEncrypt() + "&HIGHWAYPROINST_ID=" + (_HighWayProInst.HIGHWAYPROINST_ID.ToString().ToEncrypt())));
}
#endregion
#region ->
protected void CallBack_Delete_CallBackClick(object sender, ClientSetEventArgs e)
{
CallBackButton _button = (CallBackButton)sender;
GridViewRow _Row = (GridViewRow)_button.NamingContainer;
string _Key_ID = GridViewEx1.DataKeys[_Row.RowIndex][0].ToString();
using (Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction))
{
_COMMODITY.COMMODITY_ID = int.Parse(_Key_ID);
if (_COMMODITY.Select())
{
//删除关联关系
Running.Business.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new Running.Business.MODIFYFROMSTORAGE(this.Transaction);
_MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID);
_MODIFYFROMSTORAGE.AddSearchParameter("Field_Value", _COMMODITY.COMMODITY_ID);
_MODIFYFROMSTORAGE.AddSearchParameter("Table_Name", "T_COMMODITY");
if (_MODIFYFROMSTORAGE.Search())
{
_MODIFYFROMSTORAGE.Delete();
}
_COMMODITY.Delete();
e.ExcuteClientScript(Page.GetAlertStr("删除成功!", 3));
}
}
GridViewEx1.SelectingWithInit<Running.Business.COMMODITY>(ObjectDataSource1, GridPageEx1,
DictionaryHelper.GetDictionary(Transaction, "BUSINESSTYPE"),
DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE"),
DictionaryHelper.GetDictionary(Transaction, "ISVALID").AsNewKeys("COMMODITY_STATE"));
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
}
#endregion
}
}