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 StorageHighWay = SuperMap.RealEstate.HighWay.Storage.Business; namespace SuperMap.RealEstate.SendRec.Storage { /// /// T_CHECKCOMMODITY_盘存表 的WebUserControl /// public partial class CHECKCOMMODITY : UserControl { protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { } private void InitWebControls() { SERVERPART_ID.Clear(); new StorageHighWay.SERVERPART(Transaction).BindingDropDownList(SERVERPART_ID.Items, "", Page.PassportInfo.CityAuthority, false, 0, " AND STATISTICS_TYPE IN (1000,1001,1010,4000)"); if (SERVERPART_ID.Items.Count > 0) { SERVERPART_ID.SelectedIndex = 1; if (CHECKCOMMODITY_ID.Text == "") { int _CHECK_TYPE = 1; //获得最近一次的盘存 Business.CHECKCOMMODITY _CHECKCOMMODITY = new Business.CHECKCOMMODITY(this.Transaction); string StrSql = "SELECT MAX(CHECKDATE) FROM SENDREC_STORAGE.T_CHECKCOMMODITY WHERE SERVERPART_ID=" + SERVERPART_ID.SelectedValue + " AND CHECK_TYPE = " + _CHECK_TYPE; DataTable _dt = _CHECKCOMMODITY.ExecuteDataTable(StrSql); if (_dt.Rows.Count > 0) { PRECHECKDATE.Text = _dt.Rows[0][0].ToString(); } else { PRECHECKDATE.Text = ""; } } } } //载入数据 public override bool LoadData() { InitWebControls(); //盘存时间 //CHECKDATE.Text = System.DateTime.Now.ToString(); CHECKPERSON.Text = Page.PassportInfo.Name; PASSPORT_ID.Text = Page.PassportInfo.ID.ToString(); CHECK_STATE.Text = "0"; //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 if (!String.IsNullOrEmpty(Request["ID"])) { CurrObject.CHECKCOMMODITY_ID_Encrypt = Request["ID"]; return this.Select(); } else { //加载状态为0的数据--根据当前的状态 Business.CHECKCOMMODITY _CHECKCOMMODITY = new Business.CHECKCOMMODITY(this.Transaction); _CHECKCOMMODITY.AddSearchParameter("CHECK_STATE", 0); _CHECKCOMMODITY.AddSearchParameter("PASSPORT_ID", Page.PassportInfo.ID); if (_CHECKCOMMODITY.Search()) { BindObjectToControl(_CHECKCOMMODITY); CurrObject.CopyFrom(_CHECKCOMMODITY); //CurrObject = _CHECKCOMMODITY; return true; } return false; } //默认返回值,工作流组件返回True,功能模块返回False。 //return (WorkFlowPage != null); } //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { //表示对应的盘存为 Excel导出 e.CurrObject.CHECK_TYPE = 1; base.OnDataAction_BeforeSave(e); } public override bool Save(bool AutoBindData = true) { //一个月只能一次 try { if (PRECHECKDATE.Text != "") { if (DateTime.Parse(CHECKDATE.Text) <= DateTime.Parse(PRECHECKDATE.Text)) { throw new Exception("盘存时间一定要大于上次时间"); } } return base.Save(AutoBindData); } catch (Exception ex) { Page.Alert(ex.Message); return false; } } protected void SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e) { if (CHECKCOMMODITY_ID.Text == "") { int _CHECK_TYPE = 1; //获得最近一次的盘存 Business.CHECKCOMMODITY _CHECKCOMMODITY = new Business.CHECKCOMMODITY(this.Transaction); string StrSql = "SELECT MAX(CHECKDATE) FROM SENDREC_STORAGE.T_CHECKCOMMODITY WHERE SERVERPART_ID=" + e.Argument + " AND CHECK_TYPE = " + _CHECK_TYPE; DataTable _dt = _CHECKCOMMODITY.ExecuteDataTable(StrSql); if (_dt.Rows.Count > 0) { PRECHECKDATE.Text = _dt.Rows[0][0].ToString(); } else { PRECHECKDATE.Text = ""; } e.SetValue(this); } } protected void CHECKDATE_CallBackSetControl(object sender, ClientSetEventArgs e) { string AlertString = ""; int _CHECK_TYPE = 1; Business.CHECKCOMMODITY _CHECKCOMMODITY = new Business.CHECKCOMMODITY(this.Transaction); if (_CHECKCOMMODITY.GetCount("WHERE CHECK_STATE = 0 AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + (CHECKCOMMODITY_ID.Text == "" ? "" : " AND CHECKCOMMODITY_ID <> " + CHECKCOMMODITY_ID.Text)) > 0) { e.ExcuteClientScript(Page.GetAlertStr("当前有未完成盘存的记录,请完成盘存后再进行此次盘存!")); return; } else if (_CHECKCOMMODITY.GetCount("WHERE CHECK_STATE = 1 AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + " AND TRUNC(CHECKDATE) = TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD')") > 0) { if (_CHECKCOMMODITY.GetCount("WHERE CHECK_STATE = 1 AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text + "','YYYY-MM-DD HH24:MI:SS')") > 0) { PRECHECKDATE.Text = _CHECKCOMMODITY.FillCollection("WHERE CHECK_TYPE = " + _CHECK_TYPE + " AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD') ORDER BY CHECKDATE DESC")[0].CHECKDATE.ToString(); } else { PRECHECKDATE.Text = ""; } e.SetValue(PRECHECKDATE); AlertString = "已存在当前盘存时间,保存后将删除该时间对应的盘存信息!"; } else if (_CHECKCOMMODITY.GetCount("WHERE CHECK_STATE = 1 AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + " AND TRUNC(CHECKDATE) > TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD')") > 0) { if (_CHECKCOMMODITY.GetCount("WHERE CHECK_STATE = 1 AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD')") > 0) { PRECHECKDATE.Text = _CHECKCOMMODITY.FillCollection("WHERE CHECK_TYPE = " + _CHECK_TYPE + " AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD') ORDER BY CHECKDATE DESC")[0].CHECKDATE.ToString(); } else { PRECHECKDATE.Text = ""; } e.SetValue(PRECHECKDATE); AlertString += "盘存时间大于最近盘存时间,保存后将删除之后的盘存信息!"; } else { if (_CHECKCOMMODITY.GetCount("WHERE CHECK_STATE = 1 AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD')") > 0) { PRECHECKDATE.Text = _CHECKCOMMODITY.FillCollection("WHERE CHECK_TYPE = " + _CHECK_TYPE + " AND SERVERPART_ID = " + SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD') ORDER BY CHECKDATE DESC")[0].CHECKDATE.ToString(); } else { PRECHECKDATE.Text = ""; } e.SetValue(PRECHECKDATE); } if (AlertString != "") { e.ExcuteClientScript(Page.GetAlertStr(AlertString)); } } } }