private static ConstructTaskItem getConstructTaskItem(this HttpRequest request, IDatabase database) { var id = request.GetInt("ConstructTaskItemID"); if (id.HasValue) return database.ConstructTaskItems.GetByID(id.Value); var constructTaskItem = new ConstructTaskItem(); return constructTaskItem; }
/// <summary> /// 处理调整后明细,加入新条目。 /// </summary> /// <param name="stage"></param> /// <param name="beforeAdjustDetail"></param> /// <param name="afterString"></param> /// <param name="Database"></param> private void processAfterAdjustDetail(Ipms.Server.Business.Adjusts.Adjust adjust, int stage, BeforeAdjustDetail beforeAdjustDetail, string afterString, Server.DataAccess.Database Database) { var afterItems = afterString.Split(new string[] { "#" }, StringSplitOptions.RemoveEmptyEntries); foreach (var afterItem in afterItems) { var afterDetails = afterItem.Split(new string[] { "," }, StringSplitOptions.None); if (afterDetails.Count() != 2) throw new Exception("调整后条目参数不正确!"); else { //设备 var device = Database.ApplyDevices.SingleOrDefault(c => c.ID.ToString() == afterDetails[0].Trim()); //设备数目 var amount = Convert.ToInt32(afterDetails[1].Trim()); //新建调整后条目 var afterAdjustDetail = new AfterAdjustDetail(); afterAdjustDetail.Adjust = adjust; //新建申购条目 MemberApplyItem memberApplyItem = new MemberApplyItem(); memberApplyItem.IsAfterAdjust = true; memberApplyItem.IsBeforeAdjust = false; memberApplyItem.MemberApply = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.MemberApply; memberApplyItem.ApplyDevice = device; memberApplyItem.LogicDevice = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.LogicDevice; memberApplyItem.CurrentState = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.CurrentState; memberApplyItem.Quantity = amount; memberApplyItem.Rank = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.Rank; memberApplyItem.Applicant = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.Applicant; memberApplyItem.ApplicantName = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.ApplicantName; memberApplyItem.PhoneNumber = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.PhoneNumber; memberApplyItem.Email = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.Email; memberApplyItem.ModifyTime = System.DateTime.Now; // memberApplyItem.ModifyBy = User; memberApplyItem.Link_url = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.Link_url; memberApplyItem.IconCls = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.IconCls; MemberApplyItemStatic newstatic = new MemberApplyItemStatic(); newstatic.Save(Database); memberApplyItem.MemberApplyItemStatic = newstatic; memberApplyItem.Save(Database); //新建建设计划条目 ConstructPlanItem constructPlanItem = new ConstructPlanItem(); constructPlanItem.MemberApplyItem = memberApplyItem; var DeviceNumberString = "TZ" + beforeAdjustDetail.ConstructPlanItem.DeviceNumber + adjust.Count.ToString(); adjust.Count++; adjust.Save(Database); while (Database.ConstructPlanItems.SingleOrDefault(c => c.DeviceNumber == DeviceNumberString) != null) { DeviceNumberString = DeviceNumberString.Substring(0, DeviceNumberString.Length - 2) + (Convert.ToInt16(DeviceNumberString.Substring(DeviceNumberString.Length - 2, 2)) + 1).ToString("00"); } constructPlanItem.DeviceNumber = DeviceNumberString; constructPlanItem.ConstructPlanPackage = beforeAdjustDetail.ConstructPlanItem.ConstructPlanPackage; //预算金额默认为申购单价乘以数量,规则待定 constructPlanItem.BudgetAmount = beforeAdjustDetail.ConstructPlanItem.MemberApplyItem.ApplyDevice.UnitPrice * amount; constructPlanItem.IsBeforeAdjust = false; constructPlanItem.IsAfterAdjust = true; constructPlanItem.Save(Database); afterAdjustDetail.ConstructPlanItem = constructPlanItem; //建设任务之后的阶段时,新建建设任务 if (stage > 0) { ConstructTaskItem constructTaskItem = new ConstructTaskItem(); constructTaskItem.Quantity = amount; constructTaskItem.ConstructTask = beforeAdjustDetail.ConstructTaskItem.ConstructTask; constructTaskItem.ConstructTask.IsSend = false; constructTaskItem.ConstructPlanItem = constructPlanItem; constructTaskItem.IsPurchasePlanItem = false; constructTaskItem.IsBeforeAdjust = false; constructTaskItem.IsAfterAdjust = true; constructTaskItem.Save(Database); afterAdjustDetail.ConstructTaskItem = constructTaskItem; ////采购计划之后的阶段时,新建采购计划 //if (stage > 1) //{ // var purchasePlanItem = new PurchasePlanItem(); // purchasePlanItem.PurchasePlanPackage = beforeAdjustDetail.PurchasePlanItem.PurchasePlanPackage; // purchasePlanItem.ConstructTaskItem = constructTaskItem; // //成员是否确认,默认未确认。可修改 // purchasePlanItem.IsAffirm = false; // purchasePlanItem.IsBeforeAdjust = false; // purchasePlanItem.IsAfterAdjust = true; // purchasePlanItem.Save(Database); // afterAdjustDetail.PurchasePlanItem = purchasePlanItem; // //采购计划之后的阶段时,新建采购计划 // if (stage > 2) // { // //流标的条目下达采购指令 // var purchaseOrderItem = new PurchaseOrderItem(); // purchaseOrderItem.PurchasePlanItem = purchasePlanItem; // purchaseOrderItem.IsAfterAdjust = true; // purchaseOrderItem.PurchaseOrderPackage = Database.PurchaseOrderPackages.SingleOrDefault(c => c.PurchasePlanPackage == beforeAdjustDetail.PurchasePlanItem.PurchasePlanPackage); // purchaseOrderItem.Save(Database); // } //} } afterAdjustDetail.Save(Database); } } }