public bool SaveProcurementPlan(Model.ProcurementPlan pp) { ClearPPSessionData(); using (var context = new SCMSEntities()) { if (pp.Id.Equals(Guid.Empty)) { var ppEntity = context.ProcurementPlans.FirstOrDefault(p => p.ProjectDonorId == pp.ProjectDonorId); var pd = context.ProjectDonors.FirstOrDefault(p => p.Id == pp.ProjectDonorId); pp.RefNumber = "PP/DRC/" + pd.Project.CountryProgramme.Country.ShortName + "/" + pd.ProjectNumber; if (ppEntity != null) { ppEntity.PreparedBy = pp.PreparedBy; ppEntity.PreparedOn = pp.PreparedOn; ppEntity.PreparingOfficeId = pp.PreparingOfficeId; //let the object reference point to the existing entity from the db pp.Id = ppEntity.Id; } else { pp.Id = Guid.NewGuid(); context.ProcurementPlans.Add(pp); } } else { var existing = context.ProcurementPlans.FirstOrDefault(p => p.Id == pp.Id); context.Entry(existing).CurrentValues.SetValues(pp); } return(context.SaveChanges() > 0); } }
public ActionResult AddPPItemsToPO(Model.ProcurementPlan pp) { Model.PurchaseOrder po = poService.GetPurchaseOrderById(pp.PurchaseOrderId); Model.PurchaseOrderItem poItem; Model.ProcurementPlanItem item; if (po.TotalAmount == null) { po.TotalAmount = 0; } foreach (var ppItem in pp.PPItemList) { if (ppItem.AddedToOR) { item = ppService.GetProcurementPlanItemById(ppItem.Id); poItem = new PurchaseOrderItem { BudgetLineId = item.BudgetLineId, ProcurementPlanItemId = item.Id, PurchaseOrderId = po.Id, Quantity = ppItem.QuantityToOrder, TotalPrice = ppItem.TotalCost, UnitPrice = (double)ppItem.UnitCost }; po.TotalAmount += ppItem.TotalCost; poService.SavePOItem(poItem); } } poService.SaveReviewedPO(po); return(LoadPOItems(po.Id)); }