public static void RollupPlantAccounting(decimal initialPlantId, decimal finalPlantId) { var entities = new PSsqmEntities(); var plantIds = new HashSet <decimal> { initialPlantId, finalPlantId }; plantIds.Remove(0); // Default to January 1 of current year if web.config value not found DateTime startDate = new DateTime(DateTime.Now.Year, 1, 1); string plantAccountingCalcStartDate = System.Configuration.ConfigurationManager.AppSettings["PlantAccountingCalcStartDate"]; if (!string.IsNullOrEmpty(plantAccountingCalcStartDate)) { DateTime result; if (DateTime.TryParse(plantAccountingCalcStartDate, out result)) { startDate = result; } } // Step 1 - zero out incident plant accounting values or create new records foreach (decimal pid in plantIds) { DateTime incDate = startDate; while (incDate < DateTime.Now || (incDate.Month == DateTime.Now.Month && incDate.Year == DateTime.Now.Year)) { var pa = EHSModel.LookupPlantAccounting(entities, pid, incDate.Year, incDate.Month, true); pa.RECORDED_CASES = 0; pa.TIME_LOST_CASES = 0; pa.TIME_LOST = 0; EHSModel.UpdatePlantAccounting(entities, pa); incDate = incDate.AddMonths(1); } } // Step 2 - update records incident by incident foreach (decimal pid in plantIds) { DateTime incDate = startDate; while (incDate < DateTime.Now || (incDate.Month == DateTime.Now.Month && incDate.Year == DateTime.Now.Year)) { var pa = EHSModel.LookupPlantAccounting(entities, pid, incDate.Year, incDate.Month, true); var incidentList = EHSIncidentMgr.SelectInjuryIllnessIncidents(pid, incDate); // this might be wrong ?? foreach (INCIDENT incident in incidentList) { string recordableAnswerValue = EHSIncidentMgr.SelectIncidentAnswer(incident, (decimal)EHSQuestionId.Recordable); if (!string.IsNullOrEmpty(recordableAnswerValue) && recordableAnswerValue == "Yes") { pa.RECORDED_CASES++; } string ltcAnswerValue = EHSIncidentMgr.SelectIncidentAnswer(incident, (decimal)EHSQuestionId.LostTimeCase); if (!string.IsNullOrEmpty(ltcAnswerValue) && ltcAnswerValue == "Yes") { pa.TIME_LOST_CASES++; } string someReturnDate = ""; // expected or actual return date string erdAnswerValue = EHSIncidentMgr.SelectIncidentAnswer(incident, (decimal)EHSQuestionId.ExpectedReturnDate); if (!string.IsNullOrEmpty(erdAnswerValue)) { someReturnDate = erdAnswerValue; } string ardAnswerValue = EHSIncidentMgr.SelectIncidentAnswer(incident, (decimal)EHSQuestionId.ActualReturnDate); if (!string.IsNullOrEmpty(ardAnswerValue)) { someReturnDate = ardAnswerValue; } if (!string.IsNullOrEmpty(someReturnDate)) { UpdateIncidentLostTimeDays(incident, someReturnDate); } } EHSModel.UpdatePlantAccounting(entities, pa); incDate = incDate.AddMonths(1); } } }
protected void rgPreventativeList_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { HiddenField hf; Label lbl; string val = ""; EHSIncidentData data = (EHSIncidentData)e.Item.DataItem; lbl = (Label)e.Item.FindControl("lblIncidentId"); lbl.Text = WebSiteCommon.FormatID(data.Incident.INCIDENT_ID, 6); lbl = (Label)e.Item.FindControl("lblDescription"); lbl.Text = StringHtmlExtensions.TruncateHtml(data.Incident.DESCRIPTION, 100, "..."); lbl.Text = lbl.Text.Replace("<a href", "<a target=\"blank\" href"); if (data.Person != null) { lbl = (Label)e.Item.FindControl("lblReportedBy"); lbl.Text = SQMModelMgr.FormatPersonListItem(data.Person); } lbl = (Label)e.Item.FindControl("lblCategory"); lbl.Text = EHSIncidentMgr.SelectIncidentAnswer(data.Incident, (decimal)EHSQuestionId.InspectionCategory) + "<br/>" + EHSIncidentMgr.SelectIncidentAnswer(data.Incident, (decimal)EHSQuestionId.RecommendationType); lbl = (Label)e.Item.FindControl("lblIncStatus"); try { if (data.Status == "U") { lbl.Text = "Audited " + SQMBasePage.FormatDate((DateTime)data.Incident.CLOSE_DATE_DATA_COMPLETE, "d", false) + "<br/>(" + data.DaysToClose.ToString() + ")"; } else if (data.Status == "F") { lbl.Text = "Awaiting Funding " + SQMBasePage.FormatDate((DateTime)data.Incident.CLOSE_DATE_DATA_COMPLETE, "d", false) + "<br/>(" + data.DaysToClose.ToString() + ")"; } else if (data.Status == "C") { lbl.Text = "Closed " + SQMBasePage.FormatDate((DateTime)data.Incident.CLOSE_DATE, "d", false) + "<br/><strong>Not Audited</strong>"; } else { lbl.Text = WebSiteCommon.GetXlatValue("incidentStatus", data.Status) + "<br/>(" + data.DaysOpen + ")"; } } catch { ; } LinkButton lbEditReport = (LinkButton)e.Item.FindControl("lbEditReport"); lbEditReport.Visible = true; try { lbl = (Label)e.Item.FindControl("lblIncidentDT"); lbl.Text = SQMBasePage.FormatDate(data.Incident.INCIDENT_DT, "d", false); if ((val = data.EntryList.Where(l => l.INCIDENT_QUESTION_ID == 80).Select(l => l.ANSWER_VALUE).FirstOrDefault()) != null && !string.IsNullOrEmpty(val)) { val = val.Substring(0, val.IndexOf(' ')); DateTime parseDate; if (DateTime.TryParse(val, CultureInfo.GetCultureInfo("en-US"), DateTimeStyles.AssumeLocal, out parseDate)) { lbl.Text = parseDate.ToShortDateString(); } } } catch {} try { if ((val = data.EntryList.Where(l => l.INCIDENT_QUESTION_ID == 92).Select(l => l.ANSWER_VALUE).FirstOrDefault()) != null && !string.IsNullOrEmpty(val)) { val = val.Substring(0, val.IndexOf(' ')); DateTime parseDate; if (DateTime.TryParse(val, CultureInfo.GetCultureInfo("en-US"), DateTimeStyles.AssumeLocal, out parseDate)) { lbl = (Label)e.Item.FindControl("lblDueDT"); lbl.Text = parseDate.ToShortDateString(); } } } catch {; } if (data.RespPerson != null) { lbl = (Label)e.Item.FindControl("lblAssignedTo"); lbl.Text = SQMModelMgr.FormatPersonListItem(data.RespPerson); } if (rgPreventativeList.MasterTableView.GetColumn("Attach").Visible&& data.AttachList != null) { lbl = (Label)e.Item.FindControl("lblAttach"); Ucl_Attach attch = (Ucl_Attach)Page.LoadControl("/Include/Ucl_Attach.ascx"); lbl.Parent.Controls.AddAt(lbl.Parent.Controls.IndexOf(lbl), attch); attch.BindListAttachment(data.AttachList, "1", 1); } } }