Ejemplo n.º 1
0
        public void BindData(OrganizationChart chart)
        {
            try
            {
                if (chart == null)
                {
                    this.Visible = false;
                }
                else
                {
                    bool notAcknowledged       = !chart.IsRootAcknowledged;
                    bool missingRootNode       = (chart.StartPointWFPPositionID == -1);
                    bool hasAbolishedPositions = (chart.AbolishedPositionCount > 0);
                    bool hasBrokenHierarchy    = (chart.BrokenHierarchyCount > 0);
                    bool hasNewFPPSPositions   = (chart.NewFPPSPositionCount > 0);

                    bool toBeDisplayed = notAcknowledged || missingRootNode || hasAbolishedPositions || hasBrokenHierarchy || hasNewFPPSPositions;

                    // show custom validation notes
                    this.customNoteRootNotAcknowledged.Visible = notAcknowledged;
                    this.customNoteMissingRootNode.Visible     = missingRootNode;
                    this.customNoteAbolishedPositions.Visible  = hasAbolishedPositions;
                    this.customNoteBrokenHierarchy.Visible     = hasBrokenHierarchy;
                    this.customNoteNewFPPSPositions.Visible    = hasNewFPPSPositions;

                    this.Visible = toBeDisplayed;
                }
            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }
Ejemplo n.º 2
0
        private void loadData()
        {
            SiteUtility.RefreshOrgChartDataOnly();
            OrganizationChart chart = SiteUtility.CurrentOrgChart;

            int  tempPositionID = -1;
            bool isOK           = int.TryParse(Request.QueryString[EDITPOSIDKEY], out tempPositionID);

            if (isOK)
            {
                WorkforcePlanningPosition position = WorkforcePlanningPositionManager.Instance.GetByID(tempPositionID);

                if (position.WFPPositionID == -1)
                {
                    base.PrintErrorMessage(GetLocalResourceObject("PositionDoesNotExistMessage").ToString());
                }
                else
                {
                    customNewFPPSPosition.BindData(position);
                }
            }
            else
            {
                base.PrintErrorMessage(GetLocalResourceObject("PositionIDQuerystringNotValidMessage").ToString());
            }
        }
        private void loadData()
        {
            base.RefreshOrgChartDataOnly();
            OrganizationChart chart = base.CurrentOrgChart;
            int  tempPositionID     = -1;
            bool isOK = int.TryParse(Request.QueryString[EDITPOSIDKEY], out tempPositionID);

            if (isOK)
            {
                OrganizationChartPosition position = OrganizationChartPositionManager.Instance.GetByID(chart.OrganizationChartID, tempPositionID);

                if (position.WFPPositionID == -1)
                {
                    base.PrintErrorMessage(GetLocalResourceObject("PositionDoesNotExistMessage").ToString());
                }
                else
                {
                    // now check to see if this is a WFP or an FPPS
                    if (position.ChartPositionType == enumChartPositionType.WFP)
                    {
                        this.customWFPPosition.BindData(position);
                    }
                    else
                    {
                        this.customFPPSPosition.BindData(position);
                    }
                }
            }
            else
            {
                base.PrintErrorMessage(GetLocalResourceObject("PositionIDQuerystringNotValidMessage").ToString());
            }
        }
        private void buttonSaveNewRoot_Click(object sender, EventArgs e)
        {
            try
            {
                if (Page.IsValid)
                {
                    OrganizationChart chart = new OrganizationChart()
                    {
                        OrganizationChartID     = base.CurrentOrgChartID,
                        UpdatedBy               = new ActionUser(base.CurrentUserID),
                        StartPointWFPPositionID = int.Parse(this.dropDownPositions.SelectedValue)
                    };

                    // save new top level position
                    OrganizationChartManager.Instance.UpdateRootNode(chart);

                    // reset replace root section
                    this.checkboxReplaceRoot.Checked = false;
                    this.toggleReplaceRoot(false);

                    // reload page data
                    loadData();
                }
            }
            catch (InvalidRootNodePositionReplacementException)
            {
                base.PrintErrorMessage(GetLocalResourceObject("InvalidRootNodePositionReplacementExceptionMessage").ToString(), true);
            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }
Ejemplo n.º 5
0
        private void loadData()
        {
            base.RefreshOrgChartDataOnly();
            OrganizationChart chart = base.CurrentOrgChart;

            // validation check for base.CurrentOrgChart is in OrgChartRequiredUserControlBase
            // load data
            base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue));

            int  tempPositionID = -1;
            bool isTempIDOK     = true;

            // check drill down value -- not certain if there is a global
            if (Request.QueryString[POSITIONIDKEY] != null)
            {
                isTempIDOK = int.TryParse(Request.QueryString[POSITIONIDKEY], out tempPositionID);
            }

            if (isTempIDOK)
            {
                setView(chart, tempPositionID);

                customOrgChartDetails.BindData(chart);
                bindPositionsGrid();
            }
            else
            {
                base.PrintErrorMessage(GetLocalResourceObject("InvalidPositionIDParameterMessage").ToString());
            }
        }
Ejemplo n.º 6
0
  protected void Page_Load(object sender, EventArgs e)
 {
      if(!IsPostBack)
      {
         
          var id = Request["Id"];
          //var id = "d04a82be-5e52-43d2-a126-408de4fa1024";
          errorDesc.Text = "";
          if (String.IsNullOrEmpty(id))
          {
              ViewState["OpStatus"] = "Add";
              var organization = new OrganizationChart();
              DataBindHelper<OrganizationChart>.Bind(form1, organization);
              Session.Remove("OrgCondtion");
             
          }
          else
          {
              ViewState["OpStatus"] = "Update";
              var guidRoleId = new Guid(id);
              ViewState["Id"] = guidRoleId;
              BindControl(guidRoleId);
              rbtnOrganizationType.Enabled = false;
          }
          BindAppModule();
      }
 }
Ejemplo n.º 7
0
 private void setView(OrganizationChart chart)
 {
     if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Undefined || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Published)
     {
         this.gridPositions.Columns[0].Visible = false;  // Exclude Column
         this.gridPositions.Columns[1].Visible = false;  // Include Column
     }
 }
Ejemplo n.º 8
0
        private void loadData()
        {
            SiteUtility.RefreshOrgChartDataOnly();
            OrganizationChart chart = SiteUtility.CurrentOrgChart;

            base.PageTitle = string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue);
            this.customViewChart.BindChart(chart, OrganizationChartTypeViews.Published);
        }
Ejemplo n.º 9
0
        private OrganizationChartPosition buildNewPosition()
        {
            OrganizationChart chart = base.CurrentOrgChart;
            int calculatedOrgCodeID = -1;
            int dutyCountryID       = ControlUtility.GetDropdownValue(this.dropDownDutyStationCountries);

            if (chart.OrganizationChartTypeID == enumOrgChartType.SingleOrg)
            {
                calculatedOrgCodeID = chart.OrgCode.OrganizationCodeID;
            }
            else
            {
                calculatedOrgCodeID = int.Parse(this.dropDownMultipleOrgCodes.SelectedValue);
            }

            // now add position and include in the current chart
            OrganizationChartPosition newPosition = new OrganizationChartPosition()
            {
                OrganizationChartID = chart.OrganizationChartID,
                OrganizationCodeID  = calculatedOrgCodeID,
                CreatedByID         = base.CurrentUserID,
                PositionTitle       = this.textboxPositionTitle.Text,
                PayPlanID           = ControlUtility.GetDropdownValue(this.dropDownPayPlan),
                SeriesID            = ControlUtility.GetDropdownValue(this.dropDownSeries),
                RegionID            = chart.OrgCode.RegionID,
                FPLGrade            = ControlUtility.GetDropdownValue(this.dropDownFPLGrades),
                Grade = ControlUtility.GetDropdownValue(this.dropDownCurrentGrades),
                DutyStationCountryID   = dutyCountryID,
                DutyStationStateID     = (dutyCountryID == -1) ? (int?)null : dutyCountryID,
                DutyStationDescription = this.textboxDutyStationCity.Text,
                eOrgPositionType       = (enumOrgPositionType)ControlUtility.GetDropdownValue(this.dropDownOrganizationPositionTypes),
                SupervisoryStatus      = ControlUtility.GetDropdownValue(this.dropDownPositionTypesSupervisoryStatuses),
                ReportsToID            = ControlUtility.GetDropdownValue(this.dropDownParentPositions),
                PositionGroupType      = (enumOrgPositionGroupType)ControlUtility.GetDropdownValue(this.dropDownPositionLocationGroupTypes),
                PositionPlacementType  = (enumOrgPositionPlacementType)ControlUtility.GetDropdownValue(this.dropDownPositionPlacements)
            };

            if (this.checkboxIsEncumbered.Checked)
            {
                newPosition.FirstName    = this.textboxFirstName.Text;
                newPosition.LastName     = this.textboxLastName.Text;
                newPosition.MiddleName   = this.textboxMiddleName.Text;
                newPosition.EmployeeName = string.Format("{0} {1} {2}",
                                                         this.textboxFirstName.Text.Trim(),
                                                         string.IsNullOrWhiteSpace(this.textboxMiddleName.Text) ? string.Empty : this.textboxMiddleName.Text.Trim(),
                                                         this.textboxLastName.Text.Trim());
                newPosition.PositionStatusHistory = (int)enumOrgPositionStatusHistoryType.ActiveEmployee;
            }
            else
            {
                newPosition.PositionStatusHistory = (int)enumOrgPositionStatusHistoryType.ActiveVacant;
            }

            return(newPosition);
        }
Ejemplo n.º 10
0
        private void loadData()
        {
            base.RefreshOrgChartDataOnly();
            OrganizationChart chart = base.CurrentOrgChart;

            // validation check for base.CurrentOrgChart is in OrgChartRequiredUserControlBase
            base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue));
            customOrgChartDetails.BindData(chart);
            setView(chart);
            bindNewFPPSPositionsGrid();
        }
        private void setView(OrganizationChart chart)
        {
            // set visibility of buttons
            bool isRootAcknowledged = chart.IsRootAcknowledged;

            // show for Draft or Review
            this.buttonDeleteOrgChart.Visible = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review);
            this.rowReplaceRoot.Visible       = (base.CurrentOrgChartNavMode == enumNavigationMode.Edit) &&
                                                (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review);

            // Only show Submit to Review/Approval/Sign and Publish if there are no Abolished Positions
            // We always show Submit to Draft (unless the chart is already in Draft)
            this.spanSubmitActionButtons.Visible = (isRootAcknowledged && chart.AbolishedPositionCount == 0 && chart.BrokenHierarchyCount == 0 && chart.StartPointWFPPositionID != -1);

            //-----------------------------------------------------
            // workflow buttons
            // show for Review and Approve
            this.buttonSubmitToDraft.Visible = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval);

            // show for Draft
            this.buttonSubmitToReview.Visible = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft);

            // show for Draft or Review
            this.buttonSubmitToApprove.Visible = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review);

            // show for Approve
            bool showApproval = (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval);

            this.buttonSignAndPublish.Visible = showApproval;
            this.rowPublish.Visible           = showApproval;

            // now set button labels
            string submitToString = GetLocalResourceObject("SubmitButtonPrefix").ToString();
            string revertToString = GetLocalResourceObject("RevertButtonPrefix").ToString();
            string draftSuffix    = GetLocalResourceObject("DraftSuffix").ToString();
            string reviewSuffix   = GetLocalResourceObject("ReviewSuffix").ToString();
            string approvalSuffix = GetLocalResourceObject("ApprovalSuffix").ToString();

            if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft)
            {
                this.buttonSubmitToReview.Text  = string.Format(submitToString, reviewSuffix);
                this.buttonSubmitToApprove.Text = string.Format(submitToString, approvalSuffix);
            }
            else if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review)
            {
                this.buttonSubmitToDraft.Text   = string.Format(revertToString, draftSuffix);
                this.buttonSubmitToApprove.Text = string.Format(submitToString, approvalSuffix);
            }
            else if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval)
            {
                this.buttonSubmitToDraft.Text = string.Format(revertToString, draftSuffix);
            }
        }
        private void buildLinks(OrganizationChart chart)
        {
            string lineItemURL = string.Empty;

            //if (!string.IsNullOrWhiteSpace(this._redirectSuffix))
            //    lineItemURL = string.Format("?rdr={0}", this._redirectSuffix);

            this.linkViewOrganizationChart.NavigateUrl = string.Format("~/OrgChart/ViewChart.aspx{0}", lineItemURL);
            this.linkViewPublishedChart.NavigateUrl    = string.Format("~/OrgChart/ViewPubChart.aspx{0}", lineItemURL);
            this.linkAbolishedPositions.NavigateUrl    = string.Format("~/OrgChart/AbolishedPositions.aspx{0}", lineItemURL);
            this.linkNewFPPSPositions.NavigateUrl      = string.Format("~/OrgChart/NewFPPSPositions.aspx{0}", lineItemURL);
        }
Ejemplo n.º 13
0
        private bool TryLoadChart(string path, out OrganizationChart chart)
        {
            if (!File.Exists(path))
            {
                MessageBox.Show($"File does not exist: {path}");
                chart = null;
                return(false);
            }

            using FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            chart = new OrganizationChart(stream);
            return(true);
        }
Ejemplo n.º 14
0
        private void dropDownOrganizationCodes_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
        {
            try
            {
                enumOrgChartType selectedChartType = (enumOrgChartType)int.Parse(this.dropDownChartTypes.SelectedValue);
                int orgCodeID = ControlUtility.GetDropdownValue(this.dropDownOrganizationCodes, "-1");

                // reset panel view
                resetOrgChartPanels();

                if (orgCodeID != -1)
                {
                    // Three POSSIBLE STATES:
                    // A. Existing In-Progress Chart
                    // B. No In-Process Chart but has a Published Chart
                    // C. No In-Process Chart/No Published Chart

                    // State 1: Existing In-Progress Chart
                    OrganizationChart chart = OrganizationChartManager.Instance.GetByOrgCodeAndChartType(orgCodeID, selectedChartType);

                    if (chart.OrganizationChartID != -1)
                    {
                        // Chart is In-Process
                        setChartView(this.panelInProcessChart, CreationType.None, false);
                    }
                    else
                    {
                        // No In-Process Chart -- now check published charts
                        OrganizationChartLog chartLog = OrganizationChartLogManager.Instance.GetByOrgCodeAndChartType(orgCodeID, selectedChartType);

                        if (chartLog.OrganizationChartLogID == -1)
                        {
                            // State 3: No In-Process Chart/No Published Chart
                            setChartView(this.panelNoInProcessNoPublished, CreationType.New, true);

                            // bind root positions by org code
                            bindRootPositionsByOrgCode(orgCodeID);
                        }
                        else
                        {
                            // State 2: No In-Process Chart but has a Published Chart
                            setChartView(this.panelPublishedChart, CreationType.NewFromTemplate, true);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }
Ejemplo n.º 15
0
        public void Import(DataSet dataSet)
        {
            var parentDic = new Dictionary <string, OrganizationChart>();

            var allRecords = _db.OrganizationChart.Where(p => p.IsDeleted || !p.IsDeleted).ToList();

            allRecords.ForEach(p => p.IsDeleted = true);
            _db.SaveChanges();

            foreach (DataRow row in dataSet.Tables[0].Rows)
            {
                var childCode  = row["SETCODE"].ToString();
                var parentCode = row["PARENTSETCODE"].ToString();
                var title      = row["SETDSCP"].ToString();

                var orgId = int.Parse(childCode);
                var org   = _db.OrganizationChart.FirstOrDefault(p => p.OrganizationID == orgId);
                if (org == null)
                {
                    var organizationChart = new OrganizationChart
                    {
                        OrganizationID      = long.Parse(childCode),
                        ParentOrganizatinID = long.Parse(parentCode),
                        Title              = title,
                        IsActive           = true,
                        IsDeleted          = false,
                        OrganizationTypeID = 1,
                        Weight             = 0,
                        InsertDate         = DateTime.Now,
                        InsertUser         = "******"
                    };
                    _db.OrganizationChart.AddObject(organizationChart);
                    _insertCount++;
                }
                else
                {
                    org.ParentOrganizatinID = long.Parse(parentCode);
                    org.Title     = title;
                    org.IsDeleted = false;
                    _updateCount++;
                    _db.OrganizationChart.ApplyCurrentValues(org);
                }
            }
            _db.SaveChanges();

            var deletedObjects = _db.OrganizationChart.Where(p => p.IsDeleted);

            _deleteCount = deletedObjects.Count();
        }
Ejemplo n.º 16
0
        public void BindChart(OrganizationChart chart, OrganizationChartTypeViews viewType)
        {
            try
            {
                this.customOrgChartDetails.BindData(chart);

                // set chart generation parameters
                ChartGenerationParameters chartParameters = new ChartGenerationParameters()
                {
                    ChartType = viewType
                };

                if (viewType == OrganizationChartTypeViews.InProcess)
                {
                    // get in process chart
                    int chartID = base.CurrentOrgChartID;
                    chartParameters.ID = chartID;

                    this.customDisplayChart.PreviewTitle = this.PreviewTitleInProcess;
                    OrganizationChartPositionCollection positionList = OrganizationChartPositionManager.Instance.GetOrganizationChartPositions(chartID);

                    // pass position list and starting point of the in-process chart
                    this.customDisplayChart.BindChart(chartParameters, positionList.ToList <IChartPosition>(), chart.StartPointWFPPositionID);
                }
                else if (viewType == OrganizationChartTypeViews.Published)
                {
                    int chartLogID = base.CurrentOrgChart.PublishedOrganizationChartLogID;
                    chartParameters.ID = chartLogID;
                    ChartGenerationParametersSessionWrapper.Parameters = chartParameters;

                    this.customDisplayChart.PreviewTitle = this.PreviewTitlePublished;

                    // Load up chart log based on most recent published version
                    OrganizationChartLog chartLog = OrganizationChartLogManager.Instance.GetByID(chartLogID);
                    IList <OrganizationChartPositionLog> positionList = OrganizationChartPositionLogManager.Instance.GetOrganizationChartPositionLogs(chartLogID);

                    // pass position list and starting point OF THE PUBLISHED CHART (not the in-process chart)
                    this.customDisplayChart.BindChart(chartParameters, positionList.ToList <IChartPosition>(), chartLog.StartPointWFPPositionID);
                }
            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }
Ejemplo n.º 17
0
        private string DumpFile(OrganizationChart chart)
        {
            string HexDump(byte[] data)
            {
                if (data.Length == 0)
                {
                    return("[]");
                }

                var sb = new StringBuilder();

                sb.AppendLine("[");
                sb.Append("    ");
                for (int i = 0; i < data.Length; i++)
                {
                    if (i != 0 && (i % 4) == 0)
                    {
                        sb.AppendLine();
                        sb.Append("    ");
                    }

                    sb.Append($"0x{data[i].ToString("X2")}");

                    if (i != data.Length - 1)
                    {
                        sb.Append(", ");
                    }
                }
                sb.AppendLine();
                sb.Append("]");
                return(sb.ToString());
            }

            var builder = new StringBuilder();

            foreach ((ushort id, byte[] data) in chart.Records)
            {
                builder.AppendLine($"Id: {GetName(id)}");
                builder.AppendLine($"Data: {HexDump(data)}");
                builder.AppendLine();
            }

            return(builder.ToString());
        }
        public void BindData(OrganizationChart chart)
        {
            try
            {
                bool containsData = (chart != null);
                this.Visible = containsData;

                if (containsData)
                {
                    setView();
                    buildLinks(chart);

                    this.customOrgChartValidations.BindData(chart);

                    this.literalAbolishedCount.Text = chart.AbolishedPositionCount == 0 ? "0" : string.Format(GetLocalResourceObject("AbolishedCountLineItem").ToString(), chart.AbolishedPositionCount);
                    this.literalNewFPPSCount.Text   = chart.NewFPPSPositionCount.ToString();

                    this.literalOrganizationChartID.Text      = chart.OrganizationChartID.ToString();
                    this.literalChartType.Text                = chart.OrganizationChartTypeName;
                    this.literalOrganizationNameLineItem.Text = chart.OrgCode.NewOrgCodeLine; // chart.OrganizationName;

                    if (chart.StartPointWFPPositionID == -1)
                    {
                        this.literalTopLevelPosition.Text = GetLocalResourceObject("NoRootPositionSpecified").ToString();
                    }
                    else
                    {
                        this.literalTopLevelPosition.Text = chart.StartPointPositionLineItemFullName;
                    }

                    // only show if there is a published version in the database
                    bool hasPubVersion = (chart.PublishedOrganizationChartLogID != -1);

                    this.linkViewPublishedChart.Visible          = hasPubVersion;
                    this.literalNoPublishedChartOnRecord.Visible = !hasPubVersion;
                }
            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }
Ejemplo n.º 19
0
        private void loadData()
        {
            base.RefreshOrgChartDataOnly();
            OrganizationChart chart = base.CurrentOrgChart;

            // validation check for base.CurrentOrgChart is in OrgChartRequiredUserControlBase
            base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue));
            customOrgChartDetails.BindData(chart);

            // show org code section based on chart type
            bool isSingleChartType = (chart.OrganizationChartTypeID == enumOrgChartType.SingleOrg);

            this.rowSingleOrgCode.Visible    = isSingleChartType;
            this.rowMultipleOrgCodes.Visible = !isSingleChartType;

            if (isSingleChartType)
            {
                this.literalSingleOrgCode.Text = chart.OrgCode.DetailLine;
            }
            else
            {
                bindMultipleChildOrgCodes(chart.OrgCode.OrganizationCodeID);
            }

            bindPayPlans();
            bindFPLAndCurrentGrade();
            bindDutyStationCountries();
            bindDutyStationStates();
            bindPositionTypesSupervisoryStatues();
            bindOrgPositionTypes();
            bindParentPositions();
            bindPositionBoxPlacement();
            bindPositionBoxLocationGroupTypes();

            // load default values
            int defaultCountryID = (int)enumCountries.UnitedStates;

            this.dropDownDutyStationCountries.SelectedValue = defaultCountryID.ToString();
            toggleDutyStates(defaultCountryID);

            this.dropDownOrganizationPositionTypes.SelectedValue = ((int)enumOrgPositionType.FWS_Employee).ToString();
        }
        private void loadData()
        {
            base.RefreshOrgChartDataOnly();
            int  tempPositionID = -1;
            bool isOK           = int.TryParse(Request.QueryString[EDITPOSIDKEY], out tempPositionID);

            if (isOK)
            {
                WorkforcePlanningPosition position = WorkforcePlanningPositionManager.Instance.GetAbolishedPositionByID(tempPositionID);

                if (position.WFPPositionID == -1)
                {
                    base.PrintErrorMessage(GetLocalResourceObject("PositionDoesNotExistMessage").ToString());
                }
                else
                {
                    OrganizationChart chart = base.CurrentOrgChart;

                    this.EditPositionID = position.WFPPositionID;
                    this.customOrgChartDetails.BindData(chart);
                    this.customFPPSPositionInformation.BindData(position, chart.StartPointWFPPositionID);

                    bool isRoot = (chart.StartPointWFPPositionID == position.WFPPositionID);
                    this.AccessOK = (base.CurrentOrgChartNavMode == enumNavigationMode.Insert || base.CurrentOrgChartNavMode == enumNavigationMode.Edit);
                    bool actionsOK      = this.AccessOK && (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review);
                    bool okToSetParents = !isRoot && actionsOK && (position.DirectChildCount > 0);

                    this.panelMapParents.Visible      = okToSetParents;
                    this.buttonCancelReadOnly.Visible = !okToSetParents;
                    this.literalDirectChildCount.Text = position.DirectChildCount.ToString();

                    if (okToSetParents)
                    {
                        bindParentPositions(position.WFPPositionID);
                    }
                }
            }
            else
            {
                base.PrintErrorMessage(GetLocalResourceObject("PositionIDQuerystringNotValidMessage").ToString());
            }
        }
Ejemplo n.º 21
0
        private void DumpChartToTreeView(OrganizationChart chart)
        {
            _dumpDirty = false;
            dumpTreeView.Nodes.Clear();

            TreeNode node = dumpTreeView.Nodes.Add("Root");

            foreach ((ushort id, byte[] data) in chart.Records)
            {
                if (id >= 0x4000)
                {
                    if (node.Tag is ValueTuple <ushort, byte[]> tag && tag.Item1 == id - 0x2000)
                    {
                        node = node.Parent;
                    }
                    else
                    {
                        node     = node.Nodes.Add(GetName(id));
                        node.Tag = (id, data);
                    }
                }
Ejemplo n.º 22
0
        private void loadData()
        {
            base.RefreshOrgChartDataOnly();
            OrganizationChart chart = base.CurrentOrgChart;

            int  tempPositionID = -1;
            bool isOK           = int.TryParse(Request.QueryString[EDITPOSIDKEY], out tempPositionID);

            if (isOK)
            {
                OrganizationChartPosition position = OrganizationChartPositionManager.Instance.GetByID(chart.OrganizationChartID, tempPositionID);

                if (position.WFPPositionID == -1)
                {
                    base.PrintErrorMessage(GetLocalResourceObject("PositionDoesNotExistMessage").ToString());
                }
                else
                {
                    this.EditPositionID = position.WFPPositionID;
                    base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), position.PositionLineItemFullNameReverse));
                    this.customOrgChartDetails.BindData(chart);
                    this.literalReportsToPositionTitleLineItem.Text = position.PositionLineItemFullNameReverse;
                    this.literalPrimaryOrgCode.Text = chart.OrgCode.NewOrgCodeLine;
                    this.rowChildOrgCodes.Visible   = (chart.OrganizationChartTypeID == enumOrgChartType.MultiOrg);

                    if (chart.OrganizationChartTypeID == enumOrgChartType.MultiOrg)
                    {
                        // bind list of child org codes
                        this.bindMultipleChildOrgCodes(chart.OrgCode.OrganizationCodeID);
                    }

                    // show all positions in primary org code
                    bindAvailablePositions(-1);
                }
            }
            else
            {
                base.PrintErrorMessage(GetLocalResourceObject("PositionIDQuerystringNotValidMessage").ToString());
            }
        }
Ejemplo n.º 23
0
        private void loadData()
        {
            if (Request.QueryString[CHARTIDKEY] == null)
            {
                printMessage(GetLocalResourceObject("NullIDKey").ToString());
            }
            else
            {
                int  tempID  = -1;
                bool paramOK = int.TryParse(Request.QueryString[CHARTIDKEY], out tempID);

                if (!paramOK)
                {
                    printMessage(GetLocalResourceObject("IDKeyNotAValidInteger").ToString());
                }
                else
                {
                    OrganizationChart chart = OrganizationChartManager.Instance.GetByID(tempID);

                    if (chart.OrganizationChartID == -1)
                    {
                        printMessage(GetLocalResourceObject("IDNotFoundMessage").ToString());
                    }
                    else
                    {
                        this.customDisplayChart.Visible = true;
                        this.Page.Title = string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue);
                        IList <OrganizationChartPosition> positionList = OrganizationChartPositionManager.Instance.GetOrganizationChartPositions(chart.OrganizationChartID);

                        ChartGenerationParameters genParams = new ChartGenerationParameters()
                        {
                            ID        = chart.OrganizationChartID,
                            ChartType = OrganizationChartTypeViews.InProcess
                        };

                        this.customDisplayChart.BindChart(genParams, positionList.ToList <IChartPosition>(), chart.StartPointWFPPositionID);
                    }
                }
            }
        }
Ejemplo n.º 24
0
        private void loadData(OrganizationChartPosition position)
        {
            base.RefreshOrgChartDataOnly();
            OrganizationChart chart = base.CurrentOrgChart;

            customOrgChartDetails.BindData(chart);

            bool isActiveEmployee = (position.PositionStatusHistory.HasValue && position.PositionStatusHistory.Value == (int)enumOrgPositionStatusHistoryType.ActiveEmployee);

            if (isActiveEmployee)
            {
                base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), position.PositionLineItemFullName));
            }
            else
            {
                base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(),
                                                string.Format("{0} {1}", position.PositionTitle, GetLocalResourceObject("VacantWordPhrase").ToString())));
            }

            // This is a nested control and as such, the use is a little different from the other user controls -- we need to check read/write permission here
            // This is because we load this control by an explicit Bind -- not in page load
            this.OriginalReportsToID = position.ReportsToID;
            bool isRoot = (position.WFPPositionID == base.CurrentOrgChart.StartPointWFPPositionID);

            this.AccessOK = (base.CurrentOrgChartNavMode == enumNavigationMode.Insert || base.CurrentOrgChartNavMode == enumNavigationMode.Edit);
            bool actionsOK = this.AccessOK &&
                             (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review);

            this.buttonDeletePosition.Visible = actionsOK && (position.DirectChildCount == 0) && !isRoot;
            this.buttonSave.Visible           = actionsOK;

            // show org code section based on chart type
            bool isSingleChartType = (chart.OrganizationChartTypeID == enumOrgChartType.SingleOrg);

            this.rowSingleOrgCode.Visible    = isSingleChartType;
            this.rowMultipleOrgCodes.Visible = !isSingleChartType;

            if (isSingleChartType)
            {
                this.literalSingleOrgCode.Text = chart.OrgCode.DetailLine;
            }
            else
            {
                bindMultipleChildOrgCodes(chart.OrgCode.OrganizationCodeID);
                this.dropDownMultipleOrgCodes.SelectedValue = position.OrganizationCodeID.ToString();
            }

            // load all other data fields
            this.textboxPositionTitle.Text = position.PositionTitle;

            this.panelPositionNameInner.Visible = isActiveEmployee;
            this.checkboxIsEncumbered.Checked   = isActiveEmployee;

            if (isActiveEmployee)
            {
                this.textboxFirstName.Text  = position.FirstName;
                this.textboxMiddleName.Text = position.MiddleName;
                this.textboxLastName.Text   = position.LastName;
            }

            this.dropDownPayPlan.SelectedValue = position.PayPlanID.ToString();
            bindSeries(position.PayPlanID);
            this.dropDownSeries.SelectedValue = position.SeriesID.ToString();

            this.dropDownFPLGrades.SelectedValue     = position.FPLGrade.ToString();
            this.dropDownCurrentGrades.SelectedValue = position.Grade.ToString();

            bool isUS = position.DutyStationCountryID == (int)enumCountries.UnitedStates;

            this.dropDownDutyStationCountries.SelectedValue = position.DutyStationCountryID.ToString();
            this.rowDutyStationState.Visible = isUS;

            if (isUS)
            {
                this.dropDownDutyStationStates.SelectedValue = position.DutyStationStateID.ToString();
            }

            this.textboxDutyStationCity.Text = position.DutyStationDescription;
            this.dropDownPositionTypesSupervisoryStatuses.SelectedValue = position.SupervisoryStatus.ToString();
            this.dropDownOrganizationPositionTypes.SelectedValue        = ((int)position.eOrgPositionType).ToString();

            // in theory -- the root should not be a WFP, but would rather be safe
            bool isTopLevelEditOk = (base.HasHRGroupPermission || base.IsAdmin) || !isRoot;

            this.TopLevelEditOK = isTopLevelEditOk;

            this.rowReportsToPositionRoot.Visible   = !isTopLevelEditOk;
            this.rowReportsToPositionUpdate.Visible = isTopLevelEditOk;
            this.requiredParentPosition.Enabled     = !isRoot;  // parent position is required for all positions except the root node
            this.spanPositionRequired.Visible       = !isRoot;  // hide the required asterisk "*"

            this.rowLocationGroupType.Visible = !isRoot;
            this.rowPlacementType.Visible     = !isRoot;

            if (isTopLevelEditOk)
            {
                if (position.ReportsToID != -1)
                {
                    this.dropDownParentPositions.SelectedValue = position.ReportsToID.ToString();
                }
            }
            else
            {
                literalReportsToPosition.Text = position.ReportsToFullNameReverse;
            }

            if (!isRoot)
            {
                this.dropDownPositionPlacements.SelectedValue         = ((int)position.PositionPlacementType).ToString();
                this.dropDownPositionLocationGroupTypes.SelectedValue = ((int)position.PositionGroupType).ToString();
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 设置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
         protected void btnAdd_Click(object sender, EventArgs e)
         {
             var opStatus = Convert.ToString(ViewState["OpStatus"]);
             OrganizationChart user;
             try
             {
                 var result = Validation();
                 if (!result) return;
                 if (opStatus == "Add")
                 {
                     user = new OrganizationChart();
                 }
                 else
                 {
                     var guidId =  (Guid)ViewState["Id"];
                     user = _organizationManagementService.GetOrganizationByDid(guidId);
                 }
                 DataBindHelper<OrganizationChart>.GetDaTa(form1, user);
                 if (rbtnOrganizationType.SelectedValue == "1")
                 {
                     var parentDid = dropParentDID.SelectedValue;
                     user.ParentDID = new Guid(parentDid);
                 }
                 else
                 {
                     user.ParentDID = null;
                 }
             }
             catch (Exception ce)
             {
                 errorDesc.Text = ce.Message;
                 return;
             }
             try
             {
                 
                 if (opStatus == "Add")
                 {
                     user.DID= Guid.NewGuid();
                     user.CreateTime = DateTime.Now;
                     if (rbtnOrganizationType.SelectedValue=="1")
                     {
                         user.ParentDID = new Guid(dropParentDID.SelectedValue);
                     }
                     else
                     {
                         user.ParentDID = null;
                     }
                     _organizationManagementService.Add(user);
                 }
                 else
                 {
                     _organizationManagementService.Modify(user);
                 }
                 errorDesc.Text =@"操作成功!";
             }
             catch(Exception ex)
             {

                 errorDesc.Text = ex.Message.Contains("组织编号") ? ex.Message : @"操作失败!";
             }
         }
Ejemplo n.º 26
0
        private void buttonSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (Page.IsValid)
                {
                    int newOrgChartID          = -1;
                    OrganizationChart newChart = new OrganizationChart()
                    {
                        OrganizationChartTypeID = (enumOrgChartType)int.Parse(this.dropDownChartTypes.SelectedValue),
                        OrgCode = new OrganizationCode()
                        {
                            OrganizationCodeID = ControlUtility.GetDropdownValue(this.dropDownOrganizationCodes, "-1")
                        },
                        CreatedBy = new ActionUser(base.CurrentUserID)
                    };

                    if (this.SelectedCreationType == CreationType.NewFromTemplate)
                    {
                        // create org chart from template
                        newOrgChartID = OrganizationChartManager.Instance.CreateFromPublished(newChart, true);

                        // set new org chart ID
                        base.ResetCurrentOrgChart(newOrgChartID);

                        // load newly created organization chart
                        base.GoToOrgChartLink("~/OrgChart/OrgChartDetails.aspx", enumNavigationMode.Edit);
                    }
                    else if (this.SelectedCreationType == CreationType.New)
                    {
                        // create NEW org chart
                        RootNodeMode selectedMode = (RootNodeMode)int.Parse(this.radioListRootNode.SelectedValue);

                        // set root node (if mode is "SELECT") -- default action is to "Create New WFP" if no starting point is specified
                        if (selectedMode == RootNodeMode.SelectNode)
                        {
                            newChart.StartPointWFPPositionID = ControlUtility.GetDropdownValue(this.dropDownRootPositions, "-1");
                        }

                        newOrgChartID = OrganizationChartManager.Instance.CreateNew(newChart, true);

                        // set new org chart ID
                        base.ResetCurrentOrgChart(newOrgChartID);

                        if (selectedMode == RootNodeMode.SelectNode)
                        {
                            // load newly created organization chart
                            base.GoToOrgChartLink("~/OrgChart/OrgChartDetails.aspx", enumNavigationMode.Edit);
                        }
                        else
                        {
                            // allow user to immediately edit root node
                            base.GoToOrgChartLink(string.Format("~/OrgChart/UpdateChartPosition.aspx?editPosID={0}", newChart.StartPointWFPPositionID), enumNavigationMode.Edit);
                        }
                    }
                }
            }
            catch (NoPublishedChartAvailableException)
            {
                base.PrintErrorMessage(GetLocalResourceObject("NoPublishedChartExceptionMessage").ToString(), true);
            }
            catch (ChartAlreadyInProgressException)
            {
                base.PrintErrorMessage(GetLocalResourceObject("InProgressChartExceptionMessage").ToString(), true);
            }
            catch (Exception ex)
            {
                base.HandleException(ex);
            }
        }
Ejemplo n.º 27
0
        protected void rgSearchResults_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                try
                {
                    HideRefreshButton(e);

                    GridDataItem dataItem = e.Item as GridDataItem;

                    if (dataItem.ItemType == GridItemType.Item || dataItem.ItemType == GridItemType.AlternatingItem || dataItem.ItemType == GridItemType.SelectedItem)
                    {
                        OrgChartSearchResult searchResult = (OrgChartSearchResult)e.Item.DataItem;

                        Image imgORGCHARTCheckedOutStatus = dataItem.FindControl("imgORGCHARTCheckedOutStatus") as Image;
                        imgORGCHARTCheckedOutStatus.Visible = false;
                        string checkedoutdt = string.Empty;
                        string editedBy     = string.Empty;



                        #region [ Action menu/ Document Menu]

                        //Action Menu
                        RadMenu     menuAction            = dataItem.FindControl("rmOrgChartMenuAction") as RadMenu;
                        RadMenuItem viewMenuItem          = menuAction.FindItemByValue("View");
                        RadMenuItem viewPublishedMenuItem = menuAction.FindItemByValue("ViewPublished");
                        RadMenuItem editMenuItem          = menuAction.FindItemByValue("Edit");
                        RadMenuItem continueMenuItem      = menuAction.FindItemByValue("ContinueEdit");
                        RadMenuItem finishMenuItem        = menuAction.FindItemByValue("FinishEdit");
                        RadMenuItem deleteMenuItem        = menuAction.FindItemByValue("Delete");

                        //Document Menu
                        RadMenu     menuDocument         = dataItem.FindControl("rmDocument") as RadMenu;
                        RadMenuItem InProcessPDFMenuItem = menuDocument.FindItemByValue("1");
                        RadMenuItem PublishedPDFMenuItem = menuDocument.FindItemByValue("2");


                        if (searchResult.IsCheckedOut)
                        {
                            // At this point, we know this has to be an OrgChart because it is checked out
                            // But let's be safe

                            if (searchResult.ChartEntity is OrganizationChart)
                            {
                                OrganizationChart chart = searchResult.ChartEntity as OrganizationChart;

                                if (chart != null)
                                {
                                    if (chart.CheckedOutBy.ActionDate.HasValue)
                                    {
                                        checkedoutdt = string.Format(chart.CheckedOutBy.ActionDate.Value.ToString(), "d");

                                        editedBy = String.Format("Being edited by {0} since {1}", chart.CheckedOutBy.FullName, checkedoutdt);

                                        imgORGCHARTCheckedOutStatus.Visible = true;
                                    }

                                    if (chart.CheckedOutBy.UserID == base.CurrentUserID)
                                    {
                                        imgORGCHARTCheckedOutStatus.ImageUrl = Page.ResolveUrl(String.Format("~/App_Themes/{0}/Images/Icons/icon_unlock.gif", Page.Theme));
                                    }
                                    else
                                    {
                                        imgORGCHARTCheckedOutStatus.ImageUrl = Page.ResolveUrl(String.Format("~/App_Themes/{0}/Images/Icons/icon_lock.gif", Page.Theme));
                                        imgORGCHARTCheckedOutStatus.ToolTip  = editedBy;
                                        dataItem.ToolTip = editedBy;
                                    }
                                }
                            }
                        }

                        //Action Menu visibility
                        deleteMenuItem.Visible   = searchResult.CanDelete;
                        editMenuItem.Visible     = searchResult.CanEdit;
                        finishMenuItem.Visible   = searchResult.CanFinishEdit;
                        continueMenuItem.Visible = searchResult.CanContinueEdit;

                        //Action/Document Menu visibility and data field setting
                        if (searchResult.ChartEntity is OrganizationChartLog)
                        {
                            OrganizationChartLog orgchartlog = (OrganizationChartLog)searchResult.ChartEntity;

                            menuAction.DataFieldID = orgchartlog.OrganizationChartLogID.ToString();
                            menuAction.Attributes["OrganizationChartLogID"] = orgchartlog.OrganizationChartLogID.ToString();

                            viewPublishedMenuItem.Visible = true;
                            viewMenuItem.Visible          = false;


                            menuDocument.DataFieldID = orgchartlog.OrganizationChartLogID.ToString();
                            menuDocument.Attributes["OrganizationChartLogID"] = orgchartlog.OrganizationChartLogID.ToString();
                            menuDocument.Attributes["OrganizationChartID"]    = string.Empty;
                            //this is for Export to excel
                            menuDocument.Attributes["OrgChartID"] = orgchartlog.OrganizationChartID.ToString();

                            PublishedPDFMenuItem.Visible = true;
                            InProcessPDFMenuItem.Visible = false;
                        }
                        else
                        {
                            menuAction.DataFieldID = searchResult.ChartEntity.OrganizationChartID.ToString();
                            menuAction.Attributes["OrganizationChartID"] = searchResult.ChartEntity.OrganizationChartID.ToString();

                            viewPublishedMenuItem.Visible = false;

                            if ((searchResult.ChartEntity is OrganizationChart) && (!searchResult.CanContinueEdit))
                            {
                                viewMenuItem.Visible = true;
                            }
                            else
                            {
                                viewMenuItem.Visible = false;
                            }


                            menuDocument.DataFieldID = searchResult.ChartEntity.OrganizationChartID.ToString();
                            menuDocument.Attributes["OrganizationChartID"]    = searchResult.ChartEntity.OrganizationChartID.ToString();
                            menuDocument.Attributes["OrganizationChartLogID"] = string.Empty;
                            //this is for Export to excel
                            menuDocument.Attributes["OrgChartID"] = searchResult.ChartEntity.OrganizationChartID.ToString();
                            InProcessPDFMenuItem.Visible          = true;
                            PublishedPDFMenuItem.Visible          = false;
                        }
                        #endregion
                    }
                }
                catch (Exception ex)
                {
                    base.HandleException(ex);
                }
            }
        }
        private void loadData()
        {
            base.RefreshOrgChartDataOnly();
            OrganizationChart chart = base.CurrentOrgChart;

            if (chart.OrganizationChartID == -1)
            {
                base.PrintErrorMessage(GetLocalResourceObject("OrganizationChartNotFoundMessage").ToString());
            }
            else
            {
                // load data
                base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), chart.OrganizationName, chart.OrgCode.OrganizationCodeValue));
                this.customOrgChartDetails.BindData(chart);

                // set workflow button view
                setView(chart);

                string mailAddressLineItem = GetLocalResourceObject("NullMailAddressLineItem").ToString();

                if (chart.OrgCode != null && (!string.IsNullOrWhiteSpace(chart.OrgCode.MailCity) || !string.IsNullOrWhiteSpace(chart.OrgCode.MailStateAbbr)))
                {
                    if (string.IsNullOrWhiteSpace(chart.OrgCode.MailCity))
                    {
                        // MailCity is null -- use State
                        mailAddressLineItem = chart.OrgCode.MailStateAbbr;
                    }
                    else if (string.IsNullOrWhiteSpace(chart.OrgCode.MailStateAbbr))
                    {
                        // MailState is null -- use city
                        mailAddressLineItem = chart.OrgCode.MailCity;
                    }
                    else
                    {
                        // use both
                        mailAddressLineItem = string.Format("{0}, {1}", chart.OrgCode.MailCity, chart.OrgCode.MailStateAbbr);
                    }
                }

                this.literalOrgCodeLocation.Text = mailAddressLineItem;

                string topPositionLineItem = string.Empty;

                if (chart.StartPointWFPPositionID == -1)
                {
                    topPositionLineItem = GetLocalResourceObject("NoTopLevelPositionMessage").ToString();
                }
                else
                {
                    topPositionLineItem = chart.StartPointPositionLineItemFullName;
                }

                this.literalTopLevelPosition.Text = topPositionLineItem;
                this.literalWorkflowStatus.Text   = chart.OrgWorkflowStatusName;

                if (chart.CreatedBy != null)
                {
                    bool hasCreatedByName = !string.IsNullOrWhiteSpace(chart.CreatedBy.FullName);
                    this.rowCreatedOn.Visible = chart.CreatedBy.ActionDate.HasValue;
                    this.rowCreatedBy.Visible = hasCreatedByName;

                    if (chart.CreatedBy.ActionDate.HasValue)
                    {
                        this.literalCreatedDate.Text = chart.CreatedBy.ActionDate.Value.ToString();
                    }

                    if (hasCreatedByName)
                    {
                        this.literalCreatedByFullName.Text = chart.CreatedBy.FullName;
                    }
                }

                if (chart.CheckedOutBy != null)
                {
                    bool hasCheckedOutInfo = chart.CheckedOutBy.ActionDate.HasValue && !string.IsNullOrWhiteSpace(chart.CheckedOutBy.FullName);
                    this.rowCheckedOut.Visible = hasCheckedOutInfo;

                    if (hasCheckedOutInfo)
                    {
                        this.literalCheckedOutBy.Text = string.Format(GetLocalResourceObject("CheckedOutLineMessage").ToString(),
                                                                      chart.CheckedOutBy.FullName, chart.CheckedOutBy.ActionDate.Value.ToString());
                    }
                }

                if (chart.UpdatedBy != null)
                {
                    bool hasLastUpdatedName = !string.IsNullOrWhiteSpace(chart.UpdatedBy.FullName);
                    this.rowUpdatedOn.Visible = chart.UpdatedBy.ActionDate.HasValue;
                    this.rowUpdatedBy.Visible = hasLastUpdatedName;

                    if (chart.UpdatedBy.ActionDate.HasValue)
                    {
                        this.literalLastUpdated.Text = chart.UpdatedBy.ActionDate.Value.ToString();
                    }

                    if (hasLastUpdatedName)
                    {
                        this.literalLastUpdatedBy.Text = chart.UpdatedBy.FullName;
                    }
                }
            }
        }
Ejemplo n.º 29
0
        private void loadData(IWorkforcePlanningPosition position)
        {
            base.RefreshOrgChartDataOnly();
            OrganizationChart chart  = base.CurrentOrgChart;
            bool tempIsChartPosition = position is OrganizationChartPosition;

            this.IsChartPosition = tempIsChartPosition;
            this.customOrgChartDetails.BindData(chart);
            this.customOrgChartDetails.RedirectSuffix = tempIsChartPosition ? "pos" : "newfpps";
            this.customFPPSPositionInformation.BindData(position, chart.StartPointWFPPositionID);

            if (position.PositionStatusHistory.HasValue && position.PositionStatusHistory.Value == (int)enumOrgPositionStatusHistoryType.ActiveEmployee)
            {
                base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(), position.PositionLineItemFullName));
            }
            else
            {
                base.SetPageTitle(string.Format(GetLocalResourceObject("PageTitle").ToString(),
                                                string.Format("{0} {1}", position.PositionTitle, GetLocalResourceObject("VacantWordPhrase").ToString())));
            }

            // This is a nested control and as such, the use is a little different from the other user controls -- we need to check read/write permission here
            // This is because we load this control by an explicit Bind -- not in page load
            this.OriginalReportsToID = position.ReportsToID;
            this.AccessOK            = (base.CurrentOrgChartNavMode == enumNavigationMode.Insert || base.CurrentOrgChartNavMode == enumNavigationMode.Edit);
            bool actionsOK = this.AccessOK &&
                             (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Draft || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Review);
            bool isRoot           = (position.WFPPositionID == base.CurrentOrgChart.StartPointWFPPositionID);
            bool isTopLevelEditOk = (base.HasHRGroupPermission || base.IsAdmin) || !isRoot;

            this.TopLevelEditOK = isTopLevelEditOk;

            this.buttonIncludePosition.Visible = actionsOK && !tempIsChartPosition;
            this.buttonUpdatePosition.Visible  = actionsOK && tempIsChartPosition;

            this.rowReportsToPositionRoot.Visible   = !isTopLevelEditOk;
            this.rowReportsToPositionUpdate.Visible = isTopLevelEditOk;
            this.requiredParentPosition.Enabled     = !isRoot;  // parent position is required for all positions except the root node
            this.spanPositionRequired.Visible       = !isRoot;  // hide the required asterisk "*"

            this.rowLocationGroupType.Visible = !isRoot;
            this.rowPlacementType.Visible     = !isRoot;

            this.dropDownOrganizationPositionTypes.SelectedValue = ((int)position.eOrgPositionType).ToString();

            if (isTopLevelEditOk)
            {
                if (position.ReportsToID != -1)
                {
                    this.dropDownParentPositions.SelectedValue = position.ReportsToID.ToString();
                }
            }
            else
            {
                literalReportsToPosition.Text = position.ReportsToFullNameReverse;
            }

            if (tempIsChartPosition && !isRoot)
            {
                // only set if this is a chart position AND it is not the root node position
                OrganizationChartPosition chartPosition = position as OrganizationChartPosition;

                this.dropDownPositionPlacements.SelectedValue         = ((int)chartPosition.PositionPlacementType).ToString();
                this.dropDownPositionLocationGroupTypes.SelectedValue = ((int)chartPosition.PositionGroupType).ToString();
            }
        }
Ejemplo n.º 30
0
        public List <OrgChartSearchResult> LoadSearchResults(int userID, int?organizationChartID            = null,
                                                             int?organizationChartTypeID                    = null, int?organizationCodeID = null,
                                                             enumOrgWorkflowStatus orgChartWorkflowStatusID = enumOrgWorkflowStatus.Undefined,
                                                             int?regionID      = null, string authorName = null, string approverName = null,
                                                             int?publishedYear = null, int?seriesID      = null, string employeeName = null)
        {
            List <OrgChartSearchResult> searchResults = new List <OrgChartSearchResult>();

            if (userID <= 0)
            {
                throw new BusinessException("UserID must be provided.");
            }
            else if (organizationChartID == null && organizationChartTypeID == null && organizationCodeID == null && orgChartWorkflowStatusID == enumOrgWorkflowStatus.Undefined &&
                     regionID == null && string.IsNullOrEmpty(authorName) && string.IsNullOrEmpty(approverName) && publishedYear == null && seriesID == null &&
                     string.IsNullOrEmpty(employeeName))
            {
                throw new BusinessException("No search criteria provided. At least one expected.");
            }
            else
            {
                try
                {
                    DbCommand commandWrapper = GetDbCommand("spr_SearchOrganizationCharts");

                    commandWrapper.Parameters.Add(new SqlParameter("@UserID", userID));


                    if (organizationChartID.HasValue)
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@OrganizationChartID", organizationChartID.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@OrganizationChartID", DBNull.Value));
                    }

                    if (organizationChartTypeID.HasValue)
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@OrganizationChartTypeID", organizationChartTypeID.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@OrganizationChartTypeID", DBNull.Value));
                    }

                    if (organizationCodeID.HasValue)
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@OrganizationCodeID", organizationCodeID.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@OrganizationCodeID", DBNull.Value));
                    }

                    if (orgChartWorkflowStatusID == enumOrgWorkflowStatus.Undefined)
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@OrgChartWorkflowStatusID", DBNull.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@OrgChartWorkflowStatusID", (int)orgChartWorkflowStatusID));
                    }

                    if (regionID.HasValue)
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@RegionID", regionID.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@RegionID", DBNull.Value));
                    }

                    if (string.IsNullOrWhiteSpace(authorName))
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@AuthorName", DBNull.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@AuthorName", authorName.Trim()));
                    }

                    if (string.IsNullOrWhiteSpace(approverName))
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@ApprovedByName", DBNull.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@ApprovedByName", approverName.Trim()));
                    }

                    if (publishedYear.HasValue)
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@PublishedYear", publishedYear.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@PublishedYear", DBNull.Value));
                    }

                    if (seriesID.HasValue)
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@SeriesID", seriesID.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@SeriesID", DBNull.Value));
                    }

                    if (string.IsNullOrWhiteSpace(employeeName))
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@EmployeeName", DBNull.Value));
                    }
                    else
                    {
                        commandWrapper.Parameters.Add(new SqlParameter("@EmployeeName", employeeName.Trim()));
                    }

                    // get data set
                    DataSet ds = ExecuteDataSet(commandWrapper);

                    if (ds.Tables.Count > 0)
                    {
                        // Table 0: OrganizationChart records
                        if (ds.Tables[0] != null)
                        {
                            DataTable tableOC = ds.Tables[0];
                            OrganizationChartDataAdapter OCAdapter = new OrganizationChartDataAdapter();

                            foreach (DataRow dr in tableOC.Rows)
                            {
                                OrgChartSearchResult resultItem = getSearchResultObject(dr);
                                OrganizationChart    chart      = new OrganizationChart();
                                OCAdapter.Fill(dr, chart);
                                resultItem.ChartEntity = chart;  // OrganizationChartManager.Instance.BuildFromDataRow(dr);

                                searchResults.Add(resultItem);
                            }
                        }

                        // Table 1: OrganizationChartLog records
                        if (ds.Tables[1] != null)
                        {
                            DataTable tableOCL = ds.Tables[1];
                            OrganizationChartLogDataAdapter OCLAdapter = new OrganizationChartLogDataAdapter();

                            foreach (DataRow dr in tableOCL.Rows)
                            {
                                OrgChartSearchResult resultItem = getSearchResultObject(dr);
                                OrganizationChartLog chartLog   = new OrganizationChartLog();
                                OCLAdapter.Fill(dr, chartLog);
                                resultItem.ChartEntity = chartLog;   // OrganizationChartLogManager.Instance.BuildFromDataRow(dr);

                                searchResults.Add(resultItem);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    HandleException(ex);
                }
            }
            return(searchResults);
        }
Ejemplo n.º 31
0
        private void setView(OrganizationChart chart, int tempPositionID)
        {
            if (chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Undefined || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Approval || chart.OrgWorkflowStatusID == enumOrgWorkflowStatus.Published)
            {
                this.gridPositions.Columns[0].Visible = false; // Exclude Column
                this.gridPositions.Columns[1].Visible = false; // Include Column
                this.buttonAddNewWFP.Visible          = false; // Add New WFP button
            }

            bool showDrillDown = (tempPositionID != -1);

            this.panelDrillUp.Visible = showDrillDown;

            if (showDrillDown)
            {
                // 1. load position and see if it is valid
                // 2. set this.DrillPositionID
                // 3. check to see if it is broken hierarchy
                // 4. load reports to ID

                OrganizationChartPosition testPosition = OrganizationChartPositionManager.Instance.GetByID(base.CurrentOrgChartID, tempPositionID);

                if (testPosition.WFPPositionID == -1)
                {
                    base.PrintErrorMessage(GetLocalResourceObject("DrillPositionIDNotFoundInChartMessage").ToString());
                }
                else
                {
                    // 2. set this.DrillPositionID
                    this.DrillPositionID = tempPositionID;

                    // show drill down position name/title
                    if (testPosition.PositionStatusHistory.HasValue &&
                        testPosition.PositionStatusHistory.Value == (int)enumOrgPositionStatusHistoryType.ActiveEmployee &&
                        !string.IsNullOrWhiteSpace(testPosition.FullName))
                    {
                        this.literalDrillPositionDetails.Text = string.Format("{0} ({1})", testPosition.FullName, testPosition.PositionTitle);
                    }
                    else
                    {
                        this.literalDrillPositionDetails.Text = string.Format("{0} ({1})", _FPPSVacancyWordPhrase, testPosition.PositionTitle);
                    }

                    // 3. check to see if it is broken hierarchy
                    // 4. load reports to ID (if not -1)
                    bool showUpOneLevel        = testPosition.IsInChartHierarchy && testPosition.ReportsToID != -1;
                    bool isCurrentPositionRoot = (testPosition.WFPPositionID == chart.StartPointWFPPositionID);

                    if (showUpOneLevel)
                    {
                        string upOneLevelURL = string.Empty;

                        if (isCurrentPositionRoot)
                        {
                            // this is the root node of the chart -- next is to show all positions
                            upOneLevelURL = "~/OrgChart/OrgChartPositions.aspx#positionlist";
                        }
                        else
                        {
                            upOneLevelURL = string.Format("~/OrgChart/OrgChartPositions.aspx?posID={0}#positionlist", testPosition.ReportsToID);
                        }

                        this.linkDrillUpOneLevel.NavigateUrl      = upOneLevelURL;
                        this.linkDrillUpOneLevelArrow.NavigateUrl = upOneLevelURL;
                    }

                    this.tdDrillUpOneLevel.Visible      = showUpOneLevel && !isCurrentPositionRoot;
                    this.tdDrillUpOneLevelArrow.Visible = showUpOneLevel && !isCurrentPositionRoot;

                    this.tdDrillUpOneLevelArrowDisabled.Visible = !testPosition.IsInChartHierarchy;
                    this.tdDrillUpOneLevelDisabled.Visible      = !testPosition.IsInChartHierarchy;
                }
            }
        }