Advertisement
KyOOOO

Untitled

Jul 31st, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.57 KB | None | 0 0
  1. USE [SyteLine_BI]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PV_SP_FactRawMaterialGroupDetailsByDay] Script Date: 7/31/2019 2:54:09 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'PVC' -- 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.site_ref = r.Site
  95. --AND m.whse IN ('MAIN','BTL','CKH')
  96.  
  97. INSERT INTO @item(SiteRef ,Item, whse)
  98. 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
  99.  
  100. INSERT @tb
  101. (
  102. Site,
  103. Year,
  104. Month,
  105. Item,
  106. whse,
  107. TransDate,
  108. InStock,
  109. OutStock,
  110. Measure_Production
  111. )
  112.  
  113. SELECT r.SiteRef ,
  114. s.Year,
  115. s.Month,
  116. r.Item ,
  117. r.whse,
  118. s.Date ,
  119. ISNULL(( SELECT SUM(qty)
  120. FROM @itemStock
  121. WHERE item = r.item
  122. AND whse = r.whse
  123. AND SiteRef = r.SiteRef
  124. AND TransDate = CAST(s.Date AS DATE)
  125. AND qty >= 0
  126. ), 0),
  127. ISNULL(( SELECT SUM(qty)
  128. FROM @itemStock
  129. WHERE item = r.item
  130. AND whse = r.whse
  131. AND SiteRef = r.SiteRef
  132. AND TransDate = CAST(s.Date AS DATE)
  133. AND qty < 0
  134. ), 0),
  135. Measure_Production = 'KLTon'
  136. FROM @item r ,
  137. dbo.DimDate s
  138. WHERE CAST(s.Date AS DATE) = @dauKi
  139.  
  140. DELETE @itemStock
  141. -- tính sl tồn [NHẬP],[XUẤT] trong kỳ
  142. INSERT INTO @itemStock
  143. (
  144. SiteRef ,
  145. Item ,
  146. whse,
  147. TransDate ,
  148. qty,
  149. trans_type
  150. )
  151. SELECT
  152. m.site_ref ,
  153. r.Item ,
  154. m.whse,
  155. m.trans_date ,
  156. qty,
  157. m.trans_type
  158. FROM ERP.SyteLine_Apps.dbo.matltran_mst m ,
  159. dbo.DimRawMaterialGroup r
  160. WHERE m.whse IS NOT NULL
  161. AND m.loc IS NOT NULL
  162. AND m.site_ref = @site_ref
  163. AND m.trans_date >= @dauKi
  164. AND m.trans_date <= @toDate
  165. AND LEFT(m.item, LEN(r.Item)) = r.Item
  166. AND m.site_ref = r.Site
  167. --AND m.whse IN ('MAIN','BTL','CKH')
  168. --AND m.trans_type <> 'T'
  169.  
  170. INSERT INTO @item(SiteRef ,Item, whse)
  171. 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
  172.  
  173. INSERT @tb
  174. (
  175. Site,
  176. Year,
  177. Month,
  178. Item,
  179. whse,
  180. TransDate,
  181. InStock,
  182. OutStock,
  183. Measure_Production
  184. )
  185.  
  186. SELECT r.SiteRef ,
  187. s.Year,
  188. CAST(s.Month AS INT),
  189. r.Item ,
  190. r.whse,
  191. s.Date ,
  192. ISNULL(( SELECT SUM(qty)
  193. FROM @itemStock
  194. WHERE item = r.item
  195. AND whse = r.whse
  196. AND SiteRef = r.SiteRef
  197. AND TransDate = CAST(s.Date AS DATE)
  198. AND qty >=0
  199. --AND trans_type <> 'W'
  200. ), 0),
  201. ISNULL(( SELECT SUM(qty)
  202. FROM @itemStock
  203. WHERE item = r.item
  204. AND whse = r.whse
  205. AND SiteRef = r.SiteRef
  206. AND TransDate = CAST(s.Date AS DATE)
  207. AND (qty < 0 )
  208. --OR trans_type = 'W')
  209. ), 0),
  210. Measure_Production = 'KLTon'
  211. FROM @item r ,
  212. dbo.DimDate s
  213. WHERE CAST(s.Date AS DATE) <= @toDate
  214.  
  215. ------------- tính số lượng chuẩn bị xuất
  216. DELETE @itemStock
  217.  
  218.  
  219.  
  220. INSERT @tb
  221. (
  222. Site,
  223. Year,
  224. Month,
  225. Item,
  226. whse,
  227. TransDate,
  228. InStock, -- cho vào instock tạm
  229. StockPrepare,
  230. Measure_Production
  231. )
  232. SELECT A.site_ref, A.year, A.month, A.ItemCode, A.whse, A.RecordDate, SUM(A.qty), SUM(A.qtyPre), A.Measure_Production
  233. FROM
  234. (
  235. SELECT @site_ref site_ref,
  236. YEAR(jt.trans_date) year,
  237. MONTH(jt.trans_date) month,
  238. r.Item ItemCode,
  239. jt.whse,
  240. jt.trans_date RecordDate,
  241. jm.matl_qty * jt.qty qty,
  242. 0 qtyPre,
  243. Measure_Production = 'KLChuanBi'
  244. FROM ERP.SyteLine_Apps.dbo.jobmatl_mst jm
  245. INNER JOIN dbo.DimRawMaterialGroup r ON LEFT(jm.item, LEN(r.Item)) = r.Item AND jm.site_ref = r.Site
  246. INNER JOIN
  247. (
  248. SELECT jt.job, jt.suffix, jt.oper_num, jt.trans_date, jt.whse, SUM(jt.qty_complete + jt.qty_scrapped) qty
  249. FROM ERP.SyteLine_Apps.dbo.jobtran_mst jt
  250. 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
  251. GROUP BY jt.job, jt.suffix, jt.oper_num, jt.trans_date, jt.whse
  252. ) AS jt ON jt.job = jm.job AND jt.suffix = jm.suffix AND jt.oper_num = jm.oper_num
  253. WHERE jm.site_ref = @site_ref
  254. ) AS A
  255. GROUP BY A.site_ref, A.year, A.month, A.ItemCode, A.whse, A.RecordDate, A.Measure_Production
  256.  
  257. --SELECT jm.item, jm.matl_qty * jt.qty
  258. --FROM dbo.jobmatl_mst jm
  259. --INNER JOIN
  260. --(
  261. -- SELECT jt.job, jt.suffix, jt.oper_num, SUM(jt.qty_complete + jt.qty_scrapped) qty
  262. -- FROM dbo.jobtran_mst jt
  263. -- WHERE jt.site_ref = 'PVD' AND jt.posted = 0
  264. -- GROUP BY jt.job, jt.suffix, jt.oper_num
  265. --) AS jt ON jt.job = jm.job AND jt.suffix = jm.suffix AND jt.oper_num = jm.oper_num
  266.  
  267. DELETE FactRawMaterialGroupDetailsByDay WHERE Site = @site_ref
  268.  
  269. INSERT dbo.FactRawMaterialGroupDetailsByDay
  270. (
  271. Site,
  272. Year,
  273. Month,
  274. Item,
  275. Whse,
  276. TransDate,
  277. InStock,
  278. OutStock,
  279. StockPrepare,
  280. Measure_Production
  281. )
  282. SELECT
  283. Site,
  284. Year,
  285. Month,
  286. Item,
  287. whse,
  288. TransDate,
  289. SUM(InStock)InStock,
  290. SUM(OutStock)OutStock,
  291. SUM(StockPrepare)StockPrepare,
  292. Measure_Production
  293. FROM @tb
  294. WHERE CAST(TransDate AS DATE) >= '2018-01-01'
  295. GROUP BY
  296. Site,
  297. Year,
  298. Month,
  299. Item,
  300. whse,
  301. TransDate,
  302. Measure_Production
  303.  
  304. UPDATE fr
  305. SET fr.u_m = r.U_M
  306. FROM dbo.FactRawMaterialGroupDetailsByDay fr
  307. LEFT JOIN dbo.DimRawMaterialGroup r ON r.Site = fr.Site AND r.Item = fr.Item
  308. END
  309. --SELECT * FROM dbo.FactRawMaterialGroupByDay where item='CA1710' ORDER BY Measure_Production, Item
  310. ----SELECT * FROM dbo.FactRawMaterialGroup where item='CA1710' ORDER BY Measure_Production, Item
  311.  
  312.  
  313. /*
  314. SELECT i.product_code,*
  315. FROM dbo.FactRawMaterialGroupByDay f
  316. JOIN ERP.SyteLine_Apps.dbo.item_mst i ON LEFT(i.item, LEN(f.Item)) = f.Item AND i.site_ref = 'PVD'
  317.  
  318. */
  319. RETURN
  320. SELECT SUM(InStock) + SUM(OutStock) FROM dbo.FactRawMaterialGroupDetailByDay WHERE Item LIKE 'CA2012' AND Measure_Production = 'KLTON' AND Year = 2018
  321. AND CAST(TransDate AS DATE) < '2018-11-01' AND (InStock <> 0 OR OutStock <> 0) AND CAST(TransDate AS DATE) >= '2018-06-01'
  322.  
  323. SELECT
  324. SUM(InStock)
  325. ,SUM(OutStock)
  326. FROM dbo.FactRawMaterialGroupDetailByDay WHERE Item LIKE 'CA2012' AND Measure_Production = 'KLTON' AND Year = 2018
  327. AND CAST(TransDate AS DATE) >= '2018-11-01' AND CAST(TransDate AS DATE) <= '2018-11-30' AND (InStock <> 0 OR OutStock <> 0)
  328.  
  329. SELECT * FROM FactRawMaterialGroupByDay WHERE Item LIKE 'CA2012' AND Stock > 0 AND Measure_Production = 'KLTON' AND Year = 2018
  330. AND CAST(TransDate AS DATE) >= '2018-11-01'
  331.  
  332. SELECT
  333. m.site_ref ,
  334. r.Item ,
  335. m.trans_date ,
  336. qty,
  337. m.whse,
  338. m.trans_type,*
  339. FROM ERP.SyteLine_Apps.dbo.matltran_mst m ,
  340. dbo.DimRawMaterialGroup r
  341. WHERE m.whse IS NOT NULL
  342. AND m.loc IS NOT NULL
  343. AND m.site_ref = 'PVD'
  344. AND m.trans_date >= '2018-06-01'
  345. AND m.trans_date < '2018-11-01'
  346. AND LEFT(m.item, LEN(r.Item)) = r.Item
  347. --AND m.whse IN ('MAIN','BTL','CKH')
  348. AND r.Item = 'CA2012'
  349. AND m.trans_date = '2018-06-05'
  350. AND m.trans_type= 'T'
  351. ORDER BY m.trans_date
  352.  
  353.  
  354. SELECT * FROM dbo.FactRawMaterialGroupDetailByDay WHERE Item LIKE 'CA2012' AND Measure_Production = 'KLTON' AND Year = 2018
  355. AND CAST(TransDate AS DATE) = '2018-06-01' AND (InStock <> 0 OR OutStock <> 0)
  356. SELECT * FROM dbo.FactProductionDetailPosted
  357.  
  358. SELECT * FROM FactRawMaterialGroupDetailsByDay
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement