Exemplo n.º 1
0
        private IEnumerable <GenevaSmaNewAssetsDataModel> BuildNewAssetsData()
        {
            const LkuRateType.RateType             rateType       = LkuRateType.RateType.NewAssets;
            const LkuCommissionType.CommissionType commissionType = LkuCommissionType.CommissionType.SMA;
            RegionalDirectorRateInfoDataModel      rdRateInfo;

            try
            {
                var naItems = new List <GenevaSmaNewAssetsDataModel>();

                foreach (GenevaSmaAssetsDataModel item in _genevaSales)
                {
                    bool calcCommission      = ((item.Amount > 0) && (item.TranDesc == "NewCash" || item.TranDesc == "NewAsset"));
                    bool isStartBeforePeriod = ((item.PortStartDate < item.TradeDate) &&
                                                (item.PortStartDate > new DateTime(1900, 1, 1)));

                    var rateInfo = GetRateInfo(item.InternalMarketingPerson, item.Strategy);
                    var theRate  = rateInfo?.NewAssetRate ?? 0.0m;

                    var na = new GenevaSmaNewAssetsDataModel()
                    {
                        InternalMarketingPerson = item.InternalMarketingPerson,
                        Portfolio           = item.Portfolio,
                        PortShortName       = item.PortShortName,
                        ConsultantFirm      = item.ConsultantFirm,
                        ConsultantName      = FindAumItemByPortfolioCode(item.Portfolio.Trim()).ConsultantName,
                        Strategy            = item.Strategy,
                        PortStartDate       = item.PortStartDate,
                        TradeDate           = item.TradeDate,
                        TranType            = item.TranType,
                        InvCode             = item.InvCode,
                        Quantity            = item.Quantity,
                        Price               = item.Price,
                        Amount              = item.Amount,
                        AmountRemoved       = null,
                        CommissionAmount    = calcCommission ? (item.Amount * theRate) : 0.0m,
                        CommissionRate      = theRate,
                        SalesTeam           = item.SalesTeam,
                        IsStartBeforePeriod = isStartBeforePeriod ? "TRUE" : "FALSE"
                    };
                    naItems.Add(na);
                }
                return(naItems.OrderBy(c => c.InternalMarketingPerson).ThenBy(c => c.ConsultantFirm).ThenBy(c => c.Portfolio));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Exemplo n.º 2
0
        private IEnumerable <GenevaSmaNewAssetsDataModel> BuildNewAssetsData()
        {
            const LkuRateType.RateType             rateType       = LkuRateType.RateType.NewAssets;
            const LkuCommissionType.CommissionType commissionType = LkuCommissionType.CommissionType.SMA;
            var naItems = new List <GenevaSmaNewAssetsDataModel>();

            foreach (GenevaSmaAssetsDataModel item in NewAssetsItems)
            {
                RegionalDirectorRateInfoDataModel rdRateInfo = RegionalDirectorRateInfo(item.InternalMarketingPerson, (int)rateType, (int)commissionType);

                if (rdRateInfo != null)
                {
                    rdRateInfo.Rate = item.InternalMarketingPerson.IndexOf(',') > 0
                                          ? rdRateInfo.Rate / 2
                                          : rdRateInfo.Rate;

                    bool calcCommission      = ((item.Amount > 0) && (item.TranDesc == "NewCash" || item.TranDesc == "NewAsset"));
                    bool isStartBeforePeriod = ((item.PortStartDate < item.TradeDate) &&
                                                (item.PortStartDate > new DateTime(1900, 1, 1)));


                    var na = new GenevaSmaNewAssetsDataModel()
                    {
                        InternalMarketingPerson = item.InternalMarketingPerson,
                        Portfolio                     = item.Portfolio,
                        PortShortName                 = item.PortShortName,
                        PortStartDate                 = item.PortStartDate,
                        TradeDate                     = item.TradeDate,
                        TranType                      = item.TranType,
                        Strategy                      = item.Strategy,
                        ConsultantFirm                = item.ConsultantFirm,
                        ConsultantName                = FindAumItemByPortfolioCode(item.Portfolio).ConsultantName,
                        Ticker                        = item.InvCode,
                        Security                      = item.Security,
                        Quantity                      = item.Quantity,
                        Price                         = item.Price,
                        CommissionRate                = rdRateInfo.Rate,
                        CommissionAmount              = calcCommission ? (item.Amount * rdRateInfo.Rate) : 0.0m,
                        IsStartBeforePeriod           = isStartBeforePeriod ? "TRUE" : "FALSE",
                        SumTradeAmountByDate          = null,
                        SumTradeAmountByPortfolioCode = null,
                        IsValid                       = calcCommission ? "TRUE" : "FALSE"
                    };
                    naItems.Add(na);
                }
            }
            return(naItems);
        }