USP_IF_OrderAbleQtyWithOutput_Q.sql 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /***********************************************************************
  2. *
  3. * Program : USP_IF_OrderAbleQtyWithOutput_Q - 주문가능 수량을 Output 으로 반환한다.
  4. *
  5. *
  6. * 작성일 : 2010/06/04 작성자 : 아이스타일이십사(주)
  7. * 수정일 : 수정자 :
  8. *
  9. *
  10. * 2019-11-15 구성근 가용존만 체크하는 뷰로 변경
  11. ***********************************************************************/
  12. CREATE procedure [dbo].[USP_IF_OrderAbleQtyWithOutput_Q]
  13. @ProductNo Bigint
  14. , @SKUCode Nvarchar(20)
  15. , @OrderAbleQty Int Output
  16. AS
  17. BEGIN
  18. /* @SKUCode 코드값이 있으면 우선적으로 조회한다. */
  19. IF LEN(@SKUCode) > 0
  20. SELECT
  21. @OrderAbleQty = (SUM(X.AQTY) - SUM(ABS(X.SLIP_CREATE_QTY)) - SUM(ABS(X.EOUT_CREATE_QTY))- SUM(ABS(X.ALLOC_QTY)))
  22. FROM (
  23. /* 창고 현재고 조회 변경 by gugu44 2019.11.06 */
  24. SELECT PRODUCT_NO as product_no
  25. , SKU_CODE as sku_code
  26. , LOC_QTY as aqty
  27. , 0 as slip_create_qty
  28. , 0 as cvs_qty
  29. , 0 as eout_create_qty
  30. , 0 as alloc_qty
  31. FROM istyle24_wms.dbo.VW_Stock_By_LocCode with(nolock)
  32. WHERE SKU_CODE = @SKUCode
  33. UNION ALL
  34. /* 출고 할당 수량 = 출하지시이후 출고확정되지 않은 상태의 수량 */
  35. SELECT S.PRODUCT_NO as product_no
  36. , S.SKU_CODE as sku_code
  37. , 0 as aqty
  38. , S.SLIP_CREATE_QTY as slip_create_qty
  39. , S.CVS_QTY as cvs_qty
  40. , S.EOUT_CREATE_QTY as eout_create_qty
  41. , 0 as alloc_qty
  42. from istyle24_wms.dbo.tlost06m S with (nolock)
  43. WHERE S.WH_CODE = '001'
  44. AND S.SKU_CODE = @SKUCode
  45. UNION ALL
  46. /* 배송지시수량 = 배송지시후 출하지시 안된 상태의 수량 */
  47. SELECT A.PRODUCTNO as product_no
  48. , A.SKUCODE as sku_code
  49. , 0 as aqty
  50. , 0 as slip_create_qty
  51. , 0 as cvs_qty
  52. , 0 as eout_create_qty
  53. , ALLOCQTY as alloc_qty
  54. FROM istyle24_wmsif.dbo.TB_IF_OrderAllocStock A with (nolock)
  55. WHERE A.SKUCODE = @SKUCode
  56. ) X
  57. GROUP BY X.SKU_CODE
  58. /* @SKUCode 코드값이 없으면 @ProductNo로 조회한다. */
  59. ELSE
  60. SELECT @OrderAbleQty = (SUM(X.AQTY) - SUM(ABS(X.SLIP_CREATE_QTY)) - SUM(ABS(X.EOUT_CREATE_QTY))- SUM(ABS(X.ALLOC_QTY)))
  61. FROM (
  62. /* 창고 현재고 조회 변경 by gugu44 2019.11.06 */
  63. SELECT PRODUCT_NO as product_no
  64. , SKU_CODE as sku_code
  65. , LOC_QTY as aqty
  66. , 0 as slip_create_qty
  67. , 0 as cvs_qty
  68. , 0 as eout_create_qty
  69. , 0 as alloc_qty
  70. FROM istyle24_wms.dbo.VW_Stock_By_LocCode with(nolock)
  71. WHERE PRODUCT_NO = @ProductNo
  72. UNION ALL
  73. /* 출고 할당 수량 = 출하지시이후 출고확정되지 않은 상태의 수량 */
  74. SELECT S.PRODUCT_NO as product_no
  75. , S.SKU_CODE as sku_code
  76. , 0 as aqty
  77. , S.SLIP_CREATE_QTY as slip_create_qty
  78. , S.CVS_QTY as cvs_qty
  79. , S.EOUT_CREATE_QTY as eout_create_qty
  80. , 0 as alloc_qty
  81. FROM istyle24_wms.dbo.tlost06m s with (nolock)
  82. WHERE S.WH_CODE = '001'
  83. AND S.PRODUCT_NO = @ProductNo
  84. UNION ALL
  85. /* 배송지시수량 = 배송지시후 출하지시 안된 상태의 수량 */
  86. SELECT A.PRODUCTNO as product_no
  87. , A.SKUCODE as sku_code
  88. , 0 as aqty
  89. , 0 as slip_create_qty
  90. , 0 as cvs_qty
  91. , 0 as eout_create_qty
  92. , ALLOCQTY as alloc_qty
  93. FROM istyle24_wmsif.dbo.TB_IF_OrderAllocStock a with (nolock)
  94. WHERE A.PRODUCTNO = @ProductNo
  95. ) x
  96. GROUP BY X.SKU_CODE
  97. END