public static BudTemplateItem GetById(string id, string templateId) { BudTemplateItem item = new BudTemplateItem(); using (pm2Entities entities = new pm2Entities()) { var typec = (from bti in entities.Bud_TemplateItem where (bti.TemplateItemId == id) && (bti.Bud_Template.TemplateId == templateId) select new { id = bti.TemplateItemId, parentId = bti.ParentId, tempId = bti.Bud_Template.TemplateId, code = bti.ItemCode, name = bti.ItemName, orederNum = bti.OrderNumber, unit = bti.Unit, quntity = bti.Quantity, unitPrice = bti.UnitPrice, note = bti.Note, featureDescription = bti.FeatureDescription }).FirstOrDefault(); if (typec != null) { item.Id = id; item.ParentId = typec.parentId; item.BudTemplate = cn.justwin.Domain.BudTemplate.GetById(typec.tempId); item.Code = typec.code; item.Name = typec.name; item.OrderNumber = typec.orederNum; item.Unit = typec.unit; item.Quantity = typec.quntity; item.UnitPrice = typec.unitPrice; item.Note = typec.note; item.FeatureDescription = typec.featureDescription; return(item); } return(null); } }
public static IList <BudTemplateItem> GetByCode(string code, string templateId) { IList <BudTemplateItem> list = new List <BudTemplateItem>(); using (pm2Entities entities = new pm2Entities()) { foreach (var typee in (from bti in entities.Bud_TemplateItem where (bti.ItemCode == code) && (bti.Bud_Template.TemplateId == templateId) select new { id = bti.TemplateItemId, parentId = bti.ParentId, tempId = bti.Bud_Template.TemplateId, code = bti.ItemCode, name = bti.ItemName, orederNum = bti.OrderNumber, unit = bti.Unit, quntity = bti.Quantity, unitPrice = bti.UnitPrice, note = bti.Note }).ToList()) { BudTemplateItem item = new BudTemplateItem { Id = typee.id, ParentId = typee.parentId, BudTemplate = cn.justwin.Domain.BudTemplate.GetById(typee.tempId), Code = typee.code, Name = typee.name, OrderNumber = typee.orederNum, Unit = typee.unit, Quantity = typee.quntity, UnitPrice = typee.unitPrice, Note = typee.note }; list.Add(item); } } return(list); }
public static IList <BudTemplateItem> GetAll() { IList <BudTemplateItem> list = new List <BudTemplateItem>(); using (pm2Entities entities = new pm2Entities()) { foreach (var typed in (from bti in entities.Bud_TemplateItem select new { TemplateItemId = bti.TemplateItemId, ItemName = bti.ItemName, ItemCode = bti.ItemCode, Unit = bti.Unit, Note = bti.Note, OrderNumber = bti.OrderNumber, UnitPrice = bti.UnitPrice, Quantity = bti.Quantity, TemplateId = bti.Bud_Template.TemplateId, parentId = bti.ParentId }).ToList()) { BudTemplateItem item = new BudTemplateItem { Id = typed.TemplateItemId, ParentId = typed.parentId, BudTemplate = cn.justwin.Domain.BudTemplate.GetById(typed.TemplateId), Code = typed.ItemCode, Name = typed.ItemName, OrderNumber = typed.OrderNumber, Unit = typed.Unit, Quantity = typed.Quantity, Note = typed.Note }; decimal total = 0M; GetQuantityTotal(item.Id, item.BudTemplate.Id, ref total); item.Total = new decimal?(decimal.Round(total, 3)); if (item.Quantity == 0M) { item.UnitPrice = new decimal?(decimal.Round(0M, 3)); } else { item.UnitPrice = new decimal?(decimal.Round(total / item.Quantity, 3)); } list.Add(item); } } return(list); }
public static IList <BudTemplateItem> Select(string templateId) { List <BudTemplateItem> list = new List <BudTemplateItem>(); StringBuilder builder = new StringBuilder(); builder.Append("select tempItem.TemplateItemId,tempItem.ParentId,tempItem.ItemCode,tempItem.ItemName,tempItem.OrderNumber,"); builder.Append("tempItem.Unit,ISNULL(tempItem.Quantity,0.000) AS Quantity,tempItem.Note,ISNULL(tempRes.Total,0.000) AS Total from Bud_TemplateItem as tempItem "); builder.Append("left join (select TemplateItemId,sum(ResourceQuantity*ResourcePrice) total from Bud_TemplateResource "); builder.Append("where templateItemId in (select TemplateItemId from Bud_TemplateItem "); builder.Append("where templateId=@templateId) group by TemplateItemId) as tempRes on "); builder.Append("tempItem.TemplateItemId=tempRes.TemplateItemId where tempItem.TemplateId=@templateId "); builder.Append("order by OrderNumber desc"); using (SqlDataReader reader = SqlHelper.ExecuteReader(CommandType.Text, builder.ToString(), new SqlParameter[] { new SqlParameter("@templateId", templateId) })) { while (reader.Read()) { BudTemplateItem item = new BudTemplateItem { Id = reader["TemplateItemId"].ToString(), ParentId = reader["ParentId"].ToString(), Code = reader["ItemCode"].ToString(), Name = reader["ItemName"].ToString(), OrderNumber = reader["OrderNumber"].ToString(), Unit = reader["Unit"].ToString(), Quantity = decimal.Round(Convert.ToDecimal(reader["Quantity"]), 3), Note = reader["Note"].ToString() }; if (IsLeafNode(item.Id)) { item.Total = new decimal?(decimal.Round(Convert.ToDecimal(reader["Total"]), 3)); } else { decimal num = decimal.Round(0M, 3); foreach (BudTemplateItem item2 in list) { if (item2.ParentId == item.Id) { num += Convert.ToDecimal(item2.Total); } } item.Total = new decimal?(num); } if (item.Quantity == 0M) { item.UnitPrice = new decimal?(decimal.Round(0M, 3)); } else { item.UnitPrice = new decimal?(decimal.Round(Convert.ToDecimal(item.Total) / item.Quantity, 3)); } list.Add(item); } } list.Reverse(); return(list); }
public static void Delete(string id, pm2Entities context) { Bud_Template entity = context.Bud_Template.FirstOrDefault <Bud_Template>(c => c.TemplateId == id); if (entity == null) { throw new Exception("找不到需要删除的模板"); } BudTemplateItem.Delete(id); context.DeleteObject(entity); }
public static void AddResource(BudTemplateItem budTempItem) { if ((budTempItem.Resources != null) && (budTempItem.Resources.Count > 0)) { IList <TaskResource> resources = new List <TaskResource>(); resources = budTempItem.Resources; using (pm2Entities entities = new pm2Entities()) { DeleteResource(budTempItem, entities); using (IEnumerator <TaskResource> enumerator = resources.GetEnumerator()) { TaskResource tempResource; while (enumerator.MoveNext()) { tempResource = enumerator.Current; Bud_TemplateResource resource = new Bud_TemplateResource { TemplateResourceId = Guid.NewGuid().ToString(), Bud_TemplateItem = (from t in entities.Bud_TemplateItem where t.TemplateItemId == budTempItem.Id select t).FirstOrDefault <Bud_TemplateItem>(), Res_Resource = (from r in entities.Res_Resource where r.ResourceId == tempResource.Resource.Id select r).FirstOrDefault <Res_Resource>(), ResourceQuantity = new decimal?(tempResource.Quantity), ResourcePrice = new decimal?(tempResource.Price), InputUser = tempResource.InputUser, LossCoefficient = tempResource.LossCoefficient }; if (tempResource.InputDate.HasValue) { resource.InputDate = Convert.ToDateTime(tempResource.InputDate); } entities.AddToBud_TemplateResource(resource); } } entities.SaveChanges(); return; } } using (pm2Entities entities2 = new pm2Entities()) { DeleteResource(budTempItem, entities2); entities2.SaveChanges(); } }
private static void DeleteResource(BudTemplateItem budTempItem, pm2Entities context) { budTempItem = GetById(budTempItem.Id, budTempItem.BudTemplate.Id); using (IEnumerator <TaskResource> enumerator = budTempItem.Resources.GetEnumerator()) { TaskResource tempResource; while (enumerator.MoveNext()) { tempResource = enumerator.Current; Bud_TemplateResource entity = (from tr in context.Bud_TemplateResource where (tr.Res_Resource.ResourceId == tempResource.Resource.Id) && (tr.Bud_TemplateItem.TemplateItemId == budTempItem.Id) select tr).FirstOrDefault <Bud_TemplateResource>(); if (entity != null) { context.DeleteObject(entity); } } } }
public static void Add(BudTemplateItem budTemplateItem) { using (pm2Entities entities = new pm2Entities()) { Bud_TemplateItem item = new Bud_TemplateItem { TemplateItemId = budTemplateItem.Id, ParentId = budTemplateItem.ParentId, Bud_Template = entities.Bud_Template.FirstOrDefault <Bud_Template>(c => c.TemplateId == budTemplateItem.BudTemplate.Id), ItemCode = budTemplateItem.Code, ItemName = budTemplateItem.Name, OrderNumber = budTemplateItem.OrderNumber, Unit = budTemplateItem.Unit, Quantity = budTemplateItem.Quantity, UnitPrice = budTemplateItem.UnitPrice, Note = budTemplateItem.Note, FeatureDescription = budTemplateItem.FeatureDescription }; entities.AddToBud_TemplateItem(item); entities.SaveChanges(); } }
public static void Update(BudTemplateItem budTemplateItem) { using (pm2Entities entities = new pm2Entities()) { Bud_TemplateItem item = entities.Bud_TemplateItem.FirstOrDefault <Bud_TemplateItem>(c => c.TemplateItemId == budTemplateItem.Id); if (item == null) { throw new ApplicationException("找不到需要修改的模板项"); } item.ParentId = budTemplateItem.ParentId; item.Bud_Template = entities.Bud_Template.FirstOrDefault <Bud_Template>(c => c.TemplateId == budTemplateItem.BudTemplate.Id); item.ItemCode = budTemplateItem.Code; item.ItemName = budTemplateItem.Name; item.OrderNumber = budTemplateItem.OrderNumber; item.Unit = budTemplateItem.Unit; item.Quantity = budTemplateItem.Quantity; item.UnitPrice = budTemplateItem.UnitPrice; item.Note = budTemplateItem.Note; item.FeatureDescription = budTemplateItem.FeatureDescription; entities.SaveChanges(); } }
public static void SaveTemplate(List <string> lsttaskIds, string templateId, string saveNodeId, string inputUser) { if (!string.IsNullOrEmpty(saveNodeId) && (((GetById(saveNodeId, templateId) == null) ? 0 : 1) == 0)) { throw new Exception("你选择的根节点不存在,请刷新查看!"); } bool flag2 = true; List <string> orderNumberList = new List <string>(); orderNumberList = BudTask.GetOrderNumberById(lsttaskIds); if (lsttaskIds.Count > 1) { flag2 = BudTask.IsStructured(orderNumberList); } List <BudTask> list2 = null; int length = 0; string start = string.Empty; if (flag2) { list2 = BudTask.ChangeId(lsttaskIds); start = GetNextOrderNumber(templateId, saveNodeId); length = orderNumberList.Min <string>((System.Func <string, int>)(m => m.Length)); } int num2 = 0; foreach (string str2 in lsttaskIds) { BudTask task = null; if (flag2) { task = list2[num2]; } else { task = BudTask.GetById(str2); task.Id = Guid.NewGuid().ToString(); } string id = task.Id; string parentId = string.Empty; if (flag2) { parentId = task.ParentId; } else { parentId = saveNodeId; } cn.justwin.Domain.BudTemplate byId = cn.justwin.Domain.BudTemplate.GetById(templateId); BudTemplateItem budTemplateItem = Create(id, parentId, byId, task.Code, task.Name, task.Unit, task.Quantity, task.UnitPrice, task.Note, ""); if (flag2) { if (task.OrderNumber.Length == length) { start = GetNextOrderNumber(templateId, saveNodeId); budTemplateItem.ParentId = (saveNodeId == "") ? null : saveNodeId; } budTemplateItem.OrderNumber = GetNewOrderNumber(start, task.OrderNumber, length); } Add(budTemplateItem); List <TaskResource> list3 = BudTask.GetResourcesByTaskId(str2).ToList <TaskResource>(); if (list3.Count > 0) { foreach (TaskResource resource in list3) { budTemplateItem.AddResource(resource.Resource, budTemplateItem.Quantity, resource.Price, inputUser, DateTime.Now, "add", 0M); AddResource(budTemplateItem); } } num2++; } }