using Newtonsoft.Json.Linq; using YLErp.Office.Converters; namespace YLErp.PluginTests { [TestClass] public class TestDongCai { [TestMethod("测试-到期结算单-结算书模板")] public void TestExpireCloseConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\DongCai\\到期结算单\\结算书模板.docx"); var targetPath = Path.Combine("d:\\", "dongcai_到期结算单_结算书.docx"); var closeDate = DateTime.Now.AddDays(20); var varDic = new JsonVarDic(); varDic.SetVar("合同编号", "HT-20220426-01-01"); varDic.SetVar("开始日", DateTime.Now.AddDays(-25).ToString("yyyy年MM月dd日")); varDic.SetVar("结算日", closeDate.ToString("yyyy年MM月dd日")); varDic.SetVar("兑付日", closeDate.ToString("yyyy年MM月dd日")); varDic.SetVar("到期年", closeDate.Year); varDic.SetVar("到期月", closeDate.Month); varDic.SetVar("到期日", closeDate.Day); varDic.SetVar("甲方", "客户A"); varDic.SetVar("乙方", "客户B"); varDic.SetVar("收益", "13%"); varDic.SetVar("收益金额", 60000); varDic.SetVar("平仓", "部分平仓"); varDic.SetVar("固定费用", 600); varDic.SetVar("支付", 600); varDic.SetVar("到期盈亏", 66600); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-平仓-结算书模板(平仓)")] public void TestSellCloseConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\DongCai\\平仓\\结算书模板(平仓).docx"); var targetPath = Path.Combine("d:\\", "dongcai_平仓_结算书.docx"); var closeDate = DateTime.Now.AddDays(20); var varDic = new JsonVarDic(); varDic.SetVar("客户名称", "客户A"); varDic.SetVar("公司名称", "公司甲"); varDic.SetVar("交易编号", "NO20220427001"); varDic.SetVar("收益", "13%"); varDic.SetVar("平仓", "部分平仓"); varDic.SetVar("收益金额", 60000); varDic.SetVar("平仓费用", 600); varDic.SetVar("支付方", "客户A"); varDic.SetVar("支付时间", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日")); varDic.SetVar("支付金额大写", "陆万陆千陆百"); varDic.SetVar("支付金额", 66600); varDic.SetVar("收款", "收款"); varDic.SetVar("收款方", "公司甲"); varDic.SetVar("户名", "公司账户A"); varDic.SetVar("账号", "6214830211707103"); varDic.SetVar("开户行", "招商银行"); varDic.SetVar("大额行号", "招商银行"); varDic.SetVar("公司名称", "公司甲"); varDic.SetVar("日期", DateTime.Now.ToString("yyyy年MM月dd日")); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-平仓-收益互换平仓确认书")] public void TestSellExchangeConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\DongCai\\平仓\\收益互换平仓确认书.docx"); var targetPath = Path.Combine("d:\\", "dongcai_平仓_收益互换平仓确认书.docx"); var closeDate = DateTime.Now.AddDays(20); var varDic = new JsonVarDic(); varDic.SetVar("甲方", "客户A"); varDic.SetVar("乙方", "公司甲"); varDic.SetVar("合同编号", "HT20220427001"); varDic.SetVar("主协议", "中国证券交易协议"); varDic.SetVar("补充协议", "中国证券交易协议补充协议"); varDic.SetVar("交易编号", "NO20220427001"); varDic.SetVar("公司名称", "公司甲"); varDic.SetVar("平仓时间", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日")); varDic.SetVar("平仓前名义本金额", 66600); varDic.SetVar("平仓名义本金额", 66600); varDic.SetVar("平仓后名义本金额", 0); varDic.SetVar("平仓费用", 600); varDic.SetVar("返还预付金", 10000); varDic.SetVar("日期", DateTime.Now.ToString("yyyy年MM月dd日")); varDic.SetVar("支付时间", DateTime.Now.AddDays(-5).ToString("yyyy年MM月dd日")); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-交易确认书-单向鲨鱼鳍看涨交易确认书")] public void TestSharkTradeConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\DongCai\\交易确认书\\单向鲨鱼鳍看涨交易确认书.docx"); var targetPath = Path.Combine("d:\\", "dongcai_交易确认书_单向鲨鱼鳍看涨交易确认书.docx"); var varDic = new JsonVarDic(); varDic.SetVar("合同编号", "HT-20220426-01-01"); varDic.SetVar("公司名称", "公司甲"); varDic.SetVar("甲方", "公司甲"); varDic.SetVar("甲方法人", "习大大"); varDic.SetVar("甲方营业执照", "上海市浦东新区新街道公司甲营业执照"); varDic.SetVar("甲方地址", "上海市浦东新区新街道公司甲"); varDic.SetVar("乙方", "公司乙"); varDic.SetVar("乙方法人", "法大大"); varDic.SetVar("乙方营业执照", "上海市浦东新区新街道公司甲营业执照"); varDic.SetVar("乙方地址", "上海市浦东新区新街道公司甲"); varDic.SetVar("主协议", "中国证券交易协议"); varDic.SetVar("补充协议", "鲨鱼鳍交易补充协议"); varDic.SetVar("名义本金", 60000); varDic.SetVar("实际名义本金", 60000); varDic.SetVar("标的名称", "平安银行"); varDic.SetVar("标的代码", "000001.SZ"); varDic.SetVar("天数", 30); varDic.SetVar("开始日", DateTime.Now.ToString("yyyy年MM月dd日")); varDic.SetVar("行权日", DateTime.Now.AddDays(30).ToString("yyyy年MM月dd日")); varDic.SetVar("到期日", DateTime.Now.AddDays(30).ToString("yyyy年MM月dd日")); varDic.SetVar("期权费率", 0.5); varDic.SetVar("一级收益率", 10); varDic.SetVar("甲方户名", "公司甲账户A"); varDic.SetVar("甲方账号", "6214830211707103"); varDic.SetVar("甲方开户行", "招商银行"); varDic.SetVar("甲方大额行号", "招商银行"); varDic.SetVar("乙方户名", "公司乙账户A"); varDic.SetVar("乙方账号", "6214830211707123"); varDic.SetVar("乙方开户行", "招商银行"); varDic.SetVar("乙方大额行号", "招商银行"); varDic.SetVar("甲方联系人", "张甲"); varDic.SetVar("甲方电话", "15326165960"); varDic.SetVar("甲方邮件", "2324@lk.com"); varDic.SetVar("甲方传真", "021-002332"); varDic.SetVar("乙方联系人", "张甲"); varDic.SetVar("乙方电话", "15226165960"); varDic.SetVar("乙方邮件", "2324@lk.com"); varDic.SetVar("乙方传真", "021-002331"); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-交易确认书-非保本雪球期权交易确认书模板")] public void TestNoSnowBallTradeConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\DongCai\\交易确认书\\非保本雪球期权交易确认书模板.docx"); var targetPath = Path.Combine("d:\\", "dongcai_交易确认书_非保本雪球期权交易确认书.docx"); var closeDate = DateTime.Now.AddDays(20); var startDate = DateTime.Now; var varDic = new JsonVarDic(); varDic.SetVar("合同编号", "HT-20220426-01-01"); varDic.SetVar("甲方", "公司甲"); varDic.SetVar("乙方", "公司乙"); varDic.SetVar("标的名称", "平安银行"); varDic.SetVar("标的代码", "000001.SZ"); varDic.SetVar("名义本金", 60000); varDic.SetVar("交易年", closeDate.Year); varDic.SetVar("交易月", closeDate.Month); varDic.SetVar("交易日dd", closeDate.Day); varDic.SetVar("开始年", startDate.Year); varDic.SetVar("开始月", startDate.Month); varDic.SetVar("开始日dd", startDate.Day); varDic.SetVar("到期年", closeDate.Year); varDic.SetVar("到期月", closeDate.Month); varDic.SetVar("买方", "买方A"); varDic.SetVar("卖方", "卖方B"); varDic.SetVar("敲入行权价", 3); varDic.SetVar("敲出障碍价", 29.99); varDic.SetVar("敲入障碍价", 3.01); varDic.SetVar("期初价格", 3.05); varDic.SetVar("初始预付金", 3.01 * 6000); varDic.SetVar("初始预付金率", 30); varDic.SetVar("期间预付金率", 30); varDic.SetVar("期间预付金", 3.01 * 6000 * 0.3); varDic.SetVar("期权费率", 0.5); varDic.SetVar("票息率", 0.5); varDic.SetVar("table1", "1,2022年4月28日"); varDic.SetVar("前端收益费率", 0.12); varDic.SetVar("追保比例下限", 0.13); varDic.SetVar("追保线", 0.14); varDic.SetVar("甲方户名", "公司甲账户A"); varDic.SetVar("甲方账号", "6214830211707103"); varDic.SetVar("甲方开户行", "招商银行"); varDic.SetVar("甲方大额行号", "招商银行"); varDic.SetVar("乙方户名", "公司乙账户A"); varDic.SetVar("乙方账号", "6214830211707123"); varDic.SetVar("乙方开户行", "招商银行"); varDic.SetVar("乙方大额行号", "招商银行"); varDic.SetVar("甲方联系人", "张甲"); varDic.SetVar("甲方电话", "15326165960"); varDic.SetVar("甲方邮件", "2324@lk.com"); varDic.SetVar("甲方传真", "021-002332"); varDic.SetVar("乙方联系人", "张甲"); varDic.SetVar("乙方电话", "15226165960"); varDic.SetVar("乙方邮件", "2324@lk.com"); varDic.SetVar("乙方传真", "021-002331"); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } [TestMethod("测试-交易确认书-交易确认书安全气囊")] public void TestSafeTradeConfirm() { var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\DongCai\\交易确认书\\交易确认书安全气囊.docx"); var targetPath = Path.Combine("d:\\", "dongcai_交易确认书_交易确认书安全气囊.docx"); var closeDate = DateTime.Now.AddDays(20); var startDate = DateTime.Now; var varDic = new JsonVarDic(); varDic.SetVar("合同编号", "HT-20220426-01-01"); varDic.SetVar("甲方", "公司甲"); varDic.SetVar("乙方", "公司乙"); varDic.SetVar("公司名称", "平安银行"); varDic.SetVar("甲方户名", "公司甲账户A"); varDic.SetVar("甲方账号", "6214830211707103"); varDic.SetVar("甲方开户行", "招商银行"); varDic.SetVar("甲方大额行号", "招商银行"); varDic.SetVar("乙方户名", "公司乙账户A"); varDic.SetVar("乙方账号", "6214830211707123"); varDic.SetVar("乙方开户行", "招商银行"); varDic.SetVar("乙方大额行号", "招商银行"); varDic.SetVar("甲方联系人", "张甲"); varDic.SetVar("甲方地址", "上海市浦东新区新街道公司甲"); varDic.SetVar("甲方电话", "15326165960"); varDic.SetVar("甲方邮件", "2324@lk.com"); varDic.SetVar("甲方传真", "021-002332"); varDic.SetVar("乙方联系人", "张甲"); varDic.SetVar("乙方地址", "上海市浦东新区新街道公司乙"); varDic.SetVar("乙方电话", "15226165960"); varDic.SetVar("乙方邮件", "2324@lk.com"); varDic.SetVar("乙方传真", "021-002331"); var random = new Random((int)DateTime.Now.Ticks); var table1 = new JArray(); var spotPrice = 3655.5d; for (var i = 1; i < 10; i++) { var notional = random.Next(100, 10000) / 100d; var spot = spotPrice * (1 + (i / 100d)); var singlePrice = random.Next(50, 1000) / 10d; var jobj = new JObject { {"交易编号", "TradeNO-" + i }, {"买方", "Buy"+i }, {"交易达成日", DateTime.Now.AddDays(i*2).ToString("yyyy年MM月dd日") }, {"开始日期", DateTime.Now.AddDays(-i*2).ToString("yyyy年MM月dd日") }, {"到期日期", DateTime.Now.AddDays(i*2).ToString("yyyy年MM月dd日") }, {"名义本金", 3* random.Next()}, {"标的名称", "标名"+i }, {"标的代码", "00000"+i }, {"期初价格", spot}, {"执行价格", spot*0.95 }, {"封顶价格", spot*1.95 }, {"k", random.Next(1, 100) }, {"c", random.Next(1, 100) }, {"h", random.Next(1, 100) }, {"未敲入参与率", random.Next(1, 100) }, {"敲入价格}", singlePrice }, {"期权费率", 0.25 }, {"&", 0.15 }, {"初始合格保证品金额", notional } }; table1.Add(jobj); } varDic.SetVar("table1", table1); OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic); } } }