diff --git a/models/marts/reporting/rep_exchange__sales_lead_conversions.sql b/models/marts/reporting/rep_exchange__sales_lead_conversions.sql index e5bf4e5..0c6e426 100644 --- a/models/marts/reporting/rep_exchange__sales_lead_conversions.sql +++ b/models/marts/reporting/rep_exchange__sales_lead_conversions.sql @@ -15,6 +15,7 @@ transactions AS ( SELECT * FROM {{ ref('fct_exchange__transaction_orders') }} ), + -- LOGIC join_booking_transaction AS ( @@ -49,8 +50,8 @@ join_booking_transaction AS ( transactions.order_id AS transaction_order_id, transactions.order_transaction_type, transactions.order_payment_method, + transactions.transaction_status, transactions.total_order_value_rm AS total_value_rm, - transactions.order_status AS transaction_order_status, transactions.order_created_datetime AS transaction_created_datetime, transactions.order_approved_datetime AS transaction_approved_datetime, transactions.order_completed_datetime AS transaction_completed_datetime @@ -88,7 +89,7 @@ data_enrich_grouped AS ( -- Count of orders placed after contacted by sales team SUM( CASE - WHEN transaction_order_status = 'COMPLETED' AND contact_status = 'Contacted' AND transaction_created_datetime > sales_team_contacted_datetime + WHEN transaction_status IN ('UPLOADED_BANK_SLIP') AND contact_status IN ('Contacted') AND transaction_created_datetime > sales_team_contacted_datetime THEN 1 ELSE 0 END @@ -110,6 +111,7 @@ data_enrich_grouped AS ( -- Boolean - Bookings and orders made AFTER contacted datetime and successful contact CASE WHEN MAX( booking_created_datetime ) > sales_team_contacted_datetime AND contact_status = 'Contacted' THEN '1' + WHEN MAX( transaction_created_datetime ) > sales_team_contacted_datetime AND contact_status = 'Contacted' THEN '1' ELSE '0' END AS has_booked_after_contacted, CASE @@ -127,7 +129,7 @@ data_enrich_grouped AS ( MIN( CASE WHEN transaction_created_datetime < sales_team_contacted_datetime - AND transaction_order_status NOT IN ('SUSPENDED', 'REJECTED') + AND transaction_status NOT IN ('ORDER_REJECTED', 'ORDER_SUSPENDED') THEN TIMEDIFF(minute, transaction_created_datetime, sales_team_contacted_datetime) / 60 END ) AS hours_last_ordered_before_contacted, @@ -142,7 +144,7 @@ data_enrich_grouped AS ( MIN( CASE WHEN ( sales_team_contacted_datetime < transaction_created_datetime ) AND contact_status = 'Contacted' - AND transaction_order_status NOT IN ('SUSPENDED', 'REJECTED') + AND transaction_status NOT IN ('ORDER_REJECTED', 'ORDER_SUSPENDED') THEN TIMEDIFF(minute, sales_team_contacted_datetime, transaction_created_datetime) / 60 END ) AS hours_first_ordered_after_contacted, @@ -157,7 +159,7 @@ data_enrich_grouped AS ( CASE WHEN sales_team_contacted_datetime > transaction_created_datetime THEN total_value_rm ELSE 0 END ) AS total_value_rm_before_contact, SUM( - CASE WHEN transaction_order_status IN ('APPROVED', 'COMPLETED') + CASE WHEN transaction_status IN ('UPLOADED_BANK_SLIP') AND sales_team_contacted_datetime > transaction_created_datetime THEN total_value_rm ELSE 0 END ) AS total_value_rm_approved_completed_before_contact, @@ -167,7 +169,7 @@ data_enrich_grouped AS ( AND contact_status = 'Contacted' THEN total_value_rm ELSE 0 END ) AS total_value_rm_after_contact, SUM( - CASE WHEN transaction_order_status IN ('APPROVED', 'COMPLETED') + CASE WHEN transaction_status IN ('UPLOADED_BANK_SLIP') AND sales_team_contacted_datetime < transaction_created_datetime AND contact_status = 'Contacted' THEN total_value_rm ELSE 0 END ) AS total_value_rm_approved_completed_after_contact, @@ -241,6 +243,7 @@ data_enrich_grouped AS ( exchange_registered_datetime ), + -- FINAL final__rep_exchange__sales_lead_conversions AS (