コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
ファイル: BudTemplate.cs プロジェクト: zxl881203/src
        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);
        }
コード例 #6
0
 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();
     }
 }
コード例 #7
0
 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);
             }
         }
     }
 }
コード例 #8
0
 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();
     }
 }
コード例 #9
0
 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();
     }
 }
コード例 #10
0
        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++;
            }
        }