333 lines
15 KiB
C#
333 lines
15 KiB
C#
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("请先设置对应的服务区省份编码!"));
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|