Files
RBMESAPICore/Context/GetWPLAN.sql
yuyubohh e8494ba988 qqq
2025-09-09 22:41:29 +08:00

73 lines
4.0 KiB
Transact-SQL

/****** Object: UserDefinedFunction [dbo].[GetWPLAN] Script Date: 2024/11/20 18:01:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================REMARK
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <ÍÆËÍÓë²éѯÌõ¼þÏàͬʱ fformidtypeid in(9,12)>
-- =============================================
ALTER FUNCTION [dbo].[GetWPLAN]
(
@ERP_MO varchar(255)
,@D varchar(255)
,@defaultorgid int=1
)
RETURNS TABLE
AS
RETURN
(
SELECT DISTINCT MY.FID MO_ID,MY.FENTRYID MO_ENTRYID,MO.FBILLNO ERP_MO,MY.FSEQ MO_SEQ,M.FNUMBER PROD_ID,MY.FQTY P_QTY,'' AS 'FACT_ID' ,'Y' AS 'IS_IMS_MO'
,CONVERT(varchar(10),MY.FPLANSTARTDATE,23) PB_DATE,CONVERT(varchar(10),MY.FPLANFINISHDATE,23) PE_DATE,MY.FFORECASTGROUP BOM_LEVEL
,S.FBILLNO SO_ID,SO.FSEQ SO_SEQ,Cust.FNUMBER AS CUST_ID,CASE WHEN MO.FTRUSTTEED=1 THEN 'Y' ELSE 'N' END 'IS_OUTS',D.FNUMBER DEPT_ID
,CASE WHEN MO.FISREWORK=1 THEN 4 ELSE CASE WHEN MO.FTRUSTTEED=1 THEN 7 ELSE 1 END END MO_TYPE,BOM.FNUMBER BOM_VER,P.FBILLNO MOBOM_ID
,'' AS 'SUP_ID',MY.FNOTE2 REMARK,Y.FNUMBER ERP_MO_TYPE,'' AS PO_ID,0 AS PO_SEQ
,CASE MY.F_ASSISTANT WHEN '66b0511114300f' THEN 'N' WHEN '66b0511c143011' THEN 'Y' ELSE 'N' END AS 'IS_HALF'
FROM T_PRD_MO MO
INNER JOIN T_PRD_MOENTRY MY ON MY.FID=MO.FID
INNER JOIN T_PRD_MOENTRY_A MA ON MA.FID=MY.FID AND MA.FENTRYID=MY.FENTRYID
INNER JOIN T_BD_MATERIAL M ON M.FMATERIALID=MY.FMATERIALID
INNER JOIN T_BD_DEPARTMENT D ON D.FDEPTID=MY.FWORKSHOPID
INNER JOIN T_BAS_BILLTYPE Y ON Y.FBILLTYPEID=MO.FBILLTYPE AND Y.FBILLFORMID='PRD_MO'
INNER JOIN T_BAS_BILLTYPE_L B ON B.FBILLTYPEID=Y.FBILLTYPEID AND B.FLOCALEID=2052
INNER JOIN T_ENG_BOM BOM ON BOM.FID=MY.FBOMID
LEFT JOIN T_SAL_ORDER S ON S.FID=MY.FSALEORDERID
LEFT JOIN T_SAL_ORDERENTRY SO ON SO.FID=MY.FSALEORDERID AND SO.FENTRYID=MY.FSALEORDERENTRYID
LEFT JOIN T_PRD_PPBOM P ON P.FMOID=MO.FID AND P.FMOENTRYID=MY.FENTRYID
--LEFT JOIN T_BD_CUSTOMER C ON C.FCUSTID=S.FCUSTID
LEFT JOIN T_BD_CUSTOMER Cust ON Cust.FCUSTID=MO.F_PKGR_Customer
WHERE MO.FDOCUMENTSTATUS='C' AND MO.FCANCELSTATUS='A' AND MA.FSTATUS IN (3,4)
AND MO.FBILLNO=isnull(@ERP_MO,MO.FBILLNO)
AND MA.FCONVEYDATE>=isnull(@D,MA.FCONVEYDATE)
AND MO.FPrdOrgId=@defaultorgid
UNION
SELECT DISTINCT MY.FID MO_ID,MY.FENTRYID MO_ENTRYID,MO.FBILLNO ERP_MO,MY.FSEQ MO_SEQ,M.FNUMBER PROD_ID,MY.FQTY P_QTY,'' AS 'FACT_ID' ,'Y' AS 'IS_IMS_MO'
,CONVERT(varchar(10),MY.FPLANSTARTDATE,23) PB_DATE,CONVERT(varchar(10),MY.FPLANFINISHDATE,23) PE_DATE,MY.FFORECASTGROUP BOM_LEVEL
,S.FBILLNO SO_ID,SO.FSEQ SO_SEQ,C.FNUMBER AS CUST_ID,'Y' 'IS_OUTS','' DEPT_ID,7 MO_TYPE,BOM.FNUMBER BOM_VER,P.FBILLNO MOBOM_ID
,D1.FNUMBER SUP_ID,ML.FDESCRIPTION REMARK,Y.FNUMBER ERP_MO_TYPE,PO.FBillNo PO_ID,PE.FSeq PO_SEQ
,'' AS IS_HALF
FROM T_SUB_REQORDER MO
INNER JOIN T_SUB_REQORDERENTRY MY ON MY.FID=MO.FID
LEFT JOIN T_SUB_REQORDERENTRY_L ML ON ML.FPKID=MY.FID AND ML.FENTRYID=MY.FENTRYID
INNER JOIN T_SUB_REQORDERENTRY_A MA ON MA.FID=MY.FID AND MA.FENTRYID=MY.FENTRYID
INNER JOIN T_BD_MATERIAL M ON M.FMATERIALID=MY.FMATERIALID
INNER JOIN T_BAS_BILLTYPE Y ON Y.FBILLTYPEID=MO.FBILLTYPE AND Y.FBILLFORMID='SUB_SUBREQORDER'
INNER JOIN T_BAS_BILLTYPE_L B ON B.FBILLTYPEID=Y.FBILLTYPEID AND B.FLOCALEID=2052
INNER JOIN T_ENG_BOM BOM ON BOM.FID=MY.FBOMID
INNER JOIN T_PUR_POORDERENTRY PE ON PE.FID=MA.FPurOrderId and PE.FENTRYID=MA.FPurOrderEntryId
INNER JOIN T_PUR_POORDER PO ON PO.FID=PE.FID
inner join T_BD_SUPPLIER D1 ON D1.FSupplierId=MY.FSupplierId
LEFT JOIN T_SAL_ORDER S ON S.FID=MA.FSALEORDERID
LEFT JOIN T_SAL_ORDERENTRY SO ON SO.FID=MA.FSALEORDERID AND SO.FENTRYID=MA.FSALEORDERENTRYID
LEFT JOIN T_PRD_PPBOM P ON P.FMOID=MO.FID AND P.FMOENTRYID=MY.FENTRYID
LEFT JOIN T_BD_CUSTOMER C ON C.FCUSTID=S.FCUSTID
WHERE PO.FDocumentStatus='C' AND PO.FCancelStatus='A' AND PO.FCloseStatus='A'
AND MO.FBILLNO=isnull(@ERP_MO,MO.FBILLNO)
AND PO.FAPPROVEDATE>=isnull(@D,PO.FAPPROVEDATE)
AND MO.FSubOrgId=@defaultorgid
AND MY.FSTATUS = 3
)