Esempio n. 1
0
        public async Task <IActionResult> AddNewSalary([FromBody] NewSalaryModel dataModel)
        {
            try
            {
                SalaryDetails salaryDetails = new SalaryDetails
                {
                    Name        = dataModel.name,
                    Designation = dataModel.designation,
                    Eid         = dataModel.eid,
                    Basic       = dataModel.basic,
                    Bonus       = dataModel.bonus,
                    Attendance  = dataModel.attendance,
                    For_month   = dataModel.for_month,
                    Total       = dataModel.total,
                };

                _context.SalaryDetails.Add(salaryDetails);
                await _context.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Esempio n. 2
0
        public void GivenThatAnnualSalaryIsSixtyThousand_WhenGrossIncomeIsCalculated_ThenGrossIncomeIsFiveThousand()
        {
            var       salaryDetails         = new SalaryDetails(60000, It.IsAny <int>());
            const int expectedMonthlySalary = 5000;
            var       actualMonthlySalary   = salaryDetails.GetGrossIncome();

            Assert.Equal(expectedMonthlySalary, actualMonthlySalary);
        }
Esempio n. 3
0
        GivenThatMonthlySalaryIsFiveThousandAndSuperRateIsNinePercent_WhenMonthlySuperAnnuationIsCalculated_ThenMonthlySuperAnnuationIsFourHundredAndFifty()
        {
            var       salaryDetails = new SalaryDetails(60000, 9);
            const int expectedMonthlySuperAnnuation = 450;
            var       actualMonthlyAnnuation        = salaryDetails.GetSuperAnnuation();

            Assert.Equal(expectedMonthlySuperAnnuation, actualMonthlyAnnuation);
        }
Esempio n. 4
0
        GivenThatAnnualSalaryIsSeventyThousand_WhenMonthlySalaryIsCalculated_ThenMonthlySalaryIsFiveThousandEightHundredAndThirtyThree()
        {
            var       salaryDetails         = new SalaryDetails(70000, It.IsAny <int>());
            const int expectedMonthlySalary = 5833;
            var       actualMonthlySalary   = salaryDetails.GetGrossIncome();

            Assert.Equal(expectedMonthlySalary, actualMonthlySalary);
        }
Esempio n. 5
0
        public SalaryDetails GetSalaryDetails(SalaryInformationRequest request)
        {
            var salaryDetails = new SalaryDetails();
            var grossIncome   = request.details.GrossIncome;

            if (grossIncome > 0)
            {
                salaryDetails.GrossIncome        = grossIncome;
                salaryDetails.IncomeTaxThreshold = _taxSettings.TaxThreshold;

                // TODO: Refactor into smaller more maintainable parts
                if (_features.UsePension)
                {
                    salaryDetails.Pension = _taxSettings.DefaultPensionRate * grossIncome;
                    salaryDetails.TotalStatutoryDeductions += salaryDetails.Pension;
                }

                if (_features.UseNISRate)
                {
                    salaryDetails.NIS = _taxSettings.NISRate * grossIncome;

                    if (_features.UseNISCap && salaryDetails.NIS > _taxSettings.NISCap)
                    {
                        salaryDetails.NIS = _taxSettings.NISCap;
                    }

                    salaryDetails.TotalStatutoryDeductions += salaryDetails.NIS;
                }

                if (_features.UseEducationTaxRate)
                {
                    salaryDetails.EducationTax              = _taxSettings.EducationTaxRate * (grossIncome - salaryDetails.TotalStatutoryDeductions);
                    salaryDetails.TotalStatutoryDeductions += salaryDetails.EducationTax;
                }

                if (_features.UseNHTRate)
                {
                    salaryDetails.NHT = _taxSettings.NHTRate * grossIncome;
                    salaryDetails.TotalStatutoryDeductions += salaryDetails.NHT;
                }

                var statutoryIncome = grossIncome - salaryDetails.TotalStatutoryDeductions;
                var taxableIncome   = (grossIncome - (salaryDetails.Pension + salaryDetails.NIS)) - _taxSettings.TaxThreshold;
                salaryDetails.TaxableIncome = taxableIncome;

                if (_features.UseIncomeTax)
                {
                    salaryDetails.IncomeTax = (grossIncome > _taxSettings.StandardIncomeTaxMark)
                        ? taxableIncome * _taxSettings.IncomeTaxRateForIncomeAboveStandardMark
                        : taxableIncome * _taxSettings.IncomeTaxRateForIncomeBelowStandardMark;
                }

                salaryDetails.NetIncome = statutoryIncome - salaryDetails.IncomeTax;
            }

            return(salaryDetails);
        }
Esempio n. 6
0
            public static void Display()
            {
                SalaryDetails objSalary = new SalaryDetails();

                objSalary.EmpID  = 10;
                objSalary.Salary = 1000.25F;
                Console.WriteLine("Name: " + objSalary.EmpName);
                Console.WriteLine("ID: " + objSalary.EmpID);
                Console.WriteLine("Salary: " + objSalary.Salary + "$");
            }
        public void CreateSalary(SalaryDetails salaryDetails)
        {
            var salary      = Mapper.Map <Salary>(salaryDetails);
            var savedSalary = _salaryRepository.Create(salary);

            foreach (var salaryDeductionDetails in salaryDetails.SalaryDeductions)
            {
                var salaryDeduction = Mapper.Map <SalaryDeduction>(salaryDeductionDetails);
                salaryDeduction.SalaryId = savedSalary.Id;
                _salaryDeductionRepository.Create(salaryDeduction);
            }
        }
Esempio n. 8
0
        static void Main(string[] args)
        {
            MedicareLevy     medicareLevy     = new MedicareLevy("Medicare Levy", 2);
            BudgetRepairLevy budgetRepairLevy = new BudgetRepairLevy("Budget Repair Levy", 2);
            IncomeTax        incomeTax        = new IncomeTax("Income Tax", 5);
            Income           income           = new Income();

            SalaryDetails salaryDetails = new SalaryDetails(medicareLevy, budgetRepairLevy, incomeTax, income);

            salaryDetails.Runner();

            System.Console.ReadKey();
        }
Esempio n. 9
0
        public async Task <IActionResult> RemoveSalary([FromBody] JObject salaryRes)
        {
            SalaryDetails salaries = _context.SalaryDetails.Where(o => o.ID == Convert.ToInt32(salaryRes["id"].ToString())).FirstOrDefault();

            if (salaries == null)
            {
                return(BadRequest());
            }

            _context.SalaryDetails.Remove(salaries);
            await _context.SaveChangesAsync();

            return(Ok());
        }
        public IActionResult GiveSalary(SalaryDetailsViewModel sdvm)
        {
            SalaryDetails sd = new SalaryDetails();

            sd.SalaryDetailsId = 0;
            sd.TeacherId       = sdvm.teacheridVM;
            sd.TeacherName     = sdvm.teachernameVM;
            sd.DesigId         = sdvm.desigidVM;
            sd.DesigName       = sdvm.designameVM;
            sd.Salary          = sdvm.salaryVM;
            sd.Date            = sdvm.dateVM;
            sd.Status          = true;
            _context.SalaryDetails.Add(sd);
            _context.SaveChanges();
            return(RedirectToAction("EnterTcrInfo"));
        }
Esempio n. 11
0
        public void Budget_Repair_Levy_Should_Be_Zero_If_Income_Is_In_First_Range()
        {
            //Arrange
            double           taxableIncome    = 100000;
            double           tax              = 0;
            MedicareLevy     medicareLevy     = new MedicareLevy("Medicare Levy", 2);
            BudgetRepairLevy budgetRepairLevy = new BudgetRepairLevy("Budget Repair Levy", 2);
            IncomeTax        incomeTax        = new IncomeTax("Income Tax", 5);
            Income           income           = new Income();
            SalaryDetails    sd = new SalaryDetails(medicareLevy, budgetRepairLevy, incomeTax, income);

            //Act
            tax = sd.CalculateBudgetRepairLevy(taxableIncome);
            //Assert
            Assert.AreEqual(0, tax, "Tax should be zero");
        }
Esempio n. 12
0
        public Employee GetEmployeeDetails()
        {
            Console.WriteLine("Welcome to the payslip generator!\n");

            Console.Write("Please input your name: ");
            var fname = Console.ReadLine();

            Console.Write("Please input your surname: ");
            var lname = Console.ReadLine();

            Console.Write("Please input your annual salary: ");
            var annualSalary = Convert.ToInt32(Console.ReadLine());

            Console.Write("Please input your super rate: ");
            var superRate = Convert.ToInt32(Console.ReadLine());

            var paymentDetails = new SalaryDetails(annualSalary, superRate);

            return(new Employee(fname, lname, paymentDetails));
        }
Esempio n. 13
0
        public void EditSalary(SalaryDetails salaryDetails)
        {
            var salary = Mapper.Map <Salary>(salaryDetails);

            _salaryRepository.Update(salary);

            var updatedSalaryDeductionsIds  = salaryDetails.SalaryDeductions.Where(x => x.Id != 0).Select(x => x.Id);
            var existingSalaryDeductionsIds = _salaryDeductionRepository.GetListAsNoTracking().Where(x => x.SalaryId == salaryDetails.Id).ToList();

            // Create
            var newSalaryDeductions = salaryDetails.SalaryDeductions.Where(x => x.Id == 0);

            foreach (var newSalaryDeduction in newSalaryDeductions)
            {
                var updatedSalaryDeductionEntity = Mapper.Map <SalaryDeduction>(newSalaryDeduction);
                updatedSalaryDeductionEntity.SalaryId = salaryDetails.Id;
                _salaryDeductionRepository.Create(updatedSalaryDeductionEntity);
            }

            // Update
            var updatedSalaryDeductions = salaryDetails.SalaryDeductions.Where(x => x.Id != 0);

            foreach (var updatedSalaryDeduction in updatedSalaryDeductions)
            {
                var updatedSalaryDeductionEntity = Mapper.Map <SalaryDeduction>(updatedSalaryDeduction);
                updatedSalaryDeductionEntity.SalaryId = salaryDetails.Id;
                _salaryDeductionRepository.Update(updatedSalaryDeductionEntity);
            }

            // Delete
            var excludedSalaryDeductions = existingSalaryDeductionsIds.Where(x => !updatedSalaryDeductionsIds.Contains(x.Id)).ToList();

            foreach (var excludedSalaryDeduction in excludedSalaryDeductions)
            {
                var refreshedSalaryDeduction = _salaryDeductionRepository.GetById(excludedSalaryDeduction.Id);
                _salaryDeductionRepository.Delete(refreshedSalaryDeduction);
            }
        }
 public void Put(int id, [FromBody] SalaryDetails editedObj)
 {
     _SalaryService.EditSalary(editedObj);
 }
 public void Post([FromBody] SalaryDetails createdObj)
 {
     _SalaryService.CreateSalary(createdObj);
 }