删除定义文件类型,删除所有判断山西固收的地方
This commit is contained in:
@@ -134,7 +134,7 @@ namespace YLErp
|
|||||||
case HKStock: return "香港股票";
|
case HKStock: return "香港股票";
|
||||||
case HKStockIndex: return "香港股指";
|
case HKStockIndex: return "香港股指";
|
||||||
case Fund: return "基金及基金专户";
|
case Fund: return "基金及基金专户";
|
||||||
case TBonds: return (PS.Config.Company == Configuration.CompanyEnum.山西固收) ? "利率债" : "国债";
|
case TBonds: return "利率债";
|
||||||
case GoldFutures: return "黄金期货";
|
case GoldFutures: return "黄金期货";
|
||||||
case TBFutures: return "国债期货";
|
case TBFutures: return "国债期货";
|
||||||
case OtherFutures: return "其他期货";
|
case OtherFutures: return "其他期货";
|
||||||
@@ -231,7 +231,7 @@ namespace YLErp
|
|||||||
new SelectItem { Text = "香港股票" ,Value = HKStock},
|
new SelectItem { Text = "香港股票" ,Value = HKStock},
|
||||||
new SelectItem { Text = "香港股指" ,Value = HKStockIndex},
|
new SelectItem { Text = "香港股指" ,Value = HKStockIndex},
|
||||||
new SelectItem { Text = "基金及基金专户" ,Value = Fund},
|
new SelectItem { Text = "基金及基金专户" ,Value = Fund},
|
||||||
new SelectItem { Text = (PS.Config.Company == Configuration.CompanyEnum.山西固收)?"利率债":"国债" ,Value = TBonds},
|
new SelectItem { Text = "利率债" ,Value = TBonds},
|
||||||
new SelectItem { Text = "信用债" ,Value = CreditBonds},
|
new SelectItem { Text = "信用债" ,Value = CreditBonds},
|
||||||
new SelectItem { Text = "其它债券" ,Value = OtherBonds},
|
new SelectItem { Text = "其它债券" ,Value = OtherBonds},
|
||||||
new SelectItem { Text = "黄金期货" ,Value = GoldFutures},
|
new SelectItem { Text = "黄金期货" ,Value = GoldFutures},
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ namespace YLErp.BLL.EodSettlement
|
|||||||
var marginRate = client?.MarginRate ?? 0;
|
var marginRate = client?.MarginRate ?? 0;
|
||||||
data.AvailableAmount = data.AmountFund + (data.PayableMargin * marginRate);
|
data.AvailableAmount = data.AmountFund + (data.PayableMargin * marginRate);
|
||||||
}
|
}
|
||||||
else if (PS.Config.Is山西固收)
|
else
|
||||||
{
|
{
|
||||||
data.AvailableAmount = data.AmountFund + data.TotalCredit + data.PayableMargin + data.GuaranteesTotalAmount;
|
data.AvailableAmount = data.AmountFund + data.TotalCredit + data.PayableMargin + data.GuaranteesTotalAmount;
|
||||||
data.MinusPayableMarginTotal = data.MinusPayableMargin;
|
data.MinusPayableMarginTotal = data.MinusPayableMargin;
|
||||||
@@ -327,24 +327,7 @@ namespace YLErp.BLL.EodSettlement
|
|||||||
balance.TotalCredit = data.TotalCredit;
|
balance.TotalCredit = data.TotalCredit;
|
||||||
balance.PayableMargin = data.PayableMargin;
|
balance.PayableMargin = data.PayableMargin;
|
||||||
balance.GuaranteesTotalAmount = data.GuaranteesTotalAmount;
|
balance.GuaranteesTotalAmount = data.GuaranteesTotalAmount;
|
||||||
if (PS.Config.Is国投)
|
balance.AvailableAmount = balance.AmountFund + balance.TotalCredit + balance.PayableMargin + balance.GuaranteesTotalAmount;
|
||||||
{
|
|
||||||
balance.AvailableAmount = balance.AmountFund + balance.TotalCredit + balance.PayableMargin;
|
|
||||||
}
|
|
||||||
else if (PS.Config.Is伴兴 || PS.Config.Is湘财)
|
|
||||||
{
|
|
||||||
balance.AvailableAmount += balance.TotalCredit;
|
|
||||||
}
|
|
||||||
else if (PS.Config.Is东吴)
|
|
||||||
{
|
|
||||||
// 可用金额
|
|
||||||
var marginRate = client?.MarginRate ?? 0;
|
|
||||||
balance.AvailableAmount = balance.AmountFund + (balance.PayableMargin * marginRate);
|
|
||||||
}
|
|
||||||
else if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
balance.AvailableAmount = balance.AmountFund + balance.TotalCredit + balance.PayableMargin + balance.GuaranteesTotalAmount;
|
|
||||||
}
|
|
||||||
balance.DeltaMargin = data.DeltaMargin;
|
balance.DeltaMargin = data.DeltaMargin;
|
||||||
balance.SwapPayableMargin = data.SwapPayableMargin;
|
balance.SwapPayableMargin = data.SwapPayableMargin;
|
||||||
balance.SwapUnMargin = data.SwapUnPayableMargin;
|
balance.SwapUnMargin = data.SwapUnPayableMargin;
|
||||||
@@ -366,14 +349,7 @@ namespace YLErp.BLL.EodSettlement
|
|||||||
balance.SellPv = data.SellPv;
|
balance.SellPv = data.SellPv;
|
||||||
balance.PrepaymentAmount = data.PrepaymentAmount;
|
balance.PrepaymentAmount = data.PrepaymentAmount;
|
||||||
balance.DaliyPnl = data.DaliyPnl;
|
balance.DaliyPnl = data.DaliyPnl;
|
||||||
if (PS.Config.Is山西固收)
|
balance.RoundedDaliyPnl = data.RoundedPositionPnl - (lastClientBalanceDaily?.RoundedPositionPnl ?? 0);
|
||||||
{
|
|
||||||
balance.RoundedDaliyPnl = data.RoundedPositionPnl - (lastClientBalanceDaily?.RoundedPositionPnl ?? 0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
balance.RoundedDaliyPnl = (data.TdWinLoss ?? 0) + data.RoundedPositionPnl - (lastClientBalanceDaily?.RoundedPositionPnl ?? 0);
|
|
||||||
}
|
|
||||||
balance.PositionPnl = data.PositionPnl;
|
balance.PositionPnl = data.PositionPnl;
|
||||||
balance.RoundedPositionPnl = data.RoundedPositionPnl;
|
balance.RoundedPositionPnl = data.RoundedPositionPnl;
|
||||||
balance.ClientSellPositionPnl = data.ClientSellPositionPnl;
|
balance.ClientSellPositionPnl = data.ClientSellPositionPnl;
|
||||||
|
|||||||
@@ -562,7 +562,6 @@ namespace YLErp.BLL.Eod
|
|||||||
var multiplier = ConsGlobal.InstrumentType.IsBond(lastPosi.UnderlyingInstrumentType) ? ConsGlobal.bondShowPriceMultiple : 1;
|
var multiplier = ConsGlobal.InstrumentType.IsBond(lastPosi.UnderlyingInstrumentType) ? ConsGlobal.bondShowPriceMultiple : 1;
|
||||||
var price = lastPosi.PosiGrossPrice * multiplier;
|
var price = lastPosi.PosiGrossPrice * multiplier;
|
||||||
var netPrice = lastPosi.PosiNetNoFeePrice * multiplier;
|
var netPrice = lastPosi.PosiNetNoFeePrice * multiplier;
|
||||||
var dma = trades.Any(s=>s.StructureType== "定义文件型债券收益互换");
|
|
||||||
var um = DataCacheProvider.GetUnderlyingDataSource().GetData(pair.Key.UnderlyingCode);
|
var um = DataCacheProvider.GetUnderlyingDataSource().GetData(pair.Key.UnderlyingCode);
|
||||||
clientPosition = CreateClientPosition(clientPosition, pair.Key.ClientId, pair.Key.UnderlyingCode, netPrice??0, price, posiQty / 10000, comminsions, positionType == PositionTypeFlag.Long ? 0 : 1, lastPosi.ContractSize, pair.Key.PosiDirection);
|
clientPosition = CreateClientPosition(clientPosition, pair.Key.ClientId, pair.Key.UnderlyingCode, netPrice??0, price, posiQty / 10000, comminsions, positionType == PositionTypeFlag.Long ? 0 : 1, lastPosi.ContractSize, pair.Key.PosiDirection);
|
||||||
if (pair.Key.PosiDirection==(int)SwapDirectionEnum.支付)
|
if (pair.Key.PosiDirection==(int)SwapDirectionEnum.支付)
|
||||||
@@ -571,15 +570,7 @@ namespace YLErp.BLL.Eod
|
|||||||
dealSwapFlowIds.AddRange(newSwapFlows.Select(s => s.id));
|
dealSwapFlowIds.AddRange(newSwapFlows.Select(s => s.id));
|
||||||
if (flowMerges.Any())
|
if (flowMerges.Any())
|
||||||
{
|
{
|
||||||
if (client.SwapTradeType != 1)
|
MergeSwapPosition(flowMerges, positionType, clientPosition, posiQty);
|
||||||
{
|
|
||||||
MergeSwapPosition(flowMerges, positionType, clientPosition, posiQty);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
swapTradeAutoService.MergeSwapPositionAvg(newSwapFlows, positionGroupItems.ToList(), clientPosition, multiplier, (int)positionType);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
clientPosition.update_user = 0;
|
clientPosition.update_user = 0;
|
||||||
@@ -628,16 +619,7 @@ namespace YLErp.BLL.Eod
|
|||||||
}
|
}
|
||||||
var clientPosition = clientPositions.FirstOrDefault(x => x.client_id == swapFlowGroup.Key.ClientId && x.security_id == swapFlowGroup.Key.UnderlyingCode);
|
var clientPosition = clientPositions.FirstOrDefault(x => x.client_id == swapFlowGroup.Key.ClientId && x.security_id == swapFlowGroup.Key.UnderlyingCode);
|
||||||
clientPosition = CreateClientPosition(clientPosition, swapFlowGroup.Key.ClientId ?? 0, swapFlowGroup.Key.UnderlyingCode, flowMergeMax.TradingAmountNetAvg ?? 0, flowMergeMax.TradingAmountAvg, qty / 10000, comminsions, flowMergeMax.BsType == (int)PositionTypeFlag.Long ? 0 : 1, flowMergeMax.ContractSize, (int)SwapDirectionEnum.支付);
|
clientPosition = CreateClientPosition(clientPosition, swapFlowGroup.Key.ClientId ?? 0, swapFlowGroup.Key.UnderlyingCode, flowMergeMax.TradingAmountNetAvg ?? 0, flowMergeMax.TradingAmountAvg, qty / 10000, comminsions, flowMergeMax.BsType == (int)PositionTypeFlag.Long ? 0 : 1, flowMergeMax.ContractSize, (int)SwapDirectionEnum.支付);
|
||||||
if (client.SwapTradeType != 1)
|
clientPosition.position_qty = qty / 10000;
|
||||||
{
|
|
||||||
clientPosition.position_qty = qty / 10000;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var flowList = swapFlowGroup.OrderBy(o=>o.OptTime).ToList();
|
|
||||||
var posiType= flowList.First().BsType;
|
|
||||||
swapTradeAutoService.MergeSwapPositionAvg(flowList, null, clientPosition, multiplier, posiType);
|
|
||||||
}
|
|
||||||
clientPosition.update_user = 0;
|
clientPosition.update_user = 0;
|
||||||
if (clientPosition.id == 0)
|
if (clientPosition.id == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -329,9 +329,9 @@ namespace BaseOUDAL
|
|||||||
if (AccountPost == 0) { return string.Empty; }
|
if (AccountPost == 0) { return string.Empty; }
|
||||||
switch (AccountPost)
|
switch (AccountPost)
|
||||||
{
|
{
|
||||||
case 1:if (PS.Config.Is山西固收) return "对冲交易询价对象"; return "客户经理";
|
case 1: return "对冲交易询价对象";
|
||||||
case 2:if (PS.Config.Is山西固收) return "非对冲交易询价对象"; return "交易员";
|
case 2: return "非对冲交易询价对象";
|
||||||
default: if (PS.Config.Is山西固收) return "对冲交易询价对象,非对冲交易询价对象"; return "客户经理,交易员";
|
default: return "对冲交易询价对象,非对冲交易询价对象";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -155,7 +155,6 @@ namespace YLErp.Model
|
|||||||
public const string 交易预付金配置 = "tradeMarginTemplateList";
|
public const string 交易预付金配置 = "tradeMarginTemplateList";
|
||||||
|
|
||||||
public const string 互换估值 = "SettmentEodSwapPositionList";
|
public const string 互换估值 = "SettmentEodSwapPositionList";
|
||||||
public const string 定义文件互换估值 = "DmaSettmentEodSwapPositionList";
|
|
||||||
|
|
||||||
public const string 衡泰对账 = "compare_heitai_data";
|
public const string 衡泰对账 = "compare_heitai_data";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -696,10 +696,6 @@ namespace YLErp.Modules.ClientModule
|
|||||||
{
|
{
|
||||||
throw new ServiceException("客户名称 必须填写");
|
throw new ServiceException("客户名称 必须填写");
|
||||||
}
|
}
|
||||||
if (string.IsNullOrWhiteSpace(req.SettleFileNumber)&&req.SwapTradeType==1)
|
|
||||||
{
|
|
||||||
throw new ServiceException("定义文件编号 必须填写");
|
|
||||||
}
|
|
||||||
//if (string.IsNullOrWhiteSpace(req.))
|
//if (string.IsNullOrWhiteSpace(req.))
|
||||||
//{
|
//{
|
||||||
// throw new ServiceException("自定义必须填写");
|
// throw new ServiceException("自定义必须填写");
|
||||||
|
|||||||
@@ -112,23 +112,7 @@ namespace YLErp.Modules.EodModule.SettlementModule
|
|||||||
eodRiskList = eodRiskList.Where(t => reqClientIds.Contains(t.ClientId)).ToList();
|
eodRiskList = eodRiskList.Where(t => reqClientIds.Contains(t.ClientId)).ToList();
|
||||||
}
|
}
|
||||||
//获取所有用户当日Eod_pnl
|
//获取所有用户当日Eod_pnl
|
||||||
IEnumerable<EodTradePosition> eodpnlList;
|
IEnumerable<EodTradePosition> eodpnlList = DbContext.eod_trade_position.Where(t => t.ValueDate == balanceDate && t.TradeType != "收益互换").ToList();
|
||||||
if (PS.Config.Company == CompanyEnum.国投)
|
|
||||||
{
|
|
||||||
eodpnlList = DbContext.eod_trade_position_openvol.Where(t => t.ValueDate == balanceDate).ToList();
|
|
||||||
}
|
|
||||||
else if (PS.Config.Company == CompanyEnum.格林大华)
|
|
||||||
{
|
|
||||||
eodpnlList = DbContext.eod_trade_position.Where(t => t.ValueDate == balanceDate).ToList();
|
|
||||||
}
|
|
||||||
else if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
eodpnlList = DbContext.eod_trade_position.Where(t => t.ValueDate == balanceDate && t.TradeType != "收益互换").ToList();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
eodpnlList = DbContext.eod_trade_position.Where(t => t.ValueDate == balanceDate).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (reqClientIds != null && reqClientIds.Any())
|
if (reqClientIds != null && reqClientIds.Any())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -578,11 +578,8 @@ where {nameof(t.TaskStartTime)}>'{startDateStr}' and {nameof(t.TaskState)}={(int
|
|||||||
SetTaskStep("检查当日到期交易");
|
SetTaskStep("检查当日到期交易");
|
||||||
new EodCheckMaturityTrade(_context).Execute();//t
|
new EodCheckMaturityTrade(_context).Execute();//t
|
||||||
}
|
}
|
||||||
if (PS.Config.Is山西固收)
|
new EodCheckMonitoredTrade(_context).CalculateMargin();
|
||||||
{
|
new EodCheckMonitoredTrade(_context).ExecuteEodSwap();
|
||||||
new EodCheckMonitoredTrade(_context).CalculateMargin();
|
|
||||||
new EodCheckMonitoredTrade(_context).ExecuteEodSwap();
|
|
||||||
}
|
|
||||||
tasks = new Task[4];
|
tasks = new Task[4];
|
||||||
|
|
||||||
if (_request.IsSettleExchangeTrades)
|
if (_request.IsSettleExchangeTrades)
|
||||||
|
|||||||
@@ -126,12 +126,6 @@ namespace YLErp.Modules.ExchangeTradeModule
|
|||||||
item.UnderlyingPrice = Underlying.Price.OtcFormat(OtcFormatFlag.marginRate);
|
item.UnderlyingPrice = Underlying.Price.OtcFormat(OtcFormatFlag.marginRate);
|
||||||
item.PositionCost = item.PositionCount * Underlying.CountRatio;
|
item.PositionCost = item.PositionCount * Underlying.CountRatio;
|
||||||
item.CountRatio = Underlying.CountRatio;
|
item.CountRatio = Underlying.CountRatio;
|
||||||
//if (PS.Config.Company == Configuration.CompanyEnum.山西固收)
|
|
||||||
//{
|
|
||||||
// item.Position=Math.Abs(item.Position);
|
|
||||||
// item.PositionCost = Math.Abs(item.PositionCost);
|
|
||||||
// item.PositionCount=Math.Abs(item.PositionCount);
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
|
|||||||
@@ -86,15 +86,10 @@ namespace YLErp.Modules.MarginModule
|
|||||||
InitMarginRebateRate = reader.GetDecimalPercent("期初预付金利率", false) ?? 0,
|
InitMarginRebateRate = reader.GetDecimalPercent("期初预付金利率", false) ?? 0,
|
||||||
AddToMarginRebateRate= reader.GetDecimalPercent("追加预付金利率", false) ?? 0,
|
AddToMarginRebateRate= reader.GetDecimalPercent("追加预付金利率", false) ?? 0,
|
||||||
LongInitMarginRate = reader.GetDecimalPercent("多头期初预付金率", false),
|
LongInitMarginRate = reader.GetDecimalPercent("多头期初预付金率", false),
|
||||||
ShortInitMarginRate = reader.GetDecimalPercent("空头期初预付金率", false),
|
ShortInitMarginRate = reader.GetDecimalPercent("空头期初预付金率", false)
|
||||||
Type = reader.GetString("类型", true)
|
|
||||||
};
|
};
|
||||||
var client = new Client();
|
var client = new Client();
|
||||||
if (marginRate.Type != "普通" && marginRate.Type != "多空组合")
|
marginRate.Type = "品种";
|
||||||
{
|
|
||||||
throw new ServiceException("类型设置错误,类型必须位[普通]或[定义文件]");
|
|
||||||
}
|
|
||||||
marginRate.Type = marginRate.Type == "普通" ? "品种" : "多空组合";
|
|
||||||
if (!string.IsNullOrWhiteSpace(marginRate.ClientName))
|
if (!string.IsNullOrWhiteSpace(marginRate.ClientName))
|
||||||
{
|
{
|
||||||
client = DataCacheProvider.GetClientDataSource().AsQueryable().Where(o => o.Name == marginRate.ClientName).FirstOrDefault();
|
client = DataCacheProvider.GetClientDataSource().AsQueryable().Where(o => o.Name == marginRate.ClientName).FirstOrDefault();
|
||||||
@@ -114,32 +109,12 @@ namespace YLErp.Modules.MarginModule
|
|||||||
{
|
{
|
||||||
throw new ServiceException("无数据");
|
throw new ServiceException("无数据");
|
||||||
}
|
}
|
||||||
if (PS.Config.Is山西固收)
|
if (marginrate.InitMarginRate < 0)
|
||||||
{
|
{
|
||||||
if (marginrate.InitMarginRate < 0)
|
throw new ServiceException("预付金率数据格式错");
|
||||||
{
|
|
||||||
throw new ServiceException("预付金率数据格式错");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (marginrate.InitMarginRate < 0 || marginrate.ClosePositionLine < 0 || marginrate.WarningLine < 0)
|
|
||||||
{
|
|
||||||
throw new ServiceException("预付金率数据格式错");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//if (marginrate.Type == "品种" && marginrate.VarietyId == 0)
|
|
||||||
//{
|
|
||||||
// throw new ServiceException("设置品种预付金,品种代码必填");
|
|
||||||
//}
|
|
||||||
|
|
||||||
//品种预付金设置验证
|
|
||||||
if (marginrate.VarietyId>0)
|
|
||||||
{
|
|
||||||
checkMarginRate(marginrate);
|
|
||||||
}
|
}
|
||||||
var dbMarginRate = new client_marginrate();
|
var dbMarginRate = new client_marginrate();
|
||||||
var marginrateType = marginrate.Type == "多空组合" ? "定义文件" : "普通";
|
var marginrateType = "普通";
|
||||||
if (marginrate.id != 0)
|
if (marginrate.id != 0)
|
||||||
{
|
{
|
||||||
dbMarginRate = DbContext.client_marginrate.Find(marginrate.id);
|
dbMarginRate = DbContext.client_marginrate.Find(marginrate.id);
|
||||||
@@ -148,10 +123,7 @@ namespace YLErp.Modules.MarginModule
|
|||||||
throw new ServiceException("未找到该记录");
|
throw new ServiceException("未找到该记录");
|
||||||
}
|
}
|
||||||
dbMarginRate.ClientId = marginrate.ClientId;
|
dbMarginRate.ClientId = marginrate.ClientId;
|
||||||
if (marginrate.Type == "品种")
|
dbMarginRate.VarietyId = marginrate.VarietyId;
|
||||||
{
|
|
||||||
dbMarginRate.VarietyId = marginrate.VarietyId;
|
|
||||||
}
|
|
||||||
dbMarginRate.Type = marginrate.Type;
|
dbMarginRate.Type = marginrate.Type;
|
||||||
dbMarginRate.InitMarginRate = marginrate.InitMarginRate;
|
dbMarginRate.InitMarginRate = marginrate.InitMarginRate;
|
||||||
dbMarginRate.ClosePositionLine = marginrate.ClosePositionLine;
|
dbMarginRate.ClosePositionLine = marginrate.ClosePositionLine;
|
||||||
@@ -164,8 +136,7 @@ namespace YLErp.Modules.MarginModule
|
|||||||
dbMarginRate.OptId = UserId;
|
dbMarginRate.OptId = UserId;
|
||||||
dbMarginRate.OptName = UserName;
|
dbMarginRate.OptName = UserName;
|
||||||
dbMarginRate.OptDate = DateTime.Now;
|
dbMarginRate.OptDate = DateTime.Now;
|
||||||
if (DbContext.client_marginrate.Any(o =>
|
if (DbContext.client_marginrate.Any(o =>marginrate.Type == "品种" && o.VarietyId == marginrate.VarietyId
|
||||||
(marginrate.Type == "多空组合" || (marginrate.Type == "品种" && o.VarietyId == marginrate.VarietyId))
|
|
||||||
&& o.ClientId == marginrate.ClientId
|
&& o.ClientId == marginrate.ClientId
|
||||||
&& o.ValueDate == marginrate.ValueDate
|
&& o.ValueDate == marginrate.ValueDate
|
||||||
&& o.id != marginrate.id))
|
&& o.id != marginrate.id))
|
||||||
@@ -175,8 +146,7 @@ namespace YLErp.Modules.MarginModule
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dbMarginRate = DbContext.client_marginrate.Where(o =>
|
dbMarginRate = DbContext.client_marginrate.Where(o =>marginrate.Type == "品种" && o.VarietyId == marginrate.VarietyId
|
||||||
(marginrate.Type == "多空组合" || (marginrate.Type == "品种" && o.VarietyId == marginrate.VarietyId))
|
|
||||||
&& o.Type == marginrate.Type
|
&& o.Type == marginrate.Type
|
||||||
&& o.ClientId == marginrate.ClientId
|
&& o.ClientId == marginrate.ClientId
|
||||||
&& o.ValueDate == marginrate.ValueDate).FirstOrDefault();
|
&& o.ValueDate == marginrate.ValueDate).FirstOrDefault();
|
||||||
|
|||||||
@@ -18,10 +18,6 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public List<EodSwapPositionResponse> EodSwapPositions { get; set; }
|
public List<EodSwapPositionResponse> EodSwapPositions { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 定义文件互换估值
|
|
||||||
/// </summary>
|
|
||||||
public List<EodSwapPositionResponse> DmaEodSwapPositions { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 互换持仓明细
|
/// 互换持仓明细
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<SwapPositionResponse> SwapPositions { get; set; }
|
public List<SwapPositionResponse> SwapPositions { get; set; }
|
||||||
|
|||||||
-9
@@ -63,11 +63,6 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule
|
|||||||
var eodReq = new ClientSwapPositionRequest { ClientId = emailData.ClientId, ValueDate = emailData.To, ValueDateFrom = emailData.From,page=1, rows=10000,StructureType= "普通债券类收益互换" };
|
var eodReq = new ClientSwapPositionRequest { ClientId = emailData.ClientId, ValueDate = emailData.To, ValueDateFrom = emailData.From,page=1, rows=10000,StructureType= "普通债券类收益互换" };
|
||||||
report.EodSwapPositions = swapEodPositionService.SearchEodPositionList(eodReq).rows.ToList();
|
report.EodSwapPositions = swapEodPositionService.SearchEodPositionList(eodReq).rows.ToList();
|
||||||
}
|
}
|
||||||
if (emailData.SendContent.Contains("定义文件互换估值"))
|
|
||||||
{
|
|
||||||
var eodReq = new ClientSwapPositionRequest { ClientId = emailData.ClientId, ValueDate = emailData.To, ValueDateFrom = emailData.From, page = 1, rows = 10000, StructureType = "定义文件型债券收益互换" };
|
|
||||||
report.DmaEodSwapPositions = swapEodPositionService.SearchEodPositionList(eodReq).rows.ToList();
|
|
||||||
}
|
|
||||||
if (emailData.SendContent.Contains("互换持仓明细"))
|
if (emailData.SendContent.Contains("互换持仓明细"))
|
||||||
{
|
{
|
||||||
var eodReq = new ClientSwapPositionRequest { ClientId = emailData.ClientId, ValueDate = emailData.To, ValueDateFrom = emailData.From, page = 1, rows = 10000 };
|
var eodReq = new ClientSwapPositionRequest { ClientId = emailData.ClientId, ValueDate = emailData.To, ValueDateFrom = emailData.From, page = 1, rows = 10000 };
|
||||||
@@ -240,10 +235,6 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule
|
|||||||
{
|
{
|
||||||
modelDict.Add("互换估值", report.EodSwapPositions);
|
modelDict.Add("互换估值", report.EodSwapPositions);
|
||||||
}
|
}
|
||||||
if (report.DmaEodSwapPositions != null)
|
|
||||||
{
|
|
||||||
modelDict.Add("定义文件互换估值", report.DmaEodSwapPositions);
|
|
||||||
}
|
|
||||||
if (report.SwapPositions != null)
|
if (report.SwapPositions != null)
|
||||||
{
|
{
|
||||||
modelDict.Add("互换持仓明细", report.SwapPositions);
|
modelDict.Add("互换持仓明细", report.SwapPositions);
|
||||||
|
|||||||
@@ -3613,38 +3613,34 @@ namespace YLErp.Modules.RiskModule
|
|||||||
Status = QuotaSettingApprovalStatus.Valid,
|
Status = QuotaSettingApprovalStatus.Valid,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (PS.Config.Is山西固收)
|
//交易-互换价格偏离比例
|
||||||
|
_quotaSettings.Add(new QuotaSetting()
|
||||||
{
|
{
|
||||||
//交易-互换价格偏离比例
|
QuotaType = QuotaTypeEnum.TRADE,
|
||||||
_quotaSettings.Add(new QuotaSetting()
|
QuotaRange = 0,
|
||||||
{
|
QuotaIndex = "互换价格偏离比例",
|
||||||
QuotaType = QuotaTypeEnum.TRADE,
|
QuotaLowerLimit = null,
|
||||||
QuotaRange = 0,
|
QuotaUpperLimit = null,
|
||||||
QuotaIndex = "互换价格偏离比例",
|
WarningLowerLimit = null,
|
||||||
QuotaLowerLimit = null,
|
WarningUpperLimit = null,
|
||||||
QuotaUpperLimit = null,
|
Percent = true,
|
||||||
WarningLowerLimit = null,
|
IsValid = true,
|
||||||
WarningUpperLimit = null,
|
Status = QuotaSettingApprovalStatus.Valid,
|
||||||
Percent = true,
|
});
|
||||||
IsValid = true,
|
//交易-DV01
|
||||||
Status = QuotaSettingApprovalStatus.Valid,
|
_quotaSettings.Add(new QuotaSetting()
|
||||||
});
|
{
|
||||||
//交易-DV01
|
QuotaType = QuotaTypeEnum.TRADE,
|
||||||
_quotaSettings.Add(new QuotaSetting()
|
QuotaRange = 0,
|
||||||
{
|
QuotaIndex = "DV01",
|
||||||
QuotaType = QuotaTypeEnum.TRADE,
|
QuotaLowerLimit = null,
|
||||||
QuotaRange = 0,
|
QuotaUpperLimit = null,
|
||||||
QuotaIndex = "DV01",
|
WarningLowerLimit = null,
|
||||||
QuotaLowerLimit = null,
|
WarningUpperLimit = null,
|
||||||
QuotaUpperLimit = null,
|
Percent = false,
|
||||||
WarningLowerLimit = null,
|
IsValid = true,
|
||||||
WarningUpperLimit = null,
|
Status = QuotaSettingApprovalStatus.Valid,
|
||||||
Percent = false,
|
});
|
||||||
IsValid = true,
|
|
||||||
Status = QuotaSettingApprovalStatus.Valid,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
#region 客户
|
#region 客户
|
||||||
|
|
||||||
@@ -4381,13 +4377,6 @@ namespace YLErp.Modules.RiskModule
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
var lastTrial = trialService.QueryLastQuotaTrial(tradeId, true);
|
var lastTrial = trialService.QueryLastQuotaTrial(tradeId, true);
|
||||||
if (quotaObj.TrialStatus == QuotaTrialStatusEnum.Error && !PS.Config.Is山西固收
|
|
||||||
&& (lastTrial == null || lastTrial.TrialStatus == QuotaTrialStatusEnum.Error))//上次没算或上次和这次试算结果都不通过,直接拒绝
|
|
||||||
{
|
|
||||||
res.RetCode = TradeOpenRetCode.QuotaTrialError;
|
|
||||||
res.ErrorMsg = $"试算不通过,不允许确认成交操作";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (quotaObj.TrialStatus == QuotaTrialStatusEnum.Success)
|
if (quotaObj.TrialStatus == QuotaTrialStatusEnum.Success)
|
||||||
{
|
{
|
||||||
new TradeRiskCheckLogService(UserInfo).AddLog(quotaObj);
|
new TradeRiskCheckLogService(UserInfo).AddLog(quotaObj);
|
||||||
@@ -4653,11 +4642,8 @@ namespace YLErp.Modules.RiskModule
|
|||||||
}
|
}
|
||||||
string quotaWarningMsg = "", quotaMsg = "";
|
string quotaWarningMsg = "", quotaMsg = "";
|
||||||
bool quotaWarningStatus = true, quotaStatus = true;
|
bool quotaWarningStatus = true, quotaStatus = true;
|
||||||
if (PS.Config.Is山西固收 && tradeObj.StructureType != "定义文件型债券收益互换")
|
var positions = DbContext.swap_position.Where(x => x.SwapTradeId == tradeId && x.PosiQuantity > 0 && x.IsInitial && !x.Invalid).ToList();
|
||||||
{
|
quotaStatus = CheckUnderlyingWhiteList(tradeObj.ClientId, positions, out quotaMsg);
|
||||||
var positions = DbContext.swap_position.Where(x => x.SwapTradeId == tradeId && x.PosiQuantity > 0 && x.IsInitial && !x.Invalid).ToList();
|
|
||||||
quotaStatus = CheckUnderlyingWhiteList(tradeObj.ClientId, positions, out quotaMsg);
|
|
||||||
}
|
|
||||||
if (quotaStatus)
|
if (quotaStatus)
|
||||||
{
|
{
|
||||||
var allList = QueryPrecheckQuotaSetting(false);
|
var allList = QueryPrecheckQuotaSetting(false);
|
||||||
@@ -4760,14 +4746,7 @@ namespace YLErp.Modules.RiskModule
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (PS.Config.ErpElement.Company == Configuration.CompanyEnum.天风 || PS.Config.Is山西固收)
|
result.TrialStatus = QuotaTrialStatusEnum.Error;
|
||||||
{
|
|
||||||
result.TrialStatus = QuotaTrialStatusEnum.Error;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result.TrialStatus = QuotaTrialStatusEnum.Warning;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result.TradeId = tradeObj.id;
|
result.TradeId = tradeObj.id;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ namespace YLErp.Modules.SwapModule
|
|||||||
from se in setemp.DefaultIfEmpty()
|
from se in setemp.DefaultIfEmpty()
|
||||||
join em in emailquery on f.id equals em.event_id into emTmp
|
join em in emailquery on f.id equals em.event_id into emTmp
|
||||||
from em in emTmp.DefaultIfEmpty()
|
from em in emTmp.DefaultIfEmpty()
|
||||||
where t.ValidState == "Valid" && t.StructureType != "多空组合" && t.StructureType != "定义文件型债券收益互换"
|
where t.ValidState == "Valid" && t.TradeType == "收益互换"
|
||||||
select new SwapEventEmailResponse
|
select new SwapEventEmailResponse
|
||||||
{
|
{
|
||||||
event_id = f.id,
|
event_id = f.id,
|
||||||
@@ -158,7 +158,7 @@ namespace YLErp.Modules.SwapModule
|
|||||||
from se in setemp.DefaultIfEmpty()
|
from se in setemp.DefaultIfEmpty()
|
||||||
join em in DbContext.swap_event_email on f.id equals em.event_id into emTmp
|
join em in DbContext.swap_event_email on f.id equals em.event_id into emTmp
|
||||||
from em in emTmp.DefaultIfEmpty()
|
from em in emTmp.DefaultIfEmpty()
|
||||||
where t.ValidState == "Valid" && t.StructureType != "多空组合" && t.StructureType != "定义文件型债券收益互换" && (em == null || em.send_email == false)
|
where t.ValidState == "Valid" && t.TradeType=="收益互换" && (em == null || em.send_email == false)
|
||||||
&& clientIds.Contains(f.ClientId)
|
&& clientIds.Contains(f.ClientId)
|
||||||
&& f.UnwindDate == valueDate && f.PayDirection > 0 && eventTypes.Contains(f.EventType) && f.DataState == (int)SwapFlowDateStateEnum.完成
|
&& f.UnwindDate == valueDate && f.PayDirection > 0 && eventTypes.Contains(f.EventType) && f.DataState == (int)SwapFlowDateStateEnum.完成
|
||||||
select f;
|
select f;
|
||||||
|
|||||||
@@ -140,22 +140,6 @@ namespace YLErp.Modules.SwapModule
|
|||||||
var posiPositions = positions.Where(x => x.PosiDirection > 0).ToList();
|
var posiPositions = positions.Where(x => x.PosiDirection > 0).ToList();
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 校验 定义文件型债券收益互换 持仓标的只能存在一笔
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="td"></param>
|
|
||||||
/// <exception cref="ServiceException"></exception>
|
|
||||||
public void ExistLongShortTrade(trade td)
|
|
||||||
{
|
|
||||||
var longshortName = "定义文件型债券收益互换";
|
|
||||||
if (td.StructureType == longshortName)
|
|
||||||
{
|
|
||||||
if (DbContext.trade.Any(a => a.ClientId == td.ClientId && a.TradeStatus == "确认成交" && a.ValidState != ConsGlobal.InValid && a.StructureType == longshortName && a.UnderlyingCode == td.UnderlyingCode && a.id != td.id))
|
|
||||||
{
|
|
||||||
throw new ServiceException($"{td.ClientName}已经存在标的为{td.UnderlyingCode}的定义文件型债券收益互换交易");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 单标的生成开仓事件
|
/// 单标的生成开仓事件
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="td"></param>
|
/// <param name="td"></param>
|
||||||
|
|||||||
@@ -110,13 +110,6 @@ namespace YLErp.Modules.SystemModule
|
|||||||
Value = m.id.ToString()
|
Value = m.id.ToString()
|
||||||
}).ToList();
|
}).ToList();
|
||||||
}
|
}
|
||||||
public static List<SelectItem> GetClientSwapType()
|
|
||||||
{
|
|
||||||
List<SelectItem> list = new List<SelectItem>();
|
|
||||||
list.Add(new SelectItem { Text = "普通", Value = "0" });
|
|
||||||
list.Add(new SelectItem { Text = "定义文件", Value = "1" });
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取变更字段列表
|
/// 获取变更字段列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -179,8 +179,6 @@ namespace YLErp.Modules.TradeModule.DealModule
|
|||||||
result.ErrorMsg = $"客户:{td.ClientName},交易编号:{td.TradeNumber},状态为:{td.TradeStatus},不能被确认";
|
result.ErrorMsg = $"客户:{td.ClientName},交易编号:{td.TradeNumber},状态为:{td.TradeStatus},不能被确认";
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
// 校验定义文件类型互换
|
|
||||||
new SwapTradeService(UserInfo).ExistLongShortTrade(td);
|
|
||||||
//判断交易对手方信息是否允许确认
|
//判断交易对手方信息是否允许确认
|
||||||
|
|
||||||
var client = DataCacheProvider.GetClientDataSource().GetData(td.ClientId);
|
var client = DataCacheProvider.GetClientDataSource().GetData(td.ClientId);
|
||||||
|
|||||||
@@ -57,9 +57,6 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
|||||||
statusList.Add(ConsTrade.已到期);
|
statusList.Add(ConsTrade.已到期);
|
||||||
statusList.Add(ConsTrade.已平仓);
|
statusList.Add(ConsTrade.已平仓);
|
||||||
statusList.Add(ConsTrade.已执行);
|
statusList.Add(ConsTrade.已执行);
|
||||||
}
|
|
||||||
if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
statusList.Add(ConsTrade.审批中);
|
statusList.Add(ConsTrade.审批中);
|
||||||
}
|
}
|
||||||
TradeDalService service = new TradeDalService(this);
|
TradeDalService service = new TradeDalService(this);
|
||||||
@@ -75,47 +72,17 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
|||||||
//----------------------------------
|
//----------------------------------
|
||||||
// 交易现金交割记录
|
// 交易现金交割记录
|
||||||
//----------------------------------
|
//----------------------------------
|
||||||
List<trade> allTradeList = new List<trade>();
|
List<trade> allTradeList = allTradeList = DbContext.trade.Where(x => tradeIds.Contains(x.id)).ToList();
|
||||||
if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
allTradeList = DbContext.trade.Where(x=> tradeIds.Contains(x.id)).ToList();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
allTradeList = service.GetTradeOrEodTradeOfTidASid(tradeIds, SystemValueDate);
|
|
||||||
}
|
|
||||||
if (allTradeList.Count < 1)
|
if (allTradeList.Count < 1)
|
||||||
{
|
{
|
||||||
throw new ServiceException("没有已确认的记录信息!");
|
throw new ServiceException("没有已确认的记录信息!");
|
||||||
}
|
}
|
||||||
//只选中一笔子交易,按一笔子交易生成确认书
|
|
||||||
if (PS.Config.Is光大光子 || PS.Config.Is兴业商贸)
|
|
||||||
{
|
|
||||||
allTradeList.RemoveAll(x => x.ParentTradeId != 0 && !tradeIds.Contains(x.id));
|
|
||||||
}
|
|
||||||
|
|
||||||
var tradeDic = allTradeList.Where(O =>
|
var tradeDic = allTradeList.Where(O =>
|
||||||
statusList.Contains(O.TradeStatus)
|
statusList.Contains(O.TradeStatus)
|
||||||
&& O.ClientId != 0
|
&& O.ClientId != 0
|
||||||
&& O.ParentTradeId == 0)
|
&& O.ParentTradeId == 0)
|
||||||
.ToDictionary(n => n.id, n => new trade_contract_group { trade = n });
|
.ToDictionary(n => n.id, n => new trade_contract_group { trade = n });
|
||||||
if (PS.Config.Is长江)
|
|
||||||
{
|
|
||||||
foreach (var item in allTradeList)
|
|
||||||
{
|
|
||||||
if (item.ParentTradeId != 0)
|
|
||||||
{
|
|
||||||
if (item.StructureType != "牛市价差" && item.StructureType != "熊市价差")
|
|
||||||
{
|
|
||||||
if (tradeDic.ContainsKey(item.ParentTradeId))
|
|
||||||
{
|
|
||||||
tradeDic.Remove(item.ParentTradeId);
|
|
||||||
}
|
|
||||||
tradeDic.Add(item.id, new trade_contract_group { trade = item });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var cashQuery = from trade in allTradeList
|
var cashQuery = from trade in allTradeList
|
||||||
join tradeCash in DbContext.trade_cash on trade.id equals tradeCash.TradeId
|
join tradeCash in DbContext.trade_cash on trade.id equals tradeCash.TradeId
|
||||||
where tradeCash.ValidState != ConsGlobal.InValid && !tradeCash.IsDeleted
|
where tradeCash.ValidState != ConsGlobal.InValid && !tradeCash.IsDeleted
|
||||||
|
|||||||
+4
-24
@@ -68,7 +68,6 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
|||||||
var resultList = new List<TradeDocGenerateResult>();
|
var resultList = new List<TradeDocGenerateResult>();
|
||||||
AppManager.TryResolve(out ITradeSettleBillGenerator generatorV2);
|
AppManager.TryResolve(out ITradeSettleBillGenerator generatorV2);
|
||||||
Dictionary<int, List<swap_flow_event>> noDMAFlows = new Dictionary<int, List<swap_flow_event>>();
|
Dictionary<int, List<swap_flow_event>> noDMAFlows = new Dictionary<int, List<swap_flow_event>>();
|
||||||
Dictionary<int, List<swap_flow_event>> DMAFlows = new Dictionary<int, List<swap_flow_event>>();
|
|
||||||
List<trade_extend> extendList = null;
|
List<trade_extend> extendList = null;
|
||||||
if (flowEvents != null && flowEvents.Any())
|
if (flowEvents != null && flowEvents.Any())
|
||||||
{
|
{
|
||||||
@@ -105,33 +104,19 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
|||||||
}
|
}
|
||||||
if (trade.ValidState!=ConsGlobal.InValid)
|
if (trade.ValidState!=ConsGlobal.InValid)
|
||||||
{
|
{
|
||||||
if (trade.StructureType == "多空组合"||trade.StructureType== "定义文件型债券收益互换")
|
if (noDMAFlows.ContainsKey(trade.ClientId))
|
||||||
{
|
{
|
||||||
if (DMAFlows.ContainsKey(trade.ClientId))
|
noDMAFlows[trade.ClientId].Add(flowEvent);
|
||||||
{
|
|
||||||
DMAFlows[trade.ClientId].Add(flowEvent);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DMAFlows[trade.ClientId] = new List<swap_flow_event> { flowEvent };
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (noDMAFlows.ContainsKey(trade.ClientId))
|
noDMAFlows[trade.ClientId] = new List<swap_flow_event> { flowEvent };
|
||||||
{
|
|
||||||
noDMAFlows[trade.ClientId].Add(flowEvent);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
noDMAFlows[trade.ClientId] = new List<swap_flow_event> { flowEvent };
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (noDMAFlows.Count()==0&& DMAFlows.Count()==0)
|
if (noDMAFlows.Count()==0)
|
||||||
{
|
{
|
||||||
throw new ServiceException("没有需要生成的确认书");
|
throw new ServiceException("没有需要生成的确认书");
|
||||||
}
|
}
|
||||||
@@ -140,11 +125,6 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
|||||||
var noDMAResults = GenerateShanxiSwap(item.Key, item.Value, trades, swapPositions, allFlowEvents, generatorV2, docType);
|
var noDMAResults = GenerateShanxiSwap(item.Key, item.Value, trades, swapPositions, allFlowEvents, generatorV2, docType);
|
||||||
resultList.AddRange(noDMAResults);
|
resultList.AddRange(noDMAResults);
|
||||||
}
|
}
|
||||||
foreach (var item in DMAFlows)
|
|
||||||
{
|
|
||||||
var DMAResults = GenerateShanxiSwap(item.Key, item.Value, trades, swapPositions, allFlowEvents, generatorV2, docType);
|
|
||||||
resultList.AddRange(DMAResults);
|
|
||||||
}
|
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
{Name:"阶梯费率",Rights:["互换簿记预设-阶梯费率"],Url:"SwapRate"},
|
{Name:"阶梯费率",Rights:["互换簿记预设-阶梯费率"],Url:"SwapRate"},
|
||||||
{Name:"浮动利率",Rights:["互换簿记预设-浮动利率"],Url:"SwapFloatRate"},
|
{Name:"浮动利率",Rights:["互换簿记预设-浮动利率"],Url:"SwapFloatRate"},
|
||||||
{Name:"簿记账户与衡泰关系",Rights:["互换簿记预设-簿记账户与衡泰关系"],Url:"EtradeAccount/Index"},
|
{Name:"簿记账户与衡泰关系",Rights:["互换簿记预设-簿记账户与衡泰关系"],Url:"EtradeAccount/Index"},
|
||||||
{Name:"做市时间配置",Rights:["互换簿记预设-做市时间配置"],Url:"TrsOpen/Index"}
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{Name:"数据管理",Rights:["基础参数管理"],Icon:"menu-icon iconone"
|
{Name:"数据管理",Rights:["基础参数管理"],Icon:"menu-icon iconone"
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -325,12 +325,9 @@ namespace YLErp.Web
|
|||||||
new SelectListItem {Value = ConsTrade.确认成交, Text = ConsTrade.确认成交 },
|
new SelectListItem {Value = ConsTrade.确认成交, Text = ConsTrade.确认成交 },
|
||||||
new SelectListItem {Value = ConsTrade.已到期, Text = ConsTrade.已到期 },
|
new SelectListItem {Value = ConsTrade.已到期, Text = ConsTrade.已到期 },
|
||||||
new SelectListItem {Value = ConsTrade.已执行, Text = ConsTrade.已执行 },
|
new SelectListItem {Value = ConsTrade.已执行, Text = ConsTrade.已执行 },
|
||||||
new SelectListItem {Value = ConsTrade.已平仓, Text = ConsTrade.已平仓 }
|
new SelectListItem {Value = ConsTrade.已平仓, Text = ConsTrade.已平仓 },
|
||||||
|
new SelectListItem { Value= ConsTrade.审批中, Text = ConsTrade.审批中 }
|
||||||
};
|
};
|
||||||
if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
list.Add(new SelectListItem { Value= ConsTrade.审批中, Text = ConsTrade.审批中 });
|
|
||||||
}
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,11 +83,6 @@ namespace YLErp.Web.Controllers
|
|||||||
Expires = DateTimeOffset.Now.AddHours(1)
|
Expires = DateTimeOffset.Now.AddHours(1)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (!hasError && !PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
var str = Server.CacheProvider.Get(_auth_login + guid)?.ToString();
|
|
||||||
model.NeedCaptcha = hasError = !string.IsNullOrEmpty(str) && str.EndsWith("##");
|
|
||||||
}
|
|
||||||
|
|
||||||
Server.CacheProvider.Set(_auth_login + guid, hasError ? "##" : "#", TimeSpan.FromMinutes(20));
|
Server.CacheProvider.Set(_auth_login + guid, hasError ? "##" : "#", TimeSpan.FromMinutes(20));
|
||||||
|
|
||||||
|
|||||||
@@ -65,12 +65,9 @@ namespace YLErp.Web.Controllers
|
|||||||
StructureType = "普通收益互换",
|
StructureType = "普通收益互换",
|
||||||
InitialMargin = 0
|
InitialMargin = 0
|
||||||
};
|
};
|
||||||
if (PS.Config.Is山西固收)
|
r.StructureType = "普通债券类收益互换";
|
||||||
{
|
r.ExerciseDate = QdpCalendarHelper.GetNonHolidayDefore(r.StartDate.Value.AddDays(14));
|
||||||
r.StructureType = "普通债券类收益互换";
|
tradeExtendJson.FlowBookMode = (int)FlowBookModeEnum.重置;
|
||||||
r.ExerciseDate = QdpCalendarHelper.GetNonHolidayDefore(r.StartDate.Value.AddDays(14));
|
|
||||||
tradeExtendJson.FlowBookMode = (int)FlowBookModeEnum.重置;
|
|
||||||
}
|
|
||||||
r.trade_extend = new trade_extend()
|
r.trade_extend = new trade_extend()
|
||||||
{
|
{
|
||||||
ExtendJson = JsonHelper.Serialize(tradeExtendJson)
|
ExtendJson = JsonHelper.Serialize(tradeExtendJson)
|
||||||
@@ -340,7 +337,6 @@ namespace YLErp.Web.Controllers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
bool edit = req.id != 0;
|
bool edit = req.id != 0;
|
||||||
swapTradeService.ExistLongShortTrade(req);
|
|
||||||
var r = swapTradeService.SaveTrade(req);
|
var r = swapTradeService.SaveTrade(req);
|
||||||
swapTradeService.AddPushLog(r);
|
swapTradeService.AddPushLog(r);
|
||||||
Task.Run(() =>
|
Task.Run(() =>
|
||||||
@@ -813,23 +809,6 @@ namespace YLErp.Web.Controllers
|
|||||||
return View();
|
return View();
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 互换估值
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="clientId"></param>
|
|
||||||
/// <param name="startTime"></param>
|
|
||||||
/// <param name="endTime"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[MyAuthorize("结算管理-每日估值报告")]
|
|
||||||
public ActionResult TradeMarketReport_DmaEodPosition(int? clientId, string startTime, string endTime, bool ParentFlag)
|
|
||||||
{
|
|
||||||
ViewBag.ClientId = clientId;
|
|
||||||
ViewBag.StartTime = startTime;
|
|
||||||
ViewBag.EndTime = endTime;
|
|
||||||
ViewBag.ParentFlag = ParentFlag;
|
|
||||||
ViewBag.StructureType = "定义文件型债券收益互换";
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 互换持仓明细
|
/// 互换持仓明细
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="req"></param>
|
/// <param name="req"></param>
|
||||||
|
|||||||
@@ -511,37 +511,12 @@ namespace YLErp.Web.Controllers
|
|||||||
var task2 = Task.Run(() =>
|
var task2 = Task.Run(() =>
|
||||||
{
|
{
|
||||||
var clientIds = clientList.Select(O => O.id).ToList();
|
var clientIds = clientList.Select(O => O.id).ToList();
|
||||||
if (PS.Config.Is山西固收)
|
return ClientBalanceUtility.GetClientRiskMonitorForShanXiGuShou(clientIds, req.ValueDate.Value, req.MarginShownType);
|
||||||
{
|
|
||||||
return ClientBalanceUtility.GetClientRiskMonitorForShanXiGuShou(clientIds, req.ValueDate.Value, req.MarginShownType);
|
|
||||||
}
|
|
||||||
return ClientBalanceUtility.GetClientRiskMonitor(clientIds, req.ValueDate.Value, req.MarginShownType);
|
|
||||||
});
|
});
|
||||||
var task3 = Task.Run(() =>
|
Task.WaitAll(task1, task2);
|
||||||
{
|
|
||||||
if (PS.Config.Company == Configuration.CompanyEnum.国海)
|
|
||||||
{
|
|
||||||
var nameList = clientList.Select(n => n.Name).ToList();
|
|
||||||
return yldb.QuotaMonitor_Client.Where(O => O.ValueDate == req.ValueDate.Value && nameList.Contains(O.ClientName)).ToDictionary(K => K.ClientName, V => V.CreditExposure);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
var task4 = Task.Run(() =>
|
|
||||||
{
|
|
||||||
if (PS.Config.Is润和)
|
|
||||||
{
|
|
||||||
var levelIds = clientList.Where(O => O.LevelId != null).Select(O => O.LevelId).Distinct().ToList();
|
|
||||||
var ratioInfos = clientDB.clientlevel.Where(O => O.Ratio != null && levelIds.Contains(O.id)).Select(O => new { O.id, O.Ratio }).ToDictionary(K => K.id, V => V.Ratio);
|
|
||||||
return ratioInfos;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
});
|
|
||||||
Task.WaitAll(task1, task2, task3, task4);
|
|
||||||
|
|
||||||
var sList = task1.Result;
|
var sList = task1.Result;
|
||||||
var banlanceList = task2.Result ?? Array.Empty<ClientSettleBalance>();
|
var banlanceList = task2.Result ?? Array.Empty<ClientSettleBalance>();
|
||||||
var creditExposureDict = task3.Result ?? new Dictionary<string, double?>();
|
|
||||||
var ratioDict = task4.Result ?? new Dictionary<int, double?>();
|
|
||||||
|
|
||||||
//var sList = new ClientQueryService(curUser).SearchList(req, predicate);
|
//var sList = new ClientQueryService(curUser).SearchList(req, predicate);
|
||||||
//var clientIds = clientList.Select(O => O.id).ToList();
|
//var clientIds = clientList.Select(O => O.id).ToList();
|
||||||
@@ -706,8 +681,6 @@ namespace YLErp.Web.Controllers
|
|||||||
x.availableNetFundSums = (clientBalance.PositionNotionalPrincipal / x.NetFundSum);
|
x.availableNetFundSums = (clientBalance.PositionNotionalPrincipal / x.NetFundSum);
|
||||||
x.EAD = clientBalance.EAD;
|
x.EAD = clientBalance.EAD;
|
||||||
var clientName = client?.Name ?? "";
|
var clientName = client?.Name ?? "";
|
||||||
//这个字段只有国海用得到
|
|
||||||
x.CreditExposure = creditExposureDict.ContainsKey(clientName) ? creditExposureDict[clientName] : null;
|
|
||||||
x.MinimumTransferAmount = client?.MinimumTransferAmount;
|
x.MinimumTransferAmount = client?.MinimumTransferAmount;
|
||||||
|
|
||||||
x.LastHTSettlemetTime = clientBalance.LastHTSettlemetTime;
|
x.LastHTSettlemetTime = clientBalance.LastHTSettlemetTime;
|
||||||
@@ -717,11 +690,6 @@ namespace YLErp.Web.Controllers
|
|||||||
x.AvailableAmount = clientBalance.AvailableAmount + clientBalance.TotalCredit;
|
x.AvailableAmount = clientBalance.AvailableAmount + clientBalance.TotalCredit;
|
||||||
x.DesirableFund = Math.Max(clientBalance.AvailableAmount, 0);
|
x.DesirableFund = Math.Max(clientBalance.AvailableAmount, 0);
|
||||||
|
|
||||||
if (!ratioDict.TryGetValue(client.LevelId ?? 0, out var ratio))
|
|
||||||
{
|
|
||||||
ratio = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ((MarginOptionEnum)client.MarginOptionType)
|
switch ((MarginOptionEnum)client.MarginOptionType)
|
||||||
{
|
{
|
||||||
case MarginOptionEnum.单向追保:
|
case MarginOptionEnum.单向追保:
|
||||||
@@ -740,7 +708,7 @@ namespace YLErp.Web.Controllers
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
x.SpanValue = x.HoldingDeposit / ratio;
|
x.SpanValue = x.HoldingDeposit;
|
||||||
}
|
}
|
||||||
|
|
||||||
//拼装标签值
|
//拼装标签值
|
||||||
|
|||||||
@@ -479,40 +479,8 @@ namespace YLErp.Web.Controllers
|
|||||||
{
|
{
|
||||||
EmailTradeConfirmResultType status;
|
EmailTradeConfirmResultType status;
|
||||||
string message;
|
string message;
|
||||||
if (PS.Config.Company == Configuration.CompanyEnum.中金)
|
var report = new SettlementReportFotShanXiService(user).GetReportData(emailData, userAssetUnits, template);
|
||||||
{
|
(status, message) = new SettlementReportFotShanXiService(user).SendSettlementReports(emailData, report, template, skipCheckMarginCall, recevier);
|
||||||
var report = new SettlementReportForZJService(user).GetReportData(emailData, userAssetUnits, template);
|
|
||||||
(status, message) = new SettlementReportForZJService(user).SendSettlementReports(emailData, report, template, recevier);
|
|
||||||
}
|
|
||||||
else if (PS.Config.Is国投)
|
|
||||||
{
|
|
||||||
var report = new SettlementReportFotGTService(user).GetReportData(emailData, userAssetUnits, template);
|
|
||||||
(status, message) = new SettlementReportFotGTService(user).SendSettlementReports(emailData, report, template, skipCheckMarginCall, recevier);
|
|
||||||
}
|
|
||||||
else if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
var report = new SettlementReportFotShanXiService(user).GetReportData(emailData, userAssetUnits, template);
|
|
||||||
(status, message) = new SettlementReportFotShanXiService(user).SendSettlementReports(emailData, report, template, skipCheckMarginCall, recevier);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var report = new SettlementReportService(user).GetReportData(emailData, userAssetUnits, template);
|
|
||||||
var pdfHtml = string.Empty;
|
|
||||||
var txtHtml = string.Empty;
|
|
||||||
if (!needHtml)
|
|
||||||
{
|
|
||||||
if (PS.Config.Is湘财)
|
|
||||||
{
|
|
||||||
pdfHtml = await _viewRenderer.RenderToStringAsync("clientbalance/TradeMarketClientPdf_XiangCai", report);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pdfHtml = await _viewRenderer.RenderToStringAsync("clientbalance/TradeMarketClientPdf", report);
|
|
||||||
}
|
|
||||||
txtHtml = await _viewRenderer.RenderToStringAsync("clientbalance/TradeMarketClientTxt", report);
|
|
||||||
}
|
|
||||||
(status, message) = new SettlementReportService(user).SendSettlementReports(emailData, report, template, pdfHtml, txtHtml, skipCheckMarginCall, recevier);
|
|
||||||
}
|
|
||||||
switch (status)
|
switch (status)
|
||||||
{
|
{
|
||||||
case EmailTradeConfirmResultType.Succeed:
|
case EmailTradeConfirmResultType.Succeed:
|
||||||
@@ -609,60 +577,10 @@ namespace YLErp.Web.Controllers
|
|||||||
{
|
{
|
||||||
userAssetUnits = GetUserAssetunitIds();
|
userAssetUnits = GetUserAssetunitIds();
|
||||||
}
|
}
|
||||||
if (PS.Config.Company == Configuration.CompanyEnum.中金)
|
var report = new SettlementReportFotShanXiService(CurUser).GetReportData(emailData, userAssetUnits, template);
|
||||||
{
|
var path = new SettlementReportFotShanXiService(CurUser).GenerateFileEntry(report, emailData.TargetFileType);
|
||||||
var report = new SettlementReportForZJService(CurUser).GetReportData(emailData, userAssetUnits, template);
|
var relativePath = path.Substring(path.IndexOf("App_Docs") - 1);
|
||||||
var path = new SettlementReportForZJService(CurUser).GenerateFileEntry(report);
|
return JsonSuccess("", relativePath);
|
||||||
var relativePath = path.Substring(path.IndexOf("App_Docs") - 1);
|
|
||||||
return JsonSuccess("", relativePath);
|
|
||||||
}
|
|
||||||
else if (PS.Config.Is国投)
|
|
||||||
{
|
|
||||||
var report = new SettlementReportFotGTService(CurUser).GetReportData(emailData, userAssetUnits, template);
|
|
||||||
var path = new SettlementReportFotGTService(CurUser).GenerateFileEntry(report, emailData.TargetFileType);
|
|
||||||
var relativePath = path.Substring(path.IndexOf("App_Docs") - 1);
|
|
||||||
return JsonSuccess("", relativePath);
|
|
||||||
}
|
|
||||||
else if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
var report = new SettlementReportFotShanXiService(CurUser).GetReportData(emailData, userAssetUnits, template);
|
|
||||||
var path = new SettlementReportFotShanXiService(CurUser).GenerateFileEntry(report, emailData.TargetFileType);
|
|
||||||
var relativePath = path.Substring(path.IndexOf("App_Docs") - 1);
|
|
||||||
return JsonSuccess("", relativePath);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var report = new SettlementReportService(CurUser).GetReportData(emailData, userAssetUnits, template);
|
|
||||||
try
|
|
||||||
{
|
|
||||||
|
|
||||||
var html = "";
|
|
||||||
if (emailData.TargetFileType.ToLower() == "pdf")
|
|
||||||
{
|
|
||||||
if (PS.Config.Is湘财)
|
|
||||||
{
|
|
||||||
html = await _viewRenderer.RenderToStringAsync("clientbalance/TradeMarketClientPdf_XiangCai", report);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
html = await _viewRenderer.RenderToStringAsync("clientbalance/TradeMarketClientPdf", report);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (emailData.TargetFileType.ToLower() == "txt")
|
|
||||||
{
|
|
||||||
html = await _viewRenderer.RenderToStringAsync("clientbalance/TradeMarketClientTxt", report);
|
|
||||||
}
|
|
||||||
|
|
||||||
var path = new SettlementReportService(CurUser).GenerateFileEntry(report, emailData.TargetFileType, html);
|
|
||||||
//补丁,返回一个相对地址
|
|
||||||
var relativePath = path.Substring(path.IndexOf("App_Docs") - 1);
|
|
||||||
return JsonSuccess("", relativePath);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
return JsonError(e.Message == "The number of columns in PdfPTable constructor must be greater than zero." ? "生成的pdf列表的列数必须大于零,请检查配置列不可为空" : e.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//[ValidateInput(false)]
|
//[ValidateInput(false)]
|
||||||
public ViewResult TradeMarketClientTxt(DingShiReport report)
|
public ViewResult TradeMarketClientTxt(DingShiReport report)
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
roles = CurUser.Roles.Select(s => s.Id).ToList(),
|
roles = CurUser.Roles.Select(s => s.Id).ToList(),
|
||||||
isZhaoZheng = YLErp.PS.Config.Company == CompanyEnum.招证,
|
isZhaoZheng = YLErp.PS.Config.Company == CompanyEnum.招证,
|
||||||
isDongWu = YLErp.PS.Config.Company == CompanyEnum.东吴,
|
isDongWu = YLErp.PS.Config.Company == CompanyEnum.东吴,
|
||||||
isShanxiGuShou = YLErp.PS.Config.Is山西固收,
|
|
||||||
ViewTagPermission = CurUser.客户管理.客户标签查看权限,
|
ViewTagPermission = CurUser.客户管理.客户标签查看权限,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
@{
|
@{
|
||||||
ViewBag.Title = "预付金率 | 编辑";
|
ViewBag.Title = "预付金率 | 编辑";
|
||||||
Layout = "~/Views/Shared/_InfoLayout.cshtml";
|
Layout = "~/Views/Shared/_InfoLayout.cshtml";
|
||||||
var hideMargin = PS.Config.Is山西固收 && Model.Type != "品种";
|
|
||||||
}
|
}
|
||||||
@section CSS{
|
@section CSS{
|
||||||
<link href="~/Statics/libs/datetime/flatpickr/flatpickr.min.css" rel="stylesheet" />
|
<link href="~/Statics/libs/datetime/flatpickr/flatpickr.min.css" rel="stylesheet" />
|
||||||
@@ -58,69 +57,27 @@
|
|||||||
@Html.HiddenFor(model => model.EncryptId)
|
@Html.HiddenFor(model => model.EncryptId)
|
||||||
@Html.HiddenFor(model => model.Type)
|
@Html.HiddenFor(model => model.Type)
|
||||||
@Html.MyDropdownFor(model => model.ClientId, ClientDataModel.GetAllClient())
|
@Html.MyDropdownFor(model => model.ClientId, ClientDataModel.GetAllClient())
|
||||||
@if (!PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
@if (Model.Type == "品种")
|
|
||||||
{
|
|
||||||
@Html.MyDropdownFor(model => model.VarietyId, varietyController.GetAllvarietyNameCode())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
<div id="ValueDateDiv" class="form-group col-md-6">
|
<div id="ValueDateDiv" class="form-group col-md-6">
|
||||||
<label class="formlabel">生效日期:</label>
|
<label class="formlabel">生效日期:</label>
|
||||||
<input class="search-input datepicker" id="ValueDate" name="ValueDate" value="@(Model.id == 0 ? "" : Model.ValueDate.ToString("yyyy-MM-dd"))" type="text" autocomplete="off" required="required">
|
<input class="search-input datepicker" id="ValueDate" name="ValueDate" value="@(Model.id == 0 ? "" : Model.ValueDate.ToString("yyyy-MM-dd"))" type="text" autocomplete="off" required="required">
|
||||||
<span style="color:red">*</span>
|
<span style="color:red">*</span>
|
||||||
</div>
|
</div>
|
||||||
@if (!hideMargin)
|
<div id="InitMarginRateDiv" class="form-group col-md-6">
|
||||||
{
|
<label class="formlabel">期初预付金</label>
|
||||||
<div id="InitMarginRateDiv" class="form-group col-md-6">
|
|
||||||
<label class="formlabel">期初预付金</label>
|
|
||||||
<input type="text" name="InitMarginRate" id="InitMarginRate" value="@(Model.InitMarginRate * 100)" class="text-box" required="required" />
|
<input type="text" name="InitMarginRate" id="InitMarginRate" value="@(Model.InitMarginRate * 100)" class="text-box" required="required" />
|
||||||
<span>%</span>
|
<span>%</span>
|
||||||
</div>
|
</div>
|
||||||
}
|
<div id="InitMarginRebateRateDiv" class="form-group col-md-6">
|
||||||
@if (!PS.Config.Is山西固收)
|
<label class="formlabel">期初预付金利率</label>
|
||||||
{
|
<input type="text" name="InitMarginRebateRate" id="InitMarginRebateRate" value="@(Model.InitMarginRebateRate * 100)" class="text-box" />
|
||||||
<div id="ClosePositionLineDiv" class="form-group col-md-6">
|
<span>%</span>
|
||||||
<label class="formlabel">平仓线</label>
|
</div>
|
||||||
<input type="text" name="ClosePositionLine" id="ClosePositionLine" value="@(Model.ClosePositionLine * 100)" class="text-box" required="required" />
|
<div id="AddToMarginRebateRateDiv" class="form-group col-md-6">
|
||||||
<span>%</span>
|
<label class="formlabel">追加预付金利率</label>
|
||||||
</div>
|
<input type="text" name="AddToMarginRebateRate" id="AddToMarginRebateRate" value="@(Model.AddToMarginRebateRate * 100)" class="text-box" />
|
||||||
<div id="WarningLineDiv" class="form-group col-md-6">
|
|
||||||
<label class="formlabel">预警线</label>
|
|
||||||
<input type="text" name="WarningLine" id="WarningLine" value="@(Model.WarningLine * 100)" class="text-box" required="required" />
|
|
||||||
<span>%</span>
|
<span>%</span>
|
||||||
</div>
|
</div>
|
||||||
}
|
|
||||||
@if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
@if (Model.Type != "品种")
|
|
||||||
{
|
|
||||||
<div id="LongInitMarginRateDiv" class="form-group col-md-6">
|
|
||||||
<label class="formlabel">多头期初预付金</label>
|
|
||||||
<input type="text" name="LongInitMarginRate" id="LongInitMarginRate" value="@(Model.LongInitMarginRate * 100)" class="text-box" />
|
|
||||||
<span>%</span>
|
|
||||||
</div>
|
|
||||||
<div id="ShortInitMarginRateDiv" class="form-group col-md-6">
|
|
||||||
<label class="formlabel">空头期初预付金</label>
|
|
||||||
<input type="text" name="ShortInitMarginRate" id="ShortInitMarginRate" value="@(Model.ShortInitMarginRate * 100)" class="text-box" />
|
|
||||||
<span>%</span>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<div id="InitMarginRebateRateDiv" class="form-group col-md-6">
|
|
||||||
<label class="formlabel">期初预付金利率</label>
|
|
||||||
<input type="text" name="InitMarginRebateRate" id="InitMarginRebateRate" value="@(Model.InitMarginRebateRate * 100)" class="text-box" />
|
|
||||||
<span>%</span>
|
|
||||||
</div>
|
|
||||||
<div id="AddToMarginRebateRateDiv" class="form-group col-md-6">
|
|
||||||
<label class="formlabel">追加预付金利率</label>
|
|
||||||
<input type="text" name="AddToMarginRebateRate" id="AddToMarginRebateRate" value="@(Model.AddToMarginRebateRate * 100)" class="text-box" />
|
|
||||||
<span>%</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-buttons">
|
<div class="form-buttons">
|
||||||
@MyControls.Btn("保存", "saveMarginRate()")
|
@MyControls.Btn("保存", "saveMarginRate()")
|
||||||
|
|||||||
@@ -4,8 +4,7 @@
|
|||||||
var pageObj = new
|
var pageObj = new
|
||||||
{
|
{
|
||||||
canEdit = CurUser.基础参数管理.互换预付金率修改,
|
canEdit = CurUser.基础参数管理.互换预付金率修改,
|
||||||
curTabIndex = Context.Request.Query["tab"].ToString().TrimToNull() ?? "1",
|
curTabIndex = Context.Request.Query["tab"].ToString().TrimToNull() ?? "1"
|
||||||
isShanZheng=PS.Config.Is山西固收
|
|
||||||
};
|
};
|
||||||
ViewData["tab-active-" + pageObj.curTabIndex] = "active";
|
ViewData["tab-active-" + pageObj.curTabIndex] = "active";
|
||||||
}
|
}
|
||||||
@@ -36,9 +35,6 @@
|
|||||||
}
|
}
|
||||||
<div class="searchdiv">
|
<div class="searchdiv">
|
||||||
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient(), true, true, null, false)
|
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient(), true, true, null, false)
|
||||||
@if(!PS.Config.Is山西固收){
|
|
||||||
@Html.MyAceDropdownInput("VarietyId", "品种名", varietyController.GetAllvarietyCode(), true, true, null, false)
|
|
||||||
}
|
|
||||||
@MyControls.SearchBtn()
|
@MyControls.SearchBtn()
|
||||||
@if (CurUser.基础参数管理.互换预付金率修改)
|
@if (CurUser.基础参数管理.互换预付金率修改)
|
||||||
{
|
{
|
||||||
@@ -52,17 +48,11 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link @(ViewData["tab-active-1"])" data-toggle="tab" href="#jqgridDiv1" title="互换预付金">互换预付金</a>
|
<a class="nav-link @(ViewData["tab-active-1"])" data-toggle="tab" href="#jqgridDiv1" title="互换预付金">互换预付金</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link @(ViewData["tab-active-2"])" data-toggle="tab" href="#jqgridDiv2" title="定义文件预付金">定义文件预付金</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div id="jqgridDiv1" class="tab-pane @(ViewData["tab-active-1"])">
|
<div id="jqgridDiv1" class="tab-pane @(ViewData["tab-active-1"])">
|
||||||
<table id='listGrid1' class='scroll' cellpadding='0' cellspacing='0'></table><div id='pagerGrid1'></div>
|
<table id='listGrid1' class='scroll' cellpadding='0' cellspacing='0'></table><div id='pagerGrid1'></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="jqgridDiv2" class="tab-pane @(ViewData["tab-active-2"])">
|
|
||||||
<table id='listGrid2' class='scroll' cellpadding='0' cellspacing='0'></table><div id='pagerGrid2'></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
<div class="search-left">
|
<div class="search-left">
|
||||||
@Html.MyAceDropdownInput("WarnningType", "提醒类型", TradeSwapMarginMonitorModel.GetWarnningTypes())
|
@Html.MyAceDropdownInput("WarnningType", "提醒类型", TradeSwapMarginMonitorModel.GetWarnningTypes())
|
||||||
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient())
|
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient())
|
||||||
@Html.MyAceDropdownInput("SwapType", "互换类型", ClientDataModel.GetClientSwapType())
|
|
||||||
|
|
||||||
@MyControls.SearchBtn()
|
@MyControls.SearchBtn()
|
||||||
@MyControls.Btn("导出", "execExport()")
|
@MyControls.Btn("导出", "execExport()")
|
||||||
|
|||||||
@@ -92,7 +92,6 @@
|
|||||||
<select v-model="trade.StructureType" v-on:change="changeStructureType" :disabled="trade.id>0">
|
<select v-model="trade.StructureType" v-on:change="changeStructureType" :disabled="trade.id>0">
|
||||||
<option value="普通债券类收益互换">普通债券类收益互换</option>
|
<option value="普通债券类收益互换">普通债券类收益互换</option>
|
||||||
<option value="普通收益互换">普通收益互换</option>
|
<option value="普通收益互换">普通收益互换</option>
|
||||||
<option value="定义文件型债券收益互换" disabled>定义文件型债券收益互换</option>
|
|
||||||
<option value="多空组合" disabled>多空组合</option>
|
<option value="多空组合" disabled>多空组合</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -335,9 +334,7 @@
|
|||||||
<select v-model="item.InterestMode" v-on:change="changeInterestMode(item)">
|
<select v-model="item.InterestMode" v-on:change="changeInterestMode(item)">
|
||||||
<option value="9">标的期初全价</option>
|
<option value="9">标的期初全价</option>
|
||||||
<option value=1>固定值</option>
|
<option value=1>固定值</option>
|
||||||
<option value=2 v-if="trade.StructureType!='定义文件型债券收益互换'">合约名义本金规模</option>
|
<option value=2>合约名义本金规模</option>
|
||||||
<option value=7 v-if="trade.StructureType=='定义文件型债券收益互换'">多头存续名义本金</option>
|
|
||||||
<option value=8 v-if="trade.StructureType=='定义文件型债券收益互换'">空头存续名义本金</option>
|
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@@ -1,109 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewBag.Title = "每日估值报告";
|
|
||||||
ViewBag.Menu = "结算财务-每日估值报告";
|
|
||||||
|
|
||||||
Layout = "~/Views/Shared/_MainLayout.cshtml";
|
|
||||||
var pageObj = new
|
|
||||||
{
|
|
||||||
EndTime = ViewBag.EndTime?.ToString(),
|
|
||||||
StartTime = ViewBag.StartTime?.ToString(),
|
|
||||||
valueDate = valuedateBLL.ValueDate.ToString("yyyy-MM-dd"),
|
|
||||||
configcolumn = configcolumn_data.定义文件互换估值,
|
|
||||||
StructureType = ViewBag.StructureType
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@section CSS{
|
|
||||||
<link href="~/Style/Css/TradeMarketReport.css" rel="stylesheet" />
|
|
||||||
<style>
|
|
||||||
.chosen-container {
|
|
||||||
width: 250px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chosen-container .chosen-drop {
|
|
||||||
width: 250px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ValueDateFrom, #ValueDate {
|
|
||||||
width: 152px !important;
|
|
||||||
font-size: 1rem !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-jqgrid{
|
|
||||||
margin: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.data-error {
|
|
||||||
background-color: #EE7280 !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
}
|
|
||||||
@section JS{
|
|
||||||
<script src="~/Scripts/app/tradeHelper.js?v=@HtmlUtil.JsVersion"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var page = @Json.Serialize(pageObj);
|
|
||||||
if ("@ViewBag.ParentFlag" == "True")
|
|
||||||
$("#ParentFlag").attr("checked", true);
|
|
||||||
else
|
|
||||||
$("#ParentFlag").attr("checked", false);
|
|
||||||
</script>
|
|
||||||
<script src="~/Scripts/app/swaptrade/TradeMarketReport_DmaEodPosition.js?v=@HtmlUtil.JsVersion"></script>
|
|
||||||
}
|
|
||||||
|
|
||||||
<div class="searchdiv">
|
|
||||||
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient(), false, true, null, false)
|
|
||||||
@Html.CheckBox("ParentFlag", false) @Html.Label(null,"包含子级", new { @style = "font-size:12px;" })
|
|
||||||
@Html.ShortInput("ValueDateFrom", "起始日期:")
|
|
||||||
@Html.ShortInput("ValueDate", "结束日期:")
|
|
||||||
@MyControls.SearchBtn()
|
|
||||||
@if (CurUser.结算管理_每日估值报告邮件发送)
|
|
||||||
{
|
|
||||||
@MyControls.Btn("配置报告", "PopDesc()")
|
|
||||||
@MyControls.Btn("发送报告", "SendReport()")
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<fieldset id="fieldsetgbox_listGrid" style="margin-bottom: 20px;">
|
|
||||||
<div class="tabbable">
|
|
||||||
<ul id="myTab" class="nav nav-tabs nav-main">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="#" id="dmapositionTab">定义文件互换估值</a>
|
|
||||||
</li>
|
|
||||||
@* <li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetailsSwap")' id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>*@
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
|
||||||
</li>
|
|
||||||
@if (!PS.Config.Is申万)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
<div style="width:30px;display:inline;margin-left: 20px;" onclick="showChiCang();return false;">
|
|
||||||
<img src="~/Images/configure.png" />
|
|
||||||
</div>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="tableContent" class="yc-panel my-0 p-0">
|
|
||||||
@Html.Raw(JqGridSimple.OutTable())
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset id="fieldsetgbox_listGrid" class="ml-3">
|
|
||||||
<span style="color:gray">
|
|
||||||
@Html.Raw(DBCacheManager.Single.GetStr(CacheTable.DingShiDesc))
|
|
||||||
</span>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
@@ -72,28 +72,20 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link active" href="#" id="positionTab">互换估值</a>
|
<a class="nav-link active" href="#" id="positionTab">互换估值</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_DmaEodPosition")' id="dmapositionTab">定义文件互换估值</a>
|
|
||||||
</li>
|
|
||||||
@* <li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetailsSwap")' id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>*@
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
||||||
</li>
|
</li>
|
||||||
@if (!PS.Config.Is申万)
|
<li class="nav-item">
|
||||||
{
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
||||||
<li class="nav-item">
|
</li>
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
<div style="width:30px;display:inline;margin-left: 20px;" onclick="showChiCang();return false;">
|
|
||||||
<img src="~/Images/configure.png" />
|
|
||||||
</div>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
<div style="width:30px;display:inline;margin-left: 20px;" onclick="showChiCang();return false;">
|
||||||
|
<img src="~/Images/configure.png" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="tableContent" class="yc-panel my-0 p-0">
|
<div id="tableContent" class="yc-panel my-0 p-0">
|
||||||
@Html.Raw(JqGridSimple.OutTable())
|
@Html.Raw(JqGridSimple.OutTable())
|
||||||
|
|||||||
@@ -36,10 +36,10 @@
|
|||||||
<script src="~/Scripts/app/tradeHelper.js?v=@HtmlUtil.JsVersion"></script>
|
<script src="~/Scripts/app/tradeHelper.js?v=@HtmlUtil.JsVersion"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var page = @Json.Serialize(pageObj);
|
var page = @Json.Serialize(pageObj);
|
||||||
if ("@ViewBag.ParentFlag" == "True")
|
if ("@ViewBag.ParentFlag" == "True")
|
||||||
$("#ParentFlag").attr("checked", true);
|
$("#ParentFlag").attr("checked", true);
|
||||||
else
|
else
|
||||||
$("#ParentFlag").attr("checked", false);
|
$("#ParentFlag").attr("checked", false);
|
||||||
</script>
|
</script>
|
||||||
<script src="~/Scripts/app/swaptrade/TradeMarketReport_HistoricalPositionSwapFlow.js?v=@HtmlUtil.JsVersion"></script>
|
<script src="~/Scripts/app/swaptrade/TradeMarketReport_HistoricalPositionSwapFlow.js?v=@HtmlUtil.JsVersion"></script>
|
||||||
}
|
}
|
||||||
@@ -59,37 +59,28 @@
|
|||||||
<br />
|
<br />
|
||||||
|
|
||||||
<fieldset id="fieldsetgbox_listGrid" style="margin-bottom: 20px;">
|
<fieldset id="fieldsetgbox_listGrid" style="margin-bottom: 20px;">
|
||||||
<div class="tabbable">
|
<div class="tabbable">
|
||||||
<ul id="myTab" class="nav nav-tabs nav-main">
|
<ul id="myTab" class="nav nav-tabs nav-main">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_DmaEodPosition")' id="dmapositionTab">定义文件互换估值</a>
|
<a class="nav-link active" href="#" id="historySwapTab">互换交易流水</a>
|
||||||
</li>
|
</li>
|
||||||
@* <li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetailsSwap")' id="positionSwapTab">互换持仓明细</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
||||||
</li>*@
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="#" id="historySwapTab">互换交易流水</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
|
||||||
</li>
|
|
||||||
@if (!PS.Config.Is申万)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
</ul>
|
||||||
<div style="width:30px;display:inline;margin-left: 20px;" onclick="showChiCang();return false;">
|
<div style="width:30px;display:inline;margin-left: 20px;" onclick="showChiCang();return false;">
|
||||||
<img src="~/Images/configure.png" />
|
<img src="~/Images/configure.png" />
|
||||||
</div>
|
</div>
|
||||||
</ul>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="tableContent" class="yc-panel my-0 p-0">
|
<div id="tableContent" class="yc-panel my-0 p-0">
|
||||||
@Html.Raw(JqGridSimple.OutTable())
|
@Html.Raw(JqGridSimple.OutTable())
|
||||||
|
|||||||
@@ -1,111 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewBag.Title = "每日估值报告";
|
|
||||||
ViewBag.Menu = "结算财务-每日估值报告";
|
|
||||||
|
|
||||||
Layout = "~/Views/Shared/_MainLayout.cshtml";
|
|
||||||
var pageObj = new
|
|
||||||
{
|
|
||||||
EndTime = ViewBag.EndTime?.ToString(),
|
|
||||||
StartTime = ViewBag.StartTime?.ToString(),
|
|
||||||
valueDate = valuedateBLL.ValueDate.ToString("yyyy-MM-dd"),
|
|
||||||
configcolumn = configcolumn_data.持仓明细
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@section CSS{
|
|
||||||
<link href="~/Style/Css/TradeMarketReport.css" rel="stylesheet" />
|
|
||||||
<style>
|
|
||||||
.chosen-container {
|
|
||||||
width: 250px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chosen-container .chosen-drop {
|
|
||||||
width: 250px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ValueDateFrom, #ValueDate {
|
|
||||||
width: 152px !important;
|
|
||||||
font-size: 1rem !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-jqgrid {
|
|
||||||
margin: 0 !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
}
|
|
||||||
@section JS{
|
|
||||||
<script src="~/Scripts/app/tradeHelper.js?v=@HtmlUtil.JsVersion"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var page = @Json.Serialize(pageObj);
|
|
||||||
if ("@ViewBag.ParentFlag" == "True")
|
|
||||||
$("#ParentFlag").attr("checked", true);
|
|
||||||
else
|
|
||||||
$("#ParentFlag").attr("checked", false);
|
|
||||||
</script>
|
|
||||||
<script src="~/Scripts/app/swaptrade/TradeMarketReport_PositionSwapFlow.js?v=@HtmlUtil.JsVersion"></script>
|
|
||||||
}
|
|
||||||
|
|
||||||
<div class="searchdiv">
|
|
||||||
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient(), false, true, null, false)
|
|
||||||
@Html.CheckBox("ParentFlag", false) @Html.Label(null,"包含子级", new { @style = "font-size:12px;" })
|
|
||||||
@Html.ShortInput("ValueDateFrom", "起始日期:")
|
|
||||||
@Html.ShortInput("ValueDate", "结束日期:")
|
|
||||||
@MyControls.SearchBtn()
|
|
||||||
@if (CurUser.结算管理_每日估值报告邮件发送)
|
|
||||||
{
|
|
||||||
@MyControls.Btn("配置报告", "PopDesc()")
|
|
||||||
@MyControls.Btn("发送报告", "SendReport()")
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<fieldset id="fieldsetgbox_listGrid" style="margin-bottom: 20px;">
|
|
||||||
<div class="tabbable">
|
|
||||||
<ul id="myTab" class="nav nav-tabs nav-main">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_DmaEodPosition")' id="dmapositionTab">定义文件互换估值</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="#" id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>
|
|
||||||
@if (PS.Config.IsGuoJun || PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwap")' id="historySwapTab">互换历史交易</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
|
||||||
</li>
|
|
||||||
@if (!PS.Config.Is申万)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
<div style="width:30px;display:inline;margin-left: 20px;" onclick="showChiCang();return false;">
|
|
||||||
<img src="~/Images/configure.png" />
|
|
||||||
</div>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div id="tableContent" class="yc-panel my-0 p-0">
|
|
||||||
@Html.Raw(JqGridSimple.OutTable())
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset id="fieldsetgbox_listGrid" class="ml-3">
|
|
||||||
<span style="color:gray">
|
|
||||||
@Html.Raw(DBCacheManager.Single.GetStr(CacheTable.DingShiDesc))
|
|
||||||
</span>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
@@ -3,8 +3,8 @@
|
|||||||
ViewBag.Title = "用户信息 | 编辑";
|
ViewBag.Title = "用户信息 | 编辑";
|
||||||
Layout = "~/Views/Shared/_InfoLayout.cshtml";
|
Layout = "~/Views/Shared/_InfoLayout.cshtml";
|
||||||
bool isUserEdit = (CurUser.系统管理.用户新增 && Model.Id == 0) || CurUser.系统管理.用户修改;
|
bool isUserEdit = (CurUser.系统管理.用户新增 && Model.Id == 0) || CurUser.系统管理.用户修改;
|
||||||
var accountPostName = PS.Config.Is山西固收 ? "对冲交易询价对象" : "客户经理";
|
var accountPostName = "对冲交易询价对象";
|
||||||
var traderName = PS.Config.Is山西固收 ? "非对冲交易询价对象" : "交易员";
|
var traderName = "非对冲交易询价对象";
|
||||||
}
|
}
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
#AccountPost_chosen {
|
#AccountPost_chosen {
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
IsAutoSealAndUploadFiles = YLErp.PS.GetErpConfig().IsAutoSealAndUploadFiles,
|
IsAutoSealAndUploadFiles = YLErp.PS.GetErpConfig().IsAutoSealAndUploadFiles,
|
||||||
IsZheQi = PS.Config.Is浙期,
|
IsZheQi = PS.Config.Is浙期,
|
||||||
IsAutoSealAfterGeneratedBook = PS.GetErpConfig().IsAutoSealAfterGeneratedBook,
|
IsAutoSealAfterGeneratedBook = PS.GetErpConfig().IsAutoSealAfterGeneratedBook,
|
||||||
IsShanxiGushou = PS.Config.Is山西固收,
|
|
||||||
canGenerate = CurUser.结算管理_交易确认书生成,
|
canGenerate = CurUser.结算管理_交易确认书生成,
|
||||||
canSendEmail = CurUser.结算管理_交易确认书邮件发送
|
canSendEmail = CurUser.结算管理_交易确认书邮件发送
|
||||||
};
|
};
|
||||||
@@ -59,10 +58,6 @@
|
|||||||
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient())
|
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient())
|
||||||
@Html.MyAceDropdownInput("AssetId", "簿记账户", AssetunitController.GetClientassetunit())
|
@Html.MyAceDropdownInput("AssetId", "簿记账户", AssetunitController.GetClientassetunit())
|
||||||
@Html.MyAceDropdownInput("GroupId", "簿记账户组", AssetUnitModel.GetAllAssetUnitGroupItem())
|
@Html.MyAceDropdownInput("GroupId", "簿记账户组", AssetUnitModel.GetAllAssetUnitGroupItem())
|
||||||
@if (!PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
@Html.MyAceDropdownInput("TradeTypes", "结构类型", GlobalData.GetTradeTypes(tradeTypes, true))
|
|
||||||
}
|
|
||||||
|
|
||||||
<div class="search-group">
|
<div class="search-group">
|
||||||
<span class="search-label">标的代码</span>
|
<span class="search-label">标的代码</span>
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
ViewTagPermission = CurUser.客户管理.客户标签查看权限,
|
ViewTagPermission = CurUser.客户管理.客户标签查看权限,
|
||||||
isZhaoZheng = YLErp.PS.Config.Company == CompanyEnum.招证,
|
isZhaoZheng = YLErp.PS.Config.Company == CompanyEnum.招证,
|
||||||
isDongWu = YLErp.PS.Config.Company == CompanyEnum.东吴,
|
isDongWu = YLErp.PS.Config.Company == CompanyEnum.东吴,
|
||||||
isShanxiGuShou = YLErp.PS.Config.Is山西固收,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@section CSS{
|
@section CSS{
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
isDongZheng = YLErp.PS.Config.Is润和,
|
isDongZheng = YLErp.PS.Config.Is润和,
|
||||||
isGuoHai = YLErp.PS.Config.Company == CompanyEnum.国海,
|
isGuoHai = YLErp.PS.Config.Company == CompanyEnum.国海,
|
||||||
isDongWu = YLErp.PS.Config.Is东吴,
|
isDongWu = YLErp.PS.Config.Is东吴,
|
||||||
isShanXi = YLErp.PS.Config.Is山西固收,
|
|
||||||
isHongYuan = YLErp.PS.Config.Is宏源,
|
isHongYuan = YLErp.PS.Config.Is宏源,
|
||||||
showPFE = false,
|
showPFE = false,
|
||||||
isChangJiang = YLErp.PS.Config.Company == CompanyEnum.长江,
|
isChangJiang = YLErp.PS.Config.Company == CompanyEnum.长江,
|
||||||
|
|||||||
@@ -154,17 +154,6 @@
|
|||||||
@Html.MyAceDropdownInput("CBContractor", "结算报告联系人: ", ClientModelHelper.GetAllcontactype(true))
|
@Html.MyAceDropdownInput("CBContractor", "结算报告联系人: ", ClientModelHelper.GetAllcontactype(true))
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@if (!PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<div id="clientDetailTemplate" style="display:inline-flex;margin-top:5px;">
|
|
||||||
<div id="clientDetail">
|
|
||||||
@Html.MyAceDropdownInput2("setDetailTemplate", "交易明细模板: ", YLErp.Web.Controllers.tradeController.GetAllTradeDetailTemplate(), false, "默认", true)
|
|
||||||
</div>
|
|
||||||
<div id="clientDetailContractor" style="padding-left:30px">
|
|
||||||
@Html.MyAceDropdownInput("CDContractor", "交易明细联系人: ", ClientModelHelper.GetAllcontactype(true))
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
@*@Html.MyAceDropdownInput2("setClientBalanceType","结算报告数据类型",new List<SelectListItem>() {
|
@*@Html.MyAceDropdownInput2("setClientBalanceType","结算报告数据类型",new List<SelectListItem>() {
|
||||||
new SelectListItem(){ Value = "default",Text = "系统默认"},
|
new SelectListItem(){ Value = "default",Text = "系统默认"},
|
||||||
//new SelectListItem(){ Value = "ClientBalanceGap",Text = "财务增量"},
|
//new SelectListItem(){ Value = "ClientBalanceGap",Text = "财务增量"},
|
||||||
@@ -174,35 +163,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@if (PS.Config.Is山西固收)
|
<label style="margin-top: 5px;">
|
||||||
{
|
<input type="checkbox" name="HasTradeDetails" checked id="HasTradeDetails" style="display:none;">
|
||||||
<label style="margin-top: 5px;">
|
<input type="checkbox" name="HasTradeMarketReport" checked id="HasTradeMarketReport"><span class="">结算报告</span>
|
||||||
<input type="checkbox" name="HasTradeDetails" checked id="HasTradeDetails" style="display:none;">
|
<select id="TradeMarketReportDateType">
|
||||||
<input type="checkbox" name="HasTradeMarketReport" checked id="HasTradeMarketReport"><span class="">结算报告</span>
|
@Html.Raw(GlobalData.GetOptions(new List<string>() { "当日", "当月区间", "全部区间" }))
|
||||||
<select id="TradeMarketReportDateType">
|
</select>
|
||||||
@Html.Raw(GlobalData.GetOptions(new List<string>() { "当日", "当月区间", "全部区间" }))
|
</label>
|
||||||
</select>
|
|
||||||
</label>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<label style="margin-top: 20px">
|
|
||||||
<input type="checkbox" name="HasTradeDetails" checked id="HasTradeDetails"><span class="">1:交易明细</span>
|
|
||||||
<select id="TradeDetailsDateType">
|
|
||||||
@Html.Raw(GlobalData.GetOptions(new List<string>() { "当日", "当月区间", "全部区间" }))
|
|
||||||
</select>
|
|
||||||
</label>
|
|
||||||
<label style="margin-top: 20px; margin-left: 60px;">
|
|
||||||
<input type="checkbox" name="HasTradeMarketReport" checked id="HasTradeMarketReport"><span class="">2:结算报告</span>
|
|
||||||
@if (PS.Config.Company != CompanyEnum.中金)
|
|
||||||
{
|
|
||||||
<select id="TradeMarketReportDateType">
|
|
||||||
@Html.Raw(GlobalData.GetOptions(new List<string>() { "当日", "当月区间", "全部区间" }))
|
|
||||||
</select>
|
|
||||||
}
|
|
||||||
|
|
||||||
</label>
|
|
||||||
}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -305,20 +305,8 @@
|
|||||||
<h3>报告内容:</h3>
|
<h3>报告内容:</h3>
|
||||||
<div class="send-content-item">
|
<div class="send-content-item">
|
||||||
<lable>账户状况:</lable><input class="check-input" type="checkbox" name="sendcontent" value="账户状况" />
|
<lable>账户状况:</lable><input class="check-input" type="checkbox" name="sendcontent" value="账户状况" />
|
||||||
@if (PS.Config.Is山西固收)
|
<lable>互换估值:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换估值" />
|
||||||
{
|
<lable>互换交易流水:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换交易流水" />
|
||||||
<lable>互换估值:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换估值" />
|
|
||||||
<lable>定义文件互换估值:</lable>
|
|
||||||
|
|
||||||
<input class="check-input" type="checkbox" name="sendcontent" value="定义文件互换估值" />
|
|
||||||
@*<lable>互换持仓明细:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换持仓明细" />*@
|
|
||||||
<lable>互换交易流水:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换交易流水" />
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<lable>持仓明细:</lable><input class="check-input" type="checkbox" name="sendcontent" value="持仓明细" />
|
|
||||||
<lable>历史交易:</lable><input class="check-input" type="checkbox" name="sendcontent" value="历史交易" />
|
|
||||||
}
|
|
||||||
<lable>资金明细:</lable><input class="check-input" type="checkbox" name="sendcontent" value="资金明细" />
|
<lable>资金明细:</lable><input class="check-input" type="checkbox" name="sendcontent" value="资金明细" />
|
||||||
<lable>质押记录:</lable><input class="check-input" type="checkbox" name="sendcontent" value="质押记录" />
|
<lable>质押记录:</lable><input class="check-input" type="checkbox" name="sendcontent" value="质押记录" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -117,18 +117,8 @@
|
|||||||
<h3>报告内容:</h3>
|
<h3>报告内容:</h3>
|
||||||
<span class="send-content-item">
|
<span class="send-content-item">
|
||||||
<lable>账户状况:</lable><input class="check-input" type="checkbox" name="sendcontent" value="账户状况" />
|
<lable>账户状况:</lable><input class="check-input" type="checkbox" name="sendcontent" value="账户状况" />
|
||||||
@if (PS.Config.Is山西固收)
|
<lable>互换估值:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换估值" />
|
||||||
{
|
<lable>互换交易流水:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换交易流水" />
|
||||||
<lable>互换估值:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换估值" />
|
|
||||||
<lable>定义文件互换估值:</lable><input class="check-input" type="checkbox" name="sendcontent" value="定义文件互换估值" />
|
|
||||||
@* <lable>互换持仓明细:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换持仓明细" />*@
|
|
||||||
<lable>互换交易流水:</lable><input class="check-input" type="checkbox" name="sendcontent" value="互换交易流水" />
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<lable>持仓明细:</lable><input class="check-input" type="checkbox" name="sendcontent" value="持仓明细" />
|
|
||||||
<lable>历史交易:</lable><input class="check-input" type="checkbox" name="sendcontent" value="历史交易" />
|
|
||||||
}
|
|
||||||
<lable>资金明细:</lable><input class="check-input" type="checkbox" name="sendcontent" value="资金明细" />
|
<lable>资金明细:</lable><input class="check-input" type="checkbox" name="sendcontent" value="资金明细" />
|
||||||
<lable>质押记录:</lable><input class="check-input" type="checkbox" name="sendcontent" value="质押记录" />
|
<lable>质押记录:</lable><input class="check-input" type="checkbox" name="sendcontent" value="质押记录" />
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -68,60 +68,19 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link active" href="#">账户状况</a>
|
<a class="nav-link active" href="#">账户状况</a>
|
||||||
</li>
|
</li>
|
||||||
@if (PS.Config.Is山西固收)
|
|
||||||
{
|
<li class="nav-item">
|
||||||
<li class="nav-item">
|
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
</li>
|
||||||
</li>
|
<li class="nav-item">
|
||||||
<li class="nav-item">
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_DmaEodPosition")' id="dmapositionTab">定义文件互换估值</a>
|
</li>
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetails")' id="positionTab">持仓明细</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
@if (PS.Config.IsGuoJun)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionSwapFlow")' id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
@*<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetailsSwap")' id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>*@
|
|
||||||
}
|
|
||||||
@if (!PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPosition")' id="historyTab">历史交易</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
@if (PS.Config.IsGuoJun||PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwap")' id="historySwapTab">互换历史交易</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
||||||
</li>
|
</li>
|
||||||
@if (!PS.Config.Is申万)
|
<li class="nav-item">
|
||||||
{
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
||||||
<li class="nav-item">
|
</li>
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="yc-panel mt-0">
|
<div class="yc-panel mt-0">
|
||||||
|
|||||||
@@ -26,9 +26,9 @@
|
|||||||
const calcDate = "@valuedateBLL.ValueDate.ToString("yyyy-MM-dd")";
|
const calcDate = "@valuedateBLL.ValueDate.ToString("yyyy-MM-dd")";
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var isShenWan = "@YLErp.PS.Config.Is申万" == "True";
|
var isShenWan = "@YLErp.PS.Config.Is申万" == "True";
|
||||||
var g_grid = {};
|
var g_grid = {};
|
||||||
$(function() {
|
$(function () {
|
||||||
var PostData = {};
|
var PostData = {};
|
||||||
//控件选择时的触发事件
|
//控件选择时的触发事件
|
||||||
main.setTradeDatePicker("", "#ValueDate", calcDate, function (selectedDate) {
|
main.setTradeDatePicker("", "#ValueDate", calcDate, function (selectedDate) {
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
postData: PostData,
|
postData: PostData,
|
||||||
afterInsertRow: AfterInsertRow,
|
afterInsertRow: AfterInsertRow,
|
||||||
onSelectRow: rowclick,
|
onSelectRow: rowclick,
|
||||||
onSelectAll:allRowSelect,
|
onSelectAll: allRowSelect,
|
||||||
ondblClickRow: rowdblclick,
|
ondblClickRow: rowdblclick,
|
||||||
colModel: colModelGrid,
|
colModel: colModelGrid,
|
||||||
pager: jQuery('#pagerGrid'),
|
pager: jQuery('#pagerGrid'),
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
}
|
}
|
||||||
//console.log(cellValue+";");
|
//console.log(cellValue+";");
|
||||||
var url = "/trade/tradeFileManagement?tradeNumber=" + cellValue;
|
var url = "/trade/tradeFileManagement?tradeNumber=" + cellValue;
|
||||||
var showNumber = "<a href=\"javascript:void(0)\" title=\"查看客户文件\" onclick='main.open(\"客户文件\",\"{1}\")'>{0}</a>".template(cellValue,url);
|
var showNumber = "<a href=\"javascript:void(0)\" title=\"查看客户文件\" onclick='main.open(\"客户文件\",\"{1}\")'>{0}</a>".template(cellValue, url);
|
||||||
return showNumber;
|
return showNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -274,17 +274,17 @@
|
|||||||
var moneySwapSum = arguments[0].Sum == null ? "" : arguments[0].Sum.MoneySwapSum;
|
var moneySwapSum = arguments[0].Sum == null ? "" : arguments[0].Sum.MoneySwapSum;
|
||||||
var moneyOtherSum = arguments[0].Sum == null ? "" : arguments[0].Sum.MoneyOtherSum;
|
var moneyOtherSum = arguments[0].Sum == null ? "" : arguments[0].Sum.MoneyOtherSum;
|
||||||
var moneySwapMarginSum = arguments[0].Sum == null ? "" : arguments[0].Sum.MoneySwapMarginSum;
|
var moneySwapMarginSum = arguments[0].Sum == null ? "" : arguments[0].Sum.MoneySwapMarginSum;
|
||||||
jgrid.footerData("set", { HappenDate: "合计:", Direction: main.toNumberExcludingNaN(moneySum), MoneyInOut: moneyInOutSum, MoneyPrice: moneyPriceSum, MoneyUnwindExer: moneyUnwindExerSum, MoneyCoupon: moneyCouponSum, MoneySwap: moneySwapSum, MoneyOther: moneyOtherSum, MoneySwapMargin:moneySwapMarginSum });
|
jgrid.footerData("set", { HappenDate: "合计:", Direction: main.toNumberExcludingNaN(moneySum), MoneyInOut: moneyInOutSum, MoneyPrice: moneyPriceSum, MoneyUnwindExer: moneyUnwindExerSum, MoneyCoupon: moneyCouponSum, MoneySwap: moneySwapSum, MoneyOther: moneyOtherSum, MoneySwapMargin: moneySwapMarginSum });
|
||||||
} else {
|
} else {
|
||||||
$(".ui-jqgrid-sdiv").hide();
|
$(".ui-jqgrid-sdiv").hide();
|
||||||
}
|
}
|
||||||
$(window).off('resize.jqGrid');
|
$(window).off('resize.jqGrid');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showExerciseMode(cellValue, options, rowObject) {
|
function showExerciseMode(cellValue, options, rowObject) {
|
||||||
if ("American" == rowObject.ExerciseMode || "American" == rowObject.trade.ExerciseMode) {
|
if ("American" == rowObject.ExerciseMode || "American" == rowObject.trade.ExerciseMode) {
|
||||||
return "美式";
|
return "美式";
|
||||||
} else if ("European" == rowObject.ExerciseMode || "European" == rowObject.trade.ExerciseMode){
|
} else if ("European" == rowObject.ExerciseMode || "European" == rowObject.trade.ExerciseMode) {
|
||||||
return "欧式";
|
return "欧式";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -292,7 +292,7 @@
|
|||||||
function starttradeView(id, tradeType) {
|
function starttradeView(id, tradeType) {
|
||||||
if (tradeType.indexOf("收益互换") >= 0) {
|
if (tradeType.indexOf("收益互换") >= 0) {
|
||||||
main.open("查看交易", "/swaptrade2/tradeView/?enid=" + id + "&isOnlyCloseButton=true", { area: ['90%', '90%'] });
|
main.open("查看交易", "/swaptrade2/tradeView/?enid=" + id + "&isOnlyCloseButton=true", { area: ['90%', '90%'] });
|
||||||
}else{
|
} else {
|
||||||
let srcurl = "/trade/tradeView/?fromZiJinMingXi=1&isOnlyCloseButton=true&enid=" + id;
|
let srcurl = "/trade/tradeView/?fromZiJinMingXi=1&isOnlyCloseButton=true&enid=" + id;
|
||||||
main.open("查看交易(机构方向)", srcurl, { area: ['1260px', '100%'], scrollbar: false });
|
main.open("查看交易(机构方向)", srcurl, { area: ['1260px', '100%'], scrollbar: false });
|
||||||
}
|
}
|
||||||
@@ -583,76 +583,35 @@
|
|||||||
@Html.ShortInput("ValueDateFrom", "起始日期:")
|
@Html.ShortInput("ValueDateFrom", "起始日期:")
|
||||||
@Html.ShortInput("ValueDate", "结束日期:")
|
@Html.ShortInput("ValueDate", "结束日期:")
|
||||||
@MyControls.SearchBtn()
|
@MyControls.SearchBtn()
|
||||||
@if (CurUser.结算管理_每日估值报告邮件发送)
|
@if (CurUser.结算管理_每日估值报告邮件发送)
|
||||||
{
|
{
|
||||||
@MyControls.Btn("配置报告", "PopDesc()")
|
@MyControls.Btn("配置报告", "PopDesc()")
|
||||||
@MyControls.Btn("发送报告", "SendReport()")
|
@MyControls.Btn("发送报告", "SendReport()")
|
||||||
}
|
}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<fieldset id="fieldsetgbox_listGrid" style="margin-bottom: 20px;">
|
<fieldset id="fieldsetgbox_listGrid" style="margin-bottom: 20px;">
|
||||||
<div class="tabbable">
|
<div class="tabbable">
|
||||||
<ul id="myTab" class="nav nav-tabs nav-main">
|
<ul id="myTab" class="nav nav-tabs nav-main">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
||||||
</li>
|
</li>
|
||||||
@if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_DmaEodPosition")' id="dmapositionTab">定义文件互换估值</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetails")' id="positionTab">持仓明细</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
@if (PS.Config.IsGuoJun)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionSwapFlow")' id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
@*<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetailsSwap")' id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>*@
|
|
||||||
}
|
|
||||||
@if (!PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPosition")' id="historyTab">历史交易</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
@if (PS.Config.IsGuoJun || PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwap")' id="historySwapTab">互换历史交易</a>
|
<a class="nav-link active" href="#">资金明细</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="#">资金明细</a>
|
|
||||||
</li>
|
|
||||||
@if (!PS.Config.Is申万)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
</ul>
|
||||||
</ul>
|
</div>
|
||||||
</div>
|
|
||||||
<div id="tableContent" class="yc-panel my-0 p-0">
|
<div id="tableContent" class="yc-panel my-0 p-0">
|
||||||
@Html.Raw(JqGridSimple.OutTable())
|
@Html.Raw(JqGridSimple.OutTable())
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -389,58 +389,19 @@
|
|||||||
<ul id="myTab" class="nav nav-tabs nav-main">
|
<ul id="myTab" class="nav nav-tabs nav-main">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
||||||
</li>
|
|
||||||
@if (PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_EodPosition")' id="positionTab">互换估值</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/swaptrade2/TradeMarketReport_DmaEodPosition")' id="dmapositionTab">定义文件互换估值</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetails")' id="positionTab">持仓明细</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
@if (PS.Config.IsGuoJun)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionSwapFlow")' id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
@* <li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetailsSwap")' id="positionSwapTab">互换持仓明细</a>
|
|
||||||
</li>*@
|
|
||||||
}
|
|
||||||
@if (!PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPosition")' id="historyTab">历史交易</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
@if (PS.Config.IsGuoJun || PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwap")' id="historySwapTab">互换历史交易</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" href="#">质押记录</a>
|
||||||
</li>
|
</li>
|
||||||
}
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link active" href="#">质押记录</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div id="tableContent" class="yc-panel my-0 p-0">
|
<div id="tableContent" class="yc-panel my-0 p-0">
|
||||||
|
|||||||
@@ -973,18 +973,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link active" href="#" id="historyTab">历史交易</a>
|
<a class="nav-link active" href="#" id="historyTab">历史交易</a>
|
||||||
</li>
|
</li>
|
||||||
@if (PS.Config.IsGuoJun||PS.Config.Is山西固收)
|
<li class="nav-item">
|
||||||
{
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
||||||
<li class="nav-item">
|
</li>
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwap")' id="historySwapTab">互换历史交易</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -77,18 +77,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPosition")' id="historyTab">历史交易</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPosition")' id="historyTab">历史交易</a>
|
||||||
</li>
|
</li>
|
||||||
@if (PS.Config.IsGuoJun || PS.Config.Is山西固收)
|
<li class="nav-item">
|
||||||
{
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
||||||
<li class="nav-item">
|
</li>
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwap")' id="historySwapTab">互换历史交易</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -66,18 +66,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPosition")' id="historyTab">历史交易</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPosition")' id="historyTab">历史交易</a>
|
||||||
</li>
|
</li>
|
||||||
@if (PS.Config.IsGuoJun || PS.Config.Is山西固收)
|
<li class="nav-item">
|
||||||
{
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
||||||
<li class="nav-item">
|
</li>
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwap")' id="historySwapTab">互换历史交易</a>
|
|
||||||
</li>
|
|
||||||
}
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -156,31 +156,15 @@
|
|||||||
}
|
}
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
if (Model.TrialSource == 1 && Model.TrialStatus != 0 && (PS.Config.Company == CompanyEnum.天风 || valuedateBLL.SystemDate.SpecialOperateForTrade == 1))
|
if (!string.IsNullOrWhiteSpace(ViewBag?.LastStatusStr))
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(ViewBag?.LastStatusStr))
|
<div class="row-content" id="lastStatus">
|
||||||
{
|
<span class="quota-content" style="color: red;">上次试算结果:@(ViewBag?.LastStatusStr),请填写说明</span>
|
||||||
<div class="row-content" id="lastStatus">
|
|
||||||
<span class="quota-content" style="color: red;">上次试算结果:@(ViewBag?.LastStatusStr),请填写说明</span>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
<div class="row-content" id="remark">
|
|
||||||
<span class="status" style="width: 20%;text-align: center;">说明:</span>
|
|
||||||
<textarea id="remark"></textarea>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
else if (Model.TrialStatus != 0 && PS.Config.Is山西固收)
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrWhiteSpace(ViewBag?.LastStatusStr))
|
|
||||||
{
|
|
||||||
<div class="row-content" id="lastStatus">
|
|
||||||
<span class="quota-content" style="color: red;">上次试算结果:@(ViewBag?.LastStatusStr),请填写说明</span>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
<div class="row-content" id="remark">
|
|
||||||
<span class="status" style="width: 20%;text-align: center;">说明:</span>
|
|
||||||
<textarea id="remark"></textarea>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
<div class="row-content" id="remark">
|
||||||
|
<span class="status" style="width: 20%;text-align: center;">说明:</span>
|
||||||
|
<textarea id="remark"></textarea>
|
||||||
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
@@ -109,6 +109,9 @@
|
|||||||
<None Update="App_Docs\导出模板\结算报告标准模板_湘财.xlsx">
|
<None Update="App_Docs\导出模板\结算报告标准模板_湘财.xlsx">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
|
<None Update="App_Docs\导出模板\结算报告模板_浙商.xlsx">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
<None Update="App_Docs\导出模板\结算报告模板_山西固收.xlsx">
|
<None Update="App_Docs\导出模板\结算报告模板_山西固收.xlsx">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
@@ -174,6 +177,7 @@
|
|||||||
<_AppFiles Remove="App_Docs\导出模板\浮动利率默认设置导出模板.xlsx" />
|
<_AppFiles Remove="App_Docs\导出模板\浮动利率默认设置导出模板.xlsx" />
|
||||||
<_AppFiles Remove="App_Docs\导出模板\结算报告标准模板_湘财.xlsx" />
|
<_AppFiles Remove="App_Docs\导出模板\结算报告标准模板_湘财.xlsx" />
|
||||||
<_AppFiles Remove="App_Docs\导出模板\结算报告模板_山西固收.xlsx" />
|
<_AppFiles Remove="App_Docs\导出模板\结算报告模板_山西固收.xlsx" />
|
||||||
|
<_AppFiles Remove="App_Docs\导出模板\结算报告模板_浙商.xlsx" />
|
||||||
<_AppFiles Remove="App_Docs\导出模板\结算报告模板_湘财.xlsx" />
|
<_AppFiles Remove="App_Docs\导出模板\结算报告模板_湘财.xlsx" />
|
||||||
<_AppFiles Remove="App_Docs\导入模板\导入限额指标.xlsx" />
|
<_AppFiles Remove="App_Docs\导入模板\导入限额指标.xlsx" />
|
||||||
<_AppFiles Remove="App_Docs\导入模板\批量对冲波动率模板.xlsx" />
|
<_AppFiles Remove="App_Docs\导入模板\批量对冲波动率模板.xlsx" />
|
||||||
|
|||||||
@@ -162,44 +162,12 @@ function getColModelGrid() {
|
|||||||
name: 'ProtocolSignDate', label: '商品类签署日期', index: 'ProtocolSignDate', width: 150, align: 'center', formatter: 'date', hidden: true, frozen: true
|
name: 'ProtocolSignDate', label: '商品类签署日期', index: 'ProtocolSignDate', width: 150, align: 'center', formatter: 'date', hidden: true, frozen: true
|
||||||
}, {
|
}, {
|
||||||
name: 'RightProtocolSignDate', label: '权益类签署日期', index: 'RightProtocolSignDate', width: 150, align: 'center', formatter: 'date', hidden: true, frozen: true
|
name: 'RightProtocolSignDate', label: '权益类签署日期', index: 'RightProtocolSignDate', width: 150, align: 'center', formatter: 'date', hidden: true, frozen: true
|
||||||
}, {
|
|
||||||
name: 'Level', label: '客户等级', index: 'Level', width: 60, align: 'center', optionHide: page.isShanXi, hidden: page.isShanXi, frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'CreditRatingName', label: '资信等级', index: 'CreditRatingName', width: 60, align: 'center', optionHide: page.isShanXi, hidden: page.isShanXi, frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'TotalCredit', label: '授信额度', index: 'TotalCredit', width: 120, align: 'right', optionHide: page.isShanXi, hidden: page.isShanXi, formatter: 'number', frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'CustomerNature1', label: '客户性质1', index: 'CustomerNature1', width: 130, align: 'center', optionHide: page.isShanXi, hidden: page.isShanXi, frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'CustomerNature2', label: '客户性质2', index: 'CustomerNature2', width: 130, align: 'center', optionHide: page.isShanXi, hidden: page.isShanXi, frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'CustomerManager', label: '客户经理', index: 'CustomerManager', width: 90, align: 'center', optionHide: page.isShanXi, hidden: page.isShanXi, frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'SalesDepartment', label: '营业部', index: 'SalesDepartment', width: 90, align: 'center', optionHide: page.isShanXi, hidden: page.isShanXi, frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'Seller', label: '营业部销售', index: 'Seller', width: 90, align: 'center', optionHide: page.isShanXi, hidden: page.isShanXi, frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'SwapTradeTypeStr', label: '收益互换交易类别', index: 'SwapTradeTypeStr', width: 130, align: 'center', optionHide: !page.isShanXi, hidden: !page.isShanXi, frozen: true
|
|
||||||
},{
|
},{
|
||||||
name: 'licenseCodes', label: '统一社会信用代码', index: 'licenseCodes', width: 100, align: 'right', optionHide: !page.isDongWu, hidden: !page.isDongWu, frozen: true
|
name: 'licenseCodes', label: '统一社会信用代码', index: 'licenseCodes', width: 100, align: 'right', frozen: true
|
||||||
}, {
|
|
||||||
name: 'IsSmallAndMicroEnterpriseas', label: '是否中小微', index: 'IsSmallAndMicroEnterpriseas', width: 100, align: 'right', optionHide: !page.isDongWu, hidden: !page.isDongWu, frozen: true
|
|
||||||
}, {
|
|
||||||
name: 'IsmicroCorp', label: '是否上市', index: 'IsmicroCorp', width: 100, align: 'right', optionHide: !page.isDongWu, hidden: !page.isDongWu, frozen: true
|
|
||||||
},{
|
|
||||||
name: 'NetFundSumString', label: '客户净资产', index: 'NetFundSumString', width: 100, align: 'right', optionHide: !page.isDongWu, hidden: !page.isDongWu, formatter: 'number', frozen: true
|
|
||||||
},{
|
},{
|
||||||
name: 'TotalTradeCount', label: '交易总数', index: 'TotalTradeCount', width: 120, align: 'center', formatter: main.toInt, sorttype: 'number'
|
name: 'TotalTradeCount', label: '交易总数', index: 'TotalTradeCount', width: 120, align: 'center', formatter: main.toInt, sorttype: 'number'
|
||||||
}, {
|
}, {
|
||||||
name: 'TotalNotionalPrincipal', label: '名义本金总额', index: 'TotalNotionalPrincipal', width: 150, align: 'right', formatter: 'number', sorttype: 'number'
|
name: 'TotalNotionalPrincipal', label: '名义本金总额', index: 'TotalNotionalPrincipal', width: 150, align: 'right', formatter: 'number', sorttype: 'number'
|
||||||
}, {
|
|
||||||
name: 'BuyCount', label: '买权交易数', index: 'BuyCount', width: 120, align: 'center', formatter: main.toInt, optionHide: page.isShanXi, hidden: page.isShanXi, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'BuyNominalPrincipalOfTransaction', label: '买权名义本金', index: 'BuyNominalPrincipalOfTransaction', width: 150, align: 'right', formatter: 'number', optionHide: page.isShanXi, hidden: page.isShanXi, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'SellCount', label: '卖权交易数', index: 'SellCount', width: 120, align: 'center', formatter: main.toInt, optionHide: page.isShanXi, hidden: page.isShanXi, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'SellNominalPrincipalOfTransaction', label: '卖权名义本金', index: 'SellNominalPrincipalOfTransaction', width: 150, align: 'right', formatter: 'number', optionHide: page.isShanXi, hidden: page.isShanXi, sorttype: 'number'
|
|
||||||
}, {
|
}, {
|
||||||
name: 'TransactionPenNumber', label: '当日交易数', index: 'TransactionPenNumber', width: 120, align: 'center', formatter: main.toInt, sorttype: 'number'
|
name: 'TransactionPenNumber', label: '当日交易数', index: 'TransactionPenNumber', width: 120, align: 'center', formatter: main.toInt, sorttype: 'number'
|
||||||
}, {
|
}, {
|
||||||
@@ -230,14 +198,8 @@ function getColModelGrid() {
|
|||||||
name: 'RoundedPositionPnl', label: '持仓盈亏', index: 'RoundedPositionPnl', width: 120, align: 'right', value: '0', formatter: 'number', optionHide: !page.isPvRounded, hidden: !page.isPvRounded, sorttype: 'number'
|
name: 'RoundedPositionPnl', label: '持仓盈亏', index: 'RoundedPositionPnl', width: 120, align: 'right', value: '0', formatter: 'number', optionHide: !page.isPvRounded, hidden: !page.isPvRounded, sorttype: 'number'
|
||||||
}, {
|
}, {
|
||||||
name: 'RoundedDaliyPnl', label: '当日盈亏', index: 'RoundedDaliyPnl', width: 120, align: 'right', value: '0', formatter: 'number', optionHide: !page.isPvRounded, hidden: !page.isPvRounded, sorttype: 'number'
|
name: 'RoundedDaliyPnl', label: '当日盈亏', index: 'RoundedDaliyPnl', width: 120, align: 'right', value: '0', formatter: 'number', optionHide: !page.isPvRounded, hidden: !page.isPvRounded, sorttype: 'number'
|
||||||
}, {
|
|
||||||
name: 'CreditRiskLoss', label: '信用风险亏损', index: 'CreditRiskLoss', width: 100, align: 'right', formatter: 'number', optionHide: page.isShanXi, hidden: page.isShanXi, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'Exposure', label: '信用风险敞口', index: 'Exposure', width: 100, align: 'right', formatter: 'number', optionHide: page.isShanXi, hidden: page.isShanXi, sorttype: 'number'
|
|
||||||
}, {
|
}, {
|
||||||
name: 'NetFund', label: '出金入金', index: 'NetFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
name: 'NetFund', label: '出金入金', index: 'NetFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
||||||
}, {
|
|
||||||
name: 'Coupon', label: '票息', index: 'Coupon', width: 100, align: 'right', formatter: 'number', optionHide: page.isShanXi, hidden: page.isShanXi, sorttype: 'number'
|
|
||||||
}, {
|
}, {
|
||||||
name: 'OptionPremiumSwap', label: '互换成交收支', index: 'OptionPremiumSwap', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
name: 'OptionPremiumSwap', label: '互换成交收支', index: 'OptionPremiumSwap', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
||||||
}, {
|
}, {
|
||||||
@@ -254,18 +216,6 @@ function getColModelGrid() {
|
|||||||
name: 'RoundedTotalAmount', label: '总资产', index: 'RoundedTotalAmount', width: 100, align: 'right', formatter: 'number', optionHide: !page.isPvRounded, hidden: !page.isPvRounded, sorttype: 'number'
|
name: 'RoundedTotalAmount', label: '总资产', index: 'RoundedTotalAmount', width: 100, align: 'right', formatter: 'number', optionHide: !page.isPvRounded, hidden: !page.isPvRounded, sorttype: 'number'
|
||||||
}, {
|
}, {
|
||||||
name: 'HoldingDeposit', label: '预付金占用', index: 'HoldingDeposit', width: 120, align: 'right', formatter: holdingDepositFormat, sorttype: 'number'
|
name: 'HoldingDeposit', label: '预付金占用', index: 'HoldingDeposit', width: 120, align: 'right', formatter: holdingDepositFormat, sorttype: 'number'
|
||||||
}, {
|
|
||||||
name: 'HoldingDepositA', label: '团队A占用', index: 'HoldingDepositA', width: 120, align: 'right', formatter: holdingDepositFormat, optionHide: !page.isHongYuan, hidden: !page.isHongYuan, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'HoldingDepositB', label: '团队B占用', index: 'HoldingDepositB', width: 120, align: 'right', formatter: holdingDepositFormat, optionHide: !page.isHongYuan, hidden: !page.isHongYuan, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'SpanValue', label: 'Span预付金', index: 'SpanValue', width: 120, align: 'right', formatter: 'number', optionHide: !page.isDongZheng, hidden: !page.isDongZheng, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'MySideMargin', label: '预付金占用(本方)', index: 'MySideMargin', width: 120, align: 'right', formatter: 'number', optionHide: !page.isGuoJun, hidden: !page.isGuoJun, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'OtherSideMargin', label: '预付金(对手方向)', index: 'OtherSideMargin', width: 120, align: 'right', formatter: 'number', optionHide: !page.showOtherSideMargin, hidden: !page.showOtherSideMargin, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'DeltaMargin', label: 'Delta预付金', index: 'DeltaMargin', width: 120, align: 'right', formatter: 'number', optionHide: !page.isGuoJun, hidden: !page.isGuoJun, sorttype: 'number'
|
|
||||||
}, {
|
}, {
|
||||||
name: 'AvailableAmount', label: '可用资金', index: 'AvailableAmount', width: 120, align: 'right', formatter: 'number', sorttype: 'number'
|
name: 'AvailableAmount', label: '可用资金', index: 'AvailableAmount', width: 120, align: 'right', formatter: 'number', sorttype: 'number'
|
||||||
}, {
|
}, {
|
||||||
@@ -278,60 +228,24 @@ function getColModelGrid() {
|
|||||||
name: 'PositionTradePayableFund', label: '应付未了结交易款', index: 'PositionTradePayableFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
name: 'PositionTradePayableFund', label: '应付未了结交易款', index: 'PositionTradePayableFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
||||||
}, {
|
}, {
|
||||||
name: 'PayableFund', label: '应付资金总额', index: 'PayableFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
name: 'PayableFund', label: '应付资金总额', index: 'PayableFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
||||||
}, {
|
|
||||||
name: 'SellerPositionPremium', label: '应收权利金', index: 'SellerPositionPremium', width: 100, align: 'right', formatter: 'number', optionHide: !page.isChangJiang, hidden: !page.isChangJiang, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'BuyerPositionMargin', label: '应收预付金', index: 'BuyerPositionMargin', width: 100, align: 'right', formatter: 'number', optionHide: !page.isChangJiang, hidden: !page.isChangJiang, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'Receivable', label: '应收账款', index: 'Receivable', width: 100, align: 'right', formatter: ReceivableCalc, optionHide: !page.isChangJiang, hidden: !page.isChangJiang, sorttype: 'number'
|
|
||||||
}, {
|
}, {
|
||||||
name: 'DesirableFund', label: '可取资金', index: 'DesirableFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
name: 'DesirableFund', label: '可取资金', index: 'DesirableFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
||||||
}, {
|
|
||||||
name: 'EndDesirableFund', label: '期末结存_权利金后付', index: 'EndDesirableFund', width: 100, align: 'right', formatter: 'number', optionHide: !page.isDongWu, hidden: !page.isDongWu, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'WorstCastClientPayableRatio', label: '预付金覆盖比例', index: 'WorstCastClientPayableRatio', width: 100, align: 'right', formatter: 'number', optionHide: !page.isDongWu, hidden: !page.isDongWu, sorttype: 'number'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'clientEquity', label: '客户权益', index: 'clientEquity', width: 100, align: 'right', optionHide: !page.isDongWu, hidden: !page.isDongWu, formatter: 'number',sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'LastDayPositionPremiumNetCashs', label: '持仓权利金', index: 'LastDayPositionPremiumNetCashs', width: 100, align: 'right', formatter: 'number', optionHide: !page.isDongWu, hidden: !page.isDongWu, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'availableNetFundSumsString', label: '规模/净资产', index: 'availableNetFundSumsString', width: 100, align: 'right', optionHide: !page.isDongWu, hidden: !page.isDongWu
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'CreditUsedValue', label: '授信使用金额', index: 'CreditUsedValue', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
name: 'CreditUsedValue', label: '授信使用金额', index: 'CreditUsedValue', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'NetFund2', label: '客商余额', index: 'NetFund2', width: 120, align: 'right', formatter: KeShangYuEr, sortable: false, hidden: !isHaiTong, optionHide: !isHaiTong, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'PFE', label: '潜在风险暴露', index: 'PFE', width: 120, align: 'right', formatter: 'number', sortable: false, hidden: !page.showPFE, optionHide: !page.showPFE, sorttype: 'number'
|
|
||||||
}, {
|
|
||||||
name: 'EAD', label: '违约风险暴露', index: 'EAD', width: 120, align: 'right', formatter: 'number', sortable: false, hidden: !page.isChangJiang, optionHide: !page.isChangJiang, sorttype: 'number'
|
|
||||||
}, {
|
}, {
|
||||||
name: 'AvailableStockEqvNotional', label: '可用名义本金规模', index: 'AvailableStockEqvNotional', width: 180, align: 'right', formatter: 'number', hidden: !page.UseClientStockEqvNotional, optionHide: !page.UseClientStockEqvNotional, sorttype: 'number'
|
name: 'AvailableStockEqvNotional', label: '可用名义本金规模', index: 'AvailableStockEqvNotional', width: 180, align: 'right', formatter: 'number', hidden: !page.UseClientStockEqvNotional, optionHide: !page.UseClientStockEqvNotional, sorttype: 'number'
|
||||||
}, {
|
|
||||||
name: 'CreditExposure', label: '信用风险敞口', index: 'CreditExposure', width: 120, align: 'right', formatter: 'number', hidden: !page.isGuoHai, optionHide: !page.isGuoHai, sorttype: 'number'
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
if (page.isShanXi) {
|
colModelGrid.push({
|
||||||
colModelGrid.push({
|
name: 'LastSettlemetTime',
|
||||||
name: 'LastSettlemetTime',
|
label: '系统收盘时间',
|
||||||
label: '系统收盘时间',
|
index: 'LastSettlemetTime',
|
||||||
index: 'LastSettlemetTime',
|
width: 150,
|
||||||
width: 150,
|
align: 'center',
|
||||||
align: 'center',
|
sortable: false,
|
||||||
sortable: false,
|
formatter: "datetime"
|
||||||
formatter: "datetime"
|
});
|
||||||
}, {
|
|
||||||
name: 'LastHTSettlemetTime',
|
|
||||||
label: '衡泰清算时间',
|
|
||||||
index: 'LastHTSettlemetTime',
|
|
||||||
width: 150,
|
|
||||||
align: 'center',
|
|
||||||
sortable: false,
|
|
||||||
formatter: "datetime"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (page.ViewTagPermission) {
|
if (page.ViewTagPermission) {
|
||||||
colModelGrid.push({
|
colModelGrid.push({
|
||||||
name: 'Tags',
|
name: 'Tags',
|
||||||
|
|||||||
@@ -148,24 +148,14 @@ const jqgrid1Mgr = (new function () {
|
|||||||
name: 'EncryptId', hidden: true, optionHide: true
|
name: 'EncryptId', hidden: true, optionHide: true
|
||||||
}, {
|
}, {
|
||||||
name: 'ClientName', label: '客户名称', index: 'ClientId'
|
name: 'ClientName', label: '客户名称', index: 'ClientId'
|
||||||
}, {
|
|
||||||
name: 'Type', label: '类型', index: 'Type', hidden: page.isShanZheng, optionHide: page.isShanZheng
|
|
||||||
}, {
|
|
||||||
name: 'VarietyCode', label: '品种代码', index: 'VarietyId', hidden: page.isShanZheng, optionHide: page.isShanZheng
|
|
||||||
}, {
|
|
||||||
name: 'VarietyName', label: '品种名称', index: 'VarietyId', hidden: page.isShanZheng, optionHide: page.isShanZheng
|
|
||||||
}, {
|
}, {
|
||||||
name: 'ValueDate', label: '生效日期', index: 'ValueDate', formatter: 'date'
|
name: 'ValueDate', label: '生效日期', index: 'ValueDate', formatter: 'date'
|
||||||
}, {
|
}, {
|
||||||
name: 'InitMarginRate', label: '期初预付金', index: 'InitMarginRate', formatter: percentFormat
|
name: 'InitMarginRate', label: '期初预付金', index: 'InitMarginRate', formatter: percentFormat
|
||||||
|
}}, {
|
||||||
|
name: 'InitMarginRebateRate', label: '期初预付金利率', index: 'InitMarginRebateRate', formatter: percentFormat,
|
||||||
}, {
|
}, {
|
||||||
name: 'ClosePositionLine', label: '平仓线', index: 'ClosePositionLine', formatter: percentFormat, hidden: page.isShanZheng, optionHide: page.isShanZheng
|
name: 'AddToMarginRebateRate', label: '追加预付金利率', index: 'AddToMarginRebateRate', formatter: percentFormat,
|
||||||
}, {
|
|
||||||
name: 'WarningLine', label: '预警线', index: 'WarningLine', formatter: percentFormat, hidden: page.isShanZheng, optionHide: page.isShanZheng
|
|
||||||
}, {
|
|
||||||
name: 'InitMarginRebateRate', label: '期初预付金利率', index: 'InitMarginRebateRate', formatter: percentFormat, hidden: !page.isShanZheng, optionHide: !page.isShanZheng
|
|
||||||
}, {
|
|
||||||
name: 'AddToMarginRebateRate', label: '追加预付金利率', index: 'AddToMarginRebateRate', formatter: percentFormat, hidden: !page.isShanZheng, optionHide: !page.isShanZheng
|
|
||||||
}, {
|
}, {
|
||||||
name: 'OptName', label: '操作人', index: 'OptName'
|
name: 'OptName', label: '操作人', index: 'OptName'
|
||||||
}, {
|
}, {
|
||||||
|
|||||||
@@ -175,48 +175,6 @@ var getColModelGrid = function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {
|
|
||||||
name: 'FrontDeskCharge',
|
|
||||||
label: '现券对冲交易费用<i class="fa fa-question" title="仅适用于定义文件客户" aria-hidden="true"></i>',
|
|
||||||
width: 160,
|
|
||||||
align: 'center',
|
|
||||||
formatter: function (cellValue, options, rowObject) {
|
|
||||||
if (rowObject.FrontDeskCharge) {
|
|
||||||
if (rowObject.FrontDeskChargeIsPercent == true) {
|
|
||||||
return formatThousandsRate(rowObject.FrontDeskCharge);
|
|
||||||
} else {
|
|
||||||
return otcformat.trading.umprice(rowObject.FrontDeskCharge);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (rowObject.FrontDeskCharge === 0) {
|
|
||||||
return otcformat.trading.umprice(0);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
name: 'BackDeskCharge',
|
|
||||||
label: '现券对冲结算费用<i class="fa fa-question" title="仅适用于定义文件客户" aria-hidden="true"></i>',
|
|
||||||
width: 160,
|
|
||||||
align: 'center',
|
|
||||||
formatter: function (cellValue, options, rowObject) {
|
|
||||||
if (rowObject.BackDeskCharge) {
|
|
||||||
if (rowObject.BackDeskChargeIsPercent == true) {
|
|
||||||
return formatThousandsRate(rowObject.BackDeskCharge);
|
|
||||||
} else {
|
|
||||||
return otcformat.trading.umprice(rowObject.BackDeskCharge);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (rowObject.BackDeskCharge === 0) {
|
|
||||||
return otcformat.trading.umprice(0);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, {
|
}, {
|
||||||
name: 'opt_name',
|
name: 'opt_name',
|
||||||
label: '操作人',
|
label: '操作人',
|
||||||
|
|||||||
@@ -177,12 +177,7 @@ const vue = new Vue({
|
|||||||
methods: {
|
methods: {
|
||||||
changeStructureType() {
|
changeStructureType() {
|
||||||
this.trade.StockEqvNotional = 0;
|
this.trade.StockEqvNotional = 0;
|
||||||
if (this.trade.StructureType == "定义文件型债券收益互换") {
|
this.trade.trade_extend.ExtendObj.FlowBookMode = 0;
|
||||||
this.trade.trade_extend.ExtendObj.NeedOpenFee = true;
|
|
||||||
this.trade.trade_extend.ExtendObj.FlowBookMode = 2;
|
|
||||||
} else {
|
|
||||||
this.trade.trade_extend.ExtendObj.FlowBookMode = 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
//变更初始预付金收取方向
|
//变更初始预付金收取方向
|
||||||
changeInitialMargin() {
|
changeInitialMargin() {
|
||||||
|
|||||||
@@ -406,9 +406,6 @@ function __initJqGrid() {
|
|||||||
TradeDateStart: $("#DateFromTradeDate").val(),
|
TradeDateStart: $("#DateFromTradeDate").val(),
|
||||||
TradeDateEnd: $("#DateToTradeDate").val()
|
TradeDateEnd: $("#DateToTradeDate").val()
|
||||||
};
|
};
|
||||||
if (!page.IsShanxiGushou) {
|
|
||||||
PostData.TradeTypes = $("#TradeTypes").val().join(',')
|
|
||||||
}
|
|
||||||
if (page.IsAutoSealAndUploadFiles) {
|
if (page.IsAutoSealAndUploadFiles) {
|
||||||
PostData.SealResults = $("#SealResults").val();
|
PostData.SealResults = $("#SealResults").val();
|
||||||
PostData.SealDateStart = $("#DateFromSealDate").val();
|
PostData.SealDateStart = $("#DateFromSealDate").val();
|
||||||
@@ -918,9 +915,6 @@ function SearchClick(isSearchclick) {
|
|||||||
listGrid.appendPostData({ OptDateStart: $("#DateFromOptDate").val() });
|
listGrid.appendPostData({ OptDateStart: $("#DateFromOptDate").val() });
|
||||||
listGrid.appendPostData({ OptDateEnd: $("#DateToOptDate").val() });
|
listGrid.appendPostData({ OptDateEnd: $("#DateToOptDate").val() });
|
||||||
listGrid.appendPostData({ ValidState: $("#ValidState").val() });
|
listGrid.appendPostData({ ValidState: $("#ValidState").val() });
|
||||||
if (!page.IsShanxiGushou) {
|
|
||||||
listGrid.appendPostData({ TradeTypes: $("#TradeTypes").val().join(",") });
|
|
||||||
}
|
|
||||||
var reqTradeStatus = main.isEmpty($("#TradeStatus").val()) || $("#TradeStatus").val().includes("")
|
var reqTradeStatus = main.isEmpty($("#TradeStatus").val()) || $("#TradeStatus").val().includes("")
|
||||||
? page.reqTradeStatus
|
? page.reqTradeStatus
|
||||||
: $("#TradeStatus").val().join(",");
|
: $("#TradeStatus").val().join(",");
|
||||||
|
|||||||
@@ -52,11 +52,9 @@ namespace RealTimeCalcPositionService
|
|||||||
var clients= clientDb.client.Where(x=>x.SwapTradeType==0).ToList();
|
var clients= clientDb.client.Where(x=>x.SwapTradeType==0).ToList();
|
||||||
//系统交易日
|
//系统交易日
|
||||||
var valuedate = valuedateBLL.ValueDate;
|
var valuedate = valuedateBLL.ValueDate;
|
||||||
//获取根据系统时间
|
|
||||||
var lastBalanceDate = EodOperationBase.GetLastSettlementDate(valuedate);
|
|
||||||
foreach (var client in clients)
|
foreach (var client in clients)
|
||||||
{
|
{
|
||||||
var cb = ClientAssetDataService.GetClientLatestBalance(null, lastBalanceDate, client.id, false, false, false);
|
var cb = ClientAssetDataService.GetClientLatestBalance(null, valuedate, client.id, false, false, false);
|
||||||
cb.AvailableAmount = cb.AmountFund + cb.TotalCredit + cb.PayableMargin + cb.GuaranteesTotalAmount;
|
cb.AvailableAmount = cb.AmountFund + cb.TotalCredit + cb.PayableMargin + cb.GuaranteesTotalAmount;
|
||||||
var obj = new ClientBalanceForTrsResponse
|
var obj = new ClientBalanceForTrsResponse
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,121 +0,0 @@
|
|||||||
using DocumentFormat.OpenXml.Drawing.Charts;
|
|
||||||
using Newtonsoft.Json;
|
|
||||||
using Org.BouncyCastle.Ocsp;
|
|
||||||
using StackExchange.Redis;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Xml.Linq;
|
|
||||||
using YLErp;
|
|
||||||
using YLErp.Abstract;
|
|
||||||
using YLErp.BLL.Eod;
|
|
||||||
using YLErp.Cache;
|
|
||||||
using YLErp.Helpers;
|
|
||||||
using YLErp.Model;
|
|
||||||
using YLErp.Modules;
|
|
||||||
using YLErp.Modules.ClientModule;
|
|
||||||
|
|
||||||
namespace RealTimeCalcPositionService
|
|
||||||
{
|
|
||||||
public class ClientRealBalanceTask : IHostedService, IDisposable
|
|
||||||
{
|
|
||||||
private readonly IYcLogger _logger;
|
|
||||||
private IKafkaProduce kafkaProduceHelper;
|
|
||||||
private string onRspAccountCapitalTopicTopic = string.Empty;
|
|
||||||
private readonly CancellationTokenSource _cts = new CancellationTokenSource();
|
|
||||||
private Dictionary<int,string> clientDic=new Dictionary<int, string>();
|
|
||||||
private IYLCache _yLCache;
|
|
||||||
public ClientRealBalanceTask(IKafkaProduce kafkaProduce, IYLCache yLCache)
|
|
||||||
{
|
|
||||||
_logger = LogFactory.GetLogger("ClientRealBalanceTask");
|
|
||||||
onRspAccountCapitalTopicTopic = Environment.GetEnvironmentVariable("KafkaConfig_OnRspAccountCapitalTopic");
|
|
||||||
kafkaProduceHelper = kafkaProduce;
|
|
||||||
_yLCache= yLCache;
|
|
||||||
}
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
_cts.Dispose();
|
|
||||||
}
|
|
||||||
public Task StartAsync(CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
_logger.Info("ClientBalanceTask task is starting.");
|
|
||||||
Task.Run(() => ExecuteTask(_cts.Token), _cts.Token);
|
|
||||||
return Task.CompletedTask;
|
|
||||||
}
|
|
||||||
private void ExecuteTask(CancellationToken stoppingToken)
|
|
||||||
{
|
|
||||||
while (!stoppingToken.IsCancellationRequested)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var clientSettles = new RealTimeClientBanlanceService(new OptUserInfo(0, "实时客户资金服务", OptUserFrom.Service)).GetDMABalances();
|
|
||||||
foreach (var cb in clientSettles)
|
|
||||||
{
|
|
||||||
cb.AvailableAmount = cb.AmountFund + cb.TotalCredit + cb.PayableMargin + cb.GuaranteesTotalAmount;
|
|
||||||
Result result = new Result();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var obj = new ClientBalanceForTrsResponse
|
|
||||||
{
|
|
||||||
TotalAmountTotal = cb.RoundedTotalAmount,
|
|
||||||
AvailableAmount = Math.Round(cb.AvailableAmount, 2),
|
|
||||||
PositionPv = cb.RoundedPositionPv,
|
|
||||||
PositionPnl = cb.RoundedPositionPnl,
|
|
||||||
DaliyPnl = Math.Round(cb.DaliyPnl, 2),
|
|
||||||
ClientId = cb.ClientId,
|
|
||||||
ClientType = cb.ClientType,
|
|
||||||
Credit=cb.TotalCredit
|
|
||||||
};
|
|
||||||
result.success = true;
|
|
||||||
result.obj = obj;
|
|
||||||
if (_yLCache!=null)
|
|
||||||
{
|
|
||||||
_yLCache.StringSet<ClientBalanceForTrsResponse>("ClientBalance:"+ cb.ClientId,obj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
result.msg = ex.Message;
|
|
||||||
result.success = false;
|
|
||||||
}
|
|
||||||
string resultStr = JsonConvert.SerializeObject(result);
|
|
||||||
string newEncryStr= DataProtectHelper.Encrypt(resultStr);
|
|
||||||
bool needProduce= false;
|
|
||||||
if (clientDic.TryGetValue(cb.ClientId,out string encryStr))
|
|
||||||
{
|
|
||||||
if (encryStr!= newEncryStr)
|
|
||||||
{
|
|
||||||
needProduce = true;
|
|
||||||
clientDic[cb.ClientId]= newEncryStr;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
clientDic.Add(cb.ClientId, newEncryStr);
|
|
||||||
needProduce = true;
|
|
||||||
}
|
|
||||||
if (needProduce)
|
|
||||||
{
|
|
||||||
kafkaProduceHelper.Produce(onRspAccountCapitalTopicTopic, resultStr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Thread.Sleep(3000);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.Error(ex, "实时客户资金服务异常:" + ex.Message);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public async Task StopAsync(CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
_logger.Info("ClientBalanceTask task is stopping.");
|
|
||||||
_cts.Cancel();
|
|
||||||
await Task.CompletedTask;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -28,7 +28,6 @@ internal class Program
|
|||||||
services.AddHostedService<ClientPosiTask>();
|
services.AddHostedService<ClientPosiTask>();
|
||||||
services.AddHostedService<Worker>();
|
services.AddHostedService<Worker>();
|
||||||
services.AddHostedService<ClientNoDMABalanceTask>();
|
services.AddHostedService<ClientNoDMABalanceTask>();
|
||||||
services.AddHostedService<ClientRealBalanceTask>();
|
|
||||||
}).ConfigureLogging(logging =>
|
}).ConfigureLogging(logging =>
|
||||||
{
|
{
|
||||||
logging.ClearProviders();
|
logging.ClearProviders();
|
||||||
|
|||||||
+1
-8
@@ -21,8 +21,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "项目文档", "项目文
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SharedWebApi", "Framework\SharedWebApi\SharedWebApi.shproj", "{C7E0F300-16D5-438B-97A2-79DC2311D1D5}"
|
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SharedWebApi", "Framework\SharedWebApi\SharedWebApi.shproj", "{C7E0F300-16D5-438B-97A2-79DC2311D1D5}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Plugins.ShanXi", "Plugins\YLErp.Plugins.ShanXi\YLErp.Plugins.ShanXi.csproj", "{5E572CCD-CE2D-4832-B0B5-42B4153B94FA}"
|
|
||||||
EndProject
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Resources", "Framework\YLErp.Resources\YLErp.Resources.csproj", "{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Resources", "Framework\YLErp.Resources\YLErp.Resources.csproj", "{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Core", "Framework\YLErp.Core\YLErp.Core.csproj", "{206EBAE4-AB3E-4F09-9428-DDC3E64CFC42}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Core", "Framework\YLErp.Core\YLErp.Core.csproj", "{206EBAE4-AB3E-4F09-9428-DDC3E64CFC42}"
|
||||||
@@ -35,7 +33,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Jobs", "Framework\YLE
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Cache", "Framework\YLErp.Cache\YLErp.Cache.csproj", "{5665673C-1157-444F-AABC-2A873D8E4703}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Cache", "Framework\YLErp.Cache\YLErp.Cache.csproj", "{5665673C-1157-444F-AABC-2A873D8E4703}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YLErp.Plugins.ZheShang", "Plugins\YLErp.Plugins.ZheShang\YLErp.Plugins.ZheShang.csproj", "{C94D2467-B0E8-48CA-B60D-CD660B73AE90}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YLErp.Plugins.ZheShang", "Plugins\YLErp.Plugins.ZheShang\YLErp.Plugins.ZheShang.csproj", "{C94D2467-B0E8-48CA-B60D-CD660B73AE90}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -60,10 +58,6 @@ Global
|
|||||||
{BBD14483-0498-4AA7-8731-B237C059B75E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{BBD14483-0498-4AA7-8731-B237C059B75E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E0324D4F-614E-40F2-A62D-87C1718AB466}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{E0324D4F-614E-40F2-A62D-87C1718AB466}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{E0324D4F-614E-40F2-A62D-87C1718AB466}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E0324D4F-614E-40F2-A62D-87C1718AB466}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{5E572CCD-CE2D-4832-B0B5-42B4153B94FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{5E572CCD-CE2D-4832-B0B5-42B4153B94FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{5E572CCD-CE2D-4832-B0B5-42B4153B94FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{5E572CCD-CE2D-4832-B0B5-42B4153B94FA}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
@@ -99,7 +93,6 @@ Global
|
|||||||
GlobalSection(NestedProjects) = preSolution
|
GlobalSection(NestedProjects) = preSolution
|
||||||
{B454A6FB-CF27-4B00-AEDC-BA1F0ED2F6D1} = {15F732CE-6C51-48F0-BC50-3BEC018460E5}
|
{B454A6FB-CF27-4B00-AEDC-BA1F0ED2F6D1} = {15F732CE-6C51-48F0-BC50-3BEC018460E5}
|
||||||
{C7E0F300-16D5-438B-97A2-79DC2311D1D5} = {F315B5D3-F4FE-43E5-AF22-AF92978A71BE}
|
{C7E0F300-16D5-438B-97A2-79DC2311D1D5} = {F315B5D3-F4FE-43E5-AF22-AF92978A71BE}
|
||||||
{5E572CCD-CE2D-4832-B0B5-42B4153B94FA} = {5981434D-792E-4528-AFC8-7EB8AFD9F80C}
|
|
||||||
{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF} = {F315B5D3-F4FE-43E5-AF22-AF92978A71BE}
|
{FEDA115A-88ED-42FE-A5FF-0AAE229DC4CF} = {F315B5D3-F4FE-43E5-AF22-AF92978A71BE}
|
||||||
{206EBAE4-AB3E-4F09-9428-DDC3E64CFC42} = {F315B5D3-F4FE-43E5-AF22-AF92978A71BE}
|
{206EBAE4-AB3E-4F09-9428-DDC3E64CFC42} = {F315B5D3-F4FE-43E5-AF22-AF92978A71BE}
|
||||||
{BCFAC147-BBBA-4097-A147-3E7D43239BBF} = {F315B5D3-F4FE-43E5-AF22-AF92978A71BE}
|
{BCFAC147-BBBA-4097-A147-3E7D43239BBF} = {F315B5D3-F4FE-43E5-AF22-AF92978A71BE}
|
||||||
|
|||||||
Reference in New Issue
Block a user