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)); } } }
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); }
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(); } }
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(); } }
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); } } }
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); }
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(); }
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); } }
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(); } }