#!/bin/bash echo -e " \n----------- ACCEPTING NUMBER OF DAYS BEFORE THE RUN DATE FOR WHICH THE REPORT IS TO BE RUN --------------\n" backDay=$1 echo $backDay echo -e " \n------------- DATE IN THE REQUIRED FORMAT --------------\n" reportDate=$(date -d"$backDay day ago" "+%Y-%m-%d") date echo 'reportDate'=$reportDate echo " DROP TABLE IF EXISTS raena_analytics.google_map_search; CREATE TABLE raena_analytics.google_map_search AS SELECT * FROM raena_crawler_management.google_map_search_results WHERE created_at > '2024-04-19 00:00:00.000' AND rating_category IN ('Cosmetics wholesaler', 'Beauty school', 'Cosmetics industry', 'Beauty supply store', 'Beauty product supplier', 'Dermatologist', 'Make-up artist', 'Health and beauty shop', 'Nail salon', 'Beauty salon', 'beautification saloon', 'Hair salon', 'Skin care clinic', 'General store', 'Beauty supplies store', 'Beauty products wholesaler', 'Beautician', 'Cosmetics and perfumes supplier', 'Facial spa', 'Perfume store', 'Cosmetic products manufacturer', 'Cosmetics store', 'Spa and health club', 'Shop', 'Wellness center'); DROP TABLE IF EXISTS raena_analytics.user_type_table_payment ; CREATE TABLE raena_analytics.user_type_table_payment AS SELECT DISTINCT reseller_mobile, reseller_id, First_transaction_date, created_at first_install_date FROM (SELECT replace(json_extract_path_text(reseller_info,'mobile',TRUE),'+','') reseller_mobile, reseller_id, min(created_at) First_transaction_date FROM raena_order_management.order WHERE payment_status = 'Paid' GROUP BY 1, 2) A INNER JOIN (SELECT replace(mobile,'+','') profile_phone, id, MIN(cast(created_at AS date)) AS created_at FROM raena_user_management.user u GROUP BY 1, 2) B ON A.reseller_mobile=B.profile_phone; DROP TABLE raena_analytics.Payment_category_filter_payment; CREATE TABLE raena_analytics.Payment_category_filter_payment AS SELECT PAYMENT_ID, order_placed_by, New_existing_flag, CASE WHEN payment_channel='INVOICE' AND payment_provider='DurianPay' AND PORDER_id LIKE '%DSF' THEN 'Invoice_DP_DSF' WHEN payment_channel='INVOICE' AND payment_provider='DurianPay' AND order_placed_by='admin' THEN 'Invoice_DP_Admin' WHEN payment_channel='INVOICE' AND payment_provider='Xendit' THEN 'Inovice - Xendit' WHEN payment_channel='INVOICE' AND payment_provider='PrepaidPayment' THEN 'Inovice - PrepaidPayment' ELSE payment_channel END AS payment_category_filter FROM (SELECT a.*, b.order_placed_by, b.New_existing_flag FROM (WITH NS AS (SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25) SELECT id PAYMENT_ID, created_at::date created_at, replace(cast(substring(cast(TRIM(SPLIT_PART(B.order_ids , ',', NS.n))AS varchar),2,length(cast(TRIM(SPLIT_PART(B.order_ids , ',', NS.n))AS varchar))-2) AS varchar),'\"','') AS porder_id, payment_provider, payment_category, payment_channel FROM NS INNER JOIN raena_order_management.payment B ON NS.n <= REGEXP_COUNT(B.order_ids , ',') + 1) a LEFT JOIN (SELECT DISTINCT id, order_placed_by, New_existing_flag FROM (SELECT id, order_placed_by, CASE WHEN date_trunc('Month',o.created_at)::date = date_trunc('Month',first_install_date)::date AND date_trunc('Month',o.created_at)::date = date_trunc('Month',First_transaction_date)::date THEN 'New' WHEN date_trunc('Month',o.created_at)::date-date_trunc('Month',first_install_date)::date>= 30 AND date_trunc('Month',o.created_at)::date = date_trunc('Month',First_transaction_date)::date THEN 'Activation' WHEN date_trunc('Month',o.created_at)::date-date_trunc('Month',first_install_date)::date>=30 AND date_trunc('Month',o.created_at)::date - date_trunc('Month',First_transaction_date)::date>=30 THEN 'Existing' ELSE 'Na' END AS New_existing_flag FROM RAENA_ORDER_MANAGEMENT.order o LEFT JOIN raena_analytics.user_type_table_payment utt ON o.reseller_id = utt.reseller_id) c) b ON a.porder_id=b.id) C; " > /home/ec2-user/cronjob/redshift/sql_code/payment_dashboard.sql psql "host=redshift-cluster-1.cdqj58hfx4p7.ap-southeast-1.redshift.amazonaws.com user=dbadmin dbname=analytics port=5439 password=5qCif6eyY3Kmg4z" -f /home/ec2-user/cronjob/redshift/sql_code/payment_dashboard.sql