/// <summary> /// 更新清单头 /// </summary> /// <param name="BoqNo"></param> /// <param name="BoqName"></param> /// <param name="TotalAmount"></param> /// <param name="Tran"></param> private void Update(ContractBoqChange ChangeData, String OperationBy, SqlTransaction Tran) { List <CmdParameter> cmds = new List <CmdParameter>(); cmds.Add(new CmdParameter("@ChangeNo", ChangeData.ChangeNo)); cmds.Add(new CmdParameter("@Remark", ChangeData.Remark)); cmds.Add(new CmdParameter("@OperationBy", OperationBy)); cmds.Add(new CmdParameter("@Infor", "", System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@Ok", 0, System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@ProjectNo", ChangeData.ProjectNo)); cmds.Add(new CmdParameter("@ChangeCode", ChangeData.ChangeCode)); cmds.Add(new CmdParameter("@ChangeName", ChangeData.ChangeName)); cmds.Add(new CmdParameter("@Type", ChangeData.Type)); cmds.Add(new CmdParameter("@ChangeDate", ChangeData.ChangeDate)); cmds.Add(new CmdParameter("@ChangeAmount", ChangeData.ChangeAmount)); cmds.Add(new CmdParameter("@BoiNum", ChangeData.BoiNum)); cmds.Add(new CmdParameter("@Description", ChangeData.Description)); ParameterResult pResult = new ParameterResult() { Parameters = cmds.ToArray() }; HdDbCmdManager.GetInstance().Execute("ERP_BoQ.dbo.Gl_Cntrct_Change_Update", CommandType.StoredProcedure, pResult.Parameters, Tran); if (!Convert.ToBoolean(pResult["@Ok"])) { throw new FaultException <ApplicationServiceError>(new ApplicationServiceError() { ErrorMessage = pResult["@Infor"].ToString() }); } }
/// <summary> /// 获取扩展对象 /// </summary> /// <param name="ChangeNo">变更单No</param> /// <returns></returns> public ProjectBoqChangeEx GetChangeEx(String ChangeNo) { //查找Info对象 ContractBoqChangeInfo chInfo = ChangedList.ToList().Find(m => m.ChangeNo == ChangeNo); //获取变更明细 ContractBoqChange boqChange = projectBoqChangeService.Get(ChangeNo); //加工成扩展对象 ProjectBoqChangeEx boqChangeEx = HDAutoMapper.DynamicMap <ProjectBoqChangeEx>(boqChange); boqChangeEx.ChangeInfo = chInfo; return(boqChangeEx); }
/// <summary> /// 变更数据加载 /// </summary> public void Load(String ChangeNo) { ContractBoqChange changeData = projectBoqChangeService.Get(ChangeNo); BoqChangeEx = HDAutoMapper.DynamicMap <ProjectBoqChangeEx>(changeData); BoqChangeEx.ChangeInfo = ChangedList.ToList().FirstOrDefault(m => m.ChangeNo == ChangeNo); List <ContractBoqChangeDetailEx> lstEx = HDAutoMapper.DynamicMap <List <ContractBoqChangeDetailEx> >(changeData.Details); lstEx.ForEach(m => { BoqChangeEx.DetailExList.Add(m); }); }
public ContractBoqChange Save(ContractBoqChange BoqChange) { if (String.IsNullOrEmpty(BoqChange.ChangeNo)) { //新增 HdDbCmdManager.GetInstance().ExecuteTran(Tran => { Insert(BoqChange, ServiceContext.LoginName, Tran); BoqChange.Details.ForEach(m => { m.ChangeNo = BoqChange.ChangeNo; InsertDetail(m, ServiceContext.LoginName, Tran); }); }); } else { //临时变量 ContractBoqChangeDetail temp = null; //修改 ContractBoqChange oldData = Get(BoqChange.ChangeNo); HdDbCmdManager.GetInstance().ExecuteTran(Tran => { Update(BoqChange, ServiceContext.LoginName, Tran); List <ContractBoqChangeDetail> lstDelete = oldData.Details.FindAll(m => !BoqChange.Details.Exists(n => n.ChangeDetailNo == m.ChangeDetailNo)); List <ContractBoqChangeDetail> lstAdd = BoqChange.Details.FindAll(m => String.IsNullOrEmpty(m.ChangeDetailNo)); List <ContractBoqChangeDetail> lstDisable = BoqChange.Details.FindAll(m => (temp = oldData.Details.FirstOrDefault(n => n.ChangeDetailNo == m.ChangeDetailNo)) != null && temp.StatId == 1 && m.StatId == 0); List <ContractBoqChangeDetail> lstEnable = BoqChange.Details.FindAll(m => (temp = oldData.Details.FirstOrDefault(n => n.ChangeDetailNo == m.ChangeDetailNo)) != null && temp.StatId == 0 && m.StatId == 1); List <ContractBoqChangeDetail> lstUpdate = BoqChange.Details.FindAll(m => (temp = oldData.Details.FirstOrDefault(n => n.ChangeDetailNo == m.ChangeDetailNo)) != null && temp.StatId == m.StatId); lstDelete.ForEach(m => { DeleteDetail(m.ChangeDetailNo, ServiceContext.LoginName, Tran); }); lstAdd.ForEach(m => { m.ChangeNo = BoqChange.ChangeNo; InsertDetail(m, ServiceContext.LoginName, Tran); }); lstUpdate.ForEach(m => { UpdateDetail(m, ServiceContext.LoginName, Tran); }); lstEnable.ForEach(m => { ChangeDataStat(m.ChangeDetailNo, 1, ServiceContext.LoginName, Tran); }); lstDisable.ForEach(m => { ChangeDataStat(m.ChangeDetailNo, 0, ServiceContext.LoginName, Tran); }); }); } return(Get(BoqChange.ChangeNo)); }
public ContractBoqChange Get(string ChangeNo) { ContractBoqChange boqResult = HdDbCmdManager.GetInstance().QueryForFirstRow <ContractBoqChange>(CHANGE_BY_CHANGENO, System.Data.CommandType.Text, new CmdParameter[] { new CmdParameter("@ChangeNo", ChangeNo) }); if (boqResult != null) { boqResult.Details = HdDbCmdManager.GetInstance().QueryForList <ContractBoqChangeDetail>(CHANGE_DETAIL_BY_CHANGENO, System.Data.CommandType.Text, new CmdParameter[] { new CmdParameter("@ChangeNo", boqResult.ChangeNo) }); } return(boqResult); }
/// <summary> /// 保存数据 /// </summary> public void Save() { ContractBoqChange changeData = new ContractBoqChange(); ObjectHelper.CopyOneToTwo(BoqChangeEx, changeData); changeData.Details = new List <ContractBoqChangeDetail>(); changeData.Details.AddRange(BoqChangeEx.DetailExList.ToList().ConvertAll <ContractBoqChangeDetail>(m => { ContractBoqChangeDetail detail = new ContractBoqChangeDetail(); ObjectHelper.CopyOneToTwo(m, detail); return(detail); })); ContractBoqChange result = projectBoqChangeService.Save(changeData); if (String.IsNullOrEmpty(changeData.ChangeNo)) { ContractBoqChangeInfo info = HDAutoMapper.DynamicMap <ContractBoqChangeInfo>(result); BoqChangeEx.ChangeNo = result.ChangeNo; BoqChangeEx.ChangeInfo = info; ChangedList.Add(info); } ObjectHelper.CopyOneToTwo <ContractBoqChangeInfo>(HDAutoMapper.DynamicMap <ContractBoqChangeInfo>(result), BoqChangeEx.ChangeInfo); }