Exemplo n.º 1
0
        /// <summary>
        /// 添加时操作
        /// </summary>
        /// <param name="e"></param>
        private void DoForAdd(QueryFBEntitiesCompletedEventArgs e)
        {
            //beyond
            // 清除预算明细
            this.OrderEntity.GetRelationFBEntities(typeof(T_FB_DEPTBUDGETADDDETAIL).Name).Clear();
            this.OrderEntity.GetRelationFBEntities(typeof(T_FB_PERSONBUDGETADDDETAIL).Name).Clear();

            // 添加预算明细
            e.Result.ToList().ForEach(item =>
            {
                T_FB_DEPTBUDGETADDDETAIL deptDetail = item.Entity as T_FB_DEPTBUDGETADDDETAIL;
                deptDetail.T_FB_DEPTBUDGETADDMASTER = this.OrderEntity.Entity as T_FB_DEPTBUDGETADDMASTER;

                item.FBEntityState = FBEntityState.Added;

                #region beyond
                item.GetRelationFBEntities(typeof(T_FB_PERSONBUDGETADDDETAIL).Name).ToList().ForEach(fbpersondetail =>
                {
                    T_FB_PERSONBUDGETADDDETAIL persondetail = fbpersondetail.Entity as T_FB_PERSONBUDGETADDDETAIL;
                    persondetail.CREATEUSERID             = this.OrderEntity.LoginUser.Value.ToString();
                    persondetail.CREATEUSERNAME           = this.OrderEntity.LoginUser.Text;
                    persondetail.UPDATEUSERID             = this.OrderEntity.LoginUser.Value.ToString();
                    persondetail.UPDATEUSERNAME           = this.OrderEntity.LoginUser.Text;
                    persondetail.T_FB_DEPTBUDGETADDDETAIL = item.Entity as T_FB_DEPTBUDGETADDDETAIL;

                    fbpersondetail.FBEntityState = FBEntityState.Added;
                });
                #endregion

                deptDetail.T_FB_SUBJECT.T_FB_BUDGETACCOUNT.Clear();
                deptDetail.T_FB_SUBJECT.T_FB_BUDGETCHECK.Clear();
            });
            this.OrderEntity.FBEntity.AddFBEntities <T_FB_DEPTBUDGETADDDETAIL>(e.Result);
            this.OrderEntity.FBEntity.SetObjValue("Entity.BUDGETCHARGE", 0);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 不可以为负数的保存校验
        /// </summary>
        /// <returns>returns</returns>
        private List <string> CheckSaveA()
        {
            List <string> msgs = new List <string>();

            ObservableCollection <FBEntity> details = this.OrderEntity.GetRelationFBEntities(typeof(T_FB_DEPTBUDGETADDDETAIL).Name);

            if (details.Count == 0)
            {
                msgs.Add(ErrorMessage.NoDetailInfo);
                return(msgs);
            }


            details.ToList().ForEach(item =>
            {
                T_FB_DEPTBUDGETADDDETAIL detail = item.Entity as T_FB_DEPTBUDGETADDDETAIL;

                // 判断个人预算是否出现负数的情况
                var personDetailList = item.GetEntityList <T_FB_PERSONBUDGETADDDETAIL>().FindAll(itemT => itemT != null);

                // 表示没做过任何操作
                if (detail.TOTALBUDGETMONEY.Equal(0) && detail.BUDGETMONEY.Equal(0))
                {
                    return;
                }

                if (detail.TOTALBUDGETMONEY < 0)
                {
                    string errorMessage = string.Format(ErrorMessage.BudgetMoneyZero, detail.T_FB_SUBJECT.SUBJECTNAME);
                    msgs.Add(errorMessage);
                }
                if (detail.BUDGETMONEY < 0)
                {
                    msgs.Add(string.Format(ErrorMessage.PersonBudgetMoneyBigger, detail.T_FB_SUBJECT.SUBJECTNAME));
                }
                //不能大于年度结余
                if (detail.USABLEMONEY.LessThan(detail.TOTALBUDGETMONEY))
                {
                    msgs.Add(string.Format(ErrorMessage.BudgetYearMoneyBigger, detail.T_FB_SUBJECT.SUBJECTNAME));
                }
                personDetailList.ForEach(itemP =>
                {
                    if (itemP.BUDGETMONEY < 0)
                    {
                        msgs.Add(string.Format(ErrorMessage.MoneyZero, detail.T_FB_SUBJECT.SUBJECTNAME + "(" + itemP.OWNERNAME + ")", "个人预算金额"));
                    }
                });
            });

            T_FB_DEPTBUDGETADDMASTER entMaster = this.OrderEntity.FBEntity.Entity as T_FB_DEPTBUDGETADDMASTER;

            if (entMaster.BUDGETCHARGE <= 0)
            {
                msgs.Add("费用总预算必须大于0!");
            }
            return(msgs);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取T_FB_DEPTBUDGETADDDETAIL信息
        /// </summary>
        /// <param name="strDeptBudgetAddDetailId">主键索引</param>
        /// <returns></returns>
        public T_FB_DEPTBUDGETADDDETAIL GetDeptBudgetAddDetailByID(string strDeptBudgetAddDetailId)
        {
            if (string.IsNullOrEmpty(strDeptBudgetAddDetailId))
            {
                return(null);
            }

            DeptBudgetAddDetailDAL dalDeptBudgetAddDetail = new DeptBudgetAddDetailDAL();
            StringBuilder          strFilter = new StringBuilder();
            List <string>          objArgs   = new List <string>();

            if (!string.IsNullOrEmpty(strDeptBudgetAddDetailId))
            {
                strFilter.Append(" DEPTBUDGETADDDETAILID == @0");
                objArgs.Add(strDeptBudgetAddDetailId);
            }

            T_FB_DEPTBUDGETADDDETAIL entRd = dalDeptBudgetAddDetail.GetDeptBudgetAddDetailRdByMultSearch(strFilter.ToString(), objArgs.ToArray());

            return(entRd);
        }
Exemplo n.º 4
0
 public void AddToT_FB_DEPTBUDGETADDDETAIL(T_FB_DEPTBUDGETADDDETAIL t_FB_DEPTBUDGETADDDETAIL)
 {
     base.AddObject("T_FB_DEPTBUDGETADDDETAIL", t_FB_DEPTBUDGETADDDETAIL);
 }
Exemplo n.º 5
0
 public static T_FB_DEPTBUDGETADDDETAIL CreateT_FB_DEPTBUDGETADDDETAIL(string dEPTBUDGETADDDETAILID, decimal bUDGETMONEY, string cREATEUSERID, global::System.DateTime cREATEDATE, string uPDATEUSERID, global::System.DateTime uPDATEDATE)
 {
     T_FB_DEPTBUDGETADDDETAIL t_FB_DEPTBUDGETADDDETAIL = new T_FB_DEPTBUDGETADDDETAIL();
     t_FB_DEPTBUDGETADDDETAIL.DEPTBUDGETADDDETAILID = dEPTBUDGETADDDETAILID;
     t_FB_DEPTBUDGETADDDETAIL.BUDGETMONEY = bUDGETMONEY;
     t_FB_DEPTBUDGETADDDETAIL.CREATEUSERID = cREATEUSERID;
     t_FB_DEPTBUDGETADDDETAIL.CREATEDATE = cREATEDATE;
     t_FB_DEPTBUDGETADDDETAIL.UPDATEUSERID = uPDATEUSERID;
     t_FB_DEPTBUDGETADDDETAIL.UPDATEDATE = uPDATEDATE;
     return t_FB_DEPTBUDGETADDDETAIL;
 }
Exemplo n.º 6
0
        private void SetPropertyChanged()
        {
            // 因后台保存是二层结构,所有需要把 A->B->C这种结构变成 A->B, A->C结构
            ObservableCollection <FBEntity> detailPersonList = this.OrderEntity.GetRelationFBEntities(typeof(T_FB_PERSONBUDGETADDDETAIL).Name);
            ObservableCollection <FBEntity> detailList       = this.OrderEntity.GetRelationFBEntities(typeof(T_FB_DEPTBUDGETADDDETAIL).Name);

            detailList.ToList().ForEach(item =>
            {
                #region 部门变化
                // 部门预算明细变化事件
                item.Entity.PropertyChanged += (senderDept, eDept) =>
                {
                    T_FB_DEPTBUDGETADDDETAIL DeptDetail = senderDept as T_FB_DEPTBUDGETADDDETAIL;
                    #region
                    // 部门预算明细的总预算变化时,统计所有明细的预算
                    if (eDept.PropertyName == "TOTALBUDGETMONEY")
                    {
                        decimal?newTotal = detailList.Sum(itemDept =>
                        {
                            return((decimal?)itemDept.GetObjValue("Entity.TOTALBUDGETMONEY"));
                        });

                        this.OrderEntity.SetObjValue("Entity.BUDGETCHARGE", newTotal);
                    }

                    // 改:先填写预算总额,后填个人预算,而部门的公共预算=预算总额 - 个人预算 2011-12-28
                    // 个人预算或部门预算变化时,统计个人预算明细 + 部门预算
                    if (eDept.PropertyName == "TOTALBUDGETMONEY" || eDept.PropertyName == "PERSONBUDGETMONEY")
                    {
                        DeptDetail.BUDGETMONEY = DeptDetail.TOTALBUDGETMONEY.Subtract(DeptDetail.PERSONBUDGETMONEY).Value;
                    }

                    #endregion
                };
                #endregion

                #region 个人预算明细变化
                // 个人预算明细变化
                ObservableCollection <FBEntity> obPersonDetail = item.GetRelationFBEntities(typeof(T_FB_PERSONBUDGETADDDETAIL).Name);
                obPersonDetail.ToList().ForEach(itemPerson =>
                {
                    T_FB_PERSONBUDGETADDDETAIL persondetail = itemPerson.Entity as T_FB_PERSONBUDGETADDDETAIL;

                    itemPerson.Entity.PropertyChanged += (senderPerson, ePerson) =>
                    {
                        if (ePerson.PropertyName == "BUDGETMONEY")
                        {
                            var totalPerson = obPersonDetail.Sum(itemPersonDetail =>
                            {
                                // 在个人预算中将会部门预算记录,所以需要判断是否统计的对象是个人预算
                                T_FB_PERSONBUDGETADDDETAIL pDetail = itemPersonDetail.Entity as T_FB_PERSONBUDGETADDDETAIL;
                                if (pDetail != null)
                                {
                                    return(pDetail.BUDGETMONEY);
                                }
                                else
                                {
                                    return(0);
                                }
                            });

                            var itemDept = item.Entity as T_FB_DEPTBUDGETADDDETAIL;
                            itemDept.PERSONBUDGETMONEY = totalPerson;
                        }
                    };

                    detailPersonList.Add(itemPerson);
                });

                // 因为在个人预算中需要体现部门公共费用栏,则加入部门公共费用(T记录到个人预算集合中
                if (obPersonDetail.Count > 0)
                {
                    var sumEntity              = new V_DepartmentSum(item.Entity);
                    var curItemEntity          = item.Entity as T_FB_DEPTBUDGETADDDETAIL;
                    var sumFBEntity            = sumEntity.ToFBEntity();
                    sumFBEntity.ReadOnly       = true;
                    sumEntity.LIMITBUDGETMONEY = curItemEntity.AUDITBUDGETMONEY.Subtract(obPersonDetail.Sum(itemFB =>
                    {
                        var tee = (itemFB.Entity as T_FB_PERSONBUDGETADDDETAIL);
                        if (tee.LIMITBUDGETMONEY == null)
                        {
                            return(0);
                        }
                        else
                        {
                            return(tee.LIMITBUDGETMONEY);
                        }
                    }));
                    sumFBEntity.FBEntityState = FBEntityState.Unchanged;
                    obPersonDetail.Insert(0, sumFBEntity);
                }
                else
                {
                    item.HideDetails = true;
                }

                #endregion
            });

            this.EditForm.BindingData();
            this.CloseProcess(false);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 可为负数的保存校验
        /// </summary>
        /// <returns>returns</returns>
        private List <string> CheckSaveB()
        {
            List <string> msgs = new List <string>();
            ObservableCollection <FBEntity> details = this.OrderEntity.GetRelationFBEntities(typeof(T_FB_DEPTBUDGETADDDETAIL).Name);

            if (details.Count == 0)
            {
                msgs.Add(ErrorMessage.NoDetailInfo);
                return(msgs);
            }

            var detailList          = details.Select(item => item.Entity as T_FB_DEPTBUDGETADDDETAIL).ToList();
            var existBiggerThanZero = detailList.Count(item => item.TOTALBUDGETMONEY > 0) > 0;
            var existLessThanZero   = detailList.Count(item => item.TOTALBUDGETMONEY < 0) > 0;

            if (existBiggerThanZero && existLessThanZero)
            {
                msgs.Add("预算明细只能全为负数,或全为正数,请确认!");
                return(msgs);
            }
            // 都大于0的
            if (!existLessThanZero)
            {
                return(CheckSaveA());
            }
            details.ToList().ForEach(item =>
            {
                T_FB_DEPTBUDGETADDDETAIL detail = item.Entity as T_FB_DEPTBUDGETADDDETAIL;

                // 判断个人预算是否出现负数的情况
                var personDetailList = item.GetEntityList <T_FB_PERSONBUDGETADDDETAIL>(itemT =>
                {
                    var result = itemT as T_FB_PERSONBUDGETADDDETAIL;
                    if (result == null)
                    {
                        V_DepartmentSum vd = itemT as V_DepartmentSum;
                        result             = new T_FB_PERSONBUDGETADDDETAIL()
                        {
                            LIMITBUDGETMONEY = vd.LIMITBUDGETMONEY,
                            BUDGETMONEY      = vd.BUDGETMONEY,
                            OWNERNAME        = vd.OWNERNAME,
                            OWNERPOSTNAME    = vd.OWNERPOSTNAME
                        };
                    }
                    return(result);
                });

                // 表示没做过任何操作
                if (detail.TOTALBUDGETMONEY.Equal(0) && detail.BUDGETMONEY.Equal(0))
                {
                    return;
                }

                if (detail.TOTALBUDGETMONEY > 0)
                {
                    string errorMessage = string.Format(ErrorMessage.MoneyBiggerThanZero, detail.T_FB_SUBJECT.SUBJECTNAME, FieldDisplayName.BudgetMoney);
                    msgs.Add(errorMessage);
                }

                //不能大于当前可用结余AUDITBUDGETMONEY
                if (detail.AUDITBUDGETMONEY.Add(detail.TOTALBUDGETMONEY) < 0)
                {
                    msgs.Add(string.Format(ErrorMessage.MoneyBigger, "扣减的预算金额", "可用结余", detail.T_FB_SUBJECT.SUBJECTNAME));
                }
                personDetailList.ForEach(itemP =>
                {
                    if (itemP.LIMITBUDGETMONEY.Add(itemP.BUDGETMONEY) < 0)
                    {
                        msgs.Add(string.Format("科目:{0} 扣减的预算金额不能大于可用结余!", detail.T_FB_SUBJECT.SUBJECTNAME + "(" + itemP.OWNERNAME + ")"));
                    }
                    else if (itemP.BUDGETMONEY > 0)
                    {
                        msgs.Add(string.Format("科目:{0} 扣减的预算金额不能大于零!", detail.T_FB_SUBJECT.SUBJECTNAME + "(" + itemP.OWNERNAME + ")"));
                    }
                });
            });

            T_FB_DEPTBUDGETADDMASTER entMaster = this.OrderEntity.FBEntity.Entity as T_FB_DEPTBUDGETADDMASTER;

            if (entMaster.BUDGETCHARGE >= 0)
            {
                msgs.Add("费用总预算必须小于0!");
            }
            return(msgs);
        }