Files
N_XLXSBJ----MX/CLYLZDSQList.aspx.cs
T
2026-08-21 17:03:02 +08:00

427 lines
20 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.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GThinking.N_MODEL.Page;
using GThinking.N_WORKFLOW;
using System.Text;
using GThinking.N_MISPRO.Utility;
using GThinking.N_MISPRO;
using GThinking.N_MISPRO.Data;
using GThinking.N_PUBLIC2;
using System.Collections.Generic;
namespace GThinking.N_XLXSBJ
{
public partial class CLYLZDSQList : SingleGridBase
{
XLXSBJYLZD entity = new XLXSBJYLZD();
XLXSBJYLZD_M queryentity = new XLXSBJYLZD_M();
protected void Page_Load(object sender, EventArgs e)
{
this.UMID = 100860064;
this.UMName = "材料用量制定申请";
this.CurMaster = Master;
this.ModuleGV = grdContentGrid;
this.CurEntity = entity;
this.CurQueryEntity = queryentity;
this.sURLTarget = "CLYLZDSQInfo.aspx";
this.sQueryURLTarget = "CLYLZDSQQuery.aspx";
this.PageHeight = 500;
this.PageWidth = 700;
base.DataKeyNames = new string[] { "XLXSBJYLZD_SQDH", "XLXSBJYLZD_WPID" };
this.Master.EnableNewBtn = false;
this.Master.EnableCopyBtn = false;
if (!IsPostBack)
{
this.CurQueryEntity.FieldByName("SW").Value = "W";
}
base.InitPage();
if (!IsPostBack)
{
Master_OnStandardQuery(null, null);
}
}
#region 模板继承事件
protected override bool CanSubmit()
{
if (!base.CanSubmit()) return false;
string sSQDH = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim();
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select XLXSBJYLZD_WFID, XLXSBJYLZD_WPID from XLXSBJYLZD where XLXSBJYLZD_SQDH =:pXLXSBJYLZD_SQDH ");
SQL.ParamByName("pXLXSBJYLZD_SQDH").Value = sSQDH;
DataSet dsXLXSBJYLZD = dberp.OpenDataSet(SQL);
if (dsXLXSBJYLZD.Tables[0].Rows.Count > 0)
{
string sWFID = dsXLXSBJYLZD.Tables[0].Rows[0]["XLXSBJYLZD_WFID"].ToString().Trim();
string sWPID = dsXLXSBJYLZD.Tables[0].Rows[0]["XLXSBJYLZD_WPID"].ToString().Trim();
string sErrorMsg = "";
string sBZSWID = TWorkflow.Utils.WFGetBZSWID(sWFID, sWPID);
DataSet ds = new DataSet();
//“0020|派发”提交至“0030|制定”时,控制XLXSBJYLZDMX_ZDRGH不允许存在空值
if (sBZSWID.Equals("0020"))
{
XLXSBJYLZDEntity.IsCmpZDR(SQL, dberp, sSQDH, ref ds);
if (ds.Tables[0].Rows.Count > 0)
{
sErrorMsg = "制定人为空,不允许提交!";
ShowMessage(sErrorMsg);
return false;
}
}
//“0030|制定”提交至“0040|审核控制XLXSBJYLZDMX_XLXHID、XLXSBJYLZDMX_XLGGID、XLXSBJYLZDMX_XLBZID、XLXSBJYLZDMX_DYDJID都不允许为空
if (sBZSWID.Equals("0030"))
{
XLXSBJYLZDEntity.IsCmpXLBJCP(SQL, dberp, sSQDH, tSession.UserId, ref ds);
if (ds.Tables[0].Rows.Count > 0)
{
sErrorMsg = "修订型号、修订规格、修订标准、修订电压等级为空,不允许提交!";
ShowMessage(sErrorMsg);
return false;
}
}
//“0040|审核”提交至“0050|录入”时,控制定制标准长度大于1
if (sBZSWID.Equals("0040"))
{
if (XLXSBJYLZDEntity.ExistDZBZ(sSQDH))
{
ShowMessage("修订标准必须选择自定义定制标准!");
return false;
}
}
//“0050|录入”提交至“0060|确认”时,需控制“修改型号”、“修改规格”、“修改标准”、“修改电压”对应XLXSCLQD记录都处于“ZZZZ|结束”状态,才允许提交至“0060|确认”环节
if (sBZSWID.Equals("0050"))
{
XLXSBJYLZDEntity.IsCmpXLXSCLQD(SQL, dberp, sSQDH, ref ds);
if (ds.Tables[0].Rows.Count > 0)
{
sErrorMsg = "报价产品【" + ds.Tables[0].Rows[0]["XLXHID"].ToString().Trim() + "," + ds.Tables[0].Rows[0]["XLGGID"].ToString().Trim() + "," + ds.Tables[0].Rows[0]["XLBZ_XLBZLXMC"].ToString().Trim() + "," + ds.Tables[0].Rows[0]["DYDJID"].ToString().Trim() + "】";
sErrorMsg += "还在" + _curWorkFlow.UserInfo.GetUserNames(ds.Tables[0].Rows[0]["XLXSCLQD_WFAWAITER"].ToString()) + "待处理,未提交至结束,此用量制定申请记录不允许提交!";
ShowMessage(sErrorMsg);
return false;
}
}
//“0055|核价”提交时控制XLXSBJYLZDMX_XLXHID、XLXSBJYLZDMX_XLGGID、XLXSBJYLZDMX_XLBZID、XLXSBJYLZDMX_DYDJID都不允许为空
if (sBZSWID.Equals("0055"))
{
XLXSBJYLZDEntity.IsCmpXLBJCP(SQL, dberp, sSQDH, ref ds);
if (ds.Tables[0].Rows.Count > 0)
{
sErrorMsg = "修订型号、修订规格、修订标准、修订电压等级为空,不允许提交!";
ShowMessage(sErrorMsg);
return false;
}
}
}
return true;
}
protected override void Master_OnStandardQuery(object sender, EventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
base.Master_OnStandardQuery(sender, e);
entity.GridDataBind(grdContentGrid, tSession);
}
protected override void moduleGV_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
grdContentGrid.SelectedIndex = -1;
base.moduleGV_PageIndexChanging(sender, e);
}
protected override bool Master_AfterDeleteAction(object sender, EventArgs e)
{
if (!base.Master_AfterDeleteAction(sender, e)) { return false; }
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
entity.GridDataBind(grdContentGrid, tSession);
grdContentGrid.SelectedIndex = -1;
return true;
}
protected override void moduleGV_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.Cells[0].Text.Trim() != "") && (e.Row.Cells[0].Text.Trim() != " "))
{
try
{
e.Row.Cells[0].Text = this._curWorkFlow.GetWPName(grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJYLZD_WFID"].ToString().Trim(), e.Row.Cells[0].Text.Trim());
}
catch
{
e.Row.Cells[0].Text = "";
}
}
if ((e.Row.Cells[e.Row.Cells.Count - 3].Text.Trim() != "") && (e.Row.Cells[e.Row.Cells.Count - 3].Text.Trim() != " "))
{
try
{
e.Row.Cells[e.Row.Cells.Count - 3].Text = this._curWorkFlow.UserInfo.GetUserNames(e.Row.Cells[e.Row.Cells.Count - 3].Text.Trim());
}
catch
{
e.Row.Cells[e.Row.Cells.Count - 3].Text = "";
}
}
if ((e.Row.Cells[e.Row.Cells.Count - 4].Text.Trim() != "") && (e.Row.Cells[e.Row.Cells.Count - 4].Text.Trim() != " "))
{
try
{
e.Row.Cells[e.Row.Cells.Count - 4].Text = this._curWorkFlow.UserInfo.GetUserNames(e.Row.Cells[e.Row.Cells.Count - 4].Text.Trim());
}
catch
{
e.Row.Cells[e.Row.Cells.Count - 4].Text = "";
}
}
LinkPageParam.AddString("XLXSBJYLZD_SQDH", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJYLZD_SQDH"].ToString().Trim());
LinkPageParam.AddString("WFID", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJYLZD_WFID"].ToString().Trim());
LinkPageParam.AddString("WFINST", grdContentGrid.DataKeys[e.Row.RowIndex]["XLXSBJYLZD_WFINST"].ToString());
}
base.moduleGV_RowDataBound(sender, e);
}
protected override void Master_wfOnGetParamName(ref List<string> ParamList)
{
base.Master_wfOnGetParamName(ref ParamList);
ParamList.Add("制定人");
ParamList.Add("材料价缺失");
}
protected override void Master_wfOnGetParamEvent(TWorkflow Sender, string ParamName, ref string Value, ref bool Succeess)
{
base.Master_wfOnGetParamEvent(Sender, ParamName, ref Value, ref Succeess);
if (ParamName == "制定人")
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add("select distinct XLXSBJYLZDMX_ZDRGH from XLXSBJYLZDMX ");
SQL.Add(" left join XLXSBJYLZD on XLXSBJYLZD_SQDH = XLXSBJYLZDMX_SQDH ");
SQL.Add(" where 1=1 ");
SQL.Add(" and XLXSBJYLZD_WFID=:pWFID and XLXSBJYLZD_WFINST=:pWFINST ");
SQL.ParamByName("pWFID").Value = Sender.WFID;
SQL.ParamByName("pWFINST").Value = Sender.WFInst;
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
List<string> lst = new List<string>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (!ds.Tables[0].Rows[i]["XLXSBJYLZDMX_ZDRGH"].ToString().Trim().Equals("") && !lst.Contains(ds.Tables[0].Rows[i]["XLXSBJYLZDMX_ZDRGH"].ToString().Trim()))
{
lst.Add(ds.Tables[0].Rows[i]["XLXSBJYLZDMX_ZDRGH"].ToString().Trim());
}
}
for (int i = 0; i < lst.Count; i++)
{
Value = Value + lst[i].ToString().Trim() + ",";
}
Value = Value.TrimStart(',').TrimEnd(',');
}
else
{
Value = "";
}
Succeess = true;
}
if (ParamName == "材料价缺失")
{
TDatabase dberp = TContextDatabases.GetDatabase("DBERP");
TSQL SQL = new TSQL(dberp);
SQL.Clear();
SQL.Add(@"select top 1 'Y' from XLXSBJYLZDMX
where XLXSBJYLZDMX_SQDH=:pSQDH
and isnull(XLXSBJYLZDMX_BZDBZ,' ')<>'Y'
and XLXSBJYLZDMX_HSCLCB<=0");
SQL.ParamByName("pSQDH").Value = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim();
DataSet ds = dberp.OpenDataSet(SQL);
if (ds.Tables[0].Rows.Count > 0)
{
Value = "Y";
}
else
{
Value = "N";
}
Succeess = true;
}
}
protected override void Master_wfAfterActionEvent(TWorkflow Sender, TWFAction Action, bool ActionIsDone)
{
base.Master_wfAfterActionEvent(Sender, Action, ActionIsDone);
if (!ActionIsDone) return;
Sender.dbe.ExecSQL(string.Format("update XLXSBJYLZD set XLXSBJYLZD_WFID = '{0}', XLXSBJYLZD_WPID = '{1}', XLXSBJYLZD_WFAWAITER= '{2}',XLXSBJYLZD_WFHANDLER = '{3}',XLXSBJYLZD_WFINST = {4},XLXSBJYLZD_ACTNAME = '{5}' where XLXSBJYLZD_SQDH='{6}'",
Sender.WFID, Sender.WPID, Sender.Awaiter, Sender.Handler, Sender.WFInst, Sender.GetWFActionName(Action),
grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim()));
//“0040|审核”提交至“0050|录入”时,根据XLXSBJYLZDMX_XLXHID、XLXSBJYLZDMX_XLGGID、XLXSBJYLZDMX_XLBZID、XLXSBJYLZDMX_DYDJID
//自动生成“100860014|线缆销售报价材料用量”记录(注意:XLXSCLQD_BJDID、XLXSCLQD_BJDXH两字段赋值为XLXSBJYLZD_BJDID、XLXSBJYLZDMX_BJDXH),记录待处理人为XLXSBJYLZDMX_ZDRGH对应用户
string sCurZT = TWorkflow.Utils.WFGetBZSWID(Sender.WFID, Sender.WPID);
string sSQDH = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim();
TSQL SQL = new TSQL(Sender.dbe);
if (sCurZT.Equals("0050") && Action == TWFAction.wfaSubmit)
{
string sErrorMsg = "";
XLXSBJYLZDEntity.InsXLXSCLQD(SQL, Sender.dbe, sSQDH, tSession, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ActionIsDone = false;
throw new Exception(sErrorMsg);
}
}
//提交至“0055|确认”后,更新XLXSBJYLZD_HJBZ
if (sCurZT.Equals("0055") && Action == TWFAction.wfaSubmit)
{
string sErrorMsg = "";
XLXSBJYLZDEntity.UpdateHZBZ(SQL, Sender.dbe, sSQDH, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ActionIsDone = false;
throw new Exception(sErrorMsg);
}
}
//提交至“0060|确认”后,更新XLXSBJYLZD_WCSJ=当前时间
if (sCurZT.Equals("0060") && Action == TWFAction.wfaSubmit)
{
string sErrorMsg = "";
XLXSBJYLZDEntity.UpdateWCSJ(SQL, Sender.dbe, sSQDH, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ActionIsDone = false;
throw new Exception(sErrorMsg);
}
}
//0030转交时,将明细“制定人”为当前用户的明细记录的制定人更新成转交到的那个人
if (sCurZT.Equals("0030") && Action == TWFAction.wfaDeliver)
{
string sErrorMsg = "";
string sWaiter = Sender.Awaiter.TrimEnd(',');
sWaiter = sWaiter.TrimStart(',');
string sDeliver = "";
foreach (String sGH in sWaiter.Split(','))
{
sDeliver = sGH;
}
if (!sDeliver.Equals(""))
{
XLXSBJYLZDEntity.UpdateZDR(SQL, Sender.dbe, sSQDH, sDeliver, tSession.UserId, ref sErrorMsg);
if (!sErrorMsg.Equals(""))
{
ActionIsDone = false;
throw new Exception(sErrorMsg);
}
}
}
}
protected override void moduleGV_Sorting(object sender, GridViewSortEventArgs e)
{
base.InitEntityByCondition();
entity.EntityTable.QuerySelSql = GetQuerySQL();
base.moduleGV_Sorting(sender, e);
}
protected override void BeforeDelete(TDatabase db, ref bool ActionIsDone)
{
entity.Param.Add("XLXSBJYLZD_SQDH", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim());
TSQL sSQL = new TSQL(db);
sSQL.Clear();
sSQL.Params.Clear();
sSQL.Add("delete from XLXSBJYLZDMX where XLXSBJYLZDMX_SQDH =:XLXSBJYLZDMX_SQDH");
sSQL.ParamByName("XLXSBJYLZDMX_SQDH").Value = grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim();
db.ExecSQL(sSQL);
base.BeforeDelete(db, ref ActionIsDone);
}
protected override void AfterDelete(TDatabase db, ref bool ActionIsDone)
{
base.AfterDelete(db, ref ActionIsDone);
}
protected override void BeforeAttach()
{
attDoc.WorkTableName = "XLXSBJYLZD";
attDoc.UpdCondition = string.Format("XLXSBJYLZD_SQDH='{0}'", grdContentGrid.DataKeys[grdContentGrid.SelectedIndex]["XLXSBJYLZD_SQDH"].ToString().Trim());
base.BeforeAttach();
}
#endregion
#region 自定义事件
private string GetQuerySQL()
{
StringBuilder sSQL = new StringBuilder();
sSQL.AppendLine("select ");
sSQL.AppendLine(" XLXSBJYLZD_SQDH,XLXSBJYLZD_SQRGH,XLXSBJYLZD_SQSJ,");
sSQL.AppendLine(" rtrim(XLXSBJYLZD_SQRGH) ||'|'||rtrim(RSRYJBXX_RYMC) as XLXSBJYLZD_SQR, ");
sSQL.AppendLine(" XLXSBJYLZD_WCSJ,XLXSBJYLZD_BJDID,XLXSBJYLZD_BZ,");
sSQL.AppendLine(" XLXSBJYLZD_FJS,XLXSBJYLZD_DOCGRPID,");
sSQL.AppendLine(" XLXSBJYLZD_WHR,XLXSBJYLZD_WHRID,XLXSBJYLZD_WHSJ,");
sSQL.AppendLine(" XLXSBJYLZD_WFID,XLXSBJYLZD_WPID,XLXSBJYLZD_WFINST,XLXSBJYLZD_ACTNAME,XLXSBJYLZD_WFAWAITER,XLXSBJYLZD_WFHANDLER ");
sSQL.AppendLine(" from XLXSBJYLZD ");
sSQL.AppendLine(" LEFT JOIN RSRYJBXX ON RSRYJBXX_GH = XLXSBJYLZD_SQRGH ");
sSQL.AppendLine(" where 1=1 ");
if (this.CurQueryEntity.FieldByName("SW").Value.ToString().Trim().Equals("W"))
{
sSQL.AppendLine(" and " + _curWorkFlow.GetWhereAgent("XLXSBJYLZD", tSession.UserId.Trim(), "XLXSBJYLZD_WFAWAITER", "XLXSBJYLZD_WFID", "XLXSBJYLZD_WPID"));
}
else if (this.CurQueryEntity.FieldByName("SW").Value.ToString().Trim().Equals("H"))
{
sSQL.AppendLine(" and (XLXSBJYLZD_WFHANDLER like :pUSRNAME or XLXSBJYLZD_WFHANDLER like :pUSRID) ");
entity.Param.Add("pUSRNAME", string.Format("%,{0},%", tSession.UserName.Trim()));
entity.Param.Add("pUSRID", string.Format("%,{0},%", tSession.UserId.Trim()));
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WFAWAITER").Value.Trim()))
{
sSQL.AppendLine(" and XLXSBJYLZD_WFAWAITER like :pWFAWITER ");
entity.Param.Add("pWFAWITER", string.Format("%,{0},%", CurQueryEntity.FieldByName("WFAWAITER").Value.Trim()));
}
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("WPID").Value.Trim()))
{
sSQL.AppendLine(" and " + CMISproDataBase.GetWhereEqual("XLXSBJYLZD_WPID", CurQueryEntity.FieldByName("WPID").Value.Trim()));
}
//报价单号
if (!string.IsNullOrEmpty(CurQueryEntity.FieldByName("BJDID").Value.Trim()))
{
sSQL.AppendLine(" and XLXSBJYLZD_BJDID like :pXLXSBJYLZD_BJDID ");
entity.Param.Add("pXLXSBJYLZD_BJDID", "%" + CurQueryEntity.FieldByName("BJDID").Value.Trim() + "%");
}
sSQL.AppendLine(CMISproDataBase.GetTimeConditionSQL("XLXSBJYLZD_SQSJ", CurQueryEntity.FieldByName("SQRQS").Value.Trim(),
CurQueryEntity.FieldByName("SQRQZ").Value.Trim(), DateTimeType.dtTime, DateTimeType.dtTime));
sSQL.AppendLine(" order by XLXSBJYLZD_SQDH desc ");
return sSQL.ToString();
}
#endregion
}
}