Files
zszq-trs/YLErpDAL/Modules/SuperviseReportModule/SAC/Model/OptionConfirmationModel.cs
T
2024-05-09 14:06:26 +08:00

664 lines
35 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.ComponentModel;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
/// <summary>
/// 期权交易确认书
/// </summary>
public class OptionConfirmationModel : ReportBaseModel
{
/// <summary>
/// 主协议编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("MasterAgrmtNo", "主协议编号(双方约定)", "100", true, "校验规则:双方约定;")]
public string MasterAgrmtNo { get; set; }
/// <summary>
/// 补充协议编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("SupAgrmtNo", "补充协议编号(双方约定)", "100", true, "校验规则:双方约定;")]
public string SupAgrmtNo { get; set; }
/// <summary>
/// 操作标识
/// <para>长度:1</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="OptFlagsEnum"/></para>
/// </summary>
[XmlIgnore]
[SacDescription("OperationType", "操作标识", "1", true, "")]
public OptFlagsEnum OperationType { get; set; }
/// <summary>
/// 交易确认书编号
/// <para>长度:32</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:补正时必填</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(OperationType), ConditionValue = "A", CheckHandleNameArr = new[] { "B" })]
[CheckConditionStringNEQValue(ConditionName = nameof(OperationType), ConditionValue = "A", CheckHandleNameArr = new[] { "A" })]
[CheckStringMaxLength(MaxLength = 32, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 32, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ConfirmationID", "交易确认书编号", "32", false, "校验规则:补正时必填;")]
public string ConfirmationID { get; set; }
/// <summary>
/// 交易确认书编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号(双方约定)", "100", true, "校验规则:双方约定;")]
public string ConfirmationNo { get; set; }
/// <summary>
/// 交易确认书类型
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.ReportTypeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("ConfirmationType", "交易确认书类型", "2", true, "")]
public string ConfirmationType { get; set; }
/// <summary>
/// 填报方角色
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.FillPartyMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("FillParty", "填报方角色", "2", true, "")]
public string FillParty { get; set; }
/// <summary>
/// 期权卖方
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.OptionTraderMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "01", "02" })]
[DefaultValue("")]
[SacDescription("OptionSeller", "期权卖方", "2", true, "")]
public string OptionSeller { get; set; }
/// <summary>
/// 期权方向
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.OptionDirectionMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2" })]
[DefaultValue("")]
[SacDescription("OptionDirection", "期权方向", "2", true, "")]
public string OptionDirection { get; set; }
/// <summary>
/// 期权结构类型
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.OptionStructureTypeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2", "4", "5", "6", "7", "99" })]
[DefaultValue("")]
[SacDescription("OptionStructureType", "期权结构类型", "2", true, "")]
public string OptionStructureType { get; set; }
/// <summary>
/// 期权结构
/// <para>长度:2000</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:<see cref="OptionStructureType"/>=其他时,该字段必填</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(OptionStructureType), ConditionValue = "99", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(OptionStructureType), ConditionValue = "99", CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 2000, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("OptionStructure", "期权结构", "2000", false, "校验规则:期权结构类型=其他时,该字段必填;")]
public string OptionStructure { get; set; }
/// <summary>
/// 行权方式
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.ExerciseApproachMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2", "3" })]
[DefaultValue("")]
[SacDescription("ExerciseApproach", "行权方式", "2", true, "")]
public string ExerciseApproach { get; set; }
/// <summary>
/// 起始日
/// <para>长度:10</para>
/// <para>必填:是</para>
/// <para>
/// 说明:交易条款开始执行的日期.
/// 校验规则:1 起始日不能大于到期日日期;
/// 2 必须是yyyy-MM-dd;
/// </para>
/// </summary>
[CheckStringLength(Length = 10)]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd")]
[DefaultValue("")]
[SacDescription("StartDate", "起始日", "10", true, "交易条款开始执行的日期.\r\n校验规则:\r\n1 起始日不能大于到期日日期;\r\n2 必须是yyyy-MM-dd;")]
public string StartDate { get; set; }
/// <summary>
/// 到期日
/// <para>长度:10</para>
/// <para>必填:是</para>
/// <para>
/// 说明:指定交易结束的日期.
/// 校验规则:1 到期日不能小于起始日日期;
/// 2 必须是yyyy-MM-dd;
/// 3 补正时,如果该交易还有未被废除的存续期记录(包括展期,终止数据),到期日字段不能修改;
/// </para>
/// </summary>
[CheckStringLength(Length = 10)]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd")]
[DefaultValue("")]
[SacDescription("DueDate", "到期日", "10", true, "指定交易结束的日期.\r\n校验规则:\r\n1 到期日不能小于起始日日期;\r\n2 必须是yyyy-MM-dd;\r\n3 补正时,如果该交易还有未被废除的存续期记录(包括展期,终止数据),到期日字段不能修改;")]
public string DueDate { get; set; }
/// <summary>
/// 结算日
/// <para>长度:10</para>
/// <para>必填:否</para>
/// <para>
/// 说明:指定的进行结算金额收付的日期.
/// 校验规则:必须是yyyy-MM-dd.
/// </para>
/// </summary>
[CheckStringLength(Length = 10, Required = false)]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd", Required = false)]
[DefaultValue("")]
[SacDescription("SettlementDate", "结算日", "10", false, "指定的进行结算金额收付的日期.\r\n校验规则:必须是yyyy-MM-dd;")]
public string SettlementDate { get; set; }
/// <summary>
/// 期权费(非年化)%
/// <para>长度:6</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:1 数值处于0~100之间最多两位小数;2 百分比处于0~100之间整数带%</para>
/// </summary>
[CheckStringIntOrPercentRange(
BeforePointMaxLength_Percent = 3,
AfterPointMaxLength_Percent = 0,
MinValue_Percent = 0,
MaxValue_Percent = 100,
BeforePointMaxLength_Number = 3,
AfterPointMaxLength_Number = 2,
MinValue_Number = 0,
MaxValue_Number = 100
)]
[DefaultValue("")]
[SacDescription("OptionPremium", "期权费(非年化)%", "6", true, "校验规则:\r\n1 数值处于0~100之间最多两位小数;\r\n2 百分比处于0~100之间整数带%;")]
public string OptionPremium { get; set; }
/// <summary>
/// 结算货币
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 3)]
[DefaultValue("")]
[SacDescription("Currency", "结算货币", "2", true, "")]
public string Currency { get; set; }
/// <summary>
/// 名义金额(人民币)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>
/// 说明:控件提示:单位元,小数点后保留两位.
/// 校验规则:1 必须两位小数;
/// 2 补正时,如果该交易还有未被废除的存续期记录(包括展期,终止数据),名义本金额(人民币)字段不能修改;
/// </para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("NotinalPrincipleAmt", "名义金额(人民币)", "36,2", true, "控件提示:单位元,小数点后保留两位.\r\n校验规则:\r\n1 必须两位小数;\r\n2 补正时,如果该交易还有未被废除的存续期记录(包括展期,终止数据),名义本金额(人民币)字段不能修改;")]
public string NotinalPrincipleAmt { get; set; }
/// <summary>
/// 清算机构
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.ClearingAgencyMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "3", "4", "5", "99" })]
[DefaultValue("")]
[SacDescription("ClearingAgency", "清算机构", "2", true, "")]
public string ClearingAgency { get; set; }
/// <summary>
/// 交易场所
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.TradingPlaceMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2", "99" })]
[DefaultValue("")]
[SacDescription("TradingPlace", "交易场所", "2", true, "")]
public string TradingPlace { get; set; }
/// <summary>
/// 业务模式类型
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.BusinessModelTypeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "1" })]
[DefaultValue("")]
[SacDescription("BusinessModelType", "业务模式类型", "2", true, "")]
public string BusinessModelType { get; set; }
/// <summary>
/// 交易确认书附件
/// </summary>
[CheckIEnumerableTMinCount(MinCount = 1)]
[XmlElement]
[SacDescription("ConfirmationAttTuple", "交易确认书附件", "", false, "")]
public List<ConfirmationAttModel> ConfirmationAttTuple { get; set; }
/// <summary>
/// 备注
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:填写上述字段或交易确认书中不能包含的信息</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("ConfirmationRemark", "备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
public string ConfirmationRemark { get; set; }
/// <summary>
/// 标的类型
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.UndrlygAssetTypeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "99" })]
[DefaultValue("")]
[SacDescription("UndrlygAssetType", "标的类型", "2", true, "")]
public string UndrlygAssetType { get; set; }
/// <summary>
/// 标的个数
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.UndrlygAssetNoMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("UndrlygAssetNo", "标的个数", "2", true, "")]
public string UndrlygAssetNo { get; set; }
/// <summary>
/// 期权收益计算说明
/// <para>长度:1024</para>
/// <para>必填:是</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024)]
[DefaultValue("")]
[SacDescription("ProfitCalculationInfo", "期权收益计算说明", "1024", true, "")]
public string ProfitCalculationInfo { get; set; }
/// <summary>
/// 备注
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:填写上述字段或交易确认书中不能包含的信息</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("ProfitRemark", "备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
public string ProfitRemark { get; set; }
/// <summary>
/// 标的详情
/// <para>长度:</para>
/// <para>必填:</para>
/// <para>说明:数组结构支持新增多条</para>
/// </summary>
[CheckIEnumerableTMinCount(MinCount = 1)]
[XmlElement]
[SacDescription("UndrlygAssetTuple", "标的详情", "", false, "数组结构支持新增多条;")]
public List<UndrlygAssetModel> UndrlygAssetTuple { get; set; }
/// <summary>
/// 履约担保类型
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.PerformanceGuaranteeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2" })]
[DefaultValue("")]
[SacDescription("PerformanceGuaranteeType", "履约担保类型", "2", true, "")]
public string PerformanceGuaranteeType { get; set; }
/// <summary>
/// 履约担保品提供方
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.PerformanceCollProviderMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2", "3" }, Required = false)]
[DefaultValue("")]
[SacDescription("PerformanceCollProvider", "履约担保品提供方", "2", false, "")]
public string PerformanceCollProvider { get; set; }
/// <summary>
/// 担保品收取方是否可使用担保品
/// <para>长度:5</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.BoolMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "true", "false" }, Required = false)]
[DefaultValue("")]
[SacDescription("PartyUseColl", "担保品收取方是否可使用担保品", "5", false, "")]
public string PartyUseColl { get; set; }
/// <summary>
/// 担保品使用说明
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:当履约保障类型(<see cref="PerformanceGuaranteeType"/>)选择部分担保或全额担保时必填;</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 1024, IgnoreNullOrEmpty = false, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 1024, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("CollInstruction", "担保品使用说明", "1024", false, "校验规则:当履约保障类型选择部分担保或全额担保时必填;")]
public string CollInstruction { get; set; }
/// <summary>
/// 是否计算担保品价值产生利息
/// <para>长度:5</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.BoolMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "true", "false" }, Required = false)]
[DefaultValue("")]
[SacDescription("CalculateCollInterest", "是否计算担保品价值产生利息", "5", false, "")]
public string CalculateCollInterest { get; set; }
/// <summary>
/// 履约担保品初始比率(%)
/// <para>长度:5,2</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 当履约保障类型(<see cref="PerformanceGuaranteeType"/>)选择部分担保或全额担保时必填;
/// 2 请输入0~100之间的最多两位小数的数字;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntMaxLength(BeforePointMaxLength = 5, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 5, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollInitialRatio", "履约担保品初始比率(%)", "5,2", false, "校验规则:\r\n1 当履约保障类型选择部分担保或全额担保时必填;\r\n2 请输入0~100之间的最多两位小数的数字;")]
public string PerformanceCollInitialRatio { get; set; }
/// <summary>
/// 履约担保品追保比率(%)
/// <para>长度:5,2</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 当履约保障类型(<see cref="PerformanceGuaranteeType"/>)选择部分担保或全额担保时必填;
/// 2 请输入0~100之间的最多两位小数的数字;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntMaxLength(BeforePointMaxLength = 5, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 5, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollAddtlRatio", "履约担保品追保比率(%)", "5,2", false, "校验规则:\r\n1 当履约保障类型选择部分担保或全额担保时必填;\r\n2 请输入0~100之间的最多两位小数的数字;")]
public string PerformanceCollAddtlRatio { get; set; }
/// <summary>
/// 履约担保品平仓比率(%
/// <para>长度:5,2</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 当履约保障类型(<see cref="PerformanceGuaranteeType"/>)选择部分担保或全额担保时必填;
/// 2 请输入0~100之间的最多两位小数的数字;
/// 备注:强行平仓时比率
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntMaxLength(BeforePointMaxLength = 5, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 5, AfterPointMaxLength = 2, MaxValue = 100, MinValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollOffsetRatio", "履约担保品平仓比率(%", "5,2", false, "校验规则:\r\n1 当履约保障类型选择部分担保或全额担保时必填;\r\n2 请输入0~100之间的最多两位小数的数字;\r\n备注:强行平仓时比率;")]
public string PerformanceCollOffsetRatio { get; set; }
/// <summary>
/// 备注
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:填写上述字段或交易确认书中不能包含的信息</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("PerformanceGuaranteeRemark", "备注", "1024", false, "校验规则:填写上述字段或交易确认书中不能包含的信息;")]
public string PerformanceGuaranteeRemark { get; set; }
/// <summary>
/// 履约保障书附件附件
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:只支持PDF格式</para>
/// </summary>
[CheckStringEndsWith(EndsWithString = ".pdf", Required = false)]
[DefaultValue("")]
[SacDescription("PerformanceGuaranteeAtt", "履约保障书附件附件", "", false, "校验规则:只支持PDF格式;")]
public string PerformanceGuaranteeAtt { get; set; }
/// <summary>
/// 履约担保品详情
/// <para>长度:</para>
/// <para>必填:</para>
/// <para>说明:校验规则:当履约保障类型(<see cref="PerformanceGuaranteeType"/>)选择部分担保或全额担保时必填;</para>
/// <para>说明:数组结构,支持新增多条</para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckIEnumerableTMinCount(CheckHandleName = "A", MinCount = 1)]
[XmlElement]
[SacDescription("PerformanceCollTuple", "履约担保品详情", "", false, "校验规则:当履约保障类型选择部分担保或全额担保时必填;\r\n数组结构,支持新增多条;")]
public List<PerformanceGuaranteeAttModel> PerformanceCollTuple { get; set; }
/// <summary>
/// 备注
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:填写上述字段或交易确认书中不能包含的信息填写上述字段或交易确认书中不能包含的信息</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("Remark", "备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息填写上述字段或交易确认书中不能包含的信息;")]
public string Remark { get; set; }
/// <summary>
/// 有效名义本金(人民币)
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:有效名义本金是指期权参与率为100%且剔除了年化系数影响之后的名义本金, 校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("ValidNotinalPrincipleAmt", "有效名义本金(人民币)", "36,2", true, "有效名义本金是指期权参与率为100%且剔除了年化系数影响之后的名义本金;\r\n校验规则:保留两位小数;")]
public string ValidNotinalPrincipleAmt { get; set; }
/// <summary>
/// 合规意见书
/// <para>长度:</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:只支持PDF格式;</para>
/// </summary>
[CheckStringEndsWith(EndsWithString = ".pdf", Required = false)]
[DefaultValue("")]
[SacDescription("ComplianceOpinion", "合规意见书", "", false, "校验规则:只支持PDF格式;")]
public string ComplianceOpinion { get; set; }
/// <summary>
/// 行权价格1
/// <para>长度:36,2</para>
/// <para>必填:是</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2)]
[DefaultValue("")]
[SacDescription("ExercisePriceOne", "行权价格1", "36,2", true, "校验规则:保留两位小数;")]
public string ExercisePriceOne { get; set; }
/// <summary>
/// 行权价格2
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:保留两位小数;</para>
/// </summary>
[CheckStringIntLength(BeforePointMaxLength = 36, AfterPointLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("ExercisePriceTwo", "行权价格2", "36,2", false, "校验规则:保留两位小数;")]
public string ExercisePriceTwo { get; set; }
/// <summary>
/// 甲方代签产品名称
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:1 如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;2 甲方代签产品名称必须在主协议关联产品列表-产品名称中存在;</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200, Required = false)]
[DefaultValue("")]
[SacDescription("PtyAPdctName", "甲方代签产品名称", "200", false, "校验规则:\r\n1 如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;\r\n2 甲方代签产品名称必须在主协议关联产品列表-产品名称中存在;")]
public string PtyAPdctName { get; set; }
/// <summary>
/// 甲方代签产品代码
/// <para>长度:20</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 20, Required = false)]
[DefaultValue("")]
[SacDescription("PytAPdctCode", "甲方代签产品代码", "20", false, "校验规则:如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;")]
public string PytAPdctCode { get; set; }
/// <summary>
/// 乙方代签产品名称
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:1 如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;2 乙方代签产品名称必须在主协议关联产品列表-产品名称中存在;</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200, Required = false)]
[DefaultValue("")]
[SacDescription("PtyBPdctName", "乙方代签产品名称", "200", false, "校验规则:\r\n1 如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;\r\n2 乙方代签产品名称必须在主协议关联产品列表-产品名称中存在;")]
public string PtyBPdctName { get; set; }
/// <summary>
/// 乙方代签产品代码
/// <para>长度:20</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 20, Required = false)]
[DefaultValue("")]
[SacDescription("PytBPdctCode", "乙方代签产品代码", "20", false, "校验规则:如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;")]
public string PytBPdctCode { get; set; }
[XmlIgnore]
[DefaultValue("")]
[SacDescription("TradeId", "乙方代签产品代码", "20", false, "校验规则:如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;")]
public string TradeId { get; set; }
}
/// <summary>
/// 交易确认书附件
/// </summary>
public class ConfirmationAttModel
{
/// <summary>
/// 交易确认书附件
/// </summary>
[CheckStringEndsWith(EndsWithString = ".pdf")]
[DefaultValue("")]
[SacDescription("ConfirmationAtt", "交易确认书附件", "", false, "")]
public string ConfirmationAtt { get; set; }
}
/// <summary>
/// 标的详情
/// </summary>
public class UndrlygAssetModel
{
/// <summary>
/// 标的小类
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.UndrlygAssetDtldTypeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "99" })]
[DefaultValue("")]
[SacDescription("UndrlygAssetDtldType", "标的小类", "2", true, "")]
public string UndrlygAssetDtldType { get; set; }
/// <summary>
/// 挂钩标的名称
/// <para>长度:200</para>
/// <para>必填:是</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 200)]
[DefaultValue("")]
[SacDescription("UndrlygAssetName", "挂钩标的名称", "200", true, "")]
public string UndrlygAssetName { get; set; }
/// <summary>
/// 标的交易场所
/// <para>长度:2</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.UndrlygAssetTradgPlceMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "99" })]
[DefaultValue("")]
[SacDescription("UndrlygAssetTradgPlc", "标的交易场所", "2", true, "")]
public string UndrlygAssetTradgPlc { get; set; }
/// <summary>
/// 标的代码
/// <para>长度:32</para>
/// <para>必填:是</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 32)]
[DefaultValue("")]
[SacDescription("UndrlygAssetCode", "标的代码", "32", true, "")]
public string UndrlygAssetCode { get; set; }
/// <summary>
/// 标的数量
/// <para>长度:36,2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:必须两位小数以内;</para>
/// </summary>
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, Required = false)]
[DefaultValue("")]
[SacDescription("UndrlygAssetAmt", "标的数量", "36,2", false, "校验规则:必须两位小数以内;")]
public string UndrlygAssetAmt { get; set; }
}
/// <summary>
/// 履约担保品详情
/// </summary>
public class PerformanceGuaranteeAttModel
{
/// <summary>
/// 履约担保品类型
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:当履约保障类型(<see cref="PerformanceGuaranteeType"/>)选择部分担保或全额担保时必填;</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.PerformanceCollTypeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "99" })]
[DefaultValue("")]
[SacDescription("PerformanceCollType", "履约担保品类型", "2", false, "校验规则:当履约保障类型选择部分担保或全额担保时必填;")]
public string PerformanceCollType { get; set; }
/// <summary>
/// 担保品担保范围
/// <para>长度:2</para>
/// <para>必填:否</para>
/// <para>说明:<see cref="YLErp.DBModels.Consts.ConsReport.PerformanceCollRangeMap"/></para>
/// </summary>
[CheckStringInMap(Map = new[] { "0", "1", "2" }, Required = false)]
[DefaultValue("")]
[SacDescription("PerformanceCollRange", "担保品担保范围", "2", false, "")]
public string PerformanceCollRange { get; set; }
/// <summary>
/// 多笔担保交易确认书编号
/// <para>长度:1024</para>
/// <para>必填:否</para>
/// <para>说明:</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("MultiConfirmationID", "多笔担保交易确认书编号", "1024", false, "")]
public string MultiConfirmationID { get; set; }
}
}