// //////////////////////////////////////////////////////////////////////// // AUXILIAR EVENTS // protected void ddlEmployee_SelectedIndexChanged(object sender, EventArgs e) { ViewState["date_to_show"] = tkrsVacations.SelectedDate.ToString(); ViewState["employee_id"] = ddlEmployee.SelectedValue; DateTime dateToShow = DateTime.Parse((string)ViewState["date_to_show"]); int companyId = Int32.Parse(hdfCompanyId.Value); hdfEmployeeId.Value = ddlEmployee.SelectedValue.ToString(); int employeeId = Int32.Parse(hdfEmployeeId.Value); // Reload Data VacationsAddBasicInformationGateway vacationsAddBasicInformationGateway = new VacationsAddBasicInformationGateway(vacationsAddTDS); vacationsAddBasicInformationGateway.LoadByEmployeeIdYear(employeeId, dateToShow.Year, companyId); if (vacationsAddBasicInformationGateway.Table.Rows.Count == 0) { Response.Redirect("./../../error_page.aspx?error=" + "The team member don't have total paid day vacations defined in the system. Contact your system administrator."); } else { LoadData(employeeId, dateToShow.Year); // ... Load non working days EmployeeGateway employeeGateway = new EmployeeGateway(); employeeGateway.LoadByEmployeeId(employeeId); string employeeType = employeeGateway.GetType(employeeId); int companyLevelId = 3; //USA if (employeeType.Contains("CA")) { companyLevelId = 2;//Canada } VacationsAddDaysInformation vacationsAddDaysInformation = new VacationsAddDaysInformation(vacationsAddTDS); //vacationsAddDaysInformation.LoadNonWorkingDaysByCompanyLevelId(companyLevelId, companyId); // ... Load previews vacations //vacationsAddDaysInformation.LoadPreviousVacations(employeeId, companyId); vacationsAddDaysInformation.LoadDataForVacationsAdd(companyLevelId, employeeId, companyId); } Session["vacationsAddTDS"] = vacationsAddTDS; Session["vacationDaysInformation"] = vacationsAddTDS.DaysInformation; }
protected void tkrsVacations_AppointmentUpdate(object sender, AppointmentUpdateEventArgs e) { Page.Validate(); if (Page.IsValid) { int vacationId = Convert.ToInt32(e.ModifiedAppointment.ID); double takenDay = 0; VacationsAddDaysInformationGateway vacationsAddDaysInformationGateway = new VacationsAddDaysInformationGateway(vacationsAddTDS); string oldPaymentType = vacationsAddDaysInformationGateway.GetPaymentType(vacationId); switch (e.ModifiedAppointment.Subject) { case "Half Vacation Day": if (oldPaymentType == "Full Vacation Day") { takenDay = -0.5; } else { if (oldPaymentType == "Unpaid Leave Full Day") { takenDay = 0.5; } } break; case "Full Vacation Day": if (oldPaymentType == "Half Vacation Day") { takenDay = 0.5; } else { if (oldPaymentType == "Unpaid Leave Full Day") { takenDay = 1; } } break; case "Unpaid Leave Full Day": if (oldPaymentType == "Full Vacation Day") { takenDay = -1; } else { if (oldPaymentType == "Half Vacation Day") { takenDay = -0.5; } } break; case "Unpaid Leave Half Day": if (oldPaymentType == "Full Vacation Day") { takenDay = -1; } else { if (oldPaymentType == "Half Vacation Day") { takenDay = -0.5; } } break; } VacationsAddDaysInformation vacationsAddDaysInformation = new VacationsAddDaysInformation(vacationsAddTDS); vacationsAddDaysInformation.Update(vacationId, e.ModifiedAppointment.Subject); // Store dataset Session["vacationsAddTDS"] = vacationsAddTDS; Session["vacationDaysInformation"] = vacationsAddTDS.DaysInformation; tkrsVacations.DataBind(); double newRemainingVacationDays = double.Parse(tbxRemaining.Text) - takenDay; tbxRemaining.Text = newRemainingVacationDays.ToString(); if (double.Parse(tbxRemaining.Text) < 0) { ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "alert('You are requesting more vacation than the entitlement. If you continue these days will be discounted from next years total .');", true); } } else { e.Cancel = true; } }
protected void tkrsVacations_AppointmentInsert(object sender, SchedulerCancelEventArgs e) { Page.Validate(); if (Page.IsValid) { string filterExpression = string.Format("Deleted = 0 AND StartDate = '{0}'", e.Appointment.Start); DataRow[] drarray = vacationsAddTDS.DaysInformation.Select(filterExpression, "StartDate ASC", DataViewRowState.CurrentRows); bool isValidVacation = true; switch (e.Appointment.Subject) { case "Half Vacation Day": if (drarray.Length > 0) { if ((drarray[0]["PaymentType"].ToString() != "Half Vacation Day") && (drarray[0]["PaymentType"].ToString() != "Unpaid Leave Half Day")) { isValidVacation = false; } else { if (drarray.Length > 1) { isValidVacation = false; } } } break; case "Full Vacation Day": if (drarray.Length > 0) { isValidVacation = false; } break; case "Unpaid Leave Full Day": if (drarray.Length > 0) { isValidVacation = false; } break; case "Unpaid Leave Half Day": if (drarray.Length > 0) { if ((drarray[0]["PaymentType"].ToString() != "Unpaid Leave Half Day") && (drarray[0]["PaymentType"].ToString() != "Half Vacation Day")) { isValidVacation = false; } else { if (drarray.Length > 1) { isValidVacation = false; } } } break; } // Verify non working days if (isValidVacation) { isValidVacation = LiquiForce.LFSLive.BL.LabourHours.ProjectTime.ProjectTime.ValidateIfNonWorkingDay(e.Appointment.Start, Int32.Parse(hdfEmployeeId.Value), Int32.Parse(hdfCompanyId.Value)); if (!isValidVacation) { e.Cancel = true; ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "alert('You can not take vacations on this day, this is a non working day. Please verify your data.');", true); } else { // Verify existent vacations isValidVacation = LiquiForce.LFSLive.BL.LabourHours.ProjectTime.ProjectTime.ValidateIfExistsAVacation(e.Appointment.Start, Int32.Parse(hdfEmployeeId.Value), Int32.Parse(hdfCompanyId.Value)); if (!isValidVacation) { e.Cancel = true; ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "alert('You have a vacation planned for this day. Please verify your data.');", true); } else { VacationsInformationGateway vacationsInformationGateway = new VacationsInformationGateway(); int amountHalfDays = vacationsInformationGateway.IsHalfVacationDay(e.Appointment.Start, Int32.Parse(hdfEmployeeId.Value), Int32.Parse(hdfCompanyId.Value)); if (amountHalfDays > 0) { if ((e.Appointment.Subject == "Unpaid Leave Full Day") || (e.Appointment.Subject == "Full Vacation Day")) { isValidVacation = false; e.Cancel = true; ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "alert('You have a half vacation day planned for this day. Please verify your data.');", true); } } } } } else { e.Cancel = true; ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "alert('You already have a vacation request for this day please verify your data.');", true); } if (isValidVacation) { double takenDay = 0; switch (e.Appointment.Subject) { case "Half Vacation Day": takenDay = 0.5; break; case "Full Vacation Day": takenDay = 1; break; } VacationsAddDaysInformation vacationsAddDaysInformation = new VacationsAddDaysInformation(vacationsAddTDS); vacationsAddDaysInformation.Insert(1, e.Appointment.Start, e.Appointment.Start, e.Appointment.Subject, e.Appointment.Subject, false, Int32.Parse(hdfCompanyId.Value)); // Store dataset Session["vacationsAddTDS"] = vacationsAddTDS; Session["vacationDaysInformation"] = vacationsAddTDS.DaysInformation; tkrsVacations.DataBind(); double newRemainingVacationDays = double.Parse(tbxRemaining.Text) - takenDay; tbxRemaining.Text = newRemainingVacationDays.ToString(); if (double.Parse(tbxRemaining.Text) < 0) { ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "alert('You are requesting more vacation than the entitlement. If you continue these days will be discounted from next years total.');", true); } } } else { e.Cancel = true; } }
protected void tkrsVacations_AppointmentDelete(object sender, SchedulerCancelEventArgs e) { Page.Validate(); if (Page.IsValid) { int vacationId = Convert.ToInt32(e.Appointment.ID); double takenDay = 0; VacationsAddDaysInformationGateway vacationsAddDaysInformationGateway = new VacationsAddDaysInformationGateway(vacationsAddTDS); string oldPaymentType = vacationsAddDaysInformationGateway.GetPaymentType(vacationId); switch (oldPaymentType) { case "Half Vacation Day": takenDay = 0.5; break; case "Full Vacation Day": takenDay = 1; break; } VacationsAddDaysInformation vacationsAddDaysInformation = new VacationsAddDaysInformation(vacationsAddTDS); vacationsAddDaysInformation.Delete(vacationId); double newRemainingVacationDays = double.Parse(tbxRemaining.Text) + takenDay; tbxRemaining.Text = newRemainingVacationDays.ToString(); // Store dataset Session["vacationsAddTDS"] = vacationsAddTDS; Session["vacationDaysInformation"] = vacationsAddTDS.DaysInformation; tkrsVacations.DataBind(); } else { e.Cancel = true; } }
// //////////////////////////////////////////////////////////////////////// // EVENTS // protected void Page_Load(object sender, EventArgs e) { // Register client scripts this.RegisterClientScripts(); if (!IsPostBack) { // Tag page // ... for non vacation managers EmployeeGateway employeeGatewayManager = new EmployeeGateway(); int employeeIdNow = employeeGatewayManager.GetEmployeIdByLoginId(Convert.ToInt32(Session["loginID"])); employeeGatewayManager.LoadByEmployeeId(employeeIdNow); if (employeeGatewayManager.GetIsVacationsManager(employeeIdNow)) { hdfIsVacationManager.Value = "True"; } else { hdfIsVacationManager.Value = "False"; } // Security check //if (!(Convert.ToBoolean(Session["sgLFS_LABOUR_HOURS_VACATIONS_ADD"]))) //{ if (hdfIsVacationManager.Value == "False") { Response.Redirect("./../../error_page.aspx?error=" + "You are not authorized to view this page. Contact your system administrator."); } //} // Validate query string if (((string)Request.QueryString["source_page"] == null) && ((string)Request.QueryString["employee_id"] == null) && ((string)Request.QueryString["date_to_show"] == null)) { Response.Redirect("./../../error_page.aspx?error=" + "Invalid query string in vacations_add.aspx"); } // Tag page hdfCompanyId.Value = Session["companyID"].ToString(); hdfEmployeeId.Value = (string)Request.QueryString["employee_id"]; Session.Remove("vacationsAddTDS"); ViewState["date_to_show"] = (string)Request.QueryString["date_to_show"]; DateTime dateToShow = DateTime.Parse((string)Request.QueryString["date_to_show"]); // Prepare initial data // ... For employee list EmployeeList employeeList = new EmployeeList(); string employeeTypeNow = employeeGatewayManager.GetType(employeeIdNow); if (employeeTypeNow.Contains("CA")) { employeeList.LoadBySalariedEmployeeTypeAndAddItem(1, "CA", -1, "(All)"); } else { employeeList.LoadBySalariedEmployeeTypeAndAddItem(1, "US", -1, "(All)"); } DropDownList ddlVacationsFor = (DropDownList)tkrpbLeftMenuAllVacations.FindItemByValue("nbVacationsForDDL").FindControl("ddlVacationsFor"); ddlVacationsFor.DataSource = employeeList.Table; ddlVacationsFor.DataValueField = "EmployeeID"; ddlVacationsFor.DataTextField = "FullName"; ddlVacationsFor.DataBind(); ddlVacationsFor.SelectedValue = Session["ddlVacationsForSelectedValue"].ToString(); // ... For employee ddl ddlEmployee.DataSource = employeeList.Table; ddlEmployee.DataValueField = "EmployeeID"; ddlEmployee.DataTextField = "FullName"; ddlEmployee.DataBind(); vacationsAddTDS = new VacationsAddTDS(); vacationDaysInformation = new VacationsAddTDS.DaysInformationDataTable(); // If there is a selected employee if (hdfEmployeeId.Value != "-1") { int companyId = Int32.Parse(hdfCompanyId.Value); int employeeId = Int32.Parse(hdfEmployeeId.Value); // ... Verify basic information VacationsAddBasicInformationGateway vacationsAddBasicInformationGateway = new VacationsAddBasicInformationGateway(vacationsAddTDS); vacationsAddBasicInformationGateway.LoadByEmployeeIdYear(employeeId, dateToShow.Year, companyId); if (vacationsAddBasicInformationGateway.Table.Rows.Count == 0) { Response.Redirect("./../../error_page.aspx?error=" + "The team member don't have total paid day vacations defined in the system. Contact your system administrator."); } else { LoadData(employeeId, dateToShow.Year); // ... Load non working days EmployeeGateway employeeGateway = new EmployeeGateway(); employeeGateway.LoadByEmployeeId(employeeId); string employeeType = employeeGateway.GetType(employeeId); int companyLevelId = 3; //USA if (employeeType.Contains("CA")) { companyLevelId = 2;//Canada } VacationsAddDaysInformation vacationsAddDaysInformation = new VacationsAddDaysInformation(vacationsAddTDS); //vacationsAddDaysInformation.LoadNonWorkingDaysByCompanyLevelId(companyLevelId, companyId); // ... Load previews vacations //vacationsAddDaysInformation.LoadPreviousVacations(employeeId, companyId); vacationsAddDaysInformation.LoadDataForVacationsAdd(companyLevelId, employeeId, companyId); } } ViewState["employee_id"] = hdfEmployeeId.Value; Session["vacationsAddTDS"] = vacationsAddTDS; Session["vacationDaysInformation"] = vacationsAddTDS.DaysInformation; Page.DataBind(); } else { vacationsAddTDS = (VacationsAddTDS)Session["vacationsAddTDS"]; vacationDaysInformation = (VacationsAddTDS.DaysInformationDataTable)Session["vacationDaysInformation"]; hdfEmployeeId.Value = ViewState["employee_id"].ToString(); } }
private void UpdateDatabase() { DB.Open(); DB.BeginTransaction(); try { double oldTotalTakenVacationDays = double.Parse(tbxMax.Text) - double.Parse(tbxRemaining.Text); VacationsAddRequestsInformation vacationsAddRequestsInformation = new VacationsAddRequestsInformation(vacationsAddTDS); int requestId = vacationsAddRequestsInformation.Save(oldTotalTakenVacationDays); VacationsAddDaysInformation vacationsAddDaysInformation = new VacationsAddDaysInformation(vacationsAddTDS); vacationsAddDaysInformation.Save(requestId); vacationsAddTDS.AcceptChanges(); // Store dataset Session["vacationsAddTDS"] = vacationsAddTDS; Session["vacationDaysInformation"] = vacationsAddTDS.DaysInformation; DB.CommitTransaction(); } catch (Exception ex) { DB.RollbackTransaction(); string url = string.Format("./../../error_page.aspx?error={0}", ex.Message.Replace('\n', ' ')); Response.Redirect(url); } }