protected void modalBtnSubmit_Command(object sender, CommandEventArgs e) { bool haserror = false; string errormessage = ""; if (modalLabelError.Visible == true) { errormessage = modalLabelError.Text; haserror = true; } else if (modalReqJobStatus.Enabled == true && modalDropDownJobStatus.SelectedItem.Value == "Completed" && modalDropDownEndTimeHour.SelectedItem.Text == "--") { errormessage = "Cannot set job status as Completed without selecting End Time."; haserror = true; } if (haserror) { //System.Web.HttpContext.Current.Response.Write("<SCRIPT LANGUAGE='JavaScript'>alert('Error: "+errormessage+"')</SCRIPT>"); panelAlertHeader2.CssClass = "modalAlertHeader"; alertModalBtnOK2.CssClass = "buttonalert"; labelAlertHeader2.Text = "Error"; labelAlertMessage2.Text = errormessage; this.programmaticModalPopup.Show(); programmaticAlertModalPopup2.Show(); } else { DateTime selectedDate = DateTime.Parse(txtBoxDate.Text); int userid = Convert.ToInt32(Session["UserId"]); JobTracker jobTracker = new JobTracker(); JobTrackerHistory jtHist = new JobTrackerHistory(); //DateTime startTime = DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + modalDropDownStartTime.SelectedValue + ":00"); DateTime startTime = DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + modalDropDownStartTimeHour.SelectedValue+":"+modalDropDownStartTimeMin.SelectedValue + ":00"); //DateTime endTime = DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + modalDropDownEndTime.SelectedValue + ":00"); DateTime endTime; if (modalDropDownEndTimeHour.SelectedValue == "24") //end date selected is 12:00 AM next day { endTime = DateTime.Parse((selectedDate.AddDays(1)).Year + "-" + (selectedDate.AddDays(1)).Month + "-" + (selectedDate.AddDays(1)).Day + " 00:00:00"); } else { endTime = DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + modalDropDownEndTimeHour.SelectedValue + ":" + modalDropDownEndTimeMin.SelectedValue + ":00"); } jobTracker.StartTime = startTime; jobTracker.ScheduleDate = selectedDate; //if (modalDropDownEndTime.SelectedItem.Text != "Select End Time") if (modalDropDownEndTimeHour.SelectedItem.Text != "--") { jobTracker.EndTime = endTime; } jobTracker.JobTypeId = Convert.ToInt32(modalDropDownJobType.SelectedValue); jobTracker.JobIdNumber = modalTxtBoxJobId.Text.Trim(); jobTracker.Remarks = modalTxtBoxRemarks.Text.Trim(); jobTracker.LastUpdateDate = DateTime.Now; jobTracker.LastUpdatedBy = userid; jobTracker.UserId = userid; jobTracker.HWNo = modalLabelHWSW.Text; jobTracker.SWNo = modalLabelHWSW.ToolTip; jobTracker.Customer = modallabelCustomer.Text; jobTracker.EvalNo = modalLabelEvalNo.Text; jobTracker.Description = modallabelBoxJobDescription.Text; //if (jobTracker.JobIdNumber.Trim() != "") jobTracker.JobStatus = modalDropDownJobStatus.SelectedItem.Value; if (modalReqJobStatus.Enabled == false) // Put blank on task that does not require job status. jobTracker.JobStatus = ""; if (selectedDate.CompareTo(DateTime.Today) == 0) { jobTracker.ApprovedBy = userid; //if (modalDropDownEndTime.SelectedItem.Text != "Select End Time") if (modalDropDownEndTimeHour.SelectedItem.Text != "--") jobTracker.Status = "Approved"; else jobTracker.Status = "Pending"; } else { jobTracker.Status = "For Approval"; } if (e.CommandArgument.ToString() == "Add") { if (selectedDate.CompareTo(DateTime.Today) != 0) { if ((DateTime.Now.Subtract(startTime)).TotalHours < 24) { jobTracker.Status = "Approved"; jobTracker.ApprovedBy = userid; } } jobTracker.CreateDate = DateTime.Now; jobTracker.SupervisorRemarks = ""; jobTracker.CreatedBy = userid; jobTracker.ActionRequest = "Add"; jobTracker.Insert(jobTracker); jobTracker = jobTracker.GetJobTracker(Convert.ToInt32(jobTracker.CreatedBy), Convert.ToInt32(jobTracker.LastUpdatedBy), Convert.ToDateTime(jobTracker.StartTime), Convert.ToInt32(jobTracker.JobTypeId), jobTracker.ActionRequest, jobTracker.Status,false); } else { if (selectedDate.CompareTo(DateTime.Today) != 0) { if ((DateTime.Now.Subtract(startTime)).TotalHours < 2) { jobTracker.Status = "Approved"; jobTracker.ApprovedBy = userid; } } jobTracker.Id = Convert.ToInt32(e.CommandArgument); jobTracker.ActionRequest = "Update"; jobTracker.Update(jobTracker); } //jobTracker.CreateDate = DateTime.Now; jtHist = jtHist.ConvertToHistory(jobTracker); jtHist.Insert(jtHist); InitializeWorkingHours(); InitializeGrid(); this.programmaticModalPopup.Hide(); } }
private void RunBreakButtonActionForShifting() { int userid = Convert.ToInt32(Session["UserId"]); JobType jobtype = new JobType(); jobtype = jobtype.GetDefaultBreak(); DateTime selectedDate = DateTime.Parse(txtBoxDate.Text); JobTracker jobtracker = new JobTracker(); int jobtrackid = 0; bool noError = true; User user = new User(); user = user.GetUser(userid, selectedDate); TimeSpan cutOffTime = user.GetMyCutOfTime(); if (BtnBreak.Text == "Take a break") { DateTime startTime = new DateTime(); if (gridJobTrack.Rows.Count > 0) { jobtrackid = Convert.ToInt32(((Label)gridJobTrack.Rows[gridJobTrack.Rows.Count - 1].FindControl("labelJobTrackId")).Text); jobtracker = jobtracker.GetJobTracker(jobtrackid, false); JobType jtype = jobtype.GetJobType(Convert.ToInt32(jobtracker.JobTypeId)); if (Convert.ToDateTime(jobtracker.StartTime).TimeOfDay < cutOffTime && DateTime.Now.TimeOfDay >= cutOffTime) { if (jobtracker.EndTime == null) { noError = false; TimeSetting tsetting = new TimeSetting(); tsetting = tsetting.GetTimeSetting(); panelAlertHeader2.CssClass = "modalAlertHeader"; alertModalBtnOK2.CssClass = "buttonalert"; labelAlertHeader2.Text = "Error"; labelAlertMessage2.Text = "Please close all task first."; } else { GenerateStartHour(); GenerateStartMin(Convert.ToInt32(modalDropDownStartTimeHour.SelectedItem.Value)); startTime = DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + modalDropDownStartTimeHour.SelectedValue + ":" + modalDropDownStartTimeMin.SelectedValue + ":00"); } } else { if (jobtracker.EndTime == null) { DateTime stime = Convert.ToDateTime(jobtracker.StartTime); GenerateEndHour(stime.Hour, stime.Minute, true); GenerateEndMin(stime.Hour, stime.Minute, "--"); modalDropDownEndTimeHour.SelectedIndex = (modalDropDownEndTimeHour.Items.Count - 1); GenerateEndMin(stime.Hour, stime.Minute, modalDropDownEndTimeHour.SelectedItem.Text.Trim(), modalDropDownEndTimeMin.Items.Count == 0 ? "" : modalDropDownEndTimeHour.Items[modalDropDownEndTimeHour.Items.Count - 1].Text.Trim() + ":" + modalDropDownEndTimeMin.SelectedItem.Text.Trim()); if (modalDropDownEndTimeHour.Items[modalDropDownEndTimeHour.Items.Count - 1].Text != "--") { if (modalDropDownEndTimeHour.SelectedValue == "24") //end date selected is 12:00 AM next day { jobtracker.EndTime = DateTime.Parse((selectedDate.AddDays(1)).Year + "-" + (selectedDate.AddDays(1)).Month + "-" + (selectedDate.AddDays(1)).Day + " 00:00:00"); } else { jobtracker.EndTime = DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + modalDropDownEndTimeHour.Items[modalDropDownEndTimeHour.Items.Count - 1].Value + ":" + modalDropDownEndTimeMin.Items[modalDropDownEndTimeMin.Items.Count - 1].Value + ":00"); } jobtracker.Status = "Approved"; jobtracker.ApprovedBy = userid; jobtracker.ActionRequest = "Update"; jobtracker.Update(jobtracker); startTime = Convert.ToDateTime(jobtracker.EndTime); InitializeGrid(); } else { noError = false; TimeSetting tsetting = new TimeSetting(); tsetting = tsetting.GetTimeSetting(); panelAlertHeader2.CssClass = "modalAlertHeader"; alertModalBtnOK2.CssClass = "buttonalert"; labelAlertHeader2.Text = "Error"; labelAlertMessage2.Text = "Cannot take a break without spending at least " + tsetting + " minutes on the last task."; } } else { startTime = Convert.ToDateTime(jobtracker.EndTime); } } } else { GenerateStartHour(); GenerateStartMin(Convert.ToInt32(modalDropDownStartTimeHour.SelectedItem.Value)); startTime = DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + modalDropDownStartTimeHour.SelectedValue + ":" + modalDropDownStartTimeMin.SelectedValue + ":00"); } if (noError) { jobtracker = new JobTracker(); jobtracker.StartTime = startTime; jobtracker.Status = "Pending"; jobtracker.JobStatus = ""; jobtracker.ApprovedBy = userid; jobtracker.ActionRequest = "Add"; jobtracker.UserId = userid; jobtracker.CreateDate = DateTime.Now; jobtracker.CreatedBy = userid; jobtracker.LastUpdateDate = DateTime.Now; jobtracker.LastUpdatedBy = userid; jobtracker.Description = jobtype.Description; jobtracker.JobTypeId = jobtype.Id; jobtracker.ScheduleDate = selectedDate; jobtracker.Remarks = ""; jobtracker.Insert(jobtracker); InitializeGrid(); } else { programmaticAlertModalPopup2.Show(); } } else if (BtnBreak.Text == "End break") { jobtrackid = Convert.ToInt32(((Label)gridJobTrack.Rows[gridJobTrack.Rows.Count - 1].FindControl("labelJobTrackId")).Text); jobtracker = jobtracker.GetJobTracker(jobtrackid, false); jobtracker.LastUpdateDate = DateTime.Now; jobtracker.LastUpdatedBy = userid; if (jobtracker.JobTypeId == jobtype.Id) { DateTime stime = Convert.ToDateTime(jobtracker.StartTime); GenerateEndHour(stime.Hour, stime.Minute, true); GenerateEndMin(stime.Hour, stime.Minute, "--"); modalDropDownEndTimeHour.SelectedIndex = (modalDropDownEndTimeHour.Items.Count - 1); GenerateEndMin(stime.Hour, stime.Minute, modalDropDownEndTimeHour.SelectedItem.Text.Trim(), modalDropDownEndTimeMin.Items.Count == 0 ? "" : modalDropDownEndTimeHour.Items[modalDropDownEndTimeHour.Items.Count - 1].Text.Trim() + ":" + modalDropDownEndTimeMin.SelectedItem.Text.Trim()); if (modalDropDownEndTimeHour.Items[modalDropDownEndTimeHour.Items.Count - 1].Text != "--") { if (modalDropDownEndTimeHour.SelectedValue == "24") //end date selected is 12:00 AM next day { jobtracker.EndTime = DateTime.Parse((selectedDate.AddDays(1)).Year + "-" + (selectedDate.AddDays(1)).Month + "-" + (selectedDate.AddDays(1)).Day + " 00:00:00"); } else { jobtracker.EndTime = DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + modalDropDownEndTimeHour.Items[modalDropDownEndTimeHour.Items.Count - 1].Value + ":" + modalDropDownEndTimeMin.Items[modalDropDownEndTimeMin.Items.Count - 1].Value + ":00"); } jobtracker.Status = "Approved"; jobtracker.ApprovedBy = userid; jobtracker.ActionRequest = "Update"; jobtracker.Update(jobtracker); InitializeGrid(); } else//delete break if start time and end time are the same { jobtracker.Delete(jobtracker.Id); InitializeGrid(); } } if (gridJobTrack.Rows.Count > 1) // continue the last created job { for (int i = gridJobTrack.Rows.Count - 1; i >= 0; i--) { jobtrackid = Convert.ToInt32(((Label)gridJobTrack.Rows[i].FindControl("labelJobTrackId")).Text); JobTracker jtracker = jobtracker.GetJobTracker(jobtrackid, false); JobType jtype = jobtype.GetJobType(Convert.ToInt32(jtracker.JobTypeId)); if (jtype.ComputeTime == true) { jtracker.StartTime = jobtracker.EndTime; jtracker.UserId = userid; jtracker.CreateDate = DateTime.Now; jtracker.CreatedBy = userid; jtracker.LastUpdateDate = DateTime.Now; jtracker.LastUpdatedBy = userid; jtracker.EndTime = null; jtracker.ActionRequest = "Add"; jtracker.Status = "Approved"; if(Convert.ToDateTime(jobtracker.EndTime).TimeOfDay != new TimeSpan(0,0,0)) //only insert if endtime is not equal to 24:00 (next day) jtracker.Insert(jtracker); InitializeGrid(); break; } } } } }