Advertisement
KyOOOO

Untitled

Jul 23rd, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.43 KB | None | 0 0
  1. USE [SyteLine_BI]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PV_SP_FactRawMaterialGroupDetailsByDay] Script Date: 7/23/2019 3:58:54 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8.  
  9. -- Author: Nguyen Tien Dat
  10. -- Create date: 2018-10-09
  11. -- Description: lấy thông tin tôn kho nguyên vật liệu
  12. -- EXEC dbo.[PV_SP_FactRawMaterialGroupDetailsByDay] @site_ref = N'PVD' -- nvarchar(10)
  13.  
  14. ALTER PROC [dbo].[PV_SP_FactRawMaterialGroupDetailsByDay]
  15. @site_ref NVARCHAR(10)
  16. AS
  17. BEGIN
  18. DECLARE @fromDate DATE ,
  19. @toDate DATE,
  20. @dauKi DATE
  21.  
  22. SET @dauKi = '2018-06-01'--đầu kì PVD
  23.  
  24. SELECT @dauKi = CAST(Uf_GoLiveDate AS DATE) FROM erp.SyteLine_Apps.dbo.site WHERE site = @site_ref
  25. IF (@dauKi IS NULL)
  26. BEGIN
  27. SET @dauKi = '2019-01-01'
  28. END
  29.  
  30. SET @fromDate = DATEADD(MONTH, -1, DATEADD(day, 1 - DAY(GETDATE()), GETDATE()))
  31. SET @toDate = dbo.EndOfMonth(GETDATE())
  32.  
  33. IF (@toDate > CAST(GETDATE() AS DATE))
  34. BEGIN
  35. SET @toDate = CAST(GETDATE() AS DATE)
  36. END
  37.  
  38. DECLARE @tb TABLE
  39. (
  40. Site NCHAR(10) NULL,
  41. Year INT NULL,
  42. Month INT NULL,
  43. Item NVARCHAR(50) NULL,
  44. whse NVARCHAR(6) NULL,
  45. TransDate DATETIME NULL,
  46. InStock DECIMAL(28, 10) DEFAULT 0,
  47. OutStock DECIMAL(28, 10) DEFAULT 0,
  48. StockPrepare DECIMAL(28, 10) DEFAULT 0,
  49. Measure_Production NVARCHAR(10)
  50. )
  51.  
  52. ----- tính tồn kho hiện tại -------------------------------------------------------
  53.  
  54. DECLARE @itemStock TABLE
  55. (
  56. SiteRef NVARCHAR(10) ,
  57. Item NVARCHAR(50) ,
  58. whse NVARCHAR(6),
  59. TransDate DATE ,
  60. instock DECIMAL(28,10) ,
  61. outstock DECIMAL(28,10) ,
  62. qty DECIMAL(28,10),
  63. [trans_type] NVARCHAR(10)
  64. )
  65.  
  66. DECLARE @item TABLE
  67. (
  68. SiteRef NVARCHAR(10) ,
  69. Item NVARCHAR(50),
  70. whse NVARCHAR(6)
  71. )
  72. -- đầu kì
  73. INSERT INTO @itemStock
  74. (
  75. SiteRef ,
  76. Item ,
  77. whse,
  78. TransDate ,
  79. qty
  80. )
  81. SELECT
  82. m.site_ref ,
  83. r.Item ,
  84. whse,
  85. @dauKi ,
  86. qty
  87. FROM ERP.SyteLine_Apps.dbo.matltran_mst m ,
  88. dbo.DimRawMaterialGroup r
  89. WHERE m.whse IS NOT NULL
  90. AND m.loc IS NOT NULL
  91. AND m.site_ref = @site_ref
  92. AND m.trans_date < @dauKi
  93. AND LEFT(m.item, LEN(r.Item)) = r.Item
  94. --AND m.whse IN ('MAIN','BTL','CKH')
  95.  
  96. INSERT INTO @item(SiteRef ,Item, whse)
  97. SELECT SiteRef ,item, whse FROM @itemStock i WHERE NOT EXISTS(SELECT 1 FROM @item WHERE Item = i.Item AND whse = i.whse AND SiteRef = i.SiteRef) GROUP BY SiteRef, Item,i.whse
  98.  
  99. INSERT @tb
  100. (
  101. Site,
  102. Year,
  103. Month,
  104. Item,
  105. whse,
  106. TransDate,
  107. InStock,
  108. OutStock,
  109. Measure_Production
  110. )
  111.  
  112. SELECT r.SiteRef ,
  113. s.Year,
  114. s.Month,
  115. r.Item ,
  116. r.whse,
  117. s.Date ,
  118. ISNULL(( SELECT SUM(qty)
  119. FROM @itemStock
  120. WHERE item = r.item
  121. AND whse = r.whse
  122. AND SiteRef = r.SiteRef
  123. AND TransDate = CAST(s.Date AS DATE)
  124. AND qty >= 0
  125. ), 0),
  126. ISNULL(( SELECT SUM(qty)
  127. FROM @itemStock
  128. WHERE item = r.item
  129. AND whse = r.whse
  130. AND SiteRef = r.SiteRef
  131. AND TransDate = CAST(s.Date AS DATE)
  132. AND qty < 0
  133. ), 0),
  134. Measure_Production = 'KLTon'
  135. FROM @item r ,
  136. dbo.DimDate s
  137. WHERE CAST(s.Date AS DATE) = @dauKi
  138.  
  139. DELETE @itemStock
  140. -- tính sl tồn [NHẬP],[XUẤT] trong kỳ
  141. INSERT INTO @itemStock
  142. (
  143. SiteRef ,
  144. Item ,
  145. whse,
  146. TransDate ,
  147. qty,
  148. trans_type
  149. )
  150. SELECT
  151. m.site_ref ,
  152. r.Item ,
  153. m.whse,
  154. m.trans_date ,
  155. qty,
  156. m.trans_type
  157. FROM ERP.SyteLine_Apps.dbo.matltran_mst m ,
  158. dbo.DimRawMaterialGroup r
  159. WHERE m.whse IS NOT NULL
  160. AND m.loc IS NOT NULL
  161. AND m.site_ref = @site_ref
  162. AND m.trans_date >= @dauKi
  163. AND m.trans_date <= @toDate
  164. AND LEFT(m.item, LEN(r.Item)) = r.Item
  165. --AND m.whse IN ('MAIN','BTL','CKH')
  166. --AND m.trans_type <> 'T'
  167.  
  168. INSERT INTO @item(SiteRef ,Item, whse)
  169. SELECT SiteRef ,item, i.whse FROM @itemStock i WHERE NOT EXISTS(SELECT 1 FROM @item WHERE Item = i.Item AND whse = i.whse AND SiteRef = i.SiteRef) GROUP BY SiteRef, Item, i.whse
  170.  
  171. INSERT @tb
  172. (
  173. Site,
  174. Year,
  175. Month,
  176. Item,
  177. whse,
  178. TransDate,
  179. InStock,
  180. OutStock,
  181. Measure_Production
  182. )
  183.  
  184. SELECT r.SiteRef ,
  185. s.Year,
  186. CAST(s.Month AS INT),
  187. r.Item ,
  188. r.whse,
  189. s.Date ,
  190. ISNULL(( SELECT SUM(qty)
  191. FROM @itemStock
  192. WHERE item = r.item
  193. AND whse = r.whse
  194. AND SiteRef = r.SiteRef
  195. AND TransDate = CAST(s.Date AS DATE)
  196. AND qty >=0
  197. --AND trans_type <> 'W'
  198. ), 0),
  199. ISNULL(( SELECT SUM(qty)
  200. FROM @itemStock
  201. WHERE item = r.item
  202. AND whse = r.whse
  203. AND SiteRef = r.SiteRef
  204. AND TransDate = CAST(s.Date AS DATE)
  205. AND (qty < 0 )
  206. --OR trans_type = 'W')
  207. ), 0),
  208. Measure_Production = 'KLTon'
  209. FROM @item r ,
  210. dbo.DimDate s
  211. WHERE CAST(s.Date AS DATE) <= @toDate
  212.  
  213. ------------- tính số lượng chuẩn bị xuất
  214. DELETE @itemStock
  215.  
  216.  
  217.  
  218. INSERT @tb
  219. (
  220. Site,
  221. Year,
  222. Month,
  223. Item,
  224. whse,
  225. TransDate,
  226. InStock, -- cho vào instock tạm
  227. StockPrepare,
  228. Measure_Production
  229. )
  230. SELECT A.site_ref, A.year, A.month, A.ItemCode, A.whse, A.RecordDate, SUM(A.qty), SUM(A.qtyPre), A.Measure_Production
  231. FROM
  232. (
  233. SELECT @site_ref site_ref,
  234. YEAR(jt.trans_date) year,
  235. MONTH(jt.trans_date) month,
  236. r.Item ItemCode,
  237. jt.whse,
  238. jt.trans_date RecordDate,
  239. jm.matl_qty * jt.qty qty,
  240. 0 qtyPre,
  241. Measure_Production = 'KLChuanBi'
  242. FROM ERP.SyteLine_Apps.dbo.jobmatl_mst jm
  243. INNER JOIN dbo.DimRawMaterialGroup r ON LEFT(jm.item, LEN(r.Item)) = r.Item
  244. INNER JOIN
  245. (
  246. SELECT jt.job, jt.suffix, jt.oper_num, jt.trans_date, jt.whse, SUM(jt.qty_complete + jt.qty_scrapped) qty
  247. FROM ERP.SyteLine_Apps.dbo.jobtran_mst jt
  248. WHERE jt.site_ref = @site_ref AND jt.posted = 0 AND CAST(jt.trans_date AS DATE) <= @toDate AND CAST(jt.trans_date AS DATE) >= @dauKi
  249. GROUP BY jt.job, jt.suffix, jt.oper_num, jt.trans_date, jt.whse
  250. ) AS jt ON jt.job = jm.job AND jt.suffix = jm.suffix AND jt.oper_num = jm.oper_num
  251. WHERE jm.site_ref = @site_ref
  252. ) AS A
  253. GROUP BY A.site_ref, A.year, A.month, A.ItemCode, A.whse, A.RecordDate, A.Measure_Production
  254.  
  255. --SELECT jm.item, jm.matl_qty * jt.qty
  256. --FROM dbo.jobmatl_mst jm
  257. --INNER JOIN
  258. --(
  259. -- SELECT jt.job, jt.suffix, jt.oper_num, SUM(jt.qty_complete + jt.qty_scrapped) qty
  260. -- FROM dbo.jobtran_mst jt
  261. -- WHERE jt.site_ref = 'PVD' AND jt.posted = 0
  262. -- GROUP BY jt.job, jt.suffix, jt.oper_num
  263. --) AS jt ON jt.job = jm.job AND jt.suffix = jm.suffix AND jt.oper_num = jm.oper_num
  264.  
  265. DELETE FactRawMaterialGroupDetailsByDay WHERE Site = @site_ref
  266.  
  267. INSERT dbo.FactRawMaterialGroupDetailsByDay
  268. (
  269. Site,
  270. Year,
  271. Month,
  272. Item,
  273. Whse,
  274. TransDate,
  275. InStock,
  276. OutStock,
  277. StockPrepare,
  278. Measure_Production
  279. )
  280. SELECT
  281. Site,
  282. Year,
  283. Month,
  284. Item,
  285. whse,
  286. TransDate,
  287. SUM(InStock)InStock,
  288. SUM(OutStock)OutStock,
  289. SUM(StockPrepare)StockPrepare,
  290. Measure_Production
  291. FROM @tb
  292. WHERE TransDate >= '2011-01-01'
  293. GROUP BY
  294. Site,
  295. Year,
  296. Month,
  297. Item,
  298. whse,
  299. TransDate,
  300. Measure_Production
  301.  
  302. UPDATE fr
  303. SET fr.u_m = r.U_M
  304. FROM dbo.FactRawMaterialGroupDetailsByDay fr
  305. LEFT JOIN dbo.DimRawMaterialGroup r ON r.Site = fr.Site AND r.Item = fr.Item
  306. END
  307. --SELECT * FROM dbo.FactRawMaterialGroupByDay where item='CA1710' ORDER BY Measure_Production, Item
  308. ----SELECT * FROM dbo.FactRawMaterialGroup where item='CA1710' ORDER BY Measure_Production, Item
  309.  
  310.  
  311. /*
  312. SELECT i.product_code,*
  313. FROM dbo.FactRawMaterialGroupByDay f
  314. JOIN ERP.SyteLine_Apps.dbo.item_mst i ON LEFT(i.item, LEN(f.Item)) = f.Item AND i.site_ref = 'PVD'
  315.  
  316. */
  317. RETURN
  318. SELECT SUM(InStock) + SUM(OutStock) FROM dbo.FactRawMaterialGroupDetailByDay WHERE Item LIKE 'CA2012' AND Measure_Production = 'KLTON' AND Year = 2018
  319. AND CAST(TransDate AS DATE) < '2018-11-01' AND (InStock <> 0 OR OutStock <> 0) AND CAST(TransDate AS DATE) >= '2018-06-01'
  320.  
  321. SELECT
  322. SUM(InStock)
  323. ,SUM(OutStock)
  324. FROM dbo.FactRawMaterialGroupDetailByDay WHERE Item LIKE 'CA2012' AND Measure_Production = 'KLTON' AND Year = 2018
  325. AND CAST(TransDate AS DATE) >= '2018-11-01' AND CAST(TransDate AS DATE) <= '2018-11-30' AND (InStock <> 0 OR OutStock <> 0)
  326.  
  327. SELECT * FROM FactRawMaterialGroupByDay WHERE Item LIKE 'CA2012' AND Stock > 0 AND Measure_Production = 'KLTON' AND Year = 2018
  328. AND CAST(TransDate AS DATE) >= '2018-11-01'
  329.  
  330. SELECT
  331. m.site_ref ,
  332. r.Item ,
  333. m.trans_date ,
  334. qty,
  335. m.whse,
  336. m.trans_type,*
  337. FROM ERP.SyteLine_Apps.dbo.matltran_mst m ,
  338. dbo.DimRawMaterialGroup r
  339. WHERE m.whse IS NOT NULL
  340. AND m.loc IS NOT NULL
  341. AND m.site_ref = 'PVD'
  342. AND m.trans_date >= '2018-06-01'
  343. AND m.trans_date < '2018-11-01'
  344. AND LEFT(m.item, LEN(r.Item)) = r.Item
  345. --AND m.whse IN ('MAIN','BTL','CKH')
  346. AND r.Item = 'CA2012'
  347. AND m.trans_date = '2018-06-05'
  348. AND m.trans_type= 'T'
  349. ORDER BY m.trans_date
  350.  
  351.  
  352. SELECT * FROM dbo.FactRawMaterialGroupDetailByDay WHERE Item LIKE 'CA2012' AND Measure_Production = 'KLTON' AND Year = 2018
  353. AND CAST(TransDate AS DATE) = '2018-06-01' AND (InStock <> 0 OR OutStock <> 0)
  354. SELECT * FROM dbo.FactProductionDetailPosted
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement