public async Task <FilterPiDetailCompleteDto> GetPiPayList(FilterPiDetailCompleteDto filterPiDetailDto) { var asQueryable = piDetailRepository .GetEntities() .AsQueryable(); #region Filter - From To Sale Date if (!string.IsNullOrWhiteSpace(filterPiDetailDto.FromDateSale) && !string.IsNullOrWhiteSpace(filterPiDetailDto.ToDateSale)) { var from = Convert.ToDateTime(filterPiDetailDto.FromDateSale); var to = Convert.ToDateTime(filterPiDetailDto.ToDateSale); asQueryable = asQueryable.Where(x => x.DepositDate >= from && x.DepositDate < to); //currencyAsQueryable = currencyAsQueryable.Where(x => x.SaleDate < DateTime.Today); } #endregion asQueryable = asQueryable.OrderByDescending(x => x.DepositDate); 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 <PiDetailCompleteDto>(); foreach (var item in list) { var broker = await _brokerRepository.GetEntityById(item.BrokerId); var pi = await piRepository.GetEntityById(item.PeroformaInvoiceId); var customer = pi.CommodityCustomerId != null ? await customerRepository.GetEntityById((long)pi.CommodityCustomerId) : null; var customerName = customer == null ? null : customer.Name; filterPiDetailDto.PiDetailDtos.Add(new PiDetailCompleteDto() { BrokerId = item.BrokerId, PiId = item.PeroformaInvoiceId, DepositDate = item.DepositDate, DepositPrice = item.DepositPrice, Id = item.Id, IsSold = item.IsSold, BrokerName = broker.Name + "(" + broker.Title + ")", PiCode = pi.PiCode, TotalPrice = pi.TotalPrice, CustomerName = customerName }); } if (filterPiDetailDto.SearchText != null || !(string.IsNullOrWhiteSpace(filterPiDetailDto.SearchText))) { filterPiDetailDto.PiDetailDtos = filterPiDetailDto.PiDetailDtos.Where(x => x.PiCode.Contains(filterPiDetailDto.SearchText.Trim()) || x.BrokerName.Contains(filterPiDetailDto.SearchText.Trim()) || x.DepositPrice.ToString().Contains(filterPiDetailDto.SearchText.Trim()) || x.TotalPrice.ToString().Contains(filterPiDetailDto.SearchText)) //|| x.CustomerName.Contains(filterPiDetailDto.SearchText.Trim()) .ToList(); } return(filterPiDetailDto.SetPiDetails(filterPiDetailDto.PiDetailDtos).SetPaging(pager)); }
public async Task <BrokerDto> GetBrokerById(long id) { var broker = await brokerRepository.GetEntityById(id); if (broker == null) { return(null); } return(new BrokerDto { Id = broker.Id, Name = broker.Name.Trim().SanitizeText(), Tel = broker.Tel.Trim().SanitizeText(), Address = broker.Address.Trim().SanitizeText(), Description = broker.Description.Trim().SanitizeText(), ServiceChargeAccount = broker.ServiceChargeAccount, ServiceChargeCash = broker.ServiceChargeCash, Title = broker.Title }); }
public async Task <CurrencySaleDto> GetViewDataFromCurrency(ICurrencySaleRepository saleRepository, ICurrencySalePiDetailRepository salePiDetailRepository, CurrencySale currencySale) { var currencySaleItem = await saleRepository.GetCurrencyByIdIncludesBroker(currencySale.Id); var sumProfit = 0; // await salePiDetailRepository.GetSumProfitLost(currencySale.Id); var broker = await _brokerRepository.GetEntityById(currencySale.CustomerId); var filterDto = new CurrencySaleDto { Id = currencySale.Id, BrokerName = currencySaleItem.Broker.Name + " (" + currencySaleItem.Broker.Title + ") ", CurrSaleDate = currencySaleItem.SaleDate, CustomerName = broker.Name, Price = currencySale.SalePrice, ProfitLossAmount = sumProfit, SalePricePerUnit = currencySale.SalePricePerUnit, TransferPrice = currencySale.TransferPrice, TransferType = (CurrencyTransferType)currencySale.TransferType, CurrencyType = (CurrencyType)currencySale.CurrencyType }; return(filterDto); }