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

442 lines
24 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.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.CoreFrameWork;
using SuperMap.RealEstate.Web.UI;
using SuperMap.RealEstate.Web.UI.WebControls;
using SuperMap.RealEstate.Web.Utility;
using HWRB = SuperMap.RealEstate.HighWay.Running.Business;
using HSB = SuperMap.RealEstate.HighWay.Storage.Business;
using CMB = SuperMap.RealEstate.Coop.Merchant.Business;
using WorkFlowBusiness = SuperMap.RealEstate.WorkFlow.Instance.Business;
namespace SuperMap.RealEstate.HighWay.Compents.SpecialCommodity
{
public partial class Default : UserControl<Running.Business.HIGHWAYPROINST>
{
//流程实例
Running.Business.HIGHWAYPROINST _HighWayProInst = null;
protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["PROVINCE_CODE"].ToString();
#region ->
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
return;
//获取组件带入的参数,用于传递给页面判断流程是商品新增?商品调价?信息修改?
string RequestParameter = "";
if (!string.IsNullOrEmpty(WorkFlowGuid))
{
WorkFlow.Support.Business.Component _Component = new WorkFlow.Support.Business.Component(Transaction);
_Component.AddSearchParameter("COMPONENT_GUID", WorkFlowGuid);
if (_Component.Search())
{
if (_Component.Component_Url.Contains("?"))
{
foreach (string RequestStr in _Component.Component_Url.Split('?')[1].Split('&'))
{
RequestParameter += "&" + RequestStr.Split('=')[0] + "=" + RequestStr.Split('=')[1].ToEncrypt();
switch (RequestStr.Split('=')[0].ToUpper())
{
case "PROINST_TYPE":
PROINST_TYPE.Text = RequestStr.Split('=')[1];
break;
}
}
}
}
}
if (this.ModifyType == ModifyTypeEnum.ReadOnlyVisible || ModifyType == ModifyTypeEnum.ReadOnly)
{
GridViewEx2.Columns[1].Visible = false;
Proinst_fieldset.Visible = false;
}
GridViewEx1.SelectingWithInit<Running.Business.COMMODITY>(ObjectDataSource1, GridPageEx1,
DictionaryHelper.GetDictionary(Transaction, "BUSINESSTYPE"),
DictionaryHelper.GetDictionary(Transaction, "COMMODITYSTATE").AsNewKeys("COMMODITY_STATE"),
DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE"));
GridViewEx2.SelectingWithInit<CMB.PROINST>(ObjectDataSource2, GridPageEx2,
DictionaryHelper.GetDictionary(Transaction, "OPERATION_TYPE").AsNewKeys("PROINST_TYPE"));
//工具条按钮事件
//GridViewEx1.SetOpenControl(ButtonNew, "/HighWay/Compents/SpecialCommodity/COMMODITYPage.aspx?HIGHWAYPROINST_ID=" +
// _HighWayProInst.HIGHWAYPROINST_ID.ToEncrypt() + RequestParameter);
//设置回车焦点按钮
Page.SetControlClientAction(ButtonSearch);
}
protected override void OnInit(EventArgs e)
{
Common.PageHelper.CreateHeaderStyle(Page);
_HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page);
base.ButtonVisible = false;
base.OnInit(e);
}
//在此加入界面的数据初始化(Page_Load之前)如DropDownList的数据源绑定等
public override void InitializeWebControl()
{
//加载对应的数据
}
#endregion
#region ->
public override bool LoadData()
{
return true;
}
#endregion
#region ->
public override bool Save(bool AutoBindData = true)
{
if (new Running.Business.MODIFYFROMSTORAGE(Transaction).GetCount("WHERE HIGHWAYPROINST_ID = " +
(_HighWayProInst.HIGHWAYPROINST_ID == null ? 0 : _HighWayProInst.HIGHWAYPROINST_ID) +
" AND TABLE_NAME = 'T_COMMODITY' AND FIELD_NAME = 'COMMODITY_ID'") == 0)
{
throw new Exception("注意:请填写商品信息然后转到下一环节!");
}
string _shopName = string.Empty;
foreach (HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE in (new HWRB.MODIFYFROMSTORAGE(_HighWayProInst)).FillCollection(
"WHERE HIGHWAYPROINST_ID =" + (_HighWayProInst.HIGHWAYPROINST_ID == null ? 0 : _HighWayProInst.HIGHWAYPROINST_ID)))
{
if (_MODIFYFROMSTORAGE.Table_Name == "T_COMMODITY" && _MODIFYFROMSTORAGE.Field_Name == "COMMODITY_ID")
{
Running.Business.COMMODITY _COMMODITY = new Running.Business.COMMODITY(this.Transaction);
_COMMODITY.COMMODITY_ID = int.Parse(_MODIFYFROMSTORAGE.Field_Value);
if (_COMMODITY.Select())
{
string _SHORTNAME = "";
HSB.SERVERPARTSHOP _SERVERPARTSHOP = new HSB.SERVERPARTSHOP(Transaction);
_SERVERPARTSHOP.AddSearchParameter("SERVERPART_ID", _COMMODITY.SERVERPART_ID);
_SERVERPARTSHOP.AddSearchParameter("SHOPTRADE", _COMMODITY.BUSINESSTYPE);
if (_SERVERPARTSHOP.Search())
{
_SHORTNAME = (!string.IsNullOrEmpty(_SERVERPARTSHOP.SHOPSHORTNAME) ?
_SERVERPARTSHOP.SHOPSHORTNAME : _SERVERPARTSHOP.SHOPNAME);
}
else
{
_SHORTNAME = DictionaryHelper.GetFieldEnumName("BUSINESSTYPE", _COMMODITY.BUSINESSTYPE.ToString(), Transaction);
}
if (string.IsNullOrEmpty(_shopName) || !_shopName.Contains(_SHORTNAME))
{
_shopName += (_shopName == "" ? "" : ",") + _SHORTNAME;
}
}
}
}
//增加门店和备注信息
if (_HighWayProInst != null)
{
WorkFlowBusiness.ProInst _ProInst = new WorkFlowBusiness.ProInst(Transaction);
_ProInst.ProInst_ID = _HighWayProInst.Proinst_ID;
if (_ProInst.Select())
{
_HighWayProInst.HIGHWAYPROINST_DESC = _shopName.TrimEnd(',') + "【" +
_ProInst.ProDef_Name.Replace("审批", "") + "】";
_HighWayProInst.Update();
}
}
return base.Save(AutoBindData);
}
#endregion
#region ->
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.Pagging<Running.Business.COMMODITY>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetOuterHtml(GridViewEx1, GridViewEx1.OuterHTML);
}
//查询
protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e)
{
GridViewEx1.Selecting<Running.Business.COMMODITY>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
}
protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e)
{
if (!string.IsNullOrEmpty(TextBox_Search.Text))
e.AddOrParams(GridViewSearch1, TextBox_Search.Text);
e.AddAndParams("1", 1);
//搜索选项的搜索条件过滤
e.SetOtherUserCustomWhereSqlString = "COMMODITY_ID IN (SELECT FIELD_VALUE FROM T_MODIFYFROMSTORAGE WHERE HIGHWAYPROINST_ID = " +
_HighWayProInst.HIGHWAYPROINST_ID + ")";
//排序
e.AddOrderByParams(GridViewOrderBy1);
}
#endregion
#region ->
//查询
protected void Proinst_Search_CallBackClick(object sender, ClientSetEventArgs e)
{
GridViewEx1.Selecting<CMB.PROINST>(ObjectDataSource2, GridPageEx2);
//设置UI变化
e.SetValue(GridViewEx2);
e.SetValue(GridPageEx2);
}
//翻页事件
protected void GridPageEx2_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.Pagging<CMB.PROINST>(ObjectDataSource2, GridPageEx2);
//设置UI变化
e.SetValue(GridViewEx2);
}
//查询SQL设置
protected void GridViewEx2_SelectMethodParameters(object sender, SelectMethodParametersArgs e)
{
//搜索选项的搜索条件过滤
//if (!string.IsNullOrEmpty(Proinst_Search.Text))
// e.AddOrParams(Proinst_GridViewSearch, Proinst_Search.Text);
//且搜索条件
//e.AddAndParams("PROINST_STATE", "5000");
e.AddAndParams("PROVINCE_CODE", _PROVINCE_CODE);
if (!string.IsNullOrEmpty(PROINST_TYPE.Text))
{
e.AddAndParams("PROINST_TYPE", PROINST_TYPE.Text);
}
if (_HighWayProInst.__ProInst != null && _HighWayProInst.__ProInst.Division_Code != null)
{
Storage.Business.SERVERPART _SERVERPART = new HSB.SERVERPART(Transaction);
_SERVERPART.AddSearchParameter("SERVERPART_CODE", _HighWayProInst.__ProInst.Division_Code_BaseValue);
if (_SERVERPART.Search())
{
e.SetOtherUserCustomWhereSqlString = "',' || SERVERPART_ID || ',' LIKE '%,' || " + _SERVERPART.SERVERPART_ID +
" || ',%' AND PROINST_STATE IN (5000,6000)";
}
else
{
e.AddAndParams("1", 2);
}
}
else
{
e.AddAndParams("1", 2);
}
//或搜索条件
//e.AddOrParams(字段名, 值);
//排序
e.AddOrderByParams("PROINST_ID", true);
}
#endregion
#region ->
protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string _Key_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["COMMODITY_ID"].ToEncrypt();
if (this.ModifyType == ModifyTypeEnum.ReadOnlyVisible || ModifyType == ModifyTypeEnum.ReadOnly)
{
e.Row.Attributes["onclick"] = null;
}
else
{
e.Row.Attributes["onclick"] = GridViewEx1.GetOpenPopDialogClientScript(
"/HighWay/Compents/SpecialCommodity/COMMODITYPage.aspx?ID=" + _Key_ID + "&HIGHWAYPROINST_ID=" +
_HighWayProInst.HIGHWAYPROINST_ID_Encrypt + "&ModifyType=" + this.ModifyType.ToString());
}
}
}
protected void GridViewEx2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CallBackButton _CallBack_Select = e.Row.FindControl("CallBack_Select") as CallBackButton;
Page.SetControlConfirm(_CallBack_Select, "您确认选择该记录,选择后将替换现有数据?");
Page.SetControlClientAction(_CallBack_Select, false);
if (!string.IsNullOrEmpty(e.Row.Cells[6].Text) && e.Row.Cells[6].Text.Length > 15)
{
e.Row.Cells[6].ToolTip = e.Row.Cells[6].Text;
e.Row.Cells[6].Text = e.Row.Cells[6].Text.Substring(0, 15) + "...";
}
if (!string.IsNullOrEmpty(e.Row.Cells[7].Text) && e.Row.Cells[7].Text.Length > 15)
{
e.Row.Cells[7].ToolTip = e.Row.Cells[7].Text;
e.Row.Cells[7].Text = e.Row.Cells[7].Text.Substring(0, 15) + "...";
}
switch (e.Row.Cells[e.Row.Cells.Count - 3].Text)
{
case "1000":
e.Row.Cells[e.Row.Cells.Count - 3].Text = "业务受理";
break;
case "5000":
e.Row.Cells[e.Row.Cells.Count - 3].Text = "业务待审";
_CallBack_Select.Enabled = true;
break;
case "6000":
e.Row.Cells[e.Row.Cells.Count - 3].Text = "业务审核";
break;
case "9000":
e.Row.Cells[e.Row.Cells.Count - 3].Text = "业务审结";
break;
}
}
}
#endregion
#region ->
protected void CallBack_Select_CallBackClick(object sender, ClientSetEventArgs e)
{
CallBackButton _button = (CallBackButton)sender;
GridViewRow _Row = (GridViewRow)_button.NamingContainer;
string _Key_ID = GridViewEx2.DataKeys[_Row.RowIndex][0].ToEncrypt();
using (CMB.PROINST _PROINST = new CMB.PROINST(this.Transaction))
{
Storage.Business.SERVERPART _SERVERPART = new HSB.SERVERPART(Transaction);
_SERVERPART.AddSearchParameter("SERVERPART_CODE", _HighWayProInst.__ProInst.Division_Code_BaseValue);
_PROINST.PROINST_ID_Encrypt = _Key_ID;
if (_PROINST.Select() && _SERVERPART.Search())
{
_HighWayProInst.ExecuteNonQuery(@"DELETE FROM HIGHWAY_RUNNING.T_COMMODITY A WHERE EXISTS (
SELECT 1 FROM HIGHWAY_RUNNING.T_MODIFYFROMSTORAGE B WHERE A.COMMODITY_ID = B.Field_Value AND
B.TABLE_NAME = 'T_COMMODITY' AND B.HIGHWAYPROINST_ID = " + _HighWayProInst.HIGHWAYPROINST_ID + ")", null);
_HighWayProInst.ExecuteNonQuery("DELETE FROM HIGHWAY_RUNNING.T_MODIFYFROMSTORAGE WHERE HIGHWAYPROINST_ID = " +
_HighWayProInst.HIGHWAYPROINST_ID, null);
DataTable _DataTable = _HighWayProInst.ExecuteDataTable(@"SELECT
WM_CONCAT(RELATIONTABLES_ID) AS RELATIONTABLES_ID,WM_CONCAT(NEXTTABLE_ID) AS PROINST_ID
FROM HIGHWAY_STORAGE.T_RELATIONTABLES
WHERE FORMATTABLE_NAME = 'T_HIGHWAYPROINST' AND NEXTUSER_NAME = 'COOP_MERCHANT' AND
NEXTTABLE_NAME = 'T_PROINST' AND FORMATTABLE_ID = " + _HighWayProInst.HIGHWAYPROINST_ID);
if (_DataTable.Rows.Count > 0 && _DataTable.Rows[0][0].ToString() != "")
{
_HighWayProInst.ExecuteNonQuery("DELETE FROM HIGHWAY_STORAGE.T_RELATIONTABLES WHERE RELATIONTABLES_ID IN (" +
_DataTable.Rows[0][0].ToString() + ")", null);
_PROINST.ExecuteNonQuery("UPDATE COOP_MERCHANT.T_PROINST SET PROINST_STATE = 5000 WHERE PROINST_ID IN (" +
_DataTable.Rows[0][1].ToString() + ")", null);
}
List<HSB.SERVERPARTSHOP> SERVERPARTSHOPList = new HSB.SERVERPARTSHOP(Transaction).FillCollection(
"WHERE SERVERPART_ID = " + _SERVERPART.SERVERPART_ID + " AND SERVERPARTSHOP_ID IN (" +
_PROINST.SERVERPARTSHOP_ID + ")");
if (SERVERPARTSHOPList.Count > 0)
{
//获取在审批中的商品数据
DataTable dtRCommodity = new HWRB.COMMODITY(Transaction).FillDataTable(
"WHERE SERVERPART_ID = " + _SERVERPART.SERVERPART_ID + " AND BUSINESSTYPE IN (" +
(string.IsNullOrEmpty(SERVERPARTSHOPList[0].SHOPTRADE) ? "0" : SERVERPARTSHOPList[0].SHOPTRADE) + ")");
//获取正式库商品数据
DataTable dtSCommodity = new Storage.Business.COMMODITY(Transaction).FillDataTable(
"WHERE SERVERPART_ID = " + _SERVERPART.SERVERPART_ID + " AND BUSINESSTYPE IN (" +
(string.IsNullOrEmpty(SERVERPARTSHOPList[0].SHOPTRADE) ? "0" : SERVERPARTSHOPList[0].SHOPTRADE) + ")");
#region
foreach (CMB.COMMODITY_RUNNING _COMMODITY_RUNNING in new CMB.COMMODITY_RUNNING(Transaction).FillCollection(
"WHERE PROINST_ID = " + _PROINST.PROINST_ID))
{
//先判断有没有在办理流程的商品
DataRow[] DataRowList = dtRCommodity.Select("COMMODITY_CODE = '" + _COMMODITY_RUNNING.COMMODITY_CODE + "'");
HWRB.COMMODITY _COMMODITY = new HWRB.COMMODITY(Transaction);
if (DataRowList.Length > 0)
{
_COMMODITY.COMMODITY_ID = int.Parse(DataRowList[0]["COMMODITY_ID"].ToString());
_COMMODITY.COMMODITY_ORIPRICE = double.Parse(DataRowList[0]["COMMODITY_CURRPRICE"].ToString()).Round(6);
_COMMODITY.ADDTIME = DateTime.Parse(DataRowList[0]["ADDTIME"].ToString());
_COMMODITY.COMMODITY_SYMBOL = DataRowList[0]["COMMODITY_SYMBOL"].ToString();
}
else
{
//再判断有没有审核通过的商品
DataRowList = dtSCommodity.Select("COMMODITY_CODE = '" + _COMMODITY_RUNNING.COMMODITY_CODE + "'");
if (DataRowList.Length > 0)
{
_COMMODITY.COMMODITY_ID = int.Parse(DataRowList[0]["COMMODITY_ID"].ToString());
_COMMODITY.COMMODITY_ORIPRICE = double.Parse(DataRowList[0]["COMMODITY_CURRPRICE"].ToString()).Round(6);
_COMMODITY.ADDTIME = DateTime.Parse(DataRowList[0]["ADDTIME"].ToString());
}
else
{
_COMMODITY.ADDTIME = _COMMODITY_RUNNING.OPERATE_DATE;
}
}
_COMMODITY.COMMODITY_TYPE = _COMMODITY_RUNNING.USERDEFINEDTYPE_NAME;
_COMMODITY.COMMODITY_CODE = _COMMODITY_RUNNING.COMMODITY_CODE;
_COMMODITY.COMMODITY_NAME = _COMMODITY_RUNNING.COMMODITY_NAME;
_COMMODITY.COMMODITY_BARCODE = _COMMODITY_RUNNING.COMMODITY_BARCODE;
_COMMODITY.COMMODITY_UNIT = _COMMODITY_RUNNING.COMMODITY_UNIT;
_COMMODITY.COMMODITY_RULE = _COMMODITY_RUNNING.COMMODITY_RULE;
_COMMODITY.COMMODITY_EN = _COMMODITY_RUNNING.COMMODITY_EN;
_COMMODITY.COMMODITY_ORI = _COMMODITY_RUNNING.COMMODITY_ORI;
_COMMODITY.COMMODITY_GRADE = _COMMODITY_RUNNING.COMMODITY_GRADE == null ?
"" : _COMMODITY_RUNNING.COMMODITY_GRADE.ToString();
_COMMODITY.COMMODITY_RETAILPRICE = _COMMODITY_RUNNING.COMMODITY_RETAILPRICE;
_COMMODITY.COMMODITY_CURRPRICE = _COMMODITY_RUNNING.COMMODITY_RETAILPRICE;
_COMMODITY.COMMODITY_PURCHASEPRICE = _COMMODITY_RUNNING.COMMODITY_PURCHASEPRICE;
_COMMODITY.COMMODITY_MEMBERPRICE = _COMMODITY_RUNNING.COMMODITY_MEMBERPRICE;
_COMMODITY.BUSINESSTYPE = string.IsNullOrEmpty(SERVERPARTSHOPList[0].SHOPTRADE) ?
0 : int.Parse(SERVERPARTSHOPList[0].SHOPTRADE);
_COMMODITY.ISBULK = _COMMODITY_RUNNING.ISBULK;
_COMMODITY.METERINGMETHOD = _COMMODITY_RUNNING.METERINGMETHOD;
_COMMODITY.COMMODITY_STATE = _COMMODITY_RUNNING.COMMODITY_STATE;
_COMMODITY.OPERATE_DATE = _COMMODITY_RUNNING.OPERATE_DATE;
_COMMODITY.COMMODITY_DESC = _COMMODITY_RUNNING.COMMODITY_DESC;
_COMMODITY.COMMODITY_HOTKEY = _COMMODITY_RUNNING.COMMODITY_HOTKEY;
_COMMODITY.USERDEFINEDTYPE_ID = _COMMODITY_RUNNING.USERDEFINEDTYPE_ID;
_COMMODITY.SERVERPART_ID = _SERVERPART.SERVERPART_ID;
_COMMODITY.PROVINCE_CODE = _SERVERPART.PROVINCE_CODE;
_COMMODITY.Insert();
//插入对应的关联关系
using (HWRB.MODIFYFROMSTORAGE _MODIFYFROMSTORAGE = new HWRB.MODIFYFROMSTORAGE(this.Transaction))
{
_MODIFYFROMSTORAGE.AddSearchParameter("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID);
_MODIFYFROMSTORAGE.AddSearchParameter("Table_Name", "T_COMMODITY");
_MODIFYFROMSTORAGE.AddSearchParameter("FIELD_VALUE", _COMMODITY.COMMODITY_ID);
if (!_MODIFYFROMSTORAGE.Search())
{
_MODIFYFROMSTORAGE.ResetProperty();
_MODIFYFROMSTORAGE.HIGHWAYPROINST_ID = _HighWayProInst.HIGHWAYPROINST_ID;
_MODIFYFROMSTORAGE.Field_Value = _COMMODITY.COMMODITY_ID.ToString();
_MODIFYFROMSTORAGE.Table_Name = "T_COMMODITY";
_MODIFYFROMSTORAGE.Field_Name = "COMMODITY_ID";
_MODIFYFROMSTORAGE.Insert();
}
}
}
#endregion
CurrObject.ExecuteNonQuery(string.Format(@"INSERT INTO HIGHWAY_STORAGE.T_RELATIONTABLES (
RELATIONTABLES_ID,FORMATTABLE_ID,FORMATTABLE_NAME,FORMATUSER_NAME,
NEXTTABLE_ID,NEXTTABLE_NAME,NEXTUSER_NAME,STAFF_ID,STAFF_NAME,RELATE_DATE)
VALUES (HIGHWAY_STORAGE.SEQ_RELATIONTABLES.NEXTVAL,{0},'T_HIGHWAYPROINST','HIGHWAY',
{1},'T_PROINST','COOP_MERCHANT',{2},'{3}',SYSDATE)", _HighWayProInst.HIGHWAYPROINST_ID,
_PROINST.PROINST_ID, Page.PassportInfo.ID, Page.PassportInfo.UserName), null);
_PROINST.PROINST_STATE = 6000;
_PROINST.Update();
e.ExcuteClientScript(Page.GetAlertStr("选择成功!", 3));
}
}
}
GridViewEx1.Selecting<Running.Business.COMMODITY>(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
GridViewEx2.Selecting<CMB.PROINST>(ObjectDataSource2, GridPageEx2);
//设置UI变化
e.SetValue(GridViewEx2);
e.SetValue(GridPageEx2);
}
#endregion
}
}