This commit is contained in:
李狗蛋 2025-05-13 14:14:51 +08:00
parent dff2f5f9fe
commit 569ca39775
36 changed files with 359 additions and 30 deletions

View File

@ -238,6 +238,9 @@
<Compile Include="PRD_PPBOMCHANGE\PLTHForm.cs" /> <Compile Include="PRD_PPBOMCHANGE\PLTHForm.cs" />
<Compile Include="PRD_PPBOMCHANGE\PLTHWL.cs" /> <Compile Include="PRD_PPBOMCHANGE\PLTHWL.cs" />
<Compile Include="SAL_DELIVERYNOTICE\PushCeLue.cs" /> <Compile Include="SAL_DELIVERYNOTICE\PushCeLue.cs" />
<Compile Include="SAL_ORDER\SaveWL.cs" />
<Compile Include="T_PUR_RECEIVE\SaveDate.cs" />
<Compile Include="SAL_DELIVERYNOTICE\SaveYFH.cs" />
<Compile Include="T_IV_SALESIC\AuditS_Order.cs" /> <Compile Include="T_IV_SALESIC\AuditS_Order.cs" />
<Compile Include="Common\CommonHelper.cs" /> <Compile Include="Common\CommonHelper.cs" />
<Compile Include="PRD_PPBOM\AuditPOM.cs" /> <Compile Include="PRD_PPBOM\AuditPOM.cs" />

View File

@ -16,7 +16,8 @@ namespace GZ_LTHPilot_ORDER.SAL_DELIVERYNOTICE
public override void OnParseFilter(ParseFilterEventArgs e) public override void OnParseFilter(ParseFilterEventArgs e)
{ {
base.OnParseFilter(e); base.OnParseFilter(e);
e.FilterPolicySQL = string.Format("And 1 = 1"); e.FilterPolicySQL += $"AND (SELECT CASE WHEN (SELECT COUNT(*) FROM T_SAL_DELIVERYNOTICEENTRY A INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID WHERE C.FSaleOrgId = 100302 AND C.FSALEORGID <> C.F_SaleOrgId AND A.FENTRYID = t1.FENTRYID) > 0 THEN 1 WHEN (SELECT COUNT(*) FROM T_SAL_DELIVERYNOTICEENTRY A INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID WHERE C.FSaleOrgId <> 100302 AND A.FENTRYID = t1.FENTRYID) > 0 THEN 1 WHEN (SELECT COUNT(*) FROM T_PRD_MO A INNER JOIN T_PRD_MOENTRY B ON A.FID = B.FID INNER JOIN T_PRD_MOENTRY_LK C ON B.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY' WHERE A.FDocumentStatus = 'C' AND C.FSBILLID IN (SELECT C.FID FROM T_SAL_DELIVERYNOTICEENTRY A INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID INNER JOIN T_BD_MATERIAL E ON D.FMATERIALID = E.FMATERIALID WHERE C.FSaleOrgId = 100302 AND C.FSALEORGID = C.F_SaleOrgId AND (E.FNUMBER NOT LIKE 'H.10%' OR E.FNUMBER NOT LIKE 'H.20%' OR E.FNUMBER NOT LIKE 'H.30%') AND A.FENTRYID = t1.FENTRYID)) > 0 THEN 1 ELSE (SELECT COUNT(*) FROM T_PRD_MO A INNER JOIN T_PRD_MOENTRY B ON A.FID = B.FID INNER JOIN T_PRD_MOENTRY_LK C ON B.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY' WHERE A.FDocumentStatus = 'C' AND C.FSBILLID IN (SELECT C.FID FROM T_SAL_DELIVERYNOTICEENTRY A INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID INNER JOIN T_BD_MATERIAL E ON D.FMATERIALID = E.FMATERIALID WHERE C.FSaleOrgId = 100302 AND C.FSALEORGID = C.F_SaleOrgId AND (E.FNUMBER LIKE 'H.10%' OR E.FNUMBER LIKE 'H.20%' OR E.FNUMBER LIKE 'H.30%') AND A.FENTRYID = t1.FENTRYID)) END AS Result) > 0";
e.PlugFilterDesc = "当销售订单的销售组织为珠海派诺且销售组织=备货组织时,销售订单需下推生产订单且生产订单处于审核状态后,才可由发货通知单下推销售出库";
} }
} }
} }

View File

@ -0,0 +1,191 @@
using System;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.App.Data;
using System.ComponentModel;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using Kingdee.BOS.Util;
using Kingdee.BOS.WebApi.Client;
using Newtonsoft.Json.Linq;
using System.Net.Http;
using System.Text;
using Kingdee.BOS.WebApi.FormService;
using Newtonsoft.Json;
namespace GZ_LthFHTZSava
{
[Description("保存前触发以收款条件和发货金额做判断01"), HotUpdate]
public class SaveYFH : AbstractBillPlugIn
{
private double F_Amount;
//获取当前时间
private DateTime now = DateTime.Now;
public override void BeforeSave(BeforeSaveEventArgs e)
{
base.BeforeSave(e);
//获取发货通知单的销售范围#字段
var F_SalesRange = this.View.Model.GetValue("F_SalesRange");
//判断销售范围字段等于购销
if (F_SalesRange.ToString() == "GX")
{
//获取发货通知单的源单编号字段
var FSrcBillNo = this.View.Model.GetValue("FSrcBillNo", 0);
//SQL查询获取销售订单的累计核销金额字段
var F_AmountSql = string.Format(@"SELECT F_AMOUNT FROM T_SAL_ORDER WHERE FBILLNO = '{0}'", FSrcBillNo.ToString());
var F_AmountDS = DBUtils.ExecuteDynamicObject(this.Context, F_AmountSql);
if (F_AmountDS.Count != 0)
{
F_Amount = Convert.ToDouble(F_AmountDS[0]["F_AMOUNT"]);
}
//SQL以销售订单编号做查询查询收款条件名称
var SKTJFNameSql = string.Format(@"SELECT ISNULL(t3.FNAME,'') AS FNAME FROM T_SAL_ORDER t1 LEFT JOIN T_SAL_ORDERPLAN t2 on t1.FID = t2.FID LEFT JOIN T_BD_RECCONDITION_L t3 on t3.FID = t2.F_RecConditionId Where t1.FBILLNO = '{0}'", FSrcBillNo.ToString());
var SKTJFNameDS = DBUtils.ExecuteDynamicObject(this.Context, SKTJFNameSql);
foreach (var SKTJFNameRow in SKTJFNameDS)
{
if (SKTJFNameRow["FNAME"].ToString() == "")
{
continue;
}
//判定收款条件是否为预付款
string IFYFK = "预付";
if (SKTJFNameRow["FNAME"].ToString().Contains(IFYFK))
{
//SQL查询获取销售订单预付款的应收金额
string FRecAdvanceAmountSql = string.Format(@"SELECT SUM(t1.FRecAdvanceAmount) AS FRecAdvanceAmount FROM T_SAL_ORDERPLAN t1 LEFT JOIN T_SAL_ORDER t2 on t1.FID = t2.FID LEFT JOIN T_BD_RECCONDITION_L t3 on t3.FID = t1.F_RECCONDITIONID WHERE t2.FBILLNO = '{0}' AND t3.FNAME like '%预付%'", FSrcBillNo);
var FRecAdvanceAmountDS = DBUtils.ExecuteDynamicObject(this.Context, FRecAdvanceAmountSql);
if (FRecAdvanceAmountDS.Count != 0)
{
double FRecAdvanceAmount = Convert.ToDouble(FRecAdvanceAmountDS[0]["FRecAdvanceAmount"]);
//判定收款条件为预付款时,是否为预发货
if (F_Amount < FRecAdvanceAmount)
{
this.View.Model.SetValue("F_SFYFH", "是");
this.View.Model.SetValue("F_VRYF_Date_83g", now);
this.View.UpdateView();
}
else
{
this.View.Model.SetValue("F_SFYFH", "否");
this.View.Model.SetValue("F_VRYF_Date_83g", now);
this.View.UpdateView();
}
}
}
//判定条件是否为款到发货
string IFKDFH = "款到发货";
if (SKTJFNameRow["FNAME"].ToString().Contains(IFKDFH))
{
//获取当前单据的发货金额
double FBillAllAmount1 = Convert.ToDouble(this.View.Model.GetValue("FBillAllAmount"));
string FBillAllAmountSql;
//SQL查询累计发货金额
if (this.View.Model.GetValue("FBillNo").IsNullOrEmpty())
{
FBillAllAmountSql = string.Format(@"SELECT SUM(t1.FBillAllAmount) FBillAllAmount FROM T_SAL_DELIVERYNOTICEFIN t1 LEFT JOIN T_SAL_DELIVERYNOTICEENTRY t2 on t1.FID = t2.FID WHERE t2.FSRCBILLNO = '{0}'And t2.FID != 0", FSrcBillNo);
}
else
{
//获取发货通知单的FID
string FormTitle = this.View.Model.DataObject["Id"].ToString();
FBillAllAmountSql = string.Format(@"SELECT SUM(t1.FBillAllAmount) FBillAllAmount FROM T_SAL_DELIVERYNOTICEFIN t1 LEFT JOIN T_SAL_DELIVERYNOTICEENTRY t2 on t1.FID = t2.FID WHERE t2.FSRCBILLNO = '{0}' And t1.FID != '{1}'", FSrcBillNo, FormTitle);
}
var FBillAllAmountDS = DBUtils.ExecuteDynamicObject(this.Context, FBillAllAmountSql);
if (FBillAllAmountDS.Count != 0)
{
double FBillAllAmount = Convert.ToDouble(FBillAllAmountDS[0]["FBillAllAmount"]);
if (F_Amount < FBillAllAmount + FBillAllAmount1)
{
this.View.Model.SetValue("F_SFYFH", "是");
this.View.UpdateView();
this.View.Model.SetValue("F_VRYF_Date_83g", now);
this.View.UpdateView();
}
else
{
this.View.Model.SetValue("F_SFYFH", "否");
this.View.UpdateView();
this.View.Model.SetValue("F_VRYF_Date_83g", now);
this.View.UpdateView();
}
}
}
////判定条件是否为协议付款
//string IFXYFK = "协议付款";
//if (SKTJFNameRow["FNAME"].ToString().Contains(IFXYFK))
//{
// //SQL查询销售组织和客户编码
// string FSaleOrgIdAndFCustIdSql = string.Format(@"SELECT t1.FSaleOrgId AS FSaleOrgId,t2.FNUMBER AS FNUMBER FROM T_SAL_ORDER t1 LEFT JOIN T_BD_CUSTOMER t2 on t1.FCUSTID = t2.FCUSTID WHERE FBILLNO = '{0}'", FSrcBillNo);
// var FSaleOrgIdAndFCustIdDS = DBUtils.ExecuteDynamicObject(this.Context, FSaleOrgIdAndFCustIdSql);
// if (FSaleOrgIdAndFCustIdDS.Count != 0)
// {
// //获取销售组织
// string FSaleOrgId = FSaleOrgIdAndFCustIdDS[0]["FSaleOrgId"].ToString();
// //获取客户编码
// string FCustId = FSaleOrgIdAndFCustIdDS[0]["FNUMBER"].ToString();
// //通过API获取客户剩余信用额度
// var Json = "{\"FieldKeys\":\"FLIMITBALANCE\",\"SchemeId\":\"\",\"StartRow\":0,\"Limit\":2000,\"IsVerifyBaseDataField\":\"true\",\"FilterString\":[],\"Model\":{\"FSaleOrgList\":\"" + FSaleOrgId + "\",\"FObjectType\":\"BD_Customer\",\"FStartCustId\":{\"FNumber\":\"" + FCustId + "\"},\"FEndCustId\":{\"FNumber\":\"" + FCustId + "\"},\"FCreditStatus\":\"ALL\",\"FIsExceeds\":\"-1\",\"FMultiSelect\":false}}";
// var result = WebApiServiceCall.GetSysReportData(this.Context, "CRE_Rpt_CreditInfo", Json);
// var resultJo = JsonConvert.DeserializeObject<JToken>(JsonConvert.SerializeObject(result));
// var IsSuccess = resultJo["Result"]["IsSuccess"].Value<string>();
// if (IsSuccess == "True")
// {
// var RowCount = resultJo["Result"]["RowCount"].Value<int>();
// if (RowCount != 0)
// {
// JArray FLIMITBALANCEJArray = resultJo["Result"]["Rows"].Value<JArray>();
// double FLIMITBALANCE = Convert.ToDouble(FLIMITBALANCEJArray[0][0]);
// //查询当前发货通知单的发货金额
// double FBillAllAmount = Convert.ToDouble(this.View.Model.GetValue("FBillAllAmount").ToString());
// //发货金额大于剩余额度百分之九十,则判定为预发货
// if (FBillAllAmount > FLIMITBALANCE * 0.9)
// {
// this.View.Model.SetValue("F_SFYFH", "是");
// this.View.UpdateView();
// this.View.Model.SetValue("F_VRYF_Date_83g", now);
// this.View.UpdateView();
// }
// else
// {
// this.View.Model.SetValue("F_SFYFH", "否");
// this.View.UpdateView();
// this.View.Model.SetValue("F_VRYF_Date_83g", now);
// this.View.UpdateView();
// }
// }
// else if (RowCount == 0)
// {
// this.View.Model.SetValue("F_SFYFH", "是");
// this.View.UpdateView();
// this.View.ShowErrMessage("客户编码: " + FCustId + ",未启用信用管理");
// this.View.Model.SetValue("F_VRYF_Date_83g", now);
// this.View.UpdateView();
// }
// else
// {
// this.View.Model.SetValue("F_SFYFH", "否");
// this.View.UpdateView();
// this.View.Model.SetValue("F_VRYF_Date_83g", now);
// this.View.UpdateView();
// }
// }
// }
//}
}
}
}
}
}

41
SAL_ORDER/SaveWL.cs Normal file
View File

@ -0,0 +1,41 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GZ_LTHPilot_ORDER.SAL_ORDER
{
[Description("服务插件:销售订单根据物料编码做判断"), HotUpdate]
public class SaveWL : AbstractOperationServicePlugIn
{
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
{
base.BeforeExecuteOperationTransaction(e);
foreach (var Row in e.SelectedRows)
{
//获取单据信息
var Billobj = Row.DataEntity;
//根据订单FID
var sqls = SqlManage.SqlManage.SaveOrder_GZTH(this.Context, Convert.ToString(Billobj["Id"]));
if (sqls != null)
{
foreach (var sql in sqls)
{
if (Convert.ToInt32(sql["SUMWL"]) == 0)
{
e.Cancel = true;
throw new Exception(
string.Format(@"物料编码J开头则明细物联网卡使用年份字段必填")
);
}
}
}
}
}
}
}

View File

@ -359,12 +359,12 @@ namespace GZ_LTHPilot_ORDER.SqlManage
string sql = string.Format(@" string sql = string.Format(@"
SELECT SELECT
A.FBILLNO AS '', A.FBILLNO AS '',
B.FBILLALLAMOUNT_LC AS '', B.FBillAllAmount AS '',
A.F_INVOICEAMOUNT AS '' A.F_INVOICEAMOUNT AS ''
FROM T_SAL_ORDER A FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID
WHERE A.FID = '{0}' WHERE A.FID = '{0}'
AND ABS(A.F_invoiceAmount) > ABS(B.FBILLALLAMOUNT_LC) AND ABS(A.F_invoiceAmount) > ABS(B.FBillAllAmount)
", FID); ", FID);
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
} }
@ -382,5 +382,25 @@ namespace GZ_LTHPilot_ORDER.SqlManage
"); ");
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null); return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
} }
//根据销售出库的FID反写发货通知单的检验周期字段
public static DynamicObjectCollection UpdateFHTZDJYZQ(Context ctx,string FID)
{
//查询表并且返回表的数据
string getSql = string.Format(@"/*dialect*/
EXEC SaveCGRK_GZTH '{0}'
", FID);
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
}
//根据销售订单的FID查询物料编码J开头的物联网卡使用年份必填
public static DynamicObjectCollection SaveOrder_GZTH(Context ctx, string FID)
{
//查询表并且返回表的数据
string getSql = string.Format(@"/*dialect*/
EXEC SaveOrder_GZTH '{0}'
", FID);
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
}
} }
} }

View File

@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace GZ_LTHPilot_ORDER.IV_SALESIC namespace GZ_LTHPilot_ORDER.IV_SALESIC
{ {
[Description("服务插件:发票审核时,反写销售订单累计开票金额字段"), HotUpdate] [Description("服务插件:发票审核时,反写销售订单累计开票金额字段非本位币"), HotUpdate]
public class AuditS_Order : AbstractOperationServicePlugIn public class AuditS_Order : AbstractOperationServicePlugIn
{ {
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)

View File

@ -54,6 +54,7 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC
Convert.ToString(LZOrder["销售订单FENTRYID"]), Convert.ToString(LZOrder["开票数量"]), Convert.ToString(LZOrder["销售订单FENTRYID"]), Convert.ToString(LZOrder["开票数量"]),
Convert.ToString(LZOrder["开票金额"])); Convert.ToString(LZOrder["开票金额"]));
} }
break;
} }
} }
} }

28
T_PUR_RECEIVE/SaveDate.cs Normal file
View File

@ -0,0 +1,28 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GZ_LTHPilot_ORDER.SAL_DELIVERYNOTICE
{
[Description("服务插件:采购入库单保存触发检验周期字段更新"), HotUpdate]
public class SaveDate : AbstractOperationServicePlugIn
{
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
{
base.AfterExecuteOperationTransaction(e);
foreach (var Row in e.SelectedRows)
{
//获取单据信息
var Billobj = Row.DataEntity;
//以采购入库单的FID获取采购入库单日期字段减去收料通知单的日期的天数并对检验周期字段赋值
SqlManage.SqlManage.UpdateFHTZDJYZQ(this.Context, Convert.ToString(Billobj["Id"]));
}
}
}
}

Binary file not shown.

BIN
bin/Debug/AForge.Video.dll Normal file

Binary file not shown.

Binary file not shown.

BIN
bin/Debug/Aspose.Cells.dll Normal file

Binary file not shown.

Binary file not shown.

BIN
bin/Debug/Castle.Core.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/Debug/FarPoint.PDF.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/Debug/FarPoint.Win.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/Debug/IronPython.dll Normal file

Binary file not shown.

BIN
bin/Debug/JWT.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,44 @@
SELECT
CASE
WHEN
(
SELECT COUNT(*)
FROM T_SAL_DELIVERYNOTICEENTRY A
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY'
INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID
INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID
WHERE C.FSaleOrgId = 100302
AND C.FSALEORGID <> C.F_SaleOrgId
AND A.FENTRYID = t1.FENTRYID
) > 0
THEN 1
WHEN(
SELECT COUNT(*)
FROM T_SAL_DELIVERYNOTICEENTRY A
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY'
INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID
INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID
WHERE C.FSaleOrgId <> 100302
AND A.FENTRYID = t1.FENTRYID
) > 0
THEN 1
ELSE
(
SELECT COUNT(*)
FROM T_PRD_MO A
INNER JOIN T_PRD_MOENTRY B ON A.FID = B.FID
INNER JOIN T_PRD_MOENTRY_LK C ON B.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY'
WHERE A.FDocumentStatus = 'C'
AND C.FSBILLID IN
(
SELECT C.FID
FROM T_SAL_DELIVERYNOTICEENTRY A
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY'
INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID
INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID
WHERE C.FSaleOrgId = 100302
AND C.FSALEORGID = C.F_SaleOrgId
AND A.FENTRYID = t1.FENTRYID
)
)
END AS Result