public ActionResult LoadRequestItem(Guid id, OrderRequestItem entity) { if (!orderRequestService.ItemAlreadyAddedToOR(entity.ItemId, id)) { if (entity.OrderRequestId.Equals(Guid.Empty)) { entity.OrderRequestId = id; } else { id = entity.OrderRequestId; } if (orderRequestService.AddOrderRequstItem(entity, UserSession.CurrentSession.NewOR)) { ViewBag.OrderRequestID = entity.OrderRequestId; ViewBag.Response = 1; ViewBag.msg = Resources.OrderRequestController_String_ORItemSaved; UserSession.CurrentSession.NewOR = null; } ModelState.Clear(); } else { ViewBag.Response = 0; ViewBag.msg = Resources.OrderRequestController_String_ItemAlreadyAdded; } return(ViewOrderRequestItems(id)); }
public ActionResult AddPPItems2OR(ProcurementPlan model) { Model.OrderRequest or = UserSession.CurrentSession.NewOR != null ? UserSession.CurrentSession.NewOR : orderRequestService.GetOrderRequestById(model.OrderRequestId); Model.OrderRequestItem orItem; ProcurementPlanItem ppItem; foreach (ProcurementPlanItem ppItemModel in model.PPItemList) { if (!ppItemModel.AddedToOR) { continue; } ppItem = ppService.GetProcurementPlanItemById(ppItemModel.Id); orItem = new OrderRequestItem(); orItem.BudgetLineId = ppItem.BudgetLineId; orItem.EstimatedUnitPrice = exchangeRateService.GetForeignCurrencyValue(or.CurrencyId, ppItem.CurrencyId, ppItemModel.UnitCost, countryProg.Id); orItem.EstimatedPrice = orItem.EstimatedUnitPrice * ppItemModel.QuantityToOrder; orItem.Quantity = ppItemModel.QuantityToOrder; orItem.ItemDescription = ppItem.ItemDescription; orItem.ItemId = ppItem.ItemId; orItem.OrderRequestId = model.OrderRequestId; orItem.ProcurementPlanItemId = ppItem.Id; orderRequestService.AddOrderRequstItem(orItem, UserSession.CurrentSession.NewOR); if (UserSession.CurrentSession.NewOR != null) { UserSession.CurrentSession.NewOR = null; } } return(ViewOrderRequestItems(model.OrderRequestId)); }
private ViewPOs ViewPurchaseOrdersDetails(Guid id) { ViewPOrderItems POItmz; List <ViewPOrderItems> POItemList = new List <ViewPOrderItems>(); using (var context = new SCMSEntities()) { Model.PurchaseOrder Po = context.PurchaseOrders.SingleOrDefault(p => p.Id == id); ICollection <PurchaseOrderItem> POItemz = Po.PurchaseOrderItems; foreach (PurchaseOrderItem item in POItemz) { POItmz = new ViewPOrderItems(); POItmz.EntityPOItem = item; POItmz.BudgetLine = context.ProjectBudgets.SingleOrDefault(p => p.Id == item.BudgetLineId).LineNumber; POItmz.ProjectNo = item.PurchaseOrder.OrderRequest.ProjectDonor.ProjectNumber; POItmz.Unitmessue = context.UnitOfMeasures.SingleOrDefault(p => p.Id == item.OrderRequestItem.Item.UnitOfMessureId).Code; OrderRequestItem orit = item.OrderRequestItem; Item itm = orit.Item; POItemList.Add(POItmz); } ViewPOs model = new ViewPOs(); model.POEntiy = Po; model.supplier = context.Suppliers.SingleOrDefault(p => p.Id == Po.SupplierId).Name; model.paymentTerm = context.PaymentTerms.SingleOrDefault(p => p.Id == Po.PaymentTermId).Code; model.shippingTerm = context.ShippingTerms.SingleOrDefault(p => p.Id == Po.ShippingTermId).Name; model.POItems = POItemList; model.deleliveryDate = (DateTime)Po.LatestDeliveryDate; model.PODate = (DateTime)Po.PreparedOn; model.StaffEntity = context.Staffs.SingleOrDefault(p => p.Id == Po.PreparedBy); model.TotalAmount = Po.TotalAmount; model.MBValue = Po.MBValue; Person ps = model.StaffEntity.Person; Designation ds = model.StaffEntity.Designation; if ((bool)Po.IsApproved) { Staff authoriz = context.Staffs.SingleOrDefault(p => p.Id == Po.ApprovedBy); model.AuthorizTitle = authoriz.Designation.Name; model.AuthorizdBy = authoriz.Person.FirstName + " " + authoriz.Person.OtherNames; model.AuthorizDate = Po.ApprovedOn.Value.ToString(Constants.DATETIME_FORMAT); } Model.OrderRequest or = Po.OrderRequest; Location loc = Po.Location; model.Currency = or.Currency.ShortName; model.MBCurrency = or.CountryProgramme.Currency.ShortName; return(model); } }
public ActionResult AddItemInEditMode(Guid id) { Model.OrderRequest or = orderRequestService.GetOrderRequestById(id); List <BudgetLineView> blList = orderRequestService.GetProjectBugdetLines((Guid)or.ProjectDonorId); OrderRequestItem model = new OrderRequestItem { Id = Guid.Empty, BudgetLines = new SelectList(blList, "Id", "Description"), Items = new SelectList(orderRequestService.GetItems(), "Id", "Name"), OrderRequestId = id }; ViewBag.Action = Resources.Global_String_Add; return(View("AddItemInEditMode", model)); }
private ActionResult PopulateCreateItem(Guid id, string errormessage = "", Guid?selectedItem = null) { Model.OrderRequest or = UserSession.CurrentSession.NewOR == null?orderRequestService.GetOrderRequestById(id) : UserSession.CurrentSession.NewOR; List <BudgetLineView> blList = orderRequestService.GetProjectBugdetLines((Guid)or.ProjectDonorId); OrderRequestItem model = new OrderRequestItem { BudgetLines = new SelectList(blList, "Id", "Description"), Items = new SelectList(orderRequestService.GetItems(), "Id", "Name"), OrderRequestId = id }; if (selectedItem.HasValue) { model.ItemId = selectedItem.Value; } return(View("LoadRequestItem", model)); }
public decimal CalculateAmount(OrderRequestItem ori) { var oneTimeRentalFee = int.Parse(GetOrUpdateCacheItem("oneTimeRentalFee", () => _settingRepository.GetSettingsAsync("oneTimeRentalFee"))); var premiumDailyFee = int.Parse(GetOrUpdateCacheItem("premiumDailyFee", () => _settingRepository.GetSettingsAsync("premiumDailyFee"))); var regularDailyFee = int.Parse(GetOrUpdateCacheItem("regularDailyFee", () => _settingRepository.GetSettingsAsync("regularDailyFee"))); //get total number of days var amount = 0; var check = int.TryParse(NumberOfDays(ori.StartDate, ori.EndDate), out var numberOfDays); if (!check) { return(amount); } switch (ori.Equipment.EquipmentType) { case EquipmentType.Heavy: //Heavy – rental price is one-time rental fee plus premium fee for each day rented. amount = amount + oneTimeRentalFee + (numberOfDays * premiumDailyFee); break; case EquipmentType.Regular: //Regular – rental price is one - time rental fee plus premium fee for the first 2 days plus regular fee for the number of days over 2. var firstHalf = 0; var secondHalf = 0; firstHalf = numberOfDays >= 2 ? firstHalf + 2 * premiumDailyFee : firstHalf + premiumDailyFee; if (numberOfDays > 2) { secondHalf = secondHalf + (numberOfDays - 2) * regularDailyFee; } amount = amount + oneTimeRentalFee + firstHalf + secondHalf; break; case EquipmentType.Specialized: // • Specialized – rental price is premium fee for the first 3 days plus regular fee times the number of days over 3. var sSecondHalf = 0; decimal sFirstHalf; if (numberOfDays <= 2) { if (numberOfDays == 2) { sFirstHalf = 2 * premiumDailyFee; } else { sFirstHalf = premiumDailyFee; } } else { sFirstHalf = 3 * premiumDailyFee; } if (numberOfDays > 3) { sSecondHalf = (numberOfDays - 3) * regularDailyFee; } amount = (int)(amount + sFirstHalf + sSecondHalf); break; default: throw new ArgumentOutOfRangeException(); } return(amount); }