samuel025

Script Update Issue KAT-778

Feb 23rd, 2022 (edited)
829
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Script Update Data KAT-778
  2. -- pu_receive_goods_item
  3. UPDATE pu_receive_goods_item A SET qty_rcv_po = B.qty_po
  4. FROM pu_po_item B
  5. WHERE EXISTS (SELECT 1 FROM pu_receive_goods B WHERE A.receive_goods_id = B.receive_goods_id AND B.doc_no = 'RG-1903-00001')
  6. AND B.qty_po < A.qty_rcv_po
  7. AND A.ref_id = B.po_item_id;
  8.  
  9. -- pu_po_balance_item
  10. UPDATE pu_po_balance_item A SET qty_rcv = qty_po, qty_int_rcv = qty_int_po
  11. WHERE EXISTS (SELECT 1 FROM pu_po_item B
  12.         INNER JOIN pu_receive_goods_item C ON B.po_item_id = C.ref_id
  13.         INNER JOIN pu_receive_goods D ON C.receive_goods_id = D.receive_goods_id
  14.         WHERE D.doc_no = 'RG-1903-00001'
  15.         AND A.po_item_id = B.po_item_id
  16.         AND B.qty_po < C.qty_rcv_po);
  17.  
  18. -- pu_po_balance_invoice
  19. UPDATE pu_po_balance_invoice A SET qty_rcv_po = C.qty_po
  20. FROM pu_po_item C
  21. WHERE A.ref_doc_no = 'RG-1903-00001'
  22. AND A.po_id = C.po_id
  23. AND EXISTS (SELECT 1 FROM pu_receive_goods_item B
  24.         WHERE A.ref_item_id = B.receive_goods_item_id
  25.         AND C.po_item_id = B.ref_id
  26.         AND C.qty_po < B.qty_rcv_po);
  27.  
  28. -- pu_receive_goods_product
  29. UPDATE pu_receive_goods_product A SET qty_rcv_po = D.qty_po, qty_rcv_int = D.qty_po
  30. FROM pu_receive_goods_item B
  31. INNER JOIN pu_receive_goods C ON B.receive_goods_id = C.receive_goods_id
  32. INNER JOIN pu_po_item D ON B.ref_id = D.po_item_id
  33. WHERE A.receive_goods_item_id = B.receive_goods_item_id
  34. AND C.doc_no = 'RG-1903-00001'
  35. AND D.qty_po < B.qty_rcv_po
  36. AND A.receive_goods_item_id = B.receive_goods_item_id
  37.  
  38. -- in_product_price_balance
  39. UPDATE in_product_price_balance A SET amount = ((A.amount / A.qty) * C.qty_po), qty = C.qty_po
  40. FROM pu_receive_goods_item B
  41. INNER JOIN pu_po_item C ON B.ref_id = C.po_item_id
  42. WHERE A.doc_no  = 'RG-1903-00001'
  43. AND C.qty_po < B.qty_rcv_po
  44. AND A.ref_id = B.receive_goods_item_id
  45.  
  46. -- in_product_balance_stock
  47. WITH tt_product_balance_id AS (
  48. SELECT A.product_id, B.product_balance_id, E.po_item_id
  49. FROM in_product_balance_stock A
  50. INNER JOIN in_product_balance B ON B.product_id = A.product_id AND A.product_balance_id = B.product_balance_id
  51. INNER JOIN pu_receive_goods_product C ON B.serial_number = C.serial_number AND B.lot_number = C.lot_number
  52. INNER JOIN pu_receive_goods_item D ON C.receive_goods_item_id = D.receive_goods_item_id
  53. INNER JOIN pu_po_item E ON D.ref_id = E.po_item_id
  54. INNER JOIN pu_receive_goods F ON D.receive_goods_id = F.receive_goods_id
  55. WHERE F.doc_no  = 'RG-1903-00001'
  56. AND E.qty_po < D.qty_rcv_po
  57.  
  58. )
  59. UPDATE in_product_balance_stock A SET qty = (A.qty - (D.qty_rcv_po - C.qty_po))  
  60. FROM tt_product_balance_id B
  61. INNER JOIN pu_po_item C ON B.po_item_id = C.po_item_id
  62. INNER JOIN pu_receive_goods_item D ON C.po_item_id = D.ref_id
  63. WHERE A.product_balance_id = B.product_balance_id
  64.  
  65.  
  66. -- in_product_price_balance_stock
  67. WITH tt_product_balance_id AS (
  68. SELECT A.product_id, B.product_balance_id, E.po_item_id
  69. FROM in_product_balance_stock A
  70. INNER JOIN in_product_balance B ON B.product_id = A.product_id AND A.product_balance_id = B.product_balance_id
  71. INNER JOIN pu_receive_goods_product C ON B.serial_number = C.serial_number AND B.lot_number = C.lot_number
  72. INNER JOIN pu_receive_goods_item D ON C.receive_goods_item_id = D.receive_goods_item_id
  73. INNER JOIN pu_po_item E ON D.ref_id = E.po_item_id
  74. INNER JOIN pu_receive_goods F ON D.receive_goods_id = F.receive_goods_id
  75. WHERE F.doc_no  = 'RG-1903-00001'
  76. AND E.qty_po < D.qty_rcv_po
  77.  
  78. )
  79. UPDATE in_product_price_balance_stock A SET qty = C.qty_po
  80. FROM tt_product_balance_id B
  81. INNER JOIN pu_po_item C ON B.po_item_id = C.po_item_id
  82. WHERE A.product_balance_id = B.product_balance_id
  83.  
  84. -- in_balance_receive_goods_item
  85. UPDATE in_balance_receive_goods_item A SET qty_rcv = D.qty_po, qty_int_rcv = D.qty_po
  86. FROM pu_receive_goods_item B
  87. INNER JOIN pu_receive_goods C ON B.receive_goods_id = C.receive_goods_id
  88. INNER JOIN pu_po_item D ON A.po_item_id = D.po_item_id
  89. WHERE C.doc_no = 'RG-1903-00001'
  90. AND D.qty_po < B.qty_rcv_po
  91. AND A.receive_goods_item_id = B.receive_goods_item_id
  92.  
  93. SELECT * FROM pu_monthly_price_product WHERE ref_doc_no  = 'RG-1903-00001'
  94.  
  95. -- in_product_price_balance
  96. UPDATE pu_monthly_price_product A SET amount = ((A.amount / A.qty) * C.qty_po), qty = C.qty_po
  97. FROM pu_receive_goods_item B
  98. INNER JOIN pu_po_item C ON B.ref_id = C.po_item_id
  99. WHERE A.doc_no  = 'RG-1903-00001'
  100. AND C.qty_po < B.qty_rcv_po
  101. AND A.ref_id = B.receive_goods_item_id
  102.    
  103. -- pu_monthly_price_product
  104. WITH tt_product_for_pu_monthly_price_product AS (
  105.     SELECT B.product_id, C.qty_po
  106.     FROM pu_receive_goods_item B
  107.     INNER JOIN pu_po_item C ON B.ref_id = C.po_item_id
  108.     AND C.qty_po < B.qty_rcv_po
  109. )
  110. UPDATE pu_monthly_price_product A SET amount =((A.amount / A.qty) * B.qty_po), qty = B.qty_po
  111. FROM tt_product_for_pu_monthly_price_product B
  112. WHERE A.ref_doc_no = 'RG-1903-00001'
  113. AND A.product_id = B.product_id
  114.    
  115. -- gl_journal_trx_item
  116. WITH tt_product_for_gl_journal_trx_item AS (
  117.     SELECT B.product_id, C.qty_po, E.journal_trx_id
  118.     FROM pu_receive_goods_item B
  119.     INNER JOIN pu_po_item C ON B.ref_id = C.po_item_id
  120.     INNER JOIN pu_receive_goods D ON B.receive_goods_id = D.receive_goods_id
  121.     INNER JOIN gl_journal_trx E ON D.receive_goods_id = E.doc_id AND E.doc_type_id = 111
  122.     AND C.qty_po < B.qty_rcv_po
  123.     AND D.doc_no = 'RG-1903-00001'
  124. )
  125. UPDATE gl_journal_trx_item A SET amount =((A.amount / A.qty) * B.qty_po), qty = B.qty_po
  126. FROM tt_product_for_gl_journal_trx_item B
  127. WHERE A.product_id = B.product_id
  128. AND A.journal_trx_id = B.journal_trx_id
  129.  
  130. -- gl_journal_trx_mapping
  131. WITH tt_journal_trx_item AS (
  132.     SELECT D.journal_trx_id, SUM (f_get_amount_before_tax_for_ktmt(C.gross_price_po, C.flg_tax_amount, C.tax_percentage,f_get_digit_decimal_doc_curr(111, C.curr_code), 'RHU', C.discount_amount, B.qty_rcv_po)) AS amount
  133.     FROM pu_receive_goods A, pu_receive_goods_item B, pu_po_item C, gl_journal_trx D
  134.     WHERE A.doc_no = 'RG-1903-00001'
  135.     AND A.receive_goods_id = B.receive_goods_id
  136.     AND B.ref_id = C.po_item_id
  137.     AND C.flg_stock = 'Y'
  138.     AND A.receive_goods_id = D.doc_id AND D.doc_type_id = 111
  139.     GROUP BY D.journal_trx_id
  140.     )
  141. UPDATE gl_journal_trx_mapping A SET amount = B.amount
  142. FROM tt_journal_trx_item B
  143. WHERE A.journal_trx_id = B.journal_trx_id
Add Comment
Please, Sign In to add comment