Advertisement
KyOOOO

Untitled

Jul 21st, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.65 KB | None | 0 0
  1. ALTER PROCEDURE [dbo].[PV_SP_InventoryMonth_01] -- 'pvd','@nam/09/09'
  2. @site NVARCHAR(10),
  3. @fromDate DATE,
  4. @thang INT,
  5. @nam INT
  6. AS
  7. --exec PV_TonDau @site=@site -- đổ bảng tồn đầu kì
  8. DECLARE @dauKis DATE;
  9.  
  10.  
  11. --get whse theo từng nhà máy
  12. DECLARE @whse NVARCHAR(20);
  13. IF (@site = 'PVD')
  14. SET @whse = N'BTL';
  15. ELSE
  16. SET @whse = N'BTLT';
  17.  
  18. SET @dauKis =
  19. (
  20. SELECT DATEADD(MONTH, -1, DATEADD(DAY, 0, @fromDate))
  21. );
  22.  
  23. SELECT *
  24. FROM FACT_ProductionbyMonth;
  25.  
  26. -- XÓA TABLE
  27.  
  28. DELETE FACT_ProductionbyMonth_item
  29. WHERE Site = @site
  30. AND Thang = @thang
  31. AND Nam = @nam;
  32. DELETE FACT_ProductionbyMonth
  33. WHERE Site = @site
  34. AND Thang = @thang
  35. AND Nam = @nam;
  36.  
  37.  
  38.  
  39. INSERT INTO FACT_ProductionbyMonth_item
  40. SELECT DISTINCT
  41. (item) loaicoc,
  42. @nam NAM,
  43. @thang,
  44. 0 TonDau,
  45. 0 GtrTonDau,
  46. 0 SLSanXuat,
  47. 0 SLCocHuy,
  48. 0 SLNhapKhoSX,
  49. 0 qtyNhapKho,
  50. 0 qtyXuatCocCongTruong,
  51. 0 qtyXuatKho,
  52. 0 toncuoi,
  53. 0 giatriTonCuoi,
  54. @site SITE
  55. FROM ERP.SyteLine_Apps.dbo.matltran_mst m WITH (NOLOCK)
  56. WHERE dbo.FAB_IsPileItem(m.item) = 1
  57. AND m.site_ref = @site
  58. AND whse = @whse
  59. AND (item) <> '';
  60.  
  61.  
  62.  
  63. DECLARE @temp TABLE
  64. (
  65. qtyXuatKho DECIMAL(28, 10),
  66. loaicoc NVARCHAR(50),
  67. MONTH INT,
  68. yEAR INT,
  69. site_ref NVARCHAR(10)
  70. );
  71. INSERT INTO @temp
  72. SELECT SUM(A.QTY) QTY,
  73. A.loaicoc,
  74. A.month,
  75. A.year,
  76. site_ref
  77. FROM
  78. (
  79. SELECT (m.item) loaicoc,
  80. ISNULL(SUM(qty), 0) QTY,
  81. MONTH(m.trans_date) month,
  82. YEAR(m.trans_date) year,
  83. m.site_ref
  84. FROM ERP.SyteLine_Apps.dbo.matltran_mst m
  85. LEFT JOIN ERP.SyteLine_Apps.dbo.trnitem_mst t
  86. ON m.ref_num = t.trn_num
  87. AND t.trn_line = m.ref_line_suf
  88. WHERE dbo.FAB_ComparePeriod(m.trans_date, @nam, @thang) = 1
  89. AND LEFT(m.item, 2) IN ( 'AA', 'AC', 'AN' )
  90. AND m.loc IS NOT NULL
  91. AND m.whse = @whse
  92. AND m.ref_type = 'T'
  93. AND t.from_whse = @whse
  94. AND t.to_whse != 'KHGB'
  95. GROUP BY (m.item),
  96. MONTH(m.trans_date),
  97. YEAR(m.trans_date),
  98. m.site_ref
  99. UNION ALL
  100. SELECT (m.item) loaicoc,
  101. ISNULL(SUM(m.qty), 0) QTY,
  102. MONTH(m.trans_date) month,
  103. YEAR(m.trans_date) year,
  104. m.site_ref
  105. FROM ERP.SyteLine_Apps.dbo.matltran_mst m
  106. WHERE dbo.FAB_ComparePeriod(m.trans_date, @nam, @thang) = 1
  107. AND LEFT(m.item, 2) IN ( 'AA', 'AC', 'AN' )
  108. AND m.loc IS NOT NULL
  109. AND m.whse = @whse
  110. AND m.ref_type = 'I'
  111. AND m.trans_type = 'G'
  112. GROUP BY (m.item),
  113. MONTH(m.trans_date),
  114. YEAR(m.trans_date),
  115. m.site_ref
  116. UNION ALL
  117. SELECT (m.item),
  118. ISNULL(SUM(qty), 0) QTY,
  119. MONTH(m.trans_date) month,
  120. YEAR(m.trans_date) year,
  121. m.site_ref
  122. FROM ERP.SyteLine_Apps.dbo.matltran_mst m
  123. WHERE dbo.FAB_ComparePeriod(m.trans_date, @nam, @thang) = 1
  124. AND LEFT(m.item, 2) IN ( 'AA', 'AC', 'AN' )
  125. AND m.loc IS NOT NULL
  126. AND m.whse = @whse
  127. AND m.ref_type = 'O'
  128. GROUP BY (m.item),
  129. MONTH(m.trans_date),
  130. YEAR(m.trans_date),
  131. m.site_ref
  132. ) A
  133. WHERE site_ref = @site
  134. GROUP BY A.loaicoc,
  135. A.month,
  136. A.year,
  137. site_ref;
  138.  
  139. UPDATE FACT_ProductionbyMonth_item
  140. SET qtyXuatKho = ISNULL(a.qtyXuatKho, 0)
  141. FROM FACT_ProductionbyMonth_item b WITH (NOLOCK)
  142. LEFT JOIN
  143. (SELECT * FROM @temp) a
  144. ON a.yEAR = b.Nam
  145. AND a.loaicoc = b.LoaiCoc
  146. AND a.site_ref = b.Site
  147. AND a.MONTH = b.Thang
  148. WHERE b.Nam = @nam
  149. AND b.Thang = @thang
  150. AND a.loaicoc = b.LoaiCoc
  151. AND b.Site = @site;
  152.  
  153.  
  154. INSERT INTO FACT_ProductionbyMonth
  155. SELECT dbo.ZVN_GetPileDiameter(LoaiCoc) loaicoc,
  156. @nam,
  157. @thang,
  158. 0 TonDau,
  159. 0 GtrTonDau,
  160. SUM(SLSanXuat) SLSanXuat,
  161. SUM(SLCocHuy) SLCocHuy,
  162. SUM(SLNhapKhoSX) SLNhapKhoSX,
  163. SUM(qtyNhapKho) qtyNhapKho,
  164. SUM(qtyXuatCocCongTruong) qtyXuatCocCongTruong,
  165. SUM(qtyXuatKho) qtyXuatKho,
  166. SUM(TonCuoi) toncuoi,
  167. SUM(giatriTonCuoi) giatriTonCuoi,
  168. Site
  169. FROM FACT_ProductionbyMonth_item a
  170. WHERE Site = @site
  171. AND Thang = @thang
  172. AND Nam = @nam
  173. GROUP BY dbo.ZVN_GetPileDiameter(loaicoc),
  174. Site;
  175.  
  176.  
  177. UPDATE FACT_ProductionbyMonth
  178. SET TonCuoi = a.toncuoi,
  179. giatriTonCuoi = a.endamount
  180. FROM FACT_ProductionbyMonth b
  181. LEFT JOIN
  182. (
  183. SELECT dbo.ZVN_GetPileDiameter(item) loaicoc,
  184. SUM(qty) toncuoi,
  185. site,
  186. YEAR(@fromDate) year,
  187. MONTH(@fromDate) month,
  188. SUM(endamount) endamount
  189. FROM
  190. (
  191. SELECT SUM(m.qty) qty,
  192. item,
  193. SUM(m.qty * cost) endamount,
  194. site_ref AS site
  195. FROM ERP.SyteLine_Apps.dbo.matltran_mst m
  196. WHERE CAST(m.trans_date AS DATE) <= EOMONTH(@fromDate)
  197. AND LEFT(m.item, 2) IN ( 'AA', 'AC', 'AN' )
  198. AND m.whse = @whse
  199. AND m.site_ref = @site
  200. AND m.loc IS NOT NULL
  201. GROUP BY item,
  202. site_ref
  203. ) b
  204. GROUP BY dbo.ZVN_GetPileDiameter(item),
  205. site
  206. ) a
  207. ON a.year = b.Nam
  208. AND a.loaicoc = b.LoaiCoc
  209. AND a.Site = b.Site
  210. AND a.month = b.Thang
  211. WHERE a.year = @nam
  212. AND a.month = @thang
  213. AND a.Site = @site;
  214. --tồn đầu
  215.  
  216. UPDATE FACT_ProductionbyMonth
  217. SET TonDau = a.tondau,
  218. GtrTonDau = a.beginamount
  219. FROM FACT_ProductionbyMonth b
  220. LEFT JOIN
  221. (
  222. SELECT dbo.ZVN_GetPileDiameter(item) loaicoc,
  223. SUM(ISNULL(qty, 0)) tondau,
  224. YEAR(@fromDate) year,
  225. MONTH(@fromDate) month,
  226. site,
  227. SUM(beginamount) beginamount
  228. FROM
  229. (
  230. SELECT SUM(m.qty) qty,
  231. item,
  232. site_ref AS site,
  233. SUM(ISNULL(qty, 0) * ISNULL(cost, 0)) AS beginamount
  234. FROM ERP.SyteLine_Apps.dbo.matltran_mst m
  235. WHERE CAST(m.trans_date AS DATE) < CAST(DATEADD(MONTH, DATEDIFF(MONTH, 0, @fromDate), 0) AS DATE)
  236. AND LEFT(m.item, 2) IN ( 'AA', 'AC', 'AN' )
  237. AND m.whse = @whse
  238. AND m.site_ref = @site -- AND m.Uf_ZVN_acct='1551'
  239. AND m.loc IS NOT NULL
  240. GROUP BY item,
  241. site_ref
  242. ) b
  243. GROUP BY dbo.ZVN_GetPileDiameter(item),
  244. site
  245. ) a
  246. ON a.year = b.Nam
  247. AND a.loaicoc = b.LoaiCoc
  248. AND a.Site = b.Site
  249. AND a.month = b.Thang
  250. WHERE a.year = @nam
  251. AND a.month = @thang
  252. AND a.Site = @site;
  253. UPDATE FACT_ProductionbyMonth
  254. SET SLSanXuat = ISNULL(a.qty, 0)
  255. FROM FACT_ProductionbyMonth B WITH (NOLOCK)
  256. LEFT JOIN
  257. (
  258. SELECT S.site AS site,
  259. b.TransYear AS Year,
  260. MONTH(b.TransDay) AS month,
  261. dbo.ZVN_GetPileDiameter(c.Item) loaicoc,
  262. SUM(ISNULL(b.Value, 0)) AS qty
  263. FROM ERP.SyteLine_Apps.dbo.ZVN_ProjPlanning_Day_mst b WITH (NOLOCK)
  264. JOIN ERP.SyteLine_Apps.dbo.ZVN_ProjProduction_mst c WITH (NOLOCK)
  265. ON b.ProjNum = c.ProjNum
  266. AND b.ResourceNum = c.ResourceId
  267. AND b.FullSeg = c.Item
  268. AND b.SiteRef = c.SiteRef
  269. LEFT JOIN ERP.SyteLine_Apps.dbo.site S WITH (NOLOCK) -- lấy ra nhà máy
  270. ON S.Uf_VendNum = c.ResourceId
  271. WHERE S.site = @site
  272. AND b.TransType = 'ttsx' --AND c.TRANSTYPE='ttsx'
  273. GROUP BY S.site,
  274. b.TransYear,
  275. MONTH(b.TransDay),
  276. dbo.ZVN_GetPileDiameter(c.Item)
  277. ) a
  278. ON a.Year = B.Nam
  279. AND a.loaicoc = B.LoaiCoc
  280. AND a.site = B.Site
  281. AND a.month = B.Thang
  282. WHERE a.site = @site
  283. AND a.month = @thang
  284. AND a.Year = @nam;
  285. UPDATE FACT_ProductionbyMonth
  286. SET SLCocHuy = ISNULL(a.QTYH, 0)
  287. FROM FACT_ProductionbyMonth B WITH (NOLOCK)
  288. LEFT JOIN
  289. (
  290. SELECT MONTH,
  291. yEAR,
  292. SUM(QTYH) QTYH,
  293. dbo.ZVN_GetPileDiameter(ItemNo_) LOAICOC,
  294. site
  295. FROM
  296. (
  297. SELECT MONTH(A.ManufactureDate) MONTH,
  298. YEAR(A.ManufactureDate) yEAR,
  299. COUNT(A.ItemNo_) QTYH,
  300. A.ItemNo_,
  301. A.CreatedBySite site
  302. FROM NEXTG.dbo.Item_Serials A WITH (NOLOCK)
  303. WHERE A.CreatedBySite = @site --@site
  304. AND A.SerialNo_ IS NOT NULL
  305. AND A.ItemNo_ IS NOT NULL
  306. AND A.ManufactureDate IS NOT NULL
  307. AND A.Quanlity = 'H'
  308. AND A.StatusID = 1
  309. AND dbo.FAB_IsPileItem(A.ItemNo_) = 1
  310. AND dbo.FAB_ComparePeriod(A.ManufactureDate, @nam, @thang) = 1
  311. GROUP BY ItemNo_,
  312. YEAR(A.ManufactureDate),
  313. MONTH(A.ManufactureDate),
  314. A.CreatedBySite,
  315. Quanlity,
  316. FactoryNo_
  317. ) A
  318. WHERE MONTH = @thang
  319. AND yEAR = @nam
  320. GROUP BY MONTH,
  321. yEAR,
  322. dbo.ZVN_GetPileDiameter(ItemNo_),
  323. site
  324. ) a
  325. ON a.yEAR = B.Nam
  326. AND a.LOAICOC = B.LoaiCoc
  327. AND a.Site = B.Site
  328. AND a.MONTH = B.Thang
  329. WHERE B.Nam = @nam
  330. AND B.Thang = @thang
  331. AND a.LOAICOC = B.LoaiCoc
  332. AND B.Site = @site;
  333.  
  334.  
  335.  
  336. DECLARE @t TABLE
  337. (
  338. qtyNhapKho DECIMAL(28, 10),
  339. LOAICOC NVARCHAR(50),
  340. MONTH INT,
  341. yEAR INT,
  342. site_ref NVARCHAR(10)
  343. );
  344.  
  345.  
  346. INSERT INTO @t
  347. SELECT SUM(ISNULL(qty, 0)) qtyNhapKho,
  348. dbo.ZVN_GetPileDiameter(e.item) LOAICOC,
  349. MONTH(e.trans_date) MONTH,
  350. YEAR(e.trans_date) yEAR,
  351. e.site_ref
  352. FROM
  353. (
  354. SELECT SUM(qty) qty,
  355. item,
  356. trans_date,
  357. site_ref,
  358. whse
  359. FROM ERP.SyteLine_Apps.dbo.matltran_mst b
  360. WHERE b.qty >= 0
  361. AND NOT EXISTS
  362. (
  363. SELECT 1
  364. FROM
  365. (
  366. SELECT trans_num
  367. FROM --
  368. ERP.SyteLine_Apps.dbo.matltran_mst a
  369. LEFT JOIN ERP.SyteLine_Apps.dbo.job_mst b
  370. ON a.ref_num = b.job
  371. AND a.ref_line_suf = b.suffix
  372. AND b.site_ref = a.site_ref
  373. WHERE rework = 1
  374. AND a.site_ref = @site
  375. AND a.whse = @whse
  376. AND dbo.FAB_ComparePeriod(a.trans_date, @nam, @thang) = 1
  377. UNION ALL
  378. SELECT trans_num
  379. FROM ERP.SyteLine_Apps.dbo.matltran_mst a
  380. WHERE a.trans_type = 'T'
  381. AND whse NOT IN ( 'btl', 'KHGB' )
  382. AND site_ref = @site
  383. AND dbo.FAB_ComparePeriod(a.trans_date, @nam, @thang) = 1
  384. UNION ALL
  385. SELECT t.trans_num
  386. FROM ERP.SyteLine_Apps.dbo.matltran_mst t WITH (NOLOCK)
  387. JOIN ERP.SyteLine_Apps.dbo.job_mst C WITH (NOLOCK)
  388. ON C.job = t.ref_num
  389. AND C.suffix = t.ref_line_suf
  390. AND C.site_ref = t.site_ref
  391. WHERE t.ref_type = 'J'
  392. AND t.site_ref = @site
  393. AND dbo.FAB_IsPileItem(t.item) = 1
  394. AND t.whse = @whse
  395. AND dbo.FAB_ComparePeriod(t.trans_date, @nam, @thang) = 1
  396. --and t.qty>=0
  397. AND t.loc IS NOT NULL
  398. AND t.whse IS NOT NULL
  399. AND C.rework = 0
  400. ) a
  401. WHERE a.trans_num = b.trans_num
  402. )
  403. AND dbo.FAB_ComparePeriod(b.trans_date, @nam, @thang) = 1
  404. AND dbo.FAB_IsPileItem(b.item) = 1
  405. AND b.site_ref = @site
  406. AND b.whse = @whse
  407. AND b.loc IS NOT NULL
  408. AND b.whse IS NOT NULL
  409. GROUP BY item,
  410. trans_date,
  411. site_ref,
  412. whse
  413. ) e
  414. GROUP BY dbo.ZVN_GetPileDiameter(e.item),
  415. MONTH(e.trans_date),
  416. YEAR(e.trans_date),
  417. site_ref;
  418.  
  419.  
  420.  
  421.  
  422. UPDATE b
  423. SET qtyNhapKho = ISNULL(a.qtyNhapKho, 0)
  424. FROM FACT_ProductionbyMonth b WITH (NOLOCK)
  425. JOIN
  426. (SELECT * FROM @t) a
  427. ON a.yEAR = b.Nam
  428. AND a.LOAICOC = b.LoaiCoc
  429. AND a.site_ref = b.Site
  430. AND a.MONTH = b.Thang
  431. WHERE b.Nam = @nam
  432. AND b.Thang = @thang
  433. AND a.LOAICOC = b.LoaiCoc
  434. AND b.Site = @site;
  435.  
  436.  
  437.  
  438. -- slNHAP KHO
  439.  
  440. UPDATE FACT_ProductionbyMonth
  441. SET SLNhapKhoSX = ISNULL(QTY, 0)
  442. FROM FACT_ProductionbyMonth B WITH (NOLOCK)
  443. LEFT JOIN
  444. (
  445. SELECT MONTH(t.trans_date) MONTH,
  446. YEAR(t.trans_date) YEAR,
  447. SUM((ISNULL(t.qty, 0))) QTY,
  448. dbo.ZVN_GetPileDiameter(t.item) LOAICOC,
  449. t.site_ref AS SITE
  450. --SELECT SUM(t.qty)
  451. FROM ERP.SyteLine_Apps.dbo.matltran_mst t WITH (NOLOCK)
  452. JOIN ERP.SyteLine_Apps.dbo.job_mst C WITH (NOLOCK)
  453. ON C.job = t.ref_num
  454. AND C.suffix = t.ref_line_suf
  455. AND C.site_ref = t.site_ref
  456. WHERE t.ref_type = 'J'
  457. AND t.site_ref = @site
  458. AND dbo.FAB_IsPileItem(t.item) = 1
  459. AND t.whse = @whse
  460. AND dbo.FAB_ComparePeriod(t.trans_date, @nam, @thang) = 1
  461. --and t.qty>=0
  462. AND t.loc IS NOT NULL
  463. AND t.whse IS NOT NULL
  464. AND C.rework = 0
  465. GROUP BY MONTH(t.trans_date),
  466. YEAR(t.trans_date),
  467. dbo.ZVN_GetPileDiameter(t.item),
  468. t.site_ref
  469. ) a
  470. ON a.YEAR = B.Nam
  471. AND a.LOAICOC = B.LoaiCoc
  472. AND a.SITE = B.Site
  473. AND a.MONTH = B.Thang
  474. WHERE B.Nam = @nam
  475. AND B.Thang = @thang
  476. AND a.LOAICOC = B.LoaiCoc
  477. AND B.Site = @site;
  478.  
  479.  
  480. DECLARE @TB TABLE
  481. (
  482. qtyXuatCocCongTruong DECIMAL(28, 10),
  483. LOAICOC NVARCHAR(50),
  484. MONTH INT,
  485. yEAR INT,
  486. site_ref NVARCHAR(5)
  487. );
  488. INSERT INTO @TB
  489. SELECT SUM(ISNULL(m.qty, 0)) qtyXuatCocCongTruong,
  490. dbo.ZVN_GetPileDiameter(m.item) LOAICOC,
  491. MONTH(m.trans_date) MONTH,
  492. YEAR(m.trans_date) yEAR,
  493. m.site_ref
  494. FROM ERP.SyteLine_Apps.dbo.matltran_mst m WITH (NOLOCK)
  495. LEFT JOIN ERP.SyteLine_Apps.dbo.trnitem_mst t
  496. ON m.ref_num = t.trn_num
  497. AND t.trn_line = m.ref_line_suf
  498. WHERE dbo.FAB_ComparePeriod(m.trans_date, @nam, @thang) = 1
  499. AND LEFT(m.item, 2) IN ( 'AA', 'AC', 'AN' )
  500. AND m.loc IS NOT NULL
  501. AND m.whse = @whse
  502. AND m.ref_type = 'T'
  503. AND t.from_whse = @whse
  504. AND t.to_whse = 'KHGB'
  505. GROUP BY dbo.ZVN_GetPileDiameter(m.item),
  506. MONTH(m.trans_date),
  507. YEAR(m.trans_date),
  508. m.site_ref;
  509.  
  510. -- XUẤT CỌC CÔNG TRƯỜNG
  511.  
  512. UPDATE FACT_ProductionbyMonth
  513. SET qtyXuatCocCongTruong = ISNULL(a.qtyXuatCocCongTruong, 0)
  514. FROM FACT_ProductionbyMonth B WITH (NOLOCK)
  515. LEFT JOIN
  516. (SELECT * FROM @TB) a
  517. ON a.yEAR = B.Nam
  518. AND a.LOAICOC = B.LoaiCoc
  519. AND a.site_ref = B.Site
  520. AND a.MONTH = B.Thang
  521. WHERE B.Nam = @nam
  522. AND B.Thang = @thang
  523. AND a.LOAICOC = B.LoaiCoc
  524. AND B.Site = @site;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement