Advertisement
aadddrr

KPS_PERBAIKI_DATA_LOG

Feb 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. BEGIN
  2. CREATE TABLE in_log_product_balance_stock_20180221 AS SELECT * FROM in_log_product_balance_stock
  3.  
  4.  SELECT COUNT(1) FROM in_log_product_balance_stock
  5.  
  6.  SELECT COUNT(1) FROM in_log_product_balance_stock_20180221
  7.  
  8. CREATE TABLE in_log_product_consignment_balance_stock_20180221 AS SELECT * FROM in_log_product_consignment_balance_stock
  9.  
  10. SELECT COUNT(1) FROM in_log_product_consignment_balance_stock
  11.  
  12. SELECT COUNT(1) FROM in_log_product_consignment_balance_stock_20180221
  13.  
  14.  
  15. SELECT
  16.  * FROM in_log_product_balance_stock A WHERE A.doc_no LIKE 'GRR%' AND A.doc_date LIKE '2016%' AND NOT EXISTS (
  17.     SELECT 1 FROM pu_receive_goods B
  18.     INNER JOIN pu_receive_goods_item C ON B.receive_goods_id = C.receive_goods_id
  19.     WHERE B.doc_no = A.doc_no
  20.     AND B.doc_date = A.doc_date
  21.     AND B.doc_type_id = A.doc_type_id
  22.     AND B.receive_goods_id =A.ref_id
  23.     AND C.product_id = A.product_id
  24.     AND C.qty_rcv_int = A.qty
  25. )
  26.  
  27. SELECT * FROM in_log_product_balance_stock A WHERE A.doc_no LIKE 'GRR%' AND A.doc_date LIKE '2017%' AND NOT EXISTS (
  28.     SELECT 1 FROM pu_receive_goods B
  29.     INNER JOIN pu_receive_goods_item C ON B.receive_goods_id = C.receive_goods_id
  30.     WHERE B.doc_no = A.doc_no
  31.     AND B.doc_date = A.doc_date
  32.     AND B.doc_type_id = A.doc_type_id
  33.     AND B.receive_goods_id =A.ref_id
  34.     AND C.product_id = A.product_id
  35.     AND C.qty_rcv_int = A.qty
  36. )
  37.  
  38.  
  39.  
  40. BEGIN
  41.  
  42.     --DELETE FROM in_log_product_balance_stock A WHERE A.doc_no LIKE 'GRR%' AND A.doc_date LIKE '2016%' AND NOT EXISTS (
  43.         SELECT 1 FROM pu_receive_goods B
  44.         INNER JOIN pu_receive_goods_item C ON B.receive_goods_id = C.receive_goods_id
  45.         WHERE B.doc_no = A.doc_no
  46.         AND B.doc_date = A.doc_date
  47.         AND B.doc_type_id = A.doc_type_id
  48.         AND B.receive_goods_id =A.ref_id
  49.         AND C.product_id = A.product_id
  50.         AND C.qty_rcv_int = A.qty
  51.     )
  52.  
  53.    
  54.     WITH tt_not_found AS (
  55.         SELECT * FROM in_log_product_balance_stock_20180221 A
  56.         WHERE A.doc_no LIKE 'GRR%' AND A.doc_date LIKE '2016%'
  57.             AND NOT EXISTS (
  58.                 SELECT 1 FROM pu_receive_goods B
  59.                 INNER JOIN pu_receive_goods_item C ON B.receive_goods_id = C.receive_goods_id
  60.                 WHERE B.doc_no = A.doc_no
  61.                 AND B.doc_date = A.doc_date
  62.                 AND B.doc_type_id = A.doc_type_id
  63.                 AND B.receive_goods_id =A.ref_id
  64.                 AND C.product_id = A.product_id
  65.                 AND C.qty_rcv_int = A.qty
  66.             )
  67.     )
  68.     INSERT INTO in_log_product_balance_stock(
  69.             tenant_id, ou_id, doc_type_id,
  70.             ref_id, doc_no, doc_date, partner_id, product_id, warehouse_id,
  71.             product_balance_id, product_status, base_uom_id, qty, version,
  72.             create_datetime, create_user_id, update_datetime, update_user_id)
  73.         SELECT A.tenant_id, A.ou_id, A.doc_type_id,
  74.             A.receive_goods_id, A.doc_no, A.doc_date, A.partner_id, B.product_id, A.warehouse_id,
  75.             D.product_balance_id, 'GOOD', B.base_uom_id, SUM(B.qty_rcv_int), 0,
  76.             '20180131132801', -1, '20180131132801', -1
  77.         FROM pu_receive_goods A
  78.         INNER JOIN pu_receive_goods_item B ON A.receive_goods_id = B.receive_goods_id
  79.         INNER JOIN in_product_balance D ON
  80.         A.tenant_id = D.tenant_id AND
  81.         B.product_id = D.product_id
  82.         AND EXISTS(
  83.         SELECT 1
  84.         FROM tt_not_found Z
  85.         WHERE A.receive_goods_id = Z.ref_id
  86.             AND A.doc_type_id = Z.doc_type_id
  87.             AND A.doc_no = Z.doc_no
  88.             AND A.doc_date = Z.doc_date
  89.         )
  90.         AND NOT EXISTS(
  91.         SELECT 1
  92.         FROM in_log_product_balance_stock Y
  93.         WHERE A.tenant_id = Y.tenant_id
  94.             AND A.ou_id = Y.ou_id
  95.             AND A.doc_type_id = Y.doc_type_id
  96.             AND A.receive_goods_id =  Y.ref_id
  97.             AND A.doc_no = Y.doc_no
  98.             AND A.doc_date = Y.doc_date
  99.             AND A.partner_id = Y.partner_id
  100.             AND B.product_id = Y.product_id
  101.             AND A.warehouse_id = Y.warehouse_id
  102.             AND D.product_balance_id = Y.product_balance_id
  103.             AND B.base_uom_id = Y.base_uom_id
  104.             AND Y.product_status = 'GOOD'
  105.         )
  106.         GROUP BY A.tenant_id, A.ou_id, A.doc_type_id,
  107.             A.receive_goods_id, A.doc_no, A.doc_date, A.partner_id, B.product_id, A.warehouse_id,
  108.             D.product_balance_id, B.base_uom_id
  109.  
  110.  
  111.  
  112.     --DELETE FROM in_log_product_balance_stock A WHERE A.doc_no LIKE 'GRR%' AND A.doc_date LIKE '2017%' AND NOT EXISTS (
  113.         SELECT 1 FROM pu_receive_goods B
  114.         INNER JOIN pu_receive_goods_item C ON B.receive_goods_id = C.receive_goods_id
  115.         WHERE B.doc_no = A.doc_no
  116.         AND B.doc_date = A.doc_date
  117.         AND B.doc_type_id = A.doc_type_id
  118.         AND B.receive_goods_id =A.ref_id
  119.         AND C.product_id = A.product_id
  120.         AND C.qty_rcv_int = A.qty
  121.     )
  122.  
  123.    
  124.     WITH tt_not_found AS (
  125.         SELECT * FROM in_log_product_balance_stock_20180221 A
  126.         WHERE A.doc_no LIKE 'GRR%' AND A.doc_date LIKE '2017%'
  127.             AND NOT EXISTS (
  128.                 SELECT 1 FROM pu_receive_goods B
  129.                 INNER JOIN pu_receive_goods_item C ON B.receive_goods_id = C.receive_goods_id
  130.                 WHERE B.doc_no = A.doc_no
  131.                 AND B.doc_date = A.doc_date
  132.                 AND B.doc_type_id = A.doc_type_id
  133.                 AND B.receive_goods_id =A.ref_id
  134.                 AND C.product_id = A.product_id
  135.                 AND C.qty_rcv_int = A.qty
  136.             )
  137.     )
  138.     INSERT INTO in_log_product_balance_stock(
  139.             tenant_id, ou_id, doc_type_id,
  140.             ref_id, doc_no, doc_date, partner_id, product_id, warehouse_id,
  141.             product_balance_id, product_status, base_uom_id, qty, version,
  142.             create_datetime, create_user_id, update_datetime, update_user_id)
  143.         SELECT A.tenant_id, A.ou_id, A.doc_type_id,
  144.             A.receive_goods_id, A.doc_no, A.doc_date, A.partner_id, B.product_id, A.warehouse_id,
  145.             D.product_balance_id, 'GOOD', B.base_uom_id, SUM(B.qty_rcv_int), 0,
  146.             '20180131132801', -1, '20180131132801', -1
  147.         FROM pu_receive_goods A
  148.         INNER JOIN pu_receive_goods_item B ON A.receive_goods_id = B.receive_goods_id
  149.         INNER JOIN in_product_balance D ON
  150.         A.tenant_id = D.tenant_id AND
  151.         B.product_id = D.product_id
  152.         AND EXISTS(
  153.         SELECT 1
  154.         FROM tt_not_found Z
  155.         WHERE A.receive_goods_id = Z.ref_id
  156.             AND A.doc_type_id = Z.doc_type_id
  157.             AND A.doc_no = Z.doc_no
  158.             AND A.doc_date = Z.doc_date
  159.         )
  160.          AND NOT EXISTS(
  161.         SELECT 1
  162.         FROM in_log_product_balance_stock Y
  163.         WHERE A.tenant_id = Y.tenant_id
  164.             AND A.ou_id = Y.ou_id
  165.             AND A.doc_type_id = Y.doc_type_id
  166.             AND A.receive_goods_id =  Y.ref_id
  167.             AND A.doc_no = Y.doc_no
  168.             AND A.doc_date = Y.doc_date
  169.             AND A.partner_id = Y.partner_id
  170.             AND B.product_id = Y.product_id
  171.             AND A.warehouse_id = Y.warehouse_id
  172.             AND D.product_balance_id = Y.product_balance_id
  173.             AND B.base_uom_id = Y.base_uom_id
  174.             AND Y.product_status = 'GOOD'
  175.         )
  176.         GROUP BY A.tenant_id, A.ou_id, A.doc_type_id,
  177.             A.receive_goods_id, A.doc_no, A.doc_date, A.partner_id, B.product_id, A.warehouse_id,
  178.             D.product_balance_id, B.base_uom_id
  179.  
  180. ROLLBACK
  181.  
  182.  
  183.  
  184. BEGIN
  185.  
  186.     UPDATE in_log_product_consignment_balance_stock SET doc_date = '20171103' WHERE ref_id = 4485556 AND doc_type_id = 311 AND doc_no = 'DO/000170/KPS/201709' AND ou_id = 10 AND tenant_id = 10 AND doc_date = '20170929'
  187.    
  188.     UPDATE in_log_product_consignment_balance_stock SET doc_date = '20171103' WHERE ref_id = 4485699 AND doc_type_id = 311 AND doc_no = 'DO/000001/KPS/201710' AND ou_id = 10 AND tenant_id = 10 AND doc_date = '20171002'
  189.  
  190. ROLLBACK
  191.  
  192. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement