private int Generate() { int totalCount = 0; DataTable dtLeaveConfigurations = GlobalCache.ExecuteCache <DataTable>(typeof(Business.LeaveManagement.LeaveConfiguration), "LeaveConfigurations_GetAll", new Entity.LeaveManagement.LeaveConfiguration() { }); if (dtLeaveConfigurations != null) { if (dtLeaveConfigurations.Select("LeaveTypeId = " + ddlLeaveType.SelectedValue).Any()) { DataRow drLeaveConfiguration = dtLeaveConfigurations.Select("LeaveTypeId = " + ddlLeaveType.SelectedValue).FirstOrDefault(); if (drLeaveConfiguration != null) { //Getting all Employees DataTable dtEmployees = new Business.HR.EmployeeMaster().Employee_GetAll_Active(new Entity.HR.EmployeeMaster() { CompanyId_FK = 1 }); //Getting all Designation wise Leave Configurations DataTable dtLeaveDesignationConfigurations = new Business.LeaveManagement.LeaveDesignationWiseConfiguration().LeaveDesignationConfig_GetAll(new Entity.LeaveManagement.LeaveDesignationWiseConfiguration()); if (dtLeaveDesignationConfigurations != null && dtLeaveDesignationConfigurations.AsEnumerable().Any()) { foreach (DataRow drEmployee in dtEmployees.Rows) { //Getting Designation of each employee int designationId = Convert.ToInt32(drEmployee["DesignationMasterId"].ToString()); int leaveTypeId = Convert.ToInt32(ddlLeaveType.SelectedValue); DataRow drLeaveDesignationConfiguration = dtLeaveDesignationConfigurations .Select("DesignationId = " + designationId + " AND LeaveTypeId = " + leaveTypeId.ToString()).FirstOrDefault(); if (drLeaveDesignationConfiguration != null) { decimal leaveAmount = Convert.ToDecimal(drLeaveDesignationConfiguration["LeaveCount"].ToString()); if (leaveAmount > 0) { Business.LeaveManagement.LeaveAccountBalance objLeaveAccountBalance = new Business.LeaveManagement.LeaveAccountBalance(); int response = objLeaveAccountBalance.LeaveAccontBalance_Adjust(new Entity.LeaveManagement.LeaveAccountBalance() { LeaveTypeId = leaveTypeId, Amount = +leaveAmount, EmployeeId = Convert.ToInt32(drEmployee["EmployeeMasterId"].ToString()), Reason = ddlLeaveType.SelectedItem + " IS GENERATED FOR " + ddlMonths.SelectedValue + "_" + ddlQuarters.SelectedValue + "_" + ddlHalf.SelectedValue + "_" + ddlYears.SelectedValue }); if (response > 0) { totalCount++; } } } } } } } } return(totalCount); }
private bool LeaveApprovalValidation() { try { if (string.IsNullOrEmpty(txtRemarks.Text.Trim())) { Message.IsSuccess = false; Message.Text = "Please enter remarks."; Message.Show = true; return(false); } Business.LeaveManagement.LeaveApplication objLeaveApplication = new Business.LeaveManagement.LeaveApplication(); Entity.LeaveManagement.LeaveApplicationMaster leaveApplicationMaster = new Entity.LeaveManagement.LeaveApplicationMaster(); leaveApplicationMaster.LeaveApplicationId = Business.Common.Context.LeaveApplicationId; DataTable dtLeaveApplication = objLeaveApplication.LeaveApplicationMaster_GetAll(leaveApplicationMaster); DataTable dtLeaveAccountBalance = new Business.LeaveManagement.LeaveAccountBalance().LeaveAccountBalance_ByEmployeeId(Convert.ToInt32(dtLeaveApplication.Rows[0]["RequestorId"].ToString()), Convert.ToInt32(dtLeaveApplication.Rows[0]["LeaveTypeId"].ToString())).Tables[0]; DataSet dsLeaveDetails = objLeaveApplication.GetLeaveApplicationDetails_ByLeaveApplicationId(Business.Common.Context.LeaveApplicationId); decimal totalLeaveCount = 0; totalLeaveCount = Convert.ToDecimal(dsLeaveDetails.Tables[2].Compute("Sum(AppliedForDay)", string.Empty)); if (dtLeaveAccountBalance != null && dtLeaveAccountBalance.AsEnumerable().Any()) { if (totalLeaveCount > Convert.ToDecimal(dtLeaveAccountBalance.Rows[0]["Amount"].ToString())) { Message.Text = "Applicant's Leave Balance is low."; Message.IsSuccess = false; Message.Show = true; return(false); } if (Convert.ToBoolean(dtLeaveAccountBalance.Rows[0]["LeaveBlocked"].ToString())) { Message.Text = "Applicant's leaves are blocked. Please contact to HR."; Message.IsSuccess = false; Message.Show = true; return(false); } } else { Message.Text = "Applicant do not have any Leave Balance."; Message.IsSuccess = false; Message.Show = true; return(false); } return(true); } catch (Exception ex) { ex.WriteException(); Message.Text = ex.Message; Message.IsSuccess = false; Message.Show = true; return(false); } }
private int LeaveAccontBalance_Adjust(int leaveApplicationId) { Entity.LeaveManagement.LeaveAccountBalance leaveAccountBalance = new Entity.LeaveManagement.LeaveAccountBalance(); Business.LeaveManagement.LeaveAccountBalance objLeaveAccountBalance = new Business.LeaveManagement.LeaveAccountBalance(); leaveAccountBalance.EmployeeId = EmployeeMasterId; leaveAccountBalance.LeaveTypeId = Convert.ToInt32(ddlLeaveType.SelectedValue); leaveAccountBalance.Amount = (ddlOperation.SelectedValue == "1") ? Convert.ToDecimal(txtLeaveAmount.Text.Trim()) : -Convert.ToDecimal(txtLeaveAmount.Text.Trim()); leaveAccountBalance.Reason = "MANUAL ADJUSTMENT: " + txtComments.Text.Trim(); int response = objLeaveAccountBalance.LeaveAccontBalance_Adjust(leaveAccountBalance); return(response); }
private int LeaveAccontBalance_Deduct(int leaveApplicationId) { Entity.LeaveManagement.LeaveAccountBalance leaveAccountBalance = new Entity.LeaveManagement.LeaveAccountBalance(); Business.LeaveManagement.LeaveAccountBalance objLeaveAccountBalance = new Business.LeaveManagement.LeaveAccountBalance(); DataTable dtLeaveApplicationMaster = new Business.LeaveManagement.LeaveApplication() .LeaveApplicationMaster_GetAll( new Entity.LeaveManagement.LeaveApplicationMaster() { LeaveApplicationId = leaveApplicationId }); if (dtLeaveApplicationMaster != null && dtLeaveApplicationMaster.AsEnumerable().Any()) { leaveAccountBalance.EmployeeId = Convert.ToInt32(dtLeaveApplicationMaster.Rows[0]["RequestorId"].ToString()); leaveAccountBalance.LeaveTypeId = Convert.ToInt32(dtLeaveApplicationMaster.Rows[0]["LeaveTypeId"].ToString()); leaveAccountBalance.Amount = -(Convert.ToDecimal(dtLeaveApplicationMaster.Rows[0]["TotalLeaveDays"].ToString())); leaveAccountBalance.Reason = "LEAVE APPROVED"; } int response = objLeaveAccountBalance.LeaveAccontBalance_Adjust(leaveAccountBalance); return(response); }
private bool LeaveApplyValidation() { if (!LeaveApplicationControlValidation()) { return(false); } DataTable dtLeaveConfigurations = GlobalCache.ExecuteCache <DataTable>(typeof(Business.LeaveManagement.LeaveConfiguration), "LeaveConfigurations_GetAll", new Entity.LeaveManagement.LeaveConfiguration() { }); Entity.LeaveManagement.LeaveApplicationMaster leaveApplicationMaster = new Entity.LeaveManagement.LeaveApplicationMaster(); leaveApplicationMaster.RequestorId = Convert.ToInt32(HttpContext.Current.User.Identity.Name); DataTable dtLeaveApplicationMaster = new Business.LeaveManagement.LeaveApplication().LeaveApplicationMaster_GetAll(leaveApplicationMaster); if (dtLeaveConfigurations != null && dtLeaveConfigurations.AsEnumerable().Any()) { DataRow drLeaveConfiguration = dtLeaveConfigurations.Select("LeaveTypeId = " + ddlLeaveType.SelectedValue).FirstOrDefault(); if (drLeaveConfiguration == null) { Message.Text = "Leave Configuration not found"; Message.IsSuccess = false; Message.Show = true; return(false); } if (!(DateTime.Now.Date >= Convert.ToDateTime(drLeaveConfiguration["LeaveAccrueDate"].ToString()))) { Message.Text = "Leave Not Yet Applicable"; Message.IsSuccess = false; Message.Show = true; return(false); } if (dtLeaveApplicationMaster != null && dtLeaveApplicationMaster.AsEnumerable().Any()) { if (dtLeaveApplicationMaster.Select("LeaveStatusId = " + ((int)LeaveStatusEnum.Pending).ToString()).Any()) { Message.Text = "You already have leave approval pending."; Message.IsSuccess = false; Message.Show = true; return(false); } } } else { Message.Text = "Leave Configuration not found"; Message.IsSuccess = false; Message.Show = true; return(false); } DataTable dtEmployee = new Business.HR.EmployeeMaster().EmployeeMaster_ById(new Entity.HR.EmployeeMaster() { EmployeeMasterId = Convert.ToInt32(HttpContext.Current.User.Identity.Name) }); if (dtEmployee != null && dtEmployee.AsEnumerable().Any()) { if (dtEmployee.Rows[0]["ReportingEmployeeId"] == DBNull.Value) { Message.Text = "Please update reporting person."; Message.IsSuccess = false; Message.Show = true; return(false); } Entity.LeaveManagement.LeaveDesignationWiseConfiguration leaveDesignationWiseConfiguration = new Entity.LeaveManagement.LeaveDesignationWiseConfiguration(); leaveDesignationWiseConfiguration.LeaveTypeId = Convert.ToInt32(ddlLeaveType.SelectedValue); leaveDesignationWiseConfiguration.DesignationId = Convert.ToInt32(dtEmployee.Rows[0]["DesignationMasterId_FK"].ToString()); DataTable dtLeaveDesignationConfiguration = new Business.LeaveManagement.LeaveDesignationWiseConfiguration().LeaveDesignationConfig_GetAll(leaveDesignationWiseConfiguration); if (dtLeaveDesignationConfiguration != null && dtLeaveDesignationConfiguration.AsEnumerable().Any()) { decimal totalDays = Convert.ToDecimal(lbTotalCount.Text.Trim()); if (totalDays < Convert.ToDecimal(dtLeaveDesignationConfiguration.Rows[0]["MinApplyDays"].ToString())) { Message.Text = "Min leave should be more than " + dtLeaveDesignationConfiguration.Rows[0]["MinApplyDays"].ToString() + " days"; Message.IsSuccess = false; Message.Show = true; return(false); } else if (totalDays > Convert.ToDecimal(dtLeaveDesignationConfiguration.Rows[0]["MaxApplyDays"].ToString())) { Message.Text = "Max leave should be less than " + dtLeaveDesignationConfiguration.Rows[0]["MaxApplyDays"].ToString() + " days"; Message.IsSuccess = false; Message.Show = true; return(false); } //if (Convert.ToDecimal(lbTotalCount.Text.Trim()) > Convert.ToDecimal(dtLeaveDesignationConfiguration.Rows[0]["LeaveCount"].ToString())) //{ // Message.Text = "Maximum Leave you can apply is " + dtLeaveDesignationConfiguration.Rows[0]["LeaveCount"].ToString() + " days in a year"; // Message.IsSuccess = false; // Message.Show = true; // return false; //} } else { Message.Text = "Leave designation configuration not found"; Message.IsSuccess = false; Message.Show = true; return(false); } DataTable dtLeaveAccountBalance = new Business.LeaveManagement.LeaveAccountBalance().LeaveAccountBalance_ByEmployeeId(Convert.ToInt32(HttpContext.Current.User.Identity.Name), Convert.ToInt32(ddlLeaveType.SelectedValue)).Tables[0]; if (dtLeaveAccountBalance != null && dtLeaveAccountBalance.AsEnumerable().Any()) { if (Convert.ToInt32(lbTotalCount.Text.Trim()) > Convert.ToDecimal(dtLeaveAccountBalance.Rows[0]["Amount"].ToString())) { Message.Text = "Your Leave Balance is low."; Message.IsSuccess = false; Message.Show = true; return(false); } if (Convert.ToBoolean(dtLeaveAccountBalance.Rows[0]["LeaveBlocked"].ToString())) { Message.Text = "Your leaves are blocked. Please contact to HR."; Message.IsSuccess = false; Message.Show = true; return(false); } } else { Message.Text = "You do not have any Leave Balance."; Message.IsSuccess = false; Message.Show = true; return(false); } //Checking leave date overlapping DataTable dtLeaveApplicationDetails = new Business.LeaveManagement.LeaveApplication().LeaveApplicationDetails_GetByDate(new Entity.LeaveManagement.LeaveApplicationMaster() { RequestorId = Convert.ToInt32(HttpContext.Current.User.Identity.Name), FromLeaveDate = Convert.ToDateTime(lbFromDate.Text.Trim()), ToLeaveDate = Convert.ToDateTime(lbToDate.Text.Trim()), LeaveStatuses = Convert.ToString((int)LeaveStatusEnum.Approved) + "," + Convert.ToString((int)LeaveStatusEnum.Pending) }); if (dtLeaveApplicationDetails != null && dtLeaveApplicationDetails.AsEnumerable().Any()) { Message.Text = "Your leave dates are overlapping. Please check your Approved/Pending list."; Message.IsSuccess = false; Message.Show = true; return(false); } if (!string.IsNullOrEmpty(hdnHalfDayList.Value.Replace(',', ' ').Trim())) { if (!(ddlLeaveType.SelectedValue == ((int)LeaveTypeEnum.CL).ToString()) && !(ddlLeaveType.SelectedValue == ((int)LeaveTypeEnum.LWP).ToString())) { Message.Text = "You cannot apply half day with leave type " + ddlLeaveType.SelectedItem.Text; Message.IsSuccess = false; Message.Show = true; return(false); } } } else { Message.Text = "Employee Details not found."; Message.IsSuccess = false; Message.Show = true; return(false); } return(true); }
private void LeaveAccountBalance_ByEmployeeId() { Business.LeaveManagement.LeaveAccountBalance objLeaveAccountBalance = new Business.LeaveManagement.LeaveAccountBalance(); gvLeaveAvailableList.DataSource = objLeaveAccountBalance.LeaveAccountBalance_ByEmployeeId(Convert.ToInt32(HttpContext.Current.User.Identity.Name), 0).Tables[0]; gvLeaveAvailableList.DataBind(); }
private void LeaveAccountBalanceDetails_ByEmployeeId() { Business.LeaveManagement.LeaveAccountBalance objLeaveAccountBalance = new Business.LeaveManagement.LeaveAccountBalance(); gvLeaveBalanceDetails.DataSource = objLeaveAccountBalance.LeaveAccountBalance_ByEmployeeId(EmployeeMasterId, 0).Tables[1]; gvLeaveBalanceDetails.DataBind(); }