public void GetGST_GSTRATE_GetByKey() { // Setup dependency var settingsMock = new Mock<ISettings>(); var repositoryMock = new Mock<IRepository>(); var uoMock = new Mock<IUnitOfWork>(); var serviceLocatorMock = new Mock<IServiceLocator>(); serviceLocatorMock.Setup(x => x.GetInstance<IRepository>()) .Returns(repositoryMock.Object); ServiceLocator.SetLocatorProvider(() => serviceLocatorMock.Object); // Arrange Guid id = Guid.NewGuid(); SystemConfig sys = new SystemConfig() { Name = "GST_RATE", Value ="1234" }; SystemConfig [] systems = new SystemConfig[] {sys}; repositoryMock.Setup(e => e.Query<SystemConfig>()).Returns(systems.AsQueryable()); // Act var systemConfigService = new SystemConfigService(uoMock.Object, repositoryMock.Object, settingsMock.Object); decimal actulvalue = systemConfigService.GetGST(); // Assert Assert.AreEqual(decimal.Parse(sys.Value, CultureInfo.InvariantCulture), actulvalue); }
// Subtract GST public Decimal SubtractGSTCalculator(decimal price) { SystemConfigService sysConfig = new SystemConfigService(UnitOfWork, Repository, Settings); decimal gst = sysConfig.GetGST(); decimal gstAmount = price - (price / (gst + 1)); return decimal.Round(gstAmount, 2, MidpointRounding.AwayFromZero); }
/// <summary> /// (the specialists rate + TeleConsult mark up) + (virtual consultation cost + TeleConsult mark up) + Sales Tax if applicable /// </summary> /// <param name="specRate"></param> /// <param name="gstOnSpecRate"> = 1 if this specialization doesnot apply gst</param> /// <param name="platformCost"></param> /// <param name="gstOnPlatformCost"></param> /// <returns>customer rate - already has money rounding</returns> public decimal GetCustomerRate(decimal specRate, bool appliedGST) { SystemConfigService systemConfig = new SystemConfigService(UnitOfWork, Repository, Settings); //default tax = 0.1 (10%) decimal tax = systemConfig.GetGST() + 1; // commission = 2% = 0.02 decimal commission = systemConfig.GetValueByKey(ParamatricBusinessRules.COMMISSION_LEVELS.ToString()) / 100; decimal basicFee = systemConfig.GetValueByKey(ParamatricBusinessRules.BASIC_FEE.ToString()); if (!appliedGST) { tax = 1; } decimal rate = (specRate * (1 + commission) + basicFee) * tax; return Utilities.RoundMoney(rate); }