Пример #1
0
        private void SetUnitProject(object o)
        {
            SetInfo      info        = (SetInfo)o;
            _Engineering Engineering = info.Engineering;
            _UnitProject UnitProject = info.UnitProject;
            单位工程         dx          = info.dw;

            SetOtherProject(UnitProject.Property.OtherProject, dx.其他项目表, dx);

            _Common.Activitie = UnitProject;//给当前的单位工程赋值



            #region 分部分项对象以及赋值
            //UnitProject.Property.SubSegments = new _SubSegments(UnitProject);//分部分项对象
            SetSubSegments(UnitProject.Property.SubSegments, dx.分部分项表, UnitProject, dx);
            #endregion


            #region 措施项目对象以及赋值
            //UnitProject.Property.MeasuresProject = new _MeasuresProject(UnitProject);//措施项目对象
            //UnitProject.Property.MeasuresProject.IsInit = false;
            SetMeasuresProject(UnitProject.Property.MeasuresProject, dx.措施项目表, UnitProject, dx);
            #endregion

            //UnitProject.Property.Metaanalysis = new _Metaanalysis(UnitProject);//单位工程汇总对象
            //UnitProject.Property.Metaanalysis.IsInit = false;
            SetMetaanalysis(UnitProject.Property.Metaanalysis, dx);


            // UnitProject.Property.QuantityUnitSummaryList = new _QuantityUnitSummaryList(UnitProject);
        }
Пример #2
0
        private void SetLibName(_UnitProject UnitProject, 单位工程 dx)
        {
            UnitProject.Property.DLibraries.ListGallery.Rule  = UnitProject.Property.Basis.QDGZ;
            UnitProject.Property.DLibraries.FixedLibrary.Rule = UnitProject.Property.Basis.DEGZ;

            if (dx.清单专业.Contains("安装"))
            {
                UnitProject.Property.DLibraries.ListGallery.LibName  = "安装清单库";
                UnitProject.Property.DLibraries.FixedLibrary.LibName = "安装定额价目表";
            }

            if (dx.清单专业.Contains("建筑"))
            {
                UnitProject.Property.DLibraries.ListGallery.LibName  = "建筑清单库";
                UnitProject.Property.DLibraries.FixedLibrary.LibName = "建筑装饰定额价目表";
            }
            if (dx.清单专业.Contains("绿化"))
            {
                UnitProject.Property.DLibraries.ListGallery.LibName  = "园林绿化清单库";
                UnitProject.Property.DLibraries.FixedLibrary.LibName = "绿化定额价目表";
            }
            if (dx.清单专业.Contains("市政"))
            {
                UnitProject.Property.DLibraries.ListGallery.LibName  = "市政清单库";
                UnitProject.Property.DLibraries.FixedLibrary.LibName = "市政定额价目表";
            }
        }
Пример #3
0
        /// <summary>
        /// 汇总分析赋值
        /// </summary>
        /// <param name="m"></param>
        private void SetMetaanalysis(_Metaanalysis m, 单位工程 m_DWGC)
        {
            if (m_DWGC.单位工程造价汇总表.单位工程费用项 == null)
            {
                return;
            }
            m.IsInit = true;
            m.Load(GetMetaanalysisTemplet(m_DWGC));//根据条件载入汇总分析模板
            foreach (单位工程费用项 item in m_DWGC.单位工程造价汇总表.单位工程费用项)
            {
                IEnumerable <DataRow> rows = from row in m.Source.AsEnumerable()
                                             where item.费用名称.Contains(row["Name"].ToString())
                                             select row;
                if (rows.Count() > 0)
                {
                    DataRow row = rows.First();
                    row["Coefficient"] = item.费率;
                    // row["Price"] = item.金额;
                }
            }
            foreach (规费税金项 item in m_DWGC.规费税金清单表.规费税金项)
            {
                IEnumerable <DataRow> rows = from row in m.Source.AsEnumerable()
                                             where item.费用名称.Contains(row["Name"].ToString())
                                             select row;
                if (rows.Count() > 0)
                {
                    DataRow row = rows.First();
                    row["Coefficient"] = item.费率;
                    // row["Price"] = item.金额;
                }
            }

            foreach (措施项目标题 item1 in m_DWGC.措施项目表.措施项目标题)
            {
                foreach (措施项目清单 item in item1.措施项目清单)
                {
                    IEnumerable <DataRow> rows = from row in m.Source.AsEnumerable()
                                                 where item.称.Contains(row["Name"].ToString())
                                                 select row;
                    if (rows.Count() > 0)
                    {
                        DataRow row = rows.First();
                        row["Coefficient"] = item.费率;
                        //  row["Price"] = item.综合合价;
                    }
                }
            }
        }
Пример #4
0
        private void StartThread(SetInfo info)
        {
            _UnitProject UnitProject = info.UnitProject;
            单位工程         item        = info.dw;
            _Engineering Engineering = info.Engineering;

            UnitProject.Property.Basis.Name = item.单位工程名称;
            UnitProject.Directory.NodeName  = item.单位工程名称;
            UnitProject.Property.Basis.DEGZ = this.m_建设项目.招标信息表.计价依据.ToString();
            UnitProject.Property.Basis.QDGZ = this.m_建设项目.招标信息表.计价依据.ToString();

            SetLibName(UnitProject, item);
            (this.m_Business as _Pr_Business).AddChild(Engineering, UnitProject);
            //UnitProject.Init(APP.Application);
            APP.Methods.Init(UnitProject);
            ThreadPool.SetMaxThreads(10, 10);
            ThreadPool.QueueUserWorkItem(new WaitCallback(SetUnitProject), info);
        }
Пример #5
0
        /// <summary>
        /// 其他项目赋值
        /// </summary>
        /// <param name="other"></param>
        /// <param name="qt"></param>

        private void SetOtherProject(_OtherProject other, 其他项目表 qt, 单位工程 m_DWGC)
        {
            if (qt.其他项目清单 == null)
            {
                return;
            }
            string str = string.Empty;

            //other.Source = APP.Application.Global.DataTamp.LoadOtherProject(other.Parent.Property.Basis.PGCDD, out str).Clone();
            other.Source.PrimaryKey = new DataColumn[] { other.Source.Columns["id"] };
            DataColumn col = other.Source.Columns["id"];

            col.AutoIncrement     = true;
            col.AutoIncrementSeed = 1;
            col.AutoIncrementStep = 1;
            DataRow row = other.Add();

            row["Name"]  = "其他项目";
            row["IsSys"] = true;
            bool IsLX = false;//标识是否有零星项目

            if (m_DWGC.零星项目表 != null)
            {
                IsLX = true;
            }
            foreach (其他项目清单 item in qt.其他项目清单)
            {
                DataRow crow = other.Add_Child(row);



                # region 含有计日工
                if (!IsLX)
                {
                    crow["Name"]       = item.项目名称;
                    crow["Unit"]       = item.计量单位;
                    crow["Quantities"] = item.工程数量;
                    crow["IsSys"]      = true;
                    if (item.费用类型.Contains("暂列金额"))
                    {
                        if (qt.暂列金额明细表.暂列金额明细 != null)
                        {
                            foreach (暂列金额明细 itemz in qt.暂列金额明细表.暂列金额明细)
                            {
                                DataRow zrow = other.Add_Child(crow);
                                zrow["Name"]       = itemz.项目名称;
                                zrow["Unit"]       = itemz.计量单位;
                                zrow["Quantities"] = "0";
                                zrow["IsSys"]      = false;
                            }
                        }
                    }

                    if (item.费用类型.Contains("专业工程暂估"))
                    {
                        if (qt.专业工程暂估价明细表.专业工程暂估明细 != null)
                        {
                            foreach (专业工程暂估明细 itemz in qt.专业工程暂估价明细表.专业工程暂估明细)
                            {
                                DataRow zrow = other.Add_Child(crow);
                                zrow["Name"]       = itemz.项目名称;
                                zrow["Unit"]       = itemz.计量单位;
                                zrow["Quantities"] = "0";
                                zrow["IsSys"]      = false;
                            }
                        }
                    }

                    if (item.费用类型.Contains("总承包服务费"))
                    {
                        if (qt.总承包服务费项目表.总承包服务费项 != null)
                        {
                            foreach (总承包服务费项 itemz in qt.总承包服务费项目表.总承包服务费项)
                            {
                                DataRow zrow = other.Add_Child(crow);
                                zrow["Name"]       = itemz.项目名称;
                                zrow["Unit"]       = itemz.计量单位;
                                zrow["Quantities"] = "0";
                                zrow["IsSys"]      = false;
                            }
                        }
                    }
                    if (item.费用类型.Contains("计日工"))
                    {
                        string[] names = { "人工", "材料", "机械" };
                        foreach (string name in names)
                        {
                            DataRow zrow = other.Add_Child(crow);
                            zrow["Name"]       = name;
                            zrow["Quantities"] = "0";
                            zrow["IsSys"]      = false;
                            if (qt.计日工表.计日工项 != null)
                            {
                                if (qt.计日工表.计日工项.Count > 0)
                                {
                                    IEnumerable <计日工项> jr = from info in qt.计日工表.计日工项
                                                            where info.类别 == name
                                                            select info;
                                    if (jr.Count() > 0)
                                    {
                                        计日工项    jrgx  = jr.First();
                                        DataRow zrow1 = other.Add_Child(zrow);
                                        zrow1["Name"]       = jrgx.称;
                                        zrow["Unit"]        = jrgx.单位;
                                        zrow1["Quantities"] = jrgx.暂定数量;
                                    }
                                }
                            }
                        }
                    }
                }

                # endregion
                else
                {
Пример #6
0
        /// <summary>
        /// 根据条件获取汇总分析模板
        /// </summary>
        /// <returns></returns>
        private string GetMetaanalysisTemplet(单位工程 m_DWGC)
        {
            string filename = "2012汇总分析表【不扣劳保】.hzfx";

            IEnumerable <单位工程费用项> qzaq = from info in m_DWGC.单位工程造价汇总表.单位工程费用项
                                         where info.费用名称.Contains("其中:安全文明施工措施费")
                                         select info;
            IEnumerable <单位工程费用项> aqxm = from info in m_DWGC.单位工程造价汇总表.单位工程费用项
                                         where info.费用名称.Contains("安全文明施工措施项目费")
                                         select info;

            IEnumerable <单位工程费用项> fbfx = from info in m_DWGC.单位工程造价汇总表.单位工程费用项
                                         where info.序号.Contains("F1.")
                                         select info;
            单位工程费用项 last = m_DWGC.单位工程造价汇总表.单位工程费用项[m_DWGC.单位工程造价汇总表.单位工程费用项.Length - 1];

            int    Qzaq = qzaq.Count();
            int    Aqxm = aqxm.Count();
            int    Fbfx = fbfx.Count();
            string Last = last.取费基数;

            if (Qzaq < 0 && Aqxm < 0 && Last.Split('-').Length == 3)
            {
                filename = "2004汇总分析表【扣劳保和定额测定费】.hzfx";
            }
            if (Qzaq < 1 && Aqxm < 1 && Last.Split('-').Length == 2)
            {
                filename = "2004汇总分析表【只扣劳保】.hzfx";
            }

            if (Qzaq < 1 && Aqxm < 1 && Last.Split('+').Length == 2)
            {
                filename = "2004汇总分析表【不扣劳保和定额测定费】.hzfx";
            }

            if (Qzaq < 1 && Aqxm > 0 && Last.Split('+').Length == 2)
            {
                filename = "2006汇总分析表(232号文件)【不扣劳保和定额测定费】.hzfx";
            }

            if (Qzaq < 1 && Aqxm > 0 && Last.Split('-').Length == 2)
            {
                filename = "2006汇总分析表(232号文件)【只扣劳保】.hzfx";
            }

            if (Qzaq < 1 && Aqxm > 0 && Last.Split('-').Length == 3)
            {
                filename = "2006汇总分析表(232号文件)【扣劳保和定额测定费】.hzfx";
            }

            if (Fbfx < 1 && Qzaq > 0 && Aqxm < 1 && Last.Split('-').Length == 2)
            {
                filename = "2009汇总分析表【扣劳保】.hzfx";
            }
            if (Fbfx < 1 && Qzaq > 0 && Aqxm < 1 && Last.Split('+').Length == 2)
            {
                filename = "2009汇总分析表【不扣劳保】.hzfx";
            }
            if (Qzaq > 0 && Aqxm < 1 && Last.Split('-').Length == 2)
            {
                filename = "2012汇总分析表【扣劳保】.hzfx";
            }
            if (Qzaq > 0 && Aqxm < 1 && Last.Split('+').Length == 2)
            {
                filename = "2012汇总分析表【不扣劳保】.hzfx";
            }

            filename = APP.Application.Global.AppFolder + "模板文件\\汇总分析模板\\" + filename;
            return(filename);
        }
Пример #7
0
        /// <summary>
        /// 单位工程赋值
        /// </summary>
        /// <param name="Engineering"></param>
        /// <param name="UnitProject"></param>
        /// <param name="dx"></param>
        private void SetUnitProject(_Engineering Engineering, _UnitProject UnitProject, 单位工程 dx)
        {
            //this.m_DWGC = dx;
            //m_UnitProject = UnitProject;
            UnitProject.Property.Basis.Name = dx.单位工程名称;
            //通知正在处理的单位工程
            OnRevertXmlObject(this, UnitProject);
            UnitProject.Directory.NodeName  = dx.单位工程名称;
            UnitProject.Property.Basis.DEGZ = this.m_建设项目.招标信息表.计价依据.ToString();
            UnitProject.Property.Basis.QDGZ = this.m_建设项目.招标信息表.计价依据.ToString();

            SetLibName(UnitProject, dx);
            //APP.WorkFlows.Container.AddChild(Engineering, UnitProject);
            (this.m_Business as _Pr_Business).AddChild(Engineering, UnitProject);
            //UnitProject.Property.OtherProject = new _OtherProject(UnitProject);//其他项目对象
            //UnitProject.Property.OtherProject.IsInit = false;
            //UnitProject.Init(APP.Application);
            APP.Methods.Init(UnitProject);
            SetOtherProject(UnitProject.Property.OtherProject, dx.其他项目表, dx);

            _Common.Activitie = UnitProject;//给当前的单位工程赋值



            #region 分部分项对象以及赋值
            //UnitProject.Property.SubSegments = new _SubSegments(UnitProject);//分部分项对象
            SetSubSegments(UnitProject.Property.SubSegments, dx.分部分项表, UnitProject, dx);
            #endregion


            #region 措施项目对象以及赋值
            //UnitProject.Property.MeasuresProject = new _MeasuresProject(UnitProject);//措施项目对象
            //UnitProject.Property.MeasuresProject.IsInit = false;
            SetMeasuresProject(UnitProject.Property.MeasuresProject, dx.措施项目表, UnitProject, dx);
            #endregion

            //UnitProject.Property.Metaanalysis = new _Metaanalysis(UnitProject);//单位工程汇总对象
            //UnitProject.Property.Metaanalysis.IsInit = false;
            SetMetaanalysis(UnitProject.Property.Metaanalysis, dx);


            // UnitProject.Property.QuantityUnitSummaryList = new _QuantityUnitSummaryList(UnitProject);
        }