Esempio n. 1
0
        private void AddTaskResource(string resCode, string resName, decimal price, decimal quanity, string taskId, List <string> errors)
        {
            Resource byId = Resource.GetById(Resource.GetResourceId(resCode));

            if (byId != null)
            {
                TaskResource taskResource = new TaskResource {
                    Resource  = byId,
                    InputUser = this.inputUser,
                    InputDate = new DateTime?(DateTime.Now),
                    Price     = price,
                    Quantity  = quanity
                };
                BudTask.AddResource(taskId, taskResource);
            }
            else
            {
                string item = "资源编号:" + resCode + " 在资源库不存在,已添加到资源映射!";
                if (!errors.Contains(item))
                {
                    errors.Add(item);
                    ResourceTemp.Add(ResourceTemp.Create(string.Empty, taskId, resCode, resName, new decimal?(price), new decimal?(quanity), new decimal?(price * quanity), this.prjId));
                }
            }
        }
Esempio n. 2
0
        public static List <ResourceTemp> GetResourceTempByPrj(string prjId, int pageSize, int pageNo)
        {
            List <ResourceTemp> list = new List <ResourceTemp>();

            using (pm2Entities entities = new pm2Entities())
            {
                foreach (var typec in (from rt in entities.Res_ResourceTemp
                                       where rt.PrjId == prjId
                                       orderby rt.Id
                                       select new { Id = rt.Id, ResourceId = rt.Res_Resource.ResourceId, TaskId = rt.Bud_Task.TaskId, ResourceCode = rt.ResourceCode, ResourceName = rt.ResourceName, UnitPrice = rt.UnitPrice, Quantity = rt.Quantity, Amount = rt.Amount, PrjId = rt.PrjId }).Skip(((pageNo - 1) * pageSize)).Take(pageSize).ToList())
                {
                    ResourceTemp item = new ResourceTemp {
                        Id           = typec.Id,
                        ResourceId   = typec.ResourceId,
                        BudTask      = cn.justwin.Domain.BudTask.GetById(typec.TaskId),
                        ResourceCode = typec.ResourceCode,
                        ResourceName = typec.ResourceName,
                        UnitPrice    = typec.UnitPrice,
                        Quantity     = typec.Quantity,
                        Amount       = typec.Amount,
                        PrjId        = typec.PrjId
                    };
                    list.Add(item);
                }
            }
            return(list);
        }
Esempio n. 3
0
 public static void Add(ResourceTemp resTemp)
 {
     using (pm2Entities entities = new pm2Entities())
     {
         Res_Resource resource = (from m in entities.Res_Resource
                                  where m.ResourceId == resTemp.ResourceId
                                  select m).FirstOrDefault <Res_Resource>();
         Bud_Task task = null;
         if (resTemp.BudTask != null)
         {
             task = (from m in entities.Bud_Task
                     where m.TaskId == resTemp.BudTask.Id
                     select m).FirstOrDefault <Bud_Task>();
         }
         Res_ResourceTemp temp = new Res_ResourceTemp {
             Id           = Guid.NewGuid().ToString(),
             Amount       = resTemp.Amount,
             PrjId        = resTemp.PrjId,
             Quantity     = resTemp.Quantity,
             UnitPrice    = resTemp.UnitPrice,
             ResourceCode = resTemp.ResourceCode,
             ResourceName = resTemp.ResourceName,
             Bud_Task     = task,
             Res_Resource = resource
         };
         entities.AddToRes_ResourceTemp(temp);
         entities.SaveChanges();
     }
 }
Esempio n. 4
0
 public static void Update(ResourceTemp resTemp, string id)
 {
     using (pm2Entities entities = new pm2Entities())
     {
         Res_ResourceTemp temp = entities.Res_ResourceTemp.FirstOrDefault <Res_ResourceTemp>(c => c.Id == id);
         if (temp == null)
         {
             throw new ApplicationException("找不到需要修改的模板项");
         }
         temp.Res_Resource = entities.Res_Resource.FirstOrDefault <Res_Resource>(c => c.ResourceId == resTemp.ResourceId);
         temp.Bud_Task     = entities.Bud_Task.FirstOrDefault <Bud_Task>(c => c.TaskId == resTemp.BudTask.Id);
         entities.SaveChanges();
     }
 }
Esempio n. 5
0
 public static void CoverVersionNew(string prjId, int version)
 {
     using (pm2Entities entities = new pm2Entities())
     {
         List <string> ids = (from m in entities.Bud_Task
                              where (m.PrjId == prjId) && (m.Version == version)
                              select m.TaskId).ToList <string>();
         new PayoutTarget().DelByTaskId(ids);
         foreach (string str in ids)
         {
             TaskResource.DelRes(prjId, version);
             ResourceTemp.DelByPrjId(prjId);
             BudTask.Delete(str);
         }
     }
 }
Esempio n. 6
0
        public static ResourceTemp GetById(string id)
        {
            ResourceTemp temp = new ResourceTemp();

            using (pm2Entities entities = new pm2Entities())
            {
                var typeb = (from rt in entities.Res_ResourceTemp
                             where rt.Id == id
                             select new { id = rt.Id, resId = rt.Res_Resource.ResourceId, taskId = rt.Bud_Task.TaskId, resCode = rt.ResourceCode, resName = rt.ResourceName, unitPrice = rt.UnitPrice, quantity = rt.Quantity, amount = rt.Amount, prjId = rt.PrjId }).FirstOrDefault();
                if (typeb != null)
                {
                    temp.Id           = typeb.id;
                    temp.ResourceId   = typeb.resId;
                    temp.BudTask      = cn.justwin.Domain.BudTask.GetById(typeb.taskId);
                    temp.ResourceCode = typeb.resCode;
                    temp.ResourceName = typeb.resName;
                    temp.UnitPrice    = typeb.unitPrice;
                    temp.Quantity     = typeb.quantity;
                    temp.Amount       = typeb.amount;
                    temp.PrjId        = typeb.prjId;
                }
            }
            return(temp);
        }
Esempio n. 7
0
        public void AddResource(string[] colArray, string inputUser, List <string> errors, string prjId, string isWBSRelevance, char sep)
        {
            IDictionary <string, int> relation = ExcelUtility.GetRelation(colArray);

            this.ParseResourceTable(relation);
            string  name          = string.Empty;
            string  resourceCode  = string.Empty;
            string  brand         = string.Empty;
            string  specification = string.Empty;
            string  modelNumber   = string.Empty;
            string  str6          = string.Empty;
            decimal?unitPrice     = 0M;
            decimal?quanity       = 0M;
            decimal?amount        = 0M;
            string  str7          = string.Empty;
            string  note          = string.Empty;
            string  item          = string.Empty;
            decimal?nullable4     = 0M;
            string  str10         = string.Empty;

            foreach (DataRow row in this.dtResource.Rows)
            {
                Action <object> action2 = null;
                if (this.serialNoIndex != -1)
                {
                    str10 = (row[this.serialNoIndex] == null) ? null : row[this.serialNoIndex].ToString().Trim();
                }
                name = (row[this.nameIndex] == null) ? null : row[this.nameIndex].ToString();
                if ((isWBSRelevance == "1") && (this.taskCodeIndex != -1))
                {
                    str7 = (row[this.taskCodeIndex] == null) ? null : row[this.taskCodeIndex].ToString().Trim();
                }
                if (this.brandIndex != -1)
                {
                    brand = row[this.brandIndex].ToString();
                }
                if (this.specificationIndex != -1)
                {
                    specification = row[this.specificationIndex].ToString().Trim();
                }
                if (this.ModelNumberIndex != -1)
                {
                    modelNumber = row[this.ModelNumberIndex].ToString().Trim();
                }
                if (this.technicalParameterIndex != -1)
                {
                    row[this.technicalParameterIndex].ToString().Trim();
                }
                if ((this.unitIndex != -1) && (row[this.unitIndex].ToString().Trim().Length == 0))
                {
                    str6 = null;
                }
                if (this.unitPriceIndex != -1)
                {
                    try
                    {
                        unitPrice = new decimal?(decimal.Parse(row[this.unitPriceIndex].ToString()));
                    }
                    catch
                    {
                        item = "在您的Excel中:资源名称为" + name + "的资源,单价不是非有效数字,请修改。";
                        errors.Add(item);
                        return;
                    }
                }
                if (this.quantityIndex != -1)
                {
                    try
                    {
                        quanity = new decimal?(decimal.Parse(row[this.quantityIndex].ToString()));
                    }
                    catch
                    {
                        item = "在您的Excel中:资源名称为" + name + "的资源,数量不是有效数字,请修改。";
                        errors.Add(item);
                        return;
                    }
                }
                if (this.noteIndex != -1)
                {
                    note = row[this.noteIndex].ToString().Trim();
                }
                if (this.codeIndex != -1)
                {
                    resourceCode = row[this.codeIndex].ToString();
                }
                if (this.amountIndex != -1)
                {
                    try
                    {
                        amount = new decimal?(decimal.Parse(row[this.amountIndex].ToString()));
                    }
                    catch
                    {
                        item = "在您的Excel中:资源名称为" + name + "的资源,合计金额不是有效数字,请修改。";
                        errors.Add(item);
                        return;
                    }
                }
                if (this.lossCoefficientIndex != -1)
                {
                    try
                    {
                        nullable4 = new decimal?(decimal.Parse(row[this.lossCoefficientIndex].ToString()));
                    }
                    catch
                    {
                        nullable4 = 1;
                    }
                }
                string str11 = new ResResourceService().GetId(name, brand, specification, modelNumber, note, sep);
                if (string.IsNullOrEmpty(str11))
                {
                    item = "在您的Excel中:资源名称" + name + ",在资源库中不存在。";
                    errors.Add(item);
                }
                string taskId = string.Empty;
                if (!string.IsNullOrEmpty(str7))
                {
                    taskId = this.GetRelationTaskId(str7);
                }
                if (!string.IsNullOrEmpty(str10))
                {
                    taskId = this.GetRelationTaskId(str10);
                }
                if (string.IsNullOrEmpty(taskId) && (isWBSRelevance == "1"))
                {
                    item = "在您的Excel中:资源名称" + name + ",关联的分布分项不存在。";
                    errors.Add(item);
                }
                if (cn.justwin.Domain.BudTask.CheckChilds(taskId))
                {
                    item = "在您的Excel中:资源名称" + name + ",不能配置到有子项的分部分项。";
                    errors.Add(item);
                    taskId = string.Empty;
                }
                if (isWBSRelevance == "1")
                {
                    if (!string.IsNullOrEmpty(taskId) && !string.IsNullOrEmpty(str11))
                    {
                        decimal?repeatResQuantity = TaskResource.GetRepeatResQuantity(taskId, str11);
                        if (repeatResQuantity.HasValue)
                        {
                            decimal?nullable7 = quanity;
                            this.MergeResQuantity(taskId, str11, repeatResQuantity.Value, nullable7.HasValue ? nullable7.GetValueOrDefault() : 0M);
                        }
                        else if (cn.justwin.Domain.BudTask.GetById(taskId) != null)
                        {
                            BudTaskResource resource = new BudTaskResource {
                                TaskResourceId   = Guid.NewGuid().ToString(),
                                TaskId           = taskId,
                                ResourceId       = str11,
                                ResourceQuantity = new decimal?(quanity.Value),
                                InputUser        = this.UserCode,
                                InputDate        = DateTime.Now,
                                ResourcePrice    = new decimal?(unitPrice.Value),
                                PrjGuid          = prjId,
                                Versions         = 1,
                                LossCoefficient  = new decimal?(nullable4.Value)
                            };
                            new BudTaskResourceService().Add(resource);
                        }
                        if (action2 == null)
                        {
                            action2 = obj => new BudTaskService().UpdateTotal2(taskId);
                        }
                        Action <object> action = action2;
                        new Task(action, "").Start();
                    }
                    else
                    {
                        ResourceTemp.Add(ResourceTemp.Create(str11, taskId, resourceCode, name, unitPrice, quanity, amount, prjId));
                    }
                }
                else if (!string.IsNullOrEmpty(str11))
                {
                    decimal?resQuantity = TaskResource.GetResQuantity(prjId, str11);
                    if (resQuantity.HasValue)
                    {
                        decimal?nullable8 = quanity;
                        this.MergeResQuantityByPrjId(prjId, str11, resQuantity.Value, nullable8.HasValue ? nullable8.GetValueOrDefault() : 0M);
                    }
                    else
                    {
                        Resource     byId         = Resource.GetById(str11);
                        TaskResource taskResource = new TaskResource {
                            TaskReourceId   = Guid.NewGuid().ToString(),
                            Resource        = byId,
                            PrjGuid         = prjId,
                            Price           = unitPrice.Value,
                            Quantity        = quanity.Value,
                            InputDate       = new DateTime?(DateTime.Now),
                            InputUser       = this.UserCode,
                            LossCoefficient = nullable4
                        };
                        TaskResource.AddResource(taskResource);
                    }
                }
                else
                {
                    ResourceTemp.Add(ResourceTemp.Create(str11, null, resourceCode, name, unitPrice, quanity, amount, prjId));
                }
            }
            BudTaskServices.codeAndTaskId.Clear();
        }
Esempio n. 8
0
        public static void Add(ResourceTemp resTemp)
        {
            using (pm2Entities entities = new pm2Entities())
            {
                Res_Resource resource = (from m in entities.Res_Resource
                                         where m.ResourceId == resTemp.ResourceId
                                         select m).FirstOrDefault <Res_Resource>();
                Bud_Task task = null;
                if (resTemp.BudTask != null)
                {
                    task = (from m in entities.Bud_Task
                            where m.TaskId == resTemp.BudTask.Id
                            select m).FirstOrDefault <Bud_Task>();
                }
                //null, resTemp.ResourceCode,
                //      ,[ResourceId]
                //,[TaskId]
                //,[ResourceCode]
                //  ,'{1}'-- < ResourceId, nvarchar(500),>
                //,'{2}'-- < TaskId, nvarchar(500),>
                //,'{3}'-- < ResourceCode, nvarchar(500),>
                string strs = string.Format(@"INSERT INTO [Res_ResourceTemp]
           ([Id]
           ,[ResourceName]
           ,[UnitPrice]
           ,[Quantity]
           ,[Amount]
           ,[PrjId]
           ,[Brand]
           ,[Specification]
           ,[ModelNumber])
     VALUES
           ('{0}'--<Id, nvarchar(500),>
           ,'{1}'--<ResourceName, nvarchar(1000),>
           ,{2}--<UnitPrice, decimal(18,3),>
           ,{3}--<Quantity, decimal(18,3),>
           ,{4}--<Amount, decimal(18,3),>
           ,'{5}'--<PrjId, nvarchar(500),>
           ,'{6}'--<Brand, nvarchar(500),>
           ,'{7}'--<Specification, nvarchar(500),>
           ,'{8}'--<ModelNumber, nvarchar(500),>
		   )"        , Guid.NewGuid().ToString(), resTemp.ResourceName, resTemp.UnitPrice, resTemp.Quantity, resTemp.Amount, resTemp.PrjId, resTemp.Brand, resTemp.Specification, resTemp.ModelNumber);
                //Res_ResourceTemp temp = new Res_ResourceTemp {
                //    Id = Guid.NewGuid().ToString(),
                //    Amount = resTemp.Amount,
                //    PrjId = resTemp.PrjId,
                //    Quantity = resTemp.Quantity,
                //    UnitPrice = resTemp.UnitPrice,
                //    ResourceCode = resTemp.ResourceCode,
                //    ResourceName = resTemp.ResourceName,
                //    Bud_Task = task,
                //    Res_Resource = resource,
                //    Brand = resTemp.Brand,
                //    Specification = resTemp.Specification,
                //    ModelNumber = resTemp.ModelNumber
                //};
                //entities.AddToRes_ResourceTemp(temp);
                //entities.SaveChanges();
                publicDbOpClass.ExecSqlString(strs);
            }
        }
Esempio n. 9
0
 public static void Delete(ResourceTemp resTemp, string InputUser, string isWBSRelevance)
 {
     using (pm2Entities entities = new pm2Entities())
     {
         if (isWBSRelevance == "1")
         {
             Bud_TaskResource resource = (from tr in entities.Bud_TaskResource
                                          where (tr.Res_Resource.ResourceId == resTemp.ResourceId) && (tr.Bud_Task.TaskId == resTemp.BudTask.Id)
                                          select tr).FirstOrDefault <Bud_TaskResource>();
             if (resource == null)
             {
                 Bud_TaskResource resource2 = new Bud_TaskResource {
                     TaskResourceId = Guid.NewGuid().ToString(),
                     Bud_Task       = (from t in entities.Bud_Task
                                       where t.TaskId == resTemp.BudTask.Id
                                       select t).FirstOrDefault <Bud_Task>(),
                     Res_Resource = (from r in entities.Res_Resource
                                     where r.ResourceId == resTemp.ResourceId
                                     select r).FirstOrDefault <Res_Resource>(),
                     ResourceQuantity = resTemp.Quantity,
                     ResourcePrice    = resTemp.UnitPrice,
                     InputUser        = InputUser,
                     InputDate        = DateTime.Now,
                     PrjGuid          = resTemp.PrjId,
                     Versions         = 1,
                     LossCoefficient  = 1
                 };
                 entities.AddToBud_TaskResource(resource2);
             }
             else
             {
                 resource.ResourceQuantity += resTemp.Quantity;
             }
         }
         else
         {
             Bud_TaskResource resource3 = (from tr in entities.Bud_TaskResource
                                           where (tr.Res_Resource.ResourceId == resTemp.ResourceId) && (tr.PrjGuid == resTemp.PrjId)
                                           select tr).FirstOrDefault <Bud_TaskResource>();
             if (resource3 == null)
             {
                 int?nullable = (from m in entities.Bud_Task
                                 where m.PrjId == resTemp.PrjId
                                 select m.Version).Max <int?>();
                 if (!nullable.HasValue)
                 {
                     nullable = 1;
                 }
                 Bud_TaskResource resource4 = new Bud_TaskResource {
                     TaskResourceId = Guid.NewGuid().ToString(),
                     Bud_Task       = null,
                     Res_Resource   = (from r in entities.Res_Resource
                                       where r.ResourceId == resTemp.ResourceId
                                       select r).FirstOrDefault <Res_Resource>(),
                     ResourceQuantity = resTemp.Quantity,
                     ResourcePrice    = resTemp.UnitPrice,
                     InputUser        = InputUser,
                     InputDate        = DateTime.Now,
                     PrjGuid          = resTemp.PrjId,
                     Versions         = nullable
                 };
                 entities.AddToBud_TaskResource(resource4);
             }
             else
             {
                 resource3.ResourceQuantity += resTemp.Quantity;
             }
         }
         Res_ResourceTemp entity = (from rt in entities.Res_ResourceTemp
                                    where rt.Id == resTemp.Id
                                    select rt).FirstOrDefault <Res_ResourceTemp>();
         entities.DeleteObject(entity);
         entities.SaveChanges();
     }
 }