예제 #1
0
        /// <summary>
        /// 保存支出分类
        /// </summary>
        /// <param name="info">支出分类</param>
        /// <returns>主键ID</returns>
        public async Task <ResultInfo <int> > SaveOutCategoryAsync(OutCategoryInfo info)
        {
            //获取原有列表
            var list = await BasicDAL.Inst.QueryOutCategoryAsync(this.LoginInfo.FamilyID);

            //判断名称是否已被使用
            if (list.Exists(m => m.ID != info.ID && m.Name == info.Name))
            {
                return(new ResultInfo <int>(false, this.Res.Bas.NameExisted, -1));
            }

            //尝试查找原数据
            var model = list.Find(m => m.ID == info.ID);

            //新建
            if (model == null)
            {
                model          = new OutCategory();
                model.FamilyID = this.LoginInfo.FamilyID;
            }

            model.Name     = info.Name;
            model.IsActive = info.IsActive;
            model.Remark   = info.Remark;

            //设置创建者/更新者字段值
            this.SetCreateUpdateFields(model);

            //保存到数据库
            await BasicDAL.Inst.SaveOutCategoryAsync(model);

            return(new ResultInfo <int>(true, Res.Gen.OK, model.ID));
        }
예제 #2
0
        /// <summary>
        /// 保存支出分类
        /// </summary>
        /// <param name="model">支出分类</param>
        /// <returns>主键ID</returns>
        public async Task <int> SaveOutCategoryAsync(OutCategory model)
        {
            using (IOSysContext db = new IOSysContext())
            {
                //更新
                if (model.ID > 0)
                {
                    db.Entry(model).State = EntityState.Modified;
                }
                //新增
                else
                {
                    await db.OutCategorys.AddAsync(model);
                }

                await db.SaveChangesAsync();
            }

            //移除缓存
            var key = string.Format(SysConst.Cache.OutCategoryList_FamilyID, model.FamilyID);

            CacheHelper.Remove(key);

            return(model.ID);
        }
예제 #3
0
        /// <summary>
        /// 删除支出分类
        /// </summary>
        /// <param name="model">支出分类</param>
        public async Task DeleteOutCategoryAsync(OutCategory model)
        {
            using (IOSysContext db = new IOSysContext())
            {
                db.OutCategorys.Remove(model);
                await db.SaveChangesAsync();
            }

            //移除缓存
            var key = string.Format(SysConst.Cache.OutCategoryList_FamilyID, model.FamilyID);

            CacheHelper.Remove(key);
        }
예제 #4
0
        /// <summary>
        /// 查询支出明细列表
        /// </summary>
        /// <param name="req">条件</param>
        /// <returns></returns>
        public async Task <PageAmountList <OutRecordListInfo> > QueryOutRecordAsync(OutRecordReq req)
        {
            //查询
            var taskModel         = ReportDAL.Inst.QueryOutRecordAsync(this.LoginInfo.FamilyID, req); //明细
            var taskOutCategory   = BasicDAL.Inst.QueryOutCategoryAsync(this.LoginInfo.FamilyID);     //分类
            var taskOutType       = BasicDAL.Inst.QueryOutTypeAsync(this.LoginInfo.FamilyID);         //类型
            var taskAmountAccount = BasicDAL.Inst.QueryAmountAccountAsync(this.LoginInfo.FamilyID);   //账户

            var lstModel         = await taskModel;                                                   //明细
            var lstOutCategory   = await taskOutCategory;                                             //分类
            var lstOutType       = await taskOutType;                                                 //类型
            var lstAmountAccount = await taskAmountAccount;                                           //账户

            var list = new List <OutRecordListInfo>();
            var seq  = req.GetSkip() + 1;

            foreach (var model in lstModel)
            {
                var item = new OutRecordListInfo();
                list.Add(item);

                //类型
                var outType = lstOutType.Find(m => m.ID == model.OutTypeID);

                //分类
                OutCategory outCategory = null;
                if (outType != null)
                {
                    outCategory = lstOutCategory.Find(m => m.ID == outType.OutCategoryID);
                }

                //账户
                var amountAccount = lstAmountAccount.Find(m => m.ID == model.AmountAccountID);

                item.Seq               = seq++;
                item.ID                = model.ID;
                item.OutDate           = model.OutDate;
                item.OutCategoryName   = outCategory != null ? outCategory.Name : "";
                item.OutTypeName       = outType != null ? outType.Name : "";
                item.AmountAccountName = amountAccount != null ? amountAccount.Name : "";
                item.Amount            = model.Amount;
                item.Remark            = model.Remark;
            }

            return(new PageAmountList <OutRecordListInfo>(list, lstModel.TotalRecord, lstModel.TotalAmount));
        }
예제 #5
0
        /// <summary>
        /// 获取指定日期的支出信息
        /// </summary>
        /// <param name="date">日期</param>
        /// <returns></returns>
        public async Task <List <OutPutListInfo> > QueryOutPutAsync(DateTime date)
        {
            //查询数据库记录
            var taskModel         = InOutDAL.Inst.QueryOutPutAsync(this.LoginInfo.FamilyID, date);
            var taskOutCategory   = BasicDAL.Inst.QueryOutCategoryAsync(this.LoginInfo.FamilyID);
            var taskOutType       = BasicDAL.Inst.QueryOutTypeAsync(this.LoginInfo.FamilyID);
            var taskAmountAccount = BasicDAL.Inst.QueryAmountAccountAsync(this.LoginInfo.FamilyID);

            var lstModel         = await taskModel;
            var lstOutCategory   = await taskOutCategory;
            var lstOutType       = await taskOutType;
            var lstAmountAccount = await taskAmountAccount;

            //结果
            var lstInfo = new List <OutPutListInfo>();

            foreach (var model in lstModel)
            {
                var info = new OutPutListInfo();
                lstInfo.Add(info);

                //支出类型
                var outType = lstOutType.Find(m => m.ID == model.OutTypeID);
                //支出分类
                OutCategory outCategory = outType != null?lstOutCategory.Find(m => m.ID == outType.OutCategoryID) : null;

                //账户信息
                var amountAccount = lstAmountAccount.Find(m => m.ID == model.AmountAccountID);

                info.ID = model.ID;
                info.OutCategoryName   = outCategory != null ? outCategory.Name : string.Empty;
                info.OutTypeName       = outType != null ? outType.Name : string.Empty;
                info.AmountAccountName = amountAccount != null ? amountAccount.Name : string.Empty;
                info.Amount            = model.Amount;
            }

            return(lstInfo);
        }