using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
///
/// 互换交易确认书
///
[Table("A1005_SwapConfirmation")]
public class SwapConfirmationModel : ReportBaseModel
{
///
/// 支付方式
/// 长度:2
/// 必填:是
/// 说明:
///
[XmlIgnore]
[SacDescription("PaymentMethod", "支付方式", "2", true, "")]
public string PaymentMethod { get; set; }
///
/// 操作标识
/// 长度:1
/// 必填:是
/// 说明:
///
[XmlIgnore]
[SacDescription("OperationType", "操作标识", "1", true, "")]
public OptFlagsEnum OperationType { get; set; }
///
/// 主协议编号(双方约定)
/// 长度:100
/// 必填:是
/// 说明:双方约定
///
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("MasterAgrmtNo", "主协议编号(双方约定)", "100", true, "双方约定;")]
public string MasterAgrmtNo { get; set; }
///
/// 补充协议编号(双方约定)
/// 长度:100
/// 必填:是
/// 说明:双方约定
///
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("SupAgrmtNo", "补充协议编号(双方约定)", "100", true, "双方约定;")]
public string SupAgrmtNo { get; set; }
///
/// 交易确认书编号
/// 长度:32
/// 必填:否
/// 说明:校验规则:补正时必填;
///
[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; }
///
/// 交易确认书编号(双方约定)
/// 长度:100
/// 必填:是
/// 说明:双方约定
///
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号(双方约定)", "100", true, "双方约定;")]
public string ConfirmationNo { get; set; }
///
/// 交易确认书类型
/// 长度:2
/// 必填:是
/// 说明:校验规则:首次提交时填0,补正时填1
///
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("ConfirmationType", "交易确认书类型", "2", true, "校验规则:首次提交时填0,补正时填1;")]
public string ConfirmationType { get; set; }
///
/// 填报方角色
/// 长度:2
/// 必填:是
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("FillParty", "填报方角色", "2", true, "")]
public string FillParty { get; set; }
///
/// 收益互换交易类型
/// 长度:2
/// 必填:是
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1", "2", "99" })]
[DefaultValue("")]
[SacDescription("SwapType", "收益互换交易类型", "2", true, "")]
public string SwapType { get; set; }
///
/// 起始日
/// 长度:10
/// 必填:是
/// 说明:校验规则:1 起始日不能大于到期日日期;2 必须是YYYY-MM-DD
///
[CheckStringMaxLength(MaxLength = 10)]
[CheckStringIsDateTimeFormat]
[DefaultValue("")]
[SacDescription("StartDate", "起始日", "10", true, "校验规则:\r\n1 起始日不能大于到期日日期;\r\n2 必须是YYYY-MM-DD;")]
public string StartDate { get; set; }
///
/// 到期日
/// 长度:10
/// 必填:是
/// 说明:指定的进行结算金额收付的日期. 校验规则:1 到期日不能小于起始日日期;2 必须是YYYY-MM-DD;
///
[CheckStringMaxLength(MaxLength = 10)]
[CheckStringIsDateTimeFormat]
[DefaultValue("")]
[SacDescription("DueDate", "到期日", "10", true, "指定的进行结算金额收付的日期.\r\n校验规则:\r\n1 到期日不能小于起始日日期;\r\n2 必须是YYYY-MM-DD;")]
public string DueDate { get; set; }
///
/// 结算日
/// 长度:10
/// 必填:否
/// 说明:校验规则:1 必须是YYYY-MM-DD;
///
[CheckStringMaxLength(MaxLength = 10, Required = false)]
[CheckStringIsDateTimeFormat(Required = false)]
[DefaultValue("")]
[SacDescription("SettlementDate", "结算日", "10", false, "校验规则:\r\n1 必须是YYYY-MM-DD;")]
public string SettlementDate { get; set; }
///
/// 结算货币
/// 长度:2
/// 必填:是
/// 说明:使用货币通用代码(大写)
///
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "6" })]
[DefaultValue("")]
[SacDescription("Currency", "结算货币", "2", true, "使用货币通用代码(大写);")]
public string Currency { get; set; }
///
/// 名义本金(元)
/// 长度:36,2
/// 必填:是
/// 说明:校验规则:1 必须两位小数以内;2 补正时,如果该交易还有未被废除的存续期记录(包括展期\终止数据),名义本金额(人民币)字段不能修改;
/// 说明:名义本金为标的期初价格乘以数量乘以乘数;多空组合填写多头名义本金与空头名义本金孰高
///
[CheckStringIntMaxLength(BeforePointMaxLength = 36, AfterPointMaxLength = 2, MinValue = 0)]
[DefaultValue("")]
[SacDescription("NotinalPrincipleAmt", "名义本金(元)", "36,2", true, "校验规则:\r\n1 必须两位小数以内;\r\n2 补正时,如果该交易还有未被废除的存续期记录(包括展期、终止数据),名义本金额(人民币)字段不能修改;")]
public string NotinalPrincipleAmt { get; set; }
///
/// 清算机构
/// 长度:2
/// 必填:是
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1", "3", "4", "5", "99" })]
[DefaultValue("")]
[SacDescription("ClearingAgency", "清算机构", "2", true, "")]
public string ClearingAgency { get; set; }
///
/// 交易场所
/// 长度:2
/// 必填:是
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1", "2", "99" })]
[DefaultValue("")]
[SacDescription("TradingPlace", "交易场所", "2", true, "")]
public string TradingPlace { get; set; }
///
/// 交易场所(其他)
/// 长度:200
/// 必填:否
/// 说明:交易场所选"99:其他交易场所"时,必填
///
[CheckConditionStringValue(ConditionName = nameof(TradingPlace), ConditionValue = "99", CheckHandleNameArr = new[] { "A" })]
[CheckStringMaxLength(MaxLength = 200, CheckHandleName = "A")]
[DefaultValue("")]
[SacDescription("TradingPlaceOther", "交易场所(其他)", "200", false, "交易场所选99:其他交易场所时,必填;")]
public string TradingPlaceOther { get; set; }
///
/// 标的类型
/// 长度:2
/// 必填:是
/// 说明:对于多类别资产组合,单一资产类别占比大等于80%的,分类为该类别,各资产类别占比均小于80%的,为混合类
///
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "4", "5", "99" })]
[DefaultValue("")]
[SacDescription("UndrlygAssetType", "标的类型", "2", true, "对于多类别资产组合,单一资产类别占比大等于80%的,分类为该类别,各资产类别占比均小于80%的,为混合类;")]
public string UndrlygAssetType { get; set; }
///
/// 基本信息备注
/// 长度:1024
/// 必填:否
/// 说明:填写上述字段或交易确认书中不能包含的信息
///
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("ConfirmationRemark", "基本信息备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
public string ConfirmationRemark { get; set; }
///
/// 费用端支付
///
[XmlElement]
[NotMapped]
[SacDescription("CostPaymentTuple", "费用端支付", "", false, "")]
public List CostPaymentTuple { get; set; }
///
/// 履约担保类型
/// 长度:2
/// 必填:是
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1", "2" })]
[DefaultValue("")]
[SacDescription("PerformanceGuaranteeType", "履约担保类型", "2", true, "")]
public string PerformanceGuaranteeType { get; set; }
///
/// 履约担保品提供方
/// 长度:2
/// 必填:否
/// 说明:检验规则"履约担保类型"为"部分担保"或"全额担保"时必填
///
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "0", "1", "2", "3" }, CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollProvider", "履约担保品提供方", "2", false, "检验规则:履约担保类型为部分担保或全额担保时必填;")]
public string PerformanceCollProvider { get; set; }
///
/// 担保品收取方是否可使用担保品
/// 长度:5
/// 必填:否
/// 说明:检验规则:履约担保类型为"部分担保"或"全额担保"时必填;
///
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "true", "false" }, CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PartyUseColl", "担保品收取方是否可使用担保品", "5", false, "检验规则:履约担保类型为部分担保或全额担保时必填;")]
public string PartyUseColl { get; set; }
///
/// 担保品使用说明
/// 长度:1024
/// 必填:否
/// 说明:检验规则:当"担保品收取方是否可使用担保品"选择"是"时必填;
///
[CheckConditionStringValue(ConditionName = nameof(PartyUseColl), ConditionValue = "true", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(PartyUseColl), ConditionValue = "true", CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 1024, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 1024, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("CollInstruction", "担保品使用说明", "1024", false, "检验规则:当担保品收取方是否可使用担保品选择是时必填;")]
public string CollInstruction { get; set; }
///
/// 是否计算担保品价值产生利息
/// 长度:5
/// 必填:否
/// 说明:检验规则:当"履约担保类型"为"部分担保"、"全额担保"时必填
///
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringInMap(Map = new[] { "true", "false" }, CheckHandleName = "A")]
[CheckStringLength(Length = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("CalculateCollInterest", "是否计算担保品价值产生利息", "5", false, "检验规则:当履约担保类型为部分担保、全额担保时必填;")]
public string CalculateCollInterest { get; set; }
///
/// 履约担保品初始比率(%)
/// 长度:5,2
/// 必填:是
/// 说明:校验规则:大于等于0的数字,最多2位小数,该值为100%时,填写100.00
///
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0)]
[DefaultValue("")]
[SacDescription("PerformanceCollInitialRatio", "履约担保品初始比率(%)", "5,2", true, "校验规则:大于等于0的数字,最多2位小数,该值为100%时,填写100.00;")]
public string PerformanceCollInitialRatio { get; set; }
///
/// 履约担保品追保比率(%)
/// 长度:5,2
/// 必填:否
/// 说明:校验规则:1 当"履约保障类型"选择"部分担保"或"全额担保"时必填;2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00
///
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollAddtlRatio", "履约担保品追保比率(%)", "5,2", false, "校验规则:\r\n1 当履约保障类型选择部分担保或全额担保时必填;\r\n2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00;")]
public string PerformanceCollAddtlRatio { get; set; }
///
/// 履约担保品平仓比率(%)
/// 长度:5,2
/// 必填:否
/// 说明:校验规则:1 当"履约保障类型"选择"部分担保"或"全额担保"时必填;2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00
///
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0, CheckHandleName = "A")]
[CheckStringIntMaxLength(BeforePointMaxLength = 3, AfterPointMaxLength = 2, MinValue = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PerformanceCollOffsetRatio", "履约担保品平仓比率(%)", "5,2", false, "校验规则:\r\n1 当履约保障类型选择部分担保或全额担保时必填;\r\n2 大于等于0的数字,最多2位小数,该值为100%时,填写100.00;")]
public string PerformanceCollOffsetRatio { get; set; }
///
/// 维持担保比率(%)
/// 长度:5,2
/// 必填:是
/// 说明:担保品占名义本金比例,大于等于0的数字,最多2位小数,担保比例为80.00%,则填写80.00
///
[CheckStringIntLength(BeforePointMaxLength = 5, AfterPointLength = 2, MinValue = 0)]
[SacDescription("MaintainGuaranteeRatio", "维持担保比率(%)", "5,2", true, "担保品占名义本金比例,大于等于0的数字,最多2位小数,担保比例为80.00%,则填写80.00;")]
public string MaintainGuaranteeRatio { get; set; }
///
/// 履约担保附件
/// 长度:
/// 必填:否
/// 说明:校验规则:只支持PDF格式;
///
[CheckStringEndsWith(EndsWithString = ".pdf", Required = false)]
[DefaultValue("")]
[SacDescription("PerformanceGuaranteeAtt", "履约担保附件", "", false, "校验规则:只支持PDF格式;")]
public string PerformanceGuaranteeAtt { get; set; }
///
/// 履约担保备注
/// 长度:1024
/// 必填:否
/// 说明:填写上述字段或交易确认书中不能包含的信息
///
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("PerformanceGuaranteeRemark", "履约担保备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
public string PerformanceGuaranteeRemark { get; set; }
///
/// 履约担保品
/// 长度:
/// 必填:
/// 说明:数组结构,支持新增多条;校验规则:字段信息详见收益互换交易确认书【履约担保品】。检验规则:当“履约担保类型”为“部分担保”或“全额担保”时必填
///
[CheckConditionStringInMap(ConditionName = nameof(PerformanceGuaranteeType), ConditionMap = new[] { "1", "2" }, CheckHandleNameArr = new[] { "A" })]
[CheckIEnumerableTMinCount(CheckHandleName = "A", MinCount = 1)]
[XmlElement]
[NotMapped]
[SacDescription("PerformanceCollTuple", "履约担保品", "", false, "数组结构,支持新增多条;\r\n校验规则:字段信息详见收益互换交易确认书【履约担保品】。检验规则:当“履约担保类型”为“部分担保”或“全额担保”时必填;")]
public List PerformanceCollTuple { get; set; }
///
/// 备注
/// 长度:1024
/// 必填:否
/// 说明:上述所有字段没有涵盖且需要说明的信息
///
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("Remark", "备注", "1024", false, "上述所有字段没有涵盖且需要说明的信息;")]
public string Remark { get; set; }
///
/// 合规意见书
/// 长度:
/// 必填:否
/// 说明:校验规则:只支持PDF格式;
///
[CheckStringEndsWith(EndsWithString = ".pdf", Required = false)]
[DefaultValue("")]
[SacDescription("ComplianceOpinion", "合规意见书", "", false, "校验规则:只支持PDF格式;")]
public string ComplianceOpinion { get; set; }
///
/// 标的个数
/// 长度:2
/// 必填:是
/// 说明: 多标的时,权益收益、浮动利率收益、固定利率收益信息需新增多个
///
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("PtyAUndrlygAssetNo", "标的个数", "2", true, "多标的时,权益收益、浮动利率收益、固定利率收益信息需新增多个;")]
public string PtyAUndrlygAssetNo { get; set; }
///
/// 收益计算说明
/// 长度:1024
/// 必填:是
/// 说明:详细说明收益计算方式
///
[CheckStringMaxLength(MaxLength = 1024)]
[DefaultValue("")]
[SacDescription("PtyAPrOfitCalculationInfo", "收益计算说明", "1024", true, "详细说明收益计算方式;")]
public string PtyAPrOfitCalculationInfo { get; set; }
///
/// 收益备注
/// 长度:1024
/// 必填:否
/// 说明:填写上述字段或交易确认书中不能包含的信息
///
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("PtyAProfitRemark", "收益备注", "1024", false, "填写上述字段或交易确认书中不能包含的信息;")]
public string PtyAProfitRemark { get; set; }
///
/// 甲方代签产品名称
/// 长度:200
/// 必填:否
/// 说明:校验规则:1 如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;2 甲方代签产品名称必须在主协议关联产品列表-产品名称中存在;
///
[CheckConditionStringInMap(ConditionName = nameof(PtyBPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PtyBPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 200, Required = false, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PtyAPdctName", "甲方代签产品名称", "200", false, "校验规则:\r\n1 如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;\r\n2 甲方代签产品名称必须在主协议关联产品列表-产品名称中存在;")]
public string PtyAPdctName { get; set; }
///
/// 甲方交易对手码(产品)
/// 长度:20
/// 必填:否
/// 说明:校验规则:如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值
///
[CheckConditionStringInMap(ConditionName = nameof(PtyBPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PtyBPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 20, Required = false, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PytAPdctCode", "甲方交易对手码(产品)", "20", false, "校验规则:如甲方代签产品名称或甲方代签产品代码填值,则乙方代签产品名称和乙方代签产品代码禁止填值;")]
public string PytAPdctCode { get; set; }
///
/// 乙方代签产品名称
/// 长度:200
/// 必填:否
/// 说明:校验规则:1 如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;2 乙方代签产品名称必须在主协议关联产品列表-产品名称中存在;
///
[CheckConditionStringInMap(ConditionName = nameof(PtyAPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PtyAPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 200, Required = false, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PtyBPdctName", "乙方代签产品名称", "200", false, "校验规则:\r\n1 如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;\r\n2 乙方代签产品名称必须在主协议关联产品列表-产品名称中存在;")]
public string PtyBPdctName { get; set; }
///
/// 乙方交易对手码(产品)
/// 长度:20
/// 必填:否
/// 说明:校验规则:如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值
///
[CheckConditionStringInMap(ConditionName = nameof(PtyAPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(PtyAPdctName), ConditionMap = new[] { null, "" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 20, Required = false, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("PytBPdctCode", "乙方交易对手码(产品)", "20", false, "校验规则:如乙方代签产品名称或乙方代签产品代码填值,则甲方代签产品名称和甲方代签产品代码禁止填值;")]
public string PytBPdctCode { get; set; }
//TODO: 2.3互换上线时取消注释
/////
///// 是否为跨境交易
///// 长度:5
///// 必填:是
///// 说明:
/////
//[CheckStringInMap(Map = new[] { "true", "false" })]
//[DefaultValue("")]
//[SacDescription("CrossBorderTransactions", "是否为跨境交易", "5", true, "")]
//public string CrossBorderTransactions { get; set; }
///
/// 空白1
///
[DefaultValue("")]
[SacDescription("Blank1", "空白1", "", false, "")]
public string Blank1 { get; set; }
///
/// 空白2
///
[DefaultValue("")]
[SacDescription("Blank2", "空白2", "", false, "")]
public string Blank2 { get; set; }
}
///
/// 履约担保品详情
///
[Table("A1005_SwapPerformanceGuaranteeAtt")]
public class SwapPerformanceGuaranteeAttModel : ReportSubBaseModel
{
///
/// 履约担保品类型
/// 长度:2
/// 必填:否
/// 说明:校验规则:当履约保障类型()选择部分担保或全额担保时必填;
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1", "2", "3", "99" })]
[DefaultValue("")]
[SacDescription("PerformanceCollType", "履约担保品类型", "2", false, "校验规则:当履约保障类型选择部分担保或全额担保时必填;")]
public string PerformanceCollType { get; set; }
///
/// 担保品担保范围
/// 长度:2
/// 必填:否
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1", "2" }, Required = false)]
[DefaultValue("")]
[SacDescription("PerformanceCollRange", "担保品担保范围", "2", false, "")]
public string PerformanceCollRange { get; set; }
///
/// 多笔担保交易确认书编号
/// 长度:1024
/// 必填:否
/// 说明:
///
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("MultiConfirmationID", "多笔担保交易确认书编号", "1024", false, "")]
public string MultiConfirmationID { get; set; }
///
/// 备注
/// 长度:1024
/// 必填:否
///
[CheckStringMaxLength(MaxLength = 1024, Required = false)]
[DefaultValue("")]
[SacDescription("Remarks", "备注", "1024", false, "")]
public string Remarks { get; set; }
[XmlIgnore]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号", "100", false, "")]
public string ConfirmationNo { get; set; }
}
///
/// 收益互换交易费用端支付
///
[Table("A1005_PaymentMethod")]
public class PaymentMethodModel : ReportSubBaseModel
{
///
/// 支付方式
/// 长度:2
/// 必填:是
/// 说明:
///
[CheckStringInMap(Map = new[] { "2", "3" })]
[DefaultValue("")]
[SacDescription("PaymentMethod", "支付方式", "2", true, "")]
public string PaymentMethod { get; set; }
///
/// 支付方
/// 长度:2
/// 必填:是
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1" })]
[DefaultValue("")]
[SacDescription("Payer", "支付方", "2", true, "")]
public string Payer { get; set; }
///
/// 支付频率
/// 长度:2
/// 必填:是
/// 说明:
///
[CheckStringInMap(Map = new[] { "0", "1", "2" })]
[DefaultValue("")]
[SacDescription("PaymentFreq", "支付频率", "2", true, "")]
public string PaymentFreq { get; set; }
///
/// 固定利率(%)
/// 长度:8,2
/// 必填:否
/// 说明:当"支付方式"选择为"固定利率时"时必填;
///
[CheckConditionStringValue(ConditionName = nameof(PaymentMethod), ConditionValue = "3", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(PaymentMethod), ConditionValue = "3", CheckHandleNameArr = new[] { "B" })]
[CheckStringIntLength(BeforePointMaxLength = 8, AfterPointLength = 2, CheckHandleName = "A")]
[CheckStringIntLength(BeforePointMaxLength = 8, AfterPointLength = 2, CheckHandleName = "B", Required = false)]
[DefaultValue("")]
[SacDescription("FixedInterestRate", "固定利率(%)", "8,2", false, "当支付方式选择为固定利率时时必填;")]
public string FixedInterestRate { get; set; }
///
/// 浮动利率类型
/// 长度:2
/// 必填:否
/// 说明:当"支付方式"选择为"浮动利率"时必填;应当符合标准规范
///
[CheckConditionStringValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "B" })]
[CheckStringMinLength(MinLength = 1, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B", Required = false)]
[DefaultValue("")]
[SacDescription("FloatInterestRate", "浮动利率类型", "2", false, "当支付方式选择为浮动利率时必填;\r\n应当符合标准规范;")]
public string FloatInterestRate { get; set; }
///
/// 浮动利率参考标的
/// 长度:200
/// 必填:否
/// 说明:当"支付方式"选择为"浮动利率"时必填;
///
[CheckConditionStringValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "B" })]
[CheckStringMinLength(MinLength = 1, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 200, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B", Required = false)]
[DefaultValue("")]
[SacDescription("ReferenceofFloatingInterestRate", "浮动利率参考标的", "200", false, "当支付方式选择为浮动利率时必填;")]
public string ReferenceofFloatingInterestRate { get; set; }
///
/// 浮动基点
/// 长度:20
/// 必填:否
/// 说明:整数;当"支付方"式选择为"浮动利率"时,必填,如30\-30
///
[CheckConditionStringValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNEQValue(ConditionName = nameof(PaymentMethod), ConditionValue = "2", CheckHandleNameArr = new[] { "B" })]
[CheckStringIntLength(BeforePointMaxLength = 20, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B", Required = false)]
[DefaultValue("")]
[SacDescription("BasePoint", "浮动基点", "20", false, "整数;\r\n当支付方式选择为浮动利率时,必填,如30、-30;")]
public string BasePoint { get; set; }
///
/// 空白1
///
[DefaultValue("")]
[SacDescription("Blank1", "空白1", "", false, "")]
public string Blank1 { get; set; }
///
/// 空白2
///
[DefaultValue("")]
[SacDescription("Blank2", "空白2", "", false, "")]
public string Blank2 { get; set; }
[XmlIgnore]
[DefaultValue("")]
[SacDescription("ConfirmationNo", "交易确认书编号", "100", false, "")]
public string ConfirmationNo { get; set; }
}
}