Merge branch 'glms/feature/1.4.2' of http://git.yiliantech.com/gitlab/otc-dev/zszq-trs into glms/feature/1.4.2
This commit is contained in:
@@ -247,6 +247,9 @@ namespace YLErp.Web.Controllers
|
||||
{
|
||||
try
|
||||
{
|
||||
marginTemplate.BookIds = margin_template_v2.NormalizeBookIds(marginTemplate.BookIds);
|
||||
ValidateBookIds(marginTemplate.BookIds);
|
||||
|
||||
if (string.IsNullOrEmpty(marginTemplate.TradeTypes))
|
||||
{
|
||||
throw new Exception("默认规则的适用结构不能为空");
|
||||
@@ -263,17 +266,18 @@ namespace YLErp.Web.Controllers
|
||||
if (marginTemplate.DefaultParameterType != 0)
|
||||
{
|
||||
//验证不同规则是否已经存在该交易类型
|
||||
var marginTemplateDefault = yldb.margin_template_v2.Where(x => x.id != marginTemplate.id && x.IsDefault && x.IsValid && !x.IsForClient && x.RuleType != marginTemplate.RuleType && x.ValueDate == marginTemplate.ValueDate);
|
||||
var existTradeTypes = marginTemplateDefault.Select(x => x.TradeTypes).ToList();
|
||||
var tradeTypes = new List<string>();
|
||||
existTradeTypes.ForEach(x => tradeTypes.AddRange(x.Split(',')));
|
||||
var marginTemplateDefault = yldb.margin_template_v2
|
||||
.Where(x => x.id != marginTemplate.id && x.IsDefault && x.IsValid && !x.IsForClient && x.RuleType != marginTemplate.RuleType && x.ValueDate == marginTemplate.ValueDate)
|
||||
.ToList()
|
||||
.Where(x => margin_template_v2.AreBookScopesOverlapping(x.BookIds, marginTemplate.BookIds));
|
||||
var tradeTypes = margin_template_v2.GetOverlappingTradeTypes(marginTemplateDefault, marginTemplate.BookIds).ToList();
|
||||
|
||||
//验证相同规则相同的默认参数类型,是否包含相同的适用结构
|
||||
var sameRuleParameterRecord = yldb.margin_template_v2.FirstOrDefault(x => x.id != marginTemplate.id && x.IsDefault && x.IsValid && !x.IsForClient && x.RuleType == marginTemplate.RuleType && x.DefaultParameterType == marginTemplate.DefaultParameterType && (x.BuySellType & marginTemplate.BuySellType) > 0 && (x.MarginScenarios & marginTemplate.MarginScenarios) > 0 && x.ValueDate == marginTemplate.ValueDate);
|
||||
if (sameRuleParameterRecord != null)
|
||||
{
|
||||
tradeTypes.AddRange(sameRuleParameterRecord.TradeTypes.Split(','));
|
||||
}
|
||||
var sameRuleParameterRecords = yldb.margin_template_v2
|
||||
.Where(x => x.id != marginTemplate.id && x.IsDefault && x.IsValid && !x.IsForClient && x.RuleType == marginTemplate.RuleType && x.DefaultParameterType == marginTemplate.DefaultParameterType && (x.BuySellType & marginTemplate.BuySellType) > 0 && (x.MarginScenarios & marginTemplate.MarginScenarios) > 0 && x.ValueDate == marginTemplate.ValueDate)
|
||||
.ToList()
|
||||
.Where(x => margin_template_v2.AreBookScopesOverlapping(x.BookIds, marginTemplate.BookIds));
|
||||
tradeTypes.AddRange(margin_template_v2.GetOverlappingTradeTypes(sameRuleParameterRecords, marginTemplate.BookIds));
|
||||
|
||||
tradeTypes.ForEach(x =>
|
||||
{
|
||||
@@ -285,10 +289,11 @@ namespace YLErp.Web.Controllers
|
||||
}
|
||||
else
|
||||
{
|
||||
var marginTemplateDefault = yldb.margin_template_v2.Where(x => x.id != marginTemplate.id && x.IsDefault && x.IsValid && !x.IsForClient && (x.BuySellType & marginTemplate.BuySellType) > 0 && (x.MarginScenarios & marginTemplate.MarginScenarios) > 0 && x.ValueDate == marginTemplate.ValueDate);
|
||||
var existTradeTypes = marginTemplateDefault.Select(x => x.TradeTypes).ToList();
|
||||
var tradeTypes = new List<string>();
|
||||
existTradeTypes.ForEach(x => tradeTypes.AddRange(x.Split(',')));
|
||||
var marginTemplateDefault = yldb.margin_template_v2
|
||||
.Where(x => x.id != marginTemplate.id && x.IsDefault && x.IsValid && !x.IsForClient && (x.BuySellType & marginTemplate.BuySellType) > 0 && (x.MarginScenarios & marginTemplate.MarginScenarios) > 0 && x.ValueDate == marginTemplate.ValueDate)
|
||||
.ToList()
|
||||
.Where(x => margin_template_v2.AreBookScopesOverlapping(x.BookIds, marginTemplate.BookIds));
|
||||
var tradeTypes = margin_template_v2.GetOverlappingTradeTypes(marginTemplateDefault, marginTemplate.BookIds).ToList();
|
||||
tradeTypes.ForEach(x =>
|
||||
{
|
||||
if (marginTemplate.TradeTypes.Contains(x))
|
||||
@@ -471,6 +476,7 @@ namespace YLErp.Web.Controllers
|
||||
r.Name = marginTemplate.Name;
|
||||
r.IsDefault = marginTemplate.IsDefault;
|
||||
r.IsForClient = marginTemplate.IsForClient;
|
||||
r.BookIds = marginTemplate.BookIds;
|
||||
r.Comments = marginTemplate.Comments;
|
||||
r.RuleType = marginTemplate.RuleType;
|
||||
r.TradeTypes = marginTemplate.TradeTypes;
|
||||
@@ -595,6 +601,27 @@ namespace YLErp.Web.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
private void ValidateBookIds(string bookIds)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(bookIds))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var ids = margin_template_v2.ParseBookIds(bookIds)
|
||||
.Select(x => int.Parse(x))
|
||||
.ToList();
|
||||
var existingIds = yldb.assetunit
|
||||
.Where(x => ids.Contains(x.id))
|
||||
.Select(x => x.id)
|
||||
.ToList();
|
||||
var missingIds = ids.Except(existingIds).ToList();
|
||||
if (missingIds.Any())
|
||||
{
|
||||
throw new Exception("适用簿记账户组包含不存在的簿记账户ID:" + string.Join(",", missingIds));
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public JsonResult deleteEditmargin_template_v2(string enid)
|
||||
{
|
||||
@@ -732,4 +759,4 @@ namespace YLErp.Web.Controllers
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user