这篇文章距离最后更新已过176 天,如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
U9C 需求分类
创建需求分类
/// <summary>
/// 创建修改需求分类
/// </summary>
/// <param name="head"></param>
public void CreateDemandCode(SO head)
{
// 循环修改后的行
foreach (var Line in head.SOLines)
// 新增行或修改行时,同步新增或关联需求分类枚举
if (Line.SysState is ObjectState.Inserted || Line.SysState is ObjectState.Updated)
CreateDemandCode(Line);
// 循环修改前的行
foreach (var Line in head.OriginalData.SOLines)
// 删除行时同步删除关联的需求分类枚举
if (Line.SysState is ObjectState.Deleted)
DeleteDemandCode(Line);
}
/// <summary>
/// 创建需求分类
/// </summary>
/// <param name="SOLineD"></param>
private void CreateDemandCode(SOLine SOLineD)
{
var type = ExtEnumType.Finder.Find("Code = 'UFIDA.U9.CBO.Enums.DemandCodeEnum'");
try
{
// 枚举编码
var EnumCode = $"{SOLineD.SO.DocNo}_{SOLineD.DocLineNo}";
// 查询枚举实体
var enumValue = ExtEnumValue.Finder.Find($"Code = '{EnumCode}' and ExtEnumTypeUID = '{type.UID}'");
// 需求分类枚举值
var EValue = enumValue?.EValue;
if (enumValue is null)
{
// 创建枚举
using (ISession session = Session.Open())
{
var value4 = type.ExtEnumValues.AddNew();
// 枚举编码
value4.Code = EnumCode;
// 枚举名称
value4.Name = EnumCode;
// 枚举值
var SQL = $"SELECT ISNULL(MAX(EValue) ,0) AS maxEValue FROM UBF_Sys_ExtEnumValue WHERE ExtEnumTypeUID = '{type.UID}'";
DataAccessor.RunSQL(DataAccessor.GetConn(), SQL, null, out object obj);
if (obj is null || string.IsNullOrEmpty(obj.ToString()))
value4.EValue = 1;
else
value4.EValue = int.Parse(obj.ToString()) + 1;
session.Commit();
EValue = value4.EValue;
}
}
// 回写销售订单子行需求分类枚举值
string strSql = $"UPDATE SM_SOShipline SET DemandType = {EValue} WHERE SOLine = {SOLineD.ID}";
DataAccessor.RunSQL(DataAccessor.GetConn(), strSql, null);
}
catch (Exception ex)
{
throw new Exception($"需求分类[{SOLineD.SO.DocNo}_{SOLineD.DocLineNo}]删除失败!{ex.Message}");
}
}
需求分类删除
/// <summary>
/// 删除需求分类
/// </summary>
/// <param name="head"></param>
public void DeleteDemandCode(SO head)
{
foreach (var Line in head.OriginalData.SOLines)
{
DeleteDemandCode(Line);
}
}
/// <summary>
/// 删除需求分类
/// </summary>
/// <param name="SOLineD"></param>
private void DeleteDemandCode(SOLine SOLineD)
{
var type = ExtEnumType.Finder.Find("Code = 'UFIDA.U9.CBO.Enums.DemandCodeEnum'");
try
{
using (ISession session = Session.Open())
{
var enumValue = ExtEnumValue.Finder.Find($"Code = '{SOLineD.SO.DocNo}_{SOLineD.DocLineNo}' and ExtEnumTypeUID = '{type.UID}'");
enumValue?.Remove();
session.Commit();
}
}
catch (Exception ex)
{
throw new Exception($"需求分类[{SOLineD.SO.DocNo}_{SOLineD.DocLineNo}]删除失败!{ex.Message}");
}
}