Files
zszq-trs/YLErpDAL/Modules/TradeModule/OrderModule/TradeSavePreHandler_Snowball.cs
T
2024-05-09 14:06:26 +08:00

52 lines
1.7 KiB
C#

namespace YLErp.Modules.TradeModule.OrderModule
{
partial class TradeSavePreHandler
{
private static void CheckSnowball(trade req)
{
var snowball = req.trade_snowball;
if (snowball.PrepaymentUsed)
{
if (snowball.SpreadStrikeAtMaturity1 == null)
{
throw new ServiceException("敲入执行价格 必须填写");
}
snowball.KOObservationDates = snowball.KOObservationDates?.Trim(new[] { ' ', ';' });
if (string.IsNullOrWhiteSpace(snowball.KOObservationDates))
{
throw new ServiceException("敲出观察频率 必须填写");
}
req.Strike = snowball.SpreadStrikeAtMaturity1;
snowball.IsAnnualized2 = false;
snowball.AnnualizeFactor2 = 1;
req.MetaDic[nameof(snowball.AnnualizeFactor2)] = "/";
snowball.KOPayoffType = KOPayoffTypeEnum.Rebate;
snowball.KIPayoffType = KIPayoffTypeEnum.Prepayment;
}
else
{
if (!snowball.IsAnnualized2 || !snowball.AnnualizeFactor2.HasValue)
{
snowball.AnnualizeFactor2 = 1;
req.MetaDic[nameof(snowball.AnnualizeFactor2)] = "/";
}
if (snowball.KIPayoffType == KIPayoffTypeEnum.None)
{
req.Strike = req.IsMoneynessOptionData ? 1 : req.SpotPrice;
}
else
{
req.Strike = snowball.SpreadStrikeAtMaturity1;
}
}
}
}
}