protected override void OnSaved()
        {
            base.OnSaved();

            //如果对向没有记录,自动创建
            MonthlyRembursementSalaryItemEntry opposite = GetEditingRow(this.员工编号, this.年, this.月, !this.是验证录入);

            if (opposite == null)
            {
                opposite = new MonthlyRembursementSalaryItemEntry();

                opposite.标识    = Guid.NewGuid();
                opposite.员工编号  = this.员工编号;
                opposite.姓名    = this.姓名;
                opposite.年     = this.年;
                opposite.月     = this.月;
                opposite.月剩余金额 = this.月剩余金额;
                opposite.年剩余金额 = this.年剩余金额;
                opposite.是验证录入 = !this.是验证录入;

                opposite.录入人  = "";
                opposite.录入时间 = DateTime.Now;
                opposite.Save();
            }
        }
        //更新到正式表
        public void UpdateToFormalTable()
        {
            if (另一人录入的记录 == null || this.内容不同的字段.Count > 0)
            {
                return;
            }

            MonthlyRembursementSalaryItem m = MonthlyRembursementSalaryItem.AddMonthlyRembursementSalaryItem(this.员工编号, this.年, this.月);

            this.CopyWatchMember(m);

            m.创建人  = this.录入人;
            m.创建时间 = DateTime.Now;
            m.Save();

            //更新生效标记
            if (!this.已生效)
            {
                this.生效时间 = DateTime.Now;
                this.Save();

                MonthlyRembursementSalaryItemEntry opposite = 另一人录入的记录;
                opposite.生效时间 = DateTime.Now;
                opposite.Save();
            }
        }
        public static MonthlyRembursementSalaryItemEntry AddMonthlyRembursementSalaryItemEntry(string emplid, string name, int year, int month, bool isVerify)
        {
            MonthlyRembursementSalaryItemEntry item = GetMonthlyRembursementSalaryItemEntry(emplid, year, month, isVerify);

            if (item == null)
            {
                item = new MonthlyRembursementSalaryItemEntry();

                item.标识    = Guid.NewGuid();
                item.员工编号  = emplid;
                item.姓名    = name;
                item.年     = year;
                item.月     = month;
                item.是验证录入 = isVerify;
                item.录入时间  = DateTime.Now;

                item.Save();
            }
            return(item);
        }
        protected override void OnSaving()
        {
            this.期间 = GetPeriod(年, 月);

            if (string.IsNullOrEmpty(this.员工编号))
            {
                throw new Exception("员工编号不能为空");
            }

            MonthlyRembursementSalaryItemEntry found = GetEditingRow(this.员工编号, this.年, this.月, this.是验证录入);

            if (found != null && found.标识 != this.标识)
            {
                throw new Exception("已存在该员工的报账记录,不能重复创建。");
            }
            else
            {
                base.OnSaving();
            }

            contentDifferentFields = null;
            MONTHLYREMBURSEMENTSALARYITEM_ENTRY_CACHE.Set(CacheKey, this, TimeSpan.FromHours(1));
        }
        public static MonthlyRembursementSalaryItemEntry GetMonthlyRembursementSalaryItemEntry(Guid id)
        {
            MonthlyRembursementSalaryItemEntry obj = (MonthlyRembursementSalaryItemEntry)Session.DefaultSession.GetObjectByKey(typeof(MonthlyRembursementSalaryItemEntry), id);

            return(obj);
        }