private void DiscountComboBox_SelectionChanged(object sender, Syncfusion.XForms.ComboBox.SelectionChangedEventArgs e) { var discount = vm.SelectedDiscount; vm.SelectedSaleLine.DiscountId = discount.Id; if (discount.Discount == "Senior Citizen Discount") { decimal price; decimal discountAmount; vm.SelectedSaleLine.DiscountRate = discount.DiscountRate; if (vm.SelectedSaleLine.TaxRate > 0) { price = Math.Round(vm.SelectedSaleLine.Price - Math.Round(vm.SelectedSaleLine.Price / (1 + vm.SelectedSaleLine.TaxRate / 100) * (vm.SelectedSaleLine.TaxRate / 100), 2), 2); } else { price = Math.Round(vm.SelectedSaleLine.Price, 2); } discountAmount = Math.Round(price * Math.Round(discount.DiscountRate / 100, 2), 2); vm.SelectedSaleLine.DiscountAmount = Math.Round(discountAmount, 2); vm.SelectedSaleLine.NetPrice = Math.Round(vm.SelectedSaleLine.Price, 2) - Math.Round(discountAmount, 2); vm.SelectedSaleLine.Amount = vm.ComputeAmount(); vm.SelectedSaleLine.TaxAmount = vm.ComputeVatAmount(); } else { if (discount.Discount == "Variable Discount") { vm.CanEditDiscount = false; } else { vm.CanEditDiscount = true; } var discountRate = vm.SelectedSaleLine.DiscountRate > 0 ? vm.SelectedSaleLine.DiscountRate : discount.DiscountRate; vm.SelectedSaleLine.DiscountRate = Math.Round(discountRate, 2); if (discount.Discount != "Variable Discount") { vm.SelectedSaleLine.DiscountAmount = Math.Round(vm.SelectedSaleLine.Price, 2) * Math.Round(discountRate / 100, 2); } else { vm.SelectedSaleLine.DiscountAmount = vm.SelectedSaleLine.DiscountRate > 0 ? vm.SelectedSaleLine.DiscountAmount : Math.Round(vm.SelectedSaleLine.Price, 2) * Math.Round(discountRate / 100, 2); } vm.SelectedSaleLine.NetPrice = Math.Round(vm.SelectedSaleLine.Price, 2) - Math.Round(vm.SelectedSaleLine.DiscountAmount, 2); vm.SelectedSaleLine.Amount = vm.ComputeAmount(); vm.SelectedSaleLine.TaxAmount = vm.ComputeVatAmount(); } vm.ExecuteRefreshSelectedSaleLine(); }