Advertisement
KyOOOO

Untitled

Jul 31st, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1.  
  2. /*
  3. Create by: ChieuPT
  4. DATE: 2019-07-17
  5. */
  6.  
  7. --PVG_ProductionCostingTableSp_KT01 2019,6,'pvQ'
  8. ALTER PROCEDURE [dbo].[PVG_ProductionCostingTableSp_KT01]
  9. @Year SMALLINT,
  10. @Period SMALLINT,
  11. @Site SiteType
  12. AS
  13. EXEC dbo.SetSiteSp @Site = @Site, -- SiteType
  14. @Infobar = NULL; -- InfobarType
  15.  
  16. DECLARE @tb TABLE
  17. (
  18. ref_line_suf NVARCHAR(5),
  19. suffix NVARCHAR(100),
  20. job NVARCHAR(100),
  21. item NVARCHAR(100),
  22. ref_num NVARCHAR(200),
  23. qty DECIMAL(28, 10),
  24. cost DECIMAL(28, 10),
  25. u_m NVARCHAR(20),
  26. MatlDesc NVARCHAR(200)
  27. );
  28. INSERT INTO @tb
  29. SELECT j.ref_line_suf,
  30. j.suffix,
  31. j.job,
  32. j.item,
  33. j.ref_num,
  34. SUM(ISNULL(M.qty, 0)),
  35. M.cost,
  36. i.u_m,
  37. i.description AS MatlDesc
  38. FROM jobmatl j
  39. JOIN item i
  40. ON j.item = i.item
  41. LEFT JOIN matltran M
  42. ON M.ref_num = j.job
  43. AND M.ref_line_suf = j.suffix
  44. AND i.item = M.item
  45. WHERE dbo.FAB_ComparePeriod(M.trans_date, @Year, @Period) = 1
  46. AND M.trans_type IN ( 'I', 'W' )
  47. GROUP BY j.ref_line_suf,
  48. j.suffix,
  49. j.job,
  50. j.item,
  51. j.ref_num,
  52. M.cost,
  53. i.u_m,
  54. i.description;
  55.  
  56. DECLARE @tempMatl TABLE
  57. (
  58. JOB NVARCHAR(50),
  59. suffix NVARCHAR(50),
  60. item NVARCHAR(50),
  61. u_m NVARCHAR(50),
  62. ItemDesc NVARCHAR(200)
  63. );
  64. INSERT INTO @tempMatl
  65. SELECT j.job,
  66. j.suffix,
  67. j.item,
  68. i.u_m,
  69. i.description AS ItemDesc
  70. FROM job j
  71. JOIN item i
  72. ON j.item = i.item
  73. WHERE j.rework = 0
  74. AND dbo.FAB_ComparePeriod(j.job_date, @Year, @Period) = 1;
  75. DECLARE @m TABLE
  76. (
  77. qty DECIMAL(28, 10),
  78. item NVARCHAR(100)
  79. );
  80. INSERT INTO @m
  81. SELECT SUM(qty) qty,
  82. item
  83. FROM matltran WITH (NOLOCK)
  84. WHERE dbo.FAB_ComparePeriod(trans_date, @Year, @Period) = 1
  85. AND trans_type = 'F' -- AND item = 'AA173041A035N0600'
  86. GROUP BY item;
  87.  
  88. SELECT j.item,
  89. jm.u_m,
  90. ABS((ISNULL(mt.qty, 0))) qtyCoc,
  91. ABS((ISNULL(jm.qty, 0))) qty,
  92. ABS(ISNULL(jm.cost, 0)) cost,
  93. ABS((ISNULL(jm.qty, 0) * ISNULL(jm.cost, 0))) AS AmountBOM,
  94. jm.item AS item_Matl,
  95. j.ItemDesc,
  96. jm.MatlDesc,
  97. --ChieuPT UPDATE :
  98. ABS(SUM(ISNULL(s.qty, 0))) AS SLChecnhLech,
  99. ABS(SUM(ISNULL(s.qty, 0) * ISNULL(jm.cost, 0))) AS TTChenhLech,
  100. ABS(SUM(ISNULL(d.qty, 0))) AS SLHaoHut,
  101. ABS(SUM(ISNULL(d.qty, 0) * ISNULL(jm.cost, 0))) AS TTHaoHut,
  102. ABS((ISNULL(jm.qty, 0) + SUM(ISNULL(s.qty, 0)))) AS SLDinhMuc,
  103. ABS(((ISNULL(jm.qty, 0) * ISNULL(jm.cost, 0) + SUM(ISNULL(s.qty, 0)) * ISNULL(jm.cost, 0)))) AS TTDinhMuc,
  104. ABS(ISNULL(jm.qty, 0) * ISNULL(jm.cost, 0)
  105. + SUM(ISNULL(s.qty, 0) * ISNULL(jm.cost, 0) + (ISNULL(s.qty, 0) * ISNULL(jm.cost, 0))
  106. + (ISNULL(d.qty, 0) * ISNULL(jm.cost, 0))
  107. )
  108. ) AS TongTien,
  109. ABS((ISNULL(jm.qty, 0) + SUM(ISNULL(s.qty, 0) + ISNULL(d.qty, 0)))) SLThucTe
  110. FROM matltran m WITH (NOLOCK)
  111. JOIN @tempMatl j
  112. ON m.ref_num = j.JOB
  113. AND m.ref_line_suf = j.suffix
  114. AND j.item = m.item
  115. LEFT JOIN @tb jm
  116. ON jm.job = j.JOB
  117. AND j.suffix = jm.suffix
  118. LEFT JOIN PVG_JobMaterialTrans s WITH (NOLOCK)
  119. ON s.item = jm.item
  120. AND jm.ref_num = s.JOB
  121. AND jm.ref_line_suf = s.suffix
  122. AND s.matl_type = 'B'
  123. LEFT JOIN dbo.PVG_JobMaterialTrans d WITH (NOLOCK)
  124. ON d.item = jm.item
  125. AND jm.ref_num = d.JOB
  126. AND jm.ref_line_suf = d.suffix
  127. AND d.matl_type = 'V'
  128. LEFT JOIN @m mt
  129. ON mt.item = j.item
  130. WHERE jm.item IS NOT NULL -- AND jm.item='CA010100001'
  131. AND m.ref_type = 'J'
  132. -- AND m.trans_type = 'F'
  133. AND dbo.FAB_ComparePeriod(m.trans_date, @Year, @Period) = 1
  134. AND j.item NOT LIKE 'PB%'
  135. GROUP BY j.item,
  136. jm.u_m,
  137. ISNULL(jm.cost, 0),
  138. jm.item,
  139. j.ItemDesc,
  140. (ISNULL(mt.qty, 0)),
  141. jm.MatlDesc,
  142. (ISNULL(jm.qty, 0));
  143.  
  144. DELETE @tb;
  145. DELETE @tempMatl;
  146.  
  147. --SELECT * FROM PVG_JobMaterialTrans
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement