Advertisement
Evra70

a

Oct 30th, 2020
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Mendapatkan nilai pembelian 
  2.     INSERT INTO tt_fab_product(
  3.     session_id,product_id,tenant_id
  4.     )
  5.     SELECT pSessionId ,A.product_id,A.tenant_id
  6.         FROM m_product A
  7.         INNER JOIN m_product_custom_for_sasa B ON A.product_id = B.product_id
  8.         INNER JOIN m_group_brand C ON B.group_brand_id = C.group_brand_id
  9.         WHERE C.group_brand_code = 'FAB'
  10.         AND A.tenant_id = 10 ;
  11.    
  12.     -- FX
  13.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vPembelianAmountFx2801
  14.     FROM pu_po_balance_invoice A
  15.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  16.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  17.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  18.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  19.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  20.     AND A.ref_id = C.receive_goods_id
  21.     LEFT OUTER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  22.     WHERE A.invoice_id <> -99
  23.     AND A.tenant_id = 10
  24.     AND A.ref_doc_type_id = 111
  25.     AND f_get_ou_code(COALESCE(D.ou_id,-99)) NOT IN ('2803','2808')
  26.     AND EXISTS (
  27.         SELECT 1 FROM pu_invoice E
  28.         WHERE A.invoice_id = E.invoice_id
  29.         AND LEFT(E.doc_date,6) = '202010'  
  30.         AND E.doc_type_id  = 131
  31.         AND E.curr_code = 'IDR'   )
  32.     AND NOT EXISTS (
  33.         SELECT 1 FROM tt_fab_product X
  34.         WHERE C.product_id = X.product_id
  35.         AND A.tenant_id = X.tenant_id
  36.     );
  37.    
  38.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vRetPembelianAmountFx2801
  39.     FROM pu_po_balance_invoice A
  40.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  41.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  42.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  43.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  44.     INNER JOIN in_inventory E ON E.inventory_id = A.ref_id AND E.doc_type_id = A.ref_doc_type_id
  45.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  46.     LEFT OUTER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  47.     WHERE A.invoice_id <> -99
  48.     AND A.tenant_id = 10
  49.     AND A.ref_doc_type_id = 511
  50.     AND f_get_ou_code(COALESCE(D.ou_id,-99)) NOT IN ('2803','2808')
  51.     AND EXISTS (
  52.         SELECT 1 FROM pu_invoice E
  53.         WHERE A.invoice_id = E.invoice_id
  54.         AND LEFT(E.doc_date,6) = '202010'
  55.         AND E.doc_type_id  = 141
  56.         AND E.curr_code = 'IDR'  )
  57.     AND NOT EXISTS (
  58.         SELECT 1 FROM tt_fab_product X
  59.         WHERE COALESCE(C.product_id,-99) = X.product_id
  60.         AND A.tenant_id = X.tenant_id
  61.     );
  62.    
  63.     vPembelianAmountFx2801 := vPembelianAmountFx2801 - vRetPembelianAmountFx2801;
  64.    
  65.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vPembelianAmountFx2803
  66.     FROM pu_po_balance_invoice A
  67.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  68.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  69.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  70.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  71.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  72.     AND A.ref_id = C.receive_goods_id
  73.     INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  74.     WHERE A.invoice_id <> -99
  75.     AND A.tenant_id = 10
  76.     AND A.ref_doc_type_id = 111
  77.     AND f_get_ou_code(D.ou_id) ='2803'
  78.     AND EXISTS (
  79.         SELECT 1 FROM pu_invoice E
  80.         WHERE A.invoice_id = E.invoice_id
  81.         AND LEFT(E.doc_date,6) = '202010'  
  82.         AND E.doc_type_id  = 131
  83.         AND E.curr_code = 'IDR' )
  84.     AND NOT EXISTS (
  85.         SELECT 1 FROM tt_fab_product X
  86.         WHERE C.product_id = X.product_id
  87.         AND A.tenant_id = X.tenant_id
  88.     );
  89.    
  90.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vRetPembelianAmountFx2803
  91.     FROM pu_po_balance_invoice A
  92.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  93.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  94.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  95.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  96.     INNER JOIN in_inventory E ON E.inventory_id = A.ref_id AND E.doc_type_id = A.ref_doc_type_id
  97.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  98.     INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  99.     WHERE A.invoice_id <> -99
  100.     AND A.tenant_id = 10
  101.     AND A.ref_doc_type_id = 511
  102.     AND f_get_ou_code(D.ou_id) = '2803'
  103.     AND EXISTS (
  104.         SELECT 1 FROM pu_invoice E
  105.         WHERE A.invoice_id = E.invoice_id
  106.         AND LEFT(E.doc_date,6) = '202010'
  107.         AND E.doc_type_id  = 141
  108.         AND E.curr_code = 'IDR'  )
  109.     AND NOT EXISTS (
  110.         SELECT 1 FROM tt_fab_product X
  111.         WHERE COALESCE(C.product_id,-99) = X.product_id
  112.         AND A.tenant_id = X.tenant_id
  113.     );
  114.    
  115.     vPembelianAmountFx2803 := vPembelianAmountFx2803 - vRetPembelianAmountFx2803;
  116.        
  117.     --BUSI
  118.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vPembelianAmountBusi2801
  119.     FROM pu_po_balance_invoice A
  120.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  121.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  122.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  123.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  124.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  125.     AND A.ref_id = C.receive_goods_id
  126.     LEFT OUTER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  127.     WHERE A.invoice_id <> -99
  128.     AND A.tenant_id = 10
  129.     AND A.ref_doc_type_id = 111
  130.     AND f_get_ou_code(COALESCE(D.ou_id,-99)) NOT IN ('2803','2808')
  131.     AND EXISTS (
  132.         SELECT 1 FROM pu_invoice E
  133.         WHERE A.invoice_id = E.invoice_id
  134.         AND LEFT(E.doc_date,6) = '202010'  
  135.         AND E.doc_type_id  = 131
  136.         AND E.curr_code = 'IDR'   )
  137.     AND EXISTS (
  138.         SELECT 1 FROM tt_fab_product X
  139.         WHERE C.product_id = X.product_id
  140.         AND A.tenant_id = X.tenant_id
  141.     );
  142.    
  143.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vRetPembelianAmountBusi2801
  144.     FROM pu_po_balance_invoice A
  145.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  146.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  147.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  148.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  149.     INNER JOIN in_inventory E ON E.inventory_id = A.ref_id AND E.doc_type_id = A.ref_doc_type_id
  150.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  151.     LEFT OUTER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  152.     WHERE A.invoice_id <> -99
  153.     AND A.tenant_id = 10
  154.     AND A.ref_doc_type_id = 511
  155.     AND f_get_ou_code(COALESCE(D.ou_id,-99)) NOT IN ('2803','2808')
  156.     AND EXISTS (
  157.         SELECT 1 FROM pu_invoice E
  158.         WHERE A.invoice_id = E.invoice_id
  159.         AND LEFT(E.doc_date,6) = '202010'
  160.         AND E.doc_type_id  = 141
  161.         AND E.curr_code = 'IDR'  )
  162.     AND EXISTS (
  163.         SELECT 1 FROM tt_fab_product X
  164.         WHERE COALESCE(C.product_id,-99) = X.product_id
  165.         AND A.tenant_id = X.tenant_id
  166.     );
  167.    
  168.    
  169.     vPembelianAmountBusi2801  := vPembelianAmountBusi2801 - vRetPembelianAmountBusi2801;
  170.    
  171.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vPembelianAmountBusi2808
  172.     FROM pu_po_balance_invoice A
  173.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  174.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  175.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  176.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  177.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  178.     AND A.ref_id = C.receive_goods_id
  179.     INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  180.     WHERE A.invoice_id <> -99
  181.     AND A.tenant_id = 10
  182.     AND A.ref_doc_type_id = 111
  183.     AND f_get_ou_code(D.ou_id) ='2808'
  184.     AND EXISTS (
  185.         SELECT 1 FROM pu_invoice E
  186.         WHERE A.invoice_id = E.invoice_id
  187.         AND LEFT(E.doc_date,6) = '202010'  
  188.         AND E.doc_type_id  = 131
  189.         AND E.curr_code = 'IDR' )
  190.     AND EXISTS (
  191.         SELECT 1 FROM tt_fab_product X
  192.         WHERE C.product_id = X.product_id
  193.         AND A.tenant_id = X.tenant_id
  194.     );
  195.    
  196.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vRetPembelianAmountBusi2808  
  197.     FROM pu_po_balance_invoice A
  198.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  199.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  200.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  201.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  202.     INNER JOIN in_inventory E ON E.inventory_id = A.ref_id AND E.doc_type_id = A.ref_doc_type_id
  203.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  204.     INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  205.     WHERE A.invoice_id <> -99
  206.     AND A.tenant_id = 10
  207.     AND A.ref_doc_type_id = 511
  208.     AND f_get_ou_code(D.ou_id) = '2808'
  209.     AND EXISTS (
  210.         SELECT 1 FROM pu_invoice E
  211.         WHERE A.invoice_id = E.invoice_id
  212.         AND LEFT(E.doc_date,6) = '202010'
  213.         AND E.doc_type_id  = 141
  214.         AND E.curr_code = 'IDR'  )
  215.     AND EXISTS (
  216.         SELECT 1 FROM tt_fab_product X
  217.         WHERE COALESCE(C.product_id,-99) = X.product_id
  218.         AND A.tenant_id = X.tenant_id
  219.     );
  220.    
  221.     vPembelianAmountBusi2808  := vPembelianAmountBusi2808 - vRetPembelianAmountBusi2808;
  222.    
  223.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vPembelianAmountBusi2803
  224.     FROM pu_po_balance_invoice A
  225.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  226.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  227.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  228.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  229.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  230.     AND A.ref_id = C.receive_goods_id
  231.     INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  232.     WHERE A.invoice_id <> -99
  233.     AND A.tenant_id = 10
  234.     AND A.ref_doc_type_id = 111
  235.     AND f_get_ou_code(D.ou_id) ='2803'
  236.     AND EXISTS (
  237.         SELECT 1 FROM pu_invoice E
  238.         WHERE A.invoice_id = E.invoice_id
  239.         AND LEFT(E.doc_date,6) = '202010'  
  240.         AND E.doc_type_id  = 131
  241.         AND E.curr_code = 'IDR' )
  242.     AND EXISTS (
  243.         SELECT 1 FROM tt_fab_product X
  244.         WHERE C.product_id = X.product_id
  245.         AND A.tenant_id = X.tenant_id
  246.     );
  247.    
  248.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vRetPembelianAmountBusi2803
  249.     FROM pu_po_balance_invoice A
  250.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  251.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  252.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  253.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  254.     INNER JOIN in_inventory E ON E.inventory_id = A.ref_id AND E.doc_type_id = A.ref_doc_type_id
  255.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  256.     INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  257.     WHERE A.invoice_id <> -99
  258.     AND A.tenant_id = 10
  259.     AND A.ref_doc_type_id = 511
  260.     AND f_get_ou_code(D.ou_id) = '2803'
  261.     AND EXISTS (
  262.         SELECT 1 FROM pu_invoice E
  263.         WHERE A.invoice_id = E.invoice_id
  264.         AND LEFT(E.doc_date,6) = '202010'
  265.         AND E.doc_type_id  = 141
  266.         AND E.curr_code = 'IDR'  )
  267.     AND EXISTS (
  268.         SELECT 1 FROM tt_fab_product X
  269.         WHERE COALESCE(C.product_id,-99) = X.product_id
  270.         AND A.tenant_id = X.tenant_id
  271.     );
  272.    
  273.     vPembelianAmountBusi2803  := vPembelianAmountBusi2803 - vRetPembelianAmountBusi2803;   
  274.     -- F4
  275.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vPembelianAmountF42808
  276.     FROM pu_po_balance_invoice A
  277.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  278.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  279.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  280.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  281.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  282.     AND A.ref_id = C.receive_goods_id
  283.     INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  284.     WHERE A.invoice_id <> -99
  285.     AND A.tenant_id = 10
  286.     AND A.ref_doc_type_id = 111
  287.     AND f_get_ou_code(D.ou_id) ='2808'
  288.     AND EXISTS (
  289.         SELECT 1 FROM pu_invoice E
  290.         WHERE A.invoice_id = E.invoice_id
  291.         AND LEFT(E.doc_date,6) = '202010'  
  292.         AND E.doc_type_id  = 131
  293.         AND E.curr_code = 'IDR' )
  294.     AND NOT EXISTS (
  295.         SELECT 1 FROM tt_fab_product X
  296.         WHERE C.product_id = X.product_id
  297.         AND A.tenant_id = X.tenant_id
  298.     );
  299.    
  300.     SELECT COALESCE(SUM(A.item_amount + COALESCE(B.tax_amount,0)),0) INTO vRetPembelianAmountF42808  
  301.     FROM pu_po_balance_invoice A
  302.     LEFT OUTER JOIN pu_po_balance_invoice_tax B ON A.tenant_id = B.tenant_id
  303.     AND A.ou_id = B.ou_id AND A.partner_id = B.partner_id
  304.     AND A.po_id = B.po_id AND A.ref_doc_type_id = B.ref_doc_type_id
  305.     AND A.ref_id = B.ref_id AND A.ref_item_id = B.ref_item_id
  306.     INNER JOIN in_inventory E ON E.inventory_id = A.ref_id AND E.doc_type_id = A.ref_doc_type_id
  307.     INNER JOIN pu_receive_goods_item C ON A.ref_item_id = C.receive_goods_item_id
  308.     INNER JOIN m_partner_ou D ON A.partner_id = D.partner_id
  309.     WHERE A.invoice_id <> -99
  310.     AND A.tenant_id = 10
  311.     AND A.ref_doc_type_id = 511
  312.     AND f_get_ou_code(D.ou_id) = '2808'
  313.     AND EXISTS (
  314.         SELECT 1 FROM pu_invoice E
  315.         WHERE A.invoice_id = E.invoice_id
  316.         AND LEFT(E.doc_date,6) = '202010'
  317.         AND E.doc_type_id  = 141
  318.         AND E.curr_code = 'IDR'  )
  319.     AND NOT EXISTS (
  320.         SELECT 1 FROM tt_fab_product X
  321.         WHERE COALESCE(C.product_id,-99) = X.product_id
  322.         AND A.tenant_id = X.tenant_id
  323.     );
  324.    
  325.     vPembelianAmountF42808   := vPembelianAmountF42808 - vRetPembelianAmountF42808;
  326.    
  327.     DELETE FROM tt_fab_product WHERE session_id = pSessionId ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement