Exemple #1
0
        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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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));
 }
Exemple #8
0
        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);
        }