feat: 国联民生收益互换按簿记分类生成交易编号 簿记账户新增“簿记分类”字段,支持代客、融券,新增账户默认代客,历史账户统一初始化为代客 簿记账户分类设为必填,列表、编辑及详情页面同步展示 修改已被交易引用的簿记账户分类时增加二次确认,并提示关联交易数量 国联民生收益互换交易编号不再根据甲乙方判断,改为根据簿记账户分类生成 代客使用数字序号,融券使用字母序号,分别从已有同客户同日编号的最大序号继续递增 保留手工交易编号优先逻辑,标准格式的手工编号参与后续最大序号计算 生成候选编号后检查完整交易编号是否已存在,存在则继续递增 新增簿记分类编号格式、最大序号计算及数字字母序列隔离专项单测
177 lines
5.5 KiB
C#
177 lines
5.5 KiB
C#
using YLErp.Modules.BasicDataModule;
|
|
|
|
namespace YLErp.Web.Controllers
|
|
{
|
|
public class AssetunitController : BaseController
|
|
{
|
|
public static List<SelectListItem> GetAllassetunit()
|
|
{
|
|
using (var db = new YLContext())
|
|
{
|
|
var query = from m in db.assetunit
|
|
select new SelectListItem
|
|
{
|
|
Text = m.Name,
|
|
Value = m.id + ""
|
|
};
|
|
return query.ToList();
|
|
}
|
|
}
|
|
|
|
public static List<SelectListItem> GetAllassetunitname()
|
|
{
|
|
using (var db = new YLContext())
|
|
{
|
|
var query = from m in db.assetunit
|
|
select new SelectListItem
|
|
{
|
|
Text = m.Name,
|
|
Value = m.Name
|
|
};
|
|
return query.ToList();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取当前用户簿记账户selectlist
|
|
/// </summary>
|
|
public static List<SelectListItem> GetClientassetunit()
|
|
{
|
|
return DataCacheProvider.GetAssetUnitDataSource().AsQueryable().Select(m => new SelectListItem
|
|
{
|
|
Text = m.Name + "",
|
|
Value = m.id + ""
|
|
}).ToList();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取当前用户簿记账户selectlist
|
|
/// </summary>
|
|
public static List<SelectListItem> GetClientassetunitname()
|
|
{
|
|
return DataCacheProvider.GetAssetUnitDataSource().AsQueryable().Select(m => new SelectListItem
|
|
{
|
|
Text = m.Name + "",
|
|
Value = m.Name + ""
|
|
}).ToList();
|
|
}
|
|
|
|
[MyAuthorize("系统管理-资产单元")]
|
|
public ActionResult AssetunitList()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[MyAuthorize("系统管理-资产单元")]
|
|
public ActionResult AssetunitgroupList()
|
|
{
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult AssetunitQuery(AssetUnitRequest req)
|
|
{
|
|
var sList = new AssetUnitDataService(CurUser).SearchList(req);
|
|
|
|
return Json(sList);
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult AssetunitgroupQuery(AssetUnitGroupRequest req)
|
|
{
|
|
var sList = new AssetUnitDataService(CurUser).SearchAssetUnitGroupList(req);
|
|
return Json(sList);
|
|
}
|
|
|
|
public ActionResult AssetunitView(string enid)
|
|
{
|
|
var intid = DecryptInt(enid);
|
|
var r = yldb.assetunit.Find(intid);
|
|
r.GroupName = yldb.assetunitgroup.Find(r.GroupId)?.Name;
|
|
return View(r);
|
|
}
|
|
|
|
public ActionResult AssetunitEdit(string enid)
|
|
{
|
|
var isAdd = string.IsNullOrEmpty(enid) || enid == "0";
|
|
if (isAdd)
|
|
{
|
|
return View(new AssetUnit { BookCategory = AssetUnit.BookCategoryAgency });
|
|
}
|
|
var intid = DecryptInt(enid);
|
|
var r = yldb.assetunit.Find(intid);
|
|
return View(r);
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult AssetunitEditJson(AssetUnit req, bool confirmBookCategoryChange = false)
|
|
{
|
|
if (!string.IsNullOrEmpty(req.EncryptId))
|
|
{
|
|
req.id = DecryptInt(req.EncryptId);
|
|
}
|
|
|
|
var service = new AssetUnitDataService(CurUser);
|
|
var referencedTradeCount = service.GetBookCategoryReferencedTradeCount(req);
|
|
if (!confirmBookCategoryChange && referencedTradeCount > 0)
|
|
{
|
|
return JsonSuccess(data: new
|
|
{
|
|
NeedBookCategoryChangeConfirm = true,
|
|
Message = $"该簿记账户已被 {referencedTradeCount} 笔交易引用,修改簿记分类可能导致历史编号口径不一致,确认继续?"
|
|
});
|
|
}
|
|
|
|
var r = service.SaveAssetUnit(req);
|
|
|
|
return JsonSuccess("更新成功", r);
|
|
}
|
|
|
|
public JsonResult GetAssetUnitTradeNames(int id)
|
|
{
|
|
var unit = new AssetUnitDataService(CurUser).GetAssetUnit(id);
|
|
return Json(unit.TraderNames);
|
|
}
|
|
|
|
public ActionResult AssetunitgroupEdit(string enid)
|
|
{
|
|
var isAdd = string.IsNullOrEmpty(enid) || enid == "0";
|
|
if (isAdd)
|
|
{
|
|
return View(new AssetUnitGroup());
|
|
}
|
|
var intid = DecryptInt(enid);
|
|
var r = yldb.assetunitgroup.Find(intid);
|
|
return View(r);
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult AssetunitgroupEditJson(AssetUnitGroup req)
|
|
{
|
|
if (!string.IsNullOrEmpty(req.EncryptId))
|
|
{
|
|
req.id = DecryptInt(req.EncryptId);
|
|
}
|
|
|
|
var r = new AssetUnitDataService(CurUser).SaveAssetUnitGroup(req);
|
|
|
|
return JsonSuccess("更新成功", r);
|
|
}
|
|
|
|
public JsonResult assetunitgroupDel(string id)
|
|
{
|
|
var intid = DecryptInt(id);
|
|
new AssetUnitDataService(CurUser).RemoveAssetUnitGroup(intid);
|
|
return JsonSuccess("删除成功");
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult Deleteassetunit(string id)
|
|
{
|
|
var intid = DecryptInt(id);
|
|
new AssetUnitDataService(CurUser).RemoveAssetUnit(intid);
|
|
return JsonSuccess("删除成功");
|
|
}
|
|
}
|
|
}
|