public async Task <FilterPiDetailDto> GetPiesByFiltersList(FilterPiDetailDto filterPiDetailDto) { var asQueryable = piDetailRepository .GetEntities() .Where(x => x.PeroformaInvoiceId == filterPiDetailDto.PiId) .AsQueryable(); //if (filterPiDetailDto.SearchText != null || !(string.IsNullOrWhiteSpace(filterPiDetailDto.SearchText))) //{ // asQueryable = asQueryable.Where(x => x.PiCode.Contains(filterPiDto.SearchText.Trim())); //} var count = (int)Math.Ceiling(asQueryable.Count() / (double)filterPiDetailDto.TakeEntity); var pager = Pager.Builder(count, filterPiDetailDto.PageId, filterPiDetailDto.TakeEntity); var list = asQueryable.Paging(pager).ToList(); filterPiDetailDto.PiDetailDtos = new List <PiDetailDto>(); foreach (var item in list) { filterPiDetailDto.PiDetailDtos.Add(new PiDetailDto() { BrokerId = item.BrokerId, PiId = item.PeroformaInvoiceId, DepositDate = item.DepositDate, DepositPrice = item.DepositPrice, Id = item.Id, IsSold = item.IsSold }); } return(filterPiDetailDto.SetPiDetails(filterPiDetailDto.PiDetailDtos).SetPaging(pager)); }
public async Task <FilterPiDto> GetPiesByFiltersList(FilterPiDto filterPiDto) { IQueryable <PeroformaInvoice> asQueryable; if (filterPiDto.IsRemaindPriceZero == "1") { asQueryable = piRepository .GetEntities() .Where(x => x.TotalPrice != (piDetailRepository.GetEntities() .Where(d => d.PeroformaInvoiceId == x.Id && !d.IsDelete) .Sum(x => x.DepositPrice))) .AsQueryable(); } else { asQueryable = piRepository .GetEntities() .AsQueryable(); } asQueryable = asQueryable.OrderByDescending(x => x.PiDate); var count = (int)Math.Ceiling(asQueryable.Count() / (double)filterPiDto.TakeEntity); var pager = Pager.Builder(count, filterPiDto.PageId, filterPiDto.TakeEntity); var peroformaInvoices = await asQueryable.Paging(pager).ToListAsync(); filterPiDto.PiRemaind = new List <PiRemaindDto>(); foreach (var item in peroformaInvoices) { var payDetails = await piDetailService.GetTotalAamountReceivedFromTheCustomer(item.Id); var customer = item.CommodityCustomerId != null ? await customerRepository.GetEntityById((long)item.CommodityCustomerId) : null; var customerName = customer == null ? null : customer.Name; //if (PayDetails < item.TotalPrice) //{ filterPiDto.PiRemaind.Add(new PiRemaindDto() { BasePrice = item.BasePrice, PiCode = item.PiCode, TotalPrice = item.TotalPrice, PiDate = item.PiDate, RemaindPrice = item.TotalPrice - payDetails, SoldPrice = payDetails, Id = item.Id, CustomerName = customerName }); //} } if (filterPiDto.SearchText != null || !(string.IsNullOrWhiteSpace(filterPiDto.SearchText))) { filterPiDto.PiRemaind = filterPiDto.PiRemaind.Where(x => x.PiCode.Contains(filterPiDto.SearchText.Trim()) || x.TotalPrice.ToString().Contains(filterPiDto.SearchText.Trim()) || x.RemaindPrice.ToString().Contains(filterPiDto.SearchText.Trim())).ToList(); } return(filterPiDto.SetPies(filterPiDto.PiRemaind).SetPaging(pager)); }
public async Task <FilterCurrSalePiDto> GetListExDecSalesByPiDetailId(FilterCurrSalePiDto filterDto) { var piDetailIdList = _piDetailRepository .GetEntities() .Where(x => x.PeroformaInvoiceId == filterDto.Id) .Select(x => x.Id); var asQueryable = _currPiDetailRepository .GetEntities() .Include(X => X.CurrencySale) .Where(x => piDetailIdList.Contains((long)x.PeroformaInvoiceDetailId)) .AsQueryable(); //var listOfRoleId = user.Roles.Select(r => r.RoleId); //var roles = db.Roles.Where(r => listOfRoleId.Contains(r.RoleId)); var count = (int)Math.Ceiling(asQueryable.Count() / (double)filterDto.TakeEntity); var pager = Pager.Builder(count, filterDto.PageId, filterDto.TakeEntity); var list = await asQueryable.Paging(pager).ToListAsync(); filterDto.CurrencySaleDetailPi = new List <CurrencySaleDetailPiDto>(); foreach (var item in list) { var currencySaleItem = await _currencySaleRepository.GetCurrencyByIdIncludesCustomerAndBroker(item.CurrencySaleId); var peroformaInvoice = await _piRepository.GetEntityById(filterDto.Id); filterDto.CurrencySaleDetailPi.Add(new CurrencySaleDetailPiDto() { Id = item.Id, BrokerName = currencySaleItem.Broker.Name + " (" + currencySaleItem.Broker.Title + ") ", CurrSaleDate = currencySaleItem.SaleDate, CustomerName = currencySaleItem.Customer.Name, Price = item.Price, ProfitLossAmount = item.ProfitLossAmount, PiCode = peroformaInvoice.PiCode, SellPriceCurrency = item.CurrencySale.SalePricePerUnit, SellPriceCommodity = peroformaInvoice.BasePrice }); } return(filterDto.SetCurrencySaleExDec(filterDto.CurrencySaleDetailPi).SetPaging(pager)); }