Example #1
0
        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
            });
        }
Example #3
0
        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);
        }