using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn; using Kingdee.BOS.Core.Metadata.ConvertElement.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 PushCeLue : AbstractConvertPlugIn { public override void OnParseFilter(ParseFilterEventArgs e) { base.OnParseFilter(e); 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 = "当销售订单的销售组织为珠海派诺且销售组织=备货组织时,销售订单需下推生产订单且生产订单处于审核状态后,才可由发货通知单下推销售出库"; } } }