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

333 lines
15 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.Data;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.CoreFrameWork;
using SuperMap.RealEstate.ServiceModel;
using SuperMap.RealEstate.Utility;
using SuperMap.RealEstate.Web.UI;
using SuperMap.RealEstate.Web.UI.WebControls;
using SuperMap.RealEstate.Web.Utility;
using Storage = SuperMap.RealEstate.HighWay.Storage;
using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business;
namespace SuperMap.RealEstate.HighWay.Storage
{
/// <summary>
/// T_COMMODITY_商品管理 的WebUserControl
/// <summary>
public partial class COMMODITY : UserControl<Business.COMMODITY>
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
return;
if (!String.IsNullOrEmpty(Request["ID"]))
{
BindDropDownList_Supplier(int.Parse(Request["ID"].ToDecrypt()));
}
}
//在此加入界面的数据初始化(Page_Load之前)如DropDownList的数据源绑定等
public override void InitializeWebControl()
{
//绑定下拉框
DictionaryHelper.BindingDropDownList("COMMODITYGRADE", COMMODITY_GRADE.Items,this.Transaction);
//是否有效
DictionaryHelper.BindingDropDownList("ISVALID", COMMODITY_STATE.Items, this.Transaction);
//是否散称
DictionaryHelper.BindingDropDownList("ISBULK", ISBULK.Items, this.Transaction);
//绑定称重方式
DictionaryHelper.BindingDropDownList("METERINGMETHOD", METERINGMETHOD.Items, this.Transaction);
//
DictionaryHelper.BindingDropDownList("BUSINESSTYPE", BUSINESSTYPE.Items, this.Transaction);
}
//载入数据
public override bool LoadData()
{
//加载对应的
ADDTIME.Text = System.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);
}
//OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理
//e.CancelDataAction 来处理是否取消该动作;
//失败的原因可以用Page.Alert()传递到页面
public override void OnDataAction_BeforeSave(DataActionEventArgs<Business.COMMODITY> e)
{
base.OnDataAction_BeforeSave(e);
if (int.Parse((new Business.COMMODITY(this.Transaction)).ExecuteDataTable(
"select COUNT(COMMODITY_CODE) from HIGHWAY_STORAGE.V_ALL_COMMODITY WHERE COMMODITY_BARCODE = '" + COMMODITY_BARCODE.Text + "'" +
(String.IsNullOrEmpty(Request["ID"]) ? "" : " AND COMMODITY_ID != " + CurrObject.COMMODITY_ID) +
" AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue).Rows[0][0].ToString()) > 0)
{
throw new Exception("注意:该商品条码已存在于您的服务区!请验证后重新录入!");
}
// else if (int.Parse((new Business.COMMODITY()).ExecuteDataTable(@"select COUNT(COMMODITY_CODE) from HIGHWAY_STORAGE.V_COMMODITY
// WHERE COMMODITYTYPE_NAME = '统一定价类' AND COMMODITY_BARCODE = '" + COMMODITY_BARCODE.Text + "'" +
// (String.IsNullOrEmpty(Request["ID"]) ? "" : " AND COMMODITY_ID != " + CurrObject.COMMODITY_ID)).Rows[0][0].ToString()) > 0)
// {
// throw new Exception("注意:该商品条码已存在于统一定价类中!请验证后重新录入!");
// }
}
public override void OnDataAction_AfterSave(DataActionEventArgs<Business.COMMODITY> e)
{
bool Changed = false;
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Business.COMMODITYTYPE(this.Transaction);
_COMMODITYTYPE.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue);
if (_COMMODITYTYPE.Select())
{
Storage.Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction);
_COMMODITY.COMMODITY_ID = CurrObject.COMMODITY_ID;
if (_COMMODITY.Select())
{
if (_COMMODITY.COMMODITY_CODE == null)
{
CurrObject.COMMODITY_CODE = _COMMODITY.COMMODITY_CODE = _COMMODITY.GetCommodityCode(_COMMODITY.PROVINCE_CODE.ToString());
Changed = true;
}
if (Changed)
_COMMODITY.Update();
}
}
SaveRTCommodityType(CurrObject.COMMODITY_ID.Value);
SaveDropDownList_Supplier(CurrObject.COMMODITY_ID.Value);
base.OnDataAction_AfterSave(e);
}
#region ->
public void BindDropDownList_SERVERPART(int COMMODITY_ID = 0)
{
SERVERPART_ID.Items.Clear();
foreach (Storage.Business.SERVERPART _SERVERPART in (new Storage.Business.SERVERPART(this.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(int COMMODITY_ID = 0)
{
#region
//CheckBoxList_COMMODITY_TYPE.Items.Clear();
//Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE();
//foreach (Storage.Business.COMMODITYTYPE _StorageCOMMODITYTYPE in _COMMODITYTYPE.FillCollection("where 1=1 "))
//{
// ListItem _ListItem = new ListItem();
// _ListItem.Text = _StorageCOMMODITYTYPE.COMMODITYTYPE_NAME;
// _ListItem.Value = _StorageCOMMODITYTYPE.COMMODITYTYPE_ID_Encrypt;
// if (COMMODITY_ID != 0)
// {
// using (Storage.Business.RTCOMMODITY _RTCOMMODITY = new Business.RTCOMMODITY())
// {
// if (_RTCOMMODITY.GetCount(" where COMMODITY_ID=" + COMMODITY_ID + " and COMMODITYTYPE_ID=" + _StorageCOMMODITYTYPE.COMMODITYTYPE_ID) > 0)
// {
// _ListItem.Selected = true;
// }
// else
// {
// _ListItem.Selected = false;
// }
// }
// }
// CheckBoxList_COMMODITY_TYPE.Items.Add(_ListItem);
//}
#endregion
COMMODITY_TYPE.Items.Clear();
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
_COMMODITYTYPE.BindingDropDownList(COMMODITY_TYPE.Items, "", false);
}
#endregion
#region ->
public void SaveRTCommodityType(int COMMODITY_ID = 0)
{
if (COMMODITY_ID == 0)
return;
foreach (Storage.Business.RTCOMMODITY _RTCOMMODITY in
(new Storage.Business.RTCOMMODITY(this.Transaction)).FillCollection("where COMMODITY_ID=" + COMMODITY_ID))
{
_RTCOMMODITY.Delete();
}
//foreach (ListItem _ListItem in CheckBoxList_COMMODITY_TYPE.Items)
//{
// if (_ListItem.Selected)
// {
// using (Storage.Business.RTCOMMODITY _RTCOMMODITY = new Storage.Business.RTCOMMODITY())
// {
// _RTCOMMODITY.COMMODITYTYPE_ID = _ListItem.Value.ToDecryptInt32();
// _RTCOMMODITY.COMMODITY_ID = COMMODITY_ID;
// _RTCOMMODITY.Insert();
// }
// }
//}
//using (Storage.Business.RTCOMMODITY _RTCOMMODITY = new Storage.Business.RTCOMMODITY(this.Transaction))
//{
// _RTCOMMODITY.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue);
// _RTCOMMODITY.COMMODITY_ID = COMMODITY_ID;
// _RTCOMMODITY.Insert();
//}
Storage.Business.COMMODITYTYPE _COMMODITYTYPE = new Storage.Business.COMMODITYTYPE(this.Transaction);
_COMMODITYTYPE.COMMODITYTYPE_ID = int.Parse(COMMODITY_TYPE.SelectedValue);
if (_COMMODITYTYPE.Select())
{
(new Storage.Business.COMMODITY(this.Transaction)).InsertIntoRTCommodity(_COMMODITYTYPE, COMMODITY_ID);
}
}
#endregion
#region ->
public string BindDropDownList_Supplier(int COMMODITY_ID = 0)
{
string SelValue = string.Empty;
SUPPLIER_ID.Items.Clear();
foreach (Storage.Business.SUPPLIER _StorageSUPPLIER in ((new Storage.Business.SUPPLIER(this.Transaction).FillCollection("where 1=1 "))))
{
ListItemEx _ListItem = new ListItemEx();
_ListItem.Text = _StorageSUPPLIER.SUPPLIER_NAME;
_ListItem.Value = _StorageSUPPLIER.SUPPLIER_ID_Encrypt;
//_ListItem.Selected = true;
SUPPLIER_ID.Items.Add(_ListItem);
//判断是否选择
if (COMMODITY_ID != 0)
{
using (Storage.Business.RTSUPPLIER _RTSUPPLIER = new Business.RTSUPPLIER(this.Transaction))
{
if (_RTSUPPLIER.GetCount(" where COMMODITY_ID=" + COMMODITY_ID + " and SUPPLIER_ID=" + _StorageSUPPLIER.SUPPLIER_ID) > 0)
{
SelValue += SelValue == string.Empty ? _StorageSUPPLIER.SUPPLIER_ID_Encrypt : "," + _StorageSUPPLIER.SUPPLIER_ID_Encrypt;
}
}
}
}
SUPPLIER_ID.SelectedValue = SelValue;
return SelValue;
}
#endregion
#region ->
public void SaveDropDownList_Supplier(int COMMODITY_ID = 0)
{
try
{
if (COMMODITY_ID == 0)
return;
foreach (Storage.Business.RTSUPPLIER _RTSUPPLIER in
(new Storage.Business.RTSUPPLIER(this.Transaction)).FillCollection("where COMMODITY_ID=" + COMMODITY_ID))
{
_RTSUPPLIER.Delete();
}
foreach (string SelectValue in SUPPLIER_ID.SelectedValue.Split(','))
{
if (SelectValue == "")
continue;
using (Storage.Business.RTSUPPLIER _RTSUPPLIER = new Business.RTSUPPLIER(this.Transaction))
{
_RTSUPPLIER.COMMODITY_ID = COMMODITY_ID;
_RTSUPPLIER.SUPPLIER_ID = SelectValue.ToDecryptInt32();
_RTSUPPLIER.Insert();
}
}
}
catch (Exception ex)
{
Page.Alert(ex.Message);
}
}
#endregion
#region ->
public void CreateBarCode()
{
string BarCode = string.Empty;
int LastCode = 0;
if (COMMODITY_ID.Text != "" && COMMODITY_ID.Text != "0")
{
Storage.Business.COMMODITY _COMMODITY = new Business.COMMODITY(this.Transaction);
_COMMODITY.COMMODITY_ID = int.Parse(COMMODITY_ID.Text);
if (_COMMODITY.Select())
{
BarCode = _COMMODITY.COMMODITY_CODE;
if (_COMMODITY.COMMODITY_BARCODE == null && _COMMODITY.COMMODITY_CODE != 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 = CurrObject.COMMODITY_BARCODE = BarCode + LastCode.ToString();
_COMMODITY.Update();
}
}
}
}
#endregion
protected void SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e)
{
Storage.Business.SERVERPART _SERVERPART = new Storage.Business.SERVERPART(this.Transaction);
_SERVERPART.SERVERPART_ID = int.Parse(e.Argument);
if (_SERVERPART.Select())
{
e.SetValue(PROVINCE_CODE, _SERVERPART.PROVINCE_CODE.ToString());
}
else
{
e.ExcuteClientScript(Page.GetAlertStr("请先设置对应的服务区省份编码!"));
}
}
}
}