Advertisement
samuel025

Script Update Data RN For Finance PPn 11%

Apr 12th, 2022
1,746
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. BEGIN;
  3. --> buat data temporary
  4. INSERT INTO tt_in_po_balance_item
  5.         (session_id, tenant_id, ou_id, doc_type_id,
  6.         doc_no, doc_date, inventory_id, partner_id,
  7.         inventory_item_id, po_id, receive_goods_id, receive_goods_item_id,
  8.         qty_return, base_uom_id, remark,
  9.         po_item_id, curr_code, price,
  10.         flg_tax_amount, qty_po, qty_int_po,
  11.         po_uom_id, tax_id, tax_percentage)
  12.         SELECT 'SESI1', A.tenant_id, A.ou_from_id, A.doc_type_id,
  13.                 A.doc_no, A.doc_date, A.inventory_id, A.partner_id,
  14.                 B.inventory_item_id, A.ref_id, B.ref_id, B.ref_item_id,
  15.                 SUM(B.qty_realization), B.base_uom_id, A.remark,
  16.                 D.po_item_id, D.curr_code, D.gross_price_po - D.discount_amount,
  17.                 D.flg_tax_amount, D.qty_po, D.qty_int,
  18.                 D.po_uom_id, D.tax_id, 11.00
  19.         FROM in_inventory A, in_inventory_item B, in_balance_receive_goods_item C, pu_po_item D
  20.         WHERE A.inventory_id = 42039 AND
  21.               A.inventory_id = B.inventory_id AND
  22.               B.ref_item_id = C.receive_goods_item_id AND
  23.               C.po_item_id = D.po_item_id
  24.         GROUP BY A.tenant_id, A.ou_from_id, A.doc_type_id,
  25.                 A.doc_no, A.doc_date, A.inventory_id, A.partner_id,
  26.                 B.inventory_item_id, A.ref_id, B.ref_id, B.ref_item_id,
  27.         B.base_uom_id, D.po_item_id, D.curr_code, D.nett_price_po, D.qty_po, D.qty_int, D.po_uom_id, D.tax_id ;
  28.  
  29. WITH item_amount AS (
  30. SELECT A.session_id, SUM(f_get_amount_before_tax((A.qty_return * A.qty_po * A.price) / A.qty_int_po,
  31.     A.flg_tax_amount, 11.00, f_get_digit_decimal_doc_curr(511, A.curr_code), 'RHU')) AS item_amount
  32. FROM tt_in_po_balance_item A
  33. WHERE A.session_id = 'SESI1'
  34. GROUP BY A.session_id, A.flg_tax_amount
  35. )
  36.  
  37. --> pu_po_balance_invoice
  38. UPDATE pu_po_balance_invoice Z SET item_amount = B.item_amount
  39. FROM tt_in_po_balance_item A
  40. INNER JOIN item_amount B ON B.session_id = A.session_id
  41. WHERE A.session_id = 'SESI1'
  42. AND Z.tenant_id = A.tenant_id
  43. AND Z.ou_id = A.ou_id
  44. AND Z.po_id = A.po_id
  45. AND Z.ref_doc_type_id = A.doc_type_id
  46. AND Z.ref_id = A.inventory_id
  47. AND Z.ref_item_id = A.receive_goods_item_id;
  48.  
  49. WITH base_amount AS (
  50. SELECT A.session_id, SUM(f_get_amount_before_tax((A.qty_return * A.qty_po * A.price) / A.qty_int_po,
  51.     A.flg_tax_amount, A.tax_percentage, f_get_digit_decimal_doc_curr(511, A.curr_code), 'RHU')) AS item_amount
  52. FROM tt_in_po_balance_item A
  53. WHERE A.session_id = 'SESI1'
  54. GROUP BY A.session_id
  55. )      
  56. --> pu_po_balance_invoice_tax
  57. UPDATE pu_po_balance_invoice_tax Z SET
  58.     base_amount = B.item_amount,
  59.     tax_amount = f_tax_rounding(A.tenant_id, B.item_amount, A.tax_percentage),
  60.     tax_percentage = A.tax_percentage
  61. FROM tt_in_po_balance_item A
  62. INNER JOIN base_amount B ON B.session_id = A.session_id
  63. WHERE A.session_id = 'SESI1'
  64. AND Z.tenant_id = A.tenant_id
  65. AND Z.ou_id = A.ou_id
  66. AND Z.po_id = A.po_id
  67. AND Z.ref_doc_type_id = A.doc_type_id
  68. AND Z.ref_id = A.inventory_id
  69. AND Z.ref_item_id = A.receive_goods_item_id
  70. AND Z.tax_id = A.tax_id;
  71.  
  72. --> gl_journal_trx_item
  73. UPDATE gl_journal_trx_item Z SET
  74.     amount = f_get_amount_before_tax((A.qty_return * A.qty_po * A.price) / A.qty_int_po, A.flg_tax_amount, A.tax_percentage, f_get_digit_decimal_doc_curr(511, A.curr_code), 'RHU')
  75. FROM tt_in_po_balance_item A
  76. WHERE A.session_id = 'SESI1'
  77. AND Z.journal_trx_id  = 725573;
  78.  
  79. --> gl_journal_trx_mapping     
  80. UPDATE gl_journal_trx_mapping Z SET
  81.     amount = f_get_amount_before_tax((A.qty_return * A.qty_po * A.price) / A.qty_int_po, A.flg_tax_amount, A.tax_percentage, f_get_digit_decimal_doc_curr(511, A.curr_code), 'RHU')
  82. FROM tt_in_po_balance_item A
  83. WHERE A.session_id = 'SESI1'
  84. AND Z.journal_trx_id  = 725573;
  85.  
  86. DELETE FROM tt_in_po_balance_item WHERE session_id = 'SESI1';
  87.  
  88. ROLLBACK
  89. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement