Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. --SCRIPT PERBAIKAN DATA CURRENT
  2.  
  3. DROP TABLE zzz_rekap_mutasi_selish_balance;
  4. DROP TABLE zzz_balance_to_update;
  5. DROP TABLE zzz_balance_to_update_after_calc;
  6.  
  7. CREATE TABLE zzz_rekap_mutasi_selish_balance AS
  8. WITH mutasi AS
  9. (
  10. SELECT doc_id,doc_type_id,doc_no,amount,partner_id
  11. FROM sl_log_partner_credit_limit_usage A
  12. WHERE doc_id <>-99
  13. AND doc_type_id <>-99
  14. AND doc_date >= '20160101'
  15. GROUP BY doc_id,doc_no,amount,partner_id,doc_type_id
  16. ),
  17. balance_invoice_mlm AS
  18. (
  19. SELECT so_id,ref_doc_no AS doc_no,ref_doc_type_id AS doc_type_id,partner_id,SUM(item_amount_member_price) AS total_amount,
  20. SUM(
  21. commission_amount
  22. ) AS total_commission,
  23. SUM(
  24. item_amount_member_price -
  25. commission_amount
  26. ) AS total_amount_minus_commission
  27. FROM sl_so_mlm_balance_invoice
  28. WHERE ref_doc_date >= '20160101'
  29. GROUP BY so_id,ref_doc_type_id,ref_doc_no,partner_id
  30. ),
  31. additional_cost AS(
  32. SELECT B.so_mlm_id,SUM(add_amount)AS add_amount,SUM(tax_amount) AS tax_amount
  33. FROM mutasi A
  34. JOIN sl_do_mlm C ON A.doc_id = C.do_mlm_id AND A.doc_type_id = C.doc_type_id
  35. JOIN sl_so_mlm_cost B ON C.ref_id = B.so_mlm_id
  36. GROUP BY B.so_mlm_id
  37. ),
  38. calc AS(
  39. SELECT A.doc_no,A.partner_id,A.total_amount_minus_commission,B.amount AS amount_mutasi,(A.total_amount_minus_commission-B.amount) AS selisih,COALESCE(C.add_amount,0) AS additional_amount,(A.total_amount_minus_commission-B.amount+COALESCE(C.add_amount,0)) AS balance_minus_mutasi
  40. FROM balance_invoice_mlm A
  41. INNER JOIN mutasi B ON A.partner_id= B.partner_id
  42. AND A.doc_no = B.doc_no
  43. AND A.doc_type_id = B.doc_type_id
  44. JOIN in_inventory X ON X.inventory_id =B.doc_id AND B.doc_type_id = X.doc_type_id
  45. LEFT JOIN additional_cost C ON C.so_mlm_id = X.ref_id
  46. WHERE (A.total_amount_minus_commission-B.amount+COALESCE(C.add_amount,0))<>0
  47. )
  48. SELECT *
  49. FROM calc
  50. --WHERE partner_id =3763
  51. ORDER BY balance_minus_mutasi ASC;
  52.  
  53.  
  54. CREATE TABLE zzz_balance_to_update AS
  55. WITH raw AS(
  56. SELECT ROW_NUMBER() OVER(PARTITION BY so_id ORDER BY so_balance_invoice_id),*
  57. FROM sl_so_mlm_balance_invoice A
  58. WHERE ref_doc_no IN(
  59. SELECT doc_no FROM zzz_rekap_mutasi_selish_balance
  60. )
  61. )
  62. SELECT *
  63. FROM raw
  64. WHERE row_number = 1;
  65.  
  66. SELECT * FROM zzz_balance_to_update
  67.  
  68. CREATE TABLE zzz_balance_to_update_after_calc AS
  69. SELECT A.doc_no,B.so_balance_invoice_id,A.balance_minus_mutasi,B.commission_amount,(B.commission_amount+A.balance_minus_mutasi) AS commission_amount_after_adj
  70. FROM zzz_rekap_mutasi_selish_balance A
  71. JOIN zzz_balance_to_update B ON A.partner_id =B.partner_id AND A.doc_no =B.ref_doc_no;
  72.  
  73. --BEGIN;
  74. UPDATE sl_so_mlm_balance_invoice A
  75. SET commission_amount = X.commission_amount_after_adj
  76. FROM zzz_balance_to_update_after_calc X
  77. WHERE X.so_balance_invoice_id = A.so_balance_invoice_id;
  78.  
  79.  
  80. --ROLLBACK;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement