98 lines
3.8 KiB
C#
98 lines
3.8 KiB
C#
|
|
using Kingdee.BOS;
|
|||
|
|
using Kingdee.BOS.Orm.DataEntity;
|
|||
|
|
using Kingdee.BOS.ServiceHelper;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
|
|||
|
|
namespace Gatedge.K3.Pilot.PlugIn.Services.DBService
|
|||
|
|
{
|
|||
|
|
public class SalOutStockDAL : BaseDAL
|
|||
|
|
{
|
|||
|
|
public SalOutStockDAL(Context context) : base(context)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取销售出库单的订单数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="entryId"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public DynamicObjectCollection GetSalOutStockSrcPO(int entryId)
|
|||
|
|
{
|
|||
|
|
var sql = $@"/*dialect*/
|
|||
|
|
|
|||
|
|
WITH #销售出库单采购入库 AS (
|
|||
|
|
SELECT t0.FBILLNO AS '销售出库单'
|
|||
|
|
,t0.FDATE AS '销售出库日期'
|
|||
|
|
,t0e.FENTRYID AS '销售出库单分录ID'
|
|||
|
|
,t0e.FREALQTY AS '出库数量'
|
|||
|
|
,SUM(t0e.FREALQTY) OVER (PARTITION BY t3e.FENTRYID) '合计出库数量'
|
|||
|
|
,t1.FBILLNO AS '发货通知单'
|
|||
|
|
,t1e.FENTRYID AS '发货通知单分录ID'
|
|||
|
|
,t1e.FQTY AS '通知数量'
|
|||
|
|
,t2.FBILLNO AS '销售订单'
|
|||
|
|
,t2e.FENTRYID AS '销售订单分录ID'
|
|||
|
|
,t2e.FQTY AS '订单数量'
|
|||
|
|
,t3.FBILLNO AS '采购订单'
|
|||
|
|
,t3.FDATE AS '采购日期'
|
|||
|
|
,t3e.FSEQ AS '采购订单行号'
|
|||
|
|
,t3e.FID AS '采购订单内码'
|
|||
|
|
,t3e.FENTRYID AS '采购订单分录内码'
|
|||
|
|
,t3e.FQTY AS '采购数量'
|
|||
|
|
,ISNULL(t4.FACTRECEIVEQTY,0) AS '收料数量'
|
|||
|
|
,ISNULL(t4.FREALQTY,0) '采购入库数量'
|
|||
|
|
--INTO #销售出库单采购入库
|
|||
|
|
FROM T_SAL_OUTSTOCK t0
|
|||
|
|
INNER JOIN T_SAL_OUTSTOCKENTRY t0e on t0e.FID = t0.FID
|
|||
|
|
INNER JOIN T_SAL_OUTSTOCKENTRY_LK t0e_lk on t0e.FENTRYID = t0e_lk.FENTRYID
|
|||
|
|
AND t0e_lk.FSTABLENAME = 'T_SAL_DELIVERYNOTICEENTRY'
|
|||
|
|
INNER JOIN T_SAL_DELIVERYNOTICE t1 on t1.FID = t0e_lk.FSBILLID
|
|||
|
|
INNER JOIN T_SAL_DELIVERYNOTICEENTRY t1e on t1.FID = t1e.FID AND t0e_lk.FSBILLID = t1e.FID AND t0e_lk.FSID = t1e.FENTRYID
|
|||
|
|
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK t1e_lk on t1e.FENTRYID = t1e_lk.FENTRYID
|
|||
|
|
AND t1e_lk.FSTABLENAME = 'T_SAL_ORDERENTRY'
|
|||
|
|
INNER JOIN T_SAL_ORDER t2 on t2.FID = t1e_lk.FSBILLID
|
|||
|
|
INNER JOIN T_SAL_ORDERENTRY t2e on t1e_lk.FSBILLID = t2e.FID AND t1e_lk.FSID = t2e.FENTRYID
|
|||
|
|
INNER JOIN T_SAL_ORDERENTRY_LK t2e_lk on t2e.FENTRYID = t2e_lk.FENTRYID
|
|||
|
|
AND t2e_lk.FSTABLENAME = 't_PUR_POOrderEntry'
|
|||
|
|
INNER JOIN T_PUR_POORDER t3 on t2e_lk.FSBILLID = t3.FID
|
|||
|
|
INNER JOIN T_PUR_POORDERENTRY t3e on t3.FID = t3e.FID AND t2e_lk.FSBILLID = t3e.FID AND t2e_lk.FSID = t3e.FENTRYID
|
|||
|
|
AND t3e.FMRPCLOSESTATUS = 'A'
|
|||
|
|
INNER JOIN T_PUR_POORDERENTRY_LK t3e_lk on t3e_lk.FENTRYID = t3e.FENTRYID
|
|||
|
|
OUTER APPLY (
|
|||
|
|
SELECT SUM(t4e.FACTRECEIVEQTY) 'FACTRECEIVEQTY',SUM(ISNULL(t5.FREALQTY,0)) 'FREALQTY'
|
|||
|
|
--,STRING_AGG(t4e.FENTRYID,';') '收料单分录ID'
|
|||
|
|
--,STRING_AGG(ISNULL(t5.FREALQTY,0),';') '收料单分录入库数量'
|
|||
|
|
FROM T_PUR_RECEIVE t4
|
|||
|
|
INNER JOIN T_PUR_RECEIVEENTRY t4e on t4e.FID = t4.FID
|
|||
|
|
INNER JOIN T_PUR_RECEIVEENTRY_LK t4e_lk on t4e_lk.FENTRYID = t4e.FENTRYID
|
|||
|
|
AND t4e_lk.FSTABLENAME = 'T_PUR_POORDERENTRY'
|
|||
|
|
OUTER APPLY (
|
|||
|
|
SELECT t5e_lk.FSID,SUM(t5e.FREALQTY) 'FREALQTY'
|
|||
|
|
FROM T_STK_INSTOCK t5
|
|||
|
|
INNER JOIN T_STK_INSTOCKENTRY t5e on t5.fID = t5e.FID
|
|||
|
|
INNER JOIN T_STK_INSTOCKENTRY_LK t5e_lk on t5e_lk.FENTRYID = t5e.FENTRYID
|
|||
|
|
AND t5e_lk.FSTABLENAME = 'T_PUR_RECEIVEENTRY'
|
|||
|
|
WHERE t5e_lk.FSBILLID = t4e.FID AND t5e_lk.FSID = t4e.FENTRYID
|
|||
|
|
GROUP BY t5e_lk.FSID
|
|||
|
|
) t5
|
|||
|
|
WHERE t3e.FENTRYID = t4e_lk.FSID AND t3e.FID = t4e_lk.FSBILLID
|
|||
|
|
GROUP BY t4e_lk.FSID
|
|||
|
|
) t4
|
|||
|
|
WHERE t3.FCLOSESTATUS = 'A'
|
|||
|
|
)
|
|||
|
|
SELECT t0.*
|
|||
|
|
FROM #销售出库单采购入库 t0
|
|||
|
|
WHERE 1 = 1
|
|||
|
|
AND t0.销售出库单分录ID = {entryId}
|
|||
|
|
ORDER BY t0.采购订单,t0.采购订单行号,t0.销售出库日期,t0.销售出库单分录ID
|
|||
|
|
|
|||
|
|
";
|
|||
|
|
return DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|