SHARE
TWEET

AKI-REFILL-1

mhamdani049 Jun 29th, 2020 770 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. USE SPEX_DB;
  2.  
  3. IF EXISTS (
  4. SELECT *
  5.     FROM INFORMATION_SCHEMA.ROUTINES
  6. WHERE SPECIFIC_SCHEMA = N'spex'
  7.     AND SPECIFIC_NAME = N'SP_AMANAH_RE_FILL_3_LIST'
  8.     AND ROUTINE_TYPE = N'PROCEDURE'
  9. )
  10. DROP PROCEDURE spex.SP_AMANAH_RE_FILL_3_LIST
  11. GO
  12.  
  13. CREATE PROCEDURE spex.SP_AMANAH_RE_FILL_3_LIST
  14.     @ZONE_CD VARCHAR(1)
  15. AS
  16. BEGIN
  17.     SELECT DISTINCT z.*
  18.         FROM
  19.             (
  20.                 SELECT DISTINCT  y.* FROM (
  21.                     SELECT
  22.                         a.[PART_NO]
  23.                         , c.RACK_ADDRESS_CD AS PRIMARY_LOC
  24.                         , ISNULL(b.[SOH], 0) AS SOH
  25.                         , ISNULL(b.[SOR], 0) AS SOR
  26.                         , ISNULL(c.[MAX_STOCK], 0) AS MAX_STOCK
  27.                         , ISNULL(b.[SODR], 0) AS SODR
  28.                         , ISNULL(b.[SONDR], 0) AS SONDR
  29.                         , 1 AS IS_PROBLEM_SHORTAGE
  30.                         , (
  31.                             SELECT TOP 1 z.RACK_ADDRESS
  32.                                 FROM [spex].[TB_R_BINNING] z
  33.                                 INNER JOIN [SPEX_DB].[spex].[TB_R_PART_STOCK_INFO] y
  34.                                     ON z.PART_NO = y.PART_NO
  35.                                 WHERE z.PART_NO = b.PART_NO
  36.                                     AND ( z.SOURCE = 'NON-DIRECT')
  37.                                     AND ISNULL(y.SONDR, 0) > 0
  38.                                     AND ISNULL(z.QTY, 0) > 0
  39.                           ) AS RESERVE_LOC_TOP
  40.                         , (
  41.                             SELECT COUNT(*)
  42.                                 FROM [spex].[TB_R_BINNING] z
  43.                                 INNER JOIN [SPEX_DB].[spex].[TB_R_PART_STOCK_INFO] y
  44.                                     ON z.PART_NO = y.PART_NO
  45.                                 WHERE z.PART_NO = b.PART_NO
  46.                                     AND ( z.SOURCE = 'NON-DIRECT')
  47.                                     AND ISNULL(y.SONDR, 0) > 0
  48.                                     AND ISNULL(z.QTY, 0) > 0
  49.                           ) AS RESERVE_LOC_COUNT
  50.                             FROM [SPEX_DB].[spex].[TB_R_REPORT_PROBLEM] a
  51.                             INNER JOIN [SPEX_DB].[spex].[TB_R_PART_STOCK_INFO] b ON a.[PART_NO] = b.[PART_NO]
  52.                             INNER JOIN [SPEX_DB].[spex].[TB_M_PART_STOCK] c ON a.[PART_NO] = c.[PART_NO]
  53.                                 WHERE a.[TYPE_PROBLEM] = 2
  54.                                     AND ISNULL(b.SOR, 0) < ISNULL(c.MAX_STOCK, 0)
  55.                                     AND (ISNULL(b.SONDR, 0) > 0)
  56.                                     AND LEFT(c.RACK_ADDRESS_CD, 1) = @ZONE_CD
  57.                                     AND ISNULL(a.REFILL_QTY, 0) < ISNULL(a.QTY, 0)
  58.                                     --AND a.MANIFEST_NO IS NOT NULL
  59.                 ) y
  60.                 UNION
  61.                 SELECT
  62.                     b.[PART_NO]
  63.                     , b.RACK_ADDRESS_CD AS PRIMARY_LOC
  64.                     , ISNULL(b.[SOH], 0) AS SOH
  65.                     , ISNULL(b.[SOR], 0) AS SOR
  66.                     , ISNULL(b.[MAX_STOCK], 0) AS MAX_STOCK
  67.                     , ISNULL(b.[SODR], 0) AS SODR
  68.                     , ISNULL(b.[SONDR], 0) AS SONDR
  69.                     , 0 AS IS_PROBLEM_SHORTAGE
  70.                     , (
  71.                         SELECT TOP 1 z.RACK_ADDRESS
  72.                             FROM [spex].[TB_R_BINNING] z
  73.                             INNER JOIN [SPEX_DB].[spex].[TB_R_PART_STOCK_INFO] y
  74.                                 ON z.PART_NO = y.PART_NO
  75.                             WHERE z.PART_NO = b.PART_NO
  76.                                 AND ( z.SOURCE = 'NON-DIRECT')
  77.                                 AND ISNULL(y.SONDR, 0) > 0
  78.                                 AND ISNULL(z.QTY, 0) > 0
  79.                       ) AS RESERVE_LOC_TOP
  80.                     , (
  81.                         SELECT COUNT(*)
  82.                             FROM [spex].[TB_R_BINNING] z
  83.                             INNER JOIN [SPEX_DB].[spex].[TB_R_PART_STOCK_INFO] y
  84.                                 ON z.PART_NO = y.PART_NO
  85.                             WHERE z.PART_NO = b.PART_NO
  86.                                 AND ( z.SOURCE = 'NON-DIRECT')
  87.                                 AND ISNULL(y.SONDR, 0) > 0
  88.                                 AND ISNULL(z.QTY, 0) > 0
  89.                       ) AS RESERVE_LOC_COUNT
  90.                         FROM (
  91.                             SELECT
  92.                                 R_PART_STOCK_INFO.[PART_NO]
  93.                                 , M_PART_STOCK.RACK_ADDRESS_CD
  94.                                 , R_PART_STOCK_INFO.[SOH]
  95.                                 , R_PART_STOCK_INFO.[SOR]
  96.                                 , M_PART_STOCK.[MAX_STOCK]
  97.                                 , R_PART_STOCK_INFO.[SODR]
  98.                                 , R_PART_STOCK_INFO.[SONDR]
  99.                                     FROM [SPEX_DB].[spex].[TB_R_PART_STOCK_INFO] R_PART_STOCK_INFO
  100.                                     INNER JOIN [SPEX_DB].[spex].[TB_M_PART_STOCK] AS M_PART_STOCK
  101.                                         ON R_PART_STOCK_INFO.PART_NO = M_PART_STOCK.PART_NO
  102.                             WHERE ISNULL(R_PART_STOCK_INFO.SOR, 0) < ISNULL(M_PART_STOCK.MAX_STOCK, 0)
  103.                             AND (ISNULL(R_PART_STOCK_INFO.SONDR, 0) > 0)
  104.                             AND LEFT(M_PART_STOCK.RACK_ADDRESS_CD, 1) = @ZONE_CD
  105.                             AND R_PART_STOCK_INFO.PART_NO NOT IN (
  106.                                 SELECT
  107.                                     a.[PART_NO]
  108.                                     FROM [SPEX_DB].[spex].[TB_R_REPORT_PROBLEM] a
  109.                                     INNER JOIN [SPEX_DB].[spex].[TB_R_PART_STOCK_INFO] b ON a.[PART_NO] = b.[PART_NO]
  110.                                     INNER JOIN [SPEX_DB].[spex].[TB_M_PART_STOCK] c ON a.[PART_NO] = c.[PART_NO]
  111.                                         WHERE a.[TYPE_PROBLEM] = 2
  112.                                             AND ISNULL(b.SOR, 0) < ISNULL(c.MAX_STOCK, 0)
  113.                                             AND (ISNULL(b.SONDR, 0) > 0)
  114.                                             AND LEFT(c.RACK_ADDRESS_CD, 1) = @ZONE_CD
  115.                                             AND ISNULL(a.REFILL_QTY, 0) < ISNULL(a.QTY, 0)
  116.                             )
  117.                     ) b
  118.                 --WHERE NOT EXISTS (SELECT 1 FROM [SPEX_DB].[spex].[TB_R_REPORT_PROBLEM] w where w.PART_NO = b.PART_NO)
  119.             ) AS z
  120.             WHERE ISNULL(z.RESERVE_LOC_COUNT, 0) > 0
  121.             ORDER BY z.[IS_PROBLEM_SHORTAGE] DESC, z.RESERVE_LOC_COUNT DESC
  122.  
  123. END
  124. GO
  125.  
  126. EXECUTE spex.SP_AMANAH_RE_FILL_3_LIST 'M'
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top