示例#1
0
 public IHttpActionResult CreatePriceList(Pricelist priceList)
 {
     _pricingService.SavePricelists(new[] { priceList });
     return(Ok(priceList));
 }
示例#2
0
        protected void BindData()
        {
            StringBuilder allowedTokensString = new StringBuilder();

            string[] allowedTokens = Pricelist.GetListOfAllowedTokens();
            for (int i = 0; i < allowedTokens.Length; i++)
            {
                string token = allowedTokens[i];
                allowedTokensString.Append(token);
                if (i != allowedTokens.Length - 1)
                {
                    allowedTokensString.Append(", ");
                }
            }
            this.lblAllowedTokens.Text = allowedTokensString.ToString();

            Pricelist pricelist = ProductManager.GetPricelistById(this.PricelistId);

            if (pricelist != null)
            {
                this.txtAdminNotes.Text    = pricelist.AdminNotes;
                this.txtBody.Text          = pricelist.Body;
                this.txtCacheTime.Value    = pricelist.CacheTime;
                this.txtDescription.Text   = pricelist.Description;
                this.txtDisplayName.Text   = pricelist.DisplayName;
                this.txtFooter.Text        = pricelist.Footer;
                this.txtHeader.Text        = pricelist.Header;
                this.txtPricelistGuid.Text = pricelist.PricelistGuid;
                this.txtShortName.Text     = pricelist.ShortName;
                CommonHelper.SelectListItem(this.ddlExportMode, pricelist.ExportModeId);
                CommonHelper.SelectListItem(this.ddlExportType, pricelist.ExportTypeId);
                CommonHelper.SelectListItem(this.ddlPriceAdjustmentType, pricelist.PriceAdjustmentTypeId);
                CommonHelper.SelectListItem(this.ddlAffiliate, pricelist.AffiliateId);
                this.chkOverrideIndivAdjustment.Checked  = pricelist.OverrideIndivAdjustment;
                this.txtPriceAdjustment.Value            = pricelist.PriceAdjustment;
                this.ddlFormatLocalization.SelectedValue = pricelist.FormatLocalization;

                var productVariants = new List <ProductVariant>();
                var products        = ProductManager.GetAllProducts();
                foreach (Product product in products)
                {
                    productVariants.AddRange(product.ProductVariants);
                }
                if (productVariants.Count > 0)
                {
                    gvProductVariants.DataSource = productVariants;
                    gvProductVariants.DataBind();
                }
            }
            else
            {
                ddlFormatLocalization.SelectedValue = System.Globalization.CultureInfo.CurrentCulture.IetfLanguageTag;

                var productVariants = new List <ProductVariant>();
                var products        = ProductManager.GetAllProducts();
                foreach (Product product in products)
                {
                    productVariants.AddRange(product.ProductVariants);
                }
                if (productVariants.Count > 0)
                {
                    gvProductVariants.DataSource = productVariants;
                    gvProductVariants.DataBind();
                }
            }
        }
        public async Task CreatePrice()
        {
            var pricelist = new Pricelist {
                Id = 1
            };
            var catalogItem = new CatalogItem {
                Id = 2, Kind = CatalogItemKind.Weight, Name = "1t", Value = 1000
            };

            var  name = "some name";
            byte commissionPercentage = 10;
            var  perKm          = 1m;
            var  loading        = 2m;
            var  lockedSteering = 3m;
            var  lockedWheel    = 4m;
            var  overturned     = 5m;
            var  ditch          = 6m;

            Suite.PricelistServiceMock
            .Setup(m => m.Get(pricelist.Id))
            .ReturnsAsync(pricelist);
            Suite.PricelistServiceMock
            .Setup(m => m.IsExist(pricelist.Id))
            .ReturnsAsync(true);
            Suite.CatalogItemServiceMock
            .Setup(m => m.Get(catalogItem.Id))
            .ReturnsAsync(catalogItem);
            Suite.CatalogItemServiceMock
            .Setup(m => m.IsExist(catalogItem.Id))
            .ReturnsAsync(true);
            Suite.PriceRepositoryMock
            .Setup(m => m.Get(pricelist.Id, catalogItem.Id))
            .Returns(Task.FromResult <Price>(null));

            var result = await Suite.PriceService.Create(
                pricelist.Id,
                catalogItem.Id,
                name,
                commissionPercentage,
                perKm,
                loading,
                lockedSteering,
                lockedWheel,
                overturned,
                ditch);

            Suite.PriceRepositoryMock
            .Verify(m => m.Add(It.Is <Price>(
                                   p => p.PricelistId.Equals(pricelist.Id) &&
                                   p.CatalogItemId.Equals(catalogItem.Id) &&
                                   p.Name.Equals(name) &&
                                   p.CommissionPercentage.Equals(commissionPercentage) &&
                                   p.PerKm.Equals(perKm) &&
                                   p.Loading.Equals(loading) &&
                                   p.LockedSteering.Equals(lockedSteering) &&
                                   p.LockedWheel.Equals(lockedWheel) &&
                                   p.Overturned.Equals(overturned) &&
                                   p.Ditch.Equals(ditch))));

            Suite.PriceRepositoryMock
            .Verify(m => m.Save());

            Assert.Equal(pricelist.Id, result.PricelistId);
            Assert.Equal(catalogItem.Id, result.CatalogItemId);
            Assert.Equal(name, result.Name);
            Assert.Equal(commissionPercentage, result.CommissionPercentage);
            Assert.Equal(perKm, result.PerKm);
            Assert.Equal(loading, result.Loading);
            Assert.Equal(lockedSteering, result.LockedSteering);
            Assert.Equal(lockedWheel, result.LockedWheel);
            Assert.Equal(overturned, result.Overturned);
            Assert.Equal(ditch, result.Ditch);
        }
示例#4
0
        public GetVehiclesPageResult GetVehiclesPage(int pageIndex)
        {
            string         name        = User.Identity.Name;
            RAIdentityUser user        = db.Users.Get(name);
            IdentityRole   managerRole = db.Roles.GetAll().FirstOrDefault(role => role.Name == "Manager");
            bool           isManager   = false;

            if (user != null)
            {
                foreach (IdentityUserRole userRole in user.Roles)
                {
                    if (userRole.RoleId == managerRole.Id)
                    {
                        isManager = true;
                        break;
                    }
                }
            }
            List <VehicleDTO>     vehiclesDTO = new List <VehicleDTO>();
            IEnumerable <Vehicle> vehicles;

            if (isManager)
            {
                vehicles = db.Vehicles.GetVehiclePageWithImages(pageIndex, 4);
            }
            else
            {
                vehicles = db.Vehicles.GetAvailableVehiclePageWithImages(pageIndex, 4);
            }

            foreach (Vehicle vehicle in vehicles)
            {
                Service    service    = db.Services.GetWithItemsAndPricelists(vehicle.VehicleServiceId);
                VehicleDTO vehicleDTO = new VehicleDTO(vehicle);
                if (service.Pricelists.Count > 0)
                {
                    Pricelist actualPriceList = service.Pricelists[0];
                    foreach (Pricelist pricelist in service.Pricelists.Where(p => p.BeginTime <= DateTime.Now.Date))
                    {
                        if (pricelist.EndTime > actualPriceList.EndTime)
                        {
                            actualPriceList = pricelist;
                        }
                    }
                    try
                    {
                        Item item = actualPriceList.Items.First(i => i.ItemVehicleId == vehicle.Id);
                        vehicleDTO.PricePerHour = item.Price;
                    }
                    catch (Exception e)
                    {
                        vehicleDTO.PricePerHour = 0;
                    }
                }
                else
                {
                    vehicleDTO.PricePerHour = 0;
                }
                vehiclesDTO.Add(vehicleDTO);
            }
            GetVehiclesPageResult result = new GetVehiclesPageResult();

            result.Vehicles = vehiclesDTO;
            result.Count    = db.Vehicles.Count();
            return(result);
        }
        public Pricelist SaveInfo()
        {
            int affiliateId = int.Parse(ddlAffiliate.SelectedValue);

            PriceListExportModeEnum exportMode          = (PriceListExportModeEnum)Enum.ToObject(typeof(PriceListExportModeEnum), int.Parse(this.ddlExportMode.SelectedItem.Value));
            PriceListExportTypeEnum exportType          = (PriceListExportTypeEnum)Enum.ToObject(typeof(PriceListExportTypeEnum), int.Parse(this.ddlExportType.SelectedItem.Value));
            PriceAdjustmentTypeEnum priceAdjustmentType = (PriceAdjustmentTypeEnum)Enum.ToObject(typeof(PriceAdjustmentTypeEnum), int.Parse(this.ddlPriceAdjustmentType.SelectedItem.Value));
            decimal priceAdjustment = txtPriceAdjustment.Value;

            Pricelist pricelist = this.ProductService.GetPricelistById(this.PricelistId);

            if (pricelist != null)
            {
                pricelist.ExportModeId       = (int)exportMode;
                pricelist.ExportTypeId       = (int)exportType;
                pricelist.AffiliateId        = affiliateId;
                pricelist.DisplayName        = this.txtDisplayName.Text;
                pricelist.ShortName          = this.txtShortName.Text;
                pricelist.PricelistGuid      = this.txtPricelistGuid.Text;
                pricelist.CacheTime          = this.txtCacheTime.Value;
                pricelist.FormatLocalization = this.ddlFormatLocalization.SelectedValue;
                pricelist.Description        = this.txtDescription.Text;
                pricelist.AdminNotes         = this.txtAdminNotes.Text;
                pricelist.Header             = this.txtHeader.Text;
                pricelist.Body   = this.txtBody.Text;
                pricelist.Footer = this.txtFooter.Text;
                pricelist.PriceAdjustmentTypeId   = (int)priceAdjustmentType;
                pricelist.PriceAdjustment         = priceAdjustment;
                pricelist.OverrideIndivAdjustment = chkOverrideIndivAdjustment.Checked;
                pricelist.UpdatedOn = DateTime.UtcNow;

                this.ProductService.UpdatePricelist(pricelist);

                SavePricelistChanges(pricelist.PricelistId);
            }
            else
            {
                pricelist = new Pricelist();
                pricelist.ExportModeId       = (int)exportMode;
                pricelist.ExportTypeId       = (int)exportType;
                pricelist.AffiliateId        = affiliateId;
                pricelist.DisplayName        = this.txtDisplayName.Text;
                pricelist.ShortName          = this.txtShortName.Text;
                pricelist.PricelistGuid      = this.txtPricelistGuid.Text;
                pricelist.CacheTime          = this.txtCacheTime.Value;
                pricelist.FormatLocalization = this.ddlFormatLocalization.SelectedValue;
                pricelist.Description        = this.txtDescription.Text;
                pricelist.AdminNotes         = this.txtAdminNotes.Text;
                pricelist.Header             = this.txtHeader.Text;
                pricelist.Body   = this.txtBody.Text;
                pricelist.Footer = this.txtFooter.Text;
                pricelist.PriceAdjustmentTypeId   = (int)priceAdjustmentType;
                pricelist.PriceAdjustment         = priceAdjustment;
                pricelist.OverrideIndivAdjustment = chkOverrideIndivAdjustment.Checked;
                pricelist.CreatedOn = DateTime.UtcNow;
                pricelist.UpdatedOn = DateTime.UtcNow;

                this.ProductService.InsertPricelist(pricelist);

                SavePricelistChanges(pricelist.PricelistId);
            }

            return(pricelist);
        }
示例#6
0
        public IHttpActionResult PostPricelist(TicketPricesHelpModel t)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //validacije
            if (t.Hourly <= 0 || t.Daily <= 0 || t.Monthly <= 0 || t.Yearly <= 0)
            {
                return(Content(HttpStatusCode.BadRequest, "Prices can't be less then 1!"));
            }
            if (t.PriceList.StartOfValidity.ToString() == "" || t.PriceList.EndOfValidity.ToString() == "" || t.PriceList.StartOfValidity == null || t.PriceList.EndOfValidity == null)
            {
                return(Content(HttpStatusCode.BadRequest, "Start or end of validity can't be empty!"));
            }
            if (t.PriceList.StartOfValidity.Value.Date < DateTime.Now.Date)
            {
                return(Content(HttpStatusCode.BadRequest, "You can't make pricelist for past!"));
            }

            if (t.PriceList.StartOfValidity > t.PriceList.EndOfValidity)
            {
                return(Content(HttpStatusCode.BadRequest, "Start of validity is bigger then end of validity!"));
            }

            try
            {
                Pricelist prl = new Pricelist();
                prl = t.PriceList;
                prl.TicketPricess = new List <TicketPrices>();
                TicketPrices tp = new TicketPrices();
                tp.TicketTypeId = unitOfWork.TicketTypes.Find(k => k.Name == "Hourly").FirstOrDefault().Id;

                tp.Price = t.Hourly;

                prl.TicketPricess.Add(tp);
                tp = new TicketPrices();
                tp.TicketTypeId = unitOfWork.TicketTypes.Find(k => k.Name == "Daily").FirstOrDefault().Id;
                //tp.PricelistId = unitOfWork.PriceLists.Get(hm.IdPriceList).Id;
                tp.Price = t.Daily;
                prl.TicketPricess.Add(tp);
                tp = new TicketPrices();
                tp.TicketTypeId = unitOfWork.TicketTypes.Find(k => k.Name == "Monthly").FirstOrDefault().Id;
                //tp.PricelistId = unitOfWork.PriceLists.Get(hm.IdPriceList).Id;
                tp.Price = t.Monthly;
                prl.TicketPricess.Add(tp);
                tp = new TicketPrices();
                tp.TicketTypeId = unitOfWork.TicketTypes.Find(k => k.Name == "Yearly").FirstOrDefault().Id;
                //tp.PricelistId = unitOfWork.PriceLists.Get(hm.IdPriceList).Id;
                tp.Price = t.Yearly;
                prl.TicketPricess.Add(tp);

                unitOfWork.PriceLists.Add(prl);
                unitOfWork.Complete();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(NotFound());
            }
        }
 public IHttpActionResult UpdatePriceList(Pricelist priceList)
 {
     _pricingService.SavePricelists(new[] { priceList });
     return(StatusCode(HttpStatusCode.NoContent));
 }
示例#8
0
        public Pricelist GetPricelist()
        {
            Pricelist pricelist = unitOfWork.PriceLists.GetAllPricelists().ToList().FindLast(x => x.EndOfValidity.Value.Date >= DateTime.Now.Date && x.StartOfValidity.Value.Date <= DateTime.Now.Date);

            return(pricelist);
        }
示例#9
0
        public Pricelist GetPricelistLast()
        {
            Pricelist pricelist = unitOfWork.PriceLists.GetAllPricelists().ToList().Last();

            return(pricelist);
        }
 public CreatePriceListViewModel(IViewModelsFactory <IPriceListOverviewStepViewModel> vmFactory, Pricelist item)
 {
     RegisterStep(vmFactory.GetViewModelInstance(new KeyValuePair <string, object>("item", item)));
 }
 public PriceListOverviewStepViewModel(IRepositoryFactory <IPricelistRepository> repositoryFactory,
                                       IRepositoryFactory <IAppConfigRepository> appConfigRepositoryFactory,
                                       ICatalogEntityFactory entityFactory, IAuthenticationContext authContext, Pricelist item)
     : base(repositoryFactory, appConfigRepositoryFactory, entityFactory, authContext, item)
 {
 }
示例#12
0
 public int Add(Pricelist p)
 {
     throw new NotImplementedException();
 }
示例#13
0
        public async Task <ActionResult> UpdatePriceList([FromBody] Pricelist priceList)
        {
            await _pricingService.SavePricelistsAsync(new[] { priceList });

            return(NoContent());
        }
示例#14
0
        public async Task <ActionResult <Pricelist> > CreatePriceList([FromBody] Pricelist priceList)
        {
            await _pricingService.SavePricelistsAsync(new[] { priceList });

            return(Ok(priceList));
        }
示例#15
0
        public IHttpActionResult Buy(string karta, PayPalPaymentDetails paymentDetails)
        {
            var             userId = User.Identity.GetUserId();
            ApplicationUser user   = new ApplicationUser();
            UserType        userType;

            if (userId == null)
            {
                user     = this.unitOfWork.User.Get("appu");
                userType = this.unitOfWork.UserType.Get(1);
            }
            else
            {
                user = this.unitOfWork.User.Get(userId);

                userType = this.unitOfWork.UserType.Get((int)user.UserTypeID);
            }



            Pricelist pricelist = unitOfWork.Pricelist.Find(x => x.To == null).FirstOrDefault();

            if (pricelist == null)
            {
                return(BadRequest("trenutno ne postoji cenovnik"));
            }

            PriceFinal priceFinal = unitOfWork.PriceFinal.GetAll().Where(z => z.PricelistID == pricelist.ID).FirstOrDefault();

            if (priceFinal == null)
            {
                return(BadRequest("trenutno ne postoji cena trenutni cenovnik"));
            }

            DateTime dateTimeNow = DateTime.UtcNow;

            var    expires = ExpiresAt(karta);
            Ticket ticket;

            if (userId == null)
            {
                ticket = new Ticket()
                {
                    BoughtAt             = dateTimeNow,
                    PayPalPaymentDetails = paymentDetails,
                    TicketType           = karta,
                    UserID   = "appu",
                    User     = user,
                    PriceRSD = priceFinal.Price * 1,
                    Expires  = expires,
                    //PriceFinal = priceFinal
                };
            }
            else
            {
                ticket = new Ticket()
                {
                    BoughtAt             = dateTimeNow,
                    PayPalPaymentDetails = paymentDetails,
                    PriceRSD             = priceFinal.Price * userType.Coefficient,
                    TicketType           = karta,
                    UserID  = userId,
                    User    = user,
                    Expires = expires,
                    //PriceFinal = priceFinal
                };

                if (user.Status == null)
                {
                    ticket.PriceRSD = priceFinal.Price * 1;
                }
                //var str = $"Bought at:{ticket.BoughtAt}\t Price in RSD:{ticket.PriceRSD}\t Ticket type:{ticket.TicketType}\t UserID:{ticket.UserID}\n\n Thank You for using our service.";
                //SendEMailHelper.Send(user.Email, "Ticket details from transport service",
                //    str);
            }

            unitOfWork.Ticket.Add(ticket);
            //unitOfWork.Ticket.att
            unitOfWork.Complete();

            PriceFinal p = new PriceFinal()
            {
                Price       = userType.Coefficient * priceFinal.Price,
                PricelistID = pricelist.ID,
                Pricelist   = pricelist,
                Ticket      = ticket
            };


            unitOfWork.PriceFinal.Add(p);
            unitOfWork.Complete();

            ticket.PriceFinal = p;

            unitOfWork.Ticket.Update(ticket);
            unitOfWork.Complete();

            return(Ok(ticket));
        }
 public void Init(int id, Pricelist pricelist)
 {
     _pricelist = pricelist;
     base.Init(id);
 }