Advertisement
jul_tanuwijaya

Untitled

May 22nd, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ----------------------------------------------------------------------------------------------------------------------------
  2. -- SCRIPT untuk INSERT data Penjualan yang lama ke dwh_product
  3. ----------------------------------------------------------------------------------------------------------------------------
  4. INSERT INTO dwh_sales (
  5.     doc_type, doc_no, doc_date, remark, so_no, so_date,
  6.     customer_code, product_catalog_code, catalog_code, product_code,
  7.     qty, tax_percentage, harga_katalok, fee_ds_percentage, fee_ds_amount,
  8.     diskon_member_percentage, discount_promo_percentage, subtotal_harga_katalok,
  9.     subtotal_harga_member, tax_amount, create_datetime, update_datetime,
  10.     diskon_member_amount, discount_promo_amount, subtotal_harga_nett, dpp_amount,
  11.     subtotal_product_value, cogs_amount, gross_margin, style, subtotal_volume_weight,
  12.     subtotal_weight, used_volume_weight, price_range, member_age_range,
  13.     string_year, string_year_month
  14. )
  15. SELECT 'Delivery Order MLM' AS doc_type, A.id_penjualan AS doc_no, A.create_date AS doc_date, 'MIGRASI DATA PENJUALAN DARI SYSTEM LAMA' AS remark, A.id_penjualan AS so_no, A.create_date AS so_date,
  16.     lpad(A.id_member, 10, '0') AS customer_code, UPPER(TRIM(A.id_produk)) AS product_catalog_code, UPPER(TRIM(A.id_katalok)) AS catalog_code, UPPER(TRIM(A.id_produk)) AS product_code,
  17.     A.jumlah AS qty, 0 AS tax_percentage, A.harga_katalok_penjualan AS harga_katalok, 0 AS fee_ds_percentage, 0 AS fee_ds_amount,
  18.     A.persen_diskon_member_penjualan AS diskon_member_percentage, A.persen_diskon_promo_penjualan AS discount_promo_percentage, A.total_harga_katalok AS subtotal_harga_katalok,
  19.     A.total_harga_netto AS subtotal_harga_member, 0 AS tax_amount, to_char(create_date, 'YYYYMMDD')||'000001'  AS create_datetime, '' AS update_datetime,
  20.     A.total_harga_katalok - A.total_harga_netto AS diskon_member_amount, A.diskon_promo_penjualan AS discount_promo_amount, 0 AS subtotal_harga_nett, 0 AS dpp_amount,
  21.     0 AS subtotal_product_value, 0 AS cogs_amount, 0 AS gross_margin, COALESCE(B.style, 'N/A') AS style, A.total_berat_produk AS subtotal_volume_weight,
  22.     A.total_berat_produk AS subtotal_weight, A.total_berat_produk AS used_volume_weight,
  23.     CASE
  24.     WHEN A.jumlah IS NULL OR A.jumlah = 0 THEN '0 - 50k'
  25.         WHEN (A.total_harga_netto / A.jumlah) > 10000000 THEN '> 10.000k'
  26.         WHEN (A.total_harga_netto / A.jumlah) > 5000000 THEN '5.000k - 10.000k'
  27.         WHEN (A.total_harga_netto / A.jumlah) > 4000000 THEN '4.000k - 5.000k'
  28.         WHEN (A.total_harga_netto / A.jumlah) > 3000000 THEN '3.000k - 4.000k'
  29.         WHEN (A.total_harga_netto / A.jumlah) > 2000000 THEN '2.000k - 3.000k'
  30.         WHEN (A.total_harga_netto / A.jumlah) > 1000000 THEN '1.000k - 2.000k'
  31.         WHEN (A.total_harga_netto / A.jumlah) > 500000 THEN '500k - 1.000k'
  32.         WHEN (A.total_harga_netto / A.jumlah) > 400000 THEN '400k - 500k'
  33.         WHEN (A.total_harga_netto / A.jumlah) > 300000 THEN '300k - 400k'
  34.         WHEN (A.total_harga_netto / A.jumlah) > 200000 THEN '200k - 300k'
  35.         WHEN (A.total_harga_netto / A.jumlah) > 100000 THEN '100k - 200k'
  36.         WHEN (A.total_harga_netto / A.jumlah) > 50000 THEN '50k - 100k'
  37.         ELSE '0 - 50k'
  38.     END AS price_range,
  39.     CASE
  40.         WHEN C.dob_member IS NULL OR TRIM(C.dob_member) = '' THEN 'N/A'
  41.         WHEN TO_CHAR(A.create_date - interval '64 years', 'YYYYMMDD') > C.dob_member THEN '> 64 tahun'
  42.         WHEN TO_CHAR(A.create_date - interval '54 years', 'YYYYMMDD') > C.dob_member THEN '54-64 tahun'
  43.         WHEN TO_CHAR(A.create_date - interval '44 years', 'YYYYMMDD') > C.dob_member THEN '44-54 tahun'
  44.         WHEN TO_CHAR(A.create_date - interval '34 years', 'YYYYMMDD') > C.dob_member THEN '34-44 tahun'
  45.         WHEN TO_CHAR(A.create_date - interval '24 years', 'YYYYMMDD') > C.dob_member THEN '24-34 tahun'
  46.         WHEN TO_CHAR(A.create_date - interval '18 years', 'YYYYMMDD') > C.dob_member THEN '18-24 tahun'
  47.         WHEN TO_CHAR(A.create_date - interval '9 years', 'YYYYMMDD') > C.dob_member THEN '9-18 tahun'
  48.         WHEN TO_CHAR(A.create_date - interval '5 years', 'YYYYMMDD') > C.dob_member THEN '5-9 tahun'
  49.         ELSE '0-5 tahun'
  50.     END AS member_age_range,
  51.     to_char(create_date, 'YYYY') AS string_year, to_char(create_date, 'YYYYMM') AS string_year_month
  52. FROM copy_factpenjualanoldsys A
  53. LEFT JOIN dwh_product B ON UPPER(TRIM(A.id_produk)) = UPPER(TRIM(B.product_code))
  54. LEFT JOIN dwh_member C ON lpad(A.id_member, 10, '0') = C.member_code
  55. WHERE NOT EXISTS (
  56.     SELECT 1 FROM dwh_sales B
  57.     WHERE A.id_penjualan = B.doc_no
  58. )
  59.  
  60.  
  61. ----------------------------------------------------------------------------------------------------------------------------
  62. -- INSERT data dwh_product dari data product system Lama
  63. ----------------------------------------------------------------------------------------------------------------------------
  64. INSERT INTO dwh_product(
  65.     product_code, product_name, style, style_image, size, color,
  66.     flag_consignment, product_custom_field_id_gender, gender,
  67.     product_custom_field_id_type, jenis, category_code, category_name,
  68.     sub_category_code, sub_category_name, brand_code, brand_name,
  69.     supplier_product_code, supplier_code, supplier_name, weight,
  70.     length, width, height, product_vat)
  71. WITH
  72. product_brand AS (
  73.     SELECT brand_code, brand_name
  74.     FROM dwh_product
  75.     GROUP BY brand_code, brand_name
  76. ),
  77. product_category AS (
  78.     SELECT category_code, category_name
  79.     FROM dwh_product
  80.     GROUP BY category_code, category_name
  81. )
  82. SELECT UPPER(TRIM(A.id_produk)) AS product_code, A.nama_produk, UPPER(TRIM(A.style_produk)) AS style, '' AS style_image, UPPER(TRIM(A.id_ukuran)) AS size, UPPER(TRIM(A.id_warna)) AS color,
  83.     (CASE
  84.         WHEN konsignasi_produk = 'T' THEN 'Y'
  85.         WHEN konsignasi_produk = 'F' THEN 'N'
  86.      END) AS flag_consignment, UPPER(TRIM(A.id_gender)) AS product_custom_field_id_gender, UPPER(TRIM(A.id_gender)) AS gender,
  87.      UPPER(TRIM(A.id_jenis_produk)) AS product_custom_field_id_type, UPPER(TRIM(A.id_jenis_produk)) AS jenis, UPPER(TRIM(A.id_kategori)) AS category_code, COALESCE(E.category_name, F.ctgr_product_name, 'N/A') AS category_name,
  88.      UPPER(TRIM(A.id_kategori)) AS sub_category_code, COALESCE(E.category_name, F.ctgr_product_name, 'N/A') AS sub_category_name, COALESCE(UPPER(TRIM(A.id_merek)), 'N/A') AS brand_code, COALESCE(B.brand_name, C.brand_name, 'N/A') AS brand_name,
  89.      UPPER(TRIM(A.id_produk)) AS supplier_product_code, UPPER(TRIM(A.id_supplier)) AS supplier_code, COALESCE(D.supplier_name, 'N/A') AS supplier_name, berat AS weight,
  90.      0 AS length, 0 AS width, 0 AS height, 0 AS product_vat
  91. FROM copy_msproductoldsys A
  92. LEFT JOIN product_brand B ON UPPER(TRIM(A.id_merek)) = UPPER(TRIM(B.brand_code))
  93. LEFT JOIN tt_m_brand C ON UPPER(TRIM(A.id_merek)) = UPPER(TRIM(C.brand_code))
  94. LEFT JOIN dwh_supplier D ON UPPER(TRIM(A.id_supplier)) = UPPER(TRIM(D.supplier_code))
  95. LEFT JOIN product_category E ON UPPER(TRIM(A.id_kategori)) = UPPER(TRIM(E.category_code))
  96. LEFT JOIN tt_m_ctgr_product F ON UPPER(TRIM(A.id_kategori)) = UPPER(TRIM(F.ctgr_product_code))
  97. WHERE NOT EXISTS (SELECT 1 FROM dwh_product B WHERE UPPER(TRIM(A.id_produk)) = UPPER(TRIM(B.product_code)))
  98. AND A.id_produk IS NOT NULL;
  99.  
  100. ----------------------------------------------------------------------------------------------------------------------------
  101. -- INSERT data product catalog dari product system Lama
  102. ----------------------------------------------------------------------------------------------------------------------------
  103. INSERT INTO public.dwh_product_catalog (
  104.     product_catalog_code, product_catalog_name, product_catalog_desc, flag_discontinue,
  105.     catalog_price, disc_member_percent, product_value, catalog_code, catalog_name,
  106.     start_date, end_date, page_no, page_used, product_code, product_name, style,
  107.     style_image, size, color, flag_consignment, product_custom_field_id_gender,
  108.     gender, product_custom_field_id_type, jenis, category_code, category_name,
  109.     sub_category_code, sub_category_name, brand_code, brand_name,
  110.     supplier_product_code, supplier_code, supplier_name, weight,
  111.     length, width, height, flag_tax)
  112. WITH
  113. product_brand AS (
  114.     SELECT brand_code, brand_name
  115.     FROM dwh_product
  116.     GROUP BY brand_code, brand_name
  117. ),
  118. product_category AS (
  119.     SELECT category_code, category_name
  120.     FROM dwh_product
  121.     GROUP BY category_code, category_name
  122. )
  123. SELECT UPPER(TRIM(A.id_produk)) AS product_catalog_code, A.nama_produk AS product_catalog_name, A.nama_produk AS product_catalog_desc,
  124.     (CASE
  125.         WHEN A.continue_produk = 'T' THEN 'N'
  126.         WHEN A.continue_produk = 'F' THEN 'Y'
  127.     END) AS flag_discontinue,
  128.     A.harga_katalok_zona_1 AS catalog_price, A.diskon_member AS disc_member_percent, '' AS product_value, UPPER(TRIM(A.id_katalok )) AS catalog_code, COALESCE(G.catalog_name, 'N/A') AS catalog_name,
  129.     COALESCE(to_char(G.start_date, 'YYYYMMDD'), 'N/A') AS start_date, COALESCE(to_char(G.end_date, 'YYYYMMDD'), 'N/A') AS end_date, A.halaman_produk AS page_no, A.pakai_halaman AS page_used, UPPER(TRIM(A.id_produk)) AS product_code, A.nama_produk AS product_name, A.style_produk AS style,
  130.     '' AS style_image, UPPER(TRIM(A.id_ukuran)) AS size, UPPER(TRIM(A.id_warna)) AS color,
  131.     (CASE
  132.         WHEN konsignasi_produk = 'T' THEN 'Y'
  133.         WHEN konsignasi_produk = 'F' THEN 'N'
  134.      END) AS flag_consignment, UPPER(TRIM(A.id_gender)) AS product_custom_field_id_gender,
  135.     UPPER(TRIM(A.id_gender)) AS gender, UPPER(TRIM(A.id_jenis_produk)) AS product_custom_field_id_type, UPPER(TRIM(A.id_jenis_produk)) AS jenis, UPPER(TRIM(A.id_kategori)) AS category_code, COALESCE(E.category_name, F.ctgr_product_name, 'N/A') AS category_name,
  136.     UPPER(TRIM(A.id_kategori)) AS sub_category_code, COALESCE(E.category_name, F.ctgr_product_name, 'N/A') AS sub_category_name, UPPER(TRIM(A.id_merek)) AS brand_code, COALESCE(B.brand_name, C.brand_name, 'N/A') AS brand_name,
  137.     UPPER(TRIM(A.id_produk)) AS supplier_product_code, UPPER(TRIM(A.id_supplier)) AS supplier_code, COALESCE(D.supplier_name, 'N/A') AS supplier_name, 0 AS weight,
  138.     0 AS length, 0 AS width, 0 AS height,
  139.     (CASE
  140.         WHEN A.kena_pajak = 'T' THEN 'Y'
  141.         WHEN A.kena_pajak = 'F' THEN 'N'
  142.     END) AS flag_tax
  143. FROM copy_msproductoldsys A
  144. LEFT JOIN product_brand B ON UPPER(TRIM(A.id_merek)) = UPPER(TRIM(B.brand_code))
  145. LEFT JOIN tt_m_brand C ON UPPER(TRIM(A.id_merek)) = UPPER(TRIM(C.brand_code))
  146. LEFT JOIN dwh_supplier D ON UPPER(TRIM(A.id_supplier)) = UPPER(TRIM(D.supplier_code))
  147. LEFT JOIN product_category E ON UPPER(TRIM(A.id_kategori)) = UPPER(TRIM(E.category_code))
  148. LEFT JOIN tt_m_ctgr_product F ON UPPER(TRIM(A.id_kategori)) = UPPER(TRIM(F.ctgr_product_code))
  149. LEFT JOIN dwh_catalog G ON UPPER(TRIM(A.id_katalok)) = UPPER(TRIM(G.catalog_code))
  150. WHERE NOT EXISTS (
  151.     SELECT 1 FROM dwh_product_catalog B
  152.     WHERE UPPER(TRIM(A.id_produk)) = UPPER(TRIM(B.product_catalog_code))
  153.     AND UPPER(TRIM(A.id_katalok)) = UPPER(TRIM(B.catalog_code))
  154. )
  155. AND A.id_produk IS NOT NULL;
  156.  
  157. ----------------------------------------------------------------------------------------------------------------------------
  158. ----------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement