public async Task <ApiResponse> Handle(UpdatePayrollAccountHeadCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                PayrollAccountHead xPayrollAccountHead = await _dbContext.PayrollAccountHead.FirstOrDefaultAsync(x => x.PayrollHeadId == request.PayrollHeadId);

                xPayrollAccountHead.AccountNo         = request.AccountNo;
                xPayrollAccountHead.Description       = request.Description;
                xPayrollAccountHead.PayrollHeadId     = request.PayrollHeadId;
                xPayrollAccountHead.PayrollHeadName   = request.PayrollHeadName;
                xPayrollAccountHead.PayrollHeadTypeId = request.PayrollHeadTypeId;
                xPayrollAccountHead.TransactionTypeId = request.TransactionTypeId;
                xPayrollAccountHead.ModifiedById      = request.ModifiedById;
                xPayrollAccountHead.ModifiedDate      = request.ModifiedDate;
                xPayrollAccountHead.IsDeleted         = false;

                await _dbContext.SaveChangesAsync();

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }
        public async Task <ApiResponse> Handle(AddEmployeeAppraisalMoreDetailsCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                PayrollAccountHead obj = _mapper.Map <PayrollAccountHead>(request);
                obj.IsDeleted = false;
                await _dbContext.PayrollAccountHead.AddAsync(obj);

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }
Exemplo n.º 3
0
        public async Task <ApiResponse> Handle(UpdatePayrollAccountHeadAllEmployeesCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                //NOTE: Do not remove code for saving payroll heads for employees that do not exist in EmployeePayrollAccountHead table
                //List<EmployeeProfessionalDetail> employeesNotInPayrollAccountHeadTable = new List<EmployeeProfessionalDetail>();
                //List<EmployeeProfessionalDetail> employeeList = await _uow.GetDbContext().EmployeeProfessionalDetail.Where(x => x.IsDeleted == false).ToListAsync();

                IEnumerable <int> employeeIds = _dbContext.EmployeeDetail
                                                .Where(x => x.IsDeleted == false).Select(x => x.EmployeeID).ToList();

                IEnumerable <int> employeeWithNoPayrollHead;
                IEnumerable <int> employeeWithPayrollHead;

                List <EmployeePayrollAccountHead> xEmployeePayrollAccountHead = await _dbContext.EmployeePayrollAccountHead.Where(x => x.IsDeleted == false).ToListAsync();

                employeeWithPayrollHead = xEmployeePayrollAccountHead.Select(x => x.EmployeeId).Distinct().ToList();

                employeeWithNoPayrollHead = employeeIds.Except(employeeWithPayrollHead);

                foreach (PayrollHeadModel payrollHead in request.PayrollHead)
                {
                    PayrollAccountHead xPayrollAccountHead = _dbContext.PayrollAccountHead.FirstOrDefault(x => x.PayrollHeadId == payrollHead.PayrollHeadId);

                    xPayrollAccountHead.AccountNo         = payrollHead.AccountNo;
                    xPayrollAccountHead.Description       = payrollHead.Description;
                    xPayrollAccountHead.PayrollHeadId     = payrollHead.PayrollHeadId;
                    xPayrollAccountHead.PayrollHeadName   = payrollHead.PayrollHeadName;
                    xPayrollAccountHead.PayrollHeadTypeId = payrollHead.PayrollHeadTypeId;
                    xPayrollAccountHead.TransactionTypeId = payrollHead.TransactionTypeId;
                    xPayrollAccountHead.ModifiedById      = request.ModifiedById;
                    xPayrollAccountHead.ModifiedDate      = request.ModifiedDate;
                    xPayrollAccountHead.IsDeleted         = false;

                    await _dbContext.SaveChangesAsync();

                    List <EmployeePayrollAccountHead> xEmployeePayrollAccount = xEmployeePayrollAccountHead.Where(x => x.IsDeleted == false && x.PayrollHeadId == payrollHead.PayrollHeadId).ToList();

                    if (xEmployeePayrollAccount.Any())
                    {
                        xEmployeePayrollAccount.ForEach(x =>
                        {
                            x.AccountNo         = payrollHead.AccountNo; x.Description = payrollHead.Description;
                            x.PayrollHeadTypeId = payrollHead.PayrollHeadTypeId; x.TransactionTypeId = payrollHead.TransactionTypeId;
                        });
                        _dbContext.EmployeePayrollAccountHead.UpdateRange(xEmployeePayrollAccountHead);
                        await _dbContext.SaveChangesAsync();
                    }

                    List <EmployeePayrollAccountHead> employeePayrollHeads = new List <EmployeePayrollAccountHead>();

                    //Adding New Payroll Heads for Employees not having Payroll Head already saved
                    foreach (int employeeId in employeeWithNoPayrollHead)
                    {
                        EmployeePayrollAccountHead employeePayrollAccountHead = new EmployeePayrollAccountHead();
                        employeePayrollAccountHead.AccountNo         = payrollHead.AccountNo;
                        employeePayrollAccountHead.CreatedById       = request.ModifiedById;
                        employeePayrollAccountHead.Description       = payrollHead.Description;
                        employeePayrollAccountHead.EmployeeId        = employeeId;
                        employeePayrollAccountHead.IsDeleted         = false;
                        employeePayrollAccountHead.PayrollHeadId     = payrollHead.PayrollHeadId;
                        employeePayrollAccountHead.PayrollHeadName   = payrollHead.PayrollHeadName;
                        employeePayrollAccountHead.PayrollHeadTypeId = payrollHead.PayrollHeadTypeId;
                        employeePayrollAccountHead.TransactionTypeId = payrollHead.TransactionTypeId;
                        employeePayrollHeads.Add(employeePayrollAccountHead);
                    }

                    _dbContext.EmployeePayrollAccountHead.AddRange(employeePayrollHeads);
                    await _dbContext.SaveChangesAsync();
                }

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }

            return(response);
        }