public ActionResult PayrollReport(PayrollItem model) { List <PayrollItem> payrollItemList = new List <PayrollItem>(); PayrollService payrollService = new PayrollService(); int?cid = 0; if (Session["CompID"] != null) { cid = Convert.ToInt32(Session["CompID"].ToString()); } if (cid == 0) { cid = model.CompId; } payrollItemList = payrollService.GetPayrollDetailsReport(model.Month, model.Year, cid); PayrollItem payrollitem = new PayrollItem(); payrollitem.lstPayroll = new List <PayrollItem>(); payrollitem.lstPayroll.AddRange(payrollItemList); BindMonthYear(); List <CompanyItem> clsCompany = new List <CompanyItem>(); clsCompany = payrollService.BindCompany(); payrollitem.lstCompany = new List <CompanyItem>(); payrollitem.lstCompany.AddRange(clsCompany); return(View(payrollitem)); }
public ActionResult Edit(int CompId, int Month, int Year) { objPayService = new PayrollService(); objPayItem = new PayrollItem(); List <PayrollItem> PayItem = new List <PayrollItem>(); List <EmployeeItem> lstEmp = new List <EmployeeItem>(); PayItem = objPayService.GetPayrollDetails1(Month, Year, CompId); if (PayItem.Count != 0) { objPayItem.lstPayroll = new List <PayrollItem>(); TempData["Msg"] = "EmployeeExists"; objPayItem.lstPayroll.AddRange(PayItem); ViewBag.MonthList = Month; ViewBag.YearList = Year; } List <CompanyItem> clsCompany = new List <CompanyItem>(); clsCompany = objPayService.BindCompany(); objPayItem.lstCompany = new List <CompanyItem>(); objPayItem.lstCompany.AddRange(clsCompany); BindMonthYear(); // return View("_List", objPayItem); return(View(objPayItem)); }
public void PayrollService_ShouldGetTwoWeeksPayCorrectly_TimeAndHalfCalculatorWithNoOvertime() { //Arrange var date = DateTime.Parse("2018-06-22"); var timesheetGetRepoMock = new Mock <ITimesheetGetRepository>(); timesheetGetRepoMock.Setup(x => x.GetTimesheetsForLastTwoWeeks(date)) .Returns(GetTimesheets()); var employeeGetRepoMock = new Mock <IEmployeeGetRepository>(); employeeGetRepoMock.Setup(x => x.Get(1)).Returns(new Employee { FirstName = "Test", HourlyRate = 100, State = State.TX, LastName = "Test", Id = 1 }); var sut = new PayrollService(timesheetGetRepoMock.Object, employeeGetRepoMock.Object); //Act var paystubs = sut.GetPaystubs(date); var firstPaystub = paystubs.First(); //Assert Assert.That(firstPaystub.TotalOvertimeHoursWorked == 0); Assert.That(firstPaystub.TotalOvertimePay == 0); Assert.That(firstPaystub.TotalRegularHoursWorked == 80); Assert.That(firstPaystub.TotalRegularPay == 8000); }
private static void Main(string[] args) { // инициализация наших данных var fileData = new FileData(); fileData.Initialize(); // инициализация сервиса запросов var payrollService = new PayrollService(); // получаем средние зарплаты var workPlaceAverageSalaries = payrollService.GetAverageSalaries(); foreach (var workPlace in workPlaceAverageSalaries) { Console.WriteLine($"Средняя зарплата по {workPlace.WorkName}: {workPlace.Salary}"); } // получаем самую большую зарплату var maxSalary = payrollService.GetTheRichestHead(); Console.WriteLine($"Cамая высокая зарплата руководителя: {maxSalary}"); Console.ReadKey(false); }
public ActionResult Create() { objPayService = new PayrollService(); objPayItem = new PayrollItem(); List <CompanyItem> clsCompany = new List <CompanyItem>(); clsCompany = objPayService.BindCompany(); objPayItem.lstCompany = new List <CompanyItem>(); objPayItem.lstCompany.AddRange(clsCompany); BindMonthYear(); int cid = 0; if (Session["CompID"] != null) { cid = Convert.ToInt32(Session["CompID"].ToString()); } List <PayrollItem> lstPayoll = new List <PayrollItem>(); lstPayoll = objPayService.GridPayroll(cid); objPayItem.lstPayroll = new List <PayrollItem>(); objPayItem.lstPayroll.AddRange(lstPayoll); return(View(objPayItem)); }
public void Should_Return_Payslip_When_Employee_Is_Valid() { // Arrange var taxCalculatorService = Substitute.For <ITaxCalculatorService>(); taxCalculatorService.CalculateIncomeTax(Arg.Any <int>()).Returns(90); var employee = new Employee() { FirstName = "Abc", LastName = "Test", AnnualSalary = 8000, PayPeriod = "Jan-Dec", SuperRate = 0.09m }; // Act var payrollService = new PayrollService(taxCalculatorService); var paySlip = payrollService.GeneratePaySlip(employee); // Assert Assert.NotNull(paySlip); Assert.Equal(employee.FirstName + ' ' + employee.LastName, paySlip.Name); Assert.Equal(90, paySlip.IncomeTax); Assert.Equal(667, paySlip.GrossIncome); Assert.Equal(60, paySlip.Super); Assert.Equal(577, paySlip.NetIncome); }
public void GetAllIncludedDeductions_Should_GetAllEmployeesDeductions() { var service = new PayrollService(empStub, uowStub); var listDeductions = new List <EmployeeDeductions>(); listDeductions.Add(new EmployeeDeductions() { FixedAmtDeduction = 150M, Name = "SSS" }); listDeductions.Add(new EmployeeDeductions() { FixedAmtDeduction = 500M, Name = "PagIbig" }); listDeductions.Add(new EmployeeDeductions() { FixedAmtDeduction = 1000M, Name = "Philhealth" }); empStub .FindItem(Arg.Any <int>()) .Returns(new Employee() { EmployeeIncludedDeductions = new EmployeeIncludedDeductions() { EmployeeDeductions = listDeductions } }); decimal result = service.GetAllIncludedDeductions(Arg.Any <int>()); Assert.AreEqual(1650M, result); }
public PayrollTests() { _service = new PayrollService(new PayrollConfig { Username = "******", Password = "******", ApiKey = "iGF9UtaLc526poWWNgUpiCoO3BckcZUKNF3nhyKul8A=", Timeout = -1 }); }
public PayrollTests() { _service = new PayrollService(new PayrollConfig { Username = "******", Password = "******", ApiKey = "iGF9UtaLc526poWWNgUpiCoO3BckcZUKNF3nhyKul8A=", ServiceUrl = "https://taapi.heartlandpayrollonlinetest.com/PosWebUI/Test/Test", Timeout = -1 }); }
public void AddDeductionType_Should_AddADeduction() { var service = new PayrollService(empDeduStub, uowStub); EmployeeDeductions result = service.AddDeductionType(new EmployeeDeductions() { IsFixedAmt = true, FixedAmtDeduction = 2450M, Name = "SSS" }); Assert.AreEqual("SSS", result.Name); }
public void Should_Throw_Exception_When_EmployeeInfo_Is_Null() { // Arrange var taxCalculatorService = Substitute.For <ITaxCalculatorService>(); // Act var payrollService = new PayrollService(taxCalculatorService); // Assert var exception = Assert.Throws <Exception>(() => payrollService.GeneratePaySlip(null)); Assert.Equal("Employee details is not setup", exception.Message); }
public ActionResult PayrollReport() { PayrollService payrollService = new PayrollService(); PayrollItem payrollitem = new PayrollItem(); //List<PayrollItem> payrollItemList = new List<PayrollItem>(); //payrollItemList = payrollService.GetPayrollDetails1(); //payrollitem.lstPayroll = new List<PayrollItem>(); //payrollitem.lstPayroll.AddRange(payrollItemList); List <CompanyItem> clsCompany = new List <CompanyItem>(); clsCompany = payrollService.BindCompany(); payrollitem.lstCompany = new List <CompanyItem>(); payrollitem.lstCompany.AddRange(clsCompany); BindMonthYear(); //return View(objPayItem); return(View(payrollitem)); }
protected void ProcessData(object sender, DirectEventArgs e) { try { PayCodeImportingService service = null; service = new PayCodeImportingService(new CSVImporter(CurrentPath.Text)); List <PayCode> shifts = service.ImportUnvalidated(CurrentPath.Text); File.Delete(CurrentPath.Text); DictionarySessionStorage storage = new DictionarySessionStorage(); storage.Save("AccountId", _systemService.SessionHelper.Get("AccountId")); storage.Save("UserId", _systemService.SessionHelper.Get("UserId")); storage.Save("key", _systemService.SessionHelper.Get("Key")); SessionHelper h = new SessionHelper(storage, new APIKeyBasedTokenGenerator()); IPayrollService PS = new PayrollService(new PayrollRepository(), h); ICompanyStructureService _timeAtt = new CompanyStructureService(new CompanyStructureRepository(), h); SystemService _system = new SystemService(new SystemRepository(), h); PayCodeBatchRunner runner = new PayCodeBatchRunner(storage, _system, _timeAtt, PS) { Items = shifts, OutputPath = MapPath("~/Imports/" + _systemService.SessionHelper.Get("AccountId") + "/") }; runner.Process(); this.ResourceManager1.AddScript("{0}.startTask('longactionprogress');", this.TaskManager1.ClientID); } catch (Exception exp) { string[] errorDetails = exp.Source.Split(';'); if (errorDetails.Length == 3) { X.Msg.Alert(Resources.Common.Error, Resources.Common.ErrorOperation + "<br />" + Resources.Common.LineNO + errorDetails[2] + "<br />" + GetGlobalResourceObject("Common", "FieldDetails") + ":" + errorDetails[0] + " " + errorDetails[1] + "<br />" + GetGlobalResourceObject("Common", "ExceptionMessage") + exp.Message).Show(); } else { X.Msg.Alert(Resources.Common.Error, Resources.Common.ErrorOperation + "<br />" + Resources.Common.LineNO + errorDetails[1] + "<br />" + GetGlobalResourceObject("Common", "FieldDetails") + ":" + errorDetails[0] + "<br />" + GetGlobalResourceObject("Common", "ExceptionMessage") + exp.Message).Show(); } //X.Msg.Alert(Resources.Common.Error, Resources.Common.ErrorOperation + "<br /> " + Resources.Common.LineNO + exp.HelpLink + "<br />" + GetGlobalResourceObject("Common", "FieldDetails") + ":" + exp.Source + " " + exp.Message).Show(); this.ResourceManager1.AddScript("{0}.stopTask('longactionprogress');", this.TaskManager1.ClientID); Viewport1.ActiveIndex = 0; } }
public async Task <IActionResult> OnGet() { payrun = await PayrunAppService.GetAsync(payrunId.Value); if (payrun != null) { List <PayrunDetail_Dto> payrunDetails = payrun.PayrunDetails.ToList(); for (int i = 0; i < payrunDetails.Count; i++) { PayrunDetail_Dto curDetail = payrunDetails[i]; dynamic paymentSlipDSRow = PayrollService.GetPaymentSheet(curDetail, JsonSerializer); paymentSlipDSRow.isPosted = payrun.IsPSPosted; dynamicDS.Add(paymentSlipDSRow); dynamicDSS = JsonSerializer.Serialize(dynamicDS); } } return(Page()); }
public ActionResult BindEmp(int CompId, int Month, int Year) { objPayService = new PayrollService(); objPayItem = new PayrollItem(); List <PayrollItem> PayItem = new List <PayrollItem>(); List <EmployeeItem> lstEmp = new List <EmployeeItem>(); PayItem = objPayService.GetPayrollDetails1(Month, Year, CompId); if (PayItem.Count != 0) { objPayItem.lstPayroll = new List <PayrollItem>(); TempData["Msg"] = "EmployeeExists"; objPayItem.lstPayroll.AddRange(PayItem); ViewBag.MonthList = Month; ViewBag.YearList = Year; //lstEmp = objPayService.BindEmployee(CompId); //objPayItem.lstEmployee = new List<EmployeeItem>(); //objPayItem.lstEmployee.AddRange(lstEmp); } else { TempData["Msg"] = ""; if (CompId != 0) { lstEmp = objPayService.BindEmployee(CompId); objPayItem.lstEmployee = new List <EmployeeItem>(); objPayItem.lstEmployee.AddRange(lstEmp); } PayItem = objPayService.BindPayroll(CompId); objPayItem.lstPayroll = new List <PayrollItem>(); objPayItem.lstPayroll.AddRange(PayItem); ViewBag.MonthList = Month; ViewBag.YearList = Year; } return(PartialView("_List", objPayItem)); }
static void Main(string[] args) { //ContactService.ReadContactFile(@"C:\Projects\PSC\CSVFiles\Contacts.csv"); //P60Service.ReadP60File(@"C:\Projects\PSC\CSVFiles\P60s-2013.csv"); PayrollService.ReadPayrollFile(@"C:\Projects\PSC\CsvOut2\OutPayroll.csv"); //Filtered Columns //List<CsvHeader> requested = new List<CsvHeader>(); //requested.Add(new CsvHeader("MobileNo",typeof(string))); //requested.Add(new CsvHeader("Title",typeof(int))); //ContactService.ReadContactFileWithRequestedFields(@"C:\Projects\PSC\CSVFiles\Contacts.csv", requested); /*Write CSV*/ //PayrollService.WritePayrollCSVFile(@"C:\Projects\PSC\CSVFiles\Payroll.csv", @"C:\Projects\PSC\CsvOut2\OutPayroll.csv"); PayrollService.WritePayrollCSVFile(@"C:\Projects\PSC\CsvOut2\OutPayroll.csv", @"C:\Projects\PSC\CsvOut3\", "488"); ContactService.WriteCSVFile(@"C:\Projects\PSC\CSVFiles\Contacts.csv", @"C:\Projects\PSC\CsvOut3\", "488"); Console.ReadLine(); }
public void GetEmployeePayrollHistoryTotalNetpay_Should_GetTotal() { var service = new PayrollService(empStub, uowStub); var list = new List <PayrollHistory>(); for (int i = 0; i < 4; i++) { list.Add(new PayrollHistory() { GrossIncome = 25000M, NetIncome = 15000M }); } empStub.FindItem(Arg.Any <int>()).Returns(new Employee() { PayrollHistories = list }); decimal result = service.GetEmployeePayrollHistoryTotalNetpay(Arg.Any <int>()); Assert.AreEqual(60000M, result); }
public ActionResult Create(IEnumerable <EmployeeItem> lstEmployee, PayrollItem payroll, IEnumerable <PayrollItem> lstPayroll) { string strMsg = ""; if (TempData["Msg"] != "") { strMsg = TempData["Msg"].ToString(); } objPayService = new PayrollService(); List <CompanyItem> clsCompany = new List <CompanyItem>(); clsCompany = objPayService.BindCompany(); objPayItem.lstCompany = new List <CompanyItem>(); objPayItem.lstCompany.AddRange(clsCompany); BindMonthYear(); var lstEmp = lstEmployee.ToList(); for (int i = 0; i < lstEmployee.ToList().Count; i++) { objPayItem = new PayrollItem(); var ID = lstEmp[i].id; objPayItem.Month = Convert.ToInt32(payroll.Month); objPayItem.Year = Convert.ToInt32(payroll.Year); objPayItem.CompId = Convert.ToInt32(payroll.CompId); objPayItem.Empid = lstEmp[i].id; objPayItem.OT = lstEmp[i].OT; objPayItem.DA = lstEmp[i].DA; if (payroll.Month == 2) { if ((payroll.Year % 4 == 0 && payroll.Year % 100 != 0) || (payroll.Year % 400 == 0)) { objPayItem.TotalDays = 29; objPayItem.Days = lstEmp[i].Days; } else { objPayItem.TotalDays = 28; objPayItem.Days = lstEmp[i].Days; } } if (payroll.Month == 1 || payroll.Month == 3 || payroll.Month == 5 || payroll.Month == 7 || payroll.Month == 8 || payroll.Month == 10 || payroll.Month == 12) { objPayItem.TotalDays = 31; if (lstEmp[i].Days > 31) { objPayItem.lstEmployee = new List <EmployeeItem>(); objPayItem.lstEmployee.AddRange(lstEmp); ViewBag.ErrorMsg = "Data Not Successfully Added..Check Proper Days"; ModelState.AddModelError(string.Empty, "The item cannot be removed"); return(View()); } else { objPayItem.Days = lstEmp[i].Days; } } if (payroll.Month == 4 || payroll.Month == 6 || payroll.Month == 9 || payroll.Month == 11) { objPayItem.TotalDays = 30; if (lstEmp[i].Days > 30) { ViewBag.ErrorMsg = "Data Not Successfully Added..Check Proper Days"; return(View(objPayItem)); } else { objPayItem.Days = lstEmp[i].Days; } } List <CompanyItem> clsCompany1 = new List <CompanyItem>(); clsCompany1 = objPayService.BindCompany(); objPayItem.lstCompany = new List <CompanyItem>(); objPayItem.lstCompany.AddRange(clsCompany1); if (strMsg.ToString() == "") { objPayService.InsertPayroll(objPayItem); } else { objPayService.UpdatePayroll(objPayItem); } } int cid = 0; if (Session["CompID"] != null) { cid = Convert.ToInt32(Session["CompID"].ToString()); } List <PayrollItem> lstPayoll = new List <PayrollItem>(); lstPayoll = objPayService.GridPayroll(cid); objPayItem.lstPayroll = new List <PayrollItem>(); objPayItem.lstPayroll.AddRange(lstPayoll); ModelState.Clear(); return(View(objPayItem)); }
/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void SaveForm(string keyValue, string inport, PayrollEntity entity) { try { string searchColumnName = "员工编号"; string totalColumnName = "总计"; if (inport != "") { // 1.导入功能 DataTable dt = ExcelHelper.ExcelImport(Utils.GetMapPath(inport)); // 2.取出所有得薪资项 PayitemService payservice = new PayitemService(); IEnumerable <PayitemEntity> payitemlist = payservice.GetList(w => w.disable == "1"); #region 3.取出所有的人员信息 List <string> employIds = new List <string>(); foreach (DataRow row in dt.Rows) { if (dt.Columns.Contains(searchColumnName)) { employIds.Add(row[searchColumnName].ToString()); } } EmployinfoService employservice = new EmployinfoService(); IEnumerable <EmployinfoEntity> employlist = employservice.GetAllList(employIds); #endregion #region 4.获取excel中需要遍历的薪资项 List <string> payitems = new List <string>(); foreach (PayitemEntity item in payitemlist) { if (dt.Columns.Contains(item.dispName)) { payitems.Add(item.dispName); } } #endregion PayrollService payrollService = new PayrollService(); int PayrollId = payrollService.FindMaxID() + 1; int employCount = 0; // 本次导入人数 decimal TotalAmount = 0; // 本次应发总金额 #region 5.新增子表 List <PaydetailEntity> detailList = new List <PaydetailEntity>(); PaydetailEntity detailEntity = null; if (dt != null && dt.Rows.Count > 0) { PaydetailService detailService = new PaydetailService(); foreach (DataRow row in dt.Rows) { int?empid = 0; // 员工编号 #region 获取员工信息 if (row[searchColumnName] != null && row[searchColumnName].ToString().Length != 0) { EmployinfoEntity employEntity = employlist.Where(w => w.empid == Convert.ToInt32(row[searchColumnName])).FirstOrDefault(); if (employEntity != null) { empid = employEntity.empid; employCount++; } else { continue; } } #endregion #region 总计列不存在,或者 总计 非数字类型,不记入数据库 if (row[totalColumnName] == null || row[totalColumnName].ToString().Length == 0) { continue; } else { try { TotalAmount += decimal.Round(Convert.ToDecimal(row[totalColumnName]), 2, MidpointRounding.AwayFromZero); } catch (Exception) { continue; } } #endregion #region 遍历行中的项,一项存一条数据 foreach (string item in payitems) { detailEntity = new PaydetailEntity(); detailEntity.empid = empid; PayitemEntity itemEntity = payitemlist.Where(w => w.dispName == item).FirstOrDefault(); if (itemEntity != null) { detailEntity.itemcode = itemEntity.itemcode; detailEntity.amount = Convert.ToDecimal(row[itemEntity.dispName]); } detailEntity.payrollid = PayrollId; detailEntity.CreatorName = Code.OperatorProvider.Provider.Current().UserName;; detailEntity.CreateDate = DateTime.Now; detailList.Add(detailEntity); } #endregion } } #endregion #region 6.新增主表 // 组合主表字段 PayrollEntity parollEntity = new PayrollEntity(); parollEntity.PayrollId = PayrollId; parollEntity.period = entity.period; parollEntity.status = 0; parollEntity.employnum = employCount; parollEntity.Totalamount = decimal.Round(TotalAmount, 2, MidpointRounding.AwayFromZero); parollEntity.CreatorId = 0; parollEntity.CreatorName = Code.OperatorProvider.Provider.Current().UserName; parollEntity.CreateDate = DateTime.Now; #endregion payrollService.SaveUploadData(parollEntity, detailList); } } catch (Exception) { throw; } }
public PayrollServiceTests() { sut = new PayrollService(); }