Example #1
0
        public void ShowEditDialog(PlanHistoryDTO existDetail, PlanDetailCreateSource source)
        {
            switch (source)
            {
                case PlanDetailCreateSource.New:
                    IsPlanTypeVisible = Visibility.Collapsed;
                    _operationPlan = _service.CreatePlanHistory(CurPlan, AllPlanHistories, ref editPlanAircraft, null,
                        "引进", 1); //此时EditPlanAircraft=null
                    EditPlanHistory = _operationPlan;
                    IsChangeable = true;
                    break;
                case PlanDetailCreateSource.PlanAircraft:
                    IsPlanTypeVisible = Visibility.Collapsed;
                    // 计划飞机已有的明细项肯定是引进计划,只能添加退出计划
                    _operationPlan = _service.CreatePlanHistory(CurPlan, AllPlanHistories, ref editPlanAircraft, null,
                        existDetail != null ? "退出" : "引进", 1); //existDetail=null为计划飞机是预备状态的情况
                    EditPlanHistory = _operationPlan;
                    ViewPlanHistories.Add(EditPlanHistory);
                    AllPlanHistories.AddNew(EditPlanHistory);
                    //这时不能修改机型和座机
                    IsChangeable = false;
                    break;
                case PlanDetailCreateSource.Aircraft:
                    IsPlanTypeVisible = Visibility.Visible;
                    // 1、计划飞机已有明细项
                    if (existDetail != null)
                    {
                        // 已有的是变更计划,只能添加退出计划
                        if (existDetail.ActionType == "变更")
                        {
                            IsChangeEnabled = false;
                            IsOperation = true;
                            IsChange = false;
                            OnOperation();
                            ViewPlanHistories.Add(EditPlanHistory);
                            AllPlanHistories.AddNew(EditPlanHistory);
                        }
                            // 已有的是退出计划,只能添加变更计划
                        else
                        {
                            IsOperationEnabled = false;
                            IsOperation = false;
                            IsChange = true;
                            OnOperation(); //生成之后,不让用户编辑,起到保存原计划历史的机型的作用,在取消时,能够用来恢复计划飞机数据
                            OnChange();
                            ViewPlanHistories.Add(EditPlanHistory);
                            AllPlanHistories.AddNew(EditPlanHistory);
                        }
                    }
                        // 2、计划飞机没有明细项
                    else
                    {
                        IsChangeEnabled = true;
                        IsOperationEnabled = true;
                        if (!IsOperation) IsOperation = true;
                        OnOperation();
                        ViewPlanHistories.Add(EditPlanHistory);
                        AllPlanHistories.AddNew(EditPlanHistory);
                    }
                    break;
                default:
                    throw new ArgumentOutOfRangeException("source");
            }

            editDialog.ShowDialog();
        }
Example #2
0
        private void ShowEditDialog(PlanHistory existDetail, PlanDetailCreateSource source)
        {
            switch (source)
            {
                case PlanDetailCreateSource.New:
                    this.IsPlanTypeVisible = Visibility.Collapsed;
                    this._operationPlan = this.service.CreateOperationPlan(this.CurrentPlan, this._planAircraft, "引进");
                    this.PlanDetail = this._operationPlan;
                    this.IsChangeable = true;
                    break;
                case PlanDetailCreateSource.PlanAircraft:
                    this.IsPlanTypeVisible = Visibility.Collapsed;
                    // 计划飞机已有的明细项肯定是引进计划,只能添加退出计划
                    this._operationPlan = this.service.CreateOperationPlan(this.CurrentPlan, this._planAircraft, existDetail != null ? "退出" : "引进");
                    this.PlanDetail = this._operationPlan;
                    //这时不能修改机型和座机
                    this.IsChangeable = false;
                    break;
                case PlanDetailCreateSource.Aircraft:
                    this.IsPlanTypeVisible = Visibility.Visible;
                    // 1、计划飞机已有明细项
                    if (existDetail != null)
                    {
                        // 已有的是变更计划,只能添加退出计划
                        if (existDetail.ActionType == "变更")
                        {
                            this.IsChangeEnabled = false;
                            this.IsOperation = true;
                            this.IsChange = false;
                            this.OnOperation();
                        }
                        // 已有的是退出计划,只能添加变更计划
                        else
                        {
                            this.IsOperationEnabled = false;
                            this.IsOperation = false;
                            this.IsChange = true;
                            this.OnOperation();//生成之后,不让用户编辑,起到保存原计划历史的机型的作用,在取消时,能够用来恢复计划飞机数据
                            this.OnChange();
                        }
                    }
                    // 2、计划飞机没有明细项
                    else
                    {
                        this.IsChangeEnabled = true;
                        this.IsOperationEnabled = true;
                        if (!this.IsOperation) this.IsOperation = true;
                        this.OnOperation();
                    }
                    break;
                default:
                    throw new ArgumentOutOfRangeException("source");
            }

            this.editDialog.ShowDialog();
        }
Example #3
0
        /// <summary>
        ///     打开子窗体之前判断是否要打开
        /// </summary>
        /// <param name="planAircraft">计划飞机</param>
        /// <param name="source">调用的来源</param>
        public void OpenEditDialog(PlanAircraftDTO planAircraft, PlanDetailCreateSource source)
        {
            editPlanAircraft = planAircraft;
            EditPlanHistory = null;
            _operationPlan = null;
            _changePlan = null;
            // 获取计划飞机在当前计划中的明细项集合
            var planDetails = new List<PlanHistoryDTO>();
            if (CurPlan != null && editPlanAircraft != null)
                planDetails = ViewPlanHistories.Where(ph => ph.PlanAircraftId == editPlanAircraft.Id).ToList();

            // 1、计划飞机在当前计划中没有明细项(新增计划明细或计划飞机为预备状态)
            if (!planDetails.Any())
                ShowEditDialog(null, source);
                // 2、计划飞机在当前计划中已有明细项
            else
            {
                if (planDetails.Count == 1)
                {
                    string content;
                    switch (source)
                    {
                        case PlanDetailCreateSource.New:
                            break;
                        case PlanDetailCreateSource.PlanAircraft:
                            content = "计划飞机在当前计划中已有引进计划明细项,是否要针对该计划飞机添加退出计划明细项?";
                            MessageConfirm("确认添加计划明细", content, (o, e) =>
                            {
                                if (e.DialogResult == true)
                                {
                                    ShowEditDialog(planDetails[0], source);
                                }
                            });
                            break;
                        case PlanDetailCreateSource.Aircraft:
                            content = planDetails[0].ActionType.Contains("变更")
                                ? "飞机在当前计划中已有变更计划明细项,是否要针对该飞机添加退出计划明细项?"
                                : "飞机在当前计划中已有退出计划明细项,是否要针对该飞机添加变更计划明细项?";
                            MessageConfirm("确认添加计划明细", content, (o, e) =>
                            {
                                if (e.DialogResult == true)
                                {
                                    ShowEditDialog(planDetails[0], source);
                                }
                            });
                            break;
                        default:
                            throw new ArgumentOutOfRangeException("source");
                    }
                }
                else
                {
                    MessageAlert("提醒", "该计划飞机已有两条明细项,不能再添加新计划明细项!");
                }
            }
        }
Example #4
0
        /// <summary>
        /// 打开子窗体之前判断是否要打开
        /// </summary>
        /// <param name="planAircraft">计划飞机</param>
        /// <param name="source">调用的来源</param>
        internal void OpenEditDialog(PlanAircraft planAircraft, PlanDetailCreateSource source)
        {
            if (this.ViewPlanHistory == null || (!this.ViewPlanHistory.Any(p => p.HasValidationErrors)))
            {
                this._planAircraft = planAircraft;
                this._operationPlan = null;
                this._changePlan = null;
                // 获取计划飞机在当前计划中的明细项集合
                var planDetails = new List<PlanHistory>();
                if(planAircraft!=null)
                planDetails = this.ViewPlanHistory.Where(ph => ph.PlanAircraft == planAircraft).ToList();

                // 1、计划飞机在当前计划中没有明细项
                if (!planDetails.Any())
                    this.ShowEditDialog(null, source);
                // 2、计划飞机在当前计划中已有明细项
                else
                {
                    if (planDetails.Count == 1)
                    {
                        string content;
                        switch (source)
                        {
                            case PlanDetailCreateSource.New:
                                break;
                            case PlanDetailCreateSource.PlanAircraft:
                                content = "计划飞机在当前计划中已有引进计划明细项,是否要针对该计划飞机添加退出计划明细项?";
                                RadWindow.Confirm(this.SetConfirm("确认添加计划明细", "确认", "取消", content, 13, 250, (o, e) =>
                                    {
                                        if (e.DialogResult == true)
                                            this.ShowEditDialog(planDetails[0], source);
                                    }));
                                break;
                            case PlanDetailCreateSource.Aircraft:
                                content = planDetails[0].ActionType == "变更"
                                              ? "飞机在当前计划中已有变更计划明细项,是否要针对该飞机添加退出计划明细项?"
                                              : "飞机在当前计划中已有退出计划明细项,是否要针对该飞机添加变更计划明细项?";
                                RadWindow.Confirm(this.SetConfirm("确认添加计划明细", "确认", "取消", content, 13, 250, (o, e) =>
                                    {
                                        if (e.DialogResult == true)
                                            this.ShowEditDialog(planDetails[0], source);
                                    }));
                                break;
                            default:
                                throw new ArgumentOutOfRangeException("source");
                        }
                    }
                    else
                    {
                        RadWindow.Alert(this.SetAlter("提醒", "确认", "该计划飞机已有两条明细项,不能再添加新计划明细项!", 13, 250, () => { }));
                    }
                }
            }
        }