public async Task <FilterCurrSalePiDto> GetListPiSalesByCurrencyId(FilterCurrSalePiDto filterDto) { var asQueryable = _currPiDetailRepository .GetEntities() .Include(X => X.CurrencySale) .Where(x => x.CurrencySaleId == filterDto.Id) .AsQueryable(); if (filterDto.SearchText != null || !(string.IsNullOrEmpty(filterDto.SearchText))) { asQueryable = asQueryable.Include(x => x.PeroformaInvoiceDetails) .Include(c => c.PeroformaInvoiceDetails.PeroformaInvoice) .Where(d => d.PeroformaInvoiceDetails.PeroformaInvoice.PiCode.Contains(filterDto.SearchText.Trim())); } 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 piDetail = await _piDetailRepository.GetEntityById(item.PeroformaInvoiceDetailId ?? 1); var pi = await _piRepository.GetEntityById(piDetail.PeroformaInvoiceId); 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 = pi.PiCode, PiDetailPrice = piDetail.DepositPrice, SellPriceCurrency = item.CurrencySale.SalePricePerUnit, SellPriceCommodity = pi.BasePrice }); } return(filterDto.SetCurrencySaleExDec(filterDto.CurrencySaleDetailPi).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)); }
public async Task <IActionResult> GetFilterPiByPiDetailId([FromQuery] FilterCurrSalePiDto filterPiDto) { var piDetail = await _saleDetailPiService.GetListExDecSalesByPiDetailId(filterPiDto); return(JsonResponseStatus.Success(piDetail)); }