private void Button_Click(object sender, RoutedEventArgs e) { //Initialize Tax table rates using ordered dictionaries OrderedDictionary payetable = new OrderedDictionary(); OrderedDictionary nitable = new OrderedDictionary(); OrderedDictionary sltable = new OrderedDictionary(); OrderedDictionary empnitable = new OrderedDictionary(); string YearSelected = Year.SelectedItem.ToString(); //Checks to see if NI Category is not null otherwise select the default if (NICategory.SelectedItem == null){ NICategory.SelectedItem = ReadXML("//YearEnd[@Year='" + YearSelected + "']/NIContributions/DefaultBand").First(); } string BandLetter = NICategory.SelectedItem.ToString(); decimal personalAllowance = 0m; string taxCodeLetter = "L"; //Reads the tax rates from the XML file nitable = ReadRatesXML("//YearEnd[@Year='"+YearSelected+"']/NIContributions/Band[@letter='"+BandLetter+"']"); sltable = ReadRatesXML("//YearEnd[@Year='" + YearSelected + "']/StudentLoan"); empnitable = ReadRatesXML("//YearEnd[@Year='" + YearSelected + "']/EmployersNI/Band[@letter='" + BandLetter + "']"); payetable = CreatePayeTable(YearSelected, out personalAllowance, out taxCodeLetter); //Initializes Tax objects Tax PAYE = new PAYETax("PAYE", taxCodeLetter, payetable); Tax NI = new Tax("National Insurance",nitable); Tax empNI = new Tax("Employer's National Insurance",empnitable); Tax SL = new Tax("Student Loan", sltable); List<Tax> taxes = new List<Tax> { PAYE, NI }; List<Tax> taxesPayable = new List<Tax> { PAYE, NI ,empNI}; //Checks if Student Loans is selected if (SLDeductions.IsChecked == true) { taxes.Add(SL); taxesPayable.Add(SL); StudentLoanRow.Height = new GridLength(0,GridUnitType.Auto); } else { StudentLoanRow.Height = new GridLength(0); } decimal Amount = 0m; decimal.TryParse(Salary.Text, out Amount); //Calculates which period we are using switch (Period.SelectionBoxItem.ToString()) { case "Month": Amount = Amount * 12; break; case "Week": Amount = Amount * 52; break; default: Period.Text = "Year"; break; } decimal GrossAmount = 0; //Checks to see whether we are calculating gross or net if (Net.IsChecked == true) { GrossAmount = CalculateGrossSalary(Amount, taxes); } else { GrossAmount = Amount; } //Displays the various calculations GrossYearlyAmount.Content = GrossAmount; GrossMonthlyAmount.Content = (GrossAmount / 12); GrossWeeklyAmount.Content = (GrossAmount / 52); decimal PAYEAmount = PAYE.CalculateTax(GrossAmount); PAYEYearlyAmount.Content = PAYEAmount; PAYEMonthlyAmount.Content = (PAYEAmount / 12); PAYEWeeklyAmount.Content = (PAYEAmount / 52); decimal NIAmount = NI.CalculateTax(GrossAmount); NIYearlyAmount.Content = NIAmount; NIMonthlyAmount.Content = (NIAmount / 12); NIWeeklyAmount.Content = (NIAmount / 52); decimal SLAmount = SL.CalculateTax(GrossAmount); SLYearlyAmount.Content = SLAmount; SLMonthlyAmount.Content = (SLAmount / 12); SLWeeklyAmount.Content = (SLAmount / 52); decimal NetAmount = CalculateNetSalary(GrossAmount,taxes); NetYearlyAmount.Content = NetAmount; NetMonthlyAmount.Content = (NetAmount / 12); NetWeeklyAmount.Content = (NetAmount / 52); decimal empNIAmount = empNI.CalculateTax(GrossAmount); empNIYearlyAmount.Content = empNIAmount; empNIMonthlyAmount.Content = (empNIAmount / 12); empNIWeeklyAmount.Content = (empNIAmount / 52); decimal TotalTaxAmount = CalculateTotalTax(GrossAmount, taxesPayable); TotalTaxYearlyAmount.Content = TotalTaxAmount; TotalTaxMonthlyAmount.Content = (TotalTaxAmount / 12); TotalTaxWeeklyAmount.Content = (TotalTaxAmount / 52); }
private void Button_Click(object sender, RoutedEventArgs e) { //Initialize Tax table rates using ordered dictionaries OrderedDictionary payetable = new OrderedDictionary(); OrderedDictionary nitable = new OrderedDictionary(); OrderedDictionary sltable = new OrderedDictionary(); OrderedDictionary empnitable = new OrderedDictionary(); string YearSelected = Year.SelectedItem.ToString(); //Checks to see if NI Category is not null otherwise select the default if (NICategory.SelectedItem == null) { NICategory.SelectedItem = ReadXML("//YearEnd[@Year='" + YearSelected + "']/NIContributions/DefaultBand").First(); } string BandLetter = NICategory.SelectedItem.ToString(); decimal personalAllowance = 0m; string taxCodeLetter = "L"; //Reads the tax rates from the XML file nitable = ReadRatesXML("//YearEnd[@Year='" + YearSelected + "']/NIContributions/Band[@letter='" + BandLetter + "']"); sltable = ReadRatesXML("//YearEnd[@Year='" + YearSelected + "']/StudentLoan"); empnitable = ReadRatesXML("//YearEnd[@Year='" + YearSelected + "']/EmployersNI/Band[@letter='" + BandLetter + "']"); payetable = CreatePayeTable(YearSelected, out personalAllowance, out taxCodeLetter); //Initializes Tax objects Tax PAYE = new PAYETax("PAYE", taxCodeLetter, payetable); Tax NI = new Tax("National Insurance", nitable); Tax empNI = new Tax("Employer's National Insurance", empnitable); Tax SL = new Tax("Student Loan", sltable); List <Tax> taxes = new List <Tax> { PAYE, NI }; List <Tax> taxesPayable = new List <Tax> { PAYE, NI, empNI }; //Checks if Student Loans is selected if (SLDeductions.IsChecked == true) { taxes.Add(SL); taxesPayable.Add(SL); StudentLoanRow.Height = new GridLength(0, GridUnitType.Auto); } else { StudentLoanRow.Height = new GridLength(0); } decimal Amount = 0m; decimal.TryParse(Salary.Text, out Amount); //Calculates which period we are using switch (Period.SelectionBoxItem.ToString()) { case "Month": Amount = Amount * 12; break; case "Week": Amount = Amount * 52; break; default: Period.Text = "Year"; break; } decimal GrossAmount = 0; //Checks to see whether we are calculating gross or net if (Net.IsChecked == true) { GrossAmount = CalculateGrossSalary(Amount, taxes); } else { GrossAmount = Amount; } //Displays the various calculations GrossYearlyAmount.Content = GrossAmount; GrossMonthlyAmount.Content = (GrossAmount / 12); GrossWeeklyAmount.Content = (GrossAmount / 52); decimal PAYEAmount = PAYE.CalculateTax(GrossAmount); PAYEYearlyAmount.Content = PAYEAmount; PAYEMonthlyAmount.Content = (PAYEAmount / 12); PAYEWeeklyAmount.Content = (PAYEAmount / 52); decimal NIAmount = NI.CalculateTax(GrossAmount); NIYearlyAmount.Content = NIAmount; NIMonthlyAmount.Content = (NIAmount / 12); NIWeeklyAmount.Content = (NIAmount / 52); decimal SLAmount = SL.CalculateTax(GrossAmount); SLYearlyAmount.Content = SLAmount; SLMonthlyAmount.Content = (SLAmount / 12); SLWeeklyAmount.Content = (SLAmount / 52); decimal NetAmount = CalculateNetSalary(GrossAmount, taxes); NetYearlyAmount.Content = NetAmount; NetMonthlyAmount.Content = (NetAmount / 12); NetWeeklyAmount.Content = (NetAmount / 52); decimal empNIAmount = empNI.CalculateTax(GrossAmount); empNIYearlyAmount.Content = empNIAmount; empNIMonthlyAmount.Content = (empNIAmount / 12); empNIWeeklyAmount.Content = (empNIAmount / 52); decimal TotalTaxAmount = CalculateTotalTax(GrossAmount, taxesPayable); TotalTaxYearlyAmount.Content = TotalTaxAmount; TotalTaxMonthlyAmount.Content = (TotalTaxAmount / 12); TotalTaxWeeklyAmount.Content = (TotalTaxAmount / 52); }