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 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 lst = new List(); 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 } }