public async Task <ApiResponse> Handle(AddNewEmployeeCommand request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); try { EmployeeDetail obj = _mapper.Map <EmployeeDetail>(request); obj.IsDeleted = false; await _dbContext.EmployeeDetail.AddAsync(obj); await _dbContext.SaveChangesAsync(); OfficeDetail OfficeDetail = await _dbContext.OfficeDetail.FirstOrDefaultAsync(x => x.OfficeId == request.OfficeId && x.IsDeleted == false); EmployeeDetail emp = await _dbContext.EmployeeDetail.FirstOrDefaultAsync(x => x.IsDeleted == false && x.EmployeeID == obj.EmployeeID); emp.EmployeeCode = "E" + obj.EmployeeID; _dbContext.EmployeeDetail.Update(emp); await _dbContext.SaveChangesAsync(); EmployeeProfessionalDetailModel empprofessional = new EmployeeProfessionalDetailModel { EmployeeId = obj.EmployeeID, EmployeeTypeId = request.EmployeeTypeId, OfficeId = request.OfficeId, CreatedById = request.CreatedById, CreatedDate = request.CreatedDate, IsDeleted = request.IsDeleted, ProfessionId = request.ProfessionId, TinNumber = request.TinNumber }; EmployeeProfessionalDetail obj1 = _mapper.Map <EmployeeProfessionalDetail>(empprofessional); await _dbContext.EmployeeProfessionalDetail.AddAsync(obj1); await _dbContext.SaveChangesAsync(); UserDetails user = await _dbContext.UserDetails.FirstOrDefaultAsync(x => x.AspNetUserId == request.CreatedById && x.IsDeleted == false); LoggerDetailsModel loggerObj = new LoggerDetailsModel(); loggerObj.NotificationId = (int)Common.Enums.LoggerEnum.EmployeeCreated; loggerObj.IsRead = false; loggerObj.UserName = user.FirstName + " " + user.LastName; loggerObj.UserId = request.CreatedById; loggerObj.LoggedDetail = "Employee " + obj.EmployeeName + " Created"; loggerObj.CreatedDate = request.CreatedDate; response.LoggerDetailsModel = loggerObj; await _dbContext.SaveChangesAsync(); response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = StaticResource.SomethingWrong + ex.Message; } return(response); }
//public bool UpdateDesignationList(string designationName) // { // var designationList = GetDesignationList(); // var count = 0; // if(designationList != null) // { // foreach(var designation in designationList) // { // if(designation.Designation == designationName) // { // count++; // } // if(count > 0) // { // } // } // } // return true; // } public bool UpdateProfessionalDetails(EmployeeMaster empobj, EmployeeProfessionalDetail profobj) { using (IPDEntities ctx = new IPDEntities()) { var employeedata = ctx.EmployeeMasters.Where(m => m.EmpNo == empobj.EmpNo).FirstOrDefault(); if (employeedata != null) { employeedata.EmployeeName = empobj.EmployeeName; employeedata.EmpNo = empobj.EmpNo; } var proffesionaldata = ctx.EmployeeProfessionalDetails.Where(m => m.EmpProfID == profobj.EmpProfID).FirstOrDefault(); if (proffesionaldata != null) { proffesionaldata.TotalExprInMonths = profobj.TotalExprInMonths; proffesionaldata.TotalExprInYears = profobj.TotalExprInYears; proffesionaldata.DesignationID = profobj.DesignationID; proffesionaldata.DepartmentID = profobj.DepartmentID; } else { EmployeeProfessionalDetail profInsertObj = new EmployeeProfessionalDetail(); if (profobj.UserID != 0) //dont save details if userid is not available { profInsertObj.TotalExprInMonths = profobj.TotalExprInMonths; profInsertObj.TotalExprInYears = profobj.TotalExprInYears; profInsertObj.DesignationID = profobj.DesignationID; profInsertObj.DepartmentID = profobj.DepartmentID; profInsertObj.UserID = profobj.UserID; ctx.EmployeeProfessionalDetails.Add(profInsertObj); } } ctx.SaveChanges(); } return(true); }
public ProfessionalDetailsController(IEmpSkillsService IEmpSkillsService, ISkillsetService ISkillsetService, IProfessionalDetailsService IProfessionalDetailsService) { this._IEmpSkillsService = IEmpSkillsService; this._ISkillsetService = ISkillsetService; this._IProfessionalDetailsService = IProfessionalDetailsService; _employeeSkillDetail = new EmployeeSkillDetail(); _skillsMaster = new Master_SkillSet(); _professional = new EmployeeProfessionalDetail(); }
public ActionResult AddTotEmpExpr(string TotExprYear, string TotExprMonth, int Id) { bool status = false; string userName = null; if (!string.IsNullOrEmpty(TotExprYear) && !string.IsNullOrEmpty(TotExprYear)) { userId = Convert.ToInt32(System.Web.HttpContext.Current.User.Identity.Name.Split('|')[1]); userName = System.Web.HttpContext.Current.User.Identity.Name.Split('|')[0]; //Mapper.CreateMap<Models.ProfessionalDetailsModel, Data.EmployeeProfessionalDetail>(); //var ProffessionalDetail = Mapper.Map<Models.ProfessionalDetailsModel, Data.EmployeeProfessionalDetail>(details); _professional = new EmployeeProfessionalDetail(); _professional.TotalExprInYears = Convert.ToInt32(TotExprYear) - 1; _professional.TotalExprInMonths = Convert.ToInt32(TotExprMonth) - 1; _professional.UserID = userId; _professional.EmpProfID = Id; var obj = _IProfessionalDetailsService.GetAll(null, null, ""); if (obj != null) { var data = obj.Where(x => x.UserID == userId).FirstOrDefault(); if (data != null && Id != 0) { data.TotalExprInMonths = _professional.TotalExprInMonths; data.TotalExprInYears = _professional.TotalExprInYears; status = _IProfessionalDetailsService.Update(data, null, ""); } else { status = _IProfessionalDetailsService.Insert(_professional, null, ""); } } } return(Json(new { result = status }, JsonRequestBehavior.AllowGet)); }
public async Task <ApiResponse> Handle(EditEmployeeProfessionalDetailCommand request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); try { EmployeeProfessionalDetail existrecord = await _dbContext.EmployeeProfessionalDetail.FirstOrDefaultAsync(x => x.IsDeleted == false && x.EmployeeId == request.EmployeeId); if (existrecord == null) { throw new Exception(StaticResource.RecordNotFound); } existrecord.EmployeeTypeId = request.EmployeeTypeId; existrecord.OfficeId = request.OfficeId; existrecord.DepartmentId = request.DepartmentId; existrecord.DesignationId = request.DesignationId; existrecord.EmployeeContractTypeId = request.EmployeeContractTypeId; existrecord.HiredOn = request.HiredOn; existrecord.FiredOn = request.FiredOn; existrecord.FiredReason = request.FiredReason; existrecord.ResignationOn = request.ResignationOn; existrecord.TrainingBenefits = request.TrainingBenefits; existrecord.JobDescription = request.JobDescription; existrecord.ResignationReason = request.ResignationReason; existrecord.AttendanceGroupId = request.AttendanceGroupId; existrecord.MembershipSupportInPoliticalParty = request.MembershipSupportInPoliticalParty; existrecord.ModifiedById = request.ModifiedById; existrecord.ModifiedDate = request.ModifiedDate; await _dbContext.SaveChangesAsync(); var employeeinfo = await _dbContext.EmployeeDetail.FirstOrDefaultAsync(x => x.EmployeeID == request.EmployeeId && x.IsDeleted == false); if (employeeinfo != null) { employeeinfo.EmployeeTypeId = request.EmployeeTypeId; await _dbContext.SaveChangesAsync();; } //when employee is active if (request.EmployeeTypeId == (int)EmployeeTypeStatus.Active) { bool employeeSalaryHeadAlreadyExists = _dbContext.EmployeePayroll.Any(x => x.IsDeleted == false && x.EmployeeID == request.EmployeeId); // add salary head and payroll heads only if it does not already exists for an employee if (!employeeSalaryHeadAlreadyExists) { //Get Default payrollaccountheads and save it to the newly created employee List <SalaryHeadDetails> salaryHeadDetails = await _dbContext.SalaryHeadDetails.Where(x => x.IsDeleted == false).ToListAsync(); List <EmployeePayroll> EmployeePayrollList = new List <EmployeePayroll>(); foreach (SalaryHeadDetails salaryHead in salaryHeadDetails) { EmployeePayroll employeePayroll = new EmployeePayroll(); employeePayroll.AccountNo = salaryHead.AccountNo; employeePayroll.HeadTypeId = salaryHead.HeadTypeId; employeePayroll.SalaryHeadId = salaryHead.SalaryHeadId; employeePayroll.IsDeleted = false; employeePayroll.TransactionTypeId = salaryHead.TransactionTypeId; employeePayroll.EmployeeID = request.EmployeeId.Value; EmployeePayrollList.Add(employeePayroll); } await _dbContext.EmployeePayroll.AddRangeAsync(EmployeePayrollList); await _dbContext.SaveChangesAsync(); //Get Default payrollaccountheads and save it to the newly created employee List <PayrollAccountHead> payrollAccountHeads = await _dbContext.PayrollAccountHead.Where(x => x.IsDeleted == false).ToListAsync(); List <EmployeePayrollAccountHead> employeePayrollAccountHeads = new List <EmployeePayrollAccountHead>(); foreach (var employeePayrollAccount in payrollAccountHeads) { EmployeePayrollAccountHead employeePayrollAccountHead = new EmployeePayrollAccountHead(); employeePayrollAccountHead.IsDeleted = false; employeePayrollAccountHead.AccountNo = employeePayrollAccount.AccountNo; employeePayrollAccountHead.Description = employeePayrollAccount.Description; employeePayrollAccountHead.EmployeeId = request.EmployeeId.Value; employeePayrollAccountHead.PayrollHeadId = employeePayrollAccount.PayrollHeadId; employeePayrollAccountHead.PayrollHeadName = employeePayrollAccount.PayrollHeadName; employeePayrollAccountHead.PayrollHeadTypeId = employeePayrollAccount.PayrollHeadTypeId; employeePayrollAccountHead.TransactionTypeId = employeePayrollAccount.TransactionTypeId; employeePayrollAccountHeads.Add(employeePayrollAccountHead); } await _dbContext.EmployeePayrollAccountHead.AddRangeAsync(employeePayrollAccountHeads); await _dbContext.SaveChangesAsync(); } } response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = ex.Message; } return(response); }
public bool Update(EmployeeProfessionalDetail obj, string[] param, string spName) { return(_IProfessionalDetailsRepository.Update(obj, param, spName)); }
public IEnumerable <EmployeeProfessionalDetail> GetAll(EmployeeProfessionalDetail obj, string[] param, string spName) { return(_IProfessionalDetailsRepository.GetAll(obj, param, spName)); }
public async Task <ApiResponse> Handle(MonthlyEmployeeAttendanceReportQuery request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); try { TimeSpan officeintime, officeouttime; TimeSpan intime, outtime; List <MonthlyEmployeeAttendanceModel> empmonthlyattendancelist = new List <MonthlyEmployeeAttendanceModel>(); EmployeeProfessionalDetail employeeProfessionalDetail = await _dbContext.EmployeeProfessionalDetail.FirstOrDefaultAsync(x => x.IsDeleted == false && x.EmployeeId == request.employeeid); var payrolltimelist = await _dbContext.PayrollMonthlyHourDetail.FirstOrDefaultAsync(x => x.IsDeleted == false && x.OfficeId == request.OfficeId && x.PayrollMonth == request.month && x.AttendanceGroupId == employeeProfessionalDetail.AttendanceGroupId); if (payrolltimelist == null) { throw new Exception("Attendance not found for selected month"); } string time = Convert.ToDateTime(payrolltimelist.InTime).ToString("hh:mm"); officeintime = Convert.ToDateTime(time).TimeOfDay; time = Convert.ToDateTime(payrolltimelist.OutTime).ToString("hh:mm"); officeouttime = Convert.ToDateTime(time).TimeOfDay; var emplist = await _dbContext.EmployeeAttendance.Where(x => x.EmployeeId == request.employeeid && x.Date.Year == request.year && x.Date.Month == request.month).ToListAsync(); List <EmployeeAttendance> empattencancelist = null; int monthdays = DateTime.DaysInMonth(request.year, request.month); var holidaylist = await _dbContext.HolidayDetails.Where(x => x.Date.Year == request.year && x.Date.Month == request.month && x.OfficeId == request.OfficeId).ToListAsync(); List <HolidayDetails> holiday = null; for (int i = 1; i <= monthdays; i++) { empattencancelist = emplist.Where(x => x.Date.Day == i).ToList(); MonthlyEmployeeAttendanceModel model = new MonthlyEmployeeAttendanceModel(); if (empattencancelist.Count > 0) { model.Date = i + "/" + request.month + "/" + request.year; model.InTime = empattencancelist[0].AttendanceTypeId == (int)AttendanceType.P ? Convert.ToDateTime(empattencancelist[0].InTime).ToString("HH:mm") : "NA"; model.OutTime = model.InTime != "NA" ? Convert.ToDateTime(empattencancelist[0].OutTime).ToString("HH:mm") : "NA"; model.AttendanceType = empattencancelist[0].AttendanceTypeId == (int)AttendanceType.P ? "P" : empattencancelist[0].AttendanceTypeId == (int)AttendanceType.A ? "A" : empattencancelist[0].AttendanceTypeId == (int)AttendanceType.L ? "L" : empattencancelist[0].AttendanceTypeId == (int)AttendanceType.H ? "H" : "NA"; model.Hours = empattencancelist[0].TotalWorkTime + "" + "h"; model.OverTimeHours = empattencancelist[0].HoverTimeHours.ToString() + "" + "h"; if (empattencancelist[0].AttendanceTypeId == (int)AttendanceType.P) { time = Convert.ToDateTime(empattencancelist[0].InTime).ToString("HH:mm"); intime = Convert.ToDateTime(time).TimeOfDay; if (officeintime >= intime) { model.LateArrival = "NA"; } else { model.LateArrival = (intime - officeintime).ToString(); } time = Convert.ToDateTime(empattencancelist[0].OutTime).ToString("HH:mm"); outtime = Convert.ToDateTime(time).TimeOfDay; if (officeouttime >= outtime) { model.EarlyOut = (officeouttime - outtime).ToString(); } else { model.EarlyOut = "NA"; } } else { model.LateArrival = "NA"; model.EarlyOut = "NA"; } } else { holiday = holidaylist.Where(x => x.Date.Day == i).ToList(); if (holiday.Count > 0) { model.Date = i + "/" + request.month + "/" + request.year; model.InTime = "NA"; model.OutTime = "NA"; model.AttendanceType = holiday[0].HolidayName; model.Hours = "NA"; model.OverTimeHours = "NA"; model.LateArrival = "NA"; model.EarlyOut = "NA"; } else { model.Date = i + "/" + request.month + "/" + request.year; model.InTime = "NA"; model.OutTime = "NA"; model.AttendanceType = "NA"; model.Hours = "NA"; model.OverTimeHours = "NA"; model.LateArrival = "NA"; model.EarlyOut = "NA"; } } empmonthlyattendancelist.Add(model); } response.data.MonthlyEmployeeAttendanceList = empmonthlyattendancelist; response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = ex.Message; } return(response); }