451 lines
20 KiB
C#
451 lines
20 KiB
C#
using System;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.Web.UI;
|
||
using SuperMap.RealEstate.CoreFrameWork;
|
||
using SuperMap.RealEstate.Web.UI;
|
||
using SuperMap.RealEstate.Web.UI.WebControls;
|
||
using Business = SuperMap.RealEstate.HighWay.Running.Business;
|
||
using HZQR.Common;
|
||
|
||
namespace SuperMap.RealEstate.HighWay.Compents.Commodity
|
||
{
|
||
/// <summary>
|
||
/// T_COMMODITY_商品管理 的WebUserControl
|
||
/// <summary>
|
||
public partial class COMMODITY : UserControl<Business.COMMODITY>
|
||
{
|
||
/// <summary>
|
||
/// 统一定价服务区内码
|
||
/// </summary>
|
||
protected string _SERVERPART_ID = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[0];
|
||
/// <summary>
|
||
/// 省份内码
|
||
/// </summary>
|
||
protected string _PROVINCE_ID = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[2];
|
||
/// <summary>
|
||
/// 商品业态集合(不参与统一定价商品判断)
|
||
/// </summary>
|
||
protected string _BUSINESSTYPE = ConfigurationManager.AppSettings["BusinessType"].ToString();
|
||
/// <summary>
|
||
/// 业务流程内码
|
||
/// </summary>
|
||
private string HIGHWAYPROINST_ID
|
||
{
|
||
get
|
||
{
|
||
try
|
||
{
|
||
return Request["HIGHWAYPROINST_ID"].ToDecrypt();
|
||
}
|
||
catch
|
||
{
|
||
return "";
|
||
}
|
||
}
|
||
}
|
||
|
||
#region 方法 -> 页面加载
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
|
||
if (IsPostBack) return;
|
||
|
||
if (SERVERPART_ID.SelectedIndex > -1)
|
||
{
|
||
if (SERVERPART_ID.SelectedValue == _SERVERPART_ID)
|
||
{
|
||
COMMODITY_HOTKEY.Enabled = false;
|
||
USERDEFINEDTYPE_ID.Enabled = false;
|
||
CallBackButton_Select.Enabled = false;
|
||
}
|
||
else
|
||
{
|
||
COMMODITY_HOTKEY.Enabled = true;
|
||
USERDEFINEDTYPE_ID.Enabled = true;
|
||
CallBackButton_Select.Enabled = true;
|
||
}
|
||
|
||
//绑定商品业态
|
||
BUSINESSTYPE.Clear();
|
||
new Storage.Business.COMMODITY(Transaction).BindingDropDownList(BUSINESSTYPE.Items,
|
||
!string.IsNullOrEmpty(Request["BUSINESSTYPE"]) ? Request["BUSINESSTYPE"].ToDecrypt() : "",
|
||
int.Parse(SERVERPART_ID.SelectedValue));
|
||
if (CurrObject.BUSINESSTYPE != null)
|
||
{
|
||
BUSINESSTYPE.SelectedValue = CurrObject.BUSINESSTYPE.ToString();
|
||
}
|
||
//绑定自定义类
|
||
USERDEFINEDTYPE_ID.Clear();
|
||
new Storage.Business.USERDEFINEDTYPE(Transaction).BindingDropDownList(
|
||
USERDEFINEDTYPE_ID.Items, "", SERVERPART_ID.SelectedValue.TryParseToInt());
|
||
if (CurrObject.USERDEFINEDTYPE_ID != null)
|
||
{
|
||
USERDEFINEDTYPE_ID.SelectedValue = CurrObject.USERDEFINEDTYPE_ID.ToString();
|
||
}
|
||
}
|
||
LoadRTCommodityType();
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等
|
||
public override void InitializeWebControl()
|
||
{
|
||
//绑定下拉框
|
||
DictionaryHelper.BindingDropDownList("COMMODITYGRADE", COMMODITY_GRADE.Items, this.Transaction);
|
||
//绑定称重方式
|
||
DictionaryHelper.BindingDropDownList("METERINGMETHOD", METERINGMETHOD.Items, this.Transaction);
|
||
//业态
|
||
//DictionaryHelper.BindingDropDownList("BUSINESSTYPE", BUSINESSTYPE.Items, this.Transaction);
|
||
//是否散装
|
||
DictionaryHelper.BindingDropDownList("ISBULK", ISBULK.Items, this.Transaction);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 载入数据
|
||
public override bool LoadData()
|
||
{
|
||
//加载对应的
|
||
ADDTIME.Text = System.DateTime.Now.ToString();
|
||
OPERATE_DATE.Text = DateTime.Now.ToString();
|
||
BindDropDownList_SERVERPART();
|
||
|
||
//如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码
|
||
if (!String.IsNullOrEmpty(Request["ID"]))
|
||
{
|
||
CurrObject.COMMODITY_ID_Encrypt = Request["ID"];
|
||
//LoadRTCommodityType(int.Parse(Request["ID"].ToDecrypt()));
|
||
return this.Select();
|
||
}
|
||
//LoadRTCommodityType();
|
||
//BindDropDownList_Supplier();
|
||
//默认返回值,工作流组件返回True,功能模块返回False。
|
||
return (WorkFlowPage != null);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 页面保存事件
|
||
//OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理
|
||
//e.CancelDataAction 来处理是否取消该动作;
|
||
//失败的原因可以用Page.Alert()传递到页面
|
||
public override void OnDataAction_BeforeSave(DataActionEventArgs<Business.COMMODITY> e)
|
||
{
|
||
//判断条码是否已在当前服务区或者统配商品中录入
|
||
if (!string.IsNullOrWhiteSpace(COMMODITY_BARCODE.Text.Trim()))
|
||
{
|
||
int ResultCode = e.CurrObject.IsDuplicateBarcode(COMMODITY_ID.Text, COMMODITY_BARCODE.Text.Trim(),
|
||
SERVERPART_ID.SelectedValue, BUSINESSTYPE.SelectedValue, PROVINCE_CODE.Text, _BUSINESSTYPE, _PROVINCE_ID, _SERVERPART_ID);
|
||
switch (ResultCode)
|
||
{
|
||
case 1:
|
||
throw new Exception("注意:该商品条码已存在于" + SERVERPART_ID.SelectedItem.Text + "或正在办理流程!请验证后重新录入!");
|
||
case 2:
|
||
throw new Exception("注意:该商品条码已存在于统一定价类中!请验证后重新录入!");
|
||
}
|
||
}
|
||
|
||
//判断当前服务区相同业态是否存在相同的快捷键信息
|
||
if (!string.IsNullOrWhiteSpace(COMMODITY_HOTKEY.Text.Trim()) && e.CurrObject.IsDuplicateHotKey(
|
||
COMMODITY_ID.Text, COMMODITY_HOTKEY.Text.Trim(), SERVERPART_ID.SelectedValue, BUSINESSTYPE.SelectedValue))
|
||
{
|
||
throw new Exception("注意:该商品快捷键已存在!请验证后重新录入!");
|
||
}
|
||
|
||
base.OnDataAction_BeforeSave(e);
|
||
}
|
||
|
||
public override void OnDataAction_AfterSave(DataActionEventArgs<Business.COMMODITY> e)
|
||
{
|
||
bool Changed = false;
|
||
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
|
||
_COMMODITYTYPE.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue);
|
||
if (_COMMODITYTYPE.Select())
|
||
{
|
||
Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction);
|
||
_COMMODITY.COMMODITY_ID = CurrObject.COMMODITY_ID;
|
||
if (_COMMODITY.Select())
|
||
{
|
||
if (_COMMODITY.COMMODITY_CODE == null)
|
||
{
|
||
_COMMODITY.COMMODITY_CODE = new Storage.Business.COMMODITY(Transaction).GetCommodityCode(
|
||
_COMMODITY.PROVINCE_CODE.ToString());
|
||
COMMODITY_CODE.Text = _COMMODITY.COMMODITY_CODE;
|
||
Changed = true;
|
||
}
|
||
if (Changed)
|
||
{
|
||
_COMMODITY.Update();
|
||
}
|
||
}
|
||
}
|
||
//插入对应的关联关系
|
||
using (Running.Business.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new Business.MODIFYFROMSTORAGE(this.Transaction))
|
||
{
|
||
_MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", HIGHWAYPROINST_ID);
|
||
_MODIFYFROMSTORAGE.AddSearchParameter("FIELD_VALUE", COMMODITY_ID.Text);
|
||
if (!_MODIFYFROMSTORAGE.Search())
|
||
{
|
||
_MODIFYFROMSTORAGE.ResetProperty();
|
||
_MODIFYFROMSTORAGE.HIGHWAYPROINST_ID = int.Parse(HIGHWAYPROINST_ID);
|
||
_MODIFYFROMSTORAGE.Field_Value = CurrObject.COMMODITY_ID.Value.ToString();
|
||
_MODIFYFROMSTORAGE.Table_Name = "T_COMMODITY";
|
||
_MODIFYFROMSTORAGE.Field_Name = "COMMODITY_ID";
|
||
_MODIFYFROMSTORAGE.Insert();
|
||
}
|
||
}
|
||
|
||
base.OnDataAction_AfterSave(e);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 页面删除事件
|
||
public override bool Delete(bool AutoBindData = true)
|
||
{
|
||
using (Running.Business.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new Business.MODIFYFROMSTORAGE(this.Transaction))
|
||
{
|
||
_MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", HIGHWAYPROINST_ID);
|
||
_MODIFYFROMSTORAGE.AddSearchParameter("FIELD_VALUE", COMMODITY_ID.Text);
|
||
if (_MODIFYFROMSTORAGE.Search())
|
||
{
|
||
_MODIFYFROMSTORAGE.Delete();
|
||
}
|
||
}
|
||
return base.Delete(AutoBindData);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 加载服务区下拉框
|
||
public void BindDropDownList_SERVERPART(int COMMODITY_ID = 0)
|
||
{
|
||
SERVERPART_ID.Items.Clear();
|
||
|
||
Business.HIGHWAYPROINST _HIGHWAYPROINST = new Business.HIGHWAYPROINST(Transaction);
|
||
_HIGHWAYPROINST.HIGHWAYPROINST_ID_Encrypt = Request["HIGHWAYPROINST_ID"];
|
||
if (_HIGHWAYPROINST.Select())
|
||
{
|
||
Storage.Business.SERVERPART _SERVERPART = new Storage.Business.SERVERPART(Transaction);
|
||
if (_HIGHWAYPROINST.__ProInst.Division_Code == null)
|
||
{
|
||
_SERVERPART.SERVERPART_ID_Encrypt = _SERVERPART_ID.ToEncrypt();
|
||
if (_SERVERPART.Select())
|
||
{
|
||
ListItemEx _ListItemEx = new ListItemEx();
|
||
_ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString();
|
||
_ListItemEx.Text = _SERVERPART.SERVERPART_NAME;
|
||
SERVERPART_ID.Items.Add(_ListItemEx);
|
||
SERVERPART_ID.SelectedValue = _SERVERPART_ID;
|
||
PROVINCE_CODE.Text = _SERVERPART.PROVINCE_CODE.ToString();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
_SERVERPART.AddSearchParameter("SERVERPART_CODE", _HIGHWAYPROINST.__ProInst.Division_Code_BaseValue);
|
||
if (_SERVERPART.Search())
|
||
{
|
||
ListItemEx _ListItemEx = new ListItemEx();
|
||
_ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString();
|
||
_ListItemEx.Text = _SERVERPART.SERVERPART_NAME;
|
||
SERVERPART_ID.Items.Add(_ListItemEx);
|
||
SERVERPART_ID.SelectedValue = SERVERPART_ID.ID.ToString();
|
||
PROVINCE_CODE.Text = _SERVERPART.PROVINCE_CODE.ToString();
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
foreach (Storage.Business.SERVERPART _SERVERPART in new Storage.Business.SERVERPART(
|
||
Transaction).GetPassportServerPart(Page.PassportInfo.CityAuthority))
|
||
{
|
||
ListItemEx _ListItemEx = new ListItemEx();
|
||
_ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString();
|
||
_ListItemEx.Text = _SERVERPART.SERVERPART_NAME;
|
||
SERVERPART_ID.Items.Add(_ListItemEx);
|
||
}
|
||
|
||
if (SERVERPART_ID.SelectedIndex != -1)
|
||
{
|
||
Storage.Business.SERVERPART _SERVERPART = new Storage.Business.SERVERPART(this.Transaction);
|
||
|
||
if (_SERVERPART.Select(int.Parse(SERVERPART_ID.SelectedValue)))
|
||
{
|
||
PROVINCE_CODE.Text = _SERVERPART.PROVINCE_CODE.ToString();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 加载商品类型下拉框
|
||
public void LoadRTCommodityType()
|
||
{
|
||
COMMODITY_TYPE.Items.Clear();
|
||
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
|
||
if (BUSINESSTYPE.SelectedValue == "9032" || BUSINESSTYPE.SelectedValue == "9990")
|
||
{
|
||
//仓储或者物业物资
|
||
if (BUSINESSTYPE.SelectedValue == "9990")
|
||
{
|
||
_COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, true, true, false, false, true);
|
||
}
|
||
else
|
||
{
|
||
_COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, true, true, false);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (SERVERPART_ID.SelectedValue == _SERVERPART_ID)
|
||
{
|
||
_COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, false, true, true, true);
|
||
}
|
||
else
|
||
{
|
||
_COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, true, true);
|
||
}
|
||
}
|
||
if (CurrObject.COMMODITY_TYPE != null)
|
||
{
|
||
COMMODITY_TYPE.SelectedValue = CurrObject.COMMODITY_TYPE.ToString();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 产生商品条码
|
||
public void CreateBarCode()
|
||
{
|
||
string BarCode = string.Empty;
|
||
int LastCode = 0;
|
||
if (COMMODITY_ID.Text != "" && COMMODITY_ID.Text != "0")
|
||
{
|
||
Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction);
|
||
_COMMODITY.COMMODITY_ID = int.Parse(COMMODITY_ID.Text);
|
||
if (_COMMODITY.Select())
|
||
{
|
||
BarCode = _COMMODITY.COMMODITY_CODE;
|
||
if (_COMMODITY.COMMODITY_BARCODE == null)
|
||
{
|
||
//8位编号补足12位
|
||
if (BarCode.Length == 8) BarCode = "2600" + BarCode;
|
||
//偶数位的数字求和*3 + 奇数位数字和
|
||
for (int i = 1; i <= 12; i++)
|
||
{
|
||
int Num = int.Parse(BarCode.Substring(i - 1, 1));
|
||
if (i % 2 == 0)
|
||
{
|
||
LastCode += Num * 3;
|
||
}
|
||
else
|
||
{
|
||
LastCode += Num;
|
||
}
|
||
}
|
||
//和求10的模
|
||
LastCode = 10 - (LastCode % 10);
|
||
if (LastCode == 10) LastCode = 0;
|
||
//返回条码
|
||
_COMMODITY.COMMODITY_BARCODE = COMMODITY_BARCODE.Text = BarCode + LastCode.ToString();
|
||
_COMMODITY.Update();
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Page.Alert("请先保存商品,后获取条码!");
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 商品类别下拉框变更事件
|
||
//单独处理仓储商品
|
||
protected void COMMODITY_TYPE_CallBackSetControl(object sender, ClientSetEventArgs e)
|
||
{
|
||
//获得对应的数据
|
||
if (!COMMODITY_TYPE.SelectedItem.Text.StartsWith("[1") && !COMMODITY_TYPE.SelectedItem.Text.StartsWith("[2") &&
|
||
!COMMODITY_TYPE.SelectedItem.Text.StartsWith("[3") && !COMMODITY_TYPE.SelectedItem.Text.StartsWith("[7") &&
|
||
!COMMODITY_TYPE.SelectedItem.Text.StartsWith("[8") && (BUSINESSTYPE.SelectedValue != "9032" &&
|
||
BUSINESSTYPE.SelectedValue != "9990"))
|
||
{
|
||
BUSINESSTYPE.SelectedValue = "9032";
|
||
e.SetValue(BUSINESSTYPE);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 商品业态下拉框变更事件
|
||
protected void BUSINESSTYPE_CallBackSetControl(object sender, ClientSetEventArgs e)
|
||
{
|
||
if (e.Argument == "9032")
|
||
{
|
||
if (COMMODITY_TYPE.SelectedItem == null || COMMODITY_TYPE.SelectedItem.Text.StartsWith("[1") ||
|
||
COMMODITY_TYPE.SelectedItem.Text.StartsWith("[2") || COMMODITY_TYPE.SelectedItem.Text.StartsWith("[3") ||
|
||
COMMODITY_TYPE.SelectedItem.Text.StartsWith("[7") || COMMODITY_TYPE.SelectedItem.Text.StartsWith("[8"))
|
||
{
|
||
COMMODITY_TYPE.Items.Clear();
|
||
new Storage.Business.COMMODITYTYPE(this.Transaction).BindingDropDownList(
|
||
COMMODITY_TYPE.Items, "", false, true, true, false);
|
||
}
|
||
}
|
||
else if (e.Argument == "9990")
|
||
{
|
||
if (COMMODITY_TYPE.SelectedItem == null || !COMMODITY_TYPE.SelectedItem.Text.StartsWith("[9"))
|
||
{
|
||
COMMODITY_TYPE.Items.Clear();
|
||
new Storage.Business.COMMODITYTYPE(this.Transaction).BindingDropDownList(
|
||
COMMODITY_TYPE.Items, "", false, true, true, false, false, true);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
COMMODITY_TYPE.Items.Clear();
|
||
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
|
||
if (SERVERPART_ID.SelectedValue == _SERVERPART_ID)
|
||
{
|
||
_COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, false, true, true, true);
|
||
}
|
||
else
|
||
{
|
||
_COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false, true, true);
|
||
}
|
||
}
|
||
e.SetDropDownListEx(COMMODITY_TYPE);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 添加自定义类按钮事件
|
||
protected void CallBackButton_Select_CallBackClick(object sender, ClientSetEventArgs e)
|
||
{
|
||
BindControlToObject(CurrObject);
|
||
if (CurrObject.COMMODITY_ID == null)
|
||
{
|
||
CurrObject.Insert();
|
||
//插入对应的关联关系
|
||
using (Running.Business.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new Business.MODIFYFROMSTORAGE(this.Transaction))
|
||
{
|
||
_MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", HIGHWAYPROINST_ID);
|
||
_MODIFYFROMSTORAGE.AddSearchParameter("FIELD_VALUE", COMMODITY_ID.Text);
|
||
if (!_MODIFYFROMSTORAGE.Search())
|
||
{
|
||
_MODIFYFROMSTORAGE.ResetProperty();
|
||
_MODIFYFROMSTORAGE.HIGHWAYPROINST_ID = int.Parse(HIGHWAYPROINST_ID);
|
||
_MODIFYFROMSTORAGE.Field_Value = CurrObject.COMMODITY_ID.Value.ToString();
|
||
_MODIFYFROMSTORAGE.Table_Name = "T_COMMODITY";
|
||
_MODIFYFROMSTORAGE.Field_Name = "COMMODITY_ID";
|
||
_MODIFYFROMSTORAGE.Insert();
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
CurrObject.Update();
|
||
}
|
||
COMMODITY_ID.Text = CurrObject.COMMODITY_ID.ToString();
|
||
e.SetValue(COMMODITY_ID);
|
||
e.ClientScript = Page.GetOpenPopDialogClientScript("/HighWay/Modules/Commodity/UserDefinedType/Default.aspx?" +
|
||
"COMMODITY_ID=" + CurrObject.COMMODITY_ID_Encrypt + "&SERVERPART_ID=" + SERVERPART_ID.SelectedValue.ToEncrypt() +
|
||
"&PageType=WorkFlowPage&HIGHWAYPROINST_ID=" + Request["HIGHWAYPROINST_ID"] + "&NowActInst_ID=" + Request["NowActInst_ID"] +
|
||
"&PopDialogPageName=F_L_GridPageEx1&PopDialogName=CommodityPage", "Default", 800, 600, true, false, true);
|
||
}
|
||
#endregion
|
||
}
|
||
}
|