示例#1
0
        public async Task <FieldWorkResponseModel> GetFieldWorkList()
        {
            FieldWorkResponseModel fieldWorkResponseModel = new FieldWorkResponseModel();
            List <FieldWorkModel>  fieldWorkModels        = new List <FieldWorkModel>();
            List <WeightDetail>    weightDetail           = await _agricultureRepository.GetFieldWorkList();

            List <UserPriceDetail> userPriceDetail = await _priceRepository.GetUserPriceDetailList();

            foreach (var item in weightDetail.OrderByDescending(i => i.Date))
            {
                fieldWorkModels.Add(new FieldWorkModel()
                {
                    FullName   = item.User.FirstName + " " + item.User.LastName,
                    Weight     = item.Weight,
                    WeightType = item.WeightType,
                    Date       = item.Date,
                    UserId     = item.UserId,
                    Id         = item.Id,
                    // CreditAmount = userPriceDetail.Sum(s => s.CreditAmount) ?? 0,
                    // DebitAmount = userPriceDetail.Sum(s => s.DebitAmount) ?? 0
                });
            }
            fieldWorkResponseModel.DataList       = fieldWorkModels;
            fieldWorkResponseModel.IsSuccess      = true;
            fieldWorkResponseModel.LastAccessedTs = weightDetail.Max(i => i.Date);
            fieldWorkResponseModel.TotalStock     = weightDetail.Sum(i => i.Weight);
            fieldWorkResponseModel.StockAmount    = weightDetail.Sum(i => i.Weight * i.Price.UnitPrice);
            fieldWorkResponseModel.CreditAmount   = userPriceDetail.Sum(s => s.CreditAmount) ?? 0;
            fieldWorkResponseModel.DebitAmount    = userPriceDetail.Sum(s => s.DebitAmount) ?? 0;
            return(fieldWorkResponseModel);
        }
示例#2
0
        public async Task <FieldWorkResponseModel> SearchFieldWork(SearchModel searchModel)
        {
            FieldWorkResponseModel fieldWorkResponseModel = new FieldWorkResponseModel();
            List <FieldWorkModel>  fieldWorkModels        = new List <FieldWorkModel>();
            List <WeightDetail>    result = await _agricultureRepository.GetFieldWorkList();

            if (searchModel.UserId > 0)
            {
                result = result.Where(f => f.UserId == searchModel.UserId).ToList();
            }
            if (searchModel.StartDate != DateTime.MinValue)
            {
                result = result.Where(f => f.Date >= ConvertDate(searchModel.StartDate)).ToList();
            }
            if (searchModel.EndDate != DateTime.MinValue)
            {
                result = result.Where(f => f.Date <= ConvertDate(searchModel.EndDate.AddDays(1).AddTicks(-1))).ToList();
            }

            List <UserPriceDetail> userPriceDetail = await _priceRepository.GetUserPriceDetailByUserId(searchModel.UserId);

            foreach (var item in result.OrderByDescending(i => i.Date))
            {
                fieldWorkModels.Add(new FieldWorkModel()
                {
                    FullName   = item.User.FullName,
                    Weight     = item.Weight,
                    WeightType = item.WeightType,
                    Date       = item.Date,
                    UserId     = item.UserId,
                    Id         = item.Id,
                    // CreditAmount = userPriceDetail.Sum(s => s.CreditAmount) ?? 0,
                    // DebitAmount = userPriceDetail.Sum(s => s.DebitAmount) ?? 0
                });
            }

            fieldWorkResponseModel.DataList       = fieldWorkModels;
            fieldWorkResponseModel.IsSuccess      = true;
            fieldWorkResponseModel.LastAccessedTs = result.Max(i => i.Date);
            fieldWorkResponseModel.TotalStock     = result.Sum(i => i.Weight);
            fieldWorkResponseModel.StockAmount    = result.Sum(i => i.Weight * i.Price.UnitPrice);
            fieldWorkResponseModel.DebitAmount    = userPriceDetail.Sum(i => i.DebitAmount) ?? 0;
            fieldWorkResponseModel.CreditAmount   = userPriceDetail.Sum(s => s.CreditAmount) ?? 0;

            return(fieldWorkResponseModel);
        }
示例#3
0
        public async Task <List <FieldWorkModel> > SearchFieldWorkByUserId(int id, int viewTypeId)
        {
            FieldWorkResponseModel fieldWorkResponseModel = new FieldWorkResponseModel();
            List <FieldWorkModel>  fieldWorkModels        = new List <FieldWorkModel>();
            List <WeightDetail>    weightDetail           = await _agricultureRepository.SearchFieldWorkByUserId(id);

            if (viewTypeId == 1)
            {
                foreach (var item in weightDetail.OrderByDescending(i => i.Date))
                {
                    fieldWorkModels.Add(new FieldWorkModel()
                    {
                        FullName   = item.User.FullName,
                        Weight     = item.Weight,
                        WeightType = item.WeightType,
                        Date       = item.Date,
                        UserId     = item.UserId,
                        Id         = item.Id
                    });
                }
            }
            else
            {
                foreach (var item in weightDetail.GroupBy(i => i.UserId))
                {
                    List <UserPriceDetail> userPriceDetail = await _priceRepository.GetUserPriceDetailByUserId(item.Key);

                    fieldWorkModels.Add(new FieldWorkModel()
                    {
                        FullName     = item.FirstOrDefault().User.FullName,
                        Weight       = item.Sum(s => s.Weight),
                        WeightType   = item.FirstOrDefault().WeightType,
                        Date         = item.FirstOrDefault().Date,
                        UserId       = item.Key,
                        CreditAmount = userPriceDetail.Sum(s => s.CreditAmount) ?? 0,
                        DebitAmount  = userPriceDetail.Sum(s => s.DebitAmount) ?? 0,
                        StockAmount  = item.Sum(s => s.Weight * s.Price.UnitPrice),
                        TotalStock   = item.Sum(s => s.Weight)
                    });
                }
            }
            return(fieldWorkModels);
        }