Exemplo n.º 1
0
        public void ConfirmPayroll(int Id)
        {
            PayrollSalaryTable Record = _unitOfWork.PayrollSalaryTableRepository.GetById(Id);

            Record.SalaryConfirmed = true;
            _unitOfWork.PayrollSalaryTableRepository.Update(Record);
        }
Exemplo n.º 2
0
 public static PayrollSalaryTableDTO ConvertRespondentInfoToDTO(PayrollSalaryTable PayrollSalaryTable)
 {
     AutoMapper.Mapper.CreateMap <PayrollSalaryTable, PayrollSalaryTableDTO>().ConvertUsing(
         m =>
     {
         return(new PayrollSalaryTableDTO
         {
             Id = m.Id,
             OfficeId = m.OfficeId,
             PayrollMonthId = m.PayrollMonthId,
             BgId = m.BgId,
             CreatorId = m.CreatorId,
             Details = m.Details,
             SalaryConfirmed = m.SalaryConfirmed,
             PayrollMonthDescription = new PayrollMonthDescriptionDTO
             {
                 Id = m.PayrollMonthDescription.Id,
                 FyId = m.PayrollMonthDescription.FyId,
                 MonthNameEnglish = m.PayrollMonthDescription.MonthNameEnglish,
                 MonthNameNepali = m.PayrollMonthDescription.MonthNameNepali,
                 StartDate = m.PayrollMonthDescription.StartDate,
                 EndDate = m.PayrollMonthDescription.EndDate,
                 WorkingDays = m.PayrollMonthDescription.WorkingDays
             },
             Office = new OfficeDTOs
             {
                 OfficeId = m.Office.OfficeId,
                 OfficeName = m.Office.OfficeName,
                 OfficeAddress = m.Office.OfficeAddress,
                 OfficeCode = m.Office.OfficeCode,
                 OfficeGeoLocation = m.Office.OfficeGeoLocation,
                 OfficeParentId = m.Office.OfficeParentId,
                 OfficePhone = m.Office.OfficePhone,
                 OfficeStatus = m.Office.OfficeStatus
             },
             Fiscal = new FiscalDTO
             {
                 FyId = m.Fiscal.FyId,
                 FyName = m.Fiscal.FyName
             }
         });
     });
     return(AutoMapper.Mapper.Map <PayrollSalaryTable, PayrollSalaryTableDTO>(PayrollSalaryTable));
 }
Exemplo n.º 3
0
        public PayrollSalaryTableDTO GeneratePayroll(PayrollSalaryTableDTO Record, out string Message, out bool Success, out bool UpdateExisting)
        {
            List <PayrollSalaryTable> CheckConfirmedSalary = _unitOfWork.PayrollSalaryTableRepository.All().Where(x => x.OfficeId == Record.OfficeId && x.SalaryConfirmed == false).ToList();


            if (CheckConfirmedSalary.Count != 0)
            {
                foreach (PayrollSalaryTable Rec in CheckConfirmedSalary)
                {
                    if (!(Rec.OfficeId == Record.OfficeId && Rec.PayrollMonthId == Record.PayrollMonthId && Rec.FyId == Record.FyId))
                    {
                        Message = "There is a previous unconfirmed salary for this office";
                        Success = false;
                        Record.SalaryConfirmed = true;
                        UpdateExisting         = false;
                        return(Record);
                    }
                }
            }
            PayrollSalaryTableDTO ReturnRecord = new PayrollSalaryTableDTO();
            PayrollSalaryTable    Domain       = _unitOfWork.PayrollSalaryTableRepository.All().Where(x => x.FyId == Record.FyId && x.OfficeId == Record.OfficeId && x.PayrollMonthId == Record.PayrollMonthId).FirstOrDefault();

            if (Domain == null)
            {
                SqlConnection conn = DbConnectHelper.GetConnection();
                conn.Open();
                SqlCommand cmd = new SqlCommand("sp_GeneratePayrollNewVersion", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@FyId", Record.FyId);
                cmd.Parameters.AddWithValue("@MonthDescriptId", Record.PayrollMonthId);
                cmd.Parameters.AddWithValue("@CreatorId", Record.CreatorId);
                cmd.Parameters.AddWithValue("@BranchId", Record.OfficeId);
                cmd.Parameters.AddWithValue("@Details", Record.Details);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable      dt = new DataTable();
                da.Fill(dt);
                da.Dispose();
                cmd.Dispose();
                conn.Close();
                conn.Dispose();
                Message = "Payroll generated successfully";
                Success = true;
                PayrollSalaryTable ReturnId = _unitOfWork.PayrollSalaryTableRepository.Get(x => x.FyId == Record.FyId && x.OfficeId == Record.OfficeId && x.PayrollMonthId == Record.PayrollMonthId).FirstOrDefault();
                UpdateExisting = false;
                return(PayrollSalaryTableRequestFormatter.ConvertRespondentInfoToDTO(ReturnId));
            }
            else
            {
                if (!Domain.SalaryConfirmed)
                {
                    if (Record.UpdateExisting == true)
                    {
                        SqlConnection conn = DbConnectHelper.GetConnection();
                        conn.Open();
                        SqlCommand cmd = new SqlCommand("sp_GeneratePayrollNewVersion", conn);
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@FyId", Record.FyId);
                        cmd.Parameters.AddWithValue("@MonthDescriptId", Record.PayrollMonthId);
                        cmd.Parameters.AddWithValue("@CreatorId", Record.CreatorId);
                        cmd.Parameters.AddWithValue("@BranchId", Record.OfficeId);
                        cmd.Parameters.AddWithValue("@Details", Record.Details);
                        cmd.Parameters.AddWithValue("@DeleteFlag", Record.UpdateExisting);
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        DataTable      dt = new DataTable();
                        da.Fill(dt);
                        da.Dispose();
                        cmd.Dispose();
                        conn.Close();
                        conn.Dispose();
                        Message        = "Payroll updated successfully";
                        Success        = true;
                        UpdateExisting = false;
                        return(Record);
                    }
                    else
                    {
                        UpdateExisting = true;
                        Message        = "Payroll of this month for this Office already exists.";
                    }
                }
                else
                {
                    UpdateExisting = false;
                    Message        = "Payroll for this month is already confirmed";
                }
            }

            ReturnRecord = PayrollSalaryTableRequestFormatter.ConvertRespondentInfoToDTO(Domain);
            Success      = false;
            return(ReturnRecord);
        }