Пример #1
0
        public void Duplicate()
        {
            if (!isProcessingMultipleDuplicates)
            {
                MainViewModel.EntitiesUndoRedoManager.PauseActionId();
            }

            foreach (BASELINE_ITEMProjection selectedEntity in MainViewModel.SelectedEntities)
            {
                BASELINE_ITEMProjection newProjection = new BASELINE_ITEMProjection();
                DataUtils.ShallowCopy(newProjection.BASELINE_ITEM, selectedEntity.BASELINE_ITEM);
                newProjection.BASELINE_ITEM.GUID = Guid.Empty;
                AREA       selectedAREA       = AREACollection.FirstOrDefault(x => x.GUID == newProjection.BASELINE_ITEM.GUID_AREA);
                DISCIPLINE selectedDISCIPLINE = DISCIPLINECollection.FirstOrDefault(x => x.GUID == newProjection.BASELINE_ITEM.GUID_DISCIPLINE);
                DOCTYPE    selectedDOCTYPE    = DOCTYPECollection.FirstOrDefault(x => x.GUID == newProjection.BASELINE_ITEM.GUID_DOCTYPE);
                newProjection.BASELINE_ITEM.INTERNAL_NUM = BluePrintDataUtils.BASELINEITEM_Generate_InternalNumber(loadPROJECT, MainViewModel.Entities, selectedAREA, selectedDISCIPLINE, selectedDOCTYPE, newProjection.GUID);
                MainViewModel.EntitiesUndoRedoManager.AddUndo(newProjection, null, null, null, EntityMessageType.Added);
                MainViewModel.Save(newProjection);
            }

            if (!isProcessingMultipleDuplicates)
            {
                MainViewModel.EntitiesUndoRedoManager.UnpauseActionId();
            }
        }
Пример #2
0
        public void CellValueChanging(CellValueChangedEventArgs e)
        {
            if (e.Column.FieldName == "GUID_DDOCTYPE")
            {
                WORKPACK changingWORKPACK = (WORKPACK)e.Row;
                DOCTYPE  chosenDOCTYPE    = LookUpDOCTYPES.Entities.FirstOrDefault(entity => entity.GUID == (Guid)e.Value);
                if (chosenDOCTYPE != null && chosenDOCTYPE.GUID_DDEPARTMENT != null)
                {
                    changingWORKPACK.GUID_DDEPARTMENT = chosenDOCTYPE.DEPARTMENT.GUID;
                    PROJECTWORKPACKSDetails.UpdateSelectedEntity();
                }
            }
            else if (e.Column.FieldName == "STARTDATE" || e.Column.FieldName == "ENDDATE")
            {
                DateTime startDate;
                DateTime endDate;

                WORKPACK changingWORKPACK = (WORKPACK)e.Row;
                if (e.Column.FieldName == "STARTDATE")
                {
                    startDate = (DateTime)e.Value;
                    endDate   = changingWORKPACK.ENDDATE;
                    if (endDate < startDate)
                    {
                        endDate = BluePrintDataUtils.WORKPACK_Calculate_EndDate(startDate, Entity);
                        changingWORKPACK.ENDDATE = endDate;
                    }
                }
                else
                {
                    endDate   = (DateTime)e.Value;
                    startDate = changingWORKPACK.STARTDATE;
                    if (endDate < startDate)
                    {
                        startDate = BluePrintDataUtils.WORKPACK_Calculate_StartDate(endDate, Entity);
                        changingWORKPACK.STARTDATE = startDate;
                    }
                }

                DateTime reviewStartDate = startDate;
                DateTime reviewEndDate   = endDate;

                BluePrintDataUtils.WORKPACK_Calculate_ReviewPeriod(ref reviewStartDate, ref reviewEndDate, Entity, false);
                changingWORKPACK.REVIEWSTARTDATE = reviewStartDate;

                if (reviewEndDate >= endDate)
                {
                    changingWORKPACK.REVIEWENDDATE = endDate;
                }
                else
                {
                    changingWORKPACK.REVIEWENDDATE = reviewEndDate;
                }

                PROJECTWORKPACKSDetails.UpdateSelectedEntity();
            }
        }
Пример #3
0
        /// <summary>
        /// Influence column(s) when changes happens in other column
        /// </summary>
        public void CellValueChanging(CellValueChangedEventArgs e)
        {
            if (e.RowHandle != GridControl.NewItemRowHandle)
            {
                return;
            }

            BASELINE_ITEMProjection activeBASELINE_ITEM = (BASELINE_ITEMProjection)e.Row;

            if (e.Column.FieldName == BindableBase.GetPropertyName(() => new BASELINE_ITEMProjection().BASELINE_ITEM) + "." + BindableBase.GetPropertyName(() => new BASELINE_ITEM().GUID_WORKPACK))
            {
                WORKPACK chosenWORKPACK = WORKPACKCollection.FirstOrDefault(entity => entity.GUID == (Guid)e.Value);
                if (chosenWORKPACK != null)
                {
                    activeBASELINE_ITEM.BASELINE_ITEM.GUID_AREA       = chosenWORKPACK.GUID_DAREA;
                    activeBASELINE_ITEM.BASELINE_ITEM.GUID_DOCTYPE    = chosenWORKPACK.GUID_DDOCTYPE;
                    activeBASELINE_ITEM.BASELINE_ITEM.GUID_DEPARTMENT = chosenWORKPACK.GUID_DDEPARTMENT;
                    activeBASELINE_ITEM.BASELINE_ITEM.GUID_DISCIPLINE = chosenWORKPACK.GUID_DDISCIPLINE;
                    activeBASELINE_ITEM.BASELINE_ITEM.GUID_PHASE      = chosenWORKPACK.PHASE != null ? chosenWORKPACK.GUID_DPHASE : null;
                    var SelectedAREA       = AREACollection.FirstOrDefault(x => x.GUID == chosenWORKPACK.GUID_DAREA);
                    var SelectedDOCTYPE    = DOCTYPECollection.FirstOrDefault(x => x.GUID == chosenWORKPACK.GUID_DDOCTYPE);
                    var SelectedDISCIPLINE = DISCIPLINECollection.FirstOrDefault(x => x.GUID == chosenWORKPACK.GUID_DDISCIPLINE);

                    activeBASELINE_ITEM.BASELINE_ITEM.INTERNAL_NUM = BluePrintDataUtils.BASELINEITEM_Generate_InternalNumber(loadPROJECT, MainViewModel.Entities, SelectedAREA, SelectedDISCIPLINE, SelectedDOCTYPE);
                    MainViewModel.UpdateSelectedEntity();
                }
            }
            else if (e.Column.FieldName == BindableBase.GetPropertyName(() => new BASELINE_ITEMProjection().BASELINE_ITEM) + "." + BindableBase.GetPropertyName(() => new BASELINE_ITEM().GUID_DOCTYPE))
            {
                DOCTYPE chosenDOCTYPE = DOCTYPECollection.FirstOrDefault(entity => entity.GUID == (Guid)e.Value);
                if (chosenDOCTYPE != null && chosenDOCTYPE.GUID_DDEPARTMENT != null)
                {
                    activeBASELINE_ITEM.BASELINE_ITEM.GUID_DEPARTMENT = chosenDOCTYPE.DEPARTMENT.GUID;
                    MainViewModel.UpdateSelectedEntity();
                }
            }
        }
        /// <summary>
        /// Generate internal number1 when all required fields are populated
        /// </summary>
        public static string BASELINEITEM_Generate_InternalNumber(PROJECT fromPROJECT, BASELINE_ITEM fromBASELINE_ITEM, IEnumerable <BASELINE_ITEM> BASELINE_ITEMEntities, AREA selectedAREA, DISCIPLINE selectedDISCIPLINE, DOCTYPE selectedDOCTYPE)
        {
            if (selectedAREA != null && selectedDISCIPLINE != null && selectedDOCTYPE != null)
            {
                string InternalNum = fromPROJECT.NUMBER;
                InternalNum += "-" + selectedAREA.INTERNAL_NUM;
                InternalNum += selectedDOCTYPE.CODE;
                InternalNum += selectedDISCIPLINE.CODE;

                int InternalNameCount = BASELINE_ITEMEntities.Count(obj => obj.INTERNAL_NUM != null && obj.INTERNAL_NUM.Contains(InternalNum)) + 1;

                InternalNum += InternalNameCount.ToString();

                return(InternalNum);
            }
            else
            {
                return(string.Empty);
            }
        }
        /// <summary>
        /// Generate internal number1 when all required fields are populated
        /// </summary>
        public static string BASELINEITEM_Generate_InternalNumber(PROJECT fromPROJECT, IEnumerable <BASELINE_ITEMProjection> BASELINE_ITEMEntities, AREA selectedAREA, DISCIPLINE selectedDISCIPLINE, DOCTYPE selectedDOCTYPE, Guid?excludeGUID = null)
        {
            if (selectedAREA != null && selectedDISCIPLINE != null && selectedDOCTYPE != null)
            {
                string InternalNum = fromPROJECT.NUMBER;
                if (selectedAREA != null)
                {
                    InternalNum += "-" + selectedAREA.INTERNAL_NUM;
                }
                if (selectedDOCTYPE != null)
                {
                    InternalNum += selectedDOCTYPE.CODE;
                }
                if (selectedDISCIPLINE != null)
                {
                    InternalNum += selectedDISCIPLINE.CODE;
                }

                int internalNameCount = BASELINE_ITEMEntities.Where(x => x.GUID != excludeGUID).Count(x => x.BASELINE_ITEM.INTERNAL_NUM != null && x.BASELINE_ITEM.INTERNAL_NUM.Contains(InternalNum));
                internalNameCount += 1;
                InternalNum       += internalNameCount.ToString();

                return(InternalNum);
            }
            else
            {
                return(string.Empty);
            }
        }