Example #1
0
 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);
     }
 }
Example #2
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));
 }