示例#1
0
        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);
                }
            }
        }