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

280 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}