Example #1
0
        /// <summary>
        /// 插入清单项
        /// </summary>
        /// <param name="BoqNo"></param>
        /// <param name="Detail"></param>
        /// <param name="OperationBy">操作人</param>
        /// <returns>No信息</returns>
        private ContractBoqChangeDetail InsertDetail(ContractBoqChangeDetail Detail, String OperationBy, SqlTransaction Tran = null)
        {
            List <CmdParameter> cmds = new List <CmdParameter>();

            cmds.Add(new CmdParameter("@ProjectNo", Detail.ProjectNo));
            cmds.Add(new CmdParameter("@ChangeNo", Detail.ChangeNo));
            cmds.Add(new CmdParameter("@Type", Detail.Type));
            cmds.Add(new CmdParameter("@IsUpInfo", Detail.IsUpInfo));
            cmds.Add(new CmdParameter("@IsUpQty", Detail.IsUpQty));
            cmds.Add(new CmdParameter("@IsUpPrice", Detail.IsUpPrice));

            cmds.Add(new CmdParameter("@ItemNo", Detail.ItemNo));
            cmds.Add(new CmdParameter("@ItemCode", Detail.ItemCode));
            cmds.Add(new CmdParameter("@IItemCoe", Detail.IItemCoe));
            cmds.Add(new CmdParameter("@ItemName", Detail.ItemName));

            cmds.Add(new CmdParameter("@ParentCode", Detail.ParentCode));
            cmds.Add(new CmdParameter("@Currency", Detail.Currency));
            cmds.Add(new CmdParameter("@CurrencyCode", Detail.CurrencyCode));
            cmds.Add(new CmdParameter("@ExchangeRate", Detail.ExchangeRate));
            cmds.Add(new CmdParameter("@Uom", Detail.Uom));
            cmds.Add(new CmdParameter("@BefQty", Detail.BefQty));
            cmds.Add(new CmdParameter("@BefPrjPrice", Detail.BefPrjPrice));
            cmds.Add(new CmdParameter("@BefAmount", Detail.BefAmount));
            cmds.Add(new CmdParameter("@AfQty", Detail.AfQty));
            cmds.Add(new CmdParameter("@AfPrice", Detail.AfPrice));
            cmds.Add(new CmdParameter("@AfAmount", Detail.AfAmount));

            cmds.Add(new CmdParameter("@ChangeQty", Detail.ChangeQty));
            cmds.Add(new CmdParameter("@ChangePrice", Detail.ChangePrice));
            cmds.Add(new CmdParameter("@ChangeAmount", Detail.ChangeAmount));
            cmds.Add(new CmdParameter("@Description", Detail.Description));
            cmds.Add(new CmdParameter("@Remark", Detail.Remark));
            cmds.Add(new CmdParameter("@OperationBy", OperationBy));
            cmds.Add(new CmdParameter("@Id", 0, System.Data.ParameterDirection.Output));
            cmds.Add(new CmdParameter("@ChangeDetailNo", "", System.Data.ParameterDirection.Output));
            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_ChangeDetail_Add", CommandType.StoredProcedure, pResult.Parameters, Tran);
            if (!Convert.ToBoolean(pResult["@Ok"]))
            {
                throw new FaultException <ApplicationServiceError>(new ApplicationServiceError()
                {
                    ErrorMessage = pResult["@Infor"].ToString()
                });
            }
            Detail.ChangeDetailNo = pResult["@ChangeDetailNo"].ToString();
            return(Detail);
        }
Example #2
0
 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));
 }
Example #3
0
        /// <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);
        }