Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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);
        }