Advertisement
samuel025

Issue KPS-1044

Apr 10th, 2022
1,166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. BEGIN;
  2. --sl_so_item(tax_percentage,tax_price,nett_sell_price,tax_amount,nett_item_amount)
  3. CREATE TABLE sl_so_item_20220408 AS (
  4. SELECT *
  5. FROM sl_so_item
  6. WHERE tax_id <> -99
  7. AND so_id IN (4647679,4647817,4647478,4647680,4646602,
  8.                 4646997,4646856,4647668,4647302,4647551,
  9.                 4645593,4646250,4647552,4645644,4646597,
  10.                 4647016,4646598,4647018,4647602,4646876,4646764)
  11.                 );
  12.  
  13. UPDATE sl_so_item A
  14. SET tax_percentage = 11.0,
  15. tax_price =
  16. f_tax_rounding(A.tenant_id, f_get_amount_before_tax((A.gross_sell_price - A.discount_amount),A.flg_tax_amount, 11.0,
  17. f_get_digit_decimal_doc_curr(301, A.curr_code), 'RHU'), 11.0),
  18. nett_sell_price =
  19. f_get_amount_before_tax((A.gross_sell_price - A.discount_amount), A.flg_tax_amount, 11.0,
  20. f_get_digit_decimal_doc_curr(301, A.curr_code), 'RHU'),
  21. tax_amount =
  22. f_tax_rounding(A.tenant_id, f_get_amount_before_tax(A.qty_int*(A.gross_sell_price - A.discount_amount),A.flg_tax_amount, 11.0,
  23. f_get_digit_decimal_doc_curr(301, A.curr_code), 'RHU'), 11.0),
  24. nett_item_amount =
  25. f_get_amount_before_tax(A.qty_int*(A.gross_sell_price - A.discount_amount), A.flg_tax_amount, 11.0,
  26. f_get_digit_decimal_doc_curr(301, A.curr_code), 'RHU')
  27. WHERE A.tax_id <> -99
  28. AND A.so_id IN (4647679,4647817,4647478,4647680,4646602,
  29.                 4646997,4646856,4647668,4647302,4647551,
  30.                 4645593,4646250,4647552,4645644,4646597,
  31.                 4647016,4646598,4647018,4647602,4646876,4646764);
  32.  
  33. --sl_so_balance_invoice(price_so,item_amount)
  34. CREATE TABLE  sl_so_balance_invoice_20220408 AS (
  35. SELECT *
  36. FROM sl_so_balance_invoice
  37. WHERE so_id IN (4647679,4647817,4647478,4647680,4646602,
  38.                 4646997,4646856,4647668,4647302,4647551,
  39.                 4645593,4646250,4647552,4645644,4646597,
  40.                 4647016,4646598,4647018,4647602,4646876,4646764)
  41.                 );
  42.  
  43. UPDATE sl_so_balance_invoice D
  44. SET price_so = C.nett_sell_price,
  45. item_amount = f_get_amount_before_tax(B.qty_dlv_so * (C.gross_sell_price - C.discount_amount), C.flg_tax_amount, 11.0,
  46. f_get_digit_decimal_doc_curr(311, C.curr_code), 'RHU')
  47. FROM sl_do A, sl_do_item B, sl_so_item C
  48. WHERE A.do_id = B.do_id AND
  49. B.ref_id = C.so_item_id AND
  50. C.tax_id <> -99 AND
  51. C.so_id IN (4647679,4647817,4647478,4647680,4646602,
  52.             4646997,4646856,4647668,4647302,4647551,
  53.             4645593,4646250,4647552,4645644,4646597,
  54.             4647016,4646598,4647018,4647602,4646876,4646764) AND
  55. C.so_id = D.so_id AND
  56. A.do_id = D.ref_id AND
  57. A.doc_type_id = D.ref_doc_type_id AND
  58. B.do_item_id = D.ref_item_id;
  59.  
  60. --sl_so_balance_invoice_tax(tax_percentage,base_amount,tax_amount)
  61. CREATE TABLE  sl_so_balance_invoice_tax_20220408 AS (
  62. SELECT *
  63. FROM sl_so_balance_invoice_tax
  64. WHERE so_id IN (4647679,4647817,4647478,4647680,4646602,
  65.                 4646997,4646856,4647668,4647302,4647551,
  66.                 4645593,4646250,4647552,4645644,4646597,
  67.                 4647016,4646598,4647018,4647602,4646876,4646764)
  68.                 );
  69.  
  70. UPDATE sl_so_balance_invoice_tax D
  71. SET tax_percentage = 11.0,
  72. base_amount = f_get_amount_before_tax(B.qty_dlv_so * (C.gross_sell_price - C.discount_amount), C.flg_tax_amount, 11.0,
  73. f_get_digit_decimal_doc_curr(311, C.curr_code), 'RHU'),
  74. tax_amount = f_tax_rounding(A.tenant_id, f_get_amount_before_tax(B.qty_dlv_so * (C.gross_sell_price - C.discount_amount), C.flg_tax_amount, 11.0,
  75. f_get_digit_decimal_doc_curr(311, C.curr_code), 'RHU'), 11.0)
  76. FROM sl_do A, sl_do_item B, sl_so_item C
  77. WHERE A.do_id = B.do_id AND
  78. B.ref_id = C.so_item_id AND
  79. C.tax_id <> -99 AND
  80. C.so_id IN (4647679,4647817,4647478,4647680,4646602,
  81.             4646997,4646856,4647668,4647302,4647551,
  82.             4645593,4646250,4647552,4645644,4646597,
  83.             4647016,4646598,4647018,4647602,4646876,4646764) AND
  84. C.so_id = D.so_id AND
  85. A.do_id = D.ref_id AND
  86. A.doc_type_id = D.ref_doc_type_id AND
  87. B.do_item_id = D.ref_item_id;
  88.  
  89. --sl_so_tax(tax_percentage,base_amount,tax_amount)
  90. CREATE TABLE sl_so_tax_20220408 AS (
  91. SELECT *
  92. FROM sl_so_tax
  93. WHERE so_id IN (4647679,4647817,4647478,4647680,4646602,
  94.                 4646997,4646856,4647668,4647302,4647551,
  95.                 4645593,4646250,4647552,4645644,4646597,
  96.                 4647016,4646598,4647018,4647602,4646876,4646764)
  97.                 );
  98.  
  99. WITH temp_update_sl_so_tax AS(
  100. SELECT A.so_id,
  101. SUM(f_get_amount_before_tax((A.qty_so * (A.gross_sell_price - A.discount_amount)), A.flg_tax_amount, 11.0,
  102. f_get_digit_decimal_doc_curr(301, A.curr_code), 'RHU')) AS base_amount,
  103. f_tax_rounding(A.tenant_id, SUM(f_get_amount_before_tax((A.qty_so * (A.gross_sell_price - A.discount_amount)), A.flg_tax_amount, 11.0,
  104. f_get_digit_decimal_doc_curr(301, A.curr_code), 'RHU')), 11.0) AS tax_amount
  105. FROM sl_so_item A
  106. WHERE A.so_id IN (4647679,4647817,4647478,4647680,4646602,
  107.                     4646997,4646856,4647668,4647302,4647551,
  108.                     4645593,4646250,4647552,4645644,4646597,
  109.                     4647016,4646598,4647018,4647602,4646876,4646764)
  110. GROUP BY A.so_id,A.tenant_id
  111. )
  112. UPDATE sl_so_tax A
  113. SET tax_percentage = 11.0,
  114. base_amount = B.base_amount,
  115. tax_amount = B.tax_amount,
  116. remark = 'PPN 11%'
  117. FROM temp_update_sl_so_tax B
  118. WHERE A.so_id = B.so_id;
  119.  
  120. --rollback
  121.  
  122. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement