public HttpResponseMessage GeneratePayslip(int employee_id)//e_id employee_id { HttpResponseMessage response = null; try { if (employee_id != 0) { Salary_Structure salary = SalaryRepo.GetSalaryStructureByEmpId(employee_id); Payslip payslip = SalaryCalculation.Calculatepayslip(salary); Payslip existing_instance = PayslipRepo.GetExistingPayslip(payslip.emp_id, payslip.payslip_month, payslip.payslip_year); if (payslip != null && existing_instance == null) { PayslipRepo.AddPayslip(payslip); response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_001", "Pay slip generated successfully!", "Pay slip generated successfully!")); } else { response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_603", "Failure : Pay slip generation Error or payslip for specified month is already exists", "Pay slip generation Error or payslip for specified month is already exists")); } } else { response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_102", "Invalid Input", "Please check input Json")); } } catch (Exception exception) { Debug.WriteLine(exception.Message); Debug.WriteLine(exception.GetBaseException()); response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_101", "Application Error", exception.Message)); } return(response); }
public HttpResponseMessage CreateNewEmployee(EmployeeModel employee_details) { HttpResponseMessage Response = null; try { if (employee_details != null && employee_details.role_id != 0 /*&& employee_details.ctc != 0*/ && employee_details.id != 0 && employee_details.reporting_to != 0 && employee_details.designation_id != 0) { Employee existingInstance = EmployeeRepo.GetEmployeeById(employee_details.id); List <Employee> employeeByMailid = EmployeeRepo.GetEmployeeByMailId(employee_details.email); if (existingInstance != null) { Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_402", "Employee ID already exists", "Employee ID already exists")); return(Response); } if (employeeByMailid.Count != 0) { Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_402", "Mail ID already exists", "Mail ID already exists")); return(Response); } Employee employee = new Employee(); employee.id = employee_details.id; employee.first_name = employee_details.first_name; employee.last_name = employee_details.last_name; employee.email = employee_details.email; employee.date_of_birth = employee_details.date_of_birth; employee.date_of_joining = employee_details.date_of_joining; employee.contact_no = employee_details.contact_no; employee.reporting_to = employee_details.reporting_to; employee.year_of_experience = Decimal.Parse(employee_details.Year_of_experience); employee.gender = employee_details.gender; employee.pan_no = employee_details.pan_no; employee.bank_account_no = employee_details.bank_account_no; employee.emergency_contact_no = employee_details.emergency_contact_no; employee.emergency_contact_person = employee_details.emergency_contact_person; employee.PF_no = employee_details.PF_no; employee.medical_insurance_no = employee_details.medical_insurance_no; employee.blood_group = employee_details.blood_group; employee.designation = employee_details.designation_id; employee.created_on = DateTime.Now; bool isEmail = Regex.IsMatch(employee.email, @"^([0-9a-zA-Z]" + //Start with a digit or alphabetical @"([\+\-_\.][0-9a-zA-Z]+)*" + // No continuous or ending +-_. chars in email @")+" + @"@(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]*\.)+[a-zA-Z0-9]{2,17})$" , RegexOptions.IgnoreCase); if (isEmail != true) { Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_402", "Enter valid MailId", "Enter valid MailId")); } else if ((employee.date_of_birth.Year > (DateTime.Now.Year - 21))) { Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_402", "Employee age is below 21 years", "Employee age is below 21 years")); } else { User user = new User(); user.user_name = employee.email; string Temp_password = PasswordGenerator.GeneratePassword(); //Debug.WriteLine(Temp_password); user.password = EncryptPassword.CalculateHash(Temp_password); //Debug.WriteLine(user.password); user.is_active = 1; EmployeeRepo.CreateNewUser(user); employee.user_id = user.id; EmployeeRepo.CreateNewEmployee(employee); User_role user_role = new User_role(); user_role.user_id = user.id; user_role.role_id = employee_details.role_id; EmployeeRepo.AssignEmployeeRole(user_role); if (employee.gender.ToLower() == "male") { EmployeeRepo.InsertLeaveBalance(employee, Constants.MALE_LEAVE_TYPES); } else { EmployeeRepo.InsertLeaveBalance(employee, Constants.FEMALE_LEAVE_TYPES); } Salary_Structure salary = new Salary_Structure(); salary = SalaryCalculation.CalculateSalaryStructure(employee_details.ctc); salary.emp_id = employee_details.id; salary.is_active = 1; salary.from_date = DateTime.Now; salary.to_date = null; SalaryRepo.CreateSalaryStructure(salary); Payslip payslip = new Payslip(); payslip = SalaryCalculation.FirstMonthSalary(employee_details.date_of_joining, salary); if (payslip != null) { PayslipRepo.AddPayslip(payslip); } else { Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_401", "Error in salary structure generation or payslip generation", "Error in salary structure generation or payslip generation")); return(Response); } string username = employee.first_name + " " + employee.last_name; MailHandler.PasswordMailingFunction(username, employee.email, Temp_password); Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_001", "Employee added Successfully", "Employee added Successfully")); } } else { Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_190", "Invalid Input - check the fileds", "Invalid Input - check the fileds")); } } catch (DbEntityValidationException DBexception) { Debug.WriteLine(DBexception.Message); Debug.WriteLine(DBexception.GetBaseException()); Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_190", "Mandatory fields missing or Type mismatch", DBexception.Message)); } catch (Exception exception) { Debug.WriteLine(exception.Message); Debug.WriteLine(exception.GetBaseException()); Response = Request.CreateResponse(HttpStatusCode.OK, new EMSResponseMessage("EMS_101", "Application Error", exception.Message)); } return(Response); }