示例#1
0
            RecordOfSales ToRecordOfSales(Stockist stockist, IEnumerable <Subtransaction> subtransactions)
            {
                var stockistsSubtransactions = subtransactions.Where(x => x.Product.ProductCode.StartsWith(stockist.StockistCode)).ToList();
                var rate = decimal.Divide(stockist.Commission.Rate, 100);

                if (stockistsSubtransactions.Count == 0)
                {
                    return(new RecordOfSales
                    {
                        StockistCode = stockist.StockistCode,
                        FirstName = stockist.Details.FirstName,
                        Name = stockist.Details.DisplayName,
                        EmailAddress = stockist.Details.EmailAddress,
                        CustomMessage = string.Empty,
                        StartDate = start,
                        EndDate = end,
                        Rate = rate,
                        Sales = new List <Sale>().AsReadOnly(),
                        Subtotal = 0,
                        CommissionTotal = 0,
                        Total = 0,
                    });
                }
                else
                {
                    var sales      = stockistsSubtransactions.Select(x => SaleMapper.FromTransaction(x, rate)).ToList();
                    var subtotal   = sales.Sum(x => x.Subtotal);
                    var commission = sales.Sum(x => x.Commission);

                    return(new RecordOfSales
                    {
                        StockistCode = stockist.StockistCode,
                        FirstName = stockist.Details.FirstName,
                        Name = stockist.Details.DisplayName,
                        EmailAddress = stockist.Details.EmailAddress,
                        CustomMessage = string.Empty,
                        StartDate = start,
                        EndDate = end,
                        Rate = rate,
                        Sales = sales,
                        Subtotal = subtotal,
                        CommissionTotal = commission,
                        Total = subtotal + commission,
                    });
                }
            }