public static decimal GetTypePrice(string taskId, string priceType, string resourceTypeId) { System.Func <ResPrice, bool> predicate = null; decimal num = 0M; if (BudTask.GetById(taskId) != null) { foreach (TaskResource resource in BudTask.GetResourcesByTaskId(taskId)) { System.Func <ResPrice, bool> func = null; string resourceId = resource.Resource.Id; decimal quantity = resource.Quantity; decimal num3 = resource.Price; if (GetFirstResourceType(GetById(resourceId).ResourceType.Id) == resourceTypeId) { if (func == null) { func = m => m.ResourceId == resourceId; } if (predicate == null) { predicate = m => m.PriceTypeId == priceType; } List <ResPrice> list2 = ResPrice.GetAll().Where <ResPrice>(func).Where <ResPrice>(predicate).ToList <ResPrice>(); if (list2.Count > 0) { foreach (ResPrice price in list2) { num += price.PriceValue * quantity; } } else { num += num3 * quantity; } } } } return(num); }
public static void GetResTypeTotal(string taskId, string priceType, DataTable dtrcj) { if (BudTask.GetById(taskId) != null) { foreach (TaskResource resource in BudTask.GetResourcesByTaskId(taskId)) { string resourceId = resource.Resource.Id; decimal quantity = resource.Quantity; decimal price = resource.Price; string firstResourceType = GetFirstResourceType(GetById(resourceId).ResourceType.Id); decimal num3 = 0M; if (string.IsNullOrEmpty(priceType)) { num3 = price * quantity; } else { using (pm2Entities entities = new pm2Entities()) { using (List <ResPrice> .Enumerator enumerator2 = (from m in entities.Res_Price where (m.ResourceId == resourceId) && (m.PriceTypeId == priceType) select new ResPrice { PriceValue = m.PriceValue }).ToList <ResPrice>().GetEnumerator()) { while (enumerator2.MoveNext()) { ResPrice current = enumerator2.Current; num3 = price * quantity; } } } } object obj2 = dtrcj.Rows[0][firstResourceType]; obj2 = (obj2 == null) ? 0 : obj2; dtrcj.Rows[0][firstResourceType] = Convert.ToInt32(obj2) + num3; } } }
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++; } }