private void CalculateAndShowSalaryReport(object sender, EventArgs e) { try { var factors = new Factors { WorkedHours = StringParser.StringToDouble( string.IsNullOrEmpty(WorkedHours.Text) ? throw new ArgumentException(ErrorMessages.MissingWorkedHours) : WorkedHours.Text), HourlyFee = StringParser.StringToDouble( string.IsNullOrEmpty(HourlyFee.Text) ? throw new ArgumentException(ErrorMessages.MissingHourlyFee) : HourlyFee.Text), WorkedMonth = MonthsDropDown.SelectedIndex + 1 }; var monthSalaryReport = new MonthSalaryReport(_monthsWorkingHours, factors); var textReport = new SimpleTextReportBuilder() .BuildMonthlyReport(monthSalaryReport); new CalculatorReportWindow(textReport).ShowDialog(); } catch (Exception exception) { MessageBox.Show(exception.Message, "Uwaga"); } }
static void Main() { while (true) { try { System.Console.WriteLine("PROGRAM DO OBLICZANIA WYNAGRODZENIA ZA NADGODZINY (DODATEK 50%)\n"); var monthsWorkingHoursConfiguration = JsonFileConverter.JsonFileConverter.ConvertFromFile <Dictionary <int, int> >("MonthConfig.json"); var monthsWorkingHours = new MonthsWorkingHours(monthsWorkingHoursConfiguration); var factors = new Factors { WorkedHours = UserInputConsoleReader.ReadWorkedHours(), HourlyFee = UserInputConsoleReader.ReadHourlyFee(), WorkedMonth = UserInputConsoleReader.ReadMonth() }; var monthSalaryReport = new MonthSalaryReport(monthsWorkingHours, factors); var textReport = new SimpleTextReportBuilder() .BuildMonthlyReport(monthSalaryReport); System.Console.WriteLine(textReport); } catch (Exception ex) { System.Console.WriteLine( $"Wystąpił błąd: {ex.Message}{Environment.NewLine}"); System.Console.WriteLine("----------------------------------------------------------------"); Main(); } } }
public MonthSalaryReportTests() { var monthsWorkingHours = new MonthsWorkingHours( new Dictionary <int, int> { { 1, 150 } }); var factors = new Factors() { HourlyFee = 13, WorkedHours = 180, WorkedMonth = 1 }; _monthSalaryReport = new MonthSalaryReport(monthsWorkingHours, factors); }
private void Calculate() { _summary = new CalculationsSummary(); try { StringParser.StringToDouble(_factors.WorkedMonth.ToString()); StringParser.StringToDouble(_factors.HourlyFee.ToString()); _summary.OverHoursAmount = Calc.CalculateOverhoursAmount(_factors.WorkedMonth, _factors.WorkedHours); _summary.OverHoursGrossIncome = Calc.CalculateOverHoursGrossIncome(_summary.OverHoursAmount, _factors.HourlyFee); _summary.OverHoursNetIncome = Calc.CalculateOverHoursNetIncome(_summary.OverHoursGrossIncome); _summary.TotalGrossIncome = Calc.CalculateTotalGrossIncome( _factors.WorkedHours, _factors.HourlyFee, _summary.OverHoursGrossIncome); _summary.TotalNetIncome = Calc.CalculateTotalNetIncome(_summary.TotalGrossIncome); _monthSalaryReport = new MonthSalaryReport(MonthsWorkingHours, _factors); } catch (Exception excteption) { _errorMessage = excteption.Message; } }
public string BuildMonthlyReport(MonthSalaryReport monthSalaryReport) { var report = new StringBuilder(); report .AppendLine(Environment.NewLine) .AppendLine($"{Ressources.ReportTextualRessources.SummaryForTheMonth} {CultureInfo.DefaultThreadCurrentUICulture.DateTimeFormat.GetMonthName(monthSalaryReport.Factors.WorkedMonth)} :") .AppendLine("") .AppendLine( $"{Ressources.ReportTextualRessources.TimeDimension}: {monthSalaryReport.MonthsWorkingHours[monthSalaryReport.Factors.WorkedMonth]}h, " + $"{Ressources.ReportTextualRessources.WorkingHours}: {monthSalaryReport.Factors.WorkedHours}h") .AppendLine($"{Ressources.ReportTextualRessources.HourlyRateGross}: {monthSalaryReport.Factors.HourlyFee}zł {Environment.NewLine}") .AppendLine($"{Ressources.ReportTextualRessources.OvertimeHours} {monthSalaryReport.Summary.OverHoursAmount}, " + $"{Ressources.ReportTextualRessources.GrossSalary} {monthSalaryReport.Summary.OverHoursGrossIncome}zł") .AppendLine($"{Ressources.ReportTextualRessources.OvertimeHours} {monthSalaryReport.Summary.OverHoursAmount}, " + $"{Ressources.ReportTextualRessources.NetSalary} {monthSalaryReport.Summary.OverHoursNetIncome}zł") .AppendLine($"{Ressources.ReportTextualRessources.TotalGrossSalary} {monthSalaryReport.Summary.TotalGrossIncome}zł") .AppendLine($"{Ressources.ReportTextualRessources.TotalNetSalary} {monthSalaryReport.Summary.TotalNetIncome}zł") .AppendLine("") .AppendLine(Environment.NewLine); return(report.ToString()); }
public string BuildMonthlyReport(MonthSalaryReport monthSalaryReport) { var report = new StringBuilder(); report .AppendLine(Environment.NewLine) .AppendLine($"Podsumowanie dla miesiąca {Month.NumberToName(monthSalaryReport.Factors.WorkedMonth)} :") .AppendLine("") .AppendLine( $"Wymiar czasu pracy w tym miesiącu: {monthSalaryReport.MonthsWorkingHours[monthSalaryReport.Factors.WorkedMonth]}h, " + $"Przepracowano: {monthSalaryReport.Factors.WorkedHours}h") .AppendLine($"Stawka godzinowa (brutto): {monthSalaryReport.Factors.HourlyFee}zł {Environment.NewLine}") .AppendLine($"Liczba nadgodzin: {monthSalaryReport.Summary.OverHoursAmount}, " + $"wynagrodzenie brutto: {monthSalaryReport.Summary.OverHoursGrossIncome}zł") .AppendLine($"Liczba nadgodzin: {monthSalaryReport.Summary.OverHoursAmount}, " + $"wynagrodzenie netto: {monthSalaryReport.Summary.OverHoursNetIncome}zł") .AppendLine($"Wynagrodzenie całkowite brutto (podstawa + nadgodziny): {monthSalaryReport.Summary.TotalGrossIncome}zł") .AppendLine($"Wynagrodzenie całkowite netto (podstawa + nadgodziny): {monthSalaryReport.Summary.TotalNetIncome}zł") .AppendLine("") .AppendLine(Environment.NewLine); return(report.ToString()); }