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

248 lines
11 KiB
C#
Raw Permalink 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.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));
}
}
}
}