248 lines
11 KiB
C#
248 lines
11 KiB
C#
using System;
|
||
using System.Data;
|
||
using System.Web.UI;
|
||
using SuperMap.RealEstate.Web.UI;
|
||
using SuperMap.RealEstate.Web.UI.WebControls;
|
||
using StorageHighWay = SuperMap.RealEstate.HighWay.Storage.Business;
|
||
using HZQR.Common;
|
||
|
||
namespace SuperMap.RealEstate.SendRec.Storage
|
||
{
|
||
/// <summary>
|
||
/// T_CHECKCOMMODITY_盘存表 的WebUserControl
|
||
/// <summary>
|
||
public partial class CHECKCOMMODITY : UserControl<Business.CHECKCOMMODITY>
|
||
{
|
||
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)");
|
||
|
||
if (SERVERPART_ID.Items.Count > 0)
|
||
{
|
||
SERVERPART_ID.SelectedIndex = 1;
|
||
if (CHECKCOMMODITY_ID.Text == "")
|
||
{
|
||
int _CHECK_TYPE = 1;
|
||
if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"]))
|
||
{
|
||
_CHECK_TYPE = Request["SENDREC_TYPE"].TryParseToInt();
|
||
}
|
||
//获得最近一次的盘存
|
||
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 (!string.IsNullOrEmpty(Request["SENDREC_TYPE"]))
|
||
{
|
||
_CHECKCOMMODITY.AddSearchParameter("CHECK_TYPE", Request["SENDREC_TYPE"]);
|
||
}
|
||
else
|
||
{
|
||
_CHECKCOMMODITY.AddSearchParameter("CHECK_TYPE", 1);
|
||
}
|
||
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<Business.CHECKCOMMODITY> e)
|
||
{
|
||
//表示对应的盘存为 Excel导出
|
||
if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"]))
|
||
{
|
||
e.CurrObject.CHECK_TYPE = Convert.ToInt16(Request["SENDREC_TYPE"]);
|
||
}
|
||
else
|
||
{
|
||
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;
|
||
string WhereSQL = "";
|
||
if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"]))
|
||
{
|
||
_CHECK_TYPE = Request["SENDREC_TYPE"].TryParseToInt();
|
||
}
|
||
if (!string.IsNullOrWhiteSpace(CHECKDATE.Text.Trim()))
|
||
{
|
||
WhereSQL = " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD')";
|
||
}
|
||
//获得最近一次的盘存
|
||
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 + WhereSQL;
|
||
DataTable _dt = _CHECKCOMMODITY.ExecuteDataTable(StrSql);
|
||
if (_dt.Rows.Count > 0)
|
||
{
|
||
PRECHECKDATE.Text = _dt.Rows[0][0].ToString();
|
||
}
|
||
else
|
||
{
|
||
PRECHECKDATE.Text = "";
|
||
}
|
||
e.SetValue<TextBoxEx>(this);
|
||
}
|
||
}
|
||
|
||
protected void CHECKDATE_CallBackSetControl(object sender, ClientSetEventArgs e)
|
||
{
|
||
string AlertString = "";
|
||
int _CHECK_TYPE = 1;
|
||
if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"]))
|
||
{
|
||
_CHECK_TYPE = Request["SENDREC_TYPE"].TryParseToInt();
|
||
}
|
||
Business.CHECKCOMMODITY _CHECKCOMMODITY = new Business.CHECKCOMMODITY(this.Transaction);
|
||
if (_CHECKCOMMODITY.GetCount("WHERE CHECK_STATE = 0 AND CHECK_TYPE = " + _CHECK_TYPE +
|
||
" 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 CHECK_TYPE = " + _CHECK_TYPE + " 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 CHECK_TYPE = " + _CHECK_TYPE + " AND SERVERPART_ID = " +
|
||
SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD')") > 0)
|
||
{
|
||
PRECHECKDATE.Text = _CHECKCOMMODITY.FillCollection("WHERE CHECK_STATE = 1 AND 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 CHECK_TYPE = " + _CHECK_TYPE + " 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 CHECK_TYPE = " + _CHECK_TYPE + " AND SERVERPART_ID = " +
|
||
SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD')") > 0)
|
||
{
|
||
PRECHECKDATE.Text = _CHECKCOMMODITY.FillCollection("WHERE CHECK_STATE = 1 AND 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 CHECK_TYPE = " + _CHECK_TYPE + " AND SERVERPART_ID = " +
|
||
SERVERPART_ID.SelectedValue + " AND CHECKDATE < TO_DATE('" + CHECKDATE.Text.Split(' ')[0] + "','YYYY-MM-DD')") > 0)
|
||
{
|
||
PRECHECKDATE.Text = _CHECKCOMMODITY.FillCollection("WHERE CHECK_STATE = 1 AND 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));
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|