示例#1
0
        public void rptApprovals_OnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                try
                {
                    EHSIncidentApproval     approvalRec    = null;
                    EHSIncidentApprovalList approvalRecNew = null;
                    if (IncidentId > MaxIncidentForNewFeature && ApprovalStep.STEP < 6)
                    {
                        approvalRecNew = (EHSIncidentApprovalList)e.Item.DataItem;
                    }
                    else
                    {
                        approvalRec = (EHSIncidentApproval)e.Item.DataItem;
                    }
                    bool canApprove = false;


                    Label         lba    = (Label)e.Item.FindControl("lbApprover");
                    Label         lbm    = (Label)e.Item.FindControl("lbApproveMessage");
                    Label         lb     = (Label)e.Item.FindControl("lbItemSeq");
                    Label         lbjobd = (Label)e.Item.FindControl("lbApproverJob");
                    HiddenField   hfrole = (HiddenField)e.Item.FindControl("hfRoleDesc");
                    HiddenField   hfINCFORM_APPROVER_LIST_ID = (HiddenField)e.Item.FindControl("hfINCFORM_APPROVER_LIST_ID");
                    HiddenField   hfAPPROVERType             = (HiddenField)e.Item.FindControl("hfAPPROVERType");
                    CheckBox      cba = (CheckBox)e.Item.FindControl("cbIsAccepted");
                    RadDatePicker rda = (RadDatePicker)e.Item.FindControl("rdpAcceptDate");



                    HiddenField hf = (HiddenField)e.Item.FindControl("hfApprovalID");
                    if (IncidentId > MaxIncidentForNewFeature && ApprovalStep.STEP < 6)
                    {
                        lbjobd.Text = hfrole.Value = approvalRecNew.approverList.DESCRIPTION;
                        lbm.Text    = approvalRecNew.approverList.DESCRIPTION_QUESTION;
                        hfINCFORM_APPROVER_LIST_ID.Value = approvalRecNew.approverList.INCFORM_APPROVER_LIST_ID.ToString();
                        hfAPPROVERType.Value             = approvalRecNew.approverList.TYPE.ToString();
                    }
                    else
                    {
                        lbm.Text    = XLATList.Where(l => l.XLAT_CODE == approvalRec.stepPriv.PRIV.ToString()).FirstOrDefault().DESCRIPTION;
                        lbjobd.Text = hfrole.Value = XLATList.Where(l => l.XLAT_CODE == approvalRec.stepPriv.PRIV.ToString()).FirstOrDefault().DESCRIPTION_SHORT;
                    }


                    if (IncidentId > MaxIncidentForNewFeature && ApprovalStep.STEP < 6)
                    {
                        hf.Value = approvalRecNew.approval.INCIDENT_APPROVAL_ID == null ? "0" : approvalRecNew.approval.INCIDENT_APPROVAL_ID.ToString();
                        hf       = (HiddenField)e.Item.FindControl("hfItemSeq");
                        hf.Value = approvalRecNew.approval.ITEM_SEQ.ToString();
                        hf       = (HiddenField)e.Item.FindControl("hfPersonID");
                        hf.Value = approvalRecNew.approval.APPROVER_PERSON_ID.ToString();
                        hf       = (HiddenField)e.Item.FindControl("hfReqdComplete");

                        hf.Value         = approvalRecNew.approverList.REQUIRED_COMPLETE.ToString();
                        lb.Visible       = false;
                        lba.Text         = !string.IsNullOrEmpty(approvalRecNew.approval.APPROVER_PERSON) ? approvalRecNew.approval.APPROVER_PERSON : SessionManager.UserContext.Person.FIRST_NAME + " " + SessionManager.UserContext.Person.LAST_NAME;
                        cba.Checked      = approvalRecNew.approval.IsAccepted;
                        rda.SelectedDate = approvalRecNew.approval.APPROVAL_DATE;
                        canApprove       = SessionManager.CheckUserPrivilege((SysPriv)approvalRecNew.approverList.PRIV, SysScope.incident);
                    }
                    else
                    {
                        hf.Value = approvalRec.approval.INCIDENT_APPROVAL_ID == null ? "0" : approvalRec.approval.INCIDENT_APPROVAL_ID.ToString();
                        hf       = (HiddenField)e.Item.FindControl("hfItemSeq");
                        hf.Value = approvalRec.approval.ITEM_SEQ.ToString();
                        hf       = (HiddenField)e.Item.FindControl("hfPersonID");
                        hf.Value = approvalRec.approval.APPROVER_PERSON_ID.ToString();
                        hf       = (HiddenField)e.Item.FindControl("hfReqdComplete");

                        hf.Value         = approvalRec.stepPriv.REQUIRED_COMPLETE.ToString();
                        lb.Visible       = false;
                        lba.Text         = !string.IsNullOrEmpty(approvalRec.approval.APPROVER_PERSON) ? approvalRec.approval.APPROVER_PERSON : "";
                        cba.Checked      = approvalRec.approval.IsAccepted;
                        rda.SelectedDate = approvalRec.approval.APPROVAL_DATE;
                        canApprove       = SessionManager.CheckUserPrivilege((SysPriv)approvalRec.stepPriv.PRIV, SysScope.incident);
                    }
                    if (cba.Checked)
                    {
                        cba.Enabled = false;        // don't allow removing approval once it was given
                    }
                    else
                    {
                        if (canApprove && PageMode == PageUseMode.Active)
                        {
                            canApproveAny = true;

                            cba.Enabled = true;
                            PSsqmEntities entities = new PSsqmEntities();
                            if (IncidentId > MaxIncidentForNewFeature && ApprovalStep.STEP < 6)
                            {
                                PERSON person = (from p in entities.PERSON
                                                 where p.PERSON_ID == approvalRecNew.approverList.PERSON_ID
                                                 select p).FirstOrDefault();
                                lba.Text = (person.FIRST_NAME + " " + person.LAST_NAME);
                                if ((SysPriv)approvalRecNew.approverList.PRIV == SysPriv.approve || (SysPriv)approvalRecNew.approverList.PRIV == SysPriv.release || approvalRecNew.approverList.SIGN_MULTIPLE == 1)  // can approve at top approval level
                                {
                                    foreach (RepeaterItem item in rptApprovals.Items)
                                    {
                                        PlaceHolder ph = (PlaceHolder)item.FindControl("phOnBehalfOf");
                                        ph.Visible = true;
                                        lba        = (Label)item.FindControl("lbApprover");
                                        lba.Text   = SessionManager.UserContext.UserName();
                                        cba        = (CheckBox)item.FindControl("cbIsAccepted");
                                        if (cba.Checked)
                                        {
                                            cba.Enabled = false;
                                        }
                                        else
                                        {
                                            cba.Enabled = true;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                canApproveAny = true;
                                lba.Text      = SessionManager.UserContext.UserName();
                                cba.Enabled   = true;
                                if ((SysPriv)approvalRec.stepPriv.PRIV == SysPriv.approve || (SysPriv)approvalRec.stepPriv.PRIV == SysPriv.release || approvalRec.stepPriv.SIGN_MULTIPLE == 1)  // can approve at top approval level
                                {
                                    foreach (RepeaterItem item in rptApprovals.Items)
                                    {
                                        PlaceHolder ph = (PlaceHolder)item.FindControl("phOnBehalfOf");
                                        ph.Visible = true;
                                        lba        = (Label)item.FindControl("lbApprover");
                                        lba.Text   = SessionManager.UserContext.UserName();
                                        cba        = (CheckBox)item.FindControl("cbIsAccepted");
                                        if (cba.Checked)
                                        {
                                            cba.Enabled = false;
                                        }
                                        else
                                        {
                                            cba.Enabled = true;
                                        }
                                    }
                                }
                            }

                            INCFORM_APPROVER_LIST applist = (from p in entities.INCFORM_APPROVER_LIST
                                                             where p.INCFORM_APPROVER_LIST_ID == approvalRecNew.approverList.INCFORM_APPROVER_LIST_ID
                                                             select p).FirstOrDefault();
                            if (applist != null)
                            {
                                if (applist.PERSON_ID == SessionManager.UserContext.Person.PERSON_ID)
                                {
                                    cba.Enabled = true;
                                }
                                else if (SessionManager.UserContext.Person.PRIV_GROUP == "admin")
                                {
                                    cba.Enabled = true;
                                }
                                else
                                {
                                    cba.Enabled = false;
                                }
                            }
                            else
                            {
                                if ((SysPriv)approvalRec.stepPriv.PRIV == SysPriv.approve || (SysPriv)approvalRec.stepPriv.PRIV == SysPriv.release || approvalRec.stepPriv.SIGN_MULTIPLE == 1)  // can approve at top approval level
                                {
                                    foreach (RepeaterItem item in rptApprovals.Items)
                                    {
                                        PlaceHolder ph = (PlaceHolder)item.FindControl("phOnBehalfOf");
                                        ph.Visible = true;
                                        lba        = (Label)item.FindControl("lbApprover");
                                        lba.Text   = SessionManager.UserContext.UserName();
                                        cba        = (CheckBox)item.FindControl("cbIsAccepted");
                                        if (cba.Checked)
                                        {
                                            cba.Enabled = false;
                                        }
                                        else
                                        {
                                            cba.Enabled = true;
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            cba.Enabled = false;
                        }
                    }
                }
                catch { }
            }

            btnSave.Visible = pnlApproval.Enabled = false;

            if (PageMode == PageUseMode.Active && canApproveAny)
            {
                btnSave.Visible = pnlApproval.Enabled = EHSIncidentMgr.IsDependentStatus(LocalIncident, EHSIncidentMgr.GetIncidentSteps(incidentStepList, (decimal)LocalIncident.ISSUE_TYPE_ID).Where(l => l.STEP == ApprovalStep.STEP).Select(l => l.DEPENDENT_STATUS).FirstOrDefault());
                if (!btnSave.Visible)
                {
                    lblStatusMsg.Text = Resources.LocalizedText.IncidentReportIncomplete;
                    divStatus.Visible = true;
                }
            }
        }