280 lines
12 KiB
C#
280 lines
12 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.Storage.Business;
|
||
|
||
namespace SuperMap.RealEstate.SendRec.Modules.Commodity
|
||
{
|
||
/// <summary>
|
||
/// T_COMMODITY_商品管理 的WebUserControl
|
||
/// <summary>
|
||
public partial class COMMODITY : SuperMap.RealEstate.HighWay.Storage.UI.UserControlsEx<Business.COMMODITY>
|
||
{
|
||
protected string _SERVERPART_ID = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[0];
|
||
protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["UmiformCommodity"].ToString().Split('|')[2];
|
||
protected string _BUSINESSTYPE = ConfigurationManager.AppSettings["BusinessType"].ToString();
|
||
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
if (IsPostBack) return;
|
||
|
||
BUSINESSTYPE.SelectedValue = Request["BUSINESSTYPE"].ToDecrypt();
|
||
LoadRTCommodityType();
|
||
COMMODITY_UNIT.Attributes["placeholder"] = "如:个、台、架、块等";
|
||
COMMODITY_ALLNAME.Attributes["placeholder"] = "批复文件号";
|
||
OPERATE_DATE.Text = DateTime.Now.ToString();
|
||
}
|
||
|
||
//在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等
|
||
public override void InitializeWebControl()
|
||
{
|
||
//绑定商品供应商
|
||
if (!string.IsNullOrEmpty(Request["SERVERPART_ID"]))
|
||
{
|
||
DataTable _DataTable = new Business.SERVERPART(Transaction).ExecuteDataTable(
|
||
$@"SELECT MERCHANTS_ID,MERCHANTS_NAME FROM HIGHWAY_STORAGE.V_MERCHANTS_ALL
|
||
WHERE SERVERPART_ID = {Request["SERVERPART_ID"].ToDecrypt()} AND
|
||
PROVINCE_CODE = {Request["GOODCODE"].ToDecrypt()} AND
|
||
',' || DATASOURCE_TYPE || ',' LIKE '%{",1213,"}%'");
|
||
foreach (DataRow _DataRow in _DataTable.Rows)
|
||
{
|
||
COMMODITY_ORI.Items.Add(new ListItemEx() {Text = _DataRow["MERCHANTS_NAME"].ToString(),Value = _DataRow["MERCHANTS_ID"].ToString() });
|
||
}
|
||
}
|
||
//绑定商品品牌
|
||
DictionaryHelper.BindingDropDownList("COMMODITY_BRAND", COMMODITY_BRAND.Items, Transaction);
|
||
|
||
new Business.COMMODITY(Transaction).BindingDropDownListMaterial(BUSINESSTYPE.Items,
|
||
!string.IsNullOrEmpty(Request["BUSINESSTYPE"]) ? Request["BUSINESSTYPE"].ToDecrypt() : "",
|
||
int.Parse(Request["SERVERPART_ID"].ToDecrypt()));
|
||
}
|
||
|
||
//载入数据
|
||
public override bool LoadData()
|
||
{
|
||
//加载对应的
|
||
ADDTIME.Text = System.DateTime.Now.ToString();
|
||
BindDropDownList_SERVERPART();
|
||
//如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码
|
||
if (!String.IsNullOrEmpty(Request["ID"]))
|
||
{
|
||
CurrObject.COMMODITY_ID_Encrypt = Request["ID"];
|
||
return this.Select();
|
||
}
|
||
//默认返回值,工作流组件返回True,功能模块返回False。
|
||
return (WorkFlowPage != null);
|
||
}
|
||
|
||
#region 方法 -> 加载下拉框
|
||
public void BindDropDownList_SERVERPART(int COMMODITY_ID = 0)
|
||
{
|
||
SERVERPART_ID.Items.Clear();
|
||
|
||
if (!string.IsNullOrEmpty(Request["SERVERPART_ID"]))
|
||
{
|
||
Business.SERVERPART _SERVERPART = new Business.SERVERPART(Transaction);
|
||
_SERVERPART.AddSearchParameter("SERVERPART_ID", Request["SERVERPART_ID"].ToDecrypt());
|
||
_SERVERPART.AddSearchParameter("PROVINCE_CODE", Request["PROVINCE_CODE"].ToDecrypt());
|
||
if (_SERVERPART.Search())
|
||
{
|
||
SERVERPART_ID.Items.Add(new ListItemEx() { Text = _SERVERPART.SERVERPART_NAME,
|
||
Value = _SERVERPART.SERVERPART_ID.ToString(), Selected = true });
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 保存事件
|
||
//OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理
|
||
//e.CancelDataAction 来处理是否取消该动作;
|
||
//失败的原因可以用Page.Alert()传递到页面
|
||
public override void OnDataAction_BeforeSave(DataActionEventArgs<Business.COMMODITY> e)
|
||
{
|
||
Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction);
|
||
//商品已存在于服务区,不允许重复新增
|
||
int ResultCode = _COMMODITY.IsDuplicateBarcode(COMMODITY_ID.Text, COMMODITY_BARCODE.Text.Trim(),
|
||
SERVERPART_ID.SelectedValue, BUSINESSTYPE.SelectedValue, PROVINCE_CODE.Text, _BUSINESSTYPE,
|
||
ProvinceID, WholeServerpartID, GoodsProvinceCode);
|
||
switch (ResultCode)
|
||
{
|
||
case 1:
|
||
throw new Exception("注意:该商品条码已存在于" + SERVERPART_ID.SelectedItem.Text + "或正在办理流程!请验证后重新录入!");
|
||
case 2:
|
||
throw new Exception("注意:该商品条码已存在于统一定价类中!请验证后重新录入!");
|
||
}
|
||
|
||
|
||
e.CurrObject.PROVINCE_CODE = Request["PROVINCE_CODE"].ToDecryptInt32();
|
||
e.CurrObject.COMMODITY_STATE = 1;
|
||
e.CurrObject.COMMODITY_PURCHASEPRICE = e.CurrObject.COMMODITY_RETAILPRICE;
|
||
if (!string.IsNullOrEmpty(COMMODITY_ORI.SelectedValue))
|
||
e.CurrObject.COMMODITY_GRADE = COMMODITY_ORI.SelectedItem.Text;
|
||
base.OnDataAction_BeforeSave(e);
|
||
}
|
||
|
||
public override void OnDataAction_AfterSave(DataActionEventArgs<Business.COMMODITY> e)
|
||
{
|
||
bool Changed = false;
|
||
Business.COMMODITYTYPE _COMMODITYTYPE = new Business.COMMODITYTYPE(this.Transaction);
|
||
_COMMODITYTYPE.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue);
|
||
if (_COMMODITYTYPE.Select())
|
||
{
|
||
Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction);
|
||
_COMMODITY.COMMODITY_ID = CurrObject.COMMODITY_ID;
|
||
if (_COMMODITY.Select())
|
||
{
|
||
if (_COMMODITY.COMMODITY_CODE == null)
|
||
{
|
||
_COMMODITY.COMMODITY_CODE = new Business.COMMODITY(Transaction).GetCommodityCode(
|
||
_COMMODITY.PROVINCE_CODE.ToString());
|
||
COMMODITY_CODE.Text = _COMMODITY.COMMODITY_CODE;
|
||
Changed = true;
|
||
}
|
||
if (Changed)
|
||
{
|
||
_COMMODITY.Update();
|
||
}
|
||
}
|
||
}
|
||
|
||
base.OnDataAction_AfterSave(e);
|
||
}
|
||
#endregion
|
||
|
||
public override bool Delete(bool AutoBindData = true)
|
||
{
|
||
return base.Delete(AutoBindData);
|
||
}
|
||
|
||
#region 方法 -> 加载商品列表类型
|
||
public void LoadRTCommodityType(int COMMODITY_ID = 0)
|
||
{
|
||
COMMODITY_TYPE.Items.Clear();
|
||
Business.COMMODITYTYPE _COMMODITYTYPE = new Business.COMMODITYTYPE(this.Transaction);
|
||
_COMMODITYTYPE.BindingDropDownListMaterial(null,"-1", COMMODITY_TYPE.Items,"", 0, true, false, true);
|
||
if (CurrObject.COMMODITY_TYPE != null)
|
||
{
|
||
COMMODITY_TYPE.SelectedValue = CurrObject.COMMODITY_TYPE.ToString();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 产生商品条码
|
||
public void CreateBarCode()
|
||
{
|
||
#region 查询商品对应省份
|
||
string ProvinceCode = "";
|
||
if (!string.IsNullOrWhiteSpace(Request["PROVINCE_CODE"]))
|
||
{
|
||
if (Request["PROVINCE_CODE"] != _PROVINCE_CODE.ToEncrypt())
|
||
{
|
||
ProvinceCode = Business.CommonHelper.GetProvinceCode(Request["PROVINCE_CODE"].ToDecryptInt32(), Transaction);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (string.IsNullOrWhiteSpace(Page.PassportInfo.ProvinceCode))
|
||
{
|
||
DataTable UserTable = new FrameWork.Business.User(Transaction).ExecuteDataTable(
|
||
"SELECT USER_MOBILEPHONE,USER_PROVINCE,PROVINCE_UNIT FROM PLATFORM_FRAMEWORK.T_USER WHERE User_ID = " + Page.PassportInfo.ID);
|
||
if (UserTable.Rows.Count > 0)
|
||
{
|
||
ProvinceCode = UserTable.Rows[0]["USER_PROVINCE"].ToString();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ProvinceCode = Page.PassportInfo.ProvinceCode;
|
||
}
|
||
}
|
||
if (!string.IsNullOrWhiteSpace(ProvinceCode) && ProvinceCode != Business.CommonHelper.GetConfigValue("PROVINCE_CODE"))
|
||
{
|
||
ProvinceCode = "_" + ProvinceCode;
|
||
}
|
||
#endregion
|
||
|
||
int LastCode = 0;
|
||
string BarCode = string.Empty;
|
||
if (COMMODITY_ID.Text != "" && COMMODITY_ID.Text != "0")
|
||
{
|
||
Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction);
|
||
_COMMODITY.COMMODITY_ID = int.Parse(COMMODITY_ID.Text);
|
||
if (_COMMODITY.Select(ProvinceCode))
|
||
{
|
||
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 SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e)
|
||
{
|
||
Business.SERVERPART _SERVERPART = new Business.SERVERPART(this.Transaction);
|
||
_SERVERPART.SERVERPART_ID = int.Parse(e.Argument);
|
||
if (_SERVERPART.Select())
|
||
{
|
||
e.SetValue(PROVINCE_CODE, _SERVERPART.PROVINCE_CODE.ToString());
|
||
BUSINESSTYPE.Items.Clear();
|
||
new Business.COMMODITY(Transaction).BindingDropDownListMaterial(
|
||
BUSINESSTYPE.Items, "", int.Parse(SERVERPART_ID.SelectedValue));
|
||
e.SetDropDownListEx(BUSINESSTYPE);
|
||
}
|
||
else
|
||
{
|
||
e.ExcuteClientScript(Page.GetAlertStr("请先设置对应的服务区省份编码!"));
|
||
}
|
||
|
||
}
|
||
|
||
protected void COMMODITY_BARCODE_CallBackSetControl(object sender, ClientSetEventArgs e)
|
||
{
|
||
Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction);
|
||
//商品已存在于服务区,不允许重复新增
|
||
int ResultCode = _COMMODITY.IsDuplicateBarcode(COMMODITY_ID.Text, COMMODITY_BARCODE.Text.Trim(),
|
||
SERVERPART_ID.SelectedValue, BUSINESSTYPE.SelectedValue, PROVINCE_CODE.Text, _BUSINESSTYPE,
|
||
ProvinceID, WholeServerpartID, GoodsProvinceCode);
|
||
switch (ResultCode)
|
||
{
|
||
case 1:
|
||
throw new Exception("注意:该商品条码已存在于" + SERVERPART_ID.SelectedItem.Text + "或正在办理流程!请验证后重新录入!");
|
||
case 2:
|
||
throw new Exception("注意:该商品条码已存在于统一定价类中!请验证后重新录入!");
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
}
|