28 lines
1.3 KiB
Transact-SQL
28 lines
1.3 KiB
Transact-SQL
declare @FORG int,@leatTime int
|
|
set @FORG = 1
|
|
SET @leatTime = 30
|
|
SELECT t0.fid F_BGP_INVENTORYID
|
|
,t0.FSTOCKID,t1.FMaterialId,t0.FLot
|
|
,t0.FStockUnitId,t0.FBaseUnitId,t0.FQty,t0.FBaseQty
|
|
,t0.FStockStatusId,t0.FStockLocId
|
|
,DATEDIFF(DAY,t3.Maintdate,GETDATE()) - t2.F_BGP_DAY + 1 overday
|
|
,DATEADD(DAY,(t2.F_BGP_DAY + 0.7),t3.Maintdate) as F_BGP_ShouldMainteDate
|
|
,ISNULL(t3.FPRODUCEDATE,t0.FPRODUCEDATE) FPRODUCEDATE
|
|
,ISNULL(t3.FEXPIRYDATE,t0.FEXPIRYDATE) FEXPIRYDATE
|
|
,GETDATE() F_BGP_MAINTEPLANDATE,FOwnerTypeId,FOwnerId,FKeeperTypeId,FKeeperId,FStockStatusId,FAuxPropId,FSecQty,FSecUnitId,t3.Maintdate
|
|
FROM T_STK_INVENTORY t0
|
|
INNER JOIN T_BD_MATERIAL t1 on t0.FMATERIALID = t1.FMASTERID AND t0.FSTOCKORGID = t1.FUSEORGID
|
|
INNER JOIN T_BGP_MaintainType t2 on t1.F_BGP_MAINTAINCLASS = t2.FID AND t2.FNUMBER = '01'
|
|
CROSS APPLY (
|
|
SELECT ISNULL(t3.F_BGP_MaintDate,t3.FInStockDate) Maintdate,t3.FLOTID,t3.FPRODUCEDATE,t3.FEXPIRYDATE
|
|
FROM T_BD_LOTMASTER t3
|
|
WHERE t3.FLOTID=t0.FLot
|
|
) t3
|
|
WHERE 1 = 1
|
|
AND DATEDIFF(DAY,t3.Maintdate ,GETDATE()) > t2.F_BGP_DAY - 30 AND t0.FSTOCKORGID = @FORG
|
|
AND FBaseQty > 0 AND t1.FDOCUMENTSTATUS='C' AND FStockStatusId = 10000
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM T_BGP_MaintePlanB t4
|
|
WHERE t4.F_BGP_BaseQty > t4.F_BGP_BaseMaintQty AND t4.F_BGP_INVENTORYID= t0.fid
|
|
)
|
|
ORDER BY F_BGP_DosageForm,FSTOCKID,FMaterialId |