congky

SCRIPT UNTUK TAGGING RSI KE MOU DARI SO NON MOU

May 31st, 2018
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /** SCRIPT UNTUK TAGGING RSI KE MOU DARI SO NON MOU **/
  2.  
  3. BEGIN;
  4.  
  5. WITH summary AS (
  6.     SELECT E.ref_id AS so_id, 3247 AS mou_id,
  7.         SUM(A.item_amount-A.regular_disc_amount)+SUM(COALESCE(C.tax_amount,0)) AS amount_and_tax
  8.     FROM sl_so_balance_invoice A
  9.     INNER JOIN in_inventory D ON A.ref_id = D.inventory_id AND A.ref_doc_type_id = D.doc_type_id
  10.     INNER JOIN sl_request_return_sales E ON D.ref_id = E.request_return_sales_id AND D.ref_doc_type_id = E.doc_type_id
  11.     LEFT JOIN sl_so_balance_invoice_tax C          
  12.         ON A.partner_id = C.partner_id     
  13.         AND A.ref_doc_type_id = C.ref_doc_type_id      
  14.         AND A.ref_id = C.ref_id    
  15.         AND A.ref_item_id = C.ref_item_id      
  16.         AND A.do_receipt_item_id = C.do_receipt_item_id    
  17.     WHERE A.tenant_id = 10
  18.         AND A.ref_id = 1815
  19.         AND A.ref_doc_type_id = 502
  20.     GROUP BY E.ref_id
  21. )
  22. UPDATE sl_mou_balance D
  23. SET usage_balance = D.usage_balance - E.amount_and_tax,
  24.     version = D.version + 1,
  25.     update_datetime = TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'),
  26.     update_user_id = -1
  27. FROM summary E
  28. WHERE D.mou_id = E.mou_id;
  29.  
  30. --insert log untuk amount nya
  31. WITH summary AS (
  32.     SELECT A.tenant_id, A.ou_from_id, 3247 AS mou_id, A.doc_type_id,
  33.         A.inventory_id, A.doc_no, A.doc_date, A.partner_id, B.curr_code,
  34.         SUM(B.item_amount-B.regular_disc_amount) AS amount
  35.     FROM in_inventory A
  36.         INNER JOIN sl_request_return_sales D ON A.ref_id = D.request_return_sales_id AND A.ref_doc_type_id = D.doc_type_id
  37.         INNER JOIN sl_so_balance_invoice B ON A.inventory_id = B.ref_id AND A.doc_type_id = B.ref_doc_type_id
  38.     WHERE A.tenant_id = 10
  39.          AND A.inventory_id = 1815
  40.          AND A.doc_type_id = 502
  41.     GROUP BY A.tenant_id, A.ou_from_id, A.doc_type_id,
  42.         A.inventory_id, A.doc_no, A.doc_date, A.partner_id, B.curr_code
  43. )
  44. INSERT INTO sl_mou_balance_log (
  45.     tenant_id, ou_id, mou_id, ref_doc_type_id, ref_id, ref_doc_no, ref_doc_date,
  46.     partner_id, curr_code, amount, remark,
  47.     create_datetime, create_user_id, update_datetime, update_user_id, version)
  48. SELECT D.tenant_id, D.ou_from_id, D.mou_id, D.doc_type_id, D.inventory_id, D.doc_no, D.doc_date,
  49.     D.partner_id, D.curr_code,  D.amount , 'Return Balance MOU from Return-Note',  
  50.     TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, 0
  51. FROM summary D;
  52.  
  53. --insert log untuk amount - tax nya
  54. WITH summary AS (
  55.     SELECT A.tenant_id, A.ou_from_id, 3247 AS mou_id, A.doc_type_id,
  56.         A.inventory_id, A.doc_no, A.doc_date, A.partner_id, B.curr_code,
  57.         SUM(B.tax_amount) AS tax_amount
  58.     FROM in_inventory A
  59.         INNER JOIN sl_request_return_sales D ON A.ref_id = D.request_return_sales_id AND A.ref_doc_type_id = D.doc_type_id
  60.         INNER JOIN sl_so_balance_invoice_tax B ON A.inventory_id = B.ref_id AND A.doc_type_id = B.ref_doc_type_id
  61.     WHERE A.tenant_id = 10
  62.          AND A.inventory_id = 1815
  63.          AND A.doc_type_id = 502
  64.     GROUP BY A.tenant_id, A.ou_from_id, A.doc_type_id,
  65.         A.inventory_id, A.doc_no, A.doc_date, A.partner_id, B.curr_code
  66. )
  67. INSERT INTO sl_mou_balance_log (
  68.     tenant_id, ou_id, mou_id, ref_doc_type_id, ref_id, ref_doc_no, ref_doc_date,
  69.     partner_id, curr_code, amount, remark,
  70.     create_datetime, create_user_id, update_datetime, update_user_id, version)
  71. SELECT D.tenant_id, D.ou_from_id, D.mou_id, D.doc_type_id, D.inventory_id, D.doc_no, D.doc_date,
  72.     D.partner_id, D.curr_code,  D.tax_amount , 'Return Balance MOU from Return-Note - Tax',  
  73.     TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, 0
  74. FROM summary D;
  75.  
  76. -- Insert ke table in_return_tagging
  77. INSERT INTO in_return_tagging (
  78. tenant_id, ou_id, inventory_id, tag_key, tag_doc_id, tag_doc_no, remark,
  79. create_datetime, create_user_id, update_datetime, update_user_id, version)
  80. SELECT A.tenant_id, A.ou_from_id, 1815, 'MOU', 3247, '056/SK/KM/IV/2018 ', 'Tag To MOU (Default by SO)',
  81.     TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, 0
  82. FROM in_inventory A
  83. INNER JOIN sl_request_return_sales C
  84.     ON A.ref_id = C.request_return_sales_id
  85.     AND A.ref_doc_type_id = C.doc_type_id
  86. WHERE A.inventory_id = 1815;
  87.  
  88. -- Insert ke invoice tagging
  89. INSERT INTO sl_invoice_tagging
  90.         (tenant_id, ou_id, invoice_id, tag_key, tag_doc_id, tag_doc_no, remark,
  91.         create_datetime, create_user_id, update_datetime, update_user_id, version)
  92. SELECT 10, 10, 138485, 'MOU', 3247, '056/SK/KM/IV/2018 ', '',
  93.         TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, 0;
  94. -- Insert ke invoice tagging log
  95. INSERT INTO sl_invoice_tagging_log
  96.     (tenant_id, ou_id, invoice_id, tag_key, tag_doc_id,
  97.     tag_doc_no, action_mapping, remark,
  98.     create_datetime, create_user_id, update_datetime, update_user_id, version)
  99. SELECT 10, 10,  138485, 'MOU', 3247,
  100.     '056/SK/KM/IV/2018 ', 'TAG', '',
  101.     TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS'), -1, 0;
  102.  
  103. END;
Advertisement
Add Comment
Please, Sign In to add comment