Files
2024-05-09 14:06:26 +08:00

255 lines
12 KiB
C#

using Newtonsoft.Json.Linq;
using YLErp.Office.Converters;
namespace YLErp.PluginTests
{
[TestClass]
public class TestBanXing
{
[TestMethod("测试-交易确认书模板")]
public void Test1()
{
var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书模板.docx");
var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书.docx");
var varDic = new JsonVarDic();
varDic.SetVar("ClientName", "我是客户AAA");
varDic.SetVar("MyTest", new JObject {
{"YearMonth", DateTime.Now }
});
var table1 = new JArray();
var random = new Random((int)DateTime.Now.Ticks);
var optionTypes = new[] { "香草", "亚式", "障碍", "雪球", "凤凰" };
var startDate = new DateTime(2022, 3, 22);
var endDate = new DateTime(2022, 5, 22);
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 {
{"交易序号", "AA" + i },
{"标的", "SR220" + i },
{"期权类型", optionTypes[random.Next()%5] },
{"成交日", startDate.AddDays(i) },
{"到期日", endDate.AddDays(i) },
{"标的期初价格", spot},
{"执行价", "100%" },
{"标的数量", notional },
{"单位", "吨" },
{"名义本金额", spot*notional },
{"权利金支付方", "客户AA" + i },
{"期权单价", singlePrice },
{"期权总价", singlePrice * notional },
};
table1.Add(jobj);
}
varDic.SetVar("table1", table1);
OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic);
}
[TestMethod("测试-结算确认书模板")]
public void Test2()
{
var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\结算确认书模板.docx");
var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_结算确认书.docx");
var varDic = new JsonVarDic();
varDic.SetVar("ClientName", "我是客户AAA");
varDic.SetVar("TotalPnl", 3000.8866);
varDic.SetVar("TotalPnlCn", "叄仟园八角八分");
// {{.剩余数量}} {{.乙方结算盈亏}}
var table1 = new JArray();
var random = new Random((int)DateTime.Now.Ticks);
var closeTypes = new[] { "部分平仓", "全部平仓", "到期执行", "敲出平仓" };
var optionTypes = new[] { "香草", "亚式", "障碍", "雪球", "凤凰" };
var startDate = new DateTime(2022, 3, 22);
var endDate = new DateTime(2022, 5, 22);
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 },
{"结算序号", "AA" + i },
{"结算类型", closeTypes[random.Next()%4] },
{"标的资产", "SR220" + i },
{"期权类型", optionTypes[random.Next()%5] },
{"结算日期", startDate.AddDays(i) },
{"到期日", endDate.AddDays(i) },
{"标的期初价格", spot},
{"执行价", spot*0.95 },
{"结算数量", notional },
{"计价单位", "吨" },
{"标的结算价", spot*0.9 },
{"权利金支付方", "客户AA" + i },
{"期权成交单价", singlePrice },
{"期权结算单价", singlePrice*1.1 },
{"期权结算总价", singlePrice * notional },
};
table1.Add(jobj);
}
varDic.SetVar("table1", table1);
OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic);
}
[TestMethod("测试-交易确认书-大连公司模板")]
public void TestDaLianTradeConfirm()
{
var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书\\交易确认书-大连公司部模板.docx");
var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书-大连公司部.docx");
var varDic = new JsonVarDic();
varDic.SetVar("合同编号", "HT-20220426-00-01");
varDic.SetVar("名义本金", 32424.56);
varDic.SetVar("存续天数", 20);
varDic.SetVar("交易日期", DateTime.Now.ToString("yyyy年MM月dd日"));
varDic.SetVar("到期日期", DateTime.Now.AddDays(20).ToString("yyyy年MM月dd日"));
varDic.SetVar("结算日期", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日"));
varDic.SetVar("行权价0,3", 8.256);
varDic.SetVar("行权价0", 8.25);
varDic.SetVar("期初费率", 6.78);
varDic.SetVar("期末费率", 7.78);
varDic.SetVar("总期权费率", 14.56);
varDic.SetVar("二级收益率", 6.56);
varDic.SetVar("预付金", 78234);
OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic);
}
[TestMethod("测试-交易确认书-大连零售部模板")]
public void TestDaLianSellTradeConfirm()
{
var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书\\交易确认书-大连零售部模板.docx");
var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书-大连零售部.docx");
var varDic = new JsonVarDic();
varDic.SetVar("合同编号", "HT-20220426-00-02");
varDic.SetVar("名义本金", 32424.56);
varDic.SetVar("存续天数", 20);
varDic.SetVar("交易日期", DateTime.Now.ToString("yyyy年MM月dd日"));
varDic.SetVar("到期日期", DateTime.Now.AddDays(20).ToString("yyyy年MM月dd日"));
varDic.SetVar("结算日期", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日"));
varDic.SetVar("行权价0,3", 8.256);
varDic.SetVar("行权价0", 8.25);
varDic.SetVar("期初费率", 6.78);
varDic.SetVar("期末费率", 7.78);
varDic.SetVar("总期权费率", 14.56);
varDic.SetVar("二级收益率", 6.56);
varDic.SetVar("预付金", 78234);
OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic);
}
[TestMethod("测试-交易确认书-海峡银行公司模板")]
public void TestHaiXiaTradeConfirm()
{
var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书\\交易确认书-海峡银行公司部模板.docx");
var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书-海峡银行公司部.docx");
var varDic = new JsonVarDic();
varDic.SetVar("合同编号", "HT-20220426-00-03");
varDic.SetVar("名义本金", 32424.56);
varDic.SetVar("存续天数", 20);
varDic.SetVar("交易日期", DateTime.Now.ToString("yyyy年MM月dd日"));
varDic.SetVar("到期日期", DateTime.Now.AddDays(20).ToString("yyyy年MM月dd日"));
varDic.SetVar("结算日期", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日"));
varDic.SetVar("行权价0,3", 8.256);
varDic.SetVar("行权价0", 8.25);
varDic.SetVar("期初费率", 6.78);
varDic.SetVar("期末费率", 7.78);
varDic.SetVar("总期权费率", 14.56);
varDic.SetVar("二级收益率", 6.56);
varDic.SetVar("预付金", 78234);
OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic);
}
[TestMethod("测试-交易确认书-海峡银行零售部模板")]
public void TestHaiXiaSellTradeConfirm()
{
var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\交易确认书\\交易确认书-海峡银行零售部模板.docx");
var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_交易确认书-海峡银行零售部.docx");
var varDic = new JsonVarDic();
varDic.SetVar("合同编号", "HT-20220426-00-04");
varDic.SetVar("名义本金", 32424.56);
varDic.SetVar("存续天数", 20);
varDic.SetVar("交易日期", DateTime.Now.ToString("yyyy年MM月dd日"));
varDic.SetVar("到期日期", DateTime.Now.AddDays(20).ToString("yyyy年MM月dd日"));
varDic.SetVar("结算日期", DateTime.Now.AddDays(25).ToString("yyyy年MM月dd日"));
varDic.SetVar("行权价0,3", 8.256);
varDic.SetVar("行权价0", 8.25);
varDic.SetVar("期初费率", 6.78);
varDic.SetVar("期末费率", 7.78);
varDic.SetVar("总期权费率", 14.56);
varDic.SetVar("二级收益率", 6.56);
varDic.SetVar("预付金", 78234);
OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic);
}
[TestMethod("测试-结算确认书-银行到期结算单模板")]
public void TestHaiXiaSellCloseConfirm()
{
var templatePath = Path.Combine(AppContext.BaseDirectory, "Resources\\PluginTests\\BanXing\\结算确认书\\银行到期结算单模板.docx");
var targetPath = Path.Combine("d:\\PlusTest\\", "banxing_银行到期结算单模板.docx");
var varDic = new JsonVarDic();
varDic.SetVar("ClientName", "大连分公司");
varDic.SetVar("平仓损益", 32424.56);
varDic.SetVar("权利金", 300);
varDic.SetVar("了结金额", 32030);
varDic.SetVar("了结日期", DateTime.Now.ToString("yyyy年MM月dd日"));
var random = new Random((int)DateTime.Now.Ticks);
var table1 = new JArray();
var spotPrice = 3655.5d;
var closeTypes = new[] { "部分平仓", "全部平仓", "到期执行", "敲出平仓" };
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 },
{"交易日期", DateTime.Now.AddDays(-i*2).ToString("yyyy年MM月dd日") },
{"了结日期", DateTime.Now.AddDays(-i*2).ToString("yyyy年MM月dd日") },
{"标的代码", "Y" + i },
{"行权价", 3* random.Next()},
{"名义本金", 3*random.Next() },
{"平仓类型", closeTypes[random.Next()%4] },
{"期初价格", spot},
{"期末价格", spot*0.95 },
{"平仓损益", notional }
};
table1.Add(jobj);
}
varDic.SetVar("table1", table1);
OfficeFileConverter.ConvertByUsingDocTemplate(templatePath, targetPath, varDic);
}
}
}