Example #1
0
 internal static ClientRateComponent CreateClientRateComponent(LineItemQuote lineItemQuote)
 {
     return(new ClientRateComponent
     {
         ClientRate = lineItemQuote.ClientRate,
         CostRateComponent = new CostRateComponent
         {
             SpotRate = lineItemQuote.SpotRate,
             ForwardPoints = lineItemQuote.ForwardPoints
         }
     });
 }
Example #2
0
        public LineItemQuote GetRepurchaseLineItemQuote(decimal itemRate, ClientRateComponent relatedClientRateComponent)
        {
            var lineItemQuote = new LineItemQuote
            {
                SpotRate      = relatedClientRateComponent.CostRateComponent.SpotRate,
                ForwardPoints = relatedClientRateComponent.CostRateComponent.ForwardPoints,
                ClientRate    = itemRate != 0 ? CreateRateFromMultipliedValue(relatedClientRateComponent.ClientRate.RateConvention,
                                                                              itemRate,
                                                                              relatedClientRateComponent.ClientRate.UnitCurrency,
                                                                              relatedClientRateComponent.ClientRate.RefCurrency,
                                                                              relatedClientRateComponent.ClientRate.MetaData.MultiplierDirect,
                                                                              relatedClientRateComponent.ClientRate.MetaData.NumberOfDecimalsDirectMultiplied,
                                                                              relatedClientRateComponent.ClientRate.MetaData.NumberOfDecimalsIndirectMultiplied) : relatedClientRateComponent.ClientRate
            };

            return(lineItemQuote);
        }
Example #3
0
        private static LineItemQuote GetLineItemQuoteFromDataReader(SqlDataReader reader)
        {
            var lineItemQuote = new LineItemQuote();

            PopulateQuoteFromDataReader(lineItemQuote, reader);

            var tradeCurrency = CurrencyCache.Instance.GetById(Convert.ToInt32(reader["Currency_ID"]));

            var settlementCurrency = CurrencyCache.Instance.GetById(Convert.ToInt32(reader["SettlementCurrency_ID"]));

            var rateConventionSpotRate      = (RateConvention)Convert.ToInt32(reader["SpotRateIsPer"]);
            var rateConventionClientRate    = (RateConvention)Convert.ToInt32(reader["ClientRateIsPer"]);
            var rateConventionForwardPoints = (RateConvention)Convert.ToInt32(reader["ForwardPointsIsPer"]);

            if (rateConventionClientRate == RateConvention.Default)
            {
                rateConventionClientRate = rateConventionSpotRate;
            }

            var nDecIndirect = Convert.ToInt32(reader["SpotRateNDecPer"]);
            var nDecDirect   = Convert.ToInt32(reader["SpotRateNDecIn"]);

            lineItemQuote.SpotRate = CreateRateFromUnmultipliedValue(rateConventionSpotRate, Convert.ToDecimal(reader["SpotRate"]),
                                                                     settlementCurrency, tradeCurrency,
                                                                     Convert.ToInt32(reader["RateMultiplier"]), nDecDirect, nDecIndirect);

            lineItemQuote.ClientRate = CreateRateFromMultipliedValue(rateConventionClientRate, Convert.ToDecimal(reader["ClientRate"]),
                                                                     settlementCurrency, tradeCurrency,
                                                                     Convert.ToInt32(reader["RateMultiplier"]), nDecDirect, nDecIndirect);

            lineItemQuote.ForwardPoints = CalculateForwardPoints(DbReadingUtility.NullableDecimal(reader["ForwardPoints"]),
                                                                 rateConventionSpotRate, rateConventionForwardPoints, lineItemQuote);

            lineItemQuote.MarkupPct      = ConvertCctMarkupInTenthsOfPercentToMarkupInPercent(DbReadingUtility.NullableDecimal(reader["Spread"]));
            lineItemQuote.StartValueDate = DbReadingUtility.NullableDateTime(reader["ForwardStartDate"]);
            lineItemQuote.EndValueDate   = DbReadingUtility.NullableDateTime(reader["ForwardEndDate"]);

            return(lineItemQuote);
        }
Example #4
0
 private static decimal CalculateForwardPoints(decimal forwardPoints, RateConvention rateConventionSpotRate, RateConvention rateConventionForwardPoints, LineItemQuote lineItem)
 {
     return(rateConventionForwardPoints != rateConventionSpotRate
         ? lineItem.SpotRate.NewValue(1 / lineItem.ClientRate - 1 / (lineItem.ClientRate - forwardPoints)).RoundedValue
         : forwardPoints);
 }