/// <summary> /// 发布 /// </summary> /// <param name="m"></param> public void Release(WBSBoq m) { Commit(m.WbsNo, ServiceContext.LoginName); List <CmdParameter> cmds = new List <CmdParameter>(); cmds.Add(new CmdParameter("@WbsNo", m.WbsNo)); cmds.Add(new CmdParameter("@ReleaseBy", m.ReleaseBy)); cmds.Add(new CmdParameter("@ReleaseDate", m.ReleaseDate)); cmds.Add(new CmdParameter("@OperationBy", ServiceContext.LoginName)); cmds.Add(new CmdParameter("@Infor", "", System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@Ok", 0, System.Data.ParameterDirection.Output)); ParameterResult pResult = new ParameterResult() { Parameters = cmds.ToArray() }; HdDbCmdManager.GetInstance().Execute("ERP_BoQ.dbo.Gl_Cntrct_Wbs_Release", CommandType.StoredProcedure, pResult.Parameters); if (!Convert.ToBoolean(pResult["@Ok"])) { throw new FaultException <ApplicationServiceError>(new ApplicationServiceError() { ErrorMessage = pResult["@Infor"].ToString() }); } }
///// <summary> ///// 快速插入关联关系-用于关联关系初始化导入 ///// </summary> ///// <param name="ProjectNo"></param> ///// <param name="BidNo"></param> ///// <param name="WbsName"></param> ///// <param name="TotalAmount"></param> ///// <param name="AddList"></param> ///// <param name="UpdateList"></param> ///// <param name="DeleteItemNoList"></param> ///// <param name="AddRelation"></param> ///// <param name="UpdateRelation"></param> ///// <param name="DeleteRelation"></param> ///// <returns></returns> //public WBSBoq Save(string ProjectNo, string BidNo, String WbsName, decimal TotalAmount // , List<WBSline> AddList, List<WBSline> UpdateList, List<string> DeleteItemNoList // , List<WBSline_boi> AddRelation, List<WBSline_boi> UpdateRelation, List<WBSline_boi> DeleteRelation) //{ // WBSBoq result = new WBSBoq(); // String strWbsNo = null; // strWbsNo = GetWbsNo(ProjectNo); // //修改 // if (UpdateList != null) // { // UpdateList.ForEach(m => // { // UpdateWBSline(m, ServiceContext.LoginName); // }); // } // //新增关联关系 // if (AddRelation != null) // { // AddRelation.ForEach(m => // { // m.WbsNo = strWbsNo; // if (String.IsNullOrEmpty(m.WBSLineNo)) // { // WBSline line = result.WBSlineList.Find(n => n.WbsSysCode == m.WbsSysCode); // m.WBSLineNo = line != null ? line.WbsLineNo : null; // } // //result.AllRelationList.Add(AddWBSlineBoi(strWbsNo, m, ServiceContext.LoginName)); // }); // //剔除类中DBField = false的属性名 // List<string> ingorePropetiesName = new List<string>(); // System.Reflection.PropertyInfo[] properties = typeof(WBSline_boi).GetProperties(); // foreach (System.Reflection.PropertyInfo item in properties) // { // var classAttribute = (DBFieldAttribute)Attribute.GetCustomAttribute(item, typeof(DBFieldAttribute)); // if (classAttribute != null && !classAttribute.IsField) //剔除Dbfield = False的属性 // { // ingorePropetiesName.Add(item.Name); // } // if (item.Name == "id" || item.Name == "Id" || item.Name == "ID") //如果存在ID属性,同样剔除 // { // ingorePropetiesName.Add(item.Name); // } // if (item.Name == "TypeOfDataModified") //如果存在TypeOfDataModified属性,同样剔除 // { // ingorePropetiesName.Add("TypeOfDataModified"); // } // } // //批量插入 // HdSqlCommand.GetInstance().BulkInsert<WBSline_boi>("ERP_BoQ.dbo.gl_cntrct_wbsline_boi", AddRelation, ingorePropetiesName.ToArray()); // } // return result; //} /// <summary> /// 修改清单头的状态字段 /// </summary> /// <param name="boq"></param> public void ChangeStat(WBSBoq boq) { Commit(boq.WbsNo, ServiceContext.LoginName); List <CmdParameter> cmds = new List <CmdParameter>(); cmds.Add(new CmdParameter("@WbsNo", boq.WbsNo)); cmds.Add(new CmdParameter("@ApprovalBy", boq.ApprovalBy)); cmds.Add(new CmdParameter("@ApprovalDate", boq.ApprovalDate)); cmds.Add(new CmdParameter("@ApprovalStat", boq.ApprovalStat)); cmds.Add(new CmdParameter("@ExecuteStat", boq.ExecuteStat)); cmds.Add(new CmdParameter("@WfdefId", boq.WfdefId)); cmds.Add(new CmdParameter("@RefCategory", boq.RefCategory)); cmds.Add(new CmdParameter("@inWorkflow", boq.inWorkflow)); cmds.Add(new CmdParameter("@OperationBy", ServiceContext.LoginName)); cmds.Add(new CmdParameter("@Infor", "", System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@Ok", 0, System.Data.ParameterDirection.Output)); ParameterResult pResult = new ParameterResult() { Parameters = cmds.ToArray() }; HdDbCmdManager.GetInstance().Execute("ERP_BoQ.dbo.Gl_Cntrct_Wbs_ChangeBusinessStat", CommandType.StoredProcedure, pResult.Parameters); if (!Convert.ToBoolean(pResult["@Ok"])) { throw new FaultException <ApplicationServiceError>(new ApplicationServiceError() { ErrorMessage = pResult["@Infor"].ToString() }); } }
/// <summary> /// 获取清单No数据 /// </summary> /// <param name="ProjectNo"></param> /// <returns></returns> private String GetWbsNo(String ProjectNo, SqlTransaction tran = null) { String strWbsNo = null; WBSBoq boqHeader = HdDbCmdManager.GetInstance().QueryForFirstRow <WBSBoq>(WBS_BY_PROJECTNO, CommandType.Text, new CmdParameter[] { new CmdParameter("@ProjectNo", ProjectNo) }, tran); if (boqHeader != null) { strWbsNo = boqHeader.WbsNo; } return(strWbsNo); }
/// <summary> /// 新增 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BarAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (LstAmount.Find(m => m.ProjectNo == AppConfig.SelectProject.ProjectNo && !m.Fixed) != null) { XtraMessageBox.Show("该项目存在未发布的数据,请确认发布后再进行填报", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } WBSBoq originWbsInfo = client.GetWbsInfo(AppConfig.SelectProject.ProjectNo); if (originWbsInfo == null || (originWbsInfo != null && string.IsNullOrEmpty(originWbsInfo.WbsNo))) { XtraMessageBox.Show("找不到该项目的WBS清单,请编写WBS清单后再新增进度计量数据", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } PrjAmount newData = new PrjAmount(); newData.ProjectNo = AppConfig.SelectProject.ProjectNo; newData.WbsNo = originWbsInfo.WbsNo; newData.PrepareBy = LoginInfor.LoginName; int MaxPeriod = client.GetMaxPeriod(AppConfig.SelectProject.ProjectNo) + 1; frmAddNew form = new frmAddNew(MaxPeriod); if (form.ShowDialog() == DialogResult.OK) { newData.Periods = form.Periods; newData.PeriodsName = form.PeriodsName; newData.PrjamountName = String.Format("{0}-第{1}期计量", AppConfig.SelectProject.ProjectName, newData.Periods); newData.CreateDate = form.CreateDate; newData.PrepareDate = form.CreateDate; DoWork("新增数据中,请稍后......", "新增数据", () => { client.Add(newData, LoginInfor.LoginName); }, (ex) => { if (ex == null) { LoadData(); } }); } }
/// <summary> /// 获取Boq /// </summary> /// <param name="ProjectNo">项目No</param> /// <returns></returns> public WBSBoq GetByProjectNo(string ProjectNo) { WBSBoq WBSResult = HdDbCmdManager.GetInstance().QueryForFirstRow <WBSBoq>(WBS_BY_PROJECTNO, System.Data.CommandType.Text, new CmdParameter[] { new CmdParameter("@ProjectNo", ProjectNo) }); if (WBSResult != null) { string strOrderString = " ORDER BY WbsSysCode ASC"; WBSResult.WBSlineList = HdDbCmdManager.GetInstance().QueryForList <WBSline>(WBSLINE_BY_BOQNO + strOrderString, System.Data.CommandType.Text, new CmdParameter[] { new CmdParameter("@WbsNo", WBSResult.WbsNo) }); WBSResult.AllRelationList = HdDbCmdManager.GetInstance().QueryForList <WBSline_boi>(RELATION_BY_BOQNO, System.Data.CommandType.Text, new CmdParameter[] { new CmdParameter("@WbsNo", WBSResult.WbsNo) }); } return(WBSResult); }
public WBSBoq Save(string ProjectNo, string BidNo, String WbsName, decimal TotalAmount , List <WBSline> AddList, List <WBSline> UpdateList, List <string> DeleteItemNoList , List <WBSline_boi> AddRelation, List <WBSline_boi> UpdateRelation, List <WBSline_boi> DeleteRelation) { WBSBoq result = new WBSBoq(); String strWbsNo = null; HdDbCmdManager.GetInstance().ExecuteTran(Tran => { strWbsNo = GetWbsNo(ProjectNo, Tran); if (String.IsNullOrEmpty(strWbsNo)) { strWbsNo = InsertBoq(ProjectNo, BidNo, WbsName, TotalAmount, ServiceContext.LoginName, Tran); } else { UpdateBoq(BidNo, strWbsNo, WbsName, TotalAmount, ServiceContext.LoginName, Tran); } //删除关联关系 if (DeleteRelation != null) { DeleteRelation.ForEach(m => { DeleteWBSlineBoi(m.ItemNo, m.WBSLineNo, ServiceContext.LoginName, Tran); }); } //删除明细 if (DeleteItemNoList != null) { DeleteItemNoList.ForEach(m => { DeleteWBSline(m, ServiceContext.LoginName, Tran); }); } //修改关联关系 if (UpdateRelation != null) { UpdateRelation.ForEach(m => { if (DeleteRelation.Find(n => n.WBSLineNo == m.WBSLineNo && n.ItemNo == m.ItemNo) == null) { UpdateWBSlineBoi(m, ServiceContext.LoginName, Tran); } }); } //修改 if (UpdateList != null) { UpdateList.ForEach(m => { UpdateWBSline(m, ServiceContext.LoginName, Tran); }); } //新增WBS清单项 if (AddList != null) { AddList.ForEach(m => { result.WBSlineList.Add(InsertWBSline(strWbsNo, m, ServiceContext.LoginName, Tran)); }); } //新增关联关系 if (AddRelation != null) { AddRelation.ForEach(m => { m.WbsNo = strWbsNo; if (String.IsNullOrEmpty(m.WBSLineNo)) { WBSline line = result.WBSlineList.Find(n => n.WbsSysCode == m.WbsSysCode); m.WBSLineNo = line != null ? line.WbsLineNo : null; } result.AllRelationList.Add(AddWBSlineBoi(strWbsNo, m, ServiceContext.LoginName, Tran)); }); } }); return(result); }